TCP的三次握手:
1.发送一个SYN包,并等待确认,标志位为SYN=1,表示请求建立连接;序号为Seq = x(x 一般取随机数);
2.接收到发来的SYN包后,对该包进行确认后结束,并返回一段 TCP 报文。标志位为SYN和 ACK,表示确认客户端的报文 Seq 序号有效,能正常接收A发送的数据,并同意创建新连接; 序号为 Seq = y;确认号为 Ackn(ack)= x + 1,表示收到序号 Seq 并将其值加 1 作为自己确认号 Ack 的值(询问下一个数据包)。
3.接收到发送的 SYN + ACK 包后,明确了数据传输是正常的,并返回最后一段报文。标志位为 ACK,表示确认收到同意连接的信号;序号为 Seq = x + 1,表示收到确认号 Ack,并将其值作为自己的序号值;确认号为 Ack= y + 1,表示收到服务器端序号 seq,并将其值加 1 作为自己的确认号 Ack 的值。
FIN—发送端完成位,提出断开连接一方要把FIN置为1表示断开连接
SYN—同步序号位,TCP建立时要设置该值为1
URG—紧急标志位
ACK—确认标志位(为1表示确认号)
PSH—推送
四次断开:
流控:滑动窗口机制
发送时Ack=1、2、3、4,win=4(发几个就是几)
接收时Ack=5,win=4(收几个就是几)
下一次发送时win会增大,随后会跟随用户网速逐渐减小/增大