才子佳人博客

我的故事我讲述

浅析以太网帧
 
来源:blog.csdn.net  编辑:xjh  2017-11-02

IP数据报必须用数据链路层的帧头和帧尾封装后才能在物理媒介上发送,数据链路层提供以下服务:

1.定界 帧彼此分开。每个帧的开始和结束位置被标出。

2.协议识别 如TCP/IP,IPX或AppleTalk,每种协议必须区分开。

3.寻址 必须指出源节点和目标节点。

4.比特级完整性检验 每帧校验比特级错误。

(一)首先需要明白任何上层的报文,都需要经过发送方的层层封装,最后在物理层以比特流的方式发送出去,封装的过程实际就是加包头的过程,当然接收方也需要层层解封,实际就是去包头的过程,最后送给上层协议做处理。

(二)报文在IP层时称之为“IP报文”,比如有ARP报文,ICMP报文等。

报文在MAC层时称之为“以太网帧”。以太网帧主要有两种:以太网V2类型和802.3类型。以太网帧的格式如下(以太网V2类型):


其中以太网帧的数据部分就是上层的“IP报文”,在MAC层封装时,在IP报文的基础上加了12个字节的的源、目MAC地址,2个字节的报文类型,4个字节的FCS校验位,一共18个字节。

2个字节的类型字段主要是用来标志上一层使用的是什么协议,主要方便于收到MAC帧的主机在解包的过程中,知道把数据字段(IP报文)交给上一层的哪个协议,其中0x0800表示上层使用的是IP数据报,而ARP的报文类型是 0x0806 。

数据字段的大小在46-1500字节之间,也就说MAC帧的大小不能小于46+18=64字节,否则被丢弃。

(三)以上主要是MAC层的封包,但其实在物理层也有额外的封包,只是我们不太关注。


在物理层传输时,需要在MAC帧的基础上加8个字节的帧头,其中前7个字节是同步码,后1个字节是帧开始的定界符,同样表示后面的数据是以太网帧。

注意:

1)同一网段上的所有节点必须使用相同的帧格式才能相互通信。

2)以太网不需要帧结束定界符,在传输时必须有一定间隔。

3)帧的首部没有帧长度字段,因为使用曼彻斯特编码可以自同步,检测网卡接口上电平变化来确定帧的结束,具体帧的截取要依靠上层包的长度来判断。

4)下列情况视为无效MAC帧:1)帧的长度不是整数字节;2)FCS校验有错;3)帧的数据部分不在46~1500字节,即帧长不在64~1518范围内。

5)以太网对无效帧直接丢弃,不负责重传,数据可靠性由TCP来完成。

6)802.3规定MAC帧的第三个字段是长度/类型,当字段值大于0x0600表示类型,小于该值表示数据部分的长度,但由于采用曼彻斯特编码,长度字段其实无实际意义,又0x0600 =十进制d 1536,故以太网MAC帧数据部分长度肯定小于1536字节。

7)802.1Q标准定义了前面帧的扩展,在源地址和类型字段之间插入4字节的VLAN标识符,前两个字节设置为0x8100,字段值大于0x0600表示VLAN 帧类型,后面两字节的前3位是用户优先级,接着一位是CFI,最后12位是VLAN_ID,在交换机中,现在流行使用的是带VLAN格式的帧,以太网帧长由1518变为1522字节。


来源参考:
谢希仁,《计算机网络(第5版)》,电子工业出版社,p89-90
http://blog.csdn.net/hmsiwtv/article/details/22891113


分类:网络日志| 查看评论
相关文章
文章点击排行
本年度文章点击排行
发表评论:
  • 昵称: *
  • 邮箱: *
  • 网址:
  • 评论:(最多100字)
  • 验证码: