简单的理解,可以把客户机当作A,服务器当作B。
A要给B建立连接的三次握手:
A说:B啊,我想跟你建立连接♂
B说:好嘞,那你发吧
A说:那我开始发了啊
A:哒哒哒开始发数据
为什么是三次?两次可以不?四次可以不?
如果是两次:
A:B啊,我想跟你建立连接~
却因为网络延迟没有及时发送到B那里。
过了一会儿,A又发起连接请求,这次成功建立连接并传输了数据。
随后,A第一次发的请求在延迟了N年之后到达了B那里,B在回复A之后就完成了两次握手开始等A发数据,但A已经拿到了数据所以不会再理B,于是B一直处于等待状态,这样就浪费了主机资源。
如果是四次呢?
三次就够了,再增加握手次数并不能显著提高可靠性,没有必要。
A跟B取消连接的四次挥手:
A说:B啊,我的数据请求发完了
B说:好的,我看看我这里还有没有没发完的,有的话发给你
B说:我这里的数据也发完了,可以关闭连接了
A说:好,我一会就关
B收到回复关闭连接
2*MSL(最长报文段寿命)之后A关闭连接
为什么A要等2MSL再关闭连接?
一:如果第四