首页 > 编程知识 正文

linux如何查看丢包率,ping命令发送数据包

时间:2023-05-05 08:47:30 阅读:40457 作者:539

虽然不要求创建传输模块在很长一段时间内需要达到多少路(如果不采用多播,则只是将一条路转换为多播),但让我们根据充分利用物品的原则,尽可能地测试一下极限

网络环境: 1000M米,直连,多卡

系统: Linux3. 19.0版

接收模式: udp模式的原始套接字(优化后可以直接用网卡处理)。

发送模式: udp模式的原始套接字(优化后可以直接由网卡处理)、单线程/多线程

2M 1圈n

设备a----传输设备-----设备b

但是,当n增大到一定程度时,发现了丢包。

请注意,转发设备发送丢包,而不是设备b接收丢包。

虽然可以理解设备b接收丢包,但是毕竟2M码率本身的突发性相当高,并且在1转n的情况下,该突发性进一步扩大。

但是,发送丢包是什么样的情况呢,sendto的返回值都是判断的,如果有异常就会发出打印信息,但不会出现异常。

在网上查资料。 其中最可靠的是

1 .发送频率过高,丢包

很多人不能理解发送速度太快为什么会发生丢包。 其理由是,UDP的SendTo不会阻止线程。 也就是说,UDP的SentTo在数据完全发送之前不会使用返回回调函数,就像TCP的SendTo一样。 这不保证在执行以下语句时是否发送数据: SendTo方法是异步的]这样,如果发送的数据太多或太大,在缓冲区填满的瞬间发送的消息很可能会丢失。 关于“太早了”的解释,作者这样说。 “afewpacketsasecondarenotanissue; hundredsorthousandsmaybeanissue .”(每秒钟几个数据包没什么大不了的,但每秒钟几百、几千个数据包就麻烦了。

发送端数据包丢失(内部缓冲器满,发送速度太快),也就是发送两条消息的间隔太短);

但是,发生了更郁闷的事情。 无论是网上资料,还是问同事,都和tcp不同,发送这个块没有缓冲区啊。

问题是,SO_SNDBUF设置为64M,修正系统值设置为128M,设置后获取的SO_SNDBUF设置为128M。

现在在这种情况下发送丢包。 128米是什么概念? 所以,几乎可以排除这部分的问题。

通过命令watch netstat -s,明确了Ip项目下的outgoing packets dropped持续增加,意味着正在正确发送丢包。

然后,我们开始用outgoing packets dropped、sendto频率过快等关键词来调查资料。 结果是青瘦香菇啊

在阴差阳错的情况下,找到了IOCTLS

SIOCGIFTXQLEN,SIOCSIFTXQLEN

使用ifr_qlen读取或设置设备传输队列的长度。 设置传输队列的长度是特权操作。

在那里通过

结构ifreq IFR;

短信(IFR,0,sizeof ) IFR );

strncpy(IFR.IFR_name,' eth0',sizeof ) IFR.IFR_name );

if(-1==ioctl(sock_,SIOCGIFTXQLEN,ifr ) )

plog(error ) ' failed to get dev eth 0队列长度);

log ' key ' deveth0queue length ' IFR.IFR _ qlen;

eth0中获取的队列长度为1000,请尝试设置为10000

结构ifreq IFR;

短信(IFR,0,sizeof ) IFR );

strncpy(IFR.IFR_name,' eth0',sizeof ) IFR.IFR_name );

ifr.ifr_qlen=10000;

if(-1==ioctl(sock_,SIOCSIFTXQLEN,ifr ) )

plog(error ) ' failed to set dev eth 0队列长度);

if(-1==ioctl(sock_,SIOCGIFTXQLEN,ifr ) )

plog(error ) ' failed to get dev eth 0队列长度);

log ' key ' deveth0queue length ' IFR.IFR _ qlen;

果然发现了。 没有发送丢包

取消SO_SNDBUF的设定,取得SO_SNDBUF,变成什么k? 重新测试后,尚未发送丢包。

结论:

p>

sendto过快导致发送丢包,是因为发送队列满了,如果说缓存区,估计大部分人都将误解。

至于接收方因为突发率导致接收丢包的问题,那么就要在发送方进行发送平滑进行解决。

udp丢包 处理

转自: 自己在做UDP传输时遇到的问题,接收端没设置缓存,结果总是丢包. 看到这篇文章设置了一下接收缓存就好 *;//设置为32K setsockopt(s,SOL_SOCKET,SO_RCVBUF, ...

UDP丢包原因总结

丢包检查方法 给每个UDP包编号,对比收发端的接收到的包.对于UDP协议层上的包,例如RTP包,可以从RTP包中读出包的序列号进行判断. 抓包.发送端和接收端分别抓包.linux下可以使用tcpdum ...

