精华内容
下载资源
问答
  • TCP重传率是对网络质量的一个体现。 计算 TCP重传率shell 脚本 简单包装netstat -s的输出可以计算出TCP重传率。现成的脚本如下: #!/bin/bash export PATH='/bin:/sbin:/usr/bin:/usr/sbin:/u...

    TCP重传率

     

    重传率=重传报文数/有效报文数

     

    其中有效报文数:指的是除了纯ACK包外的报文总数。

    TCP重传率是对网络质量的一个体现。

     

    计算 TCP重传率shell 脚本

    简单包装netstat -s的输出可以计算出TCP重传率。现成的脚本如下:

    #!/bin/bash
    
    export PATH='/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin'
    SHELLDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
    
    netstat -s -t > /tmp/netstat_s >/dev/null
    
    s_r=`cat /tmp/netstat_s | grep 'segments send out' | awk '{print $1}'`
    s_re=`cat /tmp/netstat_s | grep 'segments retransmited' | awk '{print $1}'`
    
    [ -e ${SHELLDIR}/s_r ] || touch ${SHELLDIR}/s_r
    [ -e ${SHELLDIR}/s_re ] || touch ${SHELLDIR}/s_re
    
    l_s_r=`cat ${SHELLDIR}/s_r`
    l_s_re=`cat ${SHELLDIR}/s_re`
    
    echo $s_r > ${SHELLDIR}/s_r
    echo $s_re > ${SHELLDIR}/s_re
    
    tcp_re_rate=`echo "$s_r $s_re $l_s_r $l_s_re" | awk '{printf("%.2f",($2-$4)/($1-$3)*100)}'`
    echo $tcp_re_rate

     

    TCP重传率高的可能原因

    发生重传说明网络传输有丢包,基本上从3个点去定位:客户端网络情况、服务端网络情况、中间链路网络情况

    • 客户端机器网络异常
    • 服务端网卡流量跑满,网卡有丢包现象,关注ifconfig的error输出
    • 中间网络连路拥塞,比如交换机上联、核心交换机链路等,需要逐个排查链路流量情况

     

    å¨è¿éæå¥å¾çæè¿°

     

    展开全文
  • TCP重传率高的监控

    千次阅读 2016-12-21 10:43:00
    TCP重传率是对网络质量的一个体现,简单包装netstat -s的输出可以计算出TCP重传率。现成的脚本如下: #!/bin/bash export PATH='/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin' SHELLDIR="$( ...

    TCP重传率是对网络质量的一个体现,简单包装netstat -s的输出可以计算出TCP重传率。现成的脚本如下:

    #!/bin/bash
    export PATH='/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin'
    SHELLDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
    
    netstat -s -t > /tmp/netstat_s 2>/dev/null
    
    s_r=`cat /tmp/netstat_s | grep 'segments send out' | awk '{print $1}'`
    s_re=`cat /tmp/netstat_s  | grep 'segments retransmited' | awk '{print $1}'`
    
    [ -e ${SHELLDIR}/s_r ] || touch ${SHELLDIR}/s_r
    [ -e ${SHELLDIR}/s_re ] || touch ${SHELLDIR}/s_re
    
    l_s_r=`cat ${SHELLDIR}/s_r`
    l_s_re=`cat ${SHELLDIR}/s_re`
    
    echo $s_r > ${SHELLDIR}/s_r
    echo $s_re > ${SHELLDIR}/s_re
    
    tcp_re_rate=`echo "$s_r $s_re $l_s_r $l_s_re" | awk '{printf("%.2f",($2-$4)/($1-$3)*100)}'`
    echo $tcp_re_rate

     

    TCP重传率高的可能原因

    发生重传说明网络传输有丢包,基本上从3个点去定位:客户端网络情况、服务端网络情况、中间链路网络情况

    • 客户端机器网络异常
    • 服务端网卡流量跑满,网卡有丢包现象,关注ifconfig的error输出
    • 中间网络连路拥塞,比如交换机上联、核心交换机链路等,需要逐个排查链路流量情况

    转载于:https://www.cnblogs.com/sysk/p/6206755.html

    展开全文
  • 找出重传的TCP连接

    千次阅读 2017-11-04 22:35:09
    这里先给出某一台主机上评估tcp重传的指标,TCP重传率定义:TCP重传率 = TCP重传的报文数量/TCP输出的报文数量;即tcp retransfer radio = Retrans/outSegs 在linux系统中可以通过/proc/net/snmp得到各层网络协议...

    原创文章:来自找出重传较高的TCP连接

    这里先给出某一台主机上评估tcp重传的指标,TCP重传率定义:
    TCP重传率 = TCP重传的报文数量/TCP输出的报文数量;
    即tcp retransfer radio = Retrans/outSegs

    在linux系统中可以通过/proc/net/snmp得到各层网络协议收发包的情况,另外一些扩展的tcp指标可以通过tcpext在/proc/net/netstat文件中读到。监控某台主机重传率的通常方法:可以每隔1秒从这两个文件中分别读到TcpRetransSegs和TcpOutSegs和上一次记录取差值后,再使用重传率计算公式。

    简单的观察方法在centos 7等3.10内核中可以使用以下命令实时观察系统中每秒tcp重传报文数量:


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

    其中TcpExtTCPSynRetrans代表syn报文和synack报文的重传数量,TcpRetransSegs代表总的重传数量,TcpOutSegs代表总的tcp报文发出数量,TcpInSeg代表总的入报文数量通常用于计算tcp吞吐量。
    备注:TcpExtTCPSynRetrans是centos 7系统(与linux内核有关)中新加入的,在2.6.32等系统内核中没有这个参数。

    下边考虑一个场景:如果监控到一台主机的tcp重传率较高,如达到20%以上,且在这台主机系统上开了成百上千的tcp listen监听端口,同时间tcp连接并发高达数十万,此时如何得知哪些监听端口上重传较高? 哪些tcp连接在不断重传报文导致?可能的原因是什么?下边将解析这些问题。

    方法1,如果观察到重传率较高时可以通过tcpdump或wireshark抓包,将主机中这段时间的所有tcp报文都抓下来保存为文件,再通过wireshark专家系统进行分析得到重传率较高的连接。wireshark通常过滤重传的命令是tcp.analysis.retransmission。

    方法2,从内核统计重传根源处入手,使用systemtap下探点的方式拿到重传报文连接四元组信息。

    如果对wireshark的统计与分析比较熟练使用方法1可以快速得到结果,但有兴趣探究内核tcp如何实现的话我选择使用方法2。下边的主要说明方法2。

    找到TcpRetransSegs,TcpExtTCPSynRetrans两个参数在linux 3.10内核代码中的位置如下:
    netipv4tcp_output.c

    _

    int __tcp_retransmit_skb(struct sock sk, struct sk_buff skb) 函数中也有一处:

    2

    编写打印出重传报文四元组信息简要的stap脚本如下:

    #! /usr/bin/env stap
    #
    # fenghui8611@sina.com
    
    
    #sudo stap -DSTP_NO_OVERLOAD -v -g retran_tcpseg.stp
    
    probe begin {
          print ("\n")
    }
    
    #TCPHDR_SYN=0x02
    function is_retran_syn:long (skb:long)
    %{
        struct sk_buff *skb = (struct sk_buff *)STAP_ARG_skb;
        int ret = 0;
    
        if (((struct tcp_skb_cb *)&(skb->cb[0]))->tcp_flags & 0x02 )
            ret = 1;
         
         STAP_RETVALUE = ret;
    %}     
    
    probe kernel.statement("__tcp_retransmit_skb@net/ipv4/tcp_output.c:2554")
    {
        printf("tcp_transmit_skb() err=%d, syn flag=%d ",  $err, is_retran_syn($skb))
        saddr   = format_ipaddr(__ip_sock_saddr($sk), __ip_sock_family($sk))
        daddr   = format_ipaddr(__ip_sock_daddr($sk), __ip_sock_family($sk))
        sport   = __tcp_sock_sport($sk)
        dport   = __tcp_sock_dport($sk) 
        
        printf("%s:%d => %s:%d\n", saddr, sport, daddr, dport)
    }
    
    probe kernel.function("tcp_v4_send_synack").return
    {
       err = $return 
       if (err == 0) {
            saddr   = format_ipaddr(__ip_sock_saddr($sk), __ip_sock_family($sk))
            daddr   = format_ipaddr(__ip_sock_daddr($sk), __ip_sock_family($sk))
            sport   = __tcp_sock_sport($sk)
            dport   = __tcp_sock_dport($sk)
    
            printf("synack retran %s:%d => %s:%d\n", saddr, sport, daddr, dport) 
       }           
    }
    
    probe end {
          print ("\n")
     }
    

    运行命令与输出信息示例:

     
     

    sudo stap -DSTP_NO_OVERLOAD -v -g retran_tcpseg.stp

    tcp_transmit_skb() err=0 syn flag=0 0.0.0.0:59738 => 100.116.2xx.16x:41239
    tcp_transmit_skb() err=0 syn flag=0 0.0.0.0:59738 => 100.116.2xx.13x:44026
    tcp_transmit_skb() err=0 syn flag=0 0.0.0.0:59738 => 100.116.2xx.13x:34901
    tcp_transmit_skb() err=0 syn flag=0 0.0.0.0:59738 => 100.116.2xx.15x:11685

    根据四元组信息可以深入的分析为什么这条连接有问题,是链路问题还是软件问题?比如拿到上述结果分析结论:因交换机出口处设置了带宽限制,当达到限制值时很多tcp 59738端口发出的tcp报文段被丢弃,导致此台主机重传较高;另外syn报文重传较高时可以重点分析服务器端tcp连接队列是否有问题等。

    展开全文
  • 同时,还考虑到了路径关联因素对基于分片的可控重传方法的影响,从而克服了以往研究只涉及单路径而不能获取网络拓扑对分片技术影响的局限。利用路径阻塞和字节丢失对所提方法进行性能分析,并进行了仿真验证。从...
  • 为什么有些网络用纠错码而不用检错码和重传机制?请给出理由 解:原因一是实时服务质量的要求所致,即使发现错误,也没有时间重发一次。但是数据必须连续发送,这里可使用前置纠错。另一个原因是信道质量很差的情况下...

    为什么有些网络用纠错码而不用检错码和重传机制?请给出理由

    解:原因一是实时服务质量的要求所致,即使发现错误,也没有时间重发一次。但是数据必须连续发送,这里可使用前置纠错。另一个原因是信道质量很差的情况下,会导致错误率太高而不得不重发所有帧,而重发的帧也可能损坏。为了避免上述情况发生,前置纠错被用于提高到达帧的成功率。

    题目来自计算机网络原理自考04741
    
    展开全文
  • TCP重传

    千次阅读 2019-06-10 15:50:40
    1、重传原因 1)发端计时器超时 TCP每发送一个报文段,就对这个报文段设置一次计时器。当计时器超时而没有收到确认时,就重传该报文。 注:原来报文哪去了呢?两种可能: 1)在中间节点丢了。2)还在路上,走...
  • ![图片说明](https://img-ask.csdn.net/upload/201910/29/1572351226_28414.png) 训练数据2000个 batchsize为20 这个变化是什么规律呀 均方误差曲线图是上升的趋势
  • 超时重传往往发生在网络异常的情况下,TCP协议为TCP报文制定了一个定时器,它用于在给定的时间内接收到对端回来的确认报文,加入超过给定时间确认报文段还没有回到发送端,这时发送端就会重新发送上次发送的TCP...
  • Tcp重传

    千次阅读 2015-08-19 15:29:24
    Ø 为什么TCP存在重传 TCP是一种可靠的协议,在网络交互的过程中,由于TCP报文是封装在IP协议中的,IP协议的无连接特性导致其可能在交互的过程中丢失,在这种情况下,TCP协议如何保障其传输的可靠性呢? T C P...
  • 网络能够成功学到足够丰富的分辨表征的原因在于,整个过程保持分辨,以及多次对高低分辨率表征进行信息补足。HRNet在多个数据集的人体姿态估计任务中取得了当前最好的性能,也在图像分割、人脸对齐和目标...
  • TCP超时重传机制

    千次阅读 2008-03-07 17:50:00
    超时重传是TCP协议保证数据可靠性的另一个重要机制,其原理是在发送某一个数据以后就开启一个计时器,在一定...要求精确的原因有两个:(1)定时长久会造成网络利用。(2)定时太短会造成多次重传,使得网络阻塞。
  • 解决网络性能问题,首先从TCP错误恢复功能(TCP重传与重复ACK)和流控功能说起。之后阐述如何发现网络慢速之源。最后,对网络各组成部分上的数据流进行概况分析。这几张内容将会帮助读者识别,诊断,以及排查慢速...
  • TCP-超时与重传

    千次阅读 2018-09-01 16:03:12
    主要内容: 超时与重传简单实例 设置超时重传方法 基于计时器重传 快速重传 带选择确认的重传 伪超时与重传 包失序与包重复 目的度量 重新组包 与TCP重传相关的攻击 ...
  • TCP重传问题排查思路与实践

    千次阅读 2019-03-05 21:40:01
    互联网或城域网环境,线路复杂(可以想象下城市地下管网,错综复杂的电线杆等),网络质量不好保障,重传出现概率较。 TCP有重传,也不一定是网络层面的问题。也可能是接收端不存在,接收端receive buffer满了,...
  • 在进程中,服务主机:本地系统(网络受限)的CPU使用非常,经常导致达到100%使电脑卡起。尝试方法百度谷歌了多种方法,无果,下面是无效的方法:(1)退出家庭组,并停止homegroup listener 和 homegroup ...
  • LoRaWAN是由LoRa联盟推出的一个低功耗广域网规范,这一技术可以为电池供电的无线设备提供区域、国家或全球的网络。LoRaWAN瞄准了物联网中的一些核心需求,如安全地双向通讯、移动化和本地服务。该技术无需本地复杂...
  • ros路由器cpu占用率高原因和解决

    千次阅读 2014-07-23 22:47:04
    转天又发现有短暂的CPU占用出现,但是网络接口上的速率最大的也不到10M,查看log,有许多失败的ssh登录,貌似遇到攻击,于是关闭了外网的22号端口,cpu占用马上降到到了20%左右,观察了一天,占用偶尔能到50...
  • 1、弱网络下的断线连  玩家在游戏过程中,所处的网络环境是复杂多变的,可能是wifi的网络不稳定,或处在3G甚至2G的环境下等。在这些情况下,网络游戏会由于网络或包量等原因而出现延迟,拉拽,甚至掉线等问题。...
  • HARQ重传的基本概念

    千次阅读 2010-09-11 15:50:00
    编辑本段一、HARQ 混合自动重传请求的概念  数据通信最初是在有线网上发展起来的,通常要求较大的带宽和较的传输质量。对于有线连接,数据传输的可靠性是通过重传来实现的。当前一次尝试传输失败时,就要求重传...
  • (转)TCP的超时与重传

    千次阅读 2009-09-07 09:30:00
    超时重传是TCP协议保证数据可靠性的另一个重要机制,其原理是在发送某一个数据以后就开启一个计时器,在一定时间内如果...要求精确的原因有两个:(1)定时长久会造成网络利用。(2)定时太短会造成多次重传,使得
  • 解决卷积神经网络测试集正确

    千次阅读 2020-10-05 17:14:04
    解决卷积神经网络测试集正确低问题描述可能的原因最终的原因结论 问题描述 在运用卷积神经网络进行图像识别的过程中,将数据集分为训练集与验证集,首先进行模型的训练,最终模型在训练集与验证集上的正确均达到...
  • TCP超时与重传机制 TCP协议是一种面向连接的可靠的传输层协议,它保证了数据的可靠传输,对于一些出错,超时丢包等问题TCP设计的超时与重传机制。其基本原理:在发送一个数据之后,就开启一个定时器,若是在这个...
  • 1.数据集太小,这样会导致数据集切分的时候不均匀,也就是说训练集和测试集的分布不均匀,如果模型能够正确地捕捉到数据...Dropout迫使神经网络成为一个非常大的弱分类器集合,这就意味着,一个单独的分类器没有太
  • 神经网络优化-学习指数衰减法

    千次阅读 2018-01-10 23:54:55
    在训练神经网络时,需要设置学习(learing rate)控制参数更新的速度,学习决定了参数每次更新的幅度,如果幅度过大,则可能导致参数在极优值的两侧来回移动;若幅度过小,又会大大降低优化速度。所以,TensorFlow...
  • 学习设置太,一个epoch直接收敛,所以损失不会下降。又没有设置防止过拟合的比如学利率一开始设置为1,因为下降太快,那么很有可能在一个epoch旧完全收敛。所以看到的validation数值并不下降,第一个epoch就已经...
  • 损失函数一直在下降,为什么识别上不去。 1.最常见的原因:过拟合 过拟合值得单独开个章节。主要包括 1.数据量小,网络复杂 2.learning rate 比较,又没有设置任何防止过拟合的机制 解决方法主要包括 1....
  • 如何解决TCP重传、乱序和重复?

    千次阅读 2020-03-10 17:33:43
    TCP提供两种重传的机制,一种是基于时间的超时重传,一种是基于接收端反馈消息的快速重传。相比之下前者占用更少的网络带宽,但是效率很低。而后者则相反。下面我们来具体看一下这两种机制的实现方式。 超时重传 ...
  • 互联网或城域网环境,线路复杂(可以想象下城市地下管网,错综复杂的电线杆等),网络质量不好保障,重传出现概率较。 TCP有重传,也不一定是网络层面的问题。也可能是接收端不存在,接收端receivebuffer满了,...
  • 使用小语料集训练,测试精准还行,当语料集达到2000组时,问题来了,训练精准,但测试精准非常低。 小语料集与大语料集测试精准对比: 测试精准低的让人有点伤心,训练集增多,除了把batch...
  • 【原创】TCP超时重传机制探索

    千次阅读 2015-06-07 17:51:07
    TCP对比UDP协议是一个稳定的协议,依赖于三次握手和重传重试机制来保证数据的稳定传输,本文主要是深入探索TCP协议在超时重传方面的内部机制。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 327,233
精华内容 130,893
关键字:

网络重传率高的原因