为什么是三次握手而不是两次握手为什么是四次挥手
来源:互联网 发布:数学建模软件 编辑:程序博客网 时间:2024/05/01 09:27
为什么是三次握手捏:::
三次握手可以简单看做是客户发送请求,服务器对客户的请求进行确认,客户对服务器的确认再进行确认。
如果采用两次握手,假设下面这种情况,客户向服务器发送请求,服务器没有对客户的请求进行确认(因为网络的延迟他可能没有收到这个请求)。客户收不到这个确认于是过一段时间他在向服务器发起连接请求并顺利完成数据传输,但是过了一段时间这个请求到达了服务器而服务器误以为这是一个新的连接请求于是对这个请求进行确认并发送确认给客户但是客户没有发起过连接请求因此它不会理会服务器的确认,服务器以为这个连接已经建立好了于是一直等待客户发送数据,这样就会造成服务器的资源浪费。如果采用三次握手上述情况客户不会向服务器的确认进行确认,这样服务器收不到确认它就知道客户没有要发起请求的连接,于是不会再等待。
三次握手主要是为了防止已失效的连接请求报文突然到达服务器,造成服务器的等待和资源的浪费。
为什么是四次挥手捏:::
在三次握手的过程中,SYN和ACK是一起发送的但是在四次挥手的时候FIN和ACK却不是一起发送的而是分开发送的,为什么呢???那是因为啊,TCP连接是全双工的也就是说接收到FIN只是说没有数据再发过来但是还是可以发送数据的,也就是接受到一个FIN只是关闭了一个方向的数据传输,另一个方向还可以继续发送数据。在四次挥手的时候也是这样前两次挥手只是确认关闭了一个方向的数据,加上后面两次挥手才真正的关闭了整个全双工连接。
当socket在ESTABISHED状态时,他想主动关闭连接于是向对方发送FIN请求,发送完FIN请求后它处于FIN_WAIT_1状态,当对方确认ACK报文后则处于FIN_WAIT_2状态。FIN_WAIT_2表示半连接,也就是有一方要求关闭连接,另一方收到请求但是告诉她我还有一些数据要发送稍后会关闭。TIME_WAIT状态表示收到对方的FIN并发送出ACK.如果三次握手可能在关闭后还有一个方向没有关闭。
- 为什么是三次握手而不是两次握手为什么是四次挥手
- 为什么是三次握手而不是两次握手,为什么是四次挥手
- 为什么TCP是三次握手而不是两次握手,为什么是四次挥手
- TCP为什么是三次握手,而不是两次
- TCP建立连接为什么是三次握手而不是两次握手
- TCP 为什么是三次握手,为什么不是两次或四次?
- TCP 为什么是三次握手,为什么不是两次或四次?
- TCP 为什么是三次握手,为什么不是两次或四次?
- TCP 为什么是三次握手,为什么不是两次或四次?
- 为什么tcp建立连接是三次握手而不是两次握手或者四次握手?(笔试面试常考)
- TCP为什么是进行三次握手与四次挥手?
- TCP为什么是三次握手不是两次四次呢?
- TCP建立连接为什么是三次握手,为什么不是两次或四次?
- Tcp为什么要三次握手四次挥手
- 为什么一定要是三次握手,四次挥手
- TCP的三次握手和四次挥手,以及两次握手为什么不行?
- TCP三次握手,为什么是三次握手
- TCP的三次握手和四次挥手的过程?三次握手改成两次或者四次可以吗为什么?
- linux 环境下开发的权限问题
- c++ primer(第五版)学习笔记及习题答案代码版(第十四章)重载运算与类型转换
- Java接口,多态的解析图
- web.xml加载顺序
- Oracle ORA-01033: ORACLE initialization or shutdown in progress 错误解决办法
- 为什么是三次握手而不是两次握手为什么是四次挥手
- 为什么选用检索引擎
- Android开篇的基础知识归纳(狠基础)
- 第五周 三角形类 成员函数的实现
- 控制台上画三角形圆和直线
- ubuntu桌面的标题栏和启动栏消失问题[亲测可用]
- SQL Server连接MySQL
- 进口机械设备不合格率高 “外国产”也要多留个心
- 关于网站SEO