收藏 分享(赏)

以太网协议报文格式.doc

上传人:tangtianxu1 文档编号:2918784 上传时间:2018-09-30 格式:DOC 页数:30 大小:1.31MB
下载 相关 举报
以太网协议报文格式.doc_第1页
第1页 / 共30页
以太网协议报文格式.doc_第2页
第2页 / 共30页
以太网协议报文格式.doc_第3页
第3页 / 共30页
以太网协议报文格式.doc_第4页
第4页 / 共30页
以太网协议报文格式.doc_第5页
第5页 / 共30页
点击查看更多>>
资源描述

1、TCP/IP 协议族IP/TCPTelnet 和 R login、FTP 以及 SMTPIP/UDPDNS 、 TFTP、BOOTP 、SNMPICMP 是 IP 协议的附属协议、IGMP 是 Internet 组管理协议ARP(地址解析协议)和 RARP(逆地址解析协议)是某些网络接口(如以太网和令牌环网)使用的特殊协议,用来转换 I P 层和网络接口层使用的地址。1、 以太帧类型以太帧有很多种类型。不同类型的帧具有不同的格式和 MTU 值。但在同种物理媒体上都可同时存在。 以太网第二版 note 3 或者称之为 Ethernet II 帧,DIX 帧,是最常见的帧类型。并通常直接被 IP

2、协议使用。 Novell 的非标准 IEEE 802.3 帧变种。 IEEE 802.2 逻辑链路控制 (LLC) 帧 子网接入协议(SNAP)帧所有四种以太帧类型都可包含一个 IEEE 802.1Q 选项来确定它属于哪个 VLAN 以及他的 IEEE 802.1p 优先级(QoS)。这个封装由 IEEE 802.3ac 定义并将帧大小从4 字节扩充到 1522 字节(注:不包含 7 个前导字节和 1 个字节的帧开始符以及 12个帧间距字节)。IEEE 802.1Q 标签,如果出现,需要放在源地址字段和以太类型或长度字段的中间。这个标签的前两个字节是标签协议标识符(TPID)值 0x8100。

3、这与没有标签帧的以太类型/长度字段的位置相同,所以以太类型 0x8100 就表示包含标签的帧,而实际的以太类型/长度字段则放在 Q-标签的后面。TPID 后面是两个字节的标签控制信息(TCI) 。(IEEE 802.1p 优先级(QoS)和 VLAN ID)。Q 标签后面就是通常的帧内容。802.3 以太网帧结构前导码 帧开始符MAC 目标地址MAC 源地址802.1Q 标签 (可选)以太类型或长度负载 冗余校验 帧间 距10101010 7 个 octet10101011 1 个 octet6 octets6 octets (4 octets)2 octets461500 octets4 o

4、ctets12 octets641522 octets标签协议标识(TPID)0x8100,这与没有标签帧的以太类型/长度字段的位置相同16 bits3 bits1 bit12 bitsTPID PCP CFI VID721530 octets841542 octets 标签协议识别符(Tag Protocal Identifier, TPID): 一组 16 位元的域其数值被设定在 0x8100 以用来辨别某个 IEEE 802.1Q 的帧为已被标签的,而这个域所被标定位置与乙太形式/长度在未标签帧的域相同,这是为了用来区别未标签的帧。 优先权代码点(Priority Code Point,

5、 PCP): 以一组 3 位元的域当作 IEEE 802.1p优先权的参考,从 0(最低) 到 7(最高),用来对资料流( 音讯、影像、档案等等)作传输的优先级。 标准格式指示(Canonical Format Indicator, CFI): 1 位元的域。若是这个域的值为 1,则 MAC 地指则为非标准格式;若为 0,则为标准格式;在乙太交换器中他通常默认为 0。在乙太和令牌环中,CFI 用来做为两者的相容。若帧在乙太端中接收资料则 CFI 的值须设为 1,且这个端口不能与未标签的其他端口桥接。 虚拟局域网识别符(VLAN Identifier, VID): 12 位元的域,用来具体指出帧

