数据报、帧和网络包的内容有什么区别?

网络工程 互联网
2021-07-20 18:55:54

我正在复习我所在班级的网络安全单元,我有一个问题。

我知道数据报是 OSI 模型传输层的数据包,而帧是传输层中数据包的名称,而网络数据包位于网络层中。我还知道每个都包含一个带有开销信息的标头,例如源和目标 IP 地址,以及数据的有效载荷。但是我找不到任何关于数据报、帧和网络数据包内容之间更细微差异的信息。是否有任何资源或图表可以指给我,以便我进一步了解这些概念?

谢谢!

2个回答

注意:
该术语datagram有多种使用方式。如果我们坚持RFC1594,数据报是

一个自包含的、独立的数据实体,携带足够的信息从源计算机路由到目标计算机,而不依赖于该源计算机和目标计算机与传输网络之间的早期交换。

并且可以用于谈论任何层传输单元。

IE

  • apacket是互联网层数据报
  • frame是网络接入层数据报。
  • 传输层数据报是一个 segment

回到问题

来自Stack Overflow 上的这个答案

在此处输入图片说明

如你看到的 :

  • 应用程序data接收传输协议头(一般为 UDP 或 TCP)并成为segment.

  • segment接收到IP报头和现在是一个packet

  • packet接收到一个帧头和帧尾以形成frame

术语FramePacket和 的Segment存在是为了从一层负责的内容与其他层创建抽象。

为了解释这一点,并彻底回答你的问题,我将比你真正问的“早”一点开始。

所以...

  • 当第 4 层获取数据时,它会向其中添加一个标头,以促进服务到服务的交付,例如 TCP 或 UDP 端口(以及其他内容)——整个数据报称为Segment
  • 当第 3 层获取数据时,它会向其中添加一个标头,以促进端到端的交付,例如初始发送者的源 IP 和最终接收者的目标 IP——整个数据报称为Packet
  • 当第 2 层获取数据时,它会向其中添加一个标头,以促进跳到跳的传递,例如网络中当前“的源和目标 MAC 地址——整个数据报称为Frame

本质上是封装的过程,在这个动画中说明:

在此处输入图片说明

  • 的话,就是L2首加上需要传递到下一跳的所有数据:

    • 框架: [L2 HDR][110011001010101011110000...010101]
    • 你我都知道帧里面有一个 L3 头和一个 L4 头和应用数据,但就 L2 而言,里面的一切都只是一系列需要传递到另一跳1s 和0s。
  • 分组然后,是L3头部,再加上需要传送到另一端的任何数据:

    • 包: [L3 HDR][1010101011110000...010101]
    • 你我都知道frame里面是一个L4头和应用数据,但是就L3而言,里面的一切都只是一系列的1s和0s,需要是另一个端点
  • 那么,一个Segment就是 L4 标头,以及需要传递给其他服务的任何数据:

    • 分割: [L4 HDR][11110000...010101]
    • 你我都知道Segment里面是应用程序数据,它是由接收服务处理的

当然,应用程序数据本身会因每个应用程序而异。HTTP 用于 Web 请求,FTP 用于文件传输,等等。

术语数据报本身只是报头和位的结构。上面的术语只是在每一层运行的特定数据报的唯一名称。

  • 帧是 L2 的数据报
  • 数据包是 L3 的数据报
  • 段是 L4 的数据报