博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
三次握手和四次挥手(二)
阅读量:4541 次
发布时间:2019-06-08

本文共 499 字,大约阅读时间需要 1 分钟。

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

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

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

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

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

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

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

转载于:https://www.cnblogs.com/not-alone/p/8478273.html

你可能感兴趣的文章
Software Testing Homework1: An error in my past program
查看>>
还原bidplant
查看>>
servlet+jsp修改商品信息
查看>>
Qt禁止调整窗口的大小
查看>>
javascript DOM——初学2
查看>>
eclise linux c mysql
查看>>
Js跳出循环
查看>>
SQL Server truncate与delete的区别
查看>>
JavaScript表单验证
查看>>
MySql表结构修改详解
查看>>
errno多线程安全(转载)
查看>>
使用maven和svn进行版本控制
查看>>
【bzoj2959】长跑【LCT+并查集】
查看>>
.NET 框架 Microsoft .NET Framework (更新至.NET Framework4.8)
查看>>
医院院长修电脑
查看>>
Android工程方法数超过65535的解决办法
查看>>
深度学习面试
查看>>
asp.net之DataList的使用方法,及分页(存储过程创建),编辑,更新,删除
查看>>
JQuery弹出层,点击按钮后弹出遮罩层,有关闭按钮【转】
查看>>
Codeforces 138D World of Darkraft
查看>>