6、是属于哪个特定 VLAN。值为 0 时,表示帧不属于任何一个 VLAN;此时,802.1Q标签代表优先权。16 位元的值 0x000 和 0xFFF 为保留值,其他的值都可用来做为共 4094 个 VLAN 的识别符。在桥接器上,VLAN1 在管理上做为保留值。这个 12 位元的域可分为两个 6 位元的域以延伸目的(Destination) 与源(Source)之 48 位元地址,18 位元的三重标记(Triple-Tagging)可和原本的 48 位元相加成为 66 位元的地址。0、以太网的封装格式(RFC 894)IEEE 802.2/802.3(RFC 1042)一个 0x0800 的以

7、太类型说明这个帧包含的是 IPv4 数据报。同样的,一个 0x0806 的以太类型说明这个帧是一个 ARP 帧, 0x8100 说明这是一个 IEEE 802.1Q 帧,而 0x86DD 说明这是一个 IPv6 帧,而 0x 8864 有PPPoE 封装 (其他以太网类型见附 2)1、以太网 PAUSE帧IEEE 802.3x是全双工以太网数据链路层的流控方法。当客户终端向服务器发出请求后,自身系统或网络产生拥塞时,它会向服务器发出 PAUSE帧,以延缓服务器向客户终端的数据传输。有关交换机的流量控制机制:定义:流量控制用于防止在端口阻塞的情况下丢帧,这种方法是当发送或接收缓冲区开始溢出时通过

8、将阻塞信号发送回源地址实现的。流量控制可以有效的防止由于网络中瞬间的大量数据对网络带来的冲击,保证用户网络高效而稳定的运行。两种控制流量的方式:1,在半双工方式下,即半双工背压控制,是通过反向压力(backpressure)即我们通常说的背压计数实现的,这种计数是通过向发送源发送 jamming信号使得信息源降低发送速度。2, 在全双工方式下,流量控制一般遵循 IEEE 802.3X标准,是由交换机向信息源发送“pause”帧令其暂停发送。采用流量控制,使传送和接受节点间数据流量得到控制,可以防止数据包丢失。PAUSE 帧格式:MAC 控制帧通过其唯一的类型域标识符(0x8808)识别。pau

9、se 格式:目的地址: 组播地址(01-80-C2-00-00-01)源地址:类型: 8808MAC 控制操作码 :2 个字节 0x0001 (Pause 帧仅是 MAC 控制帧的一种,对于 Pause 帧,其在 MAC 控制帧中的操作码为 00-01;)MAC 控制操作参数域: 2 个字节 代表要求对方停止的时间。 (MAC 控制参数域,包含用于 MAC 控制相关的参数。对于 Pause 帧,此处应填入要求对端设备暂停发送的时间长度,由两个字节 (16 位)来表示该长度,每单位长度为物理层芯片发送512 位数据的时间。所以发送一次 Pause 帧,要求对端设备暂停发送的时间长度为:0-655

10、35(512/以太网传输速率)。 )保留域。2、以太网 VLAN帧格式一、IEEE 802.1Q 标签帧格式Preamble SFD DA SA vlan tag Type/Length Date CRC7B 1B 6B 6B 4B 2B 42-1496B 4BVlan tag:4 字节,包含 2 个字节的标签协议标识(TPID)和 2 个字节的标签控制信息(TCI) ,TCI 字段具体又分为: priorty、CFI、Vlan ID,具体格式如下所示:TPID User PriorityCFI VID2B 3b 1b 12b TPID(标签协议标识):2 字节,用于标识帧的类型,其值为 0x

11、8100 时表示802.1Q/802.1P 的帧。设备可以根据这个字段判断对它接收与否。 TCI(标签控制信息字段):2 字节,包括用户优先级(User Priority) 、规范格式指示器(Canonical Format Indicator)和 VLAN ID。 User Priority:3 个 bti,表示帧的优先级,取值范围 07,值越大优先级越高,用于 802.1p。 CFI,1bit ,值为 0 代表 MAC 地址是以太帧的 MAC,值为 1 代表 MAC 地址是FDDI、令牌环网的帧。 VID(VLAN ID):12bit,表示 VLAN 的值。12bit 共可以表示 4096

