计算机网络——自顶向下方法(第五章学习记录)

news2024/12/24 8:25:23

本章学习网络层:控制平面

控制平面作为一种网络范围的逻辑,不仅控制沿着从源主机到目的主机的端到端路径间路由器如何转发数据报,而且控制网络层组件和服务如何配置和管理。

概述

通过前面的学习,我们已经知道转发表(在基于目的地转发的场景中)和流表(在通用转发的场景中)是链接网络层的数据平面和控制平面的首要元素

在前面我们已经知道路由控制的两种方法

  • 每路由器控制。(图5-1)每台路由器中都包含转发和路由选择功能。每台路由器有一个路由选择组件,用于与其他路由器中的路由选择组件通信,以计算其转发表的值
  • 逻辑集中式控制。(图5-2)逻辑集中式控制器计算并分发转发表以供每台路由器使用 

 该控制器经一种定义良好的协议与每台路由器中的一个控制代理(CA)进行交互,以配置和管理该路由器的转发表。CA的任务是与控制器通信并且按控制器指令行事,与图5-1中的路由选择算法不同,这些CA既不能直接相互交互,也不能主动参与计算转发表。这是每路由器控制和逻辑集中式控制之间的关键差异。

路由选择算法

路由选择算法其目的是从发送方到接收方的过程中确定一条通过路由器网络的好的路径(等价于路由)(一条好路径指具有最低开销的路径) 

来形式化描述路由选择问题。图中的节点表示路由器,这是做出分组转发决定的点;连接这些节点的边表示这些路由器之间的物理链路。

 如图所示,一条边还有一个值表示它的开销。(通常一条边的开销可反映出对应链路的物理长度、它的链路速度或与该链路相关的金钱上的开销)

一般而言路由选择算法可根据该算法是集中式还是分散式来划分:

  • 集中式路由选择算法。用完整的、全局性的网络知识计算从源到目的地之间的最低开销路径。也就是说,该算法以所有节点之间的连通性及所有链路的开销为输入。这要求该算法在真正开始计算以前要以某种方式获得这些信息。集中式算法具有关于连通性和链路开销方面的完整信息。具有全局状态信息的算法常被称为链路状态(Link State,LS)算法,因为该算法必须知道网络中每条链路的开销。
  • 分散式路由选择算法。路由器以迭代、分布式的方式计算出最低开销路径。没有节点拥有关于所有网络链路开销的完整信息。相反,每个节点仅有与其直接相连链路的开销知识即可开始工作。然后通过迭代计算过程以及与相邻节点的信息交换,一个节点逐渐计算出到达某目的节点或一组目的节点的最低开销路径。距离向量(Distance—Vector,DV)算法是分散式路由选择算法。之所以叫DV算法,是因为每个节点维护到网络中所有其他节点的开销估计的向量。

链路状态路由选择算法

在链路状态算法中,网络拓扑和所有的链路开销都是已知的,可以作为LS算法的输入。实践中这是通过让每个节点向网络中所有其他节点广播链路状态分组来完成的,其中每个链路状态分组包含它所连接的链路的标识和开销。在实践中经常由链路状态广播(Link state broadcast)算法来完成。节点广播的结果是所有节点都具有该网络的统一、完整的视图。于是每个节点都能够像其他节点一样,运用LS算法并计算出相同的最低开销路径集合。

下面给出一种叫Dijkstra算法。它计算从某节点(源节点,称为u)到网络中所有其他节点的最低开销路径,是一种迭代算法,其性质是经算法的第k次迭代后,可知道k个目的节点的最低开销路径,在到所有目的节点的最低开销路径中,这k条路经具有k个最低开销。

  • D(v):到算法的本次迭代,从源节点到目的节点v的最低开销路径的开销
  • P(v):从源到v沿着当前最低开销路径的前一节点(v的邻居)
  • N':节点子集;如果从源到v的最低开销路径已确知,则v在N’中

 

 考虑上图中的网络,计算从u到所有可能目的地的最低开销路径

 当LS算法终止时,对于每个节点,我们都得到从源节点沿着它的最低开销路径的前一节点,对于每个前一节点,我们又有它的前一节点,以此方式我们可以构建从源节点到所有目的节点的完整路径。(通过对每个目的节点存放从u到目的地的最低开销路径的下一跳节点,在一个节点的转发表则能根据此信息而构建)

 距离向量路由选择算法

