计算机如何知道要重新组合哪些数据?

How does a computer know what data to reassemble?

当计算机 X 通过网络向计算机 Y 发送数据时,数据通过 OSI 层向下传输。还行吧。我明白。但是一旦数据作为电信号放在媒体上,那么计算机 Y 如何知道要重新组合什么,给定 OSI 中生成的数据模型的 headers 和尾部,一旦它被放在电媒体上1 不存在了?

正如您所说,物理层只是 1 和 0 - 诀窍是有一种模式告诉接收方这是数据包的开始。这通常被称为 'Framing'.

一旦接收方知道了这一点,它就会根据第 2 层的需要简单地读取尽可能多的位header,然后它就拥有了,依此类推。

header在典型的 OSI 或网络图中很清楚,例如(https://www.ciscopress.com/articles/article.asp?p=2738463):

所以前两层在接收器上的工作方式是:

  • 第 1 层仅识别信号是 1 还是 0 并创建 1 和 0 的流。
  • 第 2 层读取此流,当它识别出起始模式时,它就会知道以下位是 header 等等,因此它可以识别帧。

您可以在线查看开始和停止模式的示例,例如(http://sinauonline.50webs.com/Cisco/Cisco%20Exploration%20Sem1Chap7.html):