「NETWORK-HARDWARE」- 网络设备,数据处理,网络硬件

  CREATED BY JENKINSBOT

问题描述

世界虽然很大,但是当前网络的高速发展使得我们足不出户都能了解全球最新的资讯、随时和朋友与同事交流、网络极大的丰富人们的沟通和生活。 未来将会是一个万物互联的智能世界。

网络的搭建离不开网络设备,物理连接,以及设备之间的多种协议。其中在实现网络互通时,最常见的网络设备是路由器和交换机。
如今在各种级别的网络随处可见各种低、中、高端的路由器、交换机,种类繁多,这些不同种类的设备内部是如何工作、处理数据报文的呢?

该笔记将记录:路由器、交换机为例学习网络设备的工作机制、报文转发流程。

解决方案

网络基础设施由交换机、路由器、防火墙等构成,这些设备日复一日地接收、发送数据,从一个接口收到的数据如何经过设备内部转发到另外一个接口?设备有哪些组件构成?这些组件如何协同工作?。

每台网络设备存在独立的控制平面、转发平面、监控平面:
1)控制平面,负责系统的协议处理、路由运算、业务调度等,
2)转发平面负责转发数据,实现各个业务模块之间的报文交互。
3)监控平面负责系统的环境监控,以保证系统的安全稳定运行。

高端框式设备各个平面以不同的板卡形式存在,接口板、交换网板实现转发平面的功能,主控板实现控制平面的功能,监控板实现监控平面的功能。

高端框式设备采用“硬转发”,报文的转发由接口板直接完成,无需控制平面参与,报文转发效率极高。

网络设备:常见设备

How the Internet Works Under the Hood | by Kyle McCurley | Better Programming

交换机可以隔离冲突域,路由器可以隔离广播域,这两种设备在企业网络中应用越来越广泛。

集线器(Hub)

主机发送数据时,其他主机不能发送数据。
数据会被所有人收到,Hub 会将数据包发往每个连接的设备

交换机,Switch,终端设备的网络接入

多个主机能够同时发送数据,数据不会被所有主机收到。Switch 会将数据包发送给 MAC 地址匹配的设备。
此时,相同广播域,所有主机都会收到广播数据。

路由器,Router,网络之间的数据转发

路由器能够分割广播域,减小广播域。

广播域:一个广播流量能够影响的设备;一个网络为一个广播域;

隔离广播域:路由器,使经过交换机的广播报文都在某个网络内部;

防火墙,Firewall,网络之间的安全通信

无线设备,Wireless Device,无线终端接入设备

在大型网络中,通常使用 FIT AP + AC 方式管理无线网络。

网络设备:逻辑构架

网络设备从逻辑上可以分为以下三个平面:数据平面、控制管理平面、监控平面。

监控平面 = 主控板 + 接口板的监控单元

对于部分框式设备,还会存在单独的集中监控板(CMU)。

监控平面独立完成系统的环境监控,包括电压检测、系统上下电控制、温度监测与风扇控制等,以保证系统的安全稳定运行,在出现单元故障的情况下及时隔离故障,保障系统其它部分的正常运行。

控制平面 = 主控板 + 接口板的管理单元

控制管理平面:完成系统的控制管理功能,是整个系统的中枢神经系统。
控制平面:完成系统的协议处理、业务处理、路由运算、转发控制、业务调度、流量统计、系统安全等功能。
交换机的控制平面:用于控制和管理所有网络协议的运行。
控制平面提:负责进行必须的各种网络信息和转发查询表项,以供数据平面数据处理转发使用。

转发平面 = 接口板 + 交换网板

数据平面完成数据报文的高速处理和内部无阻塞交换。包括报文的封装与解封装、IPv4/IPv6/MPLS 转发处理、QoS 与调度处理、内部高速交换以及各种统计。

网络设备:模块连接

框式设备,各个模块分为不同单板,单板之间通过框式设备内部的连接进行通信。
盒式设备,内部集成这些模块,各个模块之间同样也是通过内部连接进行通信。
在接口板和接口板间,通过交换网板连接起来,接口板之间的通信统一经由交换网板进行转发。

