概述
1.以太网帧格式。
以太网技术所使用的帧称为以太网帧,简称以太帧 。以太帧的格式有两个标准:一个是由IEEE802.3定义的,称为 IEEE802.3格式;一个是由DEC、Intel、Xerox这三家公司联合定义的称为Ethernet II格式 ,也称为DIX格式。下图为两种以太网帧格式:
IEEE802.3格式:
Ethernet II格式:
下面是Ethernet II 格式的以太网帧中各个字段的描述:
- DMAC,6字节,目的MAC地址,IPV4为6字节,该字段确定帧的接收者。可以是一个单播MAC地址,或组播MAC地址或者广播MAC地址。
- SMAC,6字节,源MAC地址,IPV4为6字节,该字段标识发送帧的工作站。只能是一个单播MAC地址。
- Type,2字节,用来表示荷载数据的类型。例如:该字段值如果是0x0800,则表示荷载数据是一个IPv4 Packet ,0x86dd是IPv6 Packet,0x0806是ARP Packet,0x8848是MPLS报文等。
- Data,变长,数据字段的最小长度必须为46字节以保证帧长至少为64字节,这意味着传输一字节信息也必须使用46字节的数据字段。如果填入该字段的信息少于46字节,该字段的其余部分也必须进行填充。数据字段的最大长度为1500字节。
- CRC,4字节,用于帧内后续字节差错的循环冗余检验(也称为FCS或帧检验序列)。
根据目的MAC地址的种类,不同可以将以太网分为三种不同的类型:
- 单播以太网(单播帧):目的MAC地址为一个单播MAC地址的帧。
- 组播以太网(组播帧):目的MAC地址为一个组播MAC地址的帧。
- 广播以太网(广播帧):目的MAC地址为广播MAC地址的帧。
2.VLAN帧格式
IEEE 802.1Q标准对Ethernet帧格式进行了修改,在源MAC地址字段和协议类型字段之间加入4字节的802.1Q Tag 。VLAN帧最小帧长为 64字节。下图为IEEE 802.1Q标准的VLAN帧格式:
关于IEEE 802.1Q帧格式中的各个字段的含义是:
- Destination address,6字节,目的MAC地址。
- Source address,6字节,源MAC地址。
- Type,2字节,长度为2字节,表示帧类型。取值为0x8100时表示802.1Q Tag帧。如果不支持802.1Q的设备收到这样的帧,会将其丢弃。
- PRI,长度为3比特,全称为Priority,表示帧的优先级,取值范围为0~7,值越大优先级越高。用于当阻塞时,优先发送优先级高的数据包。如果设置用户优先级,但是没有VLANID,则VLANID必须设置为0x000。
- CFI,长度为1比特,全称为Canonical Format Indicator,表示MAC地址是否是经典格式。CFI为0说明是标准格式,CFI为1表示为非标准格式。用于区分以太网帧、FDDI(Fiber Distributed Digital Interface)帧和令牌环网帧。在以太网中,CFI的值为0。
- VID,长度为12比特,全称为VLAN Identifier,表示该帧所属的VLAN。取值范围为0~4095,由于0和4095协议规定为保留的VLAN ID,所以可配置的VLAN ID取值范围为1~4094。
- Length/Type,2字节,指后续数据的字节长度,但不包括CRC检验码。
- data,42~1500字节,数据部分,可能包含填充位。
- FCS,帧检验序列,4字节,用于帧内后续字节差错的循环冗余检验。
3.ARP的报文格式。
ARP(地址解析协议)报文分为ARP请求报文和ARP应答报文 ,这两种报文的结构相同,但是各个字段的取值有所不同,下面是ARP报文的结构图:
arp报文各个字段的含义:
- 目的MAC地址,请求报文为ff-ff-ff-ff-ff-ff,应答报文为请求端的MAC地址。
- 源MAC地址,请求报文为请求端的MAC地址,应答报文为被请求的MAC地址。
- 类型,长度为2个字节,取值为0x0806。
- 硬件类型,长度为2个字节。表示网络类型;以太网取值为1。
- 协议类型,长度为2个字节。表示协议地址类型;取值为0x0800即表示根据IP地址来进行映射。
- hln,硬件地址长度,长度为1个字节。表示硬件地址的长度;以太网中取值为6,表示MAC地址长度为6个字节。
- pln,协议地址长度,长度为1个字节。表示协议地址长度;取值为4表示IP地址长度为4个字节。
- op,请求报文的长度为2个字节,表示ARP报文的种类;取值为1表示是ARP请求报文。应答报文的长度也为2个字节,表示ARP报文种类;取值为2表示是ARP应答报文。
- 发送端的MAC地址,请求报文为请求端的MAC地址;应答报文为被请求端的MAC地址。
- 发送端的IP地址,请求报文为请求端的IP地址;应答报文为被请求端的IP地址。
- 目的端MAC地址,请求端发出该请求时,还不知道该MAC地址。接收方忽略该字段。应答报文为请求端的MAC地址。
- 目的端IP地址,请求端希望映射的IP地址,也就是被请求端的IP地址。应答报文为请求端的IP地址。
- PAD,PAD字段一共有18个字节,目的是为了凑够以太帧的荷载数据的最小长度46字节。
4.IP报文格式。
IP报文格式是IETF RFC 791 中定义的,如下图:
IPv4报文各个字段含义如下:
- 版本,长度为4bit,表示IP报文版本信息。该字段值为0x4,表示是IPv4报文,该字段值为0x6,表示是IPv6报文。
- 包头部长度,长度为4bit,用来表示IP包的头部长度。如果不带Option字段,则为20,最长为60,“包头部长度”字段的值×4=包头部的字节数。
- DS域, 长度为8bit,只有在有QoS差分服务要求时这个字段才起作用,用来区分报文的转发优先级。
- 总长度,长度为16bit,整个IP数据报的长度,包括首部和数据之和,单位为字节,最长65535,总长度必须不超过最大传输单元MTU。
- 标识,长度为3bit,用于IP报文的分片和重组。主机每发一个报文,加1,分片重组时会用到该字段。
- 标志,长度为3bit,用于IP报文的分片和重组。
Bit 0: 保留位,必须为0。
Bit 1: DF(Don’t Fragment),能否分片位,0表示可以分片,1表示不能分片。
Bit 2: MF(More Fragment),表示是否该报文为最后一片,0表示最后一片,1代表后面还有。 - 分段位移,长度为13bit,用于IP报文的分片和重组。分片重组时会用到该字段。表示较长的分组在分片后,某片在原分组中的相对位置。以8个字节为偏移单位。
- 存活时间,TTL,长度为8bit,可经过的最多路由数,即数据包在网络中可通过的路由器数的最大值,每过一个路由器TTL值减1,用它的值结合ping命令可以判断对方主机操作系统。
- 协议,长度8bit,。指出此数据包携带的数据使用何种协议,以便目的主机的IP层将数据部分上交给哪个进程处理。
0x01: ICMP, Internet Control Message
0x02: IGMP, Internet Group Management
0x06: TCP Transmission Control Protocol
0x11: UDP User Datagram Protocol - 头部校验和,长度为16bit,用来对IP报文的头部进行差错校验。只检验数据包的首部,不检验数据部分。这里不采用CRC检验码,而采用简单的计算方法。
- 源IP地址,长度为32bit,表示产生并发送该IP报文的设备接口的IP地址。
- 目的IP地址,长度为32bit,表示该IP报文的目的接口的IP地址。
- 选项/长度填充,选项字段长度可变,从1字节到40字节不等,取决于所选项的功能。填充字段全为0。
未完待续。。。。。。
最后
以上就是清秀煎蛋为你收集整理的计算机网络——报文格式1.以太网帧格式。2.VLAN帧格式3.ARP的报文格式。4.IP报文格式。 未完待续。。。。。。的全部内容,希望文章能够帮你解决计算机网络——报文格式1.以太网帧格式。2.VLAN帧格式3.ARP的报文格式。4.IP报文格式。 未完待续。。。。。。所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复