相关疑难解决方法(0)

如何在软件中可靠地生成以太网帧错误?

题:

我正在测试一段电缆故障查找软件,我想在cat5电缆上可靠且可重复地产生电缆故障.

目前我正在使用一米长的无线电缆,并在电源旁边手动蠕动电缆,但我无法检测到应用中的任何故障(我正在读取以太网ASIC上的以太网故障计数器.)是否这是因为没有产生故障,或者因为软件/硬件检测有问题,我无法分辨.

有没有办法在软件中执行此操作?

我决定用更高级别的语言编写一些东西,比如Java或python,并且作为最后的手段愿意将它放在C中,但我真的不想重写以太网驱动程序纯粹是为了修复可能的错误.

[编辑]:我想创建电缆故障 - 不检测它们.

[编辑]:我通过FTP和SCP传输大文件而没有使用篡改电缆的问题,我发现在使用wireshark检查流量时没有出现错误

[编辑]:请参阅python中类似问题.

解:

好吧,花了一天时间与C战斗后,这就是python解决方案.

首先禁用以太网卡的自动校验和:

sudo ethtool -K eth1 tx off
Run Code Online (Sandbox Code Playgroud)

然后,从python发送你的狡猾的框架:

#!/usr/bin/env python

from socket import *

#
# Ethernet Frame:
# [
#   [ Destination address, 6 bytes ]
#   [ Source address, 6 bytes      ]
#   [ Ethertype, 2 bytes           ]
#   [ Payload, 40 to 1500 bytes    ]
#   [ 32 bit CRC chcksum, 4 bytes  ]
# ] …
Run Code Online (Sandbox Code Playgroud)

c python networking ethernet raw-ethernet

16
推荐指数
1
解决办法
6470
查看次数

标签 统计

c ×1

ethernet ×1

networking ×1

python ×1

raw-ethernet ×1