TCP/IP学习笔记-超时重传

TCP/IP学习笔记(四)TCP超时重传及拥塞控制 TCP是可靠的传输层协议,但这并不意味着一端发送的数据一定可以到达另一端,因为传输过程中遇到的情况是不可控的,很有可能就有某些数据发生丢失,所以”可靠”其实并不可靠。 不过毕竟现如今的网络设备还算完善,传输过程中由于硬件错误导致数据丢失的情况基本可以忽略,那么,数据丢失的原因就只能是:传输路径过于拥堵,导致某些路由器或链路缓冲区无法再容纳多余数据,那么对于新来的数据包就只能丢掉。 为了解决这一... 阅读详情

一、慢启动算法和拥塞避免算法

当网络中出现拥塞,Client端在给定的时间收不到Server端发送的ACK信息,那么Client就会认为是包丢失了。此时Client就需要重新传输包,从包丢失到包重传这个时间间隔就是RTO。
为了解决上面的问题,提出了慢启动算法和拥塞避免算法,具体过程如下:

  • 当Client在第一次握手的时候会告知Server端自己的MSS和Window Size;而Server端也会告知Client端自己的Window_Size和MSS。
  • Client端设置一个最大发送数据的窗口cwnd为2个或3、4个MSS,设置拥塞临界点为ssthresh;
  • 每次Client端发送的数据由cwnd和Server端通告的窗口这两者的最小值决定。cwnd是Client端感知的网络状况确定的,而Server端通告的窗口是由Server缓存处理决定的。Client端发送的数据根据每次接收到的应答数量n增加为cwnd+n;当CLIENT发送的数据到达拥塞临界值时,此时cwnd是按照cwnd+1/cwnd接受的。
  • 一旦出现拥塞(这里说的拥塞,是后面的数据都传不了而不是乱序或者是中间某一个包丢失了),这个时候就需要进行重传,同时我们需要设置Client的发送窗口cwnd=1,且ssthresh设置为拥塞时窗口的1/2(或者是没有确认的数据的1/2),进行重新传输

二、快速重传算法

当我们发送的数据包出现乱序时,这个时候我们的Server就会连续发送三个确认数据给Client。这里为什么是三个确认数据,是因为很少能乱三个包的。
快速重传是,如果在传递过程中前面的传输的包和后面传输的包都收到了,但是中间还有没收到的包,那么这个时候Server就会连续发三个确认数据给服务端,服务端接收到这个数据以后就会重传该数据。如果是出现乱序的情况也会造成Server端发送重复确认数据的情况,但是只要不是发送的重复确认数据<3,那么就不会启动快速重传功能。

TCP/IP详解学习笔记--TCP的超时与重传 1.基本概念TCP之所以可以安全的将数据在传输中的安全性,是因为它每次给对方发送数据,都会等待对方给个确认,当长时间收不到这个确认,发送端就会重发这个数据。2.超时时间的测量要测超时时间,TCP必须要发送一个特别序号的字节和接收包含该字节的确认之间的RTT,但是,确认本身就是有延时的,所以一般有一种简单的测量超时时间的公式 RTO = RB 其中R为随RTT变化而变化的平滑因子3.拥塞避免算法前 阅读详情

相关推荐

《TCP/IP详解》学习笔记-第21章 TCP的超时与重传

超时重传是TCP协议保证数据可靠性的另一个重要机制,原理是TCP每发送一个报文段,就对这个报文段设置一次计时器。如果当定时器溢出时还没有收到确认,它就重传该数据。对任何实现而言,关键之处就在于超时和重传的策略,即怎样决定超时间隔和如何确定重传的频率。1、超时超时时间的计算是超时的核心部分,TCP要求这个算法能大致估计出当前的网络状况,虽然这确实很困难。要求精确的原因有两个:(1)定时太久会造成网络利

爱橙子的OK绷的专栏 1047

超时重传相关问题学习

