1.以太网帧(Ethernet帧)结构:
数据链路层负责将位组合成字节,并将字节组合成帧。帧被用在数据链路层,从网络层传递过来的数据包被封装成帧,以根据介质访问的类型进行传输。
以太网站点的功能是使用一组称为MAC帧格式的位,在站点之间传送数据帧。在帧格式中,采用循环冗余校验(CRC)进行差错检测。但记住,这是差错检测,不是差错纠正。
802.3帧和Ethernet帧结构:
Preamble 8bytes | DA 6bytes | SA 6bytes | Type(Length) 2bytes | Data | FCS 4bytes |
前导(Preamble):它采用交替为1和O的模式,在每个数据包的起始处提供 5MHz的时钟信号,以允许接收设备锁定进入的比特流。
帧起始定界符/同步(start Frame Delimiter,SFD/synch):前导为7字节,SFD为1字节(Synch)。SFD为10101011,这里的最后一对1允许接收者进入中间某处的交替0、1模式中,却仍然能够同步并检测到数据的开始。
目的地址(Destination Address,DA):它首先使用最低有效位(LSB)传送48位值。接收方站点使用DA来决定一个进入的数据包是否被送往特定的节点。目的地址可以是单独的地址,或者是广播或组播MAC地址。
记住,广播地址为全 1(十六进制形式为全F)并被送往所有设备,但组播地址只被送往网络中节点的同类子集。
源地址(source Address,SA):SA是48位的MAC地址,用来识别发送没备,它首先使用LSB。在SA字段中,广播和组播地址格式是非法的。
长度(Length)或类型(Type):802.3使用长度字段,但Ethernet帧使用类型字段来识别网络层的协议。802.3不能识别上层协议,且必须与专用的LAN(比如 IPX)一起使用。
当携带IPv4数据时,协议字段则为0x0800;当帧携带IPv6数据时,类型字段为0x86dd。
数据(Data):这是从网络层传送到数据链路层的数据包。它的大小可以在 46-1500字节之间变化。
帧校验序列(Frame Check Sequence,FCS):FCS是位于帧末尾的字段,它用来存放循环冗余校验(CRC)。
2.TCP数据段的格式
TCP报头是一个20字节长的段,在带有选项时可以长达24字节。
源端口号 主机发送数据应用的端口号。
目的端口号 在目的主机上请求应用程序的端口号。
序列号 一个由TCP用于将数据编排回原来正确的顺序或用于对丢失或损坏的数据进行重传的编号,这样的处理过程称为顺序控制(排序)。
确认应答号 用于说明下一个所期望接收的TCP八位组数据。
头长度 在TCP头中包含的32位字的数量。用来指明数据的起始位置。TCP头的长度(即使包含有选项)是一个32位的整数倍。
保留 总是被设置为零。
代码位 用于建立及结束会话的控制功能。
窗口 是发送方将被允许的发送窗口尺寸,用八进制形式表示。
校验和 循环冗余校验(CRC),由于TCP不相信它的低层,因此会检验所有的数据。此CRC用于检验报头和数据字段。
紧急 当紧急指针代码位被设置时为有效字段,如果有效,这个值指明了当前序列号的八位组的偏移值,即第一个非紧急数据的起始位置。
选项 在需要时,可以是0或32位的倍数。也就是说,没有选项存在时,选项的大小为0。然而,如果所使用的选项所占用的字段不是32位的整倍数,则需要填充若干个0来确保数据始于32位的边界上。
数据 指被传送到传输层的TCP协议的数据,它包含有上层数据的报头。
3.UDP数据段的格式:
源端口号 发送数据主机上应用程序的端口号。
目的端口号 目的主机上请求应用程序的端口号。
长度 UDP报头和UDP数据的长度。
校验和 UDP报头和UDP数据字段两者的校验和。
数据 上层数据。
同TCP一样,UDP并不信任低层上的操作,它使用自己的CRC检验。帧校验序列(FCS)是用来放置CRC值的字段,这也就是为什么我们可以看见FCS信息的原因。
4.IP报头
版本 IP版本号。
报头长度 32位字的报头长度(HLEN)。
优先级和服务类型 服务类型描述数据报将如何被处理。前3位为优先级位。
总长度 包括报头和数据的数据包长度。
标识 唯一的IP数据包值。
标志 说明是否有数据被分段。
分段偏移 如果数据包在装入帧时太大,则需要进行分段和重组。分段功能允许在因特网上存在有大小不同的最大传输单元(MTU)。
存活期(TTL) 存活期是在数据包产生时建立在其内部的一个设置。如果这个数据包在这个TTL到期时仍没有到达它要去的目的地,那么它将被丢弃。这个设置将防止IP包在寻找目的地的时候在网络中不断循环。
协议 上层协议的端口(TCP是端口6;UDP是端口17(十六进制))。同样也支持网络层协议,如ARP和ICMP。在某些分析器中被称为类型字段。下
报头校验和 只针对报头的循环冗余校验(CRC)。
源IP地址 发送站的32位IP地址。
目的IP地址 数据包目的方站点的32位IP地址。
选项 用于网络检测、调试、安全以及更多的内容。
数据 在IP选项字段后面的就是上层数据。
在IP报头的协议字段中可能发现的协议
协议 | 协议号 |
ICMP | 1 |
IP in IP(隧道) | 4 |
IGRP | 9 |
EIGRP | 88 |
OSPF | 89 |
IPv6 | 41 |
GRE | 47 |
第2层隧道(L2TP) | 115 |
5.带有802.1Q(VLAN) 标签头的以太网桢
每一个支持802.1Q 协议的主机,在发送数据包时,都在原来的以太网帧头源地址字段后增加了一个4 字节的802.1Q 帧头字段,之后是原来以太网的长度或类型域字段。
VLAN Identified(VLAN ID):这是一个12 位的域,指明VLAN 的ID,一共4096 个,每个支持802.1Q 协议的主机发送出来的数据包都会包含这个域,以指明自己属于哪一个VLAN。
Canonical Format Indicator(C):这一位指定T-R 封装,用于兼容令牌网。这样令牌环网的数据不用经过转换,便可在以太网中正常传输。
Priority(P):这是一个12 位的域,指定帧的优先级。一共有8 种优先级,主要用于当设备阻塞时,选择优先发送的数据包。