热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

为什么四次握手之后需要等待2MSL

TCP释放过程如下图:为什么A在TIME_WAIT状态必须等待2MSL的时间呢?(1)为了保证A发送的最后一个ACK报文段能够到达B。这个ACK报文段有

TCP释放过程如下图:
在这里插入图片描述
为什么A在TIME_WAIT状态必须等待2MSL的时间呢?
(1)为了保证A发送的最后一个ACK报文段能够到达B。这个ACK报文段有可能丢失,因而使处在LAST_ACK状态的B收不到对已发送的FIN+ACK报文段的确认。
B会超时重传这个FIN+ACK报文段,而A就能在2MSL时间内收到这个重传的FIN+ACK报文段。
接着A重传一次确认,重新启动2MSL计时器。
最后,A和B都正常进入到CLOSED状态。如果A在TIME-WAIT状态不等待一段时间,而是在发送完ACK报文段后立即释放连接,那么就无法收到B重传的FIN+ACK报文段,因而也不会再发送一次确认报文段。
这样,B就无法按照正常步骤进入CLOSED状态。

(2)“已失效的连接请求报文段”出现在本连接中。A在发送完最后一个ACK报文段后,再经过时间2MSL,就可以使本连接持续的时间内所产生的所有报文段都从网络中消失。
这样就可以使下一个新的连接中不会出现这种旧的连接请求报文段。
B只要收到了A发出的确认,就进入CLOSED状态。
同样,B在撤销相应的传输控制块TCB后,就结束了这次的TCP连接。我们注意到,B结束TCP连接的时间要比A早一些。

在这里插入图片描述


推荐阅读
  • 本文探讨了大数据生态系统的构建,重点介绍其分布式存储和运算机制,并补充相关技术及应用场景。 ... [详细]
  • 尽管深度学习带来了广泛的应用前景,其训练通常需要强大的计算资源。然而,并非所有开发者都能负担得起高性能服务器或专用硬件。本文探讨了如何在有限的硬件条件下(如ARM CPU)高效运行深度神经网络,特别是通过选择合适的工具和框架来加速模型推理。 ... [详细]
  • 本文介绍了多个适用于用户界面设计的Canvas框架,帮助开发者选择最适合的工具。 ... [详细]
  • 本文详细介绍如何利用已搭建的LAMP(Linux、Apache、MySQL、PHP)环境,快速创建一个基于WordPress的内容管理系统(CMS)。WordPress是一款流行的开源博客平台,适用于个人或小型团队使用。 ... [详细]
  • Windows 环境下重启 MySQL 服务的方法
    本文详细介绍了在 Windows 操作系统中如何正确地重启 MySQL 数据库服务,包括常见的权限问题及其解决方案。 ... [详细]
  • 降噪耳机与普通耳机的差异解析
    对于不太了解耳机分类的朋友来说,区分降噪耳机和普通耳机可能有些困难。本文将详细对比这两类耳机在降噪技术、效果及佩戴舒适度等方面的差异,并提供选择建议。 ... [详细]
  • PHP 过滤器详解
    本文深入探讨了 PHP 中的过滤器机制,包括常见的 $_SERVER 变量、filter_has_var() 函数、filter_id() 函数、filter_input() 函数及其数组形式、filter_list() 函数以及 filter_var() 和其数组形式。同时,详细介绍了各种过滤器的用途和用法。 ... [详细]
  • 本文详细介绍了 iBatis.NET 中的 Iterate 元素,它用于遍历集合并重复生成每个项目的主体内容。通过该元素,可以实现类似于 foreach 的功能,尽管 iBatis.NET 并未直接提供 foreach 标签。 ... [详细]
  • 蒟蒻林荫小复习——莫比乌斯反演
    莫比乌斯反演积性函数:对于函数f,如果有质数p,q,使得f(p)f(q)f(pq),则函数f为积性函数设积性函数f,有和函数 显然,F由f决定,这种关系是否可以反过来?  F(1) ... [详细]
  • DedeCMS栏目列表调用中currentstyle中也支持autoindex的方法
    在《DedeCMS自增函数autoindexitemindex用法全解析》中,余斗给大家详细说明了DedeCMS中的autoindex和itemindex的日常用法,而我们在DedeCMS建站过程中,调用顶级栏目之类的会用到currentstyle属性,来实现当 ... [详细]
  • JavaScript 中创建对象的多种方式
    本文介绍了 JavaScript 中创建对象的几种常见方法,包括字面量形式、构造函数、原型对象等。每种方法都有其特点和适用场景,通过对比分析,帮助开发者选择最适合的方式。 ... [详细]
  • 随着Redis功能的不断增强和稳定性提升,其应用范围日益广泛,成为软件开发人员不可或缺的技能之一。本文将深入探讨Redis集群的部署与优化,包括主从备份机制、哨兵模式以及集群功能,帮助读者全面理解并掌握Redis集群的应用。 ... [详细]
  • 本文详细介绍了游戏中胜场数和净胜场数的计算方式,通过公式解析和实例说明,帮助玩家更好地理解这两项统计数据。文章还提供了多种计算方法及其应用场景,确保读者能够全面掌握相关知识。 ... [详细]
  • 华为Mate 60 Pro截屏指南
    了解如何在华为Mate 60 Pro上进行截屏操作。本文将详细介绍多种便捷的截屏方法,帮助用户快速掌握这一实用功能。 ... [详细]
  • 本教程将指导您如何运用Photoshop中的笔刷、路径等工具,通过高超的控制技巧,从简单图形出发,打造出令人惊艳的光束效果。适合有一定基础的用户进行尝试。 ... [详细]
author-avatar
宝贝小左手很开心
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有