浅谈UDP(数据包长度,收包能力,丢包及进程结构选择)

UDP数据包长度 UDP数据包的理论长度 udp数据包的理论长度是多少,合适的udp数据包应该是多少呢?从TCP-IP详解卷一第11章的udp数据包的包头可以看出,udp的最大包长度是2^16-1的个 ...

Linux服务器丢包故障的解决思路及引申的TCP/IP协议栈理论

我们使用Linux作为服务器操作系统时,为了达到高并发处理能力,充分利用机器性能,经常会进行一些内核参数的调整优化,但不合理的调整常常也会引起意想不到的其他问题,本文就一次Linux服务器丢包故障的处 ...

linux 系统 UDP 丢包问题分析思路

转自:http://cizixs.com/2018/01/13/linux-udp-packet-drop-debug?hmsr=toutiao.io&utm_medium=toutiao.i ...

【VS开发】浅谈UDP(数据包长度,收包能力,丢包及进程结构选择)

UDP数据包长度 UDP数据包的理论长度 udp数据包的理论长度是多少,合适的udp数据包应该是多少呢?从TCP-IP详解卷一第11章的udp数据包的包头可以看出,udp的最大包长度是2^16-1的个 ...

[转载]Linux服务器丢包故障的解决思路及引申的TCP/IP协议栈理论

Linux服务器丢包故障的解决思路及引申的TCP/IP协议栈理论 转载至:https://www.sdnlab.com/17530.html 我们使用Linux作为服务器操作系统时,为了达到高并发处理 ...

java中DatagramSocket连续发送多个数据报包时产生丢包现象解决方案

try { //向指定的ip和端口发送数据~! //先说明一下数据是谁发送过来的! byte[] ip = InetAddress.getLocalHost().getHostAddress().ge ...

【疑】checkpoint防火墙双链路切换导致丢包问题

拓扑: 外线联通.电信各200M,通过边界交换机(纯二层,用于分线),分别接到主.备防火墙. 具体配置如下: 故障现象: 由于电信光缆中断导致电信链路不可用.大量员工反映频繁出现断网现象,通过公网注册 ...

随机推荐

带你使用h5开发移动端小游戏

带你使用h5开发移动端小游戏 在JY1.x版本中,你要做一个pc端的小游戏,会非常的简单,包括说,你要在低版本的浏览器IE8中,也不会出现明显的卡顿现象,你只需要关心游戏的逻辑就行了,比较适合逻辑较为 ...

MySQL更新优化

通常情况下,当访问某张表的时候,读取者首先必须获取该表的锁,如果有写入操作到达,那么写入者一直等待读取者完成操作(查询开始之后就不能中断,因此允许读取者完成操作).当读取者完成对表的操作的时候,锁就会 ...

大家注意:升级 win8.1 火狐浏览器 谷歌浏览器 搜狗五笔输入法 都不能用啦

大家注意:升级 win8.1 火狐浏览器 谷歌浏览器 搜狗五笔输入法 都不能用啦 我的电脑64位 win8 thinkpad e531,8G内存 刚在线升级完8.1,发现这些问题,大家注意,有知道问题 ...

04---XML编程整理

一.XML概述       XML(eXtensible Markup Language),可扩展标记语言,       被设计的宗旨是传输数据,而非显示数据       W3C发布的,目前遵循1.0 ...

解决NSAttributedString与UILabel高度自适应计算问题

两个类扩展方法: /** *  修改富文本的颜色 * *  @param str   要改变的string *  @param color 设置颜色 *  @param range 设置颜色的文字范围 ...

Android 蓝牙( Bluetooth)耳机连接分析及实现

Android 实现了对Headset 和Handsfree 两种profile 的支持.其实现核心是BluetoothHeadsetService,在PhoneApp 创建的时候会启动它. if ( ...

CSS position 笔记+实验

目录: 1.static 2.relative 3.absolute 4.fixed 5.实验:static, relative, absolute中,父元素-子元素高度关系 6.z-index 7. ...

导入Spreadsheet到sharepoint2013报错

当导入Spreadsheet到sharepoint2013会报下面的错: an unexpected error has occurred -2147467259 The specified file ...

jquery遍历集合&数组&标签

jquery遍历集合&数组的两种方式 CreateTime--2017年4月24日08:31:49Author:Marydon 方法一: $(function(){ $("inp ...

【C】常用的字符串函数

1. strcpy 函数名:strcpy 用法:char *strcpy(char *destin, char *cource) 功能:将一个字符串从一个拷贝到另外一个 程序示例: #include ...

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。