12、 个 VLAN,实际上,由于 VID 0 和 4095 被 802.1Q 协议保留,所以 VLAN 的最大个数是 4094(1-4094)个(据说 VID0 用于识别帧优先级。 4095(FFF )作为预留值)二、IEEE 802.1ad(QinQ)帧格式基本概念IEEE 802.1ad 的全称是“Virtual Bridged Local Area Networks Amendment 4: Provider Bridges”,该协议的目标是业务提供商在为客户提供业务时使客户间的服务相互独立,没有相互依赖关系,同时尽量做到业务提供商透明地为客户提供业务。该标准描述了业务提供商(运营商)如何利

13、用和扩展 802.1Q 在一个统一的网络中为相互独立的客户提供以太网业务。QinQ技术也称Stacked VLAN 或Double VLAN。标准出自 IEEE 802.1ad,其实现将用户私网VLAN Tag封装在公网VLAN Tag中,使报文带着两层VLAN Tag穿越运营商的骨干网络(公网)。在公网中报文只根据外层VLAN Tag(即公网VLAN Tag)传播,用户的私网VLAN Tag被屏蔽。 带双层 VLAN Tag 的报文结构,802.1ad 的报文格式,基本同前面我们所讲的 QinQ 报文格式一致,主要的区别就是 802.1ad 中重新定义了 TPID 的值和把原来的 CFI 位

14、修改为DEI(丢弃标识)位,如下图所示: C-VLAN:Customer VLAN,是用户网络内部使用的 VLAN; S-VLAN:Service VLAN,服务提供商网络中使用的 VLAN,该 VLAN 标识 VPN 用户或者是用户的业务; Customer Bridge:Customer 网络中的 Bridge,只能识别 C-VLAN; Provider Bridge:服务提供商网络中的 Bridge,根据处理内容的不同又分为 S-VLAN Bridge 和 Provider Edge Bridge。其中 S-VLAN Bridge 只能识别 S-VLAN; Provider Edge B

15、ridge 可以同时识别 C-VLAN 和 S-VLAN; C-VLAN Component:在 Bridge 内可识别、插入、删除 C-VLAN 的实体,每个端口一个,对 C-VLAN 的操作互相独立(两个端口上接收到相同的 C-VLAN,但由于属于不同的客户最后的处理结果会不同) ; S-VLAN Component:在 Bridge 内可识别、插入、删除 S-VLAN 的实体,由于在一个Bridge 内不存在相同的 S-VLAN 属于不同服务提供商的情况,因此在一个桥内只有一个 S-VLAN 的实体。QinQ 技术上完全可以多层堆叠,没有限制,仅受 Ethernet 报文长度的限制,具有

16、很好的扩充性。对于 QinQ,业界有多种不同的称呼,比如 Tag in Tag、VLAN VPN、StackVLAN 、SVLANQinQ每增加一层VLAN标签,就可以将所覆盖的用户VLAN 数量增加4096倍,两层VLAN标签可以支持4K4K VLAN,一般来说两层VLAN就可以满足绝大多数需求了。 相对基于MPLS的二层VPN,QinQ具有如下特点: 为用户提供了一种更为简单的二层VPN隧道; 不需要信令协议的支持,可以通过纯静态配置实现; 由于QinQ的实现是基于802.1Q协议中的Trunk端口概念,要求隧道上的设备都必须支持802.1Q协议。 QinQ主要可以解决如下几个问题: 缓解

17、日益紧缺的公网VLAN ID资源问题;用户可以规划自己的私网VLAN ID,不会导致和公网VLAN ID冲突;为小型城域网或企业网提供一种较为简单的二层VPN解决方案;QinQ实现过程如图3 所示: 图 3 QinQ功能示意图 图 3 中 CE 交换机上行报文带有内层 Vlan 标签,报文到达汇聚交换机后,汇聚交换机可以根据不同的交换机端口给报文打上相应的外层标签,这样汇聚交换机每端口可以支持4KVlan 的接入。QinQ 报文封装QinQ 的报文封装就是在原有 802.1Q 报文中的 TAG 头上再加上一层 TAG 封装,用来扩展 VLAN 的范围,如图 1 所示:图 1 QinQ 报文封装

