三次握手和四次分手是受传输控制层控制的
为什么要三次握手
首先,要三次握手的一个核心理念是
通信是双工的,双方都要确保自己可以发送和接收对方的数据。
以A和B通信为例。
1.首先第一次握手是A向B发送数据,如果成功的话,B知道自己可以接受A发来的数据
2.B向A发送数据是第二次握手,如果成功,A知道了A可以发送到B,也可以知道A可以接收B的数据,这样A方确保了自己的功能完备。但是B还不知道自己能不能发送数据到A。
3.A向B发送数据,B成功接收的话,双方都确定自己可以发送消息到对方和接收对方消息。可以开辟端口号进行单独通信。
为什么要四次分手
A端和B端分手
第一次分手:A向B提出断开连接请求,B接收到了。
第二次分手:B向A发出确认收到的确认包。但这只能表示B收到了A想断开请求的包,不用它继续发断开请求包了。但是并不意味着可以断开了,因为断开也要通过双方协定,可以能B还要发送待发送的数据。
第三次分手:B向A发送想断开的请求。但是为了防止A收不到B发送的断开请求而一直开着端口,所以B还要继续发断开请求直到确保A收到。
第四次分手:A向B发送确认收到的请求。同时关闭自身的端口。B接收到也关闭端口。