jjzjj

认识网络设备

Lr_丽榕的网一直不通 2024-04-19 原文

目录

前言

目标

网络设备框架介绍

网络设备

导向:

款式设备硬件模块:

主控板

交换网板

接口板

各个模块具体介绍:

主控板

交换网板

接口板

盒式设备

模块连接逻辑图

网络设备逻辑框架

控制平面

转发平面

监控平面

网络设备对报文的处理流程

报文转发上行、下行

业务报文转发处理流程

确定报文出口(1)

确定报文出口(2)

确定报文出口(3)

转发信息

硬件转发

协议报文转发流程

设备自身发送协议报文处理流程

总结


友情提醒:

文章中(内部)是作者内心独白---提供通俗易懂的理解话语
 

前言

  1. 世界虽然很大,但是当前网络的高速发展使得我们足不出户都能了解全球的最新资讯、随时和朋友与同事交流、网络极大的丰富人们的沟通和生活、未来将会是一个万物互联的智能世界。
    (一句话,无网络这个世界就没有了颜色。好比有手机没了充电线一样,好比我没有男朋友一样,生活失去了颜色哈哈哈哈!!)

  2. 网络的搭建离不开网络设备,物理连接,以及设备之间的多种协议。其中在实现网络互通时,最常见的网络设备是路由器和交换机。 
    (根据不同的场景就会有不同型号级别的设备,型号的由来就在这里了啦!  世界上最常见的东西是人,而人群之中不同有趣的灵魂的你和我刚好相遇在文章里面~~)

  3. 如今在各种级别的网络随处可见各种低、中、高端的路由器、交换机、种类繁多,这些不同种类的设备内部是如何工作、处理数据报文的呢?
    (大家都知道饿了要吃东西,那为什么会饿了?你怎么感受到饿的感觉的呢?具体下去的分析就是人家搞医学的事儿了对叭,那大家都知道网络通才能正常上网下载,那怎么通呢?有啥机制就是文章前的可爱有趣的网络工程师们的术业专攻之处啦!)

  4. 本课程将会以路由器、交换机为例学习网络设备的工作机制、报文转发流程。
    (废话不多说,开启我们HCIP的学习吧!)

目标

学完本课程后,能够:

  1. 描述网络设备的逻辑结构

  2. 描述网络设备的各个功能模块

  3. 描述网络设备的转发流程

网络设备框架介绍

网络设备

导向:

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

交换机内部如何把报文从一个接口转发到另外一个接口?

款式设备硬件模块:

为方便理解网络设备内部的各个功能模块,以S12700E-8为例讲解典型网络设备的构架:

主控板

(MPU,Main Processing Unit):

负责整个系统的控制平面管理平面
(MPU就是老大,他来指挥,没他不行)

交换网板

(SFU,Switch Fabric Unit):

负责整个系统的数据平面。数据平面提供高速无阻塞数据通道,实现各个业务模块之间的业务交换功能。

接口板

(LPU,Line Processing Unit):线路处理单元是物理设备上用于提供数据转发功能的模块,提供不同速率的光口、电口。

交换网板、接口板上都有自己的管理芯片,与主控板共同组成整个设备的控制管理平面。

(控制管理平面光有老大那可不行,得有干活的人呐~~)

各个模块具体介绍:

主控板

主控板提供了整个系统的控制平面和管理平面。 控制平面:完成系统的协议处理、业务处理、路由运算、转发控制、业务调度、流量统计、系统安全等功能。 管理平面:完成系统的运行状态监控、环境监控、日志和告警信息处理、系统加载、系统升级等功能。

交换网板

交换网板提供整个系统的数据平面。接口板、主控板之间通过交换网板完成通信。

接口板

接口板提供了不同类型(光口、电口),不同速率的接入接口,通过分布式数据平面对数据进行转发。

盒式设备

 

不同于框式设备,盒式设备的各个业务模块并不是独立的硬件模块,而是集成在一个框内。

模块连接逻辑图

 

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

网络设备逻辑框架

 

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

控制平面

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

转发平面

