TCP的握手与挥手
2021年2月4日
三次握手:
- 将报头中的SYN置为1,生成ISN,发送后进入SYN-SENT状态。
- 对端接到后,生成ISN,并将ACK位置为1,确认号置为收到的序列号+1,发出后进入SYN-RECV状态。
- 请求连接段收到后,将ACK位置为1,序列号置为收到的确认号,确认号置为收到的序列号+1,发送到对端。
四次挥手:
- 将FIN位置为1,序列号为收到的上一个包的确认号,确认号为收到的上一个包中的序列号+传输的数据长度,同时本端进入FIN-WAIT1状态。
- 对端收到后将ACK置为1,序列号为收到包的确认号,确认号置为收到包的序列号,发出后进入close-wait状态。这状态下依然可以传输数据。
- 对端将所有的数据发送完之后,发送释放连接报文,SYN置为1,序列号为收到包的确认号,确认号为收到包的序列号,发出后进入LAST-wait
- 本段收到后,将ACK置为1,序列号为收到的确认号,确认号为收到的序列号,发出后进入time-wait时间,等待2*MSL后close。