通过图片及文字描述TCP的建立、传输、控制以及释放各个阶段过程
TCP三次连接
发起方SYN置位,随机生成序列号a
接收方SYN、ACK置位,随机生成序列号b,并将确认号设为a+1
发起方ACK置位,序列号为a+1,确认号为b+1
TCP数据传输过程
序列号seq的值为对方上次发送报文段ACK的值
确认号ACK的值为对方上次发送报文序列号+负载长度,表示该确认号之前序列号的报文都已经接收到
TCP滑动窗口
win字段值表示缓冲区大小,即当前最大可以接收的字节数
数据被上次取走后,相应的缓冲区会被释放
TCP四次挥手
发送方FIN、ACK置位,请求断开连接
接收方接收完数据后,ACK置位进行应答,变为半连接状态
接收方没有需要发送的数据后,FIN、ACK置位,请求断开连接
发送方ACK置位,断开连接