码迷,mamicode.com
首页 > 其他好文 > 详细

tcp的三次握手和四次挥手

时间:2018-10-09 17:00:51      阅读:148      评论:0      收藏:0      [点我收藏+]

标签:个数   三次握手   数据   就是   lis   rcv   同步   挥手   list   

TCP的三次握手

1 客户端发出SYN=1,seq=x 这里客户端数据的序列号位x
这时服务器端被动打开,变成LISTEN收听状态

2 服务器端发出SYN=1 ACK=1 seq=y ack=x+1

SYN=1同时ACK=1表示同意建立连接 这里服务器端数据的序列号位是y
(之前发出过很多数据,这里排号排到y了),
ack=x+1 表示客户端发的数据x我收到了,下次希望你发x+1

这时客户端收到服务器端发出的数据,客户端变成SYN-SENT状态

3客户端发出ACK=1 seq=x+1 ack=y+1
seq=x+1 表示上次客户端发出的是第x个包,这次就是第x+1个
ack=y+1表示上次服务器端发出的是第y个包,这次就是第y+1个包

服务器端同步收到SYN-RCVD
最后变成ESTAB-LISHED

TCP的四次挥手
1客户端首先发起结束请求 FIN=1 seq=u
客户端发出的第u个数据包
2服务器收到,发送ACK=1 seq=v,ack=u+1

服务器发出的第v个数据包

3虽然此时服务器收到结束请求,但是不能立即终止,因为还是其他数据没有传完
这里有个终止等待时间FIN-WAIT-2
然后服务器再发出
FIN=1 ACK=1 seq=w ack=u+1

4客户端收到服务器的数据包,发出ACK=1 seq=u+1 ack=W+1
seq=u+1表示上次发出的是第u个包,这次u+1
ack=W+1变相表示上次服务器发出的第w个包已经收到

tcp的三次握手和四次挥手

标签:个数   三次握手   数据   就是   lis   rcv   同步   挥手   list   

原文地址:http://blog.51cto.com/13542058/2296311

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!