hdml指的是什么接口
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小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~