一、首先第一个要知道的就是tcp是一个可靠的、全双工的协议。
并且提供排序、确认等机制,双方会互相确认,客户端(client)向 服务器(server) 发送一个 包(例如:syn),那么服务器同样也会恢复一个(ask)的确认包,根据这个概念。
二、四次握手:
首先4次握手是可以的,如下就是发送步骤,但是可以发送中间有两次是服务端一起发起的,那么就是不是可以一起发送嗯?根据如下的列子就可以发送4次其实是浪费资源的。
1、客户端像服务端发送一个 的包(syn)。
2、服务端也想客户端发送一个(ask)。
3、服务端向客户端发送一个(syn)。
4、客户端确认服务端发送的包(ask)。
三、两次握手:
如果根据4次握手可以发现4次握手是浪费的,那么中间的两次一起发就是3次握手,如果最后的一次 ask 的包不发送的话,就违背了全双工协议、不发送最后的ack整个握手也就建立不成功,会造成服务资源的浪费,这个时候服务端在发送的话就会造成资源的浪费,双发一定要有一个确认的机制。
1、客户端像服务端发送一个