18、QinQ 的报文转发过程在通过 QinQ 实现简单的二层 VPN 过程中报文是按如下方式转发:图 2 QinQ 报文转发过程图 2 中在运营商网中使用 VLAN20 来标识客户 A、VLAN30 标识客户 B,当客户 A 的报文到达运营商的边缘交换机时,边缘交换机均给客户 A 的报文打上一个外层标签(VLAN20) ,然后在 VLAN20 中转发,不会转发到 VLAN30,报文在离开运营商网络时再剥离掉外层的标签,转发到用户 A 的网络,从而实现一个简单二层 VPN 功能。QinQ 报文的 TPID 值可调功能TPID(Tag Protocol Identifier,标签协议标识)是 VLAN

19、 Tag 中的一个字段,IEEE 802.1Q 协议规定该字段的取值为 0x8100。IEEE 802.1Q 协议定义的以太网帧的 Tag 报文结构如下:图 3 IEEE 802.1Q 报文结构通常在 QinQ 中设备的内外层标签的 TPID 值均采用协议规定的 0x8100,但是某些厂商的设备将 QinQ 报文外层 Tag 的 TPID 值设置为 0x9100 或 0x9200,为了和这些设备兼容,并提供较高的灵活性,我司支持 QinQ 功能的交换机基本上均提供了 QinQ 报文 TPID 值可调功能(需要注意有的设备整机支持,有的设备是端口支持) ,能修改 QinQ 设备的外层标签的 TP

20、ID 值。 (在本文的 802.1ad 部分我们将会看到 802.1ad 所规定的 TPID 为 0x88a8,所以当设备同标准 802.1ad 设备作 QinQ 对接时也需要 TPID 可调功能) 。灵活 QinQ(Selective QinQ)在前面我们所讲的 QinQ 中,通常是以物理端口来划分用户或用户网络,当多个不同用户以不同的 VLAN 接入到同一个端口时则无法区分用户。另外前面的 QinQ 方案是一种简单二层 VPN 的应用,在运行营商接入环境中往往需要根据用户的应用或接入地点(设备)来区分用户,基于这种应用产生了灵活 QinQ 方案。简单讲灵活 QinQ 就是根据用户报文的 T

21、ag 或其他特征( IP/MAC 等) ,给用户报文打上相应的外层 Tag,以达到区分不同用户或应用的目的。当前灵活 QinQ 主要应用在运营商的接入网络中,在运营商网络中给接入用户分配一个 VLAN,以达到便于问题追踪和防止不同用户间互访,用外层标签区分用户的应用;或在接入的环境中用外层标签来区分不同的接入地点,用内外两层标签唯一标识出一个接入用户。在这样的应用中需要 BRAS/SR 设备支持 QinQ 的应用(能够终结双 Tag) 。下面我们以 S9500 为例,看一下灵活 QinQ 的应用场景:在 S9500 上实施 QinQ,并在 S9500 上进行业务分流,分流的方式是利用灵活 Qi

22、nQ 功能,灵活 QinQ 分流的依据有下面几种:1) 根据端口的 VLAN 区间分流:比如 PC 的 VLAN 范围 11000,STB 的 VLAN 范围10012000,网吧的 VLAN 范围 20013000;2) 根据报文的协议号分流:比如 PC 采用 PPPoE、STB 采用 IPoE,这些终端都通过一个 VLAN 上行,可以根据 PPPoE 和 IPoE 报文不同的协议号作为 QinQ 的分流依据;3) 根据报文的目标 IP 地址分流:对于相同源 IP 地址,相同报文封装不同的业务应用报文,比如 PC 上的 SoftPhone 产生的报文,需要根据报文目的 IP 地址实施灵活 Q