注:内核版本4.14.119 一、问题 1. 超时重传的timeout设置和次数 1.1 RTO设置 超时重传RTO的值和rtt有关,即通过rtt可以计算出RTO。RTO的取值范围是[TCP_RTO_MIN(HZ/5), TCP_RTO_MAX(120HZ)],RTO的具体计算此处不展开。 1.2重传次数 1.2.1 三次握手的重传次数 在三次握手时,重传次数时可以确定的。 net.ipv4....

dyingfair的专栏 970

ESD放电路径分析

当金属外壳接地情况下,大部分外部干扰信号将会通过外壳,外壳到接地点,再由接地点回到干扰信号的地,实现干扰信号的回流,这点不仅仅适用于​ESD,对于其他的RI类干扰,也同样适合。发现内部金属板跟外壳的搭接处存在较多的缝隙点,该缝隙点对于频率较高的信号能够实现较为理想的回流,但是对于频率没有那么高的信号,则较难以实现回流,我们尝试将这些缝隙用铜箔包裹住,充分降低该金属板跟外壳的接触阻抗​。我们分析,路径3其实是不期望的路径,我们最期望的路径是1,或者2的内部金属部件跟外壳良好接触情况下的路径。

domen_pan的博客 2228

TCP 超时重传机制

TCP 超时重传机制

challenglistic的博客 2641

银河麒麟V10SP1实战:5步搞定AD域登录(附Samba+Winbind配置详解)

本文提供银河麒麟V10 SP1操作系统无缝集成Windows AD域的实战指南。文章深入解析了Samba、Winbind与Kerberos三大核心组件的协作原理,并详细阐述了从环境准备、软件包安装、配置文件定制到执行加域及排错的全流程。特别针对2403等新版本提供了关键配置差异与避坑要点,旨在帮助企业运维人员实现高效、稳定的域环境登录与管理。

weixin_29269441的博客 295

车载测试实战:adb logcat日志高效抓取与问题定位技巧

本文详细介绍了车载测试中adb logcat日志的高效抓取与问题定位技巧。作为车载测试的“第一现场”,adb logcat能实时、精准地抓取系统与应用日志,是定位应用崩溃、ANR及功能异常等问题的关键工具。文章从环境搭建、核心命令组合拳到实战分析与自动化脚本,提供了完整的操作指南,帮助测试人员快速掌握这一必备技能,大幅提升问题排查效率。

ii567的博客 1040

TCP/IP详解 卷1:协议 学习笔记 第二十一章 TCP的超时与重传

TCP发送的数据和确认都可能丢失,TCP通过在发送时设置一个定时器来解决这种问题,当定时器溢出时还没收到确认,它就重传该数据。 对于每个连接,TCP管理4个不同定时器: 1.重传定时器用于希望收到另一端的确认。 2.坚持定时器使窗口大小信息保持不断流动,即使另一端关闭了其接收窗口。 3.保活定时器可检测到一个空闲连接的另一端何时崩溃或重启。 4.2MSL定时器测量一个处于TIME_WAIT状态的时间。 观察TCP的重传机制,先建立一个连接,发送一些分组证明一切正常,然后拔掉电缆,发送更多数据,再观察TCP的

tus00000的博客 883

基于 STM32 与压电薄膜的婴儿睡眠呼吸暂停监测床垫设计

本设计以 STM32F103C8T6 为主控,结合 PVDF 压电薄膜传感器,通过模拟信号调理与数字峰值检测算法,实现了对婴儿睡眠呼吸状态的实时监测。系统结构简单、成本低廉、无接触无束缚,当检测到 20 秒以上无呼吸信号时自动触发声光报警,可有效降低婴儿睡眠呼吸暂停带来的安全风险。后续可扩展蓝牙 / WiFi 模块,将报警信息推送至家长手机端,实现远程监护。

weixin_42300449的博客 153

TCP/IP详解学习笔记(12)-TCP的超时与重传

