📜  段、包和帧之间的区别

📅  最后修改于: 2021-09-28 09:46:19             🧑  作者: Mango

在本文中,我们了解在计算机网络中经常被误用的术语之间的确切区别是什么,并且在这些术语的使用中存在很多混淆。

在开始之前,最好先熟悉一个称为协议数据单元 (PDU)的术语。
术语 PDU 用于指 OSI 模型不同层中的数据包。因此,PDU 给出了数据包的抽象概念。 PDU 在不同的层有不同的含义,我们仍然可以将其用作通用术语。

要给出清晰的图片:-

  1. 传输层的 PDU 称为 Segment。
  2. 网络层的 PDU 称为数据包。
  3. 数据链路层的 PDU 称为帧。

这是计算机网络中使用的不同术语的基本含义。

应用层可以给下层任意数量的数据,但是不可能把应用层给的数据全部都直接发送。因此,TCP 出现了。 TCP 有助于将数据(由应用层提供)分解为给定网络可以处理的 MSS(最大段大小),以便路由器中不会发生进一步的分段。

并且这个 TCP 还负责在传送段时进行确认。

1. 细分:
来自应用层的数据根据网络的 MSS 被分成更小的部分,并且 TCP 标头被添加到更小的部分。标头的大小可以在 20B 到 60B 之间变化。但通常,header 的大小为 20B(其余 40B 是可选的)

TCP的头部包括:-

1. Source Port
2. Destination Port
3. Flag bits (like DF, MF, etc)
4. Sequence Number of the Segments
5. Checksum
6. Options Field 

源和目标端口是必需的,因为它告诉接收方主机中将在哪个 PDU 中传送。

TCP 的校验和字段是通过考虑 TCP 标头、数据和 IP 伪标头来计算的。校验和确保发送和接收正确的数据。

因此,经过所有这些处理后,损坏的数据包称为段。

2. 数据包:
从传输层接收到的段被进一步处理以形成数据包。

IP 数据包的标头大小从 20B 到 60B 不等。但通常情况下,它是20B。

IP 标头有许多字段,即:-

1. Source IP Address
2. Destination IP Address
3. TTL(time to leave)
4. Identification
5. Protocol type 
6. Version (version of protocol)
7. Options 

现在让我们理解这个概念,IP 主体包含从传输层接收到的没有任何修改的 Segment。向 IP 主体添加具有上述字段的 IP 标头。

IP 标头作为网络中的数据包不断修改,因为 TTL 随每一跳不断变化。

因此,IP 报头与正文(包含来自传输层的段)一起构成 IP 数据包或通常只是数据包。

当网络的 MTU 较小时,如果需要,该层还负责分片。这种分段是在路由器上完成的。

3. 框架:
从网络层收到的数据包经过进一步处理以形成帧。

这里是数据链路层添加了头部,头部由字段组成。

1. Source Mac Address
2. Destination Mac Address
3. Data
4. Length
5. Checksum (CRC) 

源 MAC 地址使用 ARP(地址解析协议)进行解析。随着帧在网络中移动,源和目标 MAC 地址将不断修改。

MAC 地址的修改由路由器完成。

数据是从网络层接收到的段。

长度是网络的总 MTU(最大可传输单元)。

通过下面给出的图表,所有概念都将一目了然。