问题标签 [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.

0 投票
2 回答
2561 浏览

sockets - 使用 Go 语言发送带有以太网标头的原始数据包

我正在尝试通过 Go 语言的原始套接字发送带有自定义以太网标头的原始 TCP 数据包。我正在尝试用c 语言重现类似的代码。

但是我收到以下错误:

如果您有任何知识,请指导我。

0 投票
1 回答
712 浏览

qt - 使用 Qt 读取原始以太网

我有一个发送原始(第 2 层)以太网数据包的设备,我需要使用基于 Qt 的 C++ Windows 应用程序读取和解码该数据包。我相信我可以使用 winpcap 库来做到这一点,但如果可能的话,我更喜欢 Qt 方式。

0 投票
0 回答
105 浏览

c++ - 为什么仅在 USB 适配器的情况下 Socket Connecton 会失败?

我有一个将连接到服务器的 VPN 应用程序。在以太网和 Wifi 的情况下工作正常。现在我正在尝试连接 USB 适配器(USB dongle)。当我尝试连接时,出现套接字连接错误。但这个套接字在其他情况下工作正常。

到这里时出错:

这是我完整的套接字连接代码。

为什么会这样?USB适配器的任何特定插座配置?应该使用任何 RAW Socket,例如

但是为什么其他人工作正常而没有错误并且只有连接失败?任何想法 ?请帮我 。

0 投票
1 回答
2196 浏览

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,我是否遗漏了一些使其无效的东西?

0 投票
2 回答
811 浏览

tcp - 以太网和 TCP/IP 协议在编程中的区别?

说 ff 为以太网打开了一个套接字,那么它与 TCP/IP 中的套接字相同吗?在我发现的一些现有代码中,它支持以太网协议,这是否意味着我可以使用 TCP 套接字客户端连接到这个以太网套接字。

我很困惑,请帮助。

提前感谢萨加尔

0 投票
0 回答
40 浏览

c++ - 在 Linux 上收到有关到达以太网帧的通知

当以太网帧到达 UNIX 系统(在 eth0 端口上)时,我需要得到通知。有没有办法在某处注册我的功能?目前我正在使用“sys/socket.h”-Library,但我找不到注册自己的功能。

0 投票
1 回答
221 浏览

java - 如何使用 JAVA 从 cisco 交换机中嗅探 cdp 消息包

我正在尝试从 cisco 交换机嗅探 cdp 数据包。

因为我要处理很多我不能指定所有模型的开关,所以我一般会问有没有办法使用 java 来解决这个问题?

0 投票
1 回答
124 浏览

ethernet - 用于游戏的以太网电缆类型

哪种电缆最适合游戏,cat5 e 或 cat7?我有顶级互联网连接。所以我只是在寻找最小的延迟

0 投票
1 回答
6378 浏览

wireshark - wireshark 在原始以太网数据包中的特定字节上显示过滤器

我正在尝试过滤第 15 个字节(即 14 字节标头之后的第一个有效负载字节)是特定值的数据包,0x00或者0x01.

我感兴趣的数据包是原始以太网,即在逻辑链路控制层,所以我也过滤 LLC 作为协议

这是我尝试过的:

这是绿色的,所以我很确定语法是正确的。它只显示协议为 LLC 的数据包,但它也允许通过第 15 个字节的数据包,这是0x02我想避免的

有什么想法可以成功定位第 15 个字节值,或者换句话说,有效载荷的第一个字节值?

示例数据包(从 wireshark 复制),其中第 15 个字节是0x00

第 15 个字节为的示例数据包0x01

我想让wireshark显示这两个数据包

第 15 个字节是第 3 种类型的数据包0x02

我想用过滤器排除这种类型的数据包。我上面的过滤器仍然显示这些0x02数据包。

0 投票
3 回答
1198 浏览

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 协议吗?

基本上,我希望在传输过程中得到尽可能多的错误并检测所有错误。