TCP三次握手
- 为什么需要三次握手
- TCP是一种可靠的传输,所以建立连接的时候也是需要保证可靠的,应答机制是必不可少的。A和B要完成一次完整的信息交互:A向B发送了一次数据,B必须告诉A自己收到数据,并且告诉一些信息给A,这就导致第二次数据的发送,当然A收到B发过来的数据,也必须告诉B自己收到了数据,所以A需要再一次发送数据给B。这三次是完成一个信息交互最基本的过程,整个过程感觉上是一问一答,有问必答的形式。可以使用打电话的例子来理解:
- 三次握手过程
- 发起人A拨通B的电话(发送SYN),告诉对方自己是A(seq = x),我找B;
- B拿起电话(发送SYN),B说:是A啊(发送ACK = x+1),你好!我就是B(seq = y);
- A说:B你好(ACK = y+1) , 我找你要主要是为了…(seq = x+1);
- 三次握手图解:
TCP四次挥手
- 为什么需要四次挥手
- 同样,由于TCP是可靠的数据传输协议,且连接的两端都会发送数据,因此,在客户端结束数据的发送后,客户端结束连接,但是服务器端数据可能还没有传输完成,因此服务器端也需要独立的进行数据的断开过程。
- 四次挥手过程:
- A:我的数据发完啦(FIN);
- B:好的(ack ),等等我哈,我发完了告诉你;
- …//B发送数据中
- B:我的数据也发完啦(FIN);
- A:好的,下次见(ack);
- 图解四次挥手过程: