数据报文
① 报文,数据报,数据包三者的区别
数据发送时,由上层向下层封装,
四层,协议层传输的是数据报文,主要是协议格式。
三层,网络层传输的是数据包,包含数据报文,并且增加传输使用的ip地址等三层信息
二层,数据链路层传输的是数据帧,包含数据包,并且增加相应mac地址与二层信息
数据接收的时候,下层向上层解封装
具体区别就是所工作的层不同,可根据iso七层模型或者tcp/ip四层模型理解
② 数据包,数据报文,数据帧之间的关系
一、数据帧(Frame):数据链路层,传递的单位是frame 帧,就是数据链路层的协议数据单元,包括三部分
1、帧头,里面有mac地址,通过这个地址可以在底层的交换机这个层面里顺着网线找到你的计算机。
2、数据部分,ip数据包,意思是使用ip地址定位的一个数据包。
3、帧尾。其中,帧头和帧尾包含一些必要的控制信息,比如同步信息、地址信息、差错控制信息等;数据部分则包含网络层传下来的数据,比如ip数据包。
二、数据包(Packet):TCP/IP协议通信传输中的数据单位,处于网络层,在局域网中,“包”是包含在“帧”里的。packet是整个tcpip通信协议里网络层的传输单位,也是最小的单位。
有着目的地的ip地址及其来源的ip地址和其他的校验信息。它也被称为头。来自传输层托付给自己待传送的信息。这个信息会被分成多个ip数据包发送出去。所以网络层传递的是ip包,ip包里是待传输消息的一部分。
三、数据报(Datagram):现在来到传输层了,传输层直接接受来自你的消息,小到给朋友发个晚安,大到给别人传递个文件,只要提供对方的ip地址(还有端口号),其它的都交给传输层帮助实现。
这两种协议都会在发送前把你的消息拆分成多个ip数据包来传输。udp英文就叫 user datagram protocol。所以数据报是啥,就是带地址的消息。
(2)数据报文扩展阅读:
1、据报是不能比数据帧大的,数据帧根据不同网络(无线有线)长度会有所区别,数据包(一块数据)进行为网络层传输时会进行判别,如果长过是网络层要进行分片,成为数据报。
2、假设要传输一个UDP数据包,以太网的MTU为1500字节,一般IP首部为20字节,UDP首部为8字节,数据的净荷(payload)部分预留是1500-20-8=1472字节。如果数据部分大于1472字节,就会出现分片现象。
3、IP分片发生在IP层,不仅源端主机会进行分片,中间的路由器也有可能分片,因为不同的网络的MTU是不一样的,如果传输路径上的某个网络的MTU比源端网络的MTU要小,路由器就可能对IP数据报再次进行分片。而分片数据的重组只会发生在目的端的IP层。
4、TCP:对于TCP数据,在建立连接的三次握手的过程中,连接双方会相互通告MSS(Maximum Segment Size,最大报文段长度),MSS一般是MTU—IP首部(20)—TCP首部(20),每次发送的TCP数据都不会超过双方MSS的最小值,所以就保证了IP数据报不会超过MTU,避免了IP分片。