23、inQ 进行业务分流;4) 根据 QinQ 的内层标签的区间,在某些级联交换机的组网模式中,下连的交换机已经实施了基于端口的 QinQ,为了实现业务分流,可以根据 QinQ 的内层 VLAN 标签的区间实施灵活 QinQ 进行业务分流。 上述应用场景可以用图 4 来直观的加以描述:图 4 灵活 QinQ 对多业务的识别标记BPDU Tunnel(L2 Protocol Tunnel)QinQ 网络中,运营商网络对客户透明,当客户和运营商网络之间的连接有冗余时必然导致环路问题,如 QinQ 应用示意图 2 中的 A 客户。这就需要运营商网络能透明传输STP/RSTP/MSTP 报文,这样客户可以

24、跨运营商网络构建自己的 STP 树,切断冗余链路。另外为了保证客户全网 VLAN 配置的一致性,动态 VLAN 协议如 GVRP、VTP 等也要求通过运营商网络透传,如果客户使用 GMRP 作组播应用的话,GMRP 报文也要求透传。同时在透传这些报文时,需要区分开不同用户的二层协议报文。我们知道以上这些 BPDU 报文是桥设备的二层控制报文(基本上是以 LLC 封装的) ,是与设备全局相关的,不带 VLAN Tag,所以需要一种机制来传输用户的二层控制报文,从而引入了 BPDU Tunnel (Cisco:Layer 2 Protocol Tunneling)的概念,通过 Tunnel 来传播

25、用户的二层控制报文。通常 BPDU Tunnel 是这样实现的:当 Tunnel 端口收到一个用户的 BPDU 后,把目的MAC 修改为一个组播 MAC,然后再给协议报文打上用户所属 VLAN 的 Tag 信息,组播MAC 保证报文在 VLAN 内广播,同时标识这个报文是个 BPDU-Tunnel 报文,交换机在收到这个报文时上送 CPU 处理,还原其 BPDU 身份,并根据报文中用户所属的 VLAN 信息,把报文送到相应的客户网络。当前我司的实现就采取了上述这种方法,收到用户的 BPDU 报文后,给这个报文的目的MAC 修改为:01-00-0c-cd-cd-d0 ,再加上运营商分配该用户的

26、VLAN Tag,如图 5 所示:图 5 BPDU-Tunnel 报文封装在传统的 QinQ Tunnel 中是通过修改原协议报文的目的地址及加上用户所属 VLAN 标识来传递用户 L2 协议报文的(这样做的缺点在于需要在边缘设备上对报文进行修改加重设备CPU 的负担) 。在 802.1ad 中为 C-VLAN 及 S-VLAN 分配了不同的保留地址,在-VLAN 中处理 C-VLAN中的协议报文和处理普通的数据报文一样,从而不需要 Tunnel 就可以透明传输用户二层协议报文。Assignment ValueBridge Group Address 01-80-C2-00-00-00IEEE

27、 802.3 Full Duplex PAUSE operation 01-80-C2-00-00-01IEEE 802.1X PAE address 01-80-C2-00-00-03Provider Bridge Group Address 01-80-C2-00-00-08Provider Bridge GVRP Address 01-80-C2-00-00-0DIEEE 802.1AB Link Layer Discovery Protocol multicast address01-80-C2-00-00-0E表格 2:保留的地址Spanning Tree ProtocolProvi

28、der 网络的 STP 操作和 Customer 网络的 STP 操作完全独立运行,相互不关联。在Provider 网络内部采用不同的 Bridge Group Address(01-80-C2-00-00-08) ,对于用户的BPDU 报文( 01-80-C2-00-00-00)作为普通数据报文透传,不进行识别和处理。Provider 网络边缘的 C-VLAN component 端口可以参与用户 STP 拓扑的计算和用户 BPDU 的处理。GVRPProvider 网络的 GVRP 操作和 Customer 网络的 GVRP 的操作完全独立运行,相互不关联。在 Provider 网络内部采