距离向量(Distance-Vector,DV)算法是一种迭代的、异步的和分布式的算法,而LS算法是一种使用全局信息的算法。

分布式:因为每个节点都要从一个或多个直接相连邻居接收某些信息,执行计算然后将计算结果分发给邻居

迭代的:此过程一直要持续到邻居之间无更多信息交换为止

异步的:不要求所有节点相互之间步伐一致地操作

 下图举例说明DV算法的运行

最左边一列显示这3个节点各自的初始路由选择表。 位于左上角的是节点x的初始路由选择表。在一张特定的路由选择表中每行是一个距离向量——特别是每个节点的路由选择表包括了它的距离向量和它的每个邻居的距离向量。该表的第二和第三行是最近分别从节点y和节点z收到的距离向量,因为在初始化时节点x还没有从节点y和z收到任何东西,所以第二行和第三行表项被初始化为无穷大。

初始化后,每个节点向它的两个邻居发送其距离向量。从邻居接受更新距离向量、重新计算路由选择表项和通知邻居到达目的地的最低开销路径的开销已经变化的过程继续下去。

DV和LS算法采用互补的方法来解决路由选择计算问题。在DV算法中,每个节点仅与它的直接相连的邻居交谈,但它为其邻居提供了从它自己到网络中(它所知道的)所有其他节点的最低开销估计。LS算法需要全局信息。

ISP之间的路由选择:BGP

 自治系统(Autonomous System,AS)由一组通常处在相同管理机制下的路由器组成,通常在一个ISP中的路由器以及互联它们的链路构成一个AS,当在相同AS内的源和目的地之间进行分组选路时,分组遵循的路径完全由AS内路由选择协议所决定,然而当分组跨越多个AS进行路由时,需要一个自治系统间路由选择协议,因为AS间路由选择协议涉及多个AS之间的协调,所以AS通信必须运行相同的AS间路由选择协议。在因特网中,所有AS运行相同的AS间路由选择协议,该协议称为边界网关协议(Broder Gateway Protocol,BGP),这个协议将因特网中数以千计的ISP粘合起来。

BGP的作用

 每台路由器具有一张转发表,该转发表在将到达分组转发到路由器链路的过程中起着主要作用。对于位于相同AS中的目的地而言,在路由器转发表中的表项由AS内部路由选择协议所决定;对于该AS外部的目的地而言则依靠BGP

在BGP中,分组并不是路由到一个特定的目的地址,相反是路由到CIDR化的前缀,其中每个前缀表示一个子网或一个子网的集合;作为一种AS间的路由选择协议,BGP为每台路由器提供了一种完成以下任务的手段:

(1)从邻居AS获得前缀的可达性信息。BGP允许每个子网向因特网的其余部分通告它的存在,同时BGP确保在因特网中的所有AS知道该子网

(2)确定到该前缀的“最好的”路由。一台路由器可能知道两条或更多条到特定前缀的不同路由。为了确定最好的路由,该路由器将本地运行一个BGP路由选择过程(使用它经过相邻的路由器获得的前缀可达性信息)

接下来分别来看这两个任务是如何实现的

通告BGP路由信息

如下图所示有3个自治系统:AS1,AS2,AS3,AS3包括一个具有前缀x的子网,对于每个AS,每台路由器要么是一台网关路由器,要么是一台内部路由器。网关路由器是一台位于AS边缘的路由器,它直接连接到其他AS中的一台或多台路由器,内部路由器仅连接在它自己AS内的主机和路由器。

 考虑这样一个任务:向上图所示的所有路由器通告对于前缀x的可达性信息。在宏观上这是很简明的,AS3向AS2通告,AS2再向AS1通告。(这样忽略了自治系统内部相互发送报文)

在BGP中,每对路由器通过使用179端口的半永久TCP连接交换路由选择信息。每条直接连接以及所有通过该连接发送的BGP报文,称为BGP连接。此外跨越两个AS的BGP连接称为外部BGP(eBGP)连接,而在相同AS中的两台路由器之间的BGP会话称为内部BGP(iBGP)

