网络协议——它们如何区分比特流上的不同部分



当数据通过网络传输时,它显然是二进制形式的。

可以是一个数字

1011001

,然后是其他一些数据,可能是

1110100111001 

是一起发送的

当他们到达时,我们如何区分他们?是否有一些特殊的标志来表示每个数据的结束?

如果是,我们如何确保它是唯一的,我们不会感到困惑?

您可以定义一个特殊的位串模式作为流的开始或结束,一些协议也这样做,但是您必须使它足够长(例如256位),以至于它不太可能出现在正常的数据流中。

一种更可靠的方法是,如果结束模式出现在正常数据中,则逃避它。你们可能知道它是怎么工作的,因为每个人都在某个时间点接触过在字符串中使用。它们必须转义为\

第三种方法是适用的,如果你提前知道你的流将有多长,所以你可以在实际发送数据之前发送一个长度。

实际细节定义为协议,双方必须遵循协议的结构,无论它是如何定义的。

例如,以太网帧以8字节的序言和帧分隔符开始,每个字节是10101010(我不确定)
每个数据一般以字节(8位)读取,帧有定义的结构:https://en.wikipedia.org/wiki/Ethernet_frame
每一帧包含一个数据包:
https://en.wikipedia.org/wiki/Network_packet
试着谷歌一下,但我的答案是,有一个定义的结构,如何发送数据

相关内容

  • 没有找到相关文章

最新更新