关于TCP连接的三次握手和终止连接的四次握手

       正常的TCP连接三次握手和终止连接的四次握手图(转自 TCP/IP 详解):

    

        以前看到这个图一直有个疑问,就是 连接的时候需要分别需要两对SYN/ACK, 终止连接的时候也需要两对FIN/ACK,为什么TCP连接的时候可以合并成三次握手,而终止连接的时候要用四次握手,终止连接的时候 FIN/ACK 为什么不能合并?

        今天终于大概明白一点,应该这样的:

        TCP连接的三次握手都是TCP/IP 协议栈 完成的,例如c/s模型中,三次握手完成后 该连接就会进入到服务端的 缓冲队列中,等待accept应用层处理;

        而终止连接的时候,由于 TCP是全双工的,所以需要c/s两端都进行close(sockfd)操作,四次握手中,第三次发送FIN必须由应用层操作,也就是close(sockfd),而且close之前可能还会发送数据,所以终止连接的四次握手,不能像连接的时候那样合并成三次握手。

        其实上面的内容早就了解过,就是没有串起来去思考这个问题,现在才想明白,感觉自己略坑敲打...

    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值