网络连接管理除了TCP三次握手,还有TCP四次挥手

news2024/11/15 6:49:21

网络连接管理除了TCP三次握手,还有TCP四次挥手

TCP三次握手,TCP四次挥手

  • 网络连接管理除了TCP三次握手,还有TCP四次挥手
    • TCP三次握手
    • TCP四次挥手
    • 总结

TCP三次握手

网络通信建立连接,TCP会进行三次握手,三次握手主要是两个主机之间建立连接,和其他没有什么关系,那么两个主机之间是如何进行三次握手的呢?他们又会使用什么操作来建立连接呢?

这里我们先了解一下TCP的报文结构:

在这里插入图片描述

三次握手主要是理解成客户端与服务器经过三次交互,双方确立完成,建立连接进行网络通信。TCP的报文结构中 tcp flags 中SYN报文起关键作用,客户端在确立连接时会将SYN报文发送至服务器,当服务器识别到SYN报文时,将ACK报文和SYN报文一并发送至客户端,当客户端收到SYN报文,也会返回ACK报文至服务器,以上,就完成了三次交互。

在这里插入图片描述

该图就是说明了三次握手基本原理,细节分析:当客户端发送SYN报文时,服务器接收到,就说明客户端的发送数据操作没有问题,然后服务器将ACK+SYN报文进行发送时,此时客户端接收到,客户端就会知道自己的发送性能和接收性能正常,服务器的接收性能和发送性能没有问题,然后再将ACK报文返回给服务器,服务器这才知道自己的发送性能没有问题也知道客户端的接收性能没有问题

那么三次握手能不能改成2次握手?或者四次握手?

答:不可以,2次握手会有安全隐患,因为第三次是确保服务器把客户端的情况了解,再把自身的情况摸清,如果去除了第三次握手,不能确保连接成功。四次握手按常理是可行的方案,不过在连接管理时应该尽量把步骤进行简化,而不是逆行。

TCP四次挥手

TCP四次挥手是TCP断开连接会进行的操作。根据TCP报文图,可以发现,在SYN后面有一个报文叫FIN,相当于finish(结束),对的该报文就是在客户端对服务器或者服务器对客户端发送的结束报文。(双方可以互相发送)

这里我只列举出一种:(客户端给服务器发送FIN报文)

在这里插入图片描述

看到这里,可能有小伙伴会问,为什么不将ACK报文与FIN报文同时发送,连接管理时不是将SYN和ACK一起发送了吗?

对!不过这里因为是断开连接,发送FIN报文需要满足一定的条件,发送FIN报文是需要进程断开连接,而一般断开连接时时机不同,当客户端与服务器断开时,服务器还并没有结束该进程,所以才会造成时机的不同,一般对方主机需要执行关闭(close)方法才会向对方发送FIN报文,所以这里一般是会进行四次挥手。一般情况是这样,不过还有特殊情况,在特殊情况下,ACK和FIN报文有一定概率可以合并,不过是极小概率事件。

ACK和FIN报文有一定概率可以合并,不过是极小概率事件。

总结

综上所述,TCP连接管理中建立连接和断开连接是不同的,报文格式也是不同的。TCP三次握手中ACK和SYN几乎是同一时间发出,是一种内核态的过程。而FIN和ACK是在不同时机触发的,而ACK是内核态,速度快,而FIN是一种应用程序代码,是由人为控制,所以两个数据报很难合并。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/594419.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【叠高高】叠蛋糕游戏的微信小程序开发流程详解

记得小时候玩过的搭积木游戏吗,和叠高高游戏原理差不多的,与之类似的还有盖高楼游戏,就是看谁盖的(叠的)最高,这里讲一下比较基础的叠高高游戏小程序实现过程,对编程感兴趣的同学可以参考学习一…

Linux Shell 实现一键部署Rust1.69

rust 前言 一门赋予每个人,构建可靠且高效软件能力的语言。 全世界已有数百家公司在生产环境中使用 Rust,以达到快速、跨平台、低资源占用的目的。很多著名且受欢迎的软件,例如 Firefox、 Dropbox 和 Cloudflare 都在使用 Rust。从初创公司…

网络安全工程师的入门学习路径,年薪30W不是梦!

最近看到网上有很多人在问诸如:“怎样成为网络信息安全工程师”等相关问题,这可能与近几年网络安全事件频发,国家对于互联网信息安全和互联网舆情的重视程度不断提升有关,网络信息安全工程师随之成为炙手可热的职业。 首先&#…

Web的基本漏洞--文件包含漏洞

目录 一、文件包含漏洞的介绍 1.文件包含漏洞的原理 2.常见的文件包含函数 3.文件包含漏洞的分类 本地文件包含漏洞 远程文件包含漏洞 3.文件包含漏洞的危害 4.文件包含漏洞的防范措施 5.文件包含漏洞的绕过手法 空字符绕过 超长字符绕过 一、文件包含漏洞的介绍 1…

5年经验之谈:月薪3000到30000,测试工程师的变“行”记

自我介绍下,我是一名转IT测试人,我的专业是化学,去化工厂实习才发现这专业的坑人之处,化学试剂害人不浅,有毒,易燃易爆,实验室经常用丙酮,甲醇,四氯化碳,接触…

你需要知道的 Selenium4 新特性