为了传播可达性信息,使用eBGP和iBGP会话。现在考虑我们的任务?在这个过程中,

  • 网关路由器3a先向网关路由器2c发送一个eBGP报文"AS3 x";
  • 网关路由器2c然后向AS2中的所有其他路由器发送iBGP报文"AS3 x";
  • 网关路由器2a向网关路由器1c发送一个eBGP报文"AS2 AS3 x";
  • 最后,网关路由器1c使用iBGP向AS1中的所有路由器发送报文段"AS2 AS3 x"

在完成这个过程后,在AS1和AS2中的每个路由器都知道了x的存在并且也知道了通往x的AS路径

确定最好的路由 

 从一个给定的路由器到一个目的子网可能有多条路径,那一台路由器如何在这些路径之间进行选择(并且再相应地配置它的转发表)?

引入几个BGP术语。

当路由器通过BGP连接通告前缀时,它在前缀中包括一些BGP属性。前缀及其属性称为路由。两个较为重要的属性是AS-PATH和NEXT-HOP。

AS-PATH属性包含了通告已经通过的AS的列表。BGP路由器还使用AS-PATH属性来检测和防止通告环路,(如果一台路由器在路径列表中看到包含了它自己的AS,它将拒绝该通告)

NEXT-HOP是AS-PATH起始的路由器接口的IP地址

 如上图所示,对于从AS1通过AS2到x的路由器“AS2 AS3 x”,其属性NEXT-HOP是路由器2a左边接口的IP地址;对于从AS1绕过AS2到x的路由“AS3 x”,其NEXT-HOP属性是路由器3d最左边接口的IP地址。总的来说,AS1中的每台路由器都知道了到前缀x的两台BGP路由:

路由器2a的最左侧接口的IP地址:AS2 AS3;x

路由器3d的最左侧接口的IP地址:AS3;x

热土豆路由选择

热土豆路由选择(hot potato routing) 的思想是:对于某一路由器,尽可能快地将分组送出其AS(用可能的最低开销),而不担心其AS外部到目的地的余下部分的开销。【所谓热土豆就是烫手的热土豆,因为它烫手,你要尽可能快地将它传给另一个人】(减小在自己AS中的开销,而忽略在其他AS中的开销,可以理解为局部最优)

 路由器选择算法

在实践中,BGP使用了一种比热土豆路由选择更为复杂但却结合了其特点的算法。对于任何给定的目的地前缀,进入BGP的路由选择算法的输入是到某前缀的所有路由的集合,该前缀是已被路由器学习和接受的。(如果仅有一条这样的路由,那就选择该路由;如果到相同的前缀有两条或多条路由,则顺序地调用下列规则直到余下一条路由):

(1)路由被指派一个本地偏好值作为其属性之一(除了AS-PATH和NEXT-HOP以外)。一条路由的本地偏好可能由该路由器设置或可能由在相同AS中的另一台路由器学习到。本地偏好属性的值是一种策略决定,具有最高本地偏好值的路由将被选择。

(2)从余下的路由中(所有都具有相同的最高本地偏好值),将选择具有最短AS-PATH的路由。如果该规则是路由选择的唯一规则,则BGP将使用距离向量算法决定路径,其中距离测度使用AS跳而不是路由器跳的跳数。

(3)从余下的路由中(所有都具有相同的最高本地偏好值和相同的AS-PATH长度),使用热土豆路由选择,即选择具有最靠近NEXT-HOP路由器的路由。

(4)如果仍留下多条路由,该路由器使用BGP标识符来选择路由。

IP任播

除了作为因特网的AS间路由选择协议外,BGP还常被用于实现IP任播服务,该服务通常用于DNS中。

SDN控制平面

 SDN体系结构有4个关键特征:

  • 基于流的转发。SDN控制的交换机的分组转发工作,能够基于运输层、网络层或链路层首部中任意数量的首部字段值进行。SDN控制平面的工作是计算、管理和安装所有网络交换机中的流表项
  • 数据平面与控制平面分离。数据平面由网络交换机组成,交换机是相对简单(但快速)的设备,该设备在它们的流表中执行“匹配加动作”的规则。控制平面由服务器以及决定和管理交换机流表的软件组成
  • 网路控制功能。位于数据平面交换机外部。控制平面自身由两个组件组成:一个SDN控制器(或网络操作系统)以及若干网络控制应用程序。控制器维护准确的网络状态信息(如远程链路、交换机和主机的状态);为运行在控制平面中的网络控制应用程序提供这些信息;提供方法,这些应用程序通过这些方法能够监视、编程和控制下面的网络设备
  • 通过运行在控制平面中的网络控制应用程序,该网络是可编程的。

 

