您的位置:首页 > 理论基础 > 计算机网络

TCP协议三次握手和四次挥手

2018-08-21 11:30 369 查看
TCP三次握手



1、 A客户机对于B服务器发送请求,此时同步位SYN=1,ACK=0,表明请求建立连接,请B回应,图中意思是A用自身的第x个包向B发出建立连接请求;
2、 B服务器收到A请求,回应连接,发出同意连接,用SYN=1,ACK=1表明同意建立连接,下次A给我发ACK=1的报文,图中意思是B收到请求后用自身的第y个包向A发出回应,收到A的第x个包,并希望下次收到A的第x+1个包;
3、 A客户机收到B服务器y包,用自身第X+1个包作为ACK=1的包给B,同时希望收到B自身的第y+1个包回应A,并希望下次收到B的第y+1个包,此时证明A可以发送以及接收B的包,B也可以发送和接收A的包,通信建立成功。

简单概况:A用自身的一个数据包向B请求建立连接,此时SYN=1,ACK=0,也可以理解A希望收到B的ACK=0的包;B收到请求后用自身的一个数据包向A回应,可以理解为用自身的这个数据包作为ACK=0发给了A,并要求A下次发ACK=1的包;A收到后用自身的数据包作为ACK=1的包回应了A,到此通信建立成功

TCP四次挥手



1、 A和B处于连接中,用自身的第u个数据包发出关闭申请,此时FIN=1,ACK=0,处于终止等待1状态,半关闭状态
2、 B收到A第u个包,之前可能有未传送完的数据,因此数据还在传送中,B转换为关闭等待状态;
3、 传送完成后,A处于终止等待2状态,B给A发送结束报文FIN=1,ACK=1,需要A的第u+1个包作为ACK=1标志的包给B回应,此次B最后确认状态
4、 A收到回应发出第u+1个包表明收到,此时切换为时间等待状态,为了接收没有传送完的数据,时间等待为2倍的文件传输速率

总而言之,四次挥手比三次握手多了一次数据传输的过程,但状态有所差异,11次具体有限状态机我们还是需要了解
再次附上11种状态
CLOSED 没有任何连接状态
LISTEN 侦听状态,等待来自远方TCP端口的连接请求
SYN-SENT 在发送连接请求后,等待对方确认
SYN-RECEIVED 在收到和发送一个连接请求后,等待对方确认
ESTABLISHED 代表传输连接建立,双方进入数据传送状态
FIN-WAIT-1 主动关闭,主机已发送关闭连接请求,等待对方确认
FIN-WAIT-2 主动关闭,主机已收到对方关闭传输连接确认,等待对方发送关闭传输连接请求
TIME-WAIT 完成双向传输连接关闭,等待所有分组消失
CLOSE-WAIT 被动关闭,收到对方发来的关闭连接请求,并已确认
LAST-ACK 被动关闭,等待最后一个关闭传输连接确认,并等待所有分组消失
CLOSING 双方同时尝试关闭传输连接,等待对方确认
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Linux 学习 TCP