超时重传是TCP协议保证数据可靠性的另一个重要机制,其原理是在发送某一个数据以后就开启一个计时器,在一定时间内如果没有得到发送的数据报的ACK报文,那么就重新发送数据,直到发送成功为止。1.超时超时时间的计算是超时的核心部分,TCP要求这个算法能大致估计出当前的网络状况,虽然这确实很困难。要求精确的原因有两个:(1)定时长久会造成网络利用率不高。(2)定时太短会造成多次重传,使得网络阻塞。

一块积木 2万+

Google Gemini 模型本地可视化

Google近期发布了Gemini模型,而且开放了Gemini Pro API,Gemini Pro 可免费使用!Gemini Pro支持全球180个国家的38种语言,目前接受文本、图片作为输入并生成文本作为输出。Gemini Pro的表现超越了其他同类模型,当前版本配备了 32K 文本上下文窗口,可免费使用,且其定价将十分有竞争力。Gemini Pro具备丰富的功能:函数调用、数据嵌入、语义检索、自定义知识嵌入以及聊天功能。

HJ_blog 1247

qcc514x-qcc304x调试笔记

qcc514x-qcc304x调试笔记-1-QCC514x系列 qcc514x-qcc304x调试笔记-2-开发环境搭建 qcc514x-qcc304x调试笔记-3-如何修改蓝牙名称 qcc514x-qcc304x调试笔记-4-如何修改蓝牙地址 qcc514x-qcc304x调试笔记-5-如何区分左右耳 qcc514x-qcc304x调试笔记-6-PIO相关操作 ...

leezs的博客 1244

TCP-IP详解:超时重传机制

超时重传是TCP保证数据传输可靠性的又一大措施

深邃 精致 内涵 坚持 3万+

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

linux tcp 超时时间,TCP/IP学习笔记(12)-TCP的超时与重传

导读超时重传是TCP协议保证数据可靠性的另一个重要机制,其原理是在发送某一个数据以后就开启一个计时器,在一定时间内如果没有得到发送的数据报的ACK报文,那么就重新发送数据,直到发送成功为止。超时超时时间的计算是超时的核心部分,TCP要求这个算法能大致估计出当前的网络状况,虽然这确实很困难。要求精确的原因有两个:(1)定时长久会造成网络利用率不高。(2)定时太短会造成多次重传,使得网络阻塞。所以,书...

weixin_35950531的博客 443

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

TCP/IP详解学习笔记-TCP的超时与重TCP的超时与重传

超时重传是TCP协议保证数据可靠性的另一个重要机制,其原理是在发送某一个数据以后就开启一个计时器,在一定时间内如果没有得到发送的数据报的ACK报文,那么就重新发送数据,直到发送成功为止。 1.超时 超时时间的计算是超时的核心部分,TCP要求这个算法能大致估计出当前的网络状况,虽然这确实很困难。要求精确的原因有两个:(1)定时长久会造成网络利用率不高。(2)定时太短会造成多次重传

爱拼才会赢,技术成就梦想! 691

TCP/IP学习笔记(12)-TCP的超时与重传

超时重传是TCP协议保证数据可靠性的另一个重要机制,其原理是在发送某一个数据以后就开启一个计时器,在一定时间内如果没有得到发送的数据报的ACK报文,那么就重新发送数据,直到发送成功为止。     1.超时         超时时间的计算是超时的核心部分,TCP要求这个算法能大致估计出当前的网络状况,虽然这确实很困难。要求精确的原因有两个:             (1)定时长久会造成

Snow丶的博客 365

TCP/IP 详解卷一学习笔记(六):TCP 超时与重传

往返时间 RTT 重传时间 RTO 拥塞避免 拥塞避免算法 快速重传与快速恢复算法

summer 1044
上一篇: java-final关键字的使用
下一篇: Spring Transaction学习笔记-基于元注解的方式声明事务
markliwei1
博客等级 码龄10年 26粉丝 104原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值