TCP连接管理:
一、连接建立(三次握手)
1、第一次握手
客户向服务器发送连接请求段:SYN 报文段:(SYN=1,seq=x)
SYN=1:建立连接请求控制段
seq=x:表示传输的报文段的第 1 个数据字节的序列号是 x,并以此序列号代表整个报文段的序号(补充:sequence number,序号的意思。)
客户端进入 SYN_SEND(同步发送)
2、第二次握手
- 服务器收到 TCP 连接请求段后,如同意,则发回确认报文段:(SYN=1,ACK=1,seq=y, ack_seq=x+1)
SYN=1:同意建立新连接的确认段
ack_seq=x+1:表示已经收到了序列号为 x 的报文段,准备接收序列号为 x+1的报文段。
seq=y:服务器告诉客户确认报文段的第 1 个数据字节的序列号是 y。 - 服务器由 LISTEN 进入 SYN_RCVD(同步收到)
3、第三次握手,只有第三次握手可携带数据。
客户对服务器的 同意连接报文段 进行确认:(ACK=1,seq=x+1,ack_seq=y+1)
seq=x+1:客户传输的报文段的第一个数据字节的序列号是 x+1
ack_seq=y+1:客户期望接收服务器序列号为 y+1 的报文段。
当客户发送 ACK 时,客户端进入 ESTABLISHED 状态;
当服务收到 ACK 后,也进入 ESTABLISHED 状态;
下一篇 :连接拆除(四次挥手)期待吧......
网友评论