29、用不同的 Provider Bridge GVRP Address(01-80-C2-00-00-0D) ,对于用户 GVRP 报文(01-80-C2-00-00-21)以及其他的 GARP 保留地址作为普通数据报文透传,不进行识别和处理。Provider 网络边缘的 C-VLAN component 端口可以参与用户的GARP 报文的处理。802.1ad 对灵活 QinQ 的支持802.1ad 对灵活 QinQ 的支持同当前常见的灵活 QinQ 基本一致,在 802.1ad 中提供了两种确定用户所属 S-VLAN 的方式:1、基于端口(Port-based service interface

30、) ,在这种模式下用户是根据接入的端口来选择 -VLAN(Service Instance)的2、基于 C-VLAN(C-Tagged service interfaces) ,在这种模式下是根据用户使用的 C-VID 来先择 S-VLAN(Service Instance),即同当前我们所见的灵活 QinQ 类似。2、 IP报文格式版本号:pv4-ipv6 IP 头部长度:5 words = 5*4 = 20 字节(不含选项)TOS:服务类型,包括一个 3 bit 的 IP 优先级字段(现在已被忽略) ,3 bit 的 TOS 子字段和2 bit 未用为 0;4 bit 的 TO S 分别代

31、表:Bit 3: 0 = Normal Delay, 1 = Low Delay.Bits 4: 0 = Normal Throughput, 1 = High Throughput.Bits 5: 0 = Normal Relibility, 1 = High Relibility. 0 1 2 3 4 5 6 7+-+-+-+-+-+-+-+-+-| | | | PRECEDENCE | TOS | MBZ | | | |+-+-+-+-+-+-+-+-+-|1、IP 报文中,TOS (服务类型,现改名为 DS,即区分服务)字节占 8 位(P2 P1 P0 T3 T2 T1 T0 CU)

32、;其中:前三个比特(P2 P1 P0)定义为 IP 优先级,取值范围为 0-7;第四至第七比特(T3 T2 T1 T0)为 TOS 子字段,TO 位备用:第 8 个比特为未用位。2、DSCPDSCP 由 RFC2474 定义,它重新命名了 IP 报头中 TOS 使用的那 1 字节,DSCP 使用高 6bit,最低 2bit 不用。(DS5 DS4 DS3 DS2 DS1 DS0 CU CU )RFC2474 定义最高 3 比特为级别类别选择代码(Class Selector Codepoints,CS) ,其意义和 IPv4 报头中 IP 优先级的定义是相同的, CS0 CS7 的级别相等于

33、IP 优先级 0 7。但它并没有定义第 3 到第 5 比特的具体含义以及使用规则。 DSCP 使用 6 比特,可以定义 64 个优先级(0 63) 。IP 首部兼容性由于 ECN 修改了 IP 首部,所以存在以下兼容性问题:1、以下 RFC 除了 RFCs 731,2474,2780 这三个标准可以兼容 ECN 的增量部署之外,其他RFC 实现均无法兼容 ECN 部署。RFC 791 defined the ToS (Type of Service) octet in the IP header.0 1 2 3 4 5 6 7+-+-+-+-+-+-+-+-+|PRECEDENCE| TOS

34、| 0 | 0 | RFC 791+-+-+-+-+-+-+-+-+RFC 1122 included bits 6 and 7 in the TOS field, though it did notdiscuss any specific use for those two bits:0 1 2 3 4 5 6 7+-+-+-+-+-+-+-+-+|PRECEDENCE| TOS | RFC 1122+-+-+-+-+-+-+-+-+The IPv4 TOS octet was redefined in RFC 1349 RFC1349 as follows:0 1 2 3 4 5 6 7+

35、-+-+-+-+-+-+-+-+| PRECEDENCE| TOS |MBZ| RFC 1349+-+-+-+-+-+-+-+-+The IPv4 TOS octet was redefined in RFC 1349 RFC1349 as follows:0 1 2 3 4 5 6 7+-+-+-+-+-+-+-+-+| DSCP | CU | RFCs 2474, 2780+-+-+-+-+-+-+-+-+总长度字段: 数据段的长度。标识字段:发一个包加 1 ,唯一地标识主机发送的每一份数据报标志字段:是否分片, bit1: bit2:是否允许分片(默认值 0:允许) ,bit3:是否是最

