TCP/IP(十二)TCP的确认、超时、重传机制

这篇具有很好参考价值的文章主要介绍了TCP/IP(十二)TCP的确认、超时、重传机制。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一   TCP的确认应答机制

确认应答机制: 每次'收到数据' '都会' 给对端发送一个'应答报文(ACK)'

①  重传的肯定确认

确认机制: '超时' 重传的 '肯定' 确认  --> 完成了'两个作用',或者说有'两个含义'

1、'肯定[正确]' 确认

小结: 我的确认信息是'针对正确数据'做确认,而'不是错误'的数据

一般情况,确认分为'两种类'型:

  [1]、一种是收到'正确'的数据,向'发送方'发送一个确认信息,告诉它当前我'正确收到'这些数据

  [2]、一种是收到'错误'数据之后,也会向发送方发送一个确认信息,我当前收到这些数据'接收错误'

对于TCP确认机制,采用的是'[1] 前者',只针对'正确接收的数据'做'确认'

补充: '错误'的数据包括出现了'差错[乱序]、丢失、重复',对于这三类,'不会'发送任何的'确认'机制

TCP/IP(十二)TCP的确认、超时、重传机制,TCP/IP,tcp_sack,tcp_dsack,RTT,RTO

思考: 如何'告诉发送方'其发送的数据有'错误'?

答: 接收方根据'有没有'收到确认信息判断

也即: 如果在'一段时间内'发送方没有收到接收方的确认信息,那么就可以判定当前的数据是错误传递的

2、'重传'

对于'错误传递'的机制,TCP当中采用的是'重传方式'来解决错误数据

思考:确认机制在'具体实现'的时候,它是'怎样'告诉对方当前哪些数据我是'正确'接收?

TCP 通过'累计确认'机制  --> 主要体现在'TCP报文段'的 ACK 确认号 和 '序列号'

超时跟网络的'性能'有关 --> 网络拥塞、网络带宽、传输速率  --> 一段时间没有收到就认为'错误'

②  细节 

TCP/IP(十二)TCP的确认、超时、重传机制,TCP/IP,tcp_sack,tcp_dsack,RTT,RTO

TCP/IP(十二)TCP的确认、超时、重传机制,TCP/IP,tcp_sack,tcp_dsack,RTT,RTO

二   TCP的重传机制

说明: 关于'超时'这里不再探讨了,在'三次握手'和'四次挥手'的过程中'内核参数'已经讲过

TCP/IP(十二)TCP的确认、超时、重传机制,TCP/IP,tcp_sack,tcp_dsack,RTT,RTO

①  RTTRTO

理解: RTT 和 RTO '概念'

RTT(Round Trip Time):一个连接的'往返'时间,即数据发送时刻'到'接收到确认的时刻的'差'值

RTT 表示数据包从'发送'到'收到确认应答'的时间,也就是包的'往返'时间

TCP/IP(十二)TCP的确认、超时、重传机制,TCP/IP,tcp_sack,tcp_dsack,RTT,RTO

RTO(Retransmission Time Out):超时重传时间,即从数据发送时刻算起,超过这个时间便执行重传

备注: RTO协议实现值'最小1s'

特点: 超过'这个时间 [指数退避]'没有确认应答,就会'重传'报文段,这个时间根据 'RTT' 来设置的

RTT和RTO的'关系':由于网络波动不确定性,每个RTT都是动态变化的,所以RTO也应随着RTT'动态'变化

②   TCP的重传机制

常见的'重传'机制:

 1、'超时'重传

 2、'快速'重传

 3、SACK

 4、D-SACK

关注: '重传'的'发展'历史,按照上面的'递增'关系

TCP/IP(十二)TCP的确认、超时、重传机制,TCP/IP,tcp_sack,tcp_dsack,RTT,RTO

③  超时重传

TCP 会在以下'两种'情况发生'超时重传':

 1、'数据包'丢失

 2、'确认应答'丢失

TCP/IP(十二)TCP的确认、超时、重传机制,TCP/IP,tcp_sack,tcp_dsack,RTT,RTO

思考: 假设在'重传'的情况下,超时时间 RTO '较长或较短'时,会'发生'什么事情呢?

TCP/IP(十二)TCP的确认、超时、重传机制,TCP/IP,tcp_sack,tcp_dsack,RTT,RTO

