OSI模型封装

网络工程 以太网 通讯协议 ip 奥西 数据
2021-07-29 18:00:40

我正在尝试理解 OSI 模型的封装,总的来说,这对我来说很清楚,但我有一个问题。
请看这张图片http://www.just2good.co.uk/images/gif/ethernetFrame.gif
默认以太网框架。这是我的问题的好图片。您可以看到显示了 IP 封装。

据我了解,data部分Ethernet frame长度从 46 字节到 1500 字节。这意味着对于上层协议,只有 1500-46 = 1454 个字节。好的。

我的问题是:这一切都意味着数据包大小根据级别编号减少,我的意思是网络层有数据包大小<链路层等等,因为data数据包的封装部分正在减少,对吗?但是为什么我发现 TCP 数据包大小是例如 64kBytes !!!

如果我们有1454 bytes数据(减去上层的标题),怎么可能data link layer????

请为我解释一下,我将不胜感激。

2个回答

答案很简单,TCP 段可以分成许多 IP 数据包。最大段大小 (mss) 是可以装入单个 IP 数据包的最大 TCP 段。IP 数据包的大小受最大传输单元 (MTU) 的限制,它取决于物理介质。

除了 Ron Trunk 的回答之外,您对第 3 层协议的大小也不正确。以太网有效负载(第 3 层)可以是最小 46 字节和最大 1500 字节,我不知道您为什么要从最大值中减去最小值以使第 3 层协议最大为 1454 字节;以太网帧中第 3 层协议的最大长度为 1500 字节。

那你就得看看三层协议。IPv4 的标头至少需要 20 个字节,但有一些选项可以将其增加到 60 个字节。IPv6 使用固定的 40 字节作为其标头,尽管它也可以具有选项标头。在第 3 层协议中,有效载荷(第 3 层)大小可以根据第 3 层协议的标头大小(1500 字节 - 第 3 层标头大小)而变化。

第 4 层协议也会有一个报头,因此它可以传递的有效载荷进一步减少(1500 字节 - 第 3 层报头大小 - 第 4 层报头大小)。第 4 层协议的要点在于它是应用程序使用的端到端协议。一个应用程序可以将一个大数据报提供给第 4 层协议,第 4 层协议处理将其分成块(段)进行传输,并将另一端接收到的段重新组装成原始的大数据报以呈现给受理申请。根据第 4 层协议,这可能会也可能不会保证工作。例如,TCP 保证为接收应用程序重新组装一个完整的数据报,而 UDP 则不然。