我前幾天才搞懂爲啥是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個隊列