我前几天才搞懂为啥是3次握手。。 而不是2次或者4次?
有一个知识点是: 服务器端的socket底层是2个队列: 1个是正在连接的socket。 1个是连接上的客户端socket
第一次是: 客户端向服务器发送ack,表示:我要连接了,这时服务器接收到ack后,放到第一个队列中,记录下:这个socket正在发送ack要连接
第二次是:服务器会送ack,告诉服务器,咱俩能连上
第三次是:客户端发送ack,然后服务器收到后,将从第一个队列中移除,放到第二个队列中,表明这个服务器socket真正表明客户端的socket连上了
所以:不是2次,也不是4次。 就是3次
服务器端的socket: 第1个队列都是:正在发送ack,握手没完成的客户端socket 第二个队列中的,都是连接上的客户端socket
之所以引出这个问题是因为: 为什么netty要设计一个BossGroup,一个WorkerGroup
难道一个EventLoopGroup就不行吗? 这个原因就是因为考虑到服务器端Socket真实的情况是2个队列
来源:oschina
链接:https://my.oschina.net/u/4345306/blog/4258289