正在加载 3D 实验室…
正在加载课程…
← 互联网是如何工作的世界 1 · 第 4 节课,共 4 节全部课程 ↓

重组与校验
正在教这个?打开投影模式
一条消息的数据包按顺序离开发送者,但不一定按顺序到达。不同的路径、繁忙的链路或丢失后重发的数据包都可能导致顺序混乱。因此,接收者需要一种方法来重建消息。
它使用每个头部中的序列号。接收者按照该数字的顺序排列数据包,就像按页码排列书页一样,然后将负载拼接起来。
例如:消息 "NETWORKS ARE FUN" 被分成 4 个数据包,编号为 1 到 4。它们到达的顺序是 3、1、4、2。接收者将它们重新排序为 1、2、3、4,然后读取完整消息。如果数据包 3 从未到达,接收者会发现缺失:它有 1、2 和 4,但没有编号为 3 的。
发现损坏:校验和。 电线和无线电链路并不完美,比特偶尔会从 0 翻转为 1。为了捕捉这种情况,发送者根据数据计算一个小数字并放在头部。接收者根据收到的内容计算相同的数字并进行比较。
一个简化版:将所有负载字节相加,保留除以 256 后的余数。对于 5 个字节 72、101、108、108、111(即 "Hello" 的字母),总和是 500,500 − 256 = 244。如果传输过程中某个字节发生了变化,接收者的总和就不会是 244,它就知道数据包已损坏并会将其丢弃。真实的互联网校验和稍微复杂一些,但原理相同:一个随数据变化而变化的小数字。
校验和可以检测错误,但不能修复它们。解决办法是请求重发该数据包。
谁注意到丢失的数据包,接下来会发生什么? 在互联网上,一个名为 TCP(世界 5)的协议负责这项工作。接收者会发回简短的消息,称为确认,说明哪些内容已到达。如果某个数据包丢失,发送者收不到它的确认,就会重新发送。应用程序(如你的浏览器)永远不会看到缺失或顺序混乱,它只是接收完整的文件。
你下载的所有内容都是这样分割的,不仅仅是文件和照片。即使是一个网页、一首歌或搜索结果的回答,也会被切成数据包,因为它们比单个数据包能容纳的要大。
数据包按 3、1、4、2 的顺序到达。接收方如何重建消息?
校验和的作用是什么?
在互联网上,是谁发现数据包丢失的?
玩具校验和是有效载荷字节之和对 256 取模。字节为 10、20 和 30。校验和是多少?