没有合适的资源?快使用搜索试试~ 我知道了~
首页华为路由器之旅:数据流转揭秘与L2/L3层解析
华为路由器之旅:数据流转揭秘与L2/L3层解析
需积分: 0 12 下载量 164 浏览量
更新于2024-07-09
2
收藏 3.37MB PDF 举报
本文档详细讲述了在现代电信网络环境中,路由器如何处理和转发数据包的过程,以华为高端路由器NE40E/80E/5000E为例。首先,它介绍了路由器的基本功能,即在网络的不同层次(L2/L3层)上进行数据包的转发,确保数据的准确传递。 在L2层(数据链路层),路由器根据MAC地址进行帧转发,通过学习和维护VLAN(虚拟局域网)标签,管理不同子网间的通信。而在L3层(网络层),路由器依据IP地址进行路由选择,通过路由表决定数据包的路径,如通过静态配置、动态路由协议(如RIP、OSPF或BGP)自动获取路由信息。 此外,文档强调了Quality of Service (QoS)的重要性,路由器通过设置优先级队列和流量整形,确保关键业务数据的及时、可靠传输,防止拥塞和丢包。QoS策略可以针对不同的应用程序和服务类别分配带宽,保证服务质量。 报文在路由器中的处理涉及一系列复杂步骤,如接收、解析、决策、转发、可能的负载均衡和安全检查等。数据包通常在路由器内部经过一系列的硬件和软件处理,包括但不限于交换机模块、路由处理器、接口卡等组件的协作。 值得注意的是,虽然本文档以华为NE40E/80E/5000E为例,但其原理和技术通用于大多数路由器。理解这些原理有助于用户更好地管理和优化网络性能,对于网络工程师和管理员来说,掌握路由器的工作机制是必不可少的基础知识。 总结来说,本文文档深入浅出地揭示了路由器在电信网络中的核心作用,不仅涉及底层的数据转发,还包括高级的QoS策略,为读者提供了全面的路由器工作原理概览。
资源详情
资源推荐
说明
每个以太帧之间都要有帧间隙(Interframe Gap),即每发完一个帧后要等待一段时间才能再发
另外一个帧,以便让帧接收者对接收的帧作必要的处理(如调整缓存的指针、更新计数、通知对
报文进行处理等等)。
在以太网标准中规定最小帧间隙是12个字节,其数据为全1。对于个别的接口,可减少到64(GE)
或40比特(10GE),其他的接口都不应该小于12字节。
以太网标准中规定前导码为10101010 10101010 10101010 10101010 10101010 10101010 10101010
(二进制),共7字节;帧开始定界符为10101011,共1字节。
那么,如果PIC卡实际收到的帧间隙、前导码、帧开始界定符,如果跟协议规定的不一样,是不
是这个数据帧也会被丢弃?答案是,PIC卡在处理帧间隙时,帧间隙一般可以容忍跟协议规定的
不一样(比如不是全1);但前导码、帧开始界定符必须符合协议规定的值,否则当做帧间隙处
理,也就是帧被丢弃了。
PIC卡把光/电信号转换成数据帧,并检查“合法性”之后,把数据帧的内容(不包含
帧间隙、前导码、帧开始界定符和FCS)发送给包转发引擎PFE。
说明
PIC卡的类型决定了接口板的业务类型,比如把4*2.5G PoS PIC卡集成在某接口板上,则该单板
就支持4*2.5G 的PoS业务,把10*GE PIC卡集成在某接口板上,则该单板支持提供10*GE的以太
业务。将某PIC卡集成在接口板上,对应的PFE便可得知该PIC卡的类型,因此按对应业务类型来
解读PIC卡送过来的数据。
数据包经过PFE转发,经过交换网板交换,从下行接口发送时,下行的对应位置也有接
口卡。
下行接口卡的作用是,用待发送的数据帧内容计算帧检验序列FCS,然后对数据帧加封
装帧间隙、前导码、帧开始界定符和FCS,并将数据帧转换成光/电信号,再发送到出
接口线路上。
一个报文的路由器之旅 2 报文的收发、解析和封装
文档版本 01 (2016-03-28) 华为专有和保密信息
版权所有 © 华为技术有限公司
9
2.2 报文解析
当转发引擎PFE从PIC卡收到报文时,PFE首先做的就是解析报文的二层帧头,并根据
配置做一些检查和处理。那么,如何根据配置做检查和处理呢?
路由器支持丰富多彩的功能特性,以满足各种业务需求。其中,大部分功能特性允许
人们通过命令行进行配置,实现使能或去使能,并允许通过命令行来调整一些参数。
那么,路由器各转发部件是如何依据命令行的指示来工作的呢?
其实,所有的配置命令行都是通过主控板解读,再下发到接口板。在接口板上存有许
多的表项,除了转发所使用的转发信息表之外,还有各种入接口属性表、出接口属性
表、ACL表、流分类表等等。接口板上电或重启时会触发主控板向其下发配置,也就
是根据配置设置接口板上的各种表项的值。之后,接口板上的各部件查找各类表项,
根据对应的值进行对应的处理。当然,如果有配置的增删改,大部分情况下会实时更
新到接口板。
举个例子,路由器某个以太接口上接入VLAN10~20范围内的用户,人们希望在该接口
上配置允许VLAN10~20的报文通过,如果不在VLAN10~20范围内的要被丢弃。那
么,人们需要在该接口上配置portswitch命令使得该接口为二层接口,并配置接口为
Trunk类型,允许通过(allow-pass)的VLAN ID范围是10~20。当主控板下发配置后,
该接口的属性表对应的二层桥接转发状态为“使能”,端口类型为Trunk,且VLAN ID
范围是10~20。当报文到来时,PFE首先对照报文的入接口属性表,发现接口为Trunk
类型,于是检查报文的二层帧头是否携带VLAN。如果没有则丢弃,有则检查帧头携带
的VLAN ID值是否在接口属性表对应的VLAN ID范围内,如果不在则丢弃该报文。
除了做检查外,PFE还需要根据报文的入接口属性表来做流分类、包过滤、重定向等处
理(这些处理将在后续章节中介绍)。
之后,PFE根据入端口属性表对应的转发动作做后续的查表转发处理。以以太报文为
例,PFE检查MAC地址,如果不是本机MAC,则后续做二层桥接转发;如果是本机
MAC,则根据以太帧头协议类型(type字段)做IP、MPLS或其他类型的转发。值得注
意的是,如果入接口属性表对应的转发状态与报文解析后的协议不匹配,则报文会被
丢弃。比如某接口并未使能IPv6,则属性表的IPv6转发能力为”未使能“,如果收到的
报文是IPv6报文,则报文会被丢弃。
一个报文的路由器之旅 2 报文的收发、解析和封装
文档版本 01 (2016-03-28) 华为专有和保密信息
版权所有 © 华为技术有限公司
10
说明
有些报文是不需要进行查表转发的。比如,PFE解析二层帧头时,从二层帧头的协议字段就可以
直接判断出某些协议报文是需要上送本机CPU处理的,如ARP、RARP、IS-IS、LLDP、LACP、
PPP控制报文等等;还有一些协议报文,其目的地址为特定的保留组播IP地址(标准中定义,组
播地址224.0.0.1~224.0.0.255供路由协议使用),可直接判断其需要上送本机CPU处理,因此这
类协议报文也不需要查表转发。
2.3 报文封装
不同报文,需要做的封装不同。以大家熟悉的以太帧为例吧,先来回顾下IP转发流
程,看看IP转发过程中要封装哪些信息。下图是个最简单的IP转发场景,某局域网的主
机A发送报文给另一局域网的主机B,中间经过一台路由器,那么这台路由器就是PC-A
的网关。
由主机PC-A向主机PC-B发送IP报文,那么该报文的目的IP地址就是PC-B的IP地址,源
IP地址就是主机PC-A的IP地址,目标MAC地址就是其网关路由器Port1的MAC地址,源
MAC地址就是PC-A的MAC地址。
路由器转发过程:
1. 路由器收到这个报文,发现其目的MAC为本机Port1端口的,表明需要本机来进行
进一步解析(如果目的MAC不是本机,表明直接进行二层转发,不需要再解析帧
的其他内容了);
2. 路由器进一步解析报文,得知帧所承载的协议类型为IPv4(协议类型值
=0x800),即需要进行IPv4转发;
3. 查转发表(FIB表),得知该报文并不是发给自己的,而是需要送往出端口Port2,
因此,路由器不再继续分析IP头后面的内容。
4. 路由器将目的MAC更换成PC-B的MAC,将源MAC更换成出接口Port2的MAC,并
将报文发给PIC卡,PIC卡将报文从Port2发送出去。
在上述过程中,将报文原来的源/目的MAC更换成新值的过程,称为“封装”;往报文
里添加新的字段,也称为“封装”。需要被封装到待发送报文的信息称为“封装信
息”。
那么,路由器是如何得到上述的封装信息(源MAC和目的MAC)呢?答案是:在路由
器的下行接口板也对应有包转发引擎PFE,里面存有2张重要的表项,一张是IP地址与
MAC地址的映射表(即ARP表),另一张是出接口属性表(该表有出接口对应的MAC
地址)。
一个报文的路由器之旅 2 报文的收发、解析和封装
文档版本 01 (2016-03-28) 华为专有和保密信息
版权所有 © 华为技术有限公司
11
数据包经过上行PFE的查FIB表后,得到了报文的出接口。到了下行,下行PFE再根据
报文的目的IP查找ARP表得到目的MAC,根据报文出接口查找出接口属性表便可得到
源MAC。
上述是IP转发场景,封装信息包括链路层的源MAC和目的MAC。对于其他场景,除了
这两个封装信息外,还需要获取其他的封装信息,例如,对于QinQ场景,需要加封装
VLAN Tag;再如,对于MPLS场景,需封装MPLS标签。这些处理都是在下行接口板的
PFE上进行。
2.4 出口处理
同上行,封装完成后,数据帧送往下行接口卡之前,也要根据出口属性表做出口检查
和处理。例如,检查报文长度是否超出接口的MTU值,如果超出则进行分片或其他处
理(关于MTU的详细介绍请参见《MTU专题》)。
一个报文的路由器之旅 2 报文的收发、解析和封装
文档版本 01 (2016-03-28) 华为专有和保密信息
版权所有 © 华为技术有限公司
12
一个报文的路由器之旅 2 报文的收发、解析和封装
文档版本 01 (2016-03-28) 华为专有和保密信息
版权所有 © 华为技术有限公司
13
剩余102页未读,继续阅读
CodeGolang
- 粉丝: 118
- 资源: 1292
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- JDK 17 Linux版本压缩包解压与安装指南
- C++/Qt飞行模拟器教员控制台系统源码发布
- TensorFlow深度学习实践:CNN在MNIST数据集上的应用
- 鸿蒙驱动HCIA资料整理-培训教材与开发者指南
- 凯撒Java版SaaS OA协同办公软件v2.0特性解析
- AutoCAD二次开发中文指南下载 - C#编程深入解析
- C语言冒泡排序算法实现详解
- Pointofix截屏:轻松实现高效截图体验
- Matlab实现SVM数据分类与预测教程
- 基于JSP+SQL的网站流量统计管理系统设计与实现
- C语言实现删除字符中重复项的方法与技巧
- e-sqlcipher.dll动态链接库的作用与应用
- 浙江工业大学自考网站开发与继续教育官网模板设计
- STM32 103C8T6 OLED 显示程序实现指南
- 高效压缩技术:删除重复字符压缩包
- JSP+SQL智能交通管理系统:违章处理与交通效率提升
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功