一、什么是数据帧?
所谓的“数据帧(Data frame)”,就是“数据链路层”的协议数据单元,它包括三部分:帧头、数据部分、帧尾。其中,帧头和帧尾包含一些必要的控制信息,比如同步信息、地址信息、差错控制信息等;数据部分则包含网络层传下来的数据,比如“IP数据包”等等。
在发送端,数据链路层把网络层传下来的数据封装成“帧”,然后发送到链路上去;在接收端,数据链路层把收到的帧中的数据提取出并交给网络层。不同的数据链路层协议对应着不同的数据帧,所以数据帧有多种,比如“PPP帧、MAC帧”等,其具体格式也不尽相同。
二、数据帧的格式
以MAC帧的格式为例进行说明:
MAC帧的“帧头”包括三个字段。前两个字段分别为6字节长的“目的地址字段”和“源地址字段”,目的地址字段,包含目的MAC地址信息;源地址字段,包含源MAC地址信息。第三个字段为2字节的类型字段,里面包含的信息用来标示上一层使用的是什么协议,以便接收端把收到的MAC帧的数据部分上交给上一层的这个协议。例如:当类型字段的值是0x0800时,就表示上层使用的是IP数据报;若类型字段的值为0x8137,则表示该帧是由Novell IPX 发过来的。
MAC帧的“数据部分”只有一个字段,其长度在46到1500字节之间,包含的信息是网络层下来的数据。
MAC帧的“帧尾”也只有一个字段,为4字节长,包含的信息是“帧校验序列FCS”(用于判断所接收到的帧是否发生错误)。
三、什么是数据包?
包(Packet)是TCP/IP协议通信传输中的数据单位,一般也称“数据包”。
IP协议是工作在OSI参考模型的第三层(网络层),而TCP协议则是工作在OSI参考模型的第四层(传输层)上。
数据帧,工作在OSI参考模型的第二层(数据链路层)。上一层的数据内容由下一层来传输,所以在局域网中,“包”是包含在“帧”里的。所谓“数据帧(Data frame)”,就是数据链路层的协议数据单元,它包括三部分:“帧头、数据部分、帧尾”。其中,帧头和帧尾包含一些必要的控制信息,比如同步信息、地址信息、差错控制信息等;数据部分则包含网络层传下来的数据,比如“IP数据包”。
在网络通信中,单个消息被划分为多个数据块,这些数据块称为“包”,它包含发送者和接收者的地址信息。这些包然后沿着不同的路径,在一个或多个网络中传输,并且在目的地重新组合。
四、数据包的格式
数据包主要由“目的IP地址”、“源IP地址”、“净载数据”等部分构成,包括“包头”和“包体”。包头是固定长度,包体的长度不定,各字段长度固定,双方的“请求数据包”和“应答数据包”的包头结构是一致的,不同的是包体的定义。
数据包的结构与我们平常写信非常类似,“目的IP地址”是说明这个数据包是要发给谁的,相当于收信人地址;“源IP地址”是说明这个数据包是发自哪里的,相当于发信人地址;而“净载数据”相当于信件的内容。正是因为数据包具有这样的结构,安装了TCP/IP协议的计算机之间才能相互通信。我们在使用基于TCP/IP协议的网络时,网络中传递的其实就是“数据包”。认识和理解数据包,对于网络管理和网络安全都具有非常重要的意义。
亿速云,作为一家拥有丰富行业积淀的专业云计算服务提供商、云安全服务提供商,致力于为广大用户提供的“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器”等云主机租用服务,具有安全稳定、简单易用、高可用性、高性价比的特点与优势,专为中小企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。