问题标签 [raw-ethernet]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
qt - 使用 Qt 读取原始以太网
我有一个发送原始(第 2 层)以太网数据包的设备,我需要使用基于 Qt 的 C++ Windows 应用程序读取和解码该数据包。我相信我可以使用 winpcap 库来做到这一点,但如果可能的话,我更喜欢 Qt 方式。
c++ - 为什么仅在 USB 适配器的情况下 Socket Connecton 会失败?
我有一个将连接到服务器的 VPN 应用程序。在以太网和 Wifi 的情况下工作正常。现在我正在尝试连接 USB 适配器(USB dongle)。当我尝试连接时,出现套接字连接错误。但这个套接字在其他情况下工作正常。
到这里时出错:
这是我完整的套接字连接代码。
为什么会这样?USB适配器的任何特定插座配置?应该使用任何 RAW Socket,例如
但是为什么其他人工作正常而没有错误并且只有连接失败?任何想法 ?请帮我 。
c - 将 sendmsg/sendmmsg 与原始以太网帧一起使用
我正在尝试使用 C 通过 sendmsg 发送原始以太网数据包。此代码成功打开原始数据包套接字,尝试用单个字节数组 (char message[]) 填充 struct iovec,然后用目标地址、地址长度和指向包含 struct iovec 的指针填充 struct msghdr消息。sendmsg() 为每次调用返回 EINVAL,但我不知道哪些参数无效。(我删除了一些 perror() 调用以使此代码更易于阅读;输出为“无效参数”。)
我找不到任何关于 sendmsg() 如何与原始套接字一起工作的示例,但是使用 sendto() 的类似代码可以按预期工作。在该代码中,我明确地形成了以太网帧,包括标头和协议信息,但据我了解,sendmsg() 调用不是必需的吗?我还尝试让 message.iov_base 指向一个缓冲区,该缓冲区包含包含 14 字节标头的明确形成的以太网帧,但 sendmsg() 也拒绝这样做。
sendmsg() 和 sendmmsg() 可以处理原始以太网帧吗?关于iovec,我是否遗漏了一些使其无效的东西?
tcp - 以太网和 TCP/IP 协议在编程中的区别?
说 ff 为以太网打开了一个套接字,那么它与 TCP/IP 中的套接字相同吗?在我发现的一些现有代码中,它支持以太网协议,这是否意味着我可以使用 TCP 套接字客户端连接到这个以太网套接字。
我很困惑,请帮助。
提前感谢萨加尔
c++ - 在 Linux 上收到有关到达以太网帧的通知
当以太网帧到达 UNIX 系统(在 eth0 端口上)时,我需要得到通知。有没有办法在某处注册我的功能?目前我正在使用“sys/socket.h”-Library,但我找不到注册自己的功能。
java - 如何使用 JAVA 从 cisco 交换机中嗅探 cdp 消息包
我正在尝试从 cisco 交换机嗅探 cdp 数据包。
因为我要处理很多我不能指定所有模型的开关,所以我一般会问有没有办法使用 java 来解决这个问题?
ethernet - 用于游戏的以太网电缆类型
哪种电缆最适合游戏,cat5 e 或 cat7?我有顶级互联网连接。所以我只是在寻找最小的延迟
wireshark - wireshark 在原始以太网数据包中的特定字节上显示过滤器
我正在尝试过滤第 15 个字节(即 14 字节标头之后的第一个有效负载字节)是特定值的数据包,0x00
或者0x01
.
我感兴趣的数据包是原始以太网,即在逻辑链路控制层,所以我也过滤 LLC 作为协议
这是我尝试过的:
这是绿色的,所以我很确定语法是正确的。它只显示协议为 LLC 的数据包,但它也允许通过第 15 个字节的数据包,这是0x02
我想避免的
有什么想法可以成功定位第 15 个字节值,或者换句话说,有效载荷的第一个字节值?
示例数据包(从 wireshark 复制),其中第 15 个字节是0x00
:
第 15 个字节为的示例数据包0x01
:
我想让wireshark显示这两个数据包
第 15 个字节是第 3 种类型的数据包0x02
:
我想用过滤器排除这种类型的数据包。我上面的过滤器仍然显示这些0x02
数据包。
networking - 通过物理以太网电缆发送比特,无需任何纠错,如 FCS 或 CRC
我想通过两台计算机之间的以太网电缆发送一些原始位。传输过程中发生的数据错误通过以太网帧校验序列(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 的输出是(两台计算机几乎相同):
我使用以下命令显示 FCS 并且不丢帧
我仍然没有收到任何错误/坏帧。我在每帧中发送 1000 位零,并且收到的所有位都没有任何 1。我是否需要继续发送很多这样的帧才能接收到坏帧?(因为 CAT 5E 电缆的误码率可能要低很多)另外,我可以使用相同的当前 NIC 和以太网电缆实现我自己的 LAN 协议吗?
基本上,我希望在传输过程中得到尽可能多的错误并检测所有错误。