- 三次握手的原因
- 四次挥手的原因
1.表因:为了防止已失效的连接请求报文段突然又传送到了服务端,因而产生错误
2.真正原因:TCP 需要 seq 序列号来做可靠重传或接收,而避免连接复用时无法分辨出 seq 是延迟或者是旧链接的 seq,因此需要三次握手来约定确定双方的 ISN(初始 seq 序列号)
由于TCP是全双工的(即数据可在两个方向上同时传递),因此,每个方向都必须要单独进行关闭
在关闭连接时,当服务器收到客户端的FIN报文通知时,它仅仅表示客户端没有数据发送服务器了;但服务器未必将所有的数据都全部发送给了客户端,所以服务器端未必马上也要关闭连接,也即服务器端可能还需要发送一些数据给客户端之后,再发送FIN报文给客户端来表示现在可以关闭连接了,所以它这里的ACK报文和FIN报文多数情况下都是分开发送的,这也是为什么释放连接时需要交换四次报文了。
link
link
link
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)