ICMP:因特网控制报文协议

 主机和路由器彼此沟通网络层的信息。ICMP最典型的用途是差错报告。ICMP通常被认为是IP的一部分,但从体系结构上讲它位于IP之上,因为ICMP报文是承载在IP分组中的。

ICMP报文有一个类型字段和一个编码字段,并且包含引起该ICMP报文首次生成的IP数据报的首部和前8个字节,下图显示了所选的ICMP报文类型

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/683084.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Android使用echart展示图表

Android使用echart展示酷炫的图表 最近开发的时候,遇到了柱状图,刻度图等各种图表的展示。查资料发现,Android用的的最多的是MPAndroidChart,我也尝试了,一般的柱状图和饼状图都可以实现,但是刻度图就不行…

【复习《剑指Offer》1-5题】【每天40分钟,我们一起用50天刷完 (剑指Offer)】第六天 6/50

专注 效率 记忆 预习 笔记 复习 做题 欢迎观看我的博客,如有问题交流,欢迎评论区留言,一定尽快回复!(大家可以去看我的专栏,是所有文章的目录)   文章字体风格: 红色文字表示&#…

第二章:项目环境搭建【基于Servlet+JSP的图书管理系统】

环境搭建 1.项目工具 本项目涉及到的工具都有在云盘提供,自行下载即可 JDK8IDEA2021Tomcat8.5MySQL的客户端工具SQLYog… 2.项目搭建 通过IDEA创建maven项目。勾选脚手架工具。选择maven-archetype-webapp 设置项目的基础信息 3.基本配置 3.1 JDK配置 JDK使用的…

前端Vue自定义服务说明弹窗弹框 自下而上底部弹框

前端Vue自定义服务说明弹窗弹框 自下而上底部弹框&#xff0c; 请访问uni-app插件市场地址&#xff1a;https://ext.dcloud.net.cn/plugin?id13108 效果图如下&#xff1a; # cc-serviceDialog 自定义服务说明弹窗 自下而上 底部弹窗 #### 使用方法 使用方法 <!-- 服务…

开发吐槽,谁说测试是二等公民,我们才是好吧

很多测试都认为自己是团队中的二等公民&#xff0c;从而各种看衰作贱自己。 这不&#xff0c;昨天在知乎上就看到一篇帖子&#xff1a;一女测试在团队中各种嘲讽自己的测试团队&#xff0c;“测试是低人一等的职业”&#xff0c;时刻劝说大家转开发。最后团队领导受不了&#…

机器学习:简介与类型

从翻译应用、商品推荐、医疗诊断到自动驾驶汽车&#xff0c;机器学习 (ML) 作为一种技术&#xff0c;都有用武之地。机器学习提供了一种解决问题、回答复杂问题以及创建新内容的新方式。机器学习可以预测天气、估算行程时间、推荐歌曲、自动补全句子、汇总文章以及生成全新的图…

【数据结构】串的基本定义及操作

&#x1f387;[数据结构]串的基本定义及操作&#x1f387; &#x1f308;积薪高于山&#xff0c;焉用先后别 &#x1f308; &#x1f31f; 正式开始学习数据结构啦~此专栏作为学习过程中的记录&#x1f31f; 文章目录 &#x1f387;[数据结构]串的基本定义及操作&#x1f387;&…

【运维心得】SAP EPM Add-In加载错误的另类解决方案

关键字&#xff1a;SAP BPC EPM OFFICE WPS 今天又解决了一个诡异的问题&#xff0c;记录一下&#xff0c;以备将来能够用上。 目录 问题现象 网上的方法 启发和解决 结论 问题现象 财务SAP系统需要BPC模块做报表&#xff0c;安装了OfficeEPM Add-In以后&#xff0c;结果…

抖音私域怎么做?

“私域流量”是如今备受市场瞩目的话题之一。众所周知&#xff0c;腾讯、阿里巴巴、抖音等互联网巨头已经开始布局私域资源&#xff0c;因此许多企业都希望在这些平台上获取生意增长。作为具有6亿日活跃用户的短视频平台&#xff0c;抖音也为企业提供了私域运营的阵地。那么&am…