TCP/IP(十二)TCP的确认、超时、重传机制,TCP/IP,tcp_sack,tcp_dsack,RTT,RTO

思考: Linux 是'如何计算' RTO 的呢?

TCP/IP(十二)TCP的确认、超时、重传机制,TCP/IP,tcp_sack,tcp_dsack,RTT,RTO

思考: 超时重发的'问题'?  -->  '超时重发的时间等待太长'  -->  '快速重传'

TCP/IP(十二)TCP的确认、超时、重传机制,TCP/IP,tcp_sack,tcp_dsack,RTT,RTO

④  快速重传

TCP/IP(十二)TCP的确认、超时、重传机制,TCP/IP,tcp_sack,tcp_dsack,RTT,RTO

1、'原理图'

快速重传的'工作原理': 是当收到'三个' 重复的ACK报文时,会在定时器'过期之前',重传丢失的报文段

TCP/IP(十二)TCP的确认、超时、重传机制,TCP/IP,tcp_sack,tcp_dsack,RTT,RTO

2、'原理'讲解

TCP/IP(十二)TCP的确认、超时、重传机制,TCP/IP,tcp_sack,tcp_dsack,RTT,RTO

思考: 快速重传机制的'问题'?

 1、快速重传机制只解决了'一个'问题,就是'超时时间'的问题

 2、但是'不知道'该重传 '哪些' TCP 报文,于是就有 SACK 方法

TCP/IP(十二)TCP的确认、超时、重传机制,TCP/IP,tcp_sack,tcp_dsack,RTT,RTO

3、TCP '重复确认'和'快速重传'的一个'案例',用 Wireshark 分析,'显示'如下:

 TCP Dup ACK                --> '重传ACK'

 TCP Fast Retransmission    --> 'TCP 快速重传'

说明: 这个'现象'比较难刻意'构造'

TCP/IP(十二)TCP的确认、超时、重传机制,TCP/IP,tcp_sack,tcp_dsack,RTT,RTO

⑤  SACK  重点

SACK 'Selective Acknowledgment' --> '选择性确认'

TCP/IP(十二)TCP的确认、超时、重传机制,TCP/IP,tcp_sack,tcp_dsack,RTT,RTO

'内核'参数: /proc/sys/net/ipv4/tcp_sack

TCP/IP(十二)TCP的确认、超时、重传机制,TCP/IP,tcp_sack,tcp_dsack,RTT,RTO

TCP/IP(十二)TCP的确认、超时、重传机制,TCP/IP,tcp_sack,tcp_dsack,RTT,RTO

⑥  Duplicate SACK

细节点: 'D-SACK'也是使用'SACK'来'传递'信息

TCP/IP(十二)TCP的确认、超时、重传机制,TCP/IP,tcp_sack,tcp_dsack,RTT,RTO

D-SACK

案例'1': ACK '丢包'

TCP/IP(十二)TCP的确认、超时、重传机制,TCP/IP,tcp_sack,tcp_dsack,RTT,RTO

案例'2': 网络'延时'

TCP/IP(十二)TCP的确认、超时、重传机制,TCP/IP,tcp_sack,tcp_dsack,RTT,RTO

原理'讲解'

TCP/IP(十二)TCP的确认、超时、重传机制,TCP/IP,tcp_sack,tcp_dsack,RTT,RTO

D-SACK 的 '优点'

内核参数: /proc/sys/net/ipv4/tcp_dsack

TCP/IP(十二)TCP的确认、超时、重传机制,TCP/IP,tcp_sack,tcp_dsack,RTT,RTO

TCP/IP(十二)TCP的确认、超时、重传机制,TCP/IP,tcp_sack,tcp_dsack,RTT,RTO文章来源地址https://www.toymoban.com/news/detail-724874.html

