【通信协议】帧、数据报、数据包的区别和联系

在学习计算机网络时,我们经常会遇到帧、数据包、数据报等名词?有人会问,他们不是都一样的吗,不是都是在网络传输的数据概念吗?其实它们三个还真不一样。那我们赶紧看一下他们之间的区别和联系。

      我们首先从概念上来区分他们:

      数据帧(Frame):就是数据链路层的协议数据单元,它包括三部分:帧头,数据部分,帧尾。其中,帧头和帧尾包含一些必要的控制信息,比如同步信息、地址信息、差错控制信息等;数据部分则包含网络层传下来的数据,比如ip数据包。    

      数据包(Packet):TCP/IP协议通信传输中的数据单位,处于网络层,局域网中,“包”是包含在“帧”里的。

      数据报(Datagram):多用于网络层以上,面向无连接的数据传输,工作过程类似于报文交换。采用数据报方式传输时,被传输的分组称为数据报。


      有人说,局域网中传输的不是”(Frame)吗?没错,但是TCP/IP协议是工作在OSI模型第三层(网络层)、第四层(传输层)上的,而帧是工作在第二层(数据链路层)。上一层的内容由下一层的内容来传输,所以在局域网中,是包含在里的。 

      名词解释:OSI(Open System Interconnection,开放系统互联)模型是由国际标准化组织(ISO)定义的标准,它定义了一种分层体系结构,在其中的每一层定义了针对不同通信级别的协议。OSI模型有7层,1~7层分别是:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。OSI模型在逻辑上可分为两个部分:低层的1~4层关注的是原始数据的传输;高层的5~7层关注的是网络下的应用程序。 我们可以用一个形象一些的例子对数据包的概念加以说明:我们在邮局邮寄产品时,虽然产品本身带有自己的包装盒,但是在邮寄的时候只用产品原包装盒来包装显然是不行的。必须把内装产品的包装盒放到一个邮局指定的专用纸箱里,这样才能够邮寄。这里,产品包装盒相当于数据包,里面放着的产品相当于可用的数据,而专用纸箱就相当于帧,且一个帧中只有一个数据包。

       那我们从体系结构上区分他们:

       一般说来,数据链路层发出的数据包称为frame,地址是链路层的地址,如mac地址;网络层发出的数据包称为packet,地址是网络层地址,如ip地址;传输层发出的数据包称为segment/datagram,地址是传输层地址,如TCP的端口号。


   下面的图片就很好解释了各个数据名词所对应的层次:

总而言之:

    二层的PDU叫做Frame;
    IP的叫做Packet;
    TCP的叫做Segment;
    UDP的叫做Datagram。

————————————————————


最后再补充一个知识点

数据包的帧封装原理:

    通过前面的学习我们就已经知道,网络层传输的包(packet,又称分组),在数据链路层中传输的是“帧”(frame)。数据包到达数据链路层后加上数据链路层的协议头和协议尾就构成了一个数据帧。在每个帧的前部加上一个帧头部,在帧的结尾处加上一个帧尾部,把网络层的数据包作为帧的数据部分,就构成了一个完整帧。帧头和帧尾就是作为帧的起始和结束标志,也就是帧边界,如图所示。


                      

    由数据包封装成的数据帧其大小是受对应的数据链路层协议的MTU(最大传输单元)限制的,如以太网数据链路层封装网络层IP 包的MTU 值为1500 字节(这是指帧中数据部分,也就是来自网络层整个数据分组,最大不能超过1500 字节,但不包括帧头和帧尾部分)。同时,帧还有最小大小限制,如以太网帧中封装的IP 包最小值为46 字节,如果封装的IP 包小于最小帧要求时,就要用一些特殊字符进行填充,以满足对应链路中传输最小帧的限制。


 



用通俗易懂的话解释就是:

    当数据数据链路层传播的时候通常叫,当一个帧被接收并交由第二层处理:剥开帧头帧尾,获得数据包(对于第二层来说它只认识帧头和帧尾,其它包括包头等都是帧承载的普通数据);完了这个包(packet)被交给第三层:它能识别包头,得到被包在里面的信息(这信息就包含第四层比如tcp数据报头,但对于第三层来说报头也只是它所承载的普通数据),第三层完事之后把去掉包头的数据给第四层,这坨数据就是数据报(英文datagram / segment),那么第四层就认得报头然后干该自己干的事了。

   

转自http://m.blog.youkuaiyun.com/qq_25606103/article/details/51295965

           

### 定义 #### 数据 数据是数据链路层的传输单位,在该层次中,来自网络层的数据被封装成的形式进行传送。每一都包含了源地址、目标地址以及其他控制信息作为头部尾部[^2]。 #### 数据包 在网络层及以上各层之间交换的信息基本单位被称为数据包。当高层协议(如IP)准备向更低层发送数据时会形成这样的结构体;它通常含有路由信息以便能够到达指定的目的地节点[^3]。 #### 数据报 这是一种无连接的服务形式下的术语,指的是由运输层产生的独立于其他任何事物而存在的实体——即每个分组都被单独对待并可能通过不同路径抵达终点。这种机制允许更灵活但也可能导致顺序错乱等问题的发生[^1]。 #### 数据流 指一段时间内连续不断地沿着同一方向经过特定点的一系列二进制位集合。可以理解为应用程序间持续交互过程中所产生的全部有效负载及其相关联元数据的整体流动过程。 ### 区别与联系 - **区别** - 数据特指第二层(数据链路层)上传输的内容; - 数据包则是在第三层(网络层)及更高层次使用的概念; - 数据报强调的是在不可靠服务模式下运作的特点; - 数据流描述了一段时间内的动态变化情况而不是单次事件的结果。 - **联系** 所述各项均属于OSI七层模型的不同级别上的抽象表示方法,并且它们共同构成了整个互联网通信的基础架构的一部分。随着数据从较高层级向下移动到较低层级,这些不同的单元依次发挥作用以确保信息能成功地从源头传递给接收者。 ### 网络通信基本概念 网络通信是指利用各种物理介质技术手段来实现在两个或多个设备之间的信息交流的过程。在这个过程中涉及到多种技术标准的应用,其中包括但不限于上述提到的各种数据单元。每一种类型的“数据”都有其独特的格式用途,旨在满足相应级别的需求从而保障整体系统的正常运行。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值