2023年湖北黄冈人社局初、中级职称怎么评?申报条件是什么?启程别

2023年湖北黄冈人社局初、中级职称怎么评&#xff1f;申报条件是什么&#xff1f;启程别 想要评过人社局的初、中级职称&#xff0c;首先要满足申报条件&#xff0c;其次是要准备好申报资料&#xff0c;最后等待申报时间提交资料&#xff0c;等待结果。湖北目前改外全面线上申报…

SAP从入门到放弃系列之BOM技术类型-派生BOM-Part5

文章导航目录 一、概述二、基本概念-BOM技术类型三、BOM技术类型详解3.1、BOM技术类型-简单BOM&多重BOM 3.2、BOM技术类型-派生BOM 四、测试示例&#xff1a;4.1、数据准备4.2、创建派生BOM4.3、调整BOM组&#xff0c;更新派生BOM 一、概述 本来想在介绍BOM组的时候写这个…

hbase协处理器编码实例

Observer协处理器通常在一个特定的事件&#xff08;诸如Get或Put&#xff09;之前或之后发生&#xff0c;相当于RDBMS中的触发器。Endpoint协处理器则类似于RDBMS中的存储过程&#xff0c;因为它可以让你在RegionServer上对数据执行自定义计算&#xff0c;而不是在客户端上执行…

MATLAB 之 对话框设计实例和菜单设计

这里写目录标题 一、对话框设计实例1. 数值转化2. 图形演示 二、菜单设计1. 建立用户菜单2. 菜单对象常用属性3. 快捷菜单 一、对话框设计实例 在上一篇博客当中&#xff0c;我们介绍了控件的基本操作&#xff0c;这是建立对话框的基础。下面我们举两个例子&#xff0c;用以说…

软件测试工程师最常用的Linux系统命令大全(汇总)

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 cd命令 这是一个…

最新导则下生态环评报告编制技术

根据生态环评内容庞杂、综合性强的特点&#xff0c;依据生态环评最新导则&#xff0c;将内容分为4大篇章(报告篇、制图篇、指数篇、综合篇)、 10大专题(生态环评报告编制、土地利用图的制作、植被类型及植被覆盖度图的制作、物种适宜生境分布图的制作、生物多样性测定、生物量…

开窗函数之聚合、取特定值、排名

一&#xff0c; 聚合开窗函数sum(score) over(partition by name ) 二&#xff0c;开窗函数之first_value&#xff0c;last_value&#xff0c;lead&#xff0c;lag 三&#xff0c;排名开窗函数ROW_NUMBER、DENSE_RANK、RANK 一&#xff0c;开窗函数的语法 开窗函数的语法为&am…

Pinia理解【Vue3】

什么是Pinia Pinia是Vue的专属的最新状态管理库&#xff0c;是Vuex状态管理工具的替代品 优势&#xff1a; 提供了更加简单的API (去掉了mutation)提供符合组合式风格的API(和Vue3新语法统一)去掉了 modules 的概念&#xff0c;每一个 store 都是一个独立的模块搭配 TypeScr…

RabbitMQ Exchange类型和工作模式介绍

RabbitMQ Exchange类型和工作模式介绍 一RabbitMQ Exchange类型1.1.Fanout1.2.Direct1.3.Topic1.4.Headers 二 RabbitMQ 工作模式介绍2.1.work工作模式(资源的竞争)2.2.publish/subscribe发布订阅(共享资源)2.3.routing路由模式应用--direct交换器 2.4.topic 主题模式(路由模式…

一键轻松造数据:通过Postman实现表单提交

一、原始需求的诞生 在测试的过程中&#xff0c;需要大量的表单。于是我选择了通过postman发送表单提交的接口来造数据。 如上图所示&#xff0c;表单提交接口所需的参数以及请求体中需模拟的IP地址。参数为 {{}} 的表示需要不同的实参&#xff0c;至于原因就不在这里赘述了。如…

618手机大战:各大品牌花式秀战报,但难掩冷淡行情

在手机出货量持续下行的态势下&#xff0c;各大手机厂商普遍对618这个年中大促寄予厚望&#xff0c;希望通过各种促销手段&#xff0c;扭转销售颓势。 比如&#xff0c;今年5月下旬&#xff0c;小米、荣耀、OPPO、vivo等厂商就已经开启了降价、分期免息等优惠活动&#xff0c;…