网络设备对报文的处理

报文分类:业务、协议

1)业务报文:服务、应用在交互过程中涉及的报文。
设备仅转发,从接口进入后,依据转发表项,从另个接口发出;

2)协议报文:如路由协议:OSPF、IS-IS、BGP 报文,ARP报文,STP报文,对设备的ICMP请求报文等
在收到后,会交由控制平面处理。比如 ARP 由控制平面处理、决定是否回响应,是否学习;

转发方向:上行、下行

以交换网板为中心,将报文在设备的行程一分为二:
1)前半程称为上行(接收数据);
2)下半程称为下行(发出数据);

转发动作:切片、重组

切片:把报文送往交换网板之前,进行切片处理,也就是把报文按一定粒度进行切片,切成固定长度。

重组:将交换网板发送过来的已经切片的报文进行重新组合。

转发信息

Q:MPU 以及 LPU 上都存在 CPU 模块,都有控制平面功能,转发表项存放、表项查询应在 MPU 执行还是 LPU 执行?
A:如果转发表项存放在 MPU 上,当报文进入 LPU 后,此时 LPU 必须从 MPU 处查询表项。每次转发都需要与 MPU 进行通信,转发效率低,报文时延增加,对高速率接口板而言转发速率严重下跌。如果转发表项存放在 LPU 上,报文进入 LPU 后直接在 LPU 完成报文查询,报文转发效率高。因此所有 LPU 都要存储转发表项,也因此控制平面资源占用率高。

高端设备业务报文不经过 MPU 的 CPU处理,由 LPU 提供转发信息查询:
1)MPU 生成转发表项之后,生成对应的转发信息下发在 LPU;
2)LPU 存在的转发信息并非存在于主控板上的转发表项(IP路由表、MAC地址表…);

我们以 IP 路由为例:
1)当 MPU 生成路由表后,再根据路由表生成 FIB 表项(Forwarding Information Base)
2)并下发到 LPU,LPU 根据 FIB 表进行转发。

硬件转发

LPU 执行转发的部件为 PFE,通常为 NP 或 ASIC 芯片。报文直接由 LPU 独立完成转发,无需 MPU 参与。

高端框式设备把转发层面和控制层面分配在不同的组件,控制层面组件(主控板)负责运行转发相关协议、维护转发表项,转发平面组件(接口板)依据控制层面下发的转发信息能够独立完成转发工作,互不影响。

控制层面组件高负载时并不会影响转发平面的正常工作,这种工作机制被称为转控分离

处理流程:业务报文

业务报文从接口进入上行接口板处理后,通过框式交换机内部总线交由交换网板,交换网板交由下行接口板处理之后从接口发出去。

当报文从接口板进入时:设备需要依据转发表项(IP路由表、MAC地址表等)确定报文的出接口(对于框式设备需要确定下行接口板)。

当报文到达交换网板时:已经明确出接口、下行接口板,因此表项查询需要在上行接口板的处理过程中完成。

当报文从接口板发出时:将交换网板发送过来的已经切片的报文进行重新组合。

处理流程:协议报文

当设备收到的协议报文时:需要交由设备的控制平面处理,即上送 MPU 由其的 CPU 进行处理。

主控板 CPU 处理能力有限,如果过多的协议报文上送主控板CPU处理,会造成其繁忙,无法及时对协议报文进行响应。为此设备默认限制各种类型的协议报文上送 MPU CPU 的速率。

当设备响应的协议报文时
1)MPU 收到协议报文后,并进行相应处理后,如果需要回应报文,则 MPU 会构造协议报文进行回应,如收到发往自身的ARP Request、ICMP Echo Request报文,MPU 处理后将构造 ARP Reply、ICMP Echo Reply进行回应。
2)设备自身发送的协议报文,如路由协议报文: OSPF、IS-IS、BGP报文,ARP报文,STP报文,ICMP报文等,由 MPU 构造后交由 LPU 对外发送。