三次握手过程
ACK = 用来验证的
SYN= 位数为1,表示建立TCP连接
FIN=位数为1,表示断开TCP连接
建立过程:
- 首先:主机A发送建立TCP连接的请求报文,报文包含seq序列(发送端随机生成),并将SYN字段设置为1,表示需要建立TCP连接
- 其次,主机B会回复A发送的TCP请求报文,会产生ACK字段,ACK字段实在A发送过来的seq序列号基础上加1,并进行回复,让A知道建立TCP建立请求已经得到了验证
- 最后,A端收到B端发送的TCP请求验证通过后,会让自己的序列号在次加1,并且在次回复ACK验证请求,在B端发送过来的seq基础上在加1,进行回复
四次挥手
断开过程:
- 主机A发送断开TCP连接请求的报文,其中报文包含seq序列号,发送端随机生成。并且将报文中FIN字段设为1,表示需要断开TCP连接
- 主机B会回复A发送TCP断开请求报文,产生ACK字段,ack字段数值,是A发送过来的seq序列号基础上加1,进行回复,以便A收到信息时,知道TCP断开请求的验证。
- 主机B在回复A的TCP断开请求后,不会立马就断开TCP连接,主机B先确保断开前,所有传输到A的数据是否已经传输完成,一旦确认输出完成就会回复报文的FIN字段设置为1,并产生随机seq序列号
- 主机A收到主机B的TCP断开请求后,回复主机B的断开请求,包含随机生成的seq字段和ack字段,ack字段会在主机B的TCP断开请求的seq基础上在加1,从而完成主机B请求的验证回复 ,至此TCP断开的4次挥手过程完毕
TCP/IP状态图
分解图