本文但愿以简单易懂的形式解释下这个问题,其具体的发包数据、过程等还请自行Google。纯属我的观点,若有不妥,还请各位看官指教。资源
TCP协议是一种面向链接的、可靠的、基于字节流的传输层通讯协议,采用全双工通讯。请求
那为何须要三次握手呢?请看以下的过程:通信
三次握手大概就是这么个过程。
经过第一次握手,B知道A可以发送数据。经过第二次握手,A知道B能发送数据。结合第一次握手和第二次握手,A知道B能接收数据。结合第三次握手,B知道A可以接收数据。数据
至此,完成了握手过程,A知道B能收能发,B知道A能收能发,通讯链接至此创建。三次链接是保证可靠的最小握手次数,再屡次握手也不能提升通讯成功的几率,反而浪费资源。协议
那为何须要四次挥手呢?请看以下过程:时间
B收到确认信号,断开链接,而A在一段时间内没收到B的信号,代表B已经断开了,因而A也断开了链接。至此,完成挥手过程。block
可能有捧油会问,为何二、3次挥手不能合在一次挥手中?那是由于此时A虽然再也不发送数据了,可是还能够接收数据,B可能还有数据要发送给A,因此两次挥手不能合并为一次。
挥手次数比握手多一次,是由于握手过程,通讯只须要处理链接。而挥手过程,通讯须要处理数据+链接。