帧、报文、数据包的差别

      在计算机网络这一章节中,经常会遇到报文、帧、数据包等名称。这些内容比较相近,都是在网络传输的数据概念,如何更好的区分他们之间的联系,那就一起来看吧。

 

一、概念区分

  • 帧(frame):数据链路层的协议数据单元,它包括三部分:帧头、数据部分、帧尾。其中,帧头和帧尾包含一些必要的控制信息,比如同步信息、地址信息、差错控制信息等。

  • 数据包(packet):在TCP/IP协议通信传输中的数据单元,也称为“包”。指自包含的,带有足够寻址信息,可独立地从源主机传输到目的主机,而不需要以来早期地源主机和目的主机之间交换信息以及传输网络地数据包。

  • 报文(message):是网路中交换与传输的数据单元,也是网络传输的单元,报文包含了将要发送的完整的数据信息,其长短不一。报文在传输过程中会不断地封装成分组、包、帧来传输,封装的方式就是添加一些控制信息组成的不受,那些就是报文头。

 

二、体系结构区分

 

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

 

三、数据包分帧封装原理

 

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

 

用通俗易懂的话解释:

       当数据数据链路层传输的时候叫做“帧”,当一个帧被接受并提交到第二次处理:剥开帧头帧尾,获得数据包(对于第二层来说它只认识帧头和帧尾,其他包括包头等都是帧承载的普通数据);然后这个包被提交到第三层:它能识别包头,得到被包在里面的信息(信息包含第四层TCP数据报头,对于第三层来说也是报头也是它承载的普通数据),第三层结束以后把去掉报头的数据给第四层,这些数据就是报文。

猜你喜欢

转载自blog.csdn.net/damishidai15/article/details/88746367