问题标签 [data-link-layer]

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 投票
0 回答
566 浏览

protocols - CRC-16 校验和与 HDLC 帧不匹配

我有一个流式HDLC数据如下:

我想解码数据并从其有效负载中获取 IP 帧。从有关 HDLC 帧的各种资源中,我找到了帧分隔符 (0x7E) 并获得如下 HDLC 帧(其中 2 个帧):

第一帧

按照收到时的原始顺序:

7E AE 79 3D C4 D6 7B DB BD 7E

在反向字节顺序中(因为 HDLC 首先发送最低有效位):

7E 75 9E BC 23 6B DE DB BD 7E

第 2 帧

原始订单:

7E E5 2A 14 FF FE 5E 31 DE 0A 4F 88 4F EF 2F 96 1F 82 7F A7 FF 93 87 F2 BF F2 DF DE DF C2 DF C2 BF 9B 5F CE DF AA BF EB 3F F4 DF 84 DF D7 3F D1 5F E7 5F 98 DF DF 3F A1 5F 98 BF A7 3F ED 5F C8 DF B0 DF FC BF ED 7E

反转字节顺序:

7E A7 54 28 FF 7F 7A 8C 7B 50 F2 11 F2 F7 F4 69 F8 41 FE E5 FF C9 E1 4F FD 4F FB 7B FB 43 FB 43 FD D9 FA 73 FB 55 FD D7 FC 2F FB 21 FB EB FC 8B FA E7 FA 19 FB FB FC 85 FA 19 FD E5 FC B7 FA 13 FB 0D FB 3F FD B7 7E

但问题是,最后 2 字节 CRC(帧 1 的DB BD和帧 2 的BF ED)与任何帧都不匹配。

我尝试了许多论坛的建议,其中这两个最相关:

https://www.lammertbies.nl/forum/viewtopic.php?t=607

计算 HDLC 帧的 FCS(CRC)

请帮忙。

0 投票
2 回答
2025 浏览

networking - 在通过高级语言的交换机连接的两台计算机之间传输数据

我将首先说明我对网络和整个 OSI 模型知之甚少。

我的目标是使用非托管网络交换机创建一个小型网络(现在是我的笔记本电脑和树莓派)。在更高层传输(级别 3+)上,我只需为数据包设置目标 IP 地址。根据我在 Wikipedia 上阅读的内容,网络交换机在数据链路层运行,这意味着它使用 MAC 地址。

当与仅支持 MAC 地址的设备连接时,如何将数据发送到局域网上的设备。更重要的是,如何使用 Java 或 C# 等高级语言来做到这一点?

0 投票
0 回答
2573 浏览

python - Scapy:是否可以手动设置 ARP 数据包的目标 MAC 地址?

将 python 与 Scapy 一起使用,使用以下示例代码更改数据包的 MAC 地址目的地没有问题:

但是,当我尝试对 ARP 做同样的事情时:

数据包不会被发送出去。是不是因为 ARP 已经是二层协议了?如果是这样,是否有可能手动更改 ARP 数据包的目标 MAC?

0 投票
1 回答
53 浏览

networking - 数据链路层协议的中等限制?

当使用特定的数据链路层技术(例如以太网)时,我们是否对所使用的介质(即以太网)有限制。我们可以使用无线电连接通过以太网连接两个 LAN 吗?

0 投票
2 回答
981 浏览

networking - Go-Back N 协议 ACK

我正在尝试使用此网站了解 Go-Back N 的工作原理:- http://www.ccs-labs.org/teaching/rn/animations/gbn_sr/

在这里,假设我们正在发送帧 1,2,3,4,5,6(窗口大小 4)并且在当前窗口中我们有帧 1,2,3,4。现在假设 ACK 4 丢失,然后根据网站,当前窗口中的任何帧都不会被重新传输。

据我了解,必须重新传输(当前窗口的)帧3、4、5、6。

我哪里错了?

0 投票
1 回答
1124 浏览

python - 使用 Python 在数据链路层(获取 IP 地址之前)进行通信

是否有可能使用 Python 在 IP 地址之前或之外直接在数据链路层上进行通信?类似于与 USB 通信?

我有一个客户有兴趣尝试这个。据我所知,没有办法。但我永远不想低估 Python 的力量。

0 投票
0 回答
315 浏览

delay - 帧大小、传播延迟和带宽关系

我在某个论坛中发现了这个公式,用于计算传播延迟和带宽的函数的帧大小:frame size >= 2*(propagation delay)*bandwidth但是,我找不到任何可靠的参考,无论是对提到这种公式的书还是论文。这个公式正确吗?如果是,任何人都可以解释背后的逻辑吗?事实上,在那之前我一直认为frame size = propagation delay*bandwidth

0 投票
1 回答
450 浏览

network-programming - 使用第二层广播地址向默认网关发送 echo-r​​equest

我正在尝试使用 Scapy 中的第二层广播地址向默认网关发送回显请求。

我写了这段代码:

但没有返回响应

据我了解在网络内发送数据包的过程,该帧应该已经发送到交换机,因为目标的 IP 地址在同一个网络中,然后交换机应该已经将它发送给连接到它的每个人,因为它看到广播地址。

这个理论有什么问题?

顺便说一句,我正在使用wireshark 嗅探流量,在那里我可以看到捕获的ping 请求,但找不到该答案的响应,这可能意味着这是一个网络问题,而不是软件问题。

0 投票
1 回答
74 浏览

networking - 帧如何到达网络交换机?

在研究网络中的数据包遍历时,我了解到在 LAN 中我们使用 MAC 地址来遍历帧。

我还了解帧如何通过交换机从网络中的 PCa 到达 PCb,以及交换机如何学习两个终端设备的 MAC 地址。

但我不明白的是,帧如何从 PCa 移动到它所连接的交换机。PCa 是如何知道如何发送帧的?

0 投票
1 回答
3505 浏览

networking - CRC 突发错误检测校验和结果的证明

据说CRC(循环冗余校验和)可以检测少于r + 1位的突发错误,其中r是多项式的次数。此外,以1 – 2 -r的概率检测到长度大于r + 1位的突发。

有人可以指导我进行相同的证明吗?