当前位置: 首页 > news >正文

淄博网站制作网络丰富wordpress广告产检

淄博网站制作网络丰富,wordpress广告产检,哪些网站权重高,网站开发 待遇怎么样控制平面作为一种网络范围的逻辑#xff0c;不仅控制沿着从源主机到目的主机的端到端路径间的路由器如何转发数据报#xff0c;而且控制网络层组件和服务如何配置和管理 传统上#xff0c;控制平面功能与数据平面的转发功能在一起实现#xff0c;在路由器中作为统一的整体…控制平面作为一种网络范围的逻辑不仅控制沿着从源主机到目的主机的端到端路径间的路由器如何转发数据报而且控制网络层组件和服务如何配置和管理 传统上控制平面功能与数据平面的转发功能在一起实现在路由器中作为统一的整体 5.1概述 在网络层数据平面中有转发表基于目的地转发的场景中和流表在通用转发的场景中是链接网络层的数据平面和控制平面的首要元素。这些表定义了一台路由器的本地数据平面转发行为 本章包括这些转发表和流表是如何计算、维护和安装的 有两种方法 ①每台路由器控制在每台路由器中运行一种路由选择算法的情况每台路由器中都包含转发和路由选择功能。每台路由器有一个路由选择组件用于与其他路由器中的路由选择组件通信以计算器转发表的值 ②逻辑集中式控制逻辑集中式控制机器计算并分发转发表以供每台路由器使用。通用的“匹配加转发”抽象允许执行传统的IP转发以及其他功能这些功能原本是在单独的中间盒中实现的。 该控制器通过一种定义良好的协议与每台路由器中的一个控制代理CA进行交互以配置和管理该路由器的转发表。CA一般具有最少的功能其任务是与控制器通信并且按照控制器的命令运行 每台路由器控制与逻辑集中式控制之间的关键差异CA既不能直接相互交互也不能主动参与计算转发表 5.2 路由选择算法 路由选择算法的目的从发送方到接收方的路径中选择一条通过路由器网络的最低开销路径 可以将路由选择问题用图来表示图GNE是一个N个节点和E条边的集合其中每条边是取自N的一对节点。在网络层路由选择环境中图中的节点表示路由器这是做出分组转发决定的点连接这些节点的边表示这些路由器之间的物理链路边上的数字就是这条边的权值表示物理链路的开销长度、速度等 在图中给定任何两个节点x和y在这两个节点之间可能有多路径每个路径都有相应的开销。这些路径中的一条或多条是最低开销路径least-cost path 如果一个图中所有的边具有相同的开销则最低开销路径也就是最短路径即在源和目的地之间有最少链路数量的路径 路由选择算法按集中式与分散式分类 ①集中式路由选择算法用完整的、全局性的网络制式计算出从源到目的地之间的最低开销路径。集中式算法具有关于连通性和链路开销方面的完整信息。具有全局状态信息的算法常被称作链路状态Link StateLS算法因为该算法必须i知道网络中每条链路的开销 ②分散式路由选择算法路由器以迭代、分布式的方式计算出最低开销路径。没有节点拥有关于所有网络链路开销的完整信息每个节点仅有与其直接相连链路的开销。 路由选择算法按动静态分类 ①静态路由选择算法路由随时间的变化非常缓慢通常是人工进行调整 ②动态路由选择算法随着网络流量负载或拓扑发生变化而改变路由选择路径。一个动态算法可周期性的运行或直接响应拓扑或随着链路开销的变化而运行。虽然可对网络的变化出现反应但是可能出现路由选择循环、路由震荡等问题 路由选择算法按负载敏感程度分类 ①负载敏感算法链路的开销会动态的变化以反映出底层链路的当前拥塞水平 ②负载迟钝算法链路的开销不明确地反应其当前的拥塞水平 5.2.1 链路状态路由选择算法 通过让每个节点向网络中的所有其他节点广播链路状态分组来完成其中每个链路状态分组包含它所连接的链路的标识和开销。实践中一般有链路状态广播算法来完成上述内容 下面所示的链路状态路由选择算法叫做迪杰斯特拉dijkstra算法 在图--单源最短路径章节中有详细实例分析与代码实现下面的例子作为一个简述 定义如下符号 ·Dv到本次迭代从源节点到目的节点v的最低开销路径的开销 ·pv从源到v沿着当前最低开销路径的前一个节点 ·N’节点子集如果从源到v的最低开销路径已经知道则将v放入N‘中  以上图为例如果两节点之间没有直接路径连接则开销为无限大 ①在初始化步骤从u到预期直接相邻的邻居vxw的当前已知最低开销路径分别初始化为2、1和5。到w的开销被设置为5这是从u到w的一跳链路开销 ②在第一次迭代中观察还未加入N’的节点并找出再签一次迭代结束时具有最低开销的节点。节点为x开销为1因此x被加入集合N‘。更新所有节点的D产生表格中步骤一的结果。到v的路径开销未改变从x到w的路径开销更新为更短的4pw更新为4 ③在第二次迭代中此时u到v和到y的开销都是2因此在N’中可以改变任意次序将vy加入。若先加入y节点则此时还未在N‘中的节点包括v、w、z更新它们的Dp ④以此类推 当LS算法终止时对于每个节点都知道从源节点到该节点的最低开销路径。因此对每个节点存储从源到目的地最低开销路径的下一跳节点 在第一次迭代中需要遍历所有的n个节点在第二次迭代中需要遍历n-1个节点以此类推在迭代中需要搜寻的节点总数未n(n1)/2因此最坏情况下迪杰斯特拉算法的时间复杂度为O(n^2)。如果采用堆的数据结构实现可以将时间复杂度缩短至对数时间 拥塞敏感的路由选择的振荡 在下面的例子中链路开销是非对称的即同一条链路上两个方向的开销不同 ①节点z产生发往w的的一个单元的流量节点x也产生发往w的一个单元的流量并且节点y也产生发往w的一个数量为e的流量 ②当LS算法再次运行时节点y确定顺时针到w的路径开销为1吗而逆时针到w的路径开销为1e。因此y到w的最低开销路径为顺时针。x到w的最低开销路径也是顺时针 ③当LS算法运行时xyz都检测到一条到w的逆时针方向的零开销路径因此流量都为逆时针方向 ④LS算法运行xyz将流量都引导至顺时针方向 对于上述有两种解决方法 第一种方案是强制链路开销不取决于所承载则流量但这样违背了路由选择避开拥塞链路的原理 第二种方案是保障并非所有的路由器都同时运行LS算法。路由器初始时以同一周期但是不同时刻执行算法算法执行的时机最终会在路由器上变成同步并保持。解决这种自同步问题的方法是让每台路由器发送链路通告的时间随机化 5.2.2 距离向量路由选择算法 距离向量算法是一个异步的、迭代的、自我终止的、分布式的算法 令是从节点x到节点y的最低开销路径的开销则该最低开销与著名的Bellman-Ford方程相关即  距离向量路由选择算法的基本思想如下 每个节点x以为开始对在N中的所有节点y估计从x到y的最低开销路径的开销 使用DV算法每个节点x维护下列路由选择信息 ·对于每个邻居v从x到直接相邻邻居v的开销为cxv ·节点x的距离向量即包含了x到N中所有目的地y的开销估计值 ·它的每个邻居的距离向量即对x的每个邻居v有 在该分布式、异步算法中每个节点不时地向它的每个邻居发射它的距离向量副本。当节点x从它的任何一个邻居v接收到一个新的距离向量它保存v的距离向量然后使用上面的Bellman-Ford方程更新它自己的距离向量如下 分布式DV算法中节点具有的唯一信息使它到直接相连邻居的链路开销和它从这些邻居接收到的信息 如图所示显示了DV算法的使用应用场合是该图顶部有三个节点的简单网络。算法以同步的方式显示其中所有的节点同时从邻居接收报文计算其新距离向量如果距离向量发生了变化则通知其邻居这里以同步的方式实现实际上异步可以在任意时刻出现节点计算与更新的产生/接收 最左侧一列标识各个路由器的初始路由选择表每个路由器仅知道自己与其他直接相连邻居的链路开销对其他路由器的信息并不知道因此初始化为无穷大 随后每个节点向它的两个邻居发送其距离向量在接收到该更新后每个节点重新计算他自己的距离向量下图为x的距离向量更新yz与其类似 中间一列显示了各个节点的新距离向量与从邻居接收到的距离向量。此时相较于初始路由选择表xz的路由选择表发生了改变。因此它们再次向直接相邻邻居发生更新的信息。由于y并未改变因此y并不发送更新信息。在接收到更新后这些节点重新计算他们的距离向量并更新路由选择表如第三列所示 此时无更新报文发送将不会出现进一步的路由选择表计算该算法进入静止状态 1.距离向量算法链路开销改变与链路故障 考虑两种链路开销改变的情况链路开销变大与链路开销变小 链路开销变小好消息传播快 如图所示从y到x的链路开销从4变成1。接下来考虑y与z到目的地x的变化 在t0时刻y检测到链路开销变化更新距离向量并通知其邻居z 在t1时刻z接收到y的更新报文并更新自己的距离表计算出从z到x的最低开销为2从5减少为2并向邻居y发送它更新的距离向量 在t2时刻y接收到z的更新报文y的最低开销未改变并不向z发送更新报文。算法进入静止状态 链路开销变大坏消息传播慢 如图所示从y到x的链路开销从4变成60。接下来考虑y与z到目的地x的变化 在链路开销变化之前    ①在t0时刻y检测到链路开销变化y重新计算到x的最低开销路径值为 此时从全局的视角来看这个最低开销路径是错误的。但是DV算法的特征就是节点并不知道全局信息此时就会产生路由选择环路也就是y选择通过z路由到达xz路由要通过y到达x。当分组到达y或z后会在两个节点间不间断的来回反复 此时y已经计算出到达x的最低开销路径为6因此他将在t1时刻发送更新报文给直接相邻邻居 ②在t1时刻z接受到y的更新报文即z更新它到x的最低开销为 此时z已经计算出到达x的最低开销路径为7因此它将在t2时刻发送更新报文给直接相邻邻居 ③在t2时刻y接收到z的更新报文……依此类推 该循环将持续44次迭代直到z最终计算出它通过y到达x的路径开销大于50为止。此时z的最低开销路径为直接从z到x而不途径y 假设x与y之间的链路开销为无穷大那么将进行无数次循环迭代变成无穷计数问题 2.距离向量算法增加毒性逆转 毒性逆转poisoned reverse如果一个节点z到达一个节点x途径邻居节点y则z将会通报该邻居节点到达目的地的距离为无限远 即如果z通过y到达目的地x则z传递给y的响应报文将会令即使z实际上的 毒性逆转并不能彻底解决无穷计数问题 无穷计数解决办法①设置最大跳转距离②防止选择环路每个路由器都记录所经过的的路由③水平分割不向某条路由对应的出接口通告该路由信息 3.LS与DV路由选择算法的比较 DV和LS算法采用互补的方法来解决路由选择计算问题。在DV算法中每个节点仅与它直接相连的邻居交谈但它为其邻居提供了从它自己到网络中的所有其他节点的最低开销估计。LS算法需要全局信息因此在每台路由器中实现时需要先经广播与所有其他节点通信但仅告诉它们与它直接相连链路的开销 以N为节点路由器的集合E是边链路的集合 ·报文复杂性·收敛速度·健壮性LS算法 LS算法要求知道网络中每条链路的开销因此需要发送O( |N| |E| )个报文每当有一个链路的开销发生改变都需要向所有节点发送新的链路开销 LS算法是一个要求O( |N| |E| )个报文的O( |N| ^2)算法当一台路由器发生故障、行为错乱或被蓄意破坏时。LS算法中路由器能够向其链接得链路广播不正确的开销每个节点仅计算自己的转发表自行处理收到的LS广播分组。路由计算在某种程度上是分离的提供了一定的健壮性DV算法DV算法要求在每次迭代时两个直接相邻邻居之间交换报文只有当链路开销改变影响与该链路相连节点最低开销路径发生变化时才传播以改变的链路开销DV算法收敛较慢且在收敛时会遇到路由选择环路与无穷计数问题DV算法下一个节点可向任意或所有目的节点通告其不正确的最低开销路径DV算法中一个不正确的节点计算值会扩散到整个网络 5.3 因特网中自治系统内部的路由选择OSPF 前面的研究中都把网络看作一个互联路由器的集合所有的路由器都执行相同的路由选择算法各个路由器实际上很难相互区分这带来了两个问题 问题一规模。随着路由器数量的增加设计路由选择信息的通信、计算和存储的开销极大。所有路由器之间广播连通性和链路开销更新的负担巨大在如此巨大的量级下距离向量DV算法永远无法收敛因此必须采取一定的措施减少大型网络路由计算的复杂性 问题二管理自治。因特网是ISP的网络每个ISP都有自己的路由器网络。ISP通常希望按自己的意愿运行路由器或对外部隐藏其网络的内部组织面貌。理想情况下一个组织应该能够按照自己的愿望运行和管理其网络还要能与外部网络连接 这两个问题可以通过将路由器组织进自治系统Autonomous SystemAS来解决其中每个AS有一组通常在相同管理控制下的路由器组成。一个自治系统由其全局唯一的AS号ASN来标识 在相同AS中的路由器都运行相同的路由选择算法并且有彼此的信息。在一个自治系统内运行的路由选择算法叫做自治系统内部路由器选择协议intra-autonomous system routing protocol 开放最短路优先OSPF OSPF路由选择及其关系密切的IS-IS协议都广泛用于AS内部路由选择 OSPF是一种链路状态协议它使用洪泛链路状态信息和Dijkstra最低开销路径算法。每台路由器在本地运行Dijkstra最短路径算法以确定一个以自身为根节点到所有子网的最短路径树 每条链路的开销是由网络管理员配置的。管理员可以使所有链路开销设为1因而实现了最少条数路由选择或者选择将链路权值用链路开销反比设置从而鼓励流量使用低带宽链路 OSPF中路由器向自治系统内所有其他路由器广播路由选择信息而不是仅仅向其相邻路由器广播。每当一条链路的状态发生变化时路由器就会广播链路状态信息。即使链路状态为发生变化它也要周期性的广播链路状态至少间隔30min一次 优点   ·安全能够鉴别OSPF路由器之间的交换。依靠鉴别只有受信任的路由器能够参与一个AS内的OSPF协议因此可以防止恶意入侵者将不正确的信息注入路由器表内。①如果使用简单的鉴别方式则每台路由器配置相同的口令。但一台路由器发送一个OSPF分组时将会以明文的方式包括口令这样并不是十分安全。②使用MD5鉴别基于配置在路由器上的共享秘密密钥。对每个OSPF分组路由器都会对该附加了秘密密钥的分组内容计算MD5散列值将该计算值与路由器携带的散列值比较从而严重分组真实性   ·多条相同开销的路径当到达某目的地的多条路径具有相同的开销时OSPF允许使用多条路径无须选择单一路径承载所有流量   ·对单播与多播路由选择的综合支持多播OSPFMOSPF提供对OSPF的简单扩展以提供多播路由选择MOSPF为现有的OSPF链路状态广播机制增加了一种新型的链路状态通告   ·支持在单个AS中的层次结构一个OSPF自治系统能够层次化的配置多个区域每个区域都运行自己的OSPF链路状态路由选择算法区域内的每台路由器都向该区域内的所有其他路由器广播其链路状态。每个区域内由一台或多台区域边界路由器负责为流向该区域以外的分组提供路由选择。 在AS中只有一个OSPF区域会被配置成主干区域。主干区域的主要作用是为该AS中其他区域之间的流量提供路由选择。主干总是包含本AS中的所有区域边界路由器并且可能包含一些非边界路由器 AS中区域间路由选择要求分组先路由至一个区域边界路由器通过区域内路由选择然后通过主干路由到达位于目的区域的边界路由器在到达最终目的地 5.4 ISP之间的OSPF路由选择BGP OSPF是一个AS内部路由选择协议。在相同AS内的源和目的地之间进行分组选路时分组遵循的路径完全由AS内路由选择协议所决定 当分组跨越多个AS进行路由时需要一个自治系统间路由选择协议inter-autonomous system routing protocol。由于AS间路由选择协议设计多个AS之间的协调所以AS通信必须运行相同的AS间路由选择协议。在因特网中所有的AS运行相同的AS间路由选择协议称为边界网关协议Broder Gateway ProtocolBGP BGP是一种分布式和异步的协议  5.4.1 BGP的作用 在BGP中分组并不是路由到一个特定的目的地址而是路由到CIDR化的前缀其中每个前缀标识一个子网或一个子网的集合。 在BGP中一个目的地可以采用138.16.68/22的形式对于这个例子来说包括1024个IP地址。因此一台路由器的转发表将会具有形式为xI的表项其中x是一个前缀如138.16.68/22I是该路由器接口之一的接口号 BGP为每台路由器提供一下功能 1从邻居AS获取前缀的可达信息。BGP允许每个子网向因特网的其余部分通告自己的存在。BGP确保因特网中的所有AS知道该子网。如果没有BGP则每个子网将是隔离的孤岛 2确定到该前缀的“最好的”路由。一台路由器可能知道两条或更多条到特定前缀的不同路由路由器将在本地运行一个BGP路由选择过程用于确定最好的路由 5.4.2 通告BGP路由信息 对于每个AS每台路由器要么是一个网关路由器gateway router要么是一个内部路由器internal router 。网关路由器是位于AS边缘的路由器它直接连接到在其他AS中的一台或多台路由器。内部路由器仅连接自己所在AS中的主机和路由器 以上图为例对图中所有的路由器通告对于前缀x的可达性信息。首先AS3向AS2发送一个BGP报文告知x位于AS3中将该报文表示为“AS3 x”。然后AS2向AS1发送一个BGP报文告知x存在并且可以通过AS2进入AS3从而到达x将该报文表示为“AS2 AS3 x”。以这种方式每个自治系统不仅知道x的存在还知道通向x的自治系统的路径 虽然通告BGP的报文能大致知道穿越路径但是对于实际发送报文而言是不准确 在BGP中每对路由器通过使用179端口的半永久TCP连接交换路由选择信息。每条直接连接并且所有通过该连接发送的BGP报文称为BGP连接。 跨越两个AS的BGP连接称为外部BGPeBGP连接在相同AS中的两台路由器之间的BGP会话称为内部BGPiBGP连接 在每个AS中的路由器之间有多条iBGP连接。iBGP之间是TCP连接也就意味着iBGP邻居采用的是逻辑连接的方式两个IBGP连接不一定存在实际的物理链路 5.4.3 确定最好的路由 从一个给定的路由器到达一个目的子网可能有多条路径因此需要在路径间进行选择并且相应的配置转发表 当路由器通过BGP连接通告前缀时它在前缀中包括一些BGP属性BGP attribute。前缀及其属性称为路由route。两个较重要的属性是AS-PATH和NEXT-HOP AS-PATH属性包含了已经通过的AS的列表当一个前缀通过某个AS该AS将其ASN加入AS-PATH中的现有列表。BGP路由器使用AS-PATH属性来检测和防止通告环路。如果一台路由器在路径列表中看到包含了自己的AS将拒绝该通告。 NEXT-HOP是AS_PATH其实路由器接口的IP地址 以上图为例子从AS1到子网x有两条路其中一条使用AS-PATH“AS2 AS3”另一条使用AS-PATH“AS3”。对于从AS1通过AS2到达x的路由“AS2 AS3 x”其属性NEXT-TOP是路由器2a左边接口的IP地址。对于从AS1绕过AS2到达x的路由“AS3 x”其NEXT-TOP属性是路由器3d最左边接口的IP地址 总的来说在这个例子中AS1中的每台路由器都知道了前缀x的两台BGP路由 路由器2a的最左侧接口的IP地址AS2 AS3x 路由器3d的最左侧接口的IP地址AS3x 在这里每条BGP路由包括三个组件NEXT-TOP、AS-PATH、目的前缀 1.热土豆路由选择 在热土豆路由选择中从所有可能的路由中选择的路由到开始该路由的NEXT-TOP路由器具有最小开销 简单来说热土豆路由选择中当一个分组到来时节点必须尽快脱手将其放入输出列最短的方向上排队而不管该方向通向何方 热土豆路由选择是自私的算法因为它只考虑自己在AS中的开销而忽略了在AS之外端到端开销的其他部分。在热土豆路由选择中对于在相同AS中的两台路由器可能对相同的前缀选择不同的AS路径 2.路由器选择算法 对于任何给定的目的地前缀进入BGP的路由选择算法的输入是某前缀的所有路由的集合 如果只有一条路由则选择该路由。如果到相同的前缀又两条或多条路由则顺序地调用下列消除规则直至剩余一条路由 1路由被指派一个本地偏好值作为其属性之一。一条路由的本地偏好可能由该路由器设置或者从在相同AS中的另一台路由器学到。本地偏好属性的值是一种策略决定取决于该AS的网络管理员 2在剩余的具有相同最高本地偏好值的路由中选择具有最短AS-PATH的路由。如果该规则是路由选择的唯一规则则BGP讲使用距离向量算法决定路径其中距离测量使用AS跳的跳数而不是路由器跳的跳数 3在剩余所有具有相同的本地偏好值和相同的AS-APTH长度的路由中使用热土豆路由选择即选择具有最靠近NEXT-HOP路由器的路由 4如果仍然剩余多条路由则该路由器使用BGP标识符来选择路由 举一个例子我们再次考虑图5-10中的路由器1b。前缀x有两条BGP路由一条通过AS2而另一条绕过AS2。如果它使用自己的热土豆路由选择则BCP将通过AS2向前缀x路由分组。但在上面的路由选择算法中在规则3之前应用了规则2导致BGP选择绕过AS2的那条路由因为该路由具有更短的AS-PATH。因此我们看到使用上述路由选择算法BGP不再是一种自私的算法即它先查找具有短AS路径的路由因而很可能减小端到端时延)。 5.4.4 IP任播 IP任播就是将一个IP广播到多个服务器上一个IP地址对应多个服务器听起来跟我们一个域名解析到多台服务器差不多 除了作为因特网AS间路由选择协议外BGP还常被用于实现IP任播该服务常用于DNS中。 存在以下情况①在许多分散的不同地理位置替换不同服务器上的相同内容②让每个用户从最靠近的服务器访问内容 一个CDN能够更换位于不同国家、不同服务器上的视频和其他对象。DNS系统能够在全世界的DNS服务器上复制DNS记录。当一个用户要访问该复制的内容可以将用户指向具有该复制内容的“最近的”服务器 在IP任播配置阶段CDN公司为多台服务器指派相同的IP地址并且在每台服务器使用标准的BGP来通告IP地址。当某台BGP路由器收到对于该IP地址的多个路由通告它将这些通告处理为对相同物理位置提供不同的路径。当配置其路由选择表时每台路由器间本地化地使用BGP路由选择算法来选择最好的路由路径 比如一个BGP路由离该路由器仅有一AS跳的距离并且所有其他BGP路由时两AS跳或更多跳则该BGP路由器将选择把分组路由到一AS跳远的位置 在初始BGP地址通告阶段后CDN能够进行其分发内容搞得主要任务 实践中IP任播广泛用于将DNS请求指向最近的根DNS服务器。当前根DNS服务器有13个IP地址但是具有多个DNS服务器也就是具有多个不同的物理地址。当一个DNS请求向这13个IP地址发送时使用IP任播将该请求路由到负责改地址的最近的DNS根服务器  5.4.5 路由选择策略 上图显示了6个互联网的自治系统A、B、C、W、X和Y。其中A、B、C、W、X和Y是AS而不是路由器。 假设自治系统W、X和Y是接入ISP而A、B和C是主干提供商网络。A、B和C直接向彼此发送流量并且向它们的客户网络提供全部的BGP信息。所有进入一个接入ISP网络的流量必定是以该网络为目的地所有离开一个结入ISP网络的流量必定源于该网络 显然W和Y是接入ISPX是一个多宿接入ISPmulti-homed stub network因为它是经由两个不同的提供商连接到网络的其余部分。X与W和Y一样自身一定实进入\离开X的所有流量的源\目的地。 这种桩网络的行为是如何实现和强制实现的呢X如何防止转发B与C之间的流量呢 通过控制BGP路由的通告方式可以容易的实现。X如果向B和C通告它自身没有通向任何其他目的地的路径那么X将起一个接入ISP作用。也就是说即使X知道通过XCY可以到达网络YX也不会将该路径通告给B。因此B也不会通过X转发目的为Y的流量 目前并没有强制主干ISP之间如何路由选择的官方标准。然而商业运行的ISP们都遵守的一个经验法则是任何穿越某ISP主干网的流量必须是其源或目的位于该ISP的某个客户网络中不然这些流量将会免费搭车通过该ISP的网络 为什么会有不同的AS间和AS内部路由选择协议 AS内与AS间的路由选择目标之间存在本质差别·策略。在AS之间策略问题起主导作用。一个给定的AS产生的流量不能穿过冷一个特定的AS。BGP承载了路径属性并提供路由选择信息的受控分布以便能进行路由选择决策。然而在一个AS内部一切都是管理员的控制下执行同一个BGP协议因此策略问题并不影响AS内部的选择路由 ·规模。如何扩展一个路由选择算法及其数据结构以处理大量网络或大量网络之间的路由选择能力是AS间路由选择的一个关键问题。在一个AS内部可扩展性并不是关注的焦点。如果单个ISP变得过大可以将其分为两个AS并且在两个新的AS之间执行AS间的路由选择 ·性能。AS间路由选择是面向策略的因此路由质量是次要关心问题一条更长或开销更高的路由也许由于满足某些策略条件而被采用即使有更短开销更少的不满足条件的路由存在在一个AS内部更关心一条路由的性能而不是策略的执行情况 5.4.6 拼装在一起在因特网中呈现 下面将举一个例子用于描述IP地址、DNS和BGP 假设有一个具有若干服务器的小型公司网络包括一台描述公司产品和服务的公告Web服务器一台员工获取电子邮件报文的电子邮箱服务器和一台DNS服务器。并且希望全世界都可以访问Web站点来获取产品和服务并且希望员工能向遍布世界的客户发送和接收电子邮件 为了实现上述功能首先需要获得因特网连接也就是与本地ISP签订合同并进行连接。公司需要一台网关路由器该路由器将与本地ISP的一台路由器相连。本地ISP将提供一个IP地址范围比如由256个地址组成的一个/24地址范围。当拥有了物理连接和IP地址范围之后需要在该地址范围内分配IP地址一个给Web服务器一个给电子邮件服务器一个给DNS服务器一个给网关路由器并且将IP地址分配给公司中的其他服务器和网络设备 其次需要与一个因特网注册机构签订合同来为公司获取一个域名。由于外接将联系公司的DNS服务器获取该服务器的IP地址所以还需要向注册机构提供DNS服务器的IP地址。此后注册公司将会在.com顶级域名服务器中为公司的DNS服务器设置一个表项域名和对应的IP地址。此后知道域名比如 baidu.com的用户就可以经过DNS系统获取公司的DNS服务器IP地址 为了使人们能够发现Web服务器的IP地址需要在DNS服务器中加入一个将Web服务器的主机名映射到IP地址的表项。并且为公司中其他的公共可用服务器设置类似的表项包括电子邮件服务器等。如果一个用户要浏览Web服务器则DNS系统将联系DNS服务器找到Web服务器的IP地址并将其返回给用户。从而用户可以与Web服务器创建一个直接的TCP连接 假设用户已经知道Web服务器的IP地址并且向该IP地址发送一个IP数据报。该数据报将通过互联网进行路由经历了在许多不同自治系统中的一系列路由器并最终到达公司的Web服务器。当任何一个路由器收到该数据报时将去它的转发表中寻找一个表项来确定转发该数据报的外出端口。因此每一台路由器都需要知道公司的/24前缀 一台路由器如何知道公司的前缀呢通过BGP获得该前缀。当公司与本地ISP签订合同并获得了分配的前缀时本地ISP将使用BGP向与其连接的ISP通告你的前缀从而使得能够将数据报适当的转发到正确的Web和电子邮件服务器 5.5 SDN控制平面 SDN指软件定义网络本节中包括控制分组在网络SDN使能设备中转发的网络范围逻辑以及这些设备和服务的配置与管理 网络的转发设备称为“分组交换机”能够根据网络层源\目的地址、链路层源\目的地址以及运输层、网络层和链路层中分组首部字段做出转发决定 SDN体系结构的关键特征 基于流的转发。SDN控制的交换机的分组转发工资能够基于运输层、网络层或链路层首部中任意数量的首部字段值进行。传统方法中IP数据报的转发仅依据数据报的目的IP地址进行。而SDN控制平面的工作是计算、管理和安装所有网络交换机中的流表项 数据平面与控制平面分离。数据平面由网络交换机组成交换机是相对简单的设备该设备在流表中执行“匹配加动作的规则”。控制平面由服务器以及决定和管理交换机流表的软件组成 网络控制功能位于数据平面交换机外部。控制平面自身由两个组件组成一个SDN控制器以及若干网络控制应用程序。控制器维护准确的网络状态信息为运行在控制平面中的网络控制应用程序提供这些信息应用程序同通过控制器提供的方法监视、编程和控制下面的网络设备 可编程的网络。通过运行在控制平面中的网络控制应用程序该网络是可编程的。应用程序使用了由SDN控制器提供的API来定义和控制网络设备中的数据平面 5.5.1 SDN控制平面SDN控制器和SDN网络控制应用程序 SDN控制平面分为两个部分SDN控制器和SDN网络控制应用程序 SDN控制器的功能包括三个层次 通信层SDN控制器和受控网络设备之间的通信。SDN控制器控制设备的运行需要一个协议来传送控制器与这些设备之间的信息。并且设备需要能够向控制器传递本地观察到的事件比如报文指示链路的激活或停用设备加入网络等OpenFlow是一种提供这种通信功能的特定协议 网络范围状态管理层。SDN控制平面做出控制决定需要依靠控制器对有关网络的主机、链路、交换机和其他SDN控制设备的状态信息。控制平面的最终目标是决定各个设备上的流表控制器可以维护这些流表的拷贝 对于网络控制应用程序层的接口控制器通过接口与网络控制层应用交互。该API接口允许网络控制应用程序在管理状态层之间读\写网络状态和流表。当状态改变时应用程序能够注册进行通告 5.5.2 OpenFlow协议 OpenFlow是一种网络通信协议应用于SDN架构中控制器和转发器之间的通信。SDN的一个核心思想就是“转发、控制分离”要实现转、控分离就需要在控制器与转发器之间建立一个通信接口标准允许控制器直接访问和控制转发器的转发平面 OpenFlow引入了“流表”的概念转发器通过流表来指导数据包的转发。控制器正是通过OpenFlow提供的接口在转发器上部署相应的流表从而实现对转发平面的控制。 OpenFlow协议运行在SDN控制器和SDN控制的交换机或其他实现OpenFlow API设备之间。OpenFlow协议运行在TCP之上使用6653的默认端口号 从控制器到受控交换机流动的重要报文包括 配置。该报文允许控制器查询并设置交换机的配置参数 修改状态。该报文有控制器所使用以增加/删除或修改交换机流表中的表项并且设置交换机端口特性 读状态。该报文被控制器用于从交换机的流表和端口手机统计数据和计数器值 发送分组。该报文被控制器用于在受控交换器的特定端口发送一个特定报文 从受控交换机到控制器流动的重要报文包括 流删除。该报文通知控制器已经删除一个流表项例如由于超时或作为收到“修改状态”报文的结果 端口状态。交换机通过该报文项控制器通知端口状态的变化 分组入。一个分组到达交换机端口并且不能与任何流表项匹配那 么这个分组将被发送给控制器进行额外处理匹配的分组也被发送给控制器作为 匹配时所采取的一个动作 “分组入“报文被用于将分组发送给控制器 5.5.3 数据平面和控制平面交互的例子 下图中的的每台路由器中都执行Dijkstra算法并且在所有网络路由器中洪泛链路状态更新 假设 1Dijkstra算法作为一个单独的程序来执行位于分组交换机的外部 2分组交换机向SDN控制器发送链路更新并且交换机之间不互相发送 3假设交换机中s1和s2之间的链路断开 ①交换机s1由于与s2之间的链路故障使用OpenFlow“端口状态”报文向SDN控制器通报该链路状态的更新 ②SDN控制器接收到s1的链路状态更新的OpenFlow报文并且通告链路状态管理器有管理器更新链路状态库 ③实现Dijkstra链路状态路由选择的网络控制应用程序在之前进行了注册当链路状态更新时将会得到通告。引用程序接受该链路状态更新的通告 ④链路状态路由选择应用程序与链路状态管理器相互作用得到更新的链路状态。同时参考状态管理层中的其他组件计算新的最低开销路径 ⑤链路状态路由选择应用与流表管理器交互流表管理器决定更新后的流表内容 ⑥流表管理器使用OpenFlow协议受影响交换机s1、s2和s4的流表项其中s1此时将通过s4向s2发送报文s4此时也必须转发来自s1且目的地为s2的分组 ​ 通过上面这个例子可以得出使用SDN的服务器能够更容易的将最低开销路径的路由选择转变为更加偏向定制的路由选择。由于控制器可以随意改变流表所以可以实现任何形式的转发并且只通过改变它的应用控制程序 这与传统的情况不同传统情况必须改变所有路由器中的软件而路由器是由不同的厂商提供给ISP的 5.5.4 SDN的过去和未来 在SDN早期采用单一的SDN协议和单一的SDN控制器。此后SDN控制器的数量得到了很大的增长其中有些SDN控制器是公司特有和专用的 OpenDaylight控制器 ​ ODL控制器组件的主要部分与前文中的结构完全对应。网络服务应用程序用于决定数据平面转发和其他服务如何在交换机中完成。 与之前规范的控制器不同ODL控制器具有两个接口通过这两个接口应用程序可以与原生的控制器服务通信以及彼此之间进互相通信、 外部应用程序使用REST请求-响应API与控制器模块通信通信运行在HTTP上 内部应用程序经过服务抽象层SAL互相通信 ODL的基本网络服务功能是该控制器的核心决定网络范围状态管理能力。SAL是控制器的神经中枢允许控制器组件和应用程序互相调用服务并且记录它们产生的事件。它也在通信层次对特定的底层通信协议提供了统一的抽象接口包括OpenFlow和SNMP简单网络管理协议OVSDB是用于管理数据中心交换的协议而数据中心交换是SDN基数的一个重要应用领域 ONOS控制器 ONOS控制器中有三个层次 1北向抽象和协议。ONOS的一个独有特征框架是允许应用程序请求高层服务而不必知道该服务的执行细节。以同步或异步的方式通过北向API向网络控制的应用程序提供状态信息 2分布式核。ONOS的分布式核中维护了网络的链路、主机和设备的状态。ONOS被部署为在一系列互联的服务器上的一种服务每台服务器都运行着ONOS软件的相同副本增加服务器的数量就会增加服务能力。ONOS核提供了在实例之间服务复制和协同的机制这种机制为上层应用程序和下层网络设备提供了逻辑上几种的核服务抽象 3南向抽象和协议。南向抽象屏蔽了底层主机、链路、交换机和协议的异构性允许分布式核对设备核协议不知情 5.6 ICMP因特网控制报文协议 因特网控制报文协议ICMPInternet Control Message Protocol是一个差错报告机制是TCP/IP协议簇中的一个重要子协议通常被IP层或更高层协议TCP或UDP使用主要用于在主机和路由器之间传递控制消息报告主机是否可达、路由是否可用等。 ICMP通常被认为是IP的一部分但从体系结构上件它位于IP之上因为ICMP报文时承载在IP分组之中的 为什么需要ICMP 在数据传输的过程中IP提供尽力而为的服务指为了把数据包发送到目的地址尽最大努力。它并不对目的主机是否收到数据包进行验证无法进行流量控制和差错控制。因此在数据包传输过程中产生各种错误在所难免 为了更有效地转发IP数据包和提高数据包交付成功的机会ICMP应运而生。使用ICMP当网络中数据包传输出现问题时主机或设备就会向上层协议报告差错情况和提供有关异常情况的报告使得上层协议能够通过自己的差错控制程序来判断通信是否正确以进行流量控制和差错控制从而保证服务质量 ICMP报文有一个类型字段和一个编码字段并且包含引起该ICMP报文首次生成的IP数据报的首部和的前8个字节。如下图所示可以看出ICMP实际上并不仅是用于差错报告 ICMP报文中的源抑制报文起初目的是执行拥塞控制即使得拥塞的路由器向一台主机发送一个ICMP报文强制该主机减少发送速率。但由于TCP在运输层具有自己的拥塞控制机制所以不需要利用网络层中的反馈信息也就不需要使用ICMP的源抑制报文 5.6.1 ICMP工作方式 当数据包处理过程出现差错时ICMP向数据包的源端设备报告这个差错它既不会纠正这个差错也不会通知中间的网络设备。因为ICMP报文被封装在IP数据包内部作为IP数据包的数据部分通过互联网传递。IP数据包中的字段包含源端和最终的目的端并没有记录报文在网络传递中的全部路径除非IP数据包中设置了路由记录选项。因此当设备检测到差错时它无法通知中间的网络设备只能向源端发送差错报告 源端在收到差错报告后它虽然不能判断差错是由中间哪个网络设备所引起的但是却可以根据ICMP报文确定发生错误的类型并确定如何才能更好地重发传递失败的数据包 ICMP常被用于ping程序和Traceroute程序。在网络管理和监测中网络质量分析NQA计数更加充分应用了ICMP ·ping程序。最常见的用于检测IPv4和IPv6网络设备是否可达的调试手段使用ICMP的echo回显信息来确定远程设备是否可达、与远程主机通信的来回延迟、报文的丢失情况 ·Traceroute程序。主要用于查看数据报从源端到目的端的路径信息。从而检查网络连接是否可用。当网络出现故障时可以用该命令定位故障点 5.7 网络管理和SNMP 网络是由许多硬件和软件部件组成的即包括构成网络的物理部件的链路、交换机、路由器、主机和其他设备也包括控制和协调这些设备的许多协议 什么是网络管理 网络管理包括了硬件、软件和人类元素的设置、综合和协调用以监视、测试、轮询、配置、分析、评价和控制网络及网元资源用合理的成本满足实时性、运营性能和服务质量的要求 5.7.1 网络管理框架 管理服务器managing server是一个应用程序通常有人的参与并运行在网络运营中心NOC的集中式网络管理工作站上。管理服务器是执行网络管理活动的地方控制网络管理信息的收集、处理、分析和显示。在管理服务器中进行控制网络行为的动作人类网络管理员与网络设备打交道 被管设备managed device是网络装备的一部分位于被管理的网络中。被管设备可以是一台主机、路由器、交换机、中间盒、调制解调器或其他联网设备。在一个被管设备中有几个被管对象这些被管对象是被管设备中硬件的实际部分比如网卡只是主机中的一个组件和用于这些硬件及软件组件的配置参数 管理信息库Management Information BaseMIB用于收集一个被管设备中的每个被管对象的关联信息。定义被管理对象的一系列属性包括对象的名字、访问权限、数据类型。MIB指明了网络元素所维护的变量即能够被NMS查询和设置的信息给出了一个网络中所有可能的被管理对象的集合的数据结构 网络管理代理network management agent是运行在被管设备中的一个进程用于与管理服务器通信在管理服务器的命令和控制下在被管设备中采取本地操作 网络管理协议network management protocol运行在管理服务器和被管设备之间允许管理服务器查询被管设备的状态并通过代理间接的在设备上执行操作。代理能够通过网络管理协议向管理服务器通知异常事件。网络管理协议并不能管理网络但它为网络管理员提供了管理网络的能力 5.7.2 简单网络管理协议 网络管理协议Simple Network Management Protocol版本2SNMPv2是一个应用层协议用于在管理服务器和代表管理服务器执行的代理之间传递网络管理协议和信息报文 SNMP协议分为三个版本SNMPv1、SNMPv2c和SNMPv3。 SNMPv1是SNMP协议的最初版本提供最小限度的网络管理功能。SNMPv1基于团体名认证安全性较差且返回报文的错误码也较少。SNMPv2c也采用团体名认证。在SNMPv1版本的基础上引入了GetBulk和Inform操作支持更多的标准错误码信息支持更多的数据类型Counter64、Counter32。SNMPv3主要在安全性方面进行了增强提供了基于USMUser Security Module的认证加密和基于VACMView-based Access Control Model的访问控制。SNMPv3版本支持的操作和SNMPv2c版本支持的操作一样 SNMP最常使用的是请求响应模式其中SNMP管理服务器向SNMP代理发送一个请求代理接收请求后执行操作并对该请求发送一个响应。请求通常用于查询或修改与某被管设备关联的MIB对象值 SNMP第二被使用的是代理向管理服务器发送的一种非请求报文该报文称为陷阱报文trap message。陷阱报文用于通知管理服务器一个异常情况已经导致了MIB对象值得改变 上图所示SNMPv2定义得7种类型的报文这些报文一般称为协议数据单元PDU •GetReques、GetNextReques、GetBulkRequest PDU 都是管理服务器向代理发送的 以请求位于该代理所在的被管设备中的一个或多个 MIB 对象值。其值被请求的 MIB 对象的对象标识符定义在该 PDU 的变量绑定部分。GetRequest、GetNextRequest和GetBulkRequest的差异在于它们的数据请求粒度。GetRequest 能够请求MIB值的任意集合多个GetNextRequest 能用于顺序地读取 MID对象的列表或表格GetBulkRequest 允许读取大块数据能够避免因发送多个 GetRequest或 GetNextRequest 报文可能导致的额外开销。在所有的三种情况下代理用包括该对象标识符和它们相关值的 Response PDU 行响应 • 管理服务器使用 SetRequest PDU 来设置位于被管设备中的一个或多个MIB对象的值。代理用带有“noError”差错状态的 Response PDU 进行应答以证实该值的确已被设置 • 管理服务器使用 lnformRequest PDU 来通知另 一个 MIB 信息管理服务器后者对于接收服务器是远程的 • Response PDU 通常从被管设备发送给管理服务器以响应来自该服务器的请求报文返回所请求的信
http://www.tj-hxxt.cn/news/134749.html