36、后一个分片(默认为 0,:最后一个分片)片偏移字段:分片 offset (供组装时使用)用于总长度字段是 16bit,所以要用 13bit 表示16bit 的数,就需要片偏移字段值是 8 的整数倍。TTL:time-to-live,生存时间字段设置了数据报可以经过的最多路由器数协议字段:udptcpigmpicmp,IP 在首部中存入一个长度为 8 bit 的数值,称作协议域。1 表示为 ICMP 协议,2 表示为 IGMP 协议,6 表示为 TCP 协议,17 表示为 UDP 协议。检验和:checksum,根据 I P 首部计算的检验和码,ICMP、IGMP、UDP 和 TCP 在它们各自

37、的 首部中均含有同时覆盖首部和数据检验和码。SIP:DIP:MTU:1500以太网信息包最大值1492PPPoE 最佳值1472使用 ping 命令的最大值1468DHCP 最佳值1430VPN PPTP 最佳值576-拨号连接到 ISP 的标准值3、 ARP协议的报文格式arp-request 报文:192.196.1.98 (00:60:f3:20:dc:55 )想要 192.168.1.97 的 mac 地址arp-reply 报文:4、 UDP协议5、 TCP协议6、 ICMP协议7、 IGMP V1 V2报文格式1.IGMP V1 的报文格式:Version Type Unused

38、ChecksumGroup Address1) Version:1 表示 IGMP 报文是 V1 版本;2) Type:1 表示组成员查询 query,2 表示成员报告 report;3) Unused:保留字段,发送的时候以 0 填充,接收的时候不作任何处理;4) Checksum:检验和,对 IGMP 报文头每 16bit 进行二进制反码求和;5) Group Address:在成员查询中该字段填充 0.0.0.0,在成员报告字段中它填充组地址。2.IGMP V2 的报文格式:类型 最大响应时间 检验和组地址1) 类型:0x11 表示成员查询 query0x12 表示 IGMP V1 成员

39、报告 report0x16 IGMP V2 成员报告 report0x17 表示成员离开 leave0x22 表示 IGMP V3 成员报告 report2)最大响应时间:最大响应时间只在成员关系查询消息中有意义,它以 1/10 秒为单位标明相应的报告发送所允许的最大延迟时间。在其它类型的消息中,发送者把该字段清 0,接收者忽略这个字段;3)检验和:对 IGMP 报文头每 16bit 进行二进制反码求和;4)组地址字段:通用组成员查询 = 0.0.0.0 特定组成员查询 = 指定的组播组 IP 地址、成员报告 = 指定的组播组 IP 地址、离开报文 = 指定的组播组 IP 地址;5)目的地址字

40、段224.0.0.1 - all systems on the subnet224.0.0.2 - all routers on the subnet224.0.0.5 - all OSPF routers on the subnet224.0.0.9 - all RIP-2 routers on the subnet224.0.0.12 - all DHCP/Relay Agent on the subnet目的 ip 组播 ip 备注通用查询 224.0.0.1 0.0.0.0 普通查询,用于获知一个相连的网络上有哪些组具有成员。一般用于 OLT 定时询问max-response=10s(

41、100 )特定查询 特定组播 ip 特定组播 ip 组特定的查询,用于获知在一个相连的网络上,某一个特定的组是否具有成员。一般用于收到一个 leave 报文后, OLT 发送的针对特定组的 last 询问 max-reponse=1s(10)报告或离开组改组的 ip 改组的 ip Report 包目的 IP 必须等于组播组 IP离开组 离开消息应当发往“所有路由器”组(224.0.0.2)。6)其它字段需要注意的是,IGMP 消息是可能大于 8 个字节的,特别是将来的向下兼容的 IGMP 版本。只要类型字段是可以被识别的,IGMPv2 的实现在处理数据报时必须忽略超过 8 个字节的内容。但是

42、IGMP 校验和始终是针对整个数据报的,而不仅仅是前面的 8 个字节。8、 SNMP系统构架及其协议Manager-Agent系统结构我们在 M 端利用 C 语言和 SNMP 协议编写一个简单的应用程序 可以发送 GET GET-NEXT SET 等命令,对放在网络各处的安装了 SNMP 代理的设备进行查询。 在 SNMP 协议中 M 端和 A 端的通信是通过 SNMP 协议数据单元 PDU 实现的 它们之间可以有三种类型的交互:M 端执行 GET 或 GET-NEXT 操作从代理 A 获得信息 M 端执行 SET 操作对代理 A 的属性进行设置 代理 A 端向 M 端发送陷阱异步通知信息告诉

43、管理者关于自己的一些事件SNMP协议和编码格式1、管理信息库(MIB)管理信息库(MIB) 规定了网络代理所保存的数据项目、数据类型,以及在每个数据项目中允许的操作。通过对这些数据项目的存取访问来实现网络管理的 5 大功能: 配置管理、性能管理、失效管理、计费管理、安全管理。Internet 标准的管理信息库 (MIB)是 数形结构的数据库,其结构见图xxx-portPC OLTMIB 类型 类型说明System Interface AT IP ICMP TCP UDP EGP 2、MIB 对象定义 DEFINITIONS:=BEGIN IMPORTS mgmt, OBJECT-TYPE, N

44、etworkAddress, IpAddress,Counter, Gauge, TimeTicks mib OBJECT IDENTIFIER:=mgmt 1 system OBJECT IDENTIFIER:=mgmt 2 interface OBJECT IDENTIFIER:=mgmt 3 at OBJECT IDENTIFIER:=mgmt 4 ip OBJECT IDENTIFIER:=mgmt 5 icmp OBJECT IDENTIFIER:=mgmt 6 tcp OBJECT IDENTIFIER:=mgmt 7 udp OBJECT IDENTIFIER:=mgmt 8 e

45、gp OBJECT IDENTIFIER:=mgmt 93、ASN.1 语法+ BER(Basic Encoding Rule) 编码方法 基本编码规则(BER)的数据都由三个域构成:标识域(tag)+长度域(length)+值域(value) 。标识域:指明数据的类型,占用 1 个字节。长度域:指明值域的长度,不定长, 一般为一到三个字节。其格式可分为短格式和长格式.长度域采用短/长指示器(Short/Long Form)来标明长度指示符是否是单个字节,指示器在 bit8 上。如果短/长指示器是 0,则为短限定格式 ,低 7 位包含的就是数据的长度,长度值在0127 之间;如果短/长指示器是

46、 1,则为长限定格式 ,其低 7 位的值表示后面紧跟的长度指示值的字节数,而后续字节拼接起来的值就是数据字段的长度,即数据的长度。值域:保存的是数据的实际编码。虽然 ASN.1 定义了很多数据类型,但大多数类型可由整形、对象标识、空、串等基本数据类型和 sequence 构造类型表示。例如有符号整数和无符号整数、TimeTicks、Gauge、Counter 统一用整数表示。标识域 长度域 值域BOOL(0x01)整数 INT(0x02) 例:length:30 = 1E length:169 = 81 A9 length:1500 = 82 05 DC比特串(Bit String)(0x03

47、)8 位位组字符串OCTSTR(0x04) 空值 NULL(0x05)对象标识 ObjectID (0x06)ENUM(0x0A)SEQ(0x30)组合类型SETOF(0x31)IPADDR (0x40)COUNTER (0x41)GAUGE(0x42)TIMETICKS(0x43)OPAQUE(0x44)GET(0xA0);GETNEXT(0xA1)GETResp(0xA2)SET(0xA3)TRAP(0xA4)例子:1、整型 Integer整型数据值域用补码表示例:type|len|value1500 = 02 02 05 DC-1500 = 02 02 FA 242、对象标识 ObjectID例:1.3.6.1.2.1.1.1其编码规则如下:objectID:=0x06 length subidentifier* (规则 1)subidentifier:=leadingbyte* lastbyte (规则 2)leadingbyte:=1 7bitvalue (规则 3)lastbyte:=0 7bitvalue (规则 4)首两个 ID 被合并为一个字节 X*40+Y (规则 5)虽然规则很多,但由于大多数子对象标识在 0127,只需按规则 (1)、(5)即可;当子对象标识大于 127,则按规则(2)、 (3)、(4)将其分解为多个字节,最后一个字节的高位为

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高等教育 > 专业基础教材

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报