首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Linux 系统 UDP 问题分析思路

如果硬件或者驱动没有问题,一般网卡是因为设置的缓存区(ring buffer)太小,可以使用 ethtool 命令查看和设置网卡的 ring buffer。...Linux 系统 linux 系统的原因很多,常见的有:UDP 报文错误、防火墙、UDP buffer size 不足、系统负载过高等,这里对这些原因进行分析。...因为缓存区的大小是有限的,如果出现 UDP 报文过大(超过缓存区大小或者 MTU 大小)、接收到报文的速率太快,都可能导致 linux 因为缓存满而直接的情况。...在系统层面,linux 设置了 receive buffer 可以配置的最大值,可以在下面的文件中查看,一般是 linux 在启动的时候会根据内存大小设置一个初始值。...另外一个因素是应用读取 buffer 中报文的速度,对于应用程序来说,处理报文应该采取异步的方式 丢在什么地方 想要详细了解 linux 系统在执行哪个函数时的话,可以使用 dropwatch 工具

15.6K31
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    linux 系统 UDP 问题分析思路

    最近工作中遇到某个服务器应用程序 UDP ,在排查过程中查阅了很多资料,总结出来这篇文章,供更多人参考。 在开始之前,我们先用一张图解释 linux 系统接收网络报文的过程。...如果硬件或者驱动没有问题,一般网卡是因为设置的缓存区(ring buffer)太小,可以使用 ethtool 命令查看和设置网卡的 ring buffer。...Linux 系统 linux 系统的原因很多,常见的有:UDP 报文错误、防火墙、UDP buffer size 不足、系统负载过高等,这里对这些原因进行分析。...在系统层面,linux 设置了 receive buffer 可以配置的最大值,可以在下面的文件中查看,一般是 linux 在启动的时候会根据内存大小设置一个初始值。...另外一个因素是应用读取 buffer 中报文的速度,对于应用程序来说,处理报文应该采取异步的方式 丢在什么地方 想要详细了解 linux 系统在执行哪个函数时的话,可以使用 dropwatch 工具

    7.1K42

    模拟测试

    今天,帮客户调试一个FreeSWITCH媒体问题,需要模拟测试一下。 首先,FreeSWITCH在公网上,客户端在NAT环境中。我们先用客户端呼叫9196。呼通后可以听到自己的回音。...FreeSWITCH解决这类NAT问题的办法就是等待客户端给它发送RTP。收到后便能“学习”到客户端的外网IP地址和端口号。...Auto Changing port from 192.168.7.6:50432 to 112.238.196.224:50432 好了,知道了客户端的IP和端口以后,我们就可以用iptables模拟包了...表示,所有发往IP 112.238.196.224和端口50432的,8%的直接丢掉不发。 上面的例子是模拟FreeSWITCH发送时。...在实际使用中,有时也会模拟FreeSWITCH接收端,可以用类似如下的命令来实现: iptables -A INPUT -p udp —src 112.238.196.224 —sport 50432

    2.7K21

    如何在 Linux 系统下进行网络排查?

    一、前言在 Linux 系统下,是一个较为常见的问题。由于导致的网络问题可能会给用户带来不好的体验,因此解决 Linux 网络问题是必不可少的。...本文将介绍如何在 Linux 系统下进行网络排查。二、了解 TCP/IP 协议栈在排查网络问题之前,我们需要先了解一些基础知识,比如 TCP/IP 协议栈。...了解 TCP/IP 协议栈能够帮助我们更好地理解网络数据传输的过程,也方便我们在排查网络问题时进行针对性分析。三、了解 Linux 网络设备在 Linux 系统下,网络设备被视为文件。...ifconfig图片四、使用 ping 排查网络问题ping 是一种常用的网络工具,它可以测试两台主机之间的连通性。当我们通过 ping 发现出现网络时,我们需要确定是哪一层出现了问题。...在 TCP 连接中,可能会导致连接关闭。在 UDP 中,可能会导致数据丢失或乱序。可以使用 telnet 命令测试 TCP 连接。telnet 命令可以测试远程主机端口的连通性。

    5.7K10

    交换机问题定位

    诊断工具 display工具 二层转发故障 定位思路 定位步骤 三层单播转发故障 定位思路 定位步骤 诊断工具 display命令行 ? 二层转发故障 定位思路 ?...第一步:判定设备 1.根据流量转发路径,在流量的入接口和出接口分别配置流量统计。 ? 2.查看入接口和出接口的流量统计,以确认是否在本设备产生。...如果出接口流量统计值与入接口流量统计值相等,则说明非本设备;如果出接口流量统计值小于入接口流量统计值,则本设备。 ?...三层单播转发故障 定位思路 ? 第一步:确认点 确认是否交换机产生,依然采用流量统计的方法,参见“二层转发”流量统计相关部分,此处不再赘述。...第三步:检查端口和链路 第四步:检查出端口是否存在拥塞 第三步、第四步与“二层转发”相关部分一致,此处不再赘述。

    4.4K20

    记一次分析

    笔者当场就吃惊了,明明局域网内通信,为何视频有10%的。 ?...很明显,FreeSWITCH已经将发出了,但是抓中却没有。可以排除应用内包了。 分析到这里,貌似只有“UDP buffer size不足”这个原因比较可疑了。...分析到这里,笔者开始怀疑,是不是通话根本没有,但是tcpdump由于自己的原因没有抓到,因此“显示的”。 不知道大家在抓结束后,有没有观察过tcpdump的输出。反正笔者是从来没有注意过。...tcpdump提供了设置缓存区大小的参数,例如: tcpdump -i any --buffer-size=409600 -w rtp.pcap buffer-size的单位是KB,所以上述参数设置了400MB...有些老版本的tcpdump可以使用-B 409600来设置缓冲区大小。 经过测试,wireshark确实没有“”了。 ? ?

    3.4K30

    WebRTC重传大解密

    目录 概述 NACK 问题一、数据真丢了,会一直重传吗? 问题二、重传次数不到最大限制次数,就会一直等待吗? 问题三、当大量时,会全部重传吗?...NACK 说到重传就不得不提到NACK技术,那么NACK是什么呢。...问题三、当大量时,会全部重传吗? 答案是否定的。因为WebRTC不仅限制了重传的次数,而且还限制了重传的个数。WebRTC每次要求重传的个数默认是1000个。...const int kDefaultSendNackDelayMs = 0; 而且,kDefaultSendNackDelayMs参数值是支持自定义设置的,通过接口传参field_trial设置WebRTC-SendNackDelayMs...的值,WebRTC在底层会解析这个参数,如果没有设置的话,默认是10ms。

    3.6K20

    HCIE数通排错思路。

    HCIE面试中有一道项目题,网络中发生行为的排查思路和具体实施方法: 回答总体思路: 1、 先确定是否发生以及哪些设备访问的时候会发生; 当发现设备访问某一网段时有,可以先在多台设备上去...ping 目的网段的周围的多个网段(类似于诊断六那样),用于确定是何种流量还是所有流量都会; 如果是具体一种流量的话可以确定为做了路由策略或者策略路由(类似诊断六,带源不能通,不带源就行)...; 如果是多种流量都,造成的原因就可能很多,物理层、数据链路层、网络层以及策略路由都有可能; 2、判断位置; 方法有两种: 第一种:使用 ping 和 tracert 一段一段测试,先 ping...网关,然后是网关的下一跳,一直到目的地址,或者用 tracert 跟踪可以确定具体在哪一跳;这种方法简单,但较为粗糙一些,因为可能是间歇性的,需要多次ping 和tracert,测试多次。...如果端口a入方向和端口b 出方向 Passed 计数大致相等,说明此处无

    2.9K42

    SYN的几个例子

    如果出现 SYN ,那么将导致严重的性能问题,如果没有严重到完全连不上,那么在延迟时间上会表现出明显的时间特征,比如:1秒,3秒,7秒,15秒,31秒,具体可以参考:「SYN和RTO」,本文不说这个...,就说说哪些情况会出现 SYN 。...请求,可以通过降低 tcp_syn_retries 来实现,另一个是加大队列的长度,此长度和 tcp_max_syn_backlog 相关,但又不是完全由它决定的,计算方法比较复杂,有兴趣的可以参考: Linux...过小的 unres_qlen 设置: 关于此原因的描述,我直接摘录蘑菇街技术博客中的相关描述,可惜的是相关文章现在已经下线了,大家有兴趣的可以访问国外网站通过 archive.org 来浏览。...红帽官方文档推荐加大此设置。参考: 同一client并发connect同一server超时失败问题 ARP相关内核参数unres_qlen研究 目前我就知道这几个例子了,如果大家知道别的,请赐教。

    1.9K20

    UDP发送大型文件_不

    先上图 1:如果对文件要求不高的话 ,可以使用UDP,UDP在实际测试中,还是听验证的,但是效率高 2:如果文件必须完整,还是使用TCP 。...不然太浪费时间了 ,因为当时用的是腾讯的Im来实现即时通讯的,利用外网来发送文件, 那么问题就来了 ,这么大 ,要多久才能发完 ,那就用局域网来发送文件吧 ,第一个想到的就是UDP来实现 ,测试中发现DUP问题特别明显...当时死活都找不到原因 ,后来把发送的次数和接受的次数对比打印了一下 ,命名发送了2k次,接收端只接受了500次,OK ,问题就是发送太快了 ,那么就让发送端发慢一点, Thread.sleep(10); 一般设置... } if (dataPacket !

    4.6K20

    人工智能,不许网络再

    率为0.1%的传统以太网中,我们生活安然,并无不适。而现在,人工智能(AI)带来的数据量激增改变了这一切。 那些以太网曾经看来微不足道的“苟且”开始变得如鲠在喉,它让人们越来越无法忍受。...一项实测支持的业务观察显示,因为AI业务带动的数据量高速增长,0.1%的以太网率会导致AI的计算力损失约50%——面向AI,在计算和存储领域已经取得突破之后,这一现实让网络设备供应商感受到了前所未有的压力...针对这一问题,华为网络产品线总裁胡克文认为,面向AI的未来,网络设备应该做到“强制性”的零。 每家ICT厂商都是努力做着同一件事情,生产出这类适应AI需求的网络设备,全球范围概莫能外。...CloudEngine 16800发布现场 这款业界首款面向AI时代的计算中心交换机,可以借助其实时学习训练能力和独创的iLossLess智能无损交换算法,在以太网中实现零包机制,并实现流量模型的自适应自优化...和解决问题一样,华为将问题“交还”给了AI,期待自动驾驶网络能够彻底改变运维人员面对的窘境。

    1.7K20

    vpp遇到接口如何解决?

    源码:/src/plugins 二、VPP统计分析 下面我们言归正传,介绍VPP的统计分析。 在show interface 统计接口流量的时候,应该关注哪些统计字段呢?...在dpdk插件中统计字段的描述如下所示:vpp/src/plugins/dpdk/device/format.c 其中 tx 方向的:tx errors ;rx 方向的 rx missed 分别对应了...)、tx error(发送侧; 在对以上三个统计量进行展开介绍之前有必要介绍一下DPDK对数据的处理流程。...rx_nombuf rx_nombuf记录在读取数据时分配mbuf错误的次数,一般情况下不会影响网卡的(imissed、ierrors)。该变量的维护在rx_recv_pkts中。...如何解决问题: imissed 收 如上所述imissed表示从网卡到内存写入数据时的个数,因此需要从以下2个方面进行调试: 1、判读PCIe是否存在瓶颈 因为报文从网卡到系统是经过PCIe

    3.5K10

    ​内核调试技巧--systemtap定位原因

    作者:wqiangwang,腾讯 TEG 后台开发工程师 内核收发包,可能会由于backlog队列满、内存不足、校验失败、特性开关如rpf、路由不可达、端口未监听等等因素将丢弃。...在内核里面,数据对应一个叫做skb(sk_buff结构)。当发生如上等原因时,内核会调用***kfree_skb***把这个释放(丢掉)。...builtin_return_address(0)记录下了调用kfree_skb的函数地址并传给location参数,因此可以利用systemtap kernel.trace来跟踪kfree_skb获取函数...考虑到该函数可能调用了子函数,子函数继续调用子子函数,如此递归。为了揪出最深层的函数,本文通过举例几个包场景,来概述一种通用方法,来定位原因及精确行号。...总结,精确定位行的方法: 1、 drop_watch先定位函数。 2、 使用pp()定位行。必要的时候,编写一些脚本,直接抄写内核代码或者调用stap库就可以了。 3、 递归重复步骤1和2。

    3.8K30
    领券