2.7.3 以太网 TCP协议(TCP交互过程中出现丢包时的解决机制-列举部分)

参考:CSDN_TCP的重传机制_博主.Pr Young,对描述进行了整理与结合个人的理解进行编写。

一、超时重传机制

  • 在发送数据时,设定一个定时器,当超过指定的时间后,没有收到对方的 ACK 确认应答报文,就会重发该数据。

    当数据包丢失确认应答ACK丢失之后,将发生超时重传。

二、快速重传机制

  • 当多次收到同样的ACK置位TCP报文,将根据ACK置位报文中的ack序号信息进行重传相应的数据。
  • 发送端收到了三个 Ack = 2 的确认,知道了 Seq2 还没有收到,就会重传Seq2
  • 最后,收到了 Seq2,此时因为 Seq3,Seq4,Seq5 都收到了,于是 Ack 回 6

三、SACK(选择性确认)机制

  • SACK( Selective Acknowledgment )选择性确认
  • 与快速重传机制有一定的相似性,SACK中可连续接收发来的报文,SACK用于表示已经接收的报文ACK表示待接收的报文
  • ACK到SACK之间就是需要进行重发的数据范围。

四、Duplicate SACK

  • 工作方式与SACK一样,主要是针对ack丢失的情况和网络延时的情况,SACK有不同的表示方式。

  • Duplicate SACK又称 D-SACK,其主要使用了 SACK 来告诉「发送方」有哪些数据被重复接收了。

解释图中表示内容:

  • 接收方发给发送方的两个 ACK 确认应答都丢失了。第一个包的定时器到了并没有收到接收方回复的ACK确认,将重传第一个数据包(3000 ~ 3499)。

  • 好巧不巧,这次重传的数据回复的ACK终于正常被发送方收到,但ACK内容是:ACK=4000、SACK=3000~3499,意为成功接收了前面的报文,期待下一个数据包编号是4000开始,但收到了重复的数据:3000~3500。

  • 发送方根据回复的ACK、SACK知道发送的数据没有丢,只是接收方的 ACK 确认报文丢了。

以太网 TCP协议交互过程中出现丢包时的解决机制,超时重传、快速重传、SACK与DSACK相关推荐

  1. udp丢包原因和解决

    一.主要丢包原因 1.接收端处理时间过长导致丢包:调用recv方法接收端收到数据后,处理数据花了一些时间,处理完后再次调用recv方法,在这二次调用间隔里,发过来的包可能丢失.对于这种情况可以修改接收 ...

  2. 千兆以太网TCP协议的FPGA实现。

    千兆以太网TCP协议的FPGA实现 Lzx 2017/4/20 写在前面,这应该是我大四最后一个工程性的作品了,以后要养成写文档记录的习惯.说明下,本工程为纯verilog实现的硬件TCP收发器,不同 ...

  3. PPPoE协议交互过程

    PPPoE协议交互过程 1.发现阶段(PPPoED:PPPoE Discovery) 1.1 PADI(PPPoE Active Discovery Initiation) 1.2 PADO(PPPo ...

  4. TCP协议握手过程,以及为什么握手,不握手又会怎么样?

    1. 为什么要用三次握手 在<计算机网络>一书中其中有提到,三次握手的目的是"为了防止已经失效的连接请求报文段突然又传到服务端,因而产生错误",这种情况是:一端(cli ...

  5. php万国码,前后端交互过程中的编码

    起因 最近在写PHP,本身对PHP不太熟练.然后遇到编码这个问题,困扰了大半天,索性,系统探索解决一番. 前后端交互过程中涉及的编码 Browser cilent: 首先,浏览器的设置里有设置编码格式 ...

  6. 用协议软件分析ping大包丢包故障

     故障环境   说明:     1 .办公机器都属于10.12.128.0/24网段:     2 .办公机器通过一个二层的接入交换机.光电转换器接入集团核心交换机.     故障现象     ●Pi ...

  7. 探讨:在Mac新系统下安装新版XAMPP过程中遇到到的坑以及解决办法

    探讨:在Mac新系统下安装新版XAMPP过程中遇到到的坑以及解决办法 简介 XAMPP安装 XAMPP 是个啥? 安装XAMPP 新版问题:IP地址访问不再是localhost 操作问题:apache ...

  8. Pentaho部署文档校验过程中遇到的一些问题和解决对策

    为什么80%的码农都做不了架构师?>>>    Pentaho部署文档校验过程中遇到的一些问题和解决对策 1.quartz.EmbeddedQuartzSystemListener发 ...

  9. volcanol_Linux_问题汇总系列_1_系统引导过程中到check filesystem时就无法继续引导问题解决方法。...

    在说问题之前,首先说一下我的用户名:volcanol.这里有点巧合,在上高中之前,我比较喜欢看火山喷发的景象,然后上了高中后 学习了火山这个单词:volcano, 然后加上我自己的姓的第一个字目是&q ...

最新文章

  1. 【ubuntu工具】Atom的简介及安装
  2. 编写更少量的代码:使用apache commons工具类库
  3. HDU 4466 Triangle(计数)
  4. 【oracle】复合数据类型
  5. 推荐系统之业务架构总览
  6. Java泛型之泛型参数
  7. silverlight 获取文本框焦点
  8. CUDA中并行规约(Parallel Reduction)的优化
  9. [Git] 关于refs/for/ 和refs/heads/
  10. YUI 3:Node
  11. SpringAOP原理分析
  12. 数据库(mysql)之事务和存储引擎
  13. 1000!末尾 有几个0
  14. Javascript函数小案例--《找质数》
  15. 你知道怎么用Pandas绘制带交互的可视化图表吗?
  16. centos 编译 rabbitmq-c 遇到 undefined reference to OPENSSL_init_ssl, BIO_meth_set_read 等报错的解决
  17. 光伏发电并网模型MATLAB SIMULINK Boost+三相逆变器 PLL锁相环 MPPT最大功率点跟踪控制(扰动观察法)
  18. MATLAB-最大值与最小值
  19. MCU之按键驱动 -剥离按键驱动和事件处理
  20. Java中Stream的close

热门文章

  1. AJAX简单思维导图
  2. aws mysql 费用_AWS都收了哪些费用?
  3. 电子仪表系统显示管理计算机,综合电子仪表系统.ppt
  4. 计算机二级Python历年真题解答(第四套)
  5. 软件团队的模式-窝蜂模式
  6. 用matlab结合STM32作上位机,基于stm32智能小车视觉控制导航的设计参考.pdf
  7. STM32F105RCT6使用CubeMX初始化工程——3:初始化ADC采样
  8. 面对充电桩万亿“蛋糕”的诱惑,OPPO心动了?
  9. Linux中的大于号和小于号
  10. 交接两位同事的工作,体会不一样的态度