gpt4 book ai didi

sockets - RAW套接字发送: packet loss

转载 作者:行者123 更新时间:2023-12-03 11:53:16 27 4
gpt4 key购买 nike

在基于RAW套接字的数据包发送测试期间,我发现了非常令人讨厌的症状。
使用默认的RAW套接字设置(尤其是SO_SNDBUF大小),
原始套接字可以毫无问题地发送100,000个数据包,但大约花费了8秒钟
发送所有数据包,并且接收方进程正确接收了这些数据包。
这意味着默认设置可达到约10,000 pps(每秒数据包)。
(我认为这个数字太小,与我的预期相反。)

无论如何,为了增加pps值,我增加了数据包发送缓冲区的大小
通过调整/proc/sys/net/core/{wmem_max,wmem_default}。
增加两个系统参数后,我已经确定了令人讨厌的症状。
100,000个数据包被立即发送,但只有3,000个数据包被发送。
由接收方进程(位于远程节点)接收。

在发送Linux的机器上(Centos 5.2),我做了netstat -a -s和ifconfig。
Netstat显示发出了100,000个请求,但是ifconfig显示
仅发送了3,000个数据包。

我想知道发生这种情况的原因,我也想知道
我该如何解决这个问题(当然,我不知道这是否真的是一个问题)。

有人可以给我一些有关此问题的建议,示例或引用吗?

最好的祝福,
比吉利

最佳答案

您没有说数据包的大小,也没有说网络,NIC,硬件的任何特征,或有关接收数据的远程计算机的任何信息。

我怀疑您应该使用ethtool而不是/proc/sys来调整环形缓冲区的数量,但不一定要调整这些缓冲区的大小。

另外,this page是一个很好的资源。

关于sockets - RAW套接字发送: packet loss,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13172023/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com