TCP协议的三次握手、四次挥手

网友投稿 250 2022-10-16


TCP协议的三次握手、四次挥手

TCP(Transmission Control Protocol) 传输控制协议

TCP是主机对主机层的传输控制协议,提供可靠的连接服务,通过三次握手建立一个连接

TCP 三次握手图示:

位码即tcp标志位,有6种标示:

SYN(synchronous建立联机)

ACK(acknowledgement 确认)

PSH(push传送)

FIN(finish结束)

RST(reset重置)

URG(urgent紧急)

Sequence number(顺序号码) Acknowledge number(确认号码)

第一次握手:客户端A向服务器发送SYN=1 ,随机产生seq=x(序号为x) 的数据包,进入SYN-SENT状态,服务器B由SYN=1得知A要建立连机。

第二次握手:服务端B收到请求后确认信息,向客户端返回SYN=1,ACK=1 ,seq=y,ack=x+1(表示客户A下一次发送的数据包号为x+1),此时服务器B进入SYN-RCVD状态。

第三次握手:客户端A收到后检查ack(确认号)是否正确,即第一次发送的序号+1和ACK是否为1.若正确,客户端A再次发送ACK=1,发送序号为seq=x+1,确认号为y+1,服务端B收到后确认seq与ack=1,此时客户A和服务器B进入ESTABLISHED状态,完成三次握手。

完成三次握手,客户端和服务器开始传送数据。

图解:

一个三次握手的过程(图1,图2)

(图1)

(图2)

第一次握手的标志位(图3)

我们可以看到标志位里面只有个同步位,也就是在做请求(SYN)

(图3)

第二次握手的标志位(图4)

我们可以看到标志位里面有个确认位和同步位,也就是在做应答(SYN + ACK)

(图4)

第三次握手的标志位(图5)

我们可以看到标志位里面只有个确认位,也就是再做再次确认(ACK)

(图5)

一个完整的三次握手也就是 请求---应答---再次确认

四次挥手

由于TCP连接是全双工的,因此每个方向都必须单独进行关闭。客户A和服务器B都可以主动断开连接,如果A客户发送完数据后不主动断开就会占有服务器B的资源。

第一次挥手:客户A和服务器B都处于ESTABLISHED建立状态,客户A向服务器B发送FIN=1来结束A到B的数据传送。客户A就进入FIN-WAIT-1状态。

第二次挥手:服务器B收到这个FIN,它返回一个ACK,确认序号为收到的序号加1,和SYN一样,一个FIN将占用一个序号,服务器B进入COLSE-WAIT状态。

第三次挥手:服务器B关闭与客户A的连接,发送一个FIN给客户A。服务器B进入closed状态

第四次挥手:客户A返回ACK确认,并将确认序号设置为收到的序号加1,客户A进入TIME-WAIT状态,到此四次挥手完成。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Java elasticsearch安装以及部署教程
下一篇:网络基础之OSI模型及TCP/IP协议栈
相关文章

 发表评论

暂时没有评论,来抢沙发吧~