TCP三次握手流程详解
TCP三次握手流程详解
一篇方法教程,与您分享TCP三次握手流程详解的电脑方面的小经验,下面IT袋网为您详细介绍
讲下TCP三次握手流程?

客户端和服务器初始均为CLOSED状态,然后服务器开始侦听某个端口进入LISTEN状态
(1)第一次握手:客户端发送SYN包(SYN=1,seq=x)到服务器,并进入SYN_SEND状态,等待服务器确认;
(2)第二次握手:服务器收到SYN包后并响应SYN+ACK包(SYN=1,ACK=1,seq=y.ack=x+1),发送完毕服务器进入SYN_RCVD状态;
(3)第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ACK=1,seq=x+1.ack=y+1)),此包发送完毕,客户端和服务器进入ESTABLISHED状态,后续开始交互数据。

为什么TCP是三次握手而不是两次、四次?
原因1:确认双方的接收与发送能力是否正常:
- 第一次握手(Client->Server,SYN):Server确认了自身接收正常,Client发送能力正常Client无法确认任何信息
- 第二次握手(Client<-Server,SYN+ACK):Server确认了自身接收正常,Client发送能力正常Client确认了自身收/发能力正常,Server收/发送能力正常
- 第三次握手(Client->Server,ACK):Server确认了自身收/发能力正常,Client收/发送能力正常Client确认了自身收/发能力正常,Server收/发送能力正常
所以三次握手能保证双方收发能力正常,二次握手不能确认,四次握手设计显得多余。
原因2:协商确定发送数据包的单位,即“最大消息长度”(MSS:Maximum Segment Size),如下:
举个例子:两个人互发微信交流如果一方直接发2000字长篇大论,另一方估计看都不想看,所以协商简洁的字数交流很有必要。
TCP交互也是一样,需要发送方和接收方协商能被双方认可的MSS才能有效交互,任何一方不能无限制的去乱发大包,这就会导致交互出现异常。
过程如下:

通过三次握手双方才能协商到最合适MSS以保证后续的数据交互标准,在TCP报文中MTU=MSS+40(20字节的TCP首部+20字节的IP首部)。
MSS协商存在于TCP Option字段中,协商报文如下:

以上分享的TCP三次握手流程详解的相关内容,希望对您有所帮助!
相关阅读
-
个人网站备案流程 工信部个人网站备案过程讲解
您可能不了解个人网站备案流程和工信部个人网站备案过程讲解的IT小经验,继续往下看吧! 嗨,大家好,我是希留。 前面文章介绍了下使用https访问网站的相关配置,然后发现访问https时灵时
-
HTTP状态码深入解析:401 Unauthorized
为大家介绍HTTP状态码深入解析的教程内容,接下来一起来看看吧。 在互联网通信中,HTTP状态码是用来表示服务器响应的一种方式。 当我们在浏览器中访问网页时,服务器会返回一个状态码,
-
什么是跨站脚本 XSS攻击?
为网友解答什么是跨站脚本的相关话题,下面为详细的介绍。 跨站脚本(Cross-Site Scripting,XSS)是一种常见的网络安全漏洞,攻击者利用该漏洞在受害者的网页中插入恶意脚本,从而能够获取
-
dns服务器未响应怎么修复 分享dns未响应最简单的修复办法
今天为大家介绍dns服务器未响应怎么修复和分享dns未响应最简单的修复办法的教程内容,继续往下看吧! 很多人在浏览网页时,经常会遇到DNS服务器未响应的情况,那么什么是DNS服务器?DNS未


