我想通过两台计算机之间的以太网电缆发送一些原始位。传输过程中发生的数据错误通过以太网帧校验序列(FCS)(如CRC:循环冗余校验)进行纠正,并由TCP等上层进一步检查。
但是,我不希望应用任何纠错技术。我想查看在传输中发生错误时收到的确切位。我看过一些关于发送原始以太网帧的文章(例如http://hacked10bits.blogspot.in/2011/12/sending-raw-ethernet-frames-in-6-easy.html ),但我认为它们也经历了类似 FCS CRC 校验。是否可以在没有任何此类错误更正的情况下发送数据。谢谢。
编辑 1
我使用以太网电缆直接端到端连接两台计算机(中间没有交换机或路由器)。以太网电缆为“CAT 5E”,标记为“B 网络跳线 CAT 5E 24AWG 4PR-ETL TIA/EIA-568B”
lspci -v 的输出是(两台计算机几乎相同):
Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 0c)
Subsystem: Lenovo RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller
Flags: bus master, fast devsel, latency 0, IRQ 28
I/O ports at e000 [size=256]
Memory at f7c04000 (64-bit, non-prefetchable) [size=4K]
Memory at f7c00000 (64-bit, prefetchable) [size=16K]
Capabilities: [40] Power Management version 3
Capabilities: [50] MSI: Enable+ Count=1/1 Maskable- 64bit+
Capabilities: [70] Express Endpoint, MSI 01
Capabilities: [b0] MSI-X: Enable- Count=4 Masked-
Capabilities: [d0] Vital Product Data
Capabilities: [100] Advanced Error Reporting
Capabilities: [140] Virtual Channel
Capabilities: [160] Device Serial Number 01-00-00-00-68-4c-e0-00
Capabilities: [170] Latency Tolerance Reporting
Kernel driver in use: r8169
Kernel modules: r8169
我使用以下命令显示 FCS 并且不丢帧
sudo ethtool -K eth0 rx-fcs on rx-all on
我仍然没有收到任何错误/坏帧。我在每帧中发送 1000 位零,并且收到的所有位都没有任何 1。我是否需要继续发送很多这样的帧才能接收到坏帧?(因为 CAT 5E 电缆的误码率可能要低很多)另外,我可以使用相同的当前 NIC 和以太网电缆实现我自己的 LAN 协议吗?
基本上,我希望在传输过程中得到尽可能多的错误并检测所有错误。