设备的转发平面:由交换网板以及接口板组成。 LPU上存在PFE(转发引擎),其本质也是一个交换芯片,完成本接口板端口之间的交换。 数据平面完成数据报文的高速处理和内部无阻塞交换。包括报文的封装与解封装、IPv4/IPv6/MPLS转发处理、QoS与调度处理、内部高速交换以及各种统计。

监控平面

监控平面:由主控板、接口板的监控单元构成,部分框式设备还会存在单独的集中监控板(CMU)。 监控平面独立完成系统的环境监控,包括电压检测、系统上下电控制、温度监测与风扇控制等,以保证系统的安全稳定运行,在出现单元故障的情况下及时隔离故障,保障系统其它部分的正常运行。

网络设备对报文的处理流程

报文转发上行、下行

 

以交换网板为中心:

可将报文在设备的行程一分为二,前 半程称为“上行”,下半程称为“下行”。

(设备处理报文分类:一种是业务报文、一种是协议报文。 对于业务报文设备只会进行转发,从一个接口进入之后依据转发表项从另外一 个接口发送出去。 协议报文(如ARP、OSPF、BGP等协议的报文)设备在收到之后会交由控制层面进行处理,如ARP报文交由控制层面处理、判断之后决定是否回应,是否学习ARP报文中的源MAC、源IP。)

(上行和下行不是专有名词,是要根据不同角度和场景确认的,也就是换汤不换药,理解为大)

业务报文转发处理流程

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

注意:没有固定的定义,而是根据具体情况而看 站在不同角度就会有不同定义

(PFE(Packet Forwarding Engine):包转发引擎。 业务报文:服务、应用在交互过程中涉及的报文。 切片:把报文送往交换网板之前,进行切片处理,也就是把报文按一定粒度进行切片,切成固定长度。 重组:将交换网板发送过来的已经切片的报文进行重新组合。)

(业务业务,是可以产生价值,涉及到物质的报文)

确定报文出口(1)

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

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

问题来了:

主控板以及接口板上都存在CPU,都有控制平面功能,转发表项存放、表项查询应在接口板执行还是主控板执行?

---由接口板执行(这么多协议报文由主控板分析哪里忙的过来呢?分工合作才是硬道理嘛!)

(二层转发查询MAC地址表,三层转发查询三层路由表。)

确定报文出口(2)

  1. 转发表项存放在主控板上,报文进入接口板之后,接口板从主控板处查询表项。

  1. 每次转发都需要与主控板进行通信,转发效率低,报文时延增加,对高速率接口板而言转发速率严重下跌。

(二层转发查询MAC地址表,三层转发查询三层路由表。)

确定报文出口(3)

  1. 转发表项存放在接口板上,报文进入接口板之后直接在接口板完成报文查询,报文转发效率高。

  1. 所有接口板上都要存储转发表项,控制平面资源占用率高。

(二层转发查询MAC地址表,三层转发查询三层路由表。)

转发信息

  1. 高端设备业务报文不经过主控板CPU处理,由接口板提供转发信息查询。

  1. 接口板上存在的转发信息并非存在于主控板上的转发表项(IP路由表、MAC地址表…)。

  1. 主控板生成转发表项之后,生成对应的转发信息下发在接口板。

例子:

以IP路由表为例,路由表生成之后,主控板根据路由表生成FIB表项(Forwarding Information Base)并下发到接口板,接口板根据FIB表进行转发。

注意:FIB表项是在接口板上的,是基于主控板的路由表优化而来

硬件转发

  1. 接口板执行转发的部件为包转发引擎PFE(Packet Forwarding Engine),通常为NP或者ASIC芯片,报文直接由接口板独立完成转发,无需主控板参与。

  1. 高端框式设备把转发层面和控制层面分配在不同的组件,控制层面组件(主控板)负责运行转发相关协议、维护转发表项,转发平面组件(接口板)依据控制层面下发的转发信息能够独立完成转发工作,互不影响,控制层面组件高负载时并不会影响转发平面的正常工作,这种工作机制被称为转控分离

(芯片小科普

CPU:全能型选手,有很强的编程能力

NP:专注做一件事,具备一些编程能力

ASIC:专心致志,只做一件事,没有编程能力)

