首页 > 其他分享 >tcp重传率高了解

tcp重传率高了解

时间:2023-07-09 22:26:48浏览次数:33  
标签:重传 报文 syn TCP 率高 tcp proc

转自:https://developer.aliyun.com/article/231738,https://cloud.tencent.com/developer/article/1404089

1、介绍

先给出某一台主机上评估tcp重传的指标,TCP重传率定义:

TCP重传率 = TCP重传的报文数量/TCP输出的报文数量;
即tcp retransfer radio = Retrans/outSegs

TCP有重传是正常的机制,为了保障数据传输可靠性。网络质量不好时,重传出现概率较高。

TCP有重传,也不一定是网络层面的问题。也可能是接收端不存在,接收端receive buffer满了,应用程序有异常链接未正常关闭等等等。

2、确认

可以通过/proc/net/snmp得到各层网络协议收发包的情况。

监控某台主机重传率的通常方法:可以每隔1秒从这两个文件中分别读到TcpRetransSegs和TcpOutSegs和上一次记录取差值后,再使用重传率计算公式。

可以用如下命令查看 系统中每秒tcp重传报文数量:

watch -n 1 'nstat -z -t 1 | grep -e TcpExtTCPSynRetrans -e TcpRetransSegs  -e TcpOutSegs -e TcpInSegs'

其中TcpInSeg代表总的入报文数量通常用于计算tcp吞吐量,TcpOutSegs代表总的tcp报文发出数量,TcpRetransSegs代表总的重传数量,TcpExtTCPSynRetrans代表syn报文和synack报文的重传数量。 

 要确认是哪些端口重传率较高,可以通过wireshark抓包分析。

3、重传类型

相关参数,在路径/proc/sys/net/ipv4下,

:/proc/sys/net/ipv4$ cat tcp_syn_retries # syn包重传多少次后放弃,重传间隔是2的n次方(1s,2s,4s..)
6
:/proc/sys/net/ipv4$ cat tcp_synack_retries # syn ack包重传多少次后放弃
3
:/proc/sys/net/ipv4$ cat tcp_max_syn_backlog # syn包队列
81920

重传类型:

  • 超时重传:在请求包发出去的时候,开启一个计时器,当计时器达到时间之后,没有收到ACK,则就进行重发请求的操作,一直重发直到达到重发上限次数或者收到ACK。
  • 快速重传:当接收方收到的数据包是不正常的序列号,那么接收方会重复把应该收到的那一条ACK重复发送,这个时候,如果发送方收到连续3条的同一个序列号的ACK,那么就会启动快速重传机制,把这个ACK对应的发送包重新发送一次。具体可以参考:

 常见原因:

  • 单台机器或单个应用机器tcp重传,可能是链接的服务器或端口无法访问;
  • 多台机器或多个应用同时tcp重传,可能是网络抖动;
  • 带宽跑满。查看主机监控,检查是否带宽跑满。(也就是流量太大的情况)

 

标签:重传,报文,syn,TCP,率高,tcp,proc
From: https://www.cnblogs.com/BlueBlueSea/p/17539531.html

相关文章

  • 磁盘IO利用率高问题排查SOP
    对于业务开发来说,碰到磁盘IO利用率高的情况并不多,毕竟写磁盘的操作都集中到DB了,例如mysql/redis/hbase,一般由DBA来处理。但一些业务上的写文件、写日志,还是可能会碰到的。步骤1:查看服务整体状态:top从设备角度:iostat2//每2秒输出一次io使用情况步骤2:找出占用IOPS大的进......
  • TcpClient
    publicclassTcpClient{publiceventAction<byte[]>OnReveive=delegate{};privateManualResetEventsendDone=newManualResetEvent(false);privateManualResetEventreceiveDone=newManualResetEvent(false);///<summary>......
  • tcpdump抓包命令详解
    一、参数介绍-A以ASCII格式打印出所有分组,并将链路层的头最小化。-c在收到指定的数量的分组后,tcpdump就会停止。-C在将一个原始分组写入文件之前,检查文件当前的大小是否超过了参数file_size中指定的大小。如果超过了指定大小,则关闭当前文件,然后在打开一个新的文件。参数......
  • 【后端面经-计算机基础】HTTP和TCP的区别
    【后端面经-计算机基础】HTTP和TCP的区别目录【后端面经-计算机基础】HTTP和TCP的区别1.OSI七层模型和相关协议2.TCP协议2.1特点:2.2报文格式2.3三次握手和四次挥手3.HTTP协议3.1特点3.2报文格式3.2https和http4.HTTPvsTCP5.面试模拟参考资料1.OSI七层模型和相关协......
  • OSI TCP/IP模型 数据包报帧区别(自用)
    OSI七层模型OSI(OpenSystemInterconnectionReferenceModel,开放式通信系统互联参考模型)TCP/IP五层模型TCP/IP模型将OSI模型的应用层,表示层,会话层合并成了应用层数据包,数据报,帧的区别数据包与帧帧:数据链路层的传输单位数据包:可能由几个帧组成,可能超过MTUM......
  • “金九银十”和秋招通过率高达 95% 的 Android面试题集锦,你确定不来看看吗?
    前言已经进入七月份了,职场上的“金三银四”也早已经结束。对于求职者来说,面试是一道坎,很多人会恐惧面试,即使是工作很多年的老鸟,也可能存在面试焦虑。就今年的IT行业来说,可能真的根本没有所谓的“金三银四”或是“金九银十”。各大招聘网站或者软件上不管是大厂还是中小公司看似挂个......
  • RunnerGo 新增对WebSocket、dubbo、TCP/IP三种协议的API测试
    大家好,RunnerGo作为一款一站式测试平台不断为用户提供更好的使用体验,最近得知RunnerGo新增对,WebSocket、Dubbo、TCP/IP,三种协议API的测试支持,本篇文章跟大家分享一下使用方法。WebSocket协议WebSocket是一种在单个TCP连接上进行全双工通信的API技术。相比于传统的HTTP......
  • 图灵喜获Stevens名著《TCP/IP Illustrated》影印版权
    图灵再获得培生教育出版集团授权,即将出版《TCP/IP详解》(3卷)的影印版。此前,图灵在2006年先后出版了《Unix环境高级编程(第2版)》的影印版和翻译版。并于2009年11月推出了《UNIX网络编程》(2卷)的影印版。后者的翻译版正在翻译校订中,预计2010年5-6月出版。《TCP/IP详解》影印版将于2010......
  • Python基础37 基于tcp、udp套字编程、粘包现象、struct模块
    基于tcp协议的套接字编程(sochet编程)什么是socket?通常翻译为套接字,socket是在应用层和传输层之间的一个抽象层,它把tcp/ip层复杂的操作抽象为几个简单的接口供应用层调用已实现进程在网络中。套接字分类:AF_UNIX:用在局域网中AF_INET:用在互联网中客户端和服务端启动顺序......
  • TCP连接状态CLOSE_WAIT和TIME_WAIT详细分析
    一、TCP连接状态简介TCP协议规定,对于已经建立的连接,网络双方要进行四次挥手才能成功断开连接,如果缺少了其中某个步骤,将会使连接处于假死状态,连接本身占用的资源不会被释放。 网络服务器程序要同时管理大量连接,所以很有必要保证无用连接完全断开,否则大量僵死的连接会浪费许多服......