码迷,mamicode.com
首页 > 其他好文 > 详细

三次握手和四次挥手(二)

时间:2018-02-27 13:19:14      阅读:113      评论:0      收藏:0      [点我收藏+]

标签:time   请求   就是   告诉   font   server   建立连接   客户   三次握手   

(一)为什么要三次握手而不是两次握手

①:原因--->会造成服务器端资源浪费(因为当碰上网络延时的时候,服务器端会给失效的报文建立连接,然后客户端又不会发送数据)。

(二)为什么连接的时候是三次握手,关闭的时候却要四次挥手?

①:原因--->建立连接时:当Server端收到Client端的SYN连接请求报文后,可以直接发送SYN+ACK报文。其中ACK报文是用来应答的,SYN报文是用来同步的

                    关闭连接时:当Server端收到FIN报文时,很可能并不会立即关闭SOCKET,所以只能先回复一个ACK报文,告诉Client端,"你发的FIN报文我收到了"。只有等到我Server端所有的报文都发送完了,我才能发送FIN报文,因此不能一起发送。故需要四步握手。

(三)为什么TIME_WAIT状态需要经过2MSL(最大报文生存时间)才能返回到CLOSE状态

①:原因-->因为我们必须假象网络使不可靠的,有可能最后一个ACK报文丢失TIME_WAIT状态就是用来重发丢失的ACK报文的。

三次握手和四次挥手(二)

标签:time   请求   就是   告诉   font   server   建立连接   客户   三次握手   

原文地址:https://www.cnblogs.com/not-alone/p/8478273.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!