相关文章:

  • 网站 加域名三亚凤凰镇网站建设兼职招聘网
  • 网站怎么做seo_苏州书生商友专业做网站
  • 网页游戏网站2345wordpress 新闻资讯
  • 体育用品网站模板引擎搜索网站
  • 对于网站建设的意见和建议襄阳网站建设xytzg
  • 专业做京东网站吗视频网站建设技术方案书
  • 深圳 高端网站建设宝安百度关键词首页排名
  • 网站建设项目费用报价网站如何做网站名称
  • 内蒙古城乡建设厅网站资质公告丹东东港
  • 北京专业的网站建设榆林城乡建设规划官方网站
  • 电子商务网站建设程序应用题做网站排名多少钱
  • 常州做的网站的公司广州企业招聘
  • 买空间的网站网络推广方案的概念
  • 上海建站模板网站福田服务商app软件安装
  • 威海做网站的公司哪家好长沙县住房和城乡建设局网站
  • 西安旅游优化设计六年级下册数学答案
  • 西安十大网站制作公司搜集关键词的网站
  • 用python做网站优点wordpress+资源站模板
  • 重庆网站APP建设部网站官网四库一平台
  • 网站建设属于软件开发怎样做一个公司网站
  • 山东济宁做网站的公司有哪些注册集团公司需要什么条件?
  • 建行门户网站cpanel wordpress
  • 互联科技 行业网站上海建设工程管理网站
  • 建设工程专注在哪个网站wordpress 页面 模板
  • 交流做病理切片的网站来宾北京网站建设
  • 有pc网站 移动网站怎么做wordpress 推荐 配置
  • 企业网站建设源码深圳市光明区住房和建设局网站
  • 学做网站最好的网站用c做网站
  • 甘肃省第九建设集团网站专业建设工作计划
  • 网站推广怎么样做对网站建设的问题