问题标签 [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 投票
1 回答
145 浏览

networking - 两个路由器如何就使用哪个 CRC 生成器达成一致?

在 CRC(循环冗余校验)中,通常两个节点就一个 r+1 位生成器达成一致。这个 r 通常为 32,并在设备(路由器)中配置。如果两台路由器配置了不同的 r 位生成器(例如,一台路由器配置了 16 位生成器,另一台配置了 32 位生成器),会发生什么情况?他们如何就使用哪些生成器达成一致?

0 投票
0 回答
450 浏览

java - RandomAccessFile 打开文件不起作用

我正在做的是创建两个节点,它们将通过文本文件相互通信,例如:节点 0 是节点 1 的邻居,反之亦然。节点 0 将打开文本文件 from0to1.txt,节点 1 将打开文本文件 from1to0.txt。

我在这段代码中验证了这些文件的创建:

打开这些文件后,我将打开它们以写入它们。每个节点将从这些文本文件的“通道”中感知数据。阅读时,我使用 RandomAccessFile 打开这些文本文件。当我写作时,我用 FileWriter/BufferedWriter 打开这些文本文件。

问题是当我尝试打开文本文件以使用 RandomAccessFile 读取时,它会引发 FileNotFoundException。我试图运行 f.exist() 并且它也显示为假。为什么它不创建文件/不承认文件存在?

这是代码:

0 投票
2 回答
454 浏览

microcontroller - HDLC - 双向同时通信中异步平衡模式中 PF 位的用途

我正在尝试为微控制器项目编写仅在 ABM(点对点)中工作的 HDLC 协议。我主要依靠 ISO 13239 文档click

通信应以双向同时模式工作。现在我想连接在同一个微上运行两个 HDLC 上下文的微的两个 USART。我在理解 ABM 中的 P/F 位用途时遇到了问题。

在具有正常响应模式 (NRM) 的半双工链路中,原理很简单 - 主站发送在最后一帧设置了 P 位的命令帧,授予辅助站以在主站也设置了 F 位的帧进行响应的权限最后一帧。

在 NRM 的全双工链路中,主站发送第一帧 P 位设置的命令,可以发送更多帧。当辅助接收到第一个设置了 P 位的命令帧时,它可以发送在第一帧上设置了 F 位的响应帧。在第一个命令/响应帧上设置 P/F 位的目的是提高速度 - 主节点允许尽快将命令传输到辅助节点,以便辅助节点可以在主节点仍在发送命令时发送响应(双向同时)。

在全双工 ABM 中,情况对我来说很复杂。没有主从关系,但两个站都是组合站,并且都可以随时(异步)发送命令和响应。这是我之前提到的 ISO 文档中 ABM 信息交换的示例信息交换。为什么两个站都使用带有 P/F 位的帧。如果没有 P/F 位,交易所看起来会不会一样?一个站何时以及为什么发送带有 ABM 中 P/F 位的帧

0 投票
1 回答
608 浏览

c++ - OMNET++:如何在 INET 4.0 中获取帧的源 MAC 地址?

我正在使用INET带有OMNET++. 我已经定制了我的Ieee80211ScalarRadio模块,以读取从我的AdhocHost.
这是我的自定义CIeee80211ScalarRadio.ned文件:

这是相应的CIeee80211ScalarRadio.cc文件:

如您所见,我正在重写Ieee80211ScalarRadio'ssendUp()方法以从macFrame.
我可以成功提取RxPower,但是,当我为 做同样的事情时,我在自己的源代码MacAddress中得到以下编译器错误:INET

我怎样才能在MacAddress没有任何错误的情况下获得价值?

0 投票
1 回答
27 浏览

nearest-neighbor - 802.15.4 链路层 1 跳邻居

我一直在寻找有关协议规范中链路层上的 1 跳邻居的信息。

不幸的是,我找不到我的问题的答案。在 802.15.4 MAC 协议中是否有节点,有关其 1 跳(直连)邻居的信息?

0 投票
1 回答
574 浏览

node.js - 使用 Node.js 可以访问多少网络堆栈?

查看 TCP/IP 堆栈的表示,例如在这张照片中: 在此处输入图像描述

我有兴趣(只是出于好奇)尝试阅读第 2 层(数据链路)标头。这可能吗?我认为该net模块只允许访问传输层数据包。我看到还有一个udp模块,但同样我怀疑我是否可以从中获取数据链路层数据包信息。

以上是正确的吗?我是否认为传输层数据包数据通过 v8/etc 实现可供 JavaScript 运行时使用,并且较低级别的数据包数据(即以太网层)不会暴露给 Node.js 运行时?

0 投票
1 回答
239 浏览

ip - 以太网帧大小限制(有效负载)

以太网的设计者将 MTU 保持为 1500 字节(用于有效负载),我想知道这是什么原因?因为 IP 数据报大小(允许超过 1500 字节)那么为什么以太网设计人员选择小于 IP 数据报大小的帧大小?另外我知道有效载荷至少有 46 个字节的限制?为什么会这样?

0 投票
1 回答
3911 浏览

networking - 通过 CRC(循环冗余校验)进行单比特错误检测

我正在经历一些与基于 CRC 生成器的单位错误检测相关的问题,并试图分析哪个生成器检测到单位错误,哪些没有。

假设,如果我有一个 CRC 生成多项式为 x 4 + x 2。现在我想知道它是否保证检测到单位错误?

根据参考文献12,我总结了几点:-

1) 如果 k=1,2,3 用于误差多项式 x k,则余数将分别为 x,x 2 ,x 3在由生成多项式 x 4 + x 2进行多项式除法的情况下,并且根据参考资料,如果生成有多个项且 x 0的系数为 1,则可以捕获所有单比特错误。但它并没有说如果 x 的系数0的系数不为 1 则不能检测到单位错误。这就是说“在循环代码中,那些可被 g(x) 整除的 e(x) 错误不会被捕获。”

2) 我必须检查 E(x)/g(x) 的余数,其中 E(x)(假设是 x k)其中 k=1,2,3,... 是误差多项式,g( x) 是生成多项式。如果余数为零,则我无法检测到错误,当它为非零时,我可以检测到它。

所以,根据我的说法,生成多项式x 4 +x 2保证了基于以上2点的单比特错误检测。请确认我是否正确。

0 投票
2 回答
387 浏览

networking - 第 2 层 IP 地址的可见性?

IP 地址是否对第 2 层(数据链路层)设备可见。如果不是,那么这些层为什么在不知道 IP 地址的情况下使用 ARP 协议将 IP 地址转换为 MAC 地址。

谢谢你。

0 投票
0 回答
79 浏览

byte - 如何从高通芯片组诊断中获取超帧头的结构

我知道一些Snapdragon QUALCOMM芯片组可以将通信日志发送到上层访问。我也知道每帧以 0x7e 结尾的高级数据链路控制 (HDLC) 帧结构。

但是这个芯片组发送一些具有特殊结构的超帧,可能违反这个约定。我们知道,架构将如下所示:

超帧和帧的模式

而且超帧头中不使用字节填充,仅在帧中使用。

那么,超帧头的结构或其中使用的约定是什么?更准确地说,超帧头中的字节代表什么?

有链接吗?或者有人可以告诉我吗?