以太网帧格式

类型

  • Ethernet II:以太网第二版或者称之为Ethernet II帧,DIX帧,是最常见的帧类型。并通常直接被IP协议使用。
  • IEEE 802.3:Novell的非标准IEEE 802.3帧变种。
  • IEEE 802.2:逻辑链路控制 (LLC) 帧
  • SNAP:子网接入协议(SNAP)帧

Ethernet II通常是用于IP协议,包括的字段

字段 长度 备注
目的MAC地址 6个字节 因为后来源IP 目的IP 源端口 目的端口信息中,源始终是放在前面的,而这里目的MAC放在了前面,原因在于现在转发形式为存储转发,而在这里还有一条转发方式叫做快速转发,即只查找目的MAC地址,即直接转发,所以将目的MAC放在前面查找的过程中速度会加快
源MAC地址 6个字节 -
协议类型 2个字节 -


协议 标识
IPv4 0x0800
IPX 0x8137
ARP 0x0806
Pause Control 0x8808
IPv6 0x86DD

IP头部报文

1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
版本 4位 包头长度 4位 服务类型 8位 长度 16位
标识 16位 标志 3位 段偏移量 13位
TTL 4位 协议 4位 校验和 16位
源IP地址 32位
目的IP地址 32位
选项 32位

IP包头字段说明

版本:4位,指定IP协议的版本号。

包头长度(IHL):

4位,IP协议包头的长度,指明IPv4协议包头长度的字节数包含多少个32位。
• 由于IPv4的包头可能包含可变数量的可选项,所以这 个字段可以用来确定IPv4数据报中数据部分的偏移位置。
• IPv4包头的最小长度是20个字节,因此IHL这个字段的最小值用十进制表示就是5 (5x4 = 20字节)。就是说,它表示的是包头的总字节数是4字节的倍数。
• 可以表示的范围是0到65535之间。这里的总长度字段不包括帧头和帧尾,只是IP报文的总长度(包括IP头部)。

服务类型:

定义IP协议包的处理方法,它包含如下子字段
• 过程字段:3位,设置了数据包的重要性,取值越大数据越重要,取值范围为:0(正常)~ 7(网络控制)
• 延迟字段:1位,取值:0(正常)、1(期特低的延迟)
• 流量字段:1位,取值:0(正常)、1(期特高的流量)
• 可靠性字段:1位,取值:0(正常)、1(期特高的可靠性)
• 成本字段:1位,取值:0(正常)、1(期特最小成本)
• 未使用:1位

长度:

IP包的总长

标识:

该字段的表示范围是0到65535之间,标识在长报文分片后,该报文位于分片中的第几片信息

标志:

• 是一个3位的控制字段,包含:
• 保留位:1位
• 不分段位:1位,取值:0(允许数据报分段)、1(数据报不能分段)
• 更多段位:1位,取值:0(数据包后面没有包,该包为最后的包)、1(数据包后面有更多的包)

段偏移量:

当数据分组时,它和更多段位(MF, More fragments)进行连接,帮助目的主机将分段的包组合。

TTL:

表示数据包在网络上生存多久,每通过一个路由器该值减一,为0时将被路由器丢弃。 同时向源地址发送错误报告,促使重新发送。默认值为64,在某些特殊的报文中,如组播报文,该位会被置1。

协议:

8位,这个字段定义了IP数据报的数据部分使用的协议类型。常用的协议及其十进制数值包括ICMP(1)、TCP(6)、UDP(17)。

校验和:

• 16位,是IPv4数据报包头的校验和。
• 为了计算一份数据报的IP检验和,首先把检验和字段置为0。然后,对首部中每个16 bit进行二进制反码求和(整个首部看成是由一串16 bit的字组成),结果存在检验和字段中。当收到一份IP数据报后,同样对首部中每个16 bit进行二进制反码的求和。由于接收方在计算过程中包含了发送方存在首部中的检验和,因此,如果首部在传输过程中没有发生任何差错,那么接收方计算的结果应该为全1。如果结果不是全1(即检验和错误),那么IP就丢弃收到的数据报。但是不生成差错报文,由上层去发现丢失的数据报并进行重传。

源地址(Source Address,SA)

发送IP数据包的IP地址,占32位。

目的地址(Destination Address)

接收IP数据包的IP地址,也占32位。

选项

数据报中的一个可变长的可选信息。
• 安全和处理限制(用于军事领域)
• 记录路径(让每个路由器都记下它的IP地址)
• 时间戳(让每个路由器都记下它的IP地址和时间)
• 宽松的源站选路(为数据报指定一系列必须经过的IP地址)
• 严格的源站选路(与宽松的源站选路类似,但是要求只能经过指定的这些地址,不能经过其他的地址)。





上一页  TCP/IP学习理解(二)

下一页  TCP/IP学习理解(四)