我正在尝试实现类型3的HDLC帧格式,我对Octets / Modulo 8帧编码有一些疑问。
我对这一切感到困惑,所以我需要更多澄清。示例和插图将有很大帮助。
先谢谢。
谢谢@clifford和@masoud。你的回答非常有帮助。但是我必须阅读这个Octet String: What is it?(虽然这听起来很有趣,因为它以一种简单的方式解释),然后我回来阅读你的评论,然后我理解你所解释的一切。同样,祝我编码愉快。
答案 0 :(得分:4)
在HDLC中,每个字段长度必须为模8,例如:
HDLC框架如下:
[FLAG(8bits)|ADDRESS(8bits)|CONTROL(8/16bits)|INFORMATION(n*8bits)|FCS(8bits)|FLAG(8bits)]
每个字段都是模8,甚至信息的长度必须是模8。
这意味着如果要发送长度为1位的数据,则必须使用一个字节(8位)。
答案 1 :(得分:2)
首先,HDLC帧是否完全以八位字节传输?
这仅仅意味着数据长度是8位的倍数。是的。
框架的长度是'n'八位字节是什么意思?
谁是“他们”?引用您的参考资料。八位字节只是一组八位。字节是一个不太模糊的术语(很少使用它是指长度不是8位的机器字)。术语octet广泛用于电信,也用于英语以外的语言,意思是“字节”(当一个字节是8位时)。
我相信Octet和Modulo
完全没有, modulo 是一个数学术语,在这里使用可能不准确意味着可以被8整除(或精确倍数)。
[...] X的编码意味着什么,应该是模8。[?]
又是谁“他们”?如果我们可以在上下文中看到您正在阅读这些内容,您可能会得到更好的解释。
修改强>
我没有达到引用ISO 3309的长度,ISO 3309是定义HDLC帧结构的标准,但至少Wikipedia article中的术语“模8”仅用于帧序列号的上下文中,它只是简单的表示序列号从0递增到7,然后从0重新开始(即,它是模数为8的帧号 - 或C代码中帧余数为8或简单frame_num % 8
的余数。我想知道你是否混淆了条款 - 再次引用或提取会有所帮助。