TCP为什么要三次握手?
在谢希仁版《计算机网络》中的解释:
“为了防止已失效的连接请求报文突然又传送到了服务端,因而产生错误。”
这个解释不能令我完全信服,因为似乎不是一种从问题本质出发进行的一般性解释。
综合多方面资料和自己的理解,整理出如下解释:
三次握手目的是建立可靠通信信道,而可靠信道的本质就是数据的发送与接收,三次握手最主要的任务就是要使得双方确认自己与对方的发送功能与接收功能是正常的。
- 第一次握手:Server确认了:自己接收正常、对方发送正常;
- 第二次握手:Client确认了:自己发送、接收正常,对方发送、接收正常;
- 第三次握手:Server确认了:自己发送正常,对方接收正常;
综合以上分析:
- Client首次发送出去消息,对于Client不能确认任何功能,而对于Server可以确认Client的发送功能以及自己的接收功能;
- Client接收到Server的确认消息,对于Client可以确认自己的发送、接收功能以及Server的发送、接收功能;
- Server接收到Client的确认消息,对于Server可以确认自己的发送功能、以及Server的接收功能;
参考:
https://blog.csdn.net/zixiaomuwu/article/details/60965466