【网络】关于 TCP重传率

简书 · · 559 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

 

TCP的错误恢复特性是我们用来定位、诊断并最终修复网络高延迟的最好工具。

常见的TCP错误恢复特性有:TCP重传、TCP重复确认和快速重传。

 

重传数据包是TCP最基本的错误恢复特性之一,用来对付数据包的丢失。

数据包丢失可能原因有很多,如:出故障的应用程序、流量负载沉重的路由器或临时性的服务中断。

数据包层次上的移动速度非常快,而且数据包丢失通常都是暂时的,因此TCP能否检测到数据包丢失并恢复至关重要。

 

如何决定是否重传:

决定是否重传数据包的主要机制叫做:重传计时器,这个计时器负责维护一个重传超时(RTO--Retransmission timeout)的值。

当使用TCP传输一个数据包时,就启动重传计时器,当收到这个数据包的ACK应答时,计时器就停止。从发送数据包到接收ACK确认之间的时间被称为往返时间(Round-Trip time,RTT),若干个这样的时间平均下来,可计算出最终的RTO值。

一旦RTO值确定下来,重传计时器就被用于每个传输的数据包,以确定数据包是否丢失。

 

 

当报文发送之后,但接收方尚未发送TCP ACK报文,发送方假设源报文丢失并将其重传。重传之后,RTO值加倍;如果在2倍RTO值到达之前还是没有收到ACK报文,就再次重传。如果仍然没有收到ACK,那么RTO值再次加倍。如此持续下去,每次重传RTO都翻倍,直到收到ACK报文或发送方达到配置的最大重传次数。

 

最大重传次数取决于发送操作系统的配置值。

默认情况下,Windows主机默认重传5次。大多数Linux系统默认最大15次,两种操作系统都可配置。

 

 

TCP重传率是网络质量的体现,网络这块我们主要看TCP重传率,这个基本在大点的公司都有这块监控。

 

TCP重传率=单位时间内TCP重传包数量/TCP发包总数

 

我们可以把TCP重传率视为网络质量和服务器稳定性的一个只要衡量指标。

还是根据我们的经验,这个TCP重传率越低越好,越低代表我们的网络越好,如果TCP重传率保持在0.02%(以自己的实际情况为准)以上,或者突增,就可以怀疑是不是网络问题了。

 

比如这张图一样,要是和心电图一样,基本上网络问题就没跑了。

 

参考

 

一分钟理解TCP重传

https://mp.weixin.qq.com/s/f-lxycgqwZyHCZcPIpb_tg

 

谈谈Linux中的TCP重传抓包分析

https://cloud.tencent.com/developer/article/1464243

 

关于TCP重传问题的排查思路与实践

https://blog.csdn.net/wufaliang003/article/details/90664256

 

TCP重传率高的监控

https://blog.csdn.net/weixin_30648963/article/details/99459391

 

用zabbix 监控TCP重传率

https://mp.weixin.qq.com/s/iNvCU40qHyVJrku5K1cP-Q

 

TCP协议的深入学习和利用wireshark排查TCP通信的故障视频教程

https://edu.51cto.com/course/8385.html

 

网络协议 TCP/IP 视频教程全集

https://www.bilibili.com/video/BV1Pt41137w6?p=1

 

使用Wireshark抓包排查网络故障和分析TCP/IP协议

https://edu.51cto.com/course/15139.html

https://edu.51cto.com/courselist/index.html?q=wireshark

 

使用ss命令对tcp连接数和状态的监控性能优化

https://www.bbsmax.com/A/obzb2gL0zE

 

关于TCP重传的监控

https://blog.csdn.net/beeworkshop/article/details/103841211

https://github.com/alibaba/tsar



作者:Bogon
链接:https://www.jianshu.com/p/3433c347149b
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

本文来自:简书

感谢作者:简书

查看原文:【网络】关于 TCP重传率

559 次点击  
加入收藏 微博
暂无回复
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传