我知道数据报是OSI模型传输层的数据包,而框架是名称用于传输层中的数据包,而网络数据包位于网络层中。我也知道每个都包含一个带有开销信息的标头,例如源IP地址和目标IP地址以及数据的有效负载。但是我无法找到有关数据报,帧和网络数据包内容之间微妙差异的任何信息。您是否可以向我指出任何资源或图表,以便我进一步理解这些概念?
谢谢!
#1 楼
注意:术语
datagram
有多种用法。如果我们遵循RFC1594,则数据报是一个独立的,独立的数据实体,携带数据
足够的信息从源路由到目标计算机无需依赖此源计算机和目标计算机与传输网络之间的早期交换。
,可以用来谈论任何层传输单元。
I.E.
packet
是Internet层数据报frame
是网络访问层数据报。传输层数据报是
segment
>
回到问题
从堆栈溢出的此答案
您可以看到:
应用程序
data
接收到传输协议标头(通常为UDP或TCP),并成为segment
。页眉和框架页脚以形成segment
评论
直到您了解到如果您进一步将OSI层层次结构降低到“物理介质”,一切都会非常好并且花哨的(根据此答案)
–z33k
18年7月9日在12:06
#2 楼
存在术语Frame
,Packet
和Segment
来从一层负责对另一层负责的内容创建抽象。 “层”比您真正要问的要早。 /> 第4层负责服务到服务的交付
因此...
第4层获取数据时,向其添加一个标头,该标头可促进诸如TCP或UDP端口(除其他外)之类的服务到服务的交付-整个数据报被称为段。
当第3层获取数据时,它向其添加标头像首发方的源IP和最终收方的目标IP一样促进端到端的传递-整个数据报称为数据包。
当第2层获取数据时,它会在其上添加一个标头促进跳像网络中当前“跃点”的源和目标MAC地址一样进行跃点传递-整个数据报被称为帧。动画:
然后是一个帧,即L2报头加上需要传递到下一跳的所有数据:
框架:
[L2 HDR][110011001010101011110000...010101]
您和我知道框架内是L3标头,L4标头和应用程序数据,但就L2而言,内部的所有内容只是一系列需要传递到另一个跃点的
1
和0
。那么,一个数据包就是L3标头,加上需要传输的任何数据交付到另一端:数据包:
[L3 HDR][1010101011110000...010101]
您和我都知道,框架内部是L4标头和应用程序数据,但是就L3而言,内部的一切只是一系列
1
和0
,它们需要是另一个端点那么,一个段就是L4报头,加上需要传递到其他服务的所有数据: />您和我知道,细分内部包含将由接收服务处理的应用程序数据
,并且应用程序数据本身当然会随每个应用程序而有所不同。 HTTP用于Web请求,FTP用于文件传输,等等。
数据报本身就是简单的标头和位的构造。上面的术语只是在每层运行的特定数据报的唯一名称。
帧是L2处的数据报
数据包是L3处的数据报< br分段是L4处的数据报
评论
这个答案有问题-与@JFL一样(请参阅我的评论)
–z33k
18年7月9日在12:13
评论
有什么答案对您有帮助吗?如果是这样,您应该接受答案,这样问题就不会永远弹出来寻找答案。或者,您可以发布并接受自己的答案。