编程能力:就是能够通过编程达到某个目的

协议报文转发流程

设备收到的协议报文,如路由协议:OSPF、IS-IS、BGP报文,ARP报文,STP报文,对设备的ICMP请求报文等,需要交由设备的控制平面处理,即上送主控板由主控板的CPU进行处理。

这里都是内部的转发,了解即可。

{主控板CPU收到协议报文之后进行相应的处理之后如果需要回应报文,则主控板会构造协议报文进行回应,如收到发往自身的ARP Request、ICMP Echo Request报文,主控板处理之后构造ARP Reply、ICMP Echo Reply进行回应。 主控板CPU处理能力有限,如果过多的协议报文上送主控板CPU处理,会造成其繁忙,无法及时对协议报文进行响应,为此设备默认限制了各种类型的协议报文上送主控板CPU的速率。}

设备自身发送协议报文处理流程

设备自身发送的协议报文,如路由协议报文: OSPF、IS-IS、BGP报文,ARP报文,STP报文,ICMP报文等,由主控板CPU构造之后交由接口板对外发送。

总结

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

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

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

有关认识网络设备的更多相关文章

  1. ruby - 用 Ruby 编写一个简单的网络服务器 - 2

    我想在Ruby中创建一个用于开发目的的极其简单的Web服务器(不,不想使用现成的解决方案)。代码如下:#!/usr/bin/rubyrequire'socket'server=TCPServer.new('127.0.0.1',8080)whileconnection=server.acceptheaders=[]length=0whileline=connection.getsheaders想法是从命令行运行这个脚本,提供另一个脚本,它将在其标准输入上获取请求,并在其标准输出上返回完整的响应。到目前为止一切顺利,但事实证明这真的很脆弱,因为它在第二个请求上中断并出现错误:/usr/b

  2. 【鸿蒙应用开发系列】- 获取系统设备信息以及版本API兼容调用方式 - 2

    在应用开发中,有时候我们需要获取系统的设备信息,用于数据上报和行为分析。那在鸿蒙系统中,我们应该怎么去获取设备的系统信息呢,比如说获取手机的系统版本号、手机的制造商、手机型号等数据。1、获取方式这里分为两种情况,一种是设备信息的获取,一种是系统信息的获取。1.1、获取设备信息获取设备信息,鸿蒙的SDK包为我们提供了DeviceInfo类,通过该类的一些静态方法,可以获取设备信息,DeviceInfo类的包路径为:ohos.system.DeviceInfo.具体的方法如下:ModifierandTypeMethodDescriptionstatic StringgetAbiList​()Obt

  3. 网络编程套接字 - 2

    网络编程套接字网络编程基础知识理解源`IP`地址和目的`IP`地址理解源MAC地址和目的MAC地址认识端口号理解端口号和进程ID理解源端口号和目的端口号认识`TCP`协议认识`UDP`协议网络字节序socket编程接口`sockaddr``UDP`网络程序服务器端代码逻辑:需要用到的接口服务器端代码`udp`客户端代码逻辑`udp`客户端代码`TCP`网络程序服务器代码逻辑多个版本服务器单进程版本多进程版本多线程版本线程池版本服务器端代码客户端代码逻辑客户端代码TCP协议通讯流程TCP协议的客户端/服务器程序流程三次握手(建立连接)数据传输四次挥手(断开连接)TCP和UDP对比网络编程基础知识

  4. ruby-on-rails - 禁用设备的 :confirmable on-the-fly to batch-generate users - 2

    Devise是一个Ruby库,它为我提供了这个User类:classUser当写入:confirmable时,注册时会发送一封确认邮件。上周我不得不批量创建300个用户,所以我在恢复之前注释掉了:confirmable几分钟。现在我正在为用户批量创建创建一个UI,因此我需要即时添加/删除:confirmable。(我也可以直接修改Devise的源码,但我宁愿不去调和它)问题:如何即时添加/删除:confirmable? 最佳答案 WayneConrad的解决方案:user=User.newuser.skip_confirmation

  5. ruby - 检查网络文件是否存在,而不下载它? - 2

    是否可以在不实际下载文件的情况下检查文件是否存在?我有这么大的(~40mb)文件,例如:http://mirrors.sohu.com/mysql/MySQL-6.0/MySQL-6.0.11-0.glibc23.src.rpm这与ruby​​不严格相关,但如果发件人可以设置内容长度就好了。RestClient.get"http://mirrors.sohu.com/mysql/MySQL-6.0/MySQL-6.0.11-0.glibc23.src.rpm",headers:{"Content-Length"=>100} 最佳答案

  6. ruby - 404 未找到,但可以从网络浏览器正常访问 - 2

    我在这方面尝试了很多URL,在我遇到这个特定的之前,它们似乎都很好:require'rubygems'require'nokogiri'require'open-uri'doc=Nokogiri::HTML(open("http://www.moxyst.com/fashion/men-clothing/underwear.html"))putsdoc这是结果:/Users/macbookair/.rvm/rubies/ruby-2.0.0-p481/lib/ruby/2.0.0/open-uri.rb:353:in`open_http':404NotFound(OpenURI::HT

  7. 深度学习12. CNN经典网络 VGG16 - 2

    深度学习12.CNN经典网络VGG16一、简介1.VGG来源2.VGG分类3.不同模型的参数数量4.3x3卷积核的好处5.关于学习率调度6.批归一化二、VGG16层分析1.层划分2.参数展开过程图解3.参数传递示例4.VGG16各层参数数量三、代码分析1.VGG16模型定义2.训练3.测试一、简介1.VGG来源VGG(VisualGeometryGroup)是一个视觉几何组在2014年提出的深度卷积神经网络架构。VGG在2014年ImageNet图像分类竞赛亚军,定位竞赛冠军;VGG网络采用连续的小卷积核(3x3)和池化层构建深度神经网络,网络深度可以达到16层或19层,其中VGG16和VGG

  8. 【网络】-- 网络基础 - 2

    (本文是网络的宏观的概念铺垫)目录计算机网络背景网络发展认识"协议"网络协议初识协议分层OSI七层模型TCP/IP五层(或四层)模型报头以太网碰撞路由器IP地址和MAC地址IP地址与MAC地址总结IP地址MAC地址计算机网络背景网络发展        是最开始先有的计算机,计算机后来因为多项技术的水平升高,逐渐的计算机变的小型化、高效化。后来因为计算机其本身的计算能力比较的快速:独立模式:计算机之间相互独立。    如:有三个人,每个人做的不同的事物,但是是需要协作的完成。    而这三个人所做的事是需要进行协作的,然而刚开始因为每一台计算机之间都是互相独立的。所以前面的人处理完了就需要将数据

  9. 常见网络安全产品汇总(私信发送思维导图) - 2

    安全产品安全网关类防火墙Firewall防火墙防火墙主要用于边界安全防护的权限控制和安全域的划分。防火墙•信息安全的防护系统,依照特定的规则,允许或是限制传输的数据通过。防火墙是一个由软件和硬件设备组合而成,在内外网之间、专网与公网之间的界面上构成的保护屏障。下一代防火墙•下一代防火墙,NextGenerationFirewall,简称NGFirewall,是一款可以全面应对应用层威胁的高性能防火墙,提供网络层应用层一体化安全防护。生产厂家•联想网御、CheckPoint、深信服、网康、天融信、华为、H3C等防火墙部署部署于内、外网编辑额,用于权限访问控制和安全域划分。UTM统一威胁管理(Un

  10. 【Linux操作系统】——网络配置与SSH远程 - 2

    Linux操作系统——网络配置与SSH远程安装完VMware与系统后,需要进行网络配置。第一个目标为进行SSH连接,可以从本机到VMware进行文件传送,首先需要进行网络配置。1.下载远程软件首先需要先下载安装一款远程软件:FinalShell或者xhell7FinalShellxhell7FinalShell下载:Windows下载http://www.hostbuf.com/downloads/finalshell_install.exemacOS下载http://www.hostbuf.com/downloads/finalshell_install.pkg2.配置CentOS网络安装好

随机推荐