前言 最近又用到了Selneium,发现已经来到了 4.9 版本了。本篇文章来介绍下它较比 Selenium3 的一些新特性。 记录下,当是做笔记了。 最令人惊喜的是,Selenium4 会自动回收浏览器资源。 本文所使用的 Selenium 版本为 4.9.9 知识点&#x1f4…

开发一个收废品小程序步骤

随着环保意识的提升和可持续发展的迫切需求,废品回收成为了一个重要的议题。预约上门回收小程序的开发为用户提供了方便、快捷的废品回收服务,促进了废品资源的再利用和环保行动的推进。本文将介绍开发预约上门回收小程序的流程,以帮助开发人…

java12--本章作业

1. 第1题 public class Hello{public static void main(String[] args){Person[] persons new Person[3];persons[0] new Person("zsq", 18, "学生");persons[1] new Person("zzq", 19, "大学生");persons[2] new Person("zq…

【leetcode】1130. 叶值的最小代价生成树

1130. 叶值的最小代价生成树 1、问题描述2、解决方案2.1、动态规划2.1.1、问题分析2.1.2、代码实现 2.2、单调栈 1、问题描述 1130. 叶值的最小代价生成树 给你一个正整数数组 arr,考虑所有满足以下条件的二叉树: 每个节点都有 0 个或是 2 个子节点。数…

一文3000字实现基于Selenium+Python的web自动化测试框架

一、什么是Selenium? Selenium是一个基于浏览器的自动化测试工具,它提供了一种跨平台、跨浏览器的端到端的web自动化解决方案。Selenium主要包括三部分:Selenium IDE、Selenium WebDriver 和Selenium Grid。 Selenium IDE:Firefo…

2.4 IDEA开发词频统计项目

一、词频统计准备工作 (一)启动集群的HDFS与Spark 启动HDFS服务 启动Spark集群 (二)在HDFS上准备单词文件 在master虚拟机上创建单词文件 - words.txt 将单词文件上传到HDFS指定目录/wordcount/input 二、本地模式运行Sp…

RCE漏洞演示,墨者靶场

#案列演示 打开墨者靶场,黑盒#命令注入执行分析 这个功能点有这么个功能,进行类似的像我们电脑上ping命令,这相当于就满足了命令,明显可能出现命令执行漏洞,可控变量和漏洞函数都存在。第一要去分析是什么操作系统&am…

批量 ping 网段的终极方法

我们分析和判定网络故障,如果有 10 设备,100 台设备,1000 台设备怎么办?一个个 ping 过去人都要疯掉了,这种情况在大型网络中我们有可能遇到,那怎么办呢?来听听海翎光电小编的一点看法吧&#x…

Spark写入Hive报错Mkdir failed on :com.alibaba.jfs.JindoRequestPath

1. 报错内容 23/05/31 14:32:13 INFO [Driver] FsStats: cmdmkdirs, srcoss://sync-to-bi.[马赛克].aliyuncs.com/tmp/hive, dstnull, size0, parameterFsPermission:rwx-wx-wx, time-in-ms32, version3.5.0 23/05/31 14:32:13 ERROR [Driver] ApplicationMaster: User class …

八大技术架构——升级之路

目录 一、单机架构 简介 工作原理 架构优缺点 相关软件 二、应用数据分离架构 简介 工作原理 架构优缺点 三、应用服务集群架构 简介 出现原因 工作原理 架构优缺点 相关软件 四、读写分离/主从分离架构 简介 工作原理 架构优缺点 相关软件 五、冷热分离架…

JMeter数据库性能测试指南:全面掌握基础操作

1.网络请求时间 2.数据库查询的时间 数据库性能指标 TPS:每秒事务数(一秒钟服务器处理的事务数,事务指,请求出去到响应回来的整个过程的时间) QPS:每秒查询量(就是数据库每秒执行的SQL数量,包含insert/…

239:设置extent:bbox,限制瓦片图的加载范围,不加载空白瓦片

第239个 点击查看专栏目录 本示例的目的是介绍演示如何在vue+openlayers中加载geoserver发布的数据,这里主要介绍extent,设置bbox附加载layer上,目的是bbox在可视范围内才加载瓦片,否则不加载,好处是不用加载空白的瓦片数据。 直接复制下面的 vue+openlayers源代码,操作…

Odoo 16的docker部署以及vscode环境配置

之前一直使用Odoo源码配置开发环境,安装的步骤比较多,费时。趁着升级到16版本的机会,尝试使用docker快速配置Odoo的VSCode开发环境。 1 系统环境 (1)操作系统:ubuntu 20.04 Alternative downloads | Ubu…

Eclipse 教程 完结中

Eclipse 快捷键 关于快捷键 Eclipse 的很多操作都提供了快捷键功能,我们可以通过键盘就能很好的控制 Eclipse 各个功能: 使用快捷键关联菜单或菜单项使用快捷键关联对话窗口或视图或编辑器使用快捷键关联工具条上的功能按钮 Eclipse 快捷键列表可通过…

可节省60% MCU开发成本的NV080D-S8,单片机语音芯片在恒温碗上的应用

社会在不断进步,科技在不断发展,如今的恒温碗不仅带有温度显示功能,更附带有语音播报,能更好地知晓当前饭菜,变凉或过烫的情况,有效避免伤害宝宝脆弱的肠胃; 广州九芯电子推出了一款&#xff0c…