首先我们要知道TCP的结构
如同所示,它拥有着4种可靠机制-确认、排序、流控(滑动窗口机制)、重传。
三次握手:
第一次握手:客户端向服务端发送一个请求,然后随机随机生成一个序列号。
第二次握手:服务端收到请求后,需要答复回去,首先需要将收到的序列号存储,并且生产自己本身的一个序列号,还有回复一个确认号(客户端序列号+1)。
第三次握手:客户端收到回复后,了解到自己的请求同意了,然后就要再次回复服务端,本次回复是服务端序列号+1,这样服务端才会知道客户端收到了自己的答复。
四次断开:
第一次断开:客户端第一次发送请求之后,就无法发下一次请求。但可以正常接受。
第二次断开:在服务端接收到客户端请求时,并不是第一时间就发送出去,而是关闭等待状态,持续发送答复。并且确认序列号,确认号是否正确。
第三次断开:服务端将最后的答复发送完毕后,会持续发送确认号,序列号。
第四次断开:客户端收到后,会再次向服务端发送,但是发送之后并不是第一时间释放TCP链接,而是要等待结束请求后才会发送,服务端接受完毕后会立马释放TCP链接,所以服务端结束TCP链接比客户端更快。