到了这里,关于TCP/IP(十二)TCP的确认、超时、重传机制的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • TCP/IP协议栈的心跳、丢包重传、连接超时机制实例详解

    大家好,本文结合具体的问题实例,详细讲解一下TCP/IP协议栈的心跳机制、丢包重传机制等内容,给大家提供一个借鉴和参考。 1、问题概述 虽然软件底层模块在网络恢复后能自动重连上服务器,但会议因为网络问题已经退出,需要重新加入会议。 因为客户特殊的网络运行环

    2024年02月07日
    浏览(36)
  • 【网络】传输层——UDP | TCP(协议格式&&确认应答&&超时重传&&连接管理)

    🐱作者:一只大喵咪1201 🐱专栏:《网络》 🔥格言: 你只管努力,剩下的交给时间! 现在是传输层,在应用层中的报文(报头 + 有效载荷)就不能被叫做报文了,而是叫做 数据段 (报头 + 有效载荷),传输层的有效载荷就是应用层的完整报文。 端口号(port):标识了一个主机上

    2024年02月13日
    浏览(34)
  • 【TCP】重传与超时机制

    在网络通信的世界里,传输控制协议(TCP)扮演着一个至关重要的角色。它确保了数据的可靠传输,就像邮差确保每一封信都能准确无误地送达收件人手中一样。但是,网络环境充满了不确定性,数据包可能会因为各种原因丢失或延迟。为了应对这种情况,TCP实现了重传和超

    2024年04月13日
    浏览(30)
  • 网路原理-传输层UDP,TCP/IP(确认应答,超时重传,连接管理,三次握手,四次挥手,状态转换,流量控制,滑动窗口,拥塞控制,延时应答,捎带应答,异常情况,面向字节流)-网络层(IP协议,地址管理)

    本节重点 • 理解传输层的作⽤,深⼊理解TCP的各项特性和机制 • 对整个TCP/IP协议有系统的理解 • 对TCP/IP协议体系下的其他重要协议和技术有⼀定的了解 我们之前编写完了基本的 java socket ,要知道,我们之前所写的所有代码都在应⽤层,都是为了 完成某项业务,如翻译等。

    2024年04月15日
    浏览(42)
  • TCP重传与超时机制:解锁网络性能之秘

    TCP(传输控制协议)是一种面向连接、可靠的传输层协议。为了保证数据的可靠传输,TCP采用了数据包重传的策略来应对在网络中传输过程中可能出现的丢包、错包、乱序等问题。下面我们详细介绍TCP重传的原理与机制。 (1)确认机制(Acknowledgement Mechanism) TCP通信中,接收

    2024年02月06日
    浏览(49)
  • 5.8.6 TCP可靠传输(二)超时重传机制

    5.8.6 TCP可靠传输(二)超时重传机制 超时重传机制是TCP协议保证数据可靠性另外一个非常重要的机制,它的原理是 当发出一个数据之后就开启一个定时器,如果在规定的时间之内没有得到发送数据报的ACK的应答就应当从缓存中把数据取出并重新发送出去,一直到数据发送成

    2024年02月13日
    浏览(29)
  • 确认应答机制与超时重发机制【TCP原理(笔记一)】

    在TCP中,当发送端的数据到达接收主机时,接收端主机会返回一个已收到消息的通知。这个消息叫做确认应答(ACK(ACK(Positive Acknowled-gement)意指已经接收。) )。 确认应答机制的基本原理 发送方将数据分割成称为TCP段(TCP segment)的较小单元,并为每个段分配一个唯一的

    2024年02月16日
    浏览(29)
  • 【计算机网络】 确认应答机制与超时重传

    当我们客户端发送了一个数据,seq是1 100,那么服务端在收到时就会回一个ack=101的ACK包,代表101之前的包我都收到了,下面请你从101继续发送。然后客户端就会发送101 200,服务端收到后再回一个ack=201,在书写过程中,我们一定要先把标志位置1,然后再发送数据包,否则包是

    2024年02月09日
    浏览(28)
  • TCP 协议(四)重传与超时

    TCP 中有四种计时器(Timer),分别为: 重传计时器:Retransmission Timer 持久计时器:Persistent Timer 保活计时器:Keeplive Timer 等待计时器:Timer_Wait Timer TCP 是保证数据可靠传输的。怎么保证呢?带确认的重传机制。在滑动窗口协议中,接受窗口会在连续收到的包序列的最后一个包

    2024年02月15日
    浏览(35)
  • 网络协议--TCP的超时与重传

    TCP提供可靠的运输层。它使用的方法之一就是确认从另一端收到的数据。但数据和确认都有可能会丢失。TCP通过在发送时设置一个定时器来解决这种问题。如果当定时器溢出时还没有收到确认,它就重传该数据。对任何实现而言,关键之处就在于超时和重传的策略,即怎样决

    2024年02月04日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包