如何在软件中可靠地产生以太网帧错误?
-
27-10-2019 - |
题
问题:
我正在测试电缆故障查找软件的一部分,并且我希望在cat5电缆上可靠且可重复地生成电缆故障。
此刻,我正在使用一米长的未绞合电缆,并在电源旁手动扭动电缆,但是我无法检测到应用程序中的任何故障(我正在从以太网ASIC上读取以太网故障计数器。)这是因为没有产生故障,还是因为软件/硬件检测错误,所以我不知道。
有没有办法在软件中执行此操作?
我愿意用Java或python之类的高级语言编写某些东西,并且万不得已时愿意将其组合在C语言中,但是我真的不想纯粹地重写以太网驱动程序修复可能的错误。
[EDIT] :我要创建电缆故障-不能检测到它们。
[编辑] :我已经通过FTP和SCP传输了大文件,而电缆没有问题,并且在使用Wireshark检查流量时没有出现错误
[编辑] :另请参见 Python中的类似问题。
解决方案:
好吧,花了一天的时间与C战斗之后,这才是python解决方案。
首先禁用以太网卡的自动校验和:
通用标签
然后,从python发送躲闪的帧:
通用标签
谁说必须很复杂...
PS:我爱Python。
解决方案
如果您使用C语言,则可以使用socket(AF_PACKET, SOCK_RAW, ...)
发送原始以太网帧,并将其指针传递给您自己生成的原始缓冲区(例如,通过遵循维基百科)。
这已经很长时间了,所以我不会尝试编写具有代表性的代码段...
不隶属于 StackOverflow