• 路由选择算法


    路由选择算法的第一种分类方式:按集中式分散式划分

    集中式路由选择算法:集中式路由选择算法(centralized routing algorithm)用完整的、全局性的网络知识计算出从源到目的地之间的最低开销路径。

    分散式路由选择算法:在分散式路由选择算法(decentralized routing algorithm)中,路由器以迭代、分布式的方式计算出最低开销路径。没有节点拥有关于所有网络链路开销的完整信息。相反,每个节点仅有与其直接相连链路的开销知识即可开始工作。

    第二种分类方式:按算法是静态还是动态分类

    静态路由选择算法:由选择算法(static routing algorithm)中,路由随时间的变化非常缓慢,通常是人工进行调整(如人为手工编辑一条链路开销)。

    动态路由选择算法:行调整(如人为手工编辑一条链路开销)。动态路由选择算法(dynamic routing algorithm)随着网络流量负载或拓扑发生变化而改变路由选择路径。一个动态算法可周期性地运行或直接响应拓扑或链路开销的变化而运行。

    第三种分类方式:按负载敏感还是负载迟钝划分

    负载敏感算法:负载敏感算法(load-sensitive algorithm)中,链路开销会动态地变化以反映出底层链路的当前拥塞水平。如果当前拥塞的一条链路与高开销相联系,则路由选择算法趋向于绕开该拥塞链路来选择路由。而早期的ARPAnet 路由选择算法就是负载敏感的。

    当今的因特网路由选择算法(如RIP、OSPF和BGP)都是负载迟钝的(load-insensitive),因为某条链路的开销不明确地反映其当前(或最近)的拥塞水平。

    距离向量算法(DV):特点是分布式,迭代,异步

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

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

    异步的,是因为它不要求所有节点相互之间步伐一致地操作。

    Bellman-Ford方程提出了将DV算法中发生的邻居到邻居通信的形式。

    dx(y)=min⁡v{c(x,v)+dv(y)}d_{x}(y)=\min _{v}\left\{c(x, v)+d_{v}(y)\right\} dx(y)=vmin{c(x,v)+dv(y)}

    OSPF(开放最短路优先)是AS(自治系统)内部的路由选择协议,BGP(边界网关协议)是ISP之间的路由选择协议。

    每条直接连接以及所有通过该连接发送的BGP报文,称为BGP连接(BGP connection)。此外,跨越两个AS的BGP连接称为外部BGP(eBGP)连接,而在相同AS中的两台路由器之间的 BGP会话称为内部 BGP(iBGP)连接。
    对于直接连接在不同AS中的网关路由器的每条链路而言,通常有一条eBGP连接。

    当路由器通过BGP连接通告前缀时,它在前缀中包括一些BGP属性(BGPattribute)。用BGP术语来说,前缀及其属性称为路由(route)。两个较为重要的属性是AS-PATHNEXT-HOP。AS-PATH属性包含了通告已经通过的AS的列表,为了生成AS-PATH的值,当一个前缀通过某AS时,该AS将其ASN加入AS-PATH中的现有列表。BGP路由器还使用AS-PATH属性来检测和防止通告环路;特别是,如果一台路由器在路径列表中看到包含了它自己的AS,它将拒绝该通告。

    NEXT-PATH属性具有敏感而重要的作用。NEXT-HOP是AS-PATH起始的路由器接口的IP地址。

    每条BGP路由包含3个组件∶NEXT-HOP;AS-PATH;目的前缀。在实践中,一条BGP路由还包括其他属性,眼下我们将暂且忽略它。注意到NEXT-HOP属性是不属于AS1的某路由器的IP地址;然而,包含该IP地址的子网直接连接到AS1。

    BGP的路由选择算法:热土豆路由选择

    使用热土豆路由选择,(从所有可能的路由中)选择的路由到开始该路由的NEXT-HOP路由器具有最小开销。

    当在转发表中增加AS向外前缀时,AS间路由选择协议(BGP)和AS内部路由选择协议(如OSPF)都要用到。

    Image

    热土豆路由选择依据的思想是∶对于路由器1b,尽可能快地将分组送出其AS(更明确地说,用可能的最低开销),而不担心其AS外部到目的地的余下部分的开销。就"热土豆路由选择"名称而言,分组被类比为烫手的热土豆。因为它烫手,你要尽可能快地将它传给另一个人(另一个AS)。热土豆路由选择因而是自私的算法,即它试图减小在它自己 AS中的开销,而忽略在其AS之外的端到端开销的其他部分。注意到使用热土豆路由选择,对于在相同AS中的两台路由器,可能对相同的前缀选择两条不同的AS路径。

    路由器选择算法:
    1). 路由被指派一个本地偏好值作为其属性之一。一条路由的本地偏好可能由该路由器设置或可能由在相同AS中的另一台路由器学习到。

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

    3). 从余下的路由中使用热土豆路由选择,即选择具有最靠近NEXT-HOP路由器的路由。

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

    路由选择策略:当某路由器选择到目的地的一条路由时,AS路由选择策略能够胜过所有其他考虑,例如最短AS路径或热土豆路由选择。在路由选择算法中,实际上首先根据本地偏好属性选择路由,本地偏好值由本地AS的策略所确定。

    SDN体系结构四个关键特征:

    • 基于流的转发

    • 数据平面与控制平面分离

    • 网络控制功能

    • 可编程的网络

    SDN控制平面大体分为两个部分:SDN控制器,SDN网络控制应用程序。

    SDN控制器的功能层次:

    • 通信层:SDN控制器和受控网络设备之间的通信。

    • 网络范围状态管理层

    • 对于网络控制应用程序层的接口。

    SDN控制器被认为是“逻辑上集中的”,即该控制器可以被外部视为一个单一,整体的服务。

    OpenFlow协议运行在SDN控制器和SDN控制的交换机或其他实现OpenFlow API设备之间,OpenFlow运行在TCP协议之上,使用6653默认端口号。

    ICMP:因特网控制报文协议。主机和路由器用来彼此沟通网络层信息,ICMP最典型的用途是差错报告,但不仅是通知差错。ICMP一般认为是IP一部分,但是ICMP是IP的有效载荷。ICMP报文有一个类型字段和一个编码字段,并且包含引起该ICMP报文首次生成的IP数据报的首部和前8个字节。

    ping程序发送一个ICMP类型8编码0的报文到指定主机。看到回显(echo)请求,目的主机发回一个类型0编码0的ICMP回显回答。

    Image

    Traceroute由ICMP报文实现。

    网络管理框架:

    • 管理服务器:运行在网络运营中心的集中式网络管理工作站上。是执行网络管理活动的地方。

    • 被管设备,每个被管设备中有几个被管对象。

    • 一个被管设备中的每个被管对象的关联信息被收集在管理信息库(MIB),MIB对象由SMI数据描述语言定义。

    • 每个被管设备下还有网络管理代理,是运行在被管设备中的一个进程,与管理服务器通信,对被管设备采取动作。

    • 网络管理协议:运行在管理服务器和被管设备之间,允许管理服务器查询被管设备的状态,并通过代理间接的采取动作。而代理能通过网络管理协议向管理服务器通知异常事件。

    简单网络管理协议(SNMP),是应用层协议,用于在管理服务器和代表管理服务器执行的代理之间传递网络管理控制和信息报文。SNMP最常使用的是请求响应模式,其中 SNMP管理服务器向SNMP代理发送一个请求,代理接收到该请求后,执行某些动作,然后对该请求发送一个回答。请求通常用于查询(检索)或修改(设置)与某被管设备关联的 MIB对象值。SNMP第二个常被使用的是代理向管理服务器发送的一种非请求报文,该报文称为陷阱报文(trap message)。陷阱报文用于通知管理服务器,一个异常情况导致MIB对象值改变。

    Image

    构建控制平面的两大方法:传统的每路由器控制和软件定义网络(SDN)控制。

    文章作者: Anvil Liu
    文章链接: https://www.anvilliu.com/2021/03/06/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C%E2%80%94%E2%80%94%E8%B7%AF%E7%94%B1%E9%80%89%E6%8B%A9%E7%AE%97%E6%B3%95/
    版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Anvil Liu
  • 相关阅读:
    微服务网关常用限流算法
    微服务网关zuul介绍
    Nginx实现微服务网关的简单介绍
    11.9-编写操作者
    11.5-编写程序
    11.3-学习操作者文档
    11.2-LV面向对象编程视频学习及周五与老师交流总结
    10.29-基于LabVIEW的分布式集群机器人控制系统
    10.27-运用操作者框架架设控制中心软件架构
    5.24-29离线解析问题
  • 原文地址:https://www.cnblogs.com/zy09/p/15885737.html
Copyright © 2020-2023  润新知