三次握手:

  1. 将报头中的SYN置为1,生成ISN,发送后进入SYN-SENT状态。
  2. 对端接到后,生成ISN,并将ACK位置为1,确认号置为收到的序列号+1,发出后进入SYN-RECV状态。
  3. 请求连接段收到后,将ACK位置为1,序列号置为收到的确认号,确认号置为收到的序列号+1,发送到对端。

四次挥手:

  1. 将FIN位置为1,序列号为收到的上一个包的确认号,确认号为收到的上一个包中的序列号+传输的数据长度,同时本端进入FIN-WAIT1状态。
  2. 对端收到后将ACK置为1,序列号为收到包的确认号,确认号置为收到包的序列号,发出后进入close-wait状态。这状态下依然可以传输数据。
  3. 对端将所有的数据发送完之后,发送释放连接报文,SYN置为1,序列号为收到包的确认号,确认号为收到包的序列号,发出后进入LAST-wait
  4. 本段收到后,将ACK置为1,序列号为收到的确认号,确认号为收到的序列号,发出后进入time-wait时间,等待2*MSL后close。