(1)集中LS(链路状态算法、OSPF)与分散(迭代、DV距离向量)
(2)负载敏感与迟钝
(3)动态与静态
由上分类可见,需要根据不同应用场景选择使用,所以引出AS自治系统的概念。
自治系统内部路由选择协议:OSPF
自治系统间路由选择协议:在因特网中,所有AS运行相同的自治系统外部路由选择协议即BGP
路由聚合(也叫汇总)是让路由选择协议能够用一个地址通告众多网络,旨在缩小路由器中路由选择表的规模
(b)最长匹配
(c)BGP就是TCP
实际中采用分层次的路由选择协议
内部网关协议IGP:OSPF或者RIP
外部网关协议EGP:BGP
重点记忆
OSPF协议是集中式路由算法的一个例子,BGP是分布式
OSPF适合于在大型的、动态的互连网上使用,而RIP适合于在小型的、静态的互连网上使用。
路由选择中一般采用的路由算法有_____非自适应算法/自适应算法______。(距离矢量路由选择算法/铁路状态路由选择算法)
RIP 使用 UDP ,OSPF 使用 IP ,而 BGP 使用 TCP 。这样做有何优点?为什么 RIP 周期性地和临站交换路由器由信息而 BGP 却不这样做?
RIP 只和邻站交换信息,使用 UDP 无可靠保障,但开销小,可以满足 RIP 要求;
OSPF 使用可靠的洪泛法,直接使用 IP,灵活、开销小;
BGP 需要交换整个路由表和更新信息,TCP 提供可靠交付以减少带宽消耗;
RIP 使用不保证可靠交付的 UDP,因此必须不断地(周期性地)和邻站交换信息才能使路
由信息及时得到更新。但 BGP 使用保证可靠交付的 TCP 因此不需要这样做。
静态路由选择算法也叫做非自适应路由选择算法,其特点是简单和开销较小,但不能及时适应网络状态的变化
全局性:OSPF
分散性:RIP
好消息快,坏消息慢
不要把从一个邻居学习到的路由再发送回该邻居,这个是距离失量路由的算法决定的。一定要开,要不然就会形成环路。
BGP还可用于使用IP任播来实现将访问引向最近的CDN内容分发网络Content Delivery Network
多个CDN服务器采用同一个IP地址
ICMP协议数据单元封装在 IP数据报 中发送。
基于每路由算法在每个路由器中运行;转发和路由功能在每个路由器中都受到约束。 每个路由器都有一个路由组件,该组件与其他路由器中的路由组件通信,以计算其转发表的值。 在这种情况下,我们说网络控制和数据平面是单独实现的,因为每个路由器作为一个独立的实体工作,实现自己的控制和数据平面。
逻辑集中控制是指逻辑中心路由控制器计算和分配每个路由器使用的转发表,而每个路由器不计算其转发表,每个路由器控制不同。 在逻辑集中控制的情况下,数据平面和控制平面在单独的设备中实现;控制平面在中央服务器或多个服务器中实现,数据平面在每个路由器中实现。
集中式路由算法通过使用关于网络的完整的全局知识来计算源和目的地之间的最小成本路径。 该算法需要对所有节点之间的连通性和所有链路的成本有完整的了解。 实际计算可以在一个站点运行,也可以在每个路由器的路由组件中复制。
OSPF协议是集中式路由算法的一个例子
分布式路由算法通过路由器以迭代、分布式的方式计算租赁成本路径。 有了分散算法,没有一个节点拥有所有网络链路成本的完整信息。 每个节点开始时只了解自己的直接附加链接的成本,然后通过与相邻节点进行计算和信息交换的迭代过程,一个节点逐渐计算到目的地或一组目的地的最小成本路径。
BGP是分布式路由算法的一个例子。
链路状态算法(OSPF协议):使用关于网络的完整的全局知识计算源和目的地之间的最小成本路径。
距离矢量路由:以迭代、分布式的方式计算最小成本路径。 节点只知道它应该转发数据包的邻居,以便沿着最小成本的路径到达给定的目的地,以及该路径从自己到目的地的成本。
即前后路径代价发送变化之后,被知道的时间
数到无穷问题是指距离矢量路由问题。 该问题意味着当链路成本增加时,距离矢量路由算法需要很长时间才能收敛。 例如,考虑由三个节点x、y和z组成的网络。 假设链接成本最初是c(x,y)=4,c(x,z)=50,c(y,z)=1。 距离向量路由算法的结果表明,z到x的路径是z(y(x,代价是5(=41)。 当链路(x,y)的成本从4增加到60时,需要44次迭代运行节点z的距离向量路由算法,才能认识到它对x的新的最小成本路径是通过它与x的直接链路,因此y也将实现它对x的最小成本路径是通过z。
不。 每个AS具有在AS内路由的管理自主权。
AS自治系统
协议方面:在AS中,协议占主导地位。来自给定AS的流量不能通过另一个特定AS。 同样,给定的AS可能希望控制它在其他AS之间携带的过境交通。
规模方面:路由算法及其数据结构对处理大量网络的路由的能力是AS间路由的一个关键问题。 AS不太注重可伸缩性,如果单个管理域变得太大,则始终可以将其划分为两个AS并在两个新的AS之间执行AS间路由。
性能方面:由于AS间路由是以协议为导向的,因此所使用的路由的质量(例如性能)往往是次要的问题(即满足某些协议标准的较长或更昂贵的路由很可能被接管到较短但不符合该标准的路由上)。实际在AS中,甚至没有与路线相关的成本概念(除了AS跳数。 然而,在单个AS中,这种策略关注的重要性较低,允许路由更多地关注在路由上实现的性能水平。
错
使用OSPF,路由器将其链路状态信息广播到它所属的自治系统中的所有其他路由器,而不仅仅是它的相邻路由器。 这是因为对于OSPF,每个路由器需要构造一个完整的整个AS的拓扑图,然后本地运行Dijkstra的最短路径算法,以确定其到同一AS中所有其他节点的最小成本路径。
在OSPF自治系统中的一个区域是指一组路由器,其中每个路由器将其链路状态广播到同一组中的所有其他路由器。 一个OSPF AS可以分层配置成多个区域,每个区域运行自己的OSPF链路状态路由算法。 在每个区域内,一个或多个区域边界路由器负责在区域外路由数据包。 由于可伸缩性的原因,引入了区域的概念,即我们希望为大规模的OSPFAS构建分层路由,而区域是分层路由中的一个重要构建块。
子网是较大网络的一部分;子网不包含路由器;其边界由路由器和主机接口定义。
前缀是CDIR化地址的网络部分;它以.d/x a.b.c形式编写;前缀涵盖一个或多个子网。
在BGP术语中,前缀及其属性是BGP路由(或简单的路由)。
路由器使用AS-PATH属性来检测和防止循环广告;它们还使用它在多个路径中选择到同一个前缀。
NEXT-HOP属性指示第一个路由器的IP地址,该IP地址沿广告路径(在接收广告的AS之外)指向给定的前缀。 在配置其转发表时,路由器使用NEXT-HOP属性。
一级ISP可能不能在另两个一级ISP之间运输过境运输,如A和C,B与之有窥视协议。 为了实施这一政策,不会向通过C的A路线做广播;也不会向通过A的C路线做广播。
错
一个BGP路由器可以选择不将自己的标识添加到接收到的路径中,然后将该新路径发送给它的所有邻居,因为BGP是一种基于协议的路由协议。 这可能发生在以下场景中。 接收到的路径的目的地是其他一些AS,而不是BGP路由器的AS,BGP路由器不想作为传输路由器工作。
SDN控制器是作为网络的一种操作系统(OS)。控制器不控制网络硬件而是作为软件运行,这样有利于网络自动化管理。基于软件的网络控制使得集成业务申请和网络更容易。SDN控制器是软件定义网络(SDN)中的应用程序,负责流量控制以确保智能网络。SDN控制器是基于如OpenFlow等协议的,允许服务器告诉交换机向哪里发送数据包。
通信层负责通过OpenFlow等协议在SDN控制器和那些受控网络设备之间进行通信。 通过该层,SDN控制器控制启用SDN的远程交换机、主机或其他设备的操作,并且设备将本地观察到的事件(例如,指示链路故障的消息)通信到控制器。
网络范围的状态管理层提供有关网络主机、链路、交换机和其他SDN控制设备的最新信息。 控制器还维护各种受控设备的流表的副本。
网络控制应用层代表SDN控制平面的大脑。 该层的应用程序使用SDN控制器提供的API来指定和控制网络设备中的数据平面。 例如,路由网络控制应用程序可以确定源和目的地之间的端端路径。 另一个网络应用程序可能执行访问控制。
我将在SDN的网络控制应用层实现一个新的路由协议,因为这是路由协议确定源和目的地之间端到端路径的层。
下面是从控制器到受控设备的SDN控制器跨越南向API的消息类型列表, 这些消息的接收方是受控的分组交换机。
配置:此消息允许控制器查询和设置交换机的配置参数。
修改状态: 控制器使用此消息添加/删除或修改交换机流表中的条目,并设置交换机端口属性。
读状态: 控制器使用此消息从交换机的流表和端口收集统计数据和计数值。
发送包:控制器使用此消息从受控交换机的指定端口发送特定数据包。
还有一些消息,网络控制应用程序(作为发送器)通过北向API发送给控制器,例如,在控制器的状态管理层中读/写网络状态和流表的消息。
从受控设备到控制器的两种类型的消息:
流删除消息: 它的目的是通知控制器流表条目已被删除,例如通过超时或由于接收到的修改状态消息。
端口状态消息: 其目的是通知控制器端口状态的变化。
从控制器到受控设备的两种类型的消息:
修改状态: 目的是添加/删除或修改交换机流表中的条目,并设置交换机端口属性。
读状态: 目的是收集统计数据和计数器值,从交换机的流表和端口。
服务抽象层允许内部网络服务应用程序相互通信。 它允许控制器组件和应用程序相互调用对方的服务并订阅它们生成的事件。 该层还为通信层中的特定底层通信协议提供了统一的抽象接口,包括OpenFlow和SNMP。
ICMP允许主机或路由报告差错情况和提供有关异常情况。ICMP是因特网的标准协议,是IP层的协议(ICMP报文作为IP层数据报的数据,加上数据报的首部,组成数据报发送出去)。通常ICMP报文被IP层或更高层协议(TCP或UDP)使用。一些ICMP报文把差错报文返回给用户进程。
ICMP报文的种类有两种,即ICMP差错报告报文(返回)和ICMP询问报文(发起)。
P273
Traceroute:跟踪一台主机到任意主机之间的路由,发送一系列普通IP数据报
接收到【目的主机】目标端口不可达ICMP消息(类型3代码3),【途径路由器】ICMP警告消息(类型11代码0)
简单网络管理协议(SNMP) 是专门设计用于在 IP 网络管理网络节点的一种应用层标准协议。管理服务器和代表管理服务器执行的代理之间,传递网络管理控制与消息报文
管理服务器是一个应用程序,通常在循环中有一个人,在网络操作中心的集中式网络管理站中运行。 它控制网络管理信息的收集、处理、分析和/或显示。 操作在管理服务器中启动,以控制网络行为,网络管理员使用管理服务器与网络设备交互。
托管设备是驻留在托管网络上的网络设备(包括其软件。 托管设备可能是主机、路由器、交换机、中间盒、调制解调器、温度计或其他网络连接设备。
网络管理代理是在托管设备中运行的进程,该进程与管理服务器通信,在管理服务器的命令和控制下在托管设备上采取本地操作。
**管理信息库(MIB)**收集托管网络中与那些托管对象相关的信息。 MIB对象可能是一个计数器,例如由于IP数据报头中的错误而丢弃在路由器上的IP数据报数,或者在主机上接收到的UDP段数,或者状态信息,例如特定设备是否正常工作。
上述组件+网络管理协议SNMP组成了网络管理框架
Get Request是从管理服务器发送给代理的消息,请求代理管理设备上一个或多个MIB对象的值。
Set Request是管理服务器用来设置托管设备中一个或多个MIB对象的值的消息。
SNMP陷阱消息是作为对发生在托管设备上的事件的响应而生成的(异步产生),该设备的管理服务器需要通知该事件。 它用于通知管理服务器异常情况(例如,链接接口向上或向下),导致MIB对象值的更改。
Problem 1
y-x-u, y-x-v-u, y-x-w-u, y-x-w-v-u,
y-w-u, y-w-v-u, y-w-x-u, y-w-x-v-u, y-w-v-x-u,
y-z-w-u, y-z-w-v-u, y-z-w-x-u, y-z-w-x-v-u, y-z-w-v-x-u,
Problem 2
x to z:
x-y-z, x-y-w-z,
x-w-z, x-w-y-z,
x-v-w-z, x-v-w-y-z,
x-u-w-z, x-u-w-y-z,
x-u-v-w-z, x-u-v-w-y-z
z to u:
z-w-u,
z-w-v-u, z-w-x-u, z-w-v-x-u, z-w-x-v-u, z-w-y-x-u, z-w-y-x-v-u,
z-y-x-u, z-y-x-v-u, z-y-x-w-u, z-y-x-w-y-u, z-y-x-v-w-u,
z-y-w-v-u, z-y-w-x-u, z-y-w-v-x-u, z-y-w-x-v-u, z-y-w-y-x-u, z-y-w-y-x-v-u
z to w:
z-w, z-y-w, z-y-x-w, z-y-x-v-w, z-y-x-u-w, z-y-x-u-v-w, z-y-x-v-u-w
计算最短路径
(1)列空表,结点本身不出现在列名,第一行写出邻居节点的情况,
(2)将上一行最短的结点纳入本行的N(结点子集),下一行视作N的最新结点的邻居节点情况,来判断是否更新表格(计算时将上一行结点填入的最短视作一个整体)。
这里出现选择u、w谁先纳入的问题,其实不影响,你看后三行表格就没有更新过。
分布、迭代、异步
A具有邻居节点B、C
首先写出A的初识表项(只知道邻居的距离)
得知B、C的初识表项,B的表项加上距离AB,C同理加AC,比较得出最小值更新A的表项。
相应更新B、C
在此发送B、C给A,做更新
持续至无变化
P251
整个过程就是邻居节点不断相互接受与发送自己的更新变化,计算新的距离向量。()
A、B为邻居节点,当A->C距离表项变化,就发送给B重新计算B->C的最短距离
我们假设算法同步运行(即在一步中,所有节点同时计算它们的距离表,然后交换表)。 在每次迭代中,节点与其邻居交换距离表。 因此,如果您是节点A,并且您的邻居是B,那么B的所有邻居(它们都将是您的一到两个跳)都将知道在一次迭代之后(即在B告诉它们它对您的成本之后)给您的最短成本路径)。
D设为网络的“直径”-网络中任意两个节点之间没有回路的最长路径的长度。 使用上面的推理,经过D-1次迭代后,所有节点都会知道所有其他节点经历D次跳数或更少的跳数的最短路径成本。 由于任何大于D跳数的路径都将具有循环(因此比删除循环的路径具有更大的成本),因此算法将在大多数D-1次迭代中收敛。
另外:如果DV算法是由于链路成本的变化而运行的,则在收敛之前,对所需的迭代次数没有先验约束,除非还指定了链路成本的约束。
Dx(w) = 2, Dx(y) = 4, Dx(u) = 7
b.
首先考虑,如果c(x,y)变大或变小(只要c(x,y)>=1),从x到u的最小成本路径仍然至少有7。 因此,c(x,y)的变化(如果c(x,y)>=1)不会导致x将任何变化通知其邻居。
如果c(x,y)<1,那么最小成本路径现在通过y的成本>6。
现在考虑c(x,w)是否改变。 如果c(x,w)<=1,那么到u的最小成本路径继续通过w,其成本变化为5+c(x,w);x将通知其邻居这一新成本。 如果c(x,w)>6,那么最小成本路径现在通过y并具有成本11;同样,x将通知其邻居这一新成本。
c.
链接成本c(x,y)的任何变化(只要c(x,y)>=1)不会导致x通知其邻居到u的新的最小成本路径。
不,这是因为降低链接成本不会导致循环(由该链接的两个节点之间的下一跳关系引起)。 将两个节点与一个链路连接起来,相当于将链路权重从无限减小到有限权重。
在每一步,节点距离向量的每次更新都是基于Bellman-Ford方程,即只在其距离向量中减小这些值。 价值没有增加。 如果没有更新,则不会发送消息。 因此,D(X)是不增加的。 由于这些代价是有限的,那么最终距离向量将在有限的步骤中稳定下来。
(图见上一级标题开始处)
a.
Z-X
Z-W-Y-X=1+1+4=6
(要是Z也能告诉Y无穷,就可以避免三个环路)
W-X
W-Y-X=1+4=5(毒性逆转被避免)
Y-X=4
告诉其他邻居
b.
t1
Y-Z-X=6+3=9(那段变化研究那段毒性Y-X)
t2
W-Y-X=9+1=10
t3
Z-W-X=10+1=11
+3+1+1循环至最后
Y-X=52
W-X=51
Z-X=50
(52-6)/(3+1+1)向上取整*3=30时间
c.
切断y和z之间的联系。
由于从AS到BGP中的目的地的完整AS路径信息是可用的,所以循环检测很简单-如果BGP对等点接收到在AS路径中包含自己AS号的路由,那么使用该路由将导致循环。
选择的路径不一定是最短的AS路径。 回想一下,在路线选择过程中有许多问题需要考虑。 由于经济原因,较长的无环路径比较短的无环路径更可取。 例如,AS可能更喜欢向一个邻居发送流量,而不是向另一个AS距离较短的邻居发送流量。
eBGP、iBGP、eBGP、iBGP
I1因为这个接口从1d开始到网关路由器1c的最小成本路径。
I2因为这个接口从1d开始到网关路由器1b的最小成本路径。
I1因为这个接口从1d开始到网关路由器1c的最小成本路径。
一种方法是C强制B将B的所有交通移交给D在东海岸,C只宣传它的路线通过其东海岸与C的窥视点。
实际使用区别:多宿主ISP与主干提供商网络
X向B、C通告自己没有通向其他(C、B)目的的路径,所以X是多宿主ISP。
wxy只要能索引到彼此就好,所以y看不见B
比特激流文件共享和SkypeP2P应用程序。
考虑一个比特激流文件共享网络,其中对等点1、2和3分别位于存根网络W、X和Y中。 由于BitTorrent文件共享的机制,对等2可能从对等1获取数据块,然后将这些数据块转发到3。 这相当于B转发数据,最终注定是存根网络Y。
A应向B建议两条路线,即A-W和A-V。
A应该只建议C一条路线,A-V。
C接收AS路径:B-A-W、B-A-V、A-V。
由于Z想通过Y的交通,Z将向Y发送路线广告。 以这种方式,当Y有一个注定要通过Z到达的IP的数据报时,Y将有通过Z发送数据报的选项。 然而,如果Z广告路线到Y,Y可以重新添加这些路线到X。 因此,在这种情况下,Z无法阻止从X到通过Z的交通。
请求响应模式通常会有更多的开销(以交换消息的数量来衡量),原因:
首先,管理实体收到的每一条信息都需要两条信息:投票和回复。 捕获只生成一条消息给发送者。 如果管理实体真的只想在条件发生时得到通知,轮询就会有更多的开销,因为许多轮询消息可能表明等待条件尚未发生。 只有当条件发生时,捕获才会生成消息。
当事件发生时,陷阱也会立即通知管理实体。 在轮询中,管理器需要在事件发生和管理器(通过其轮询消息)发现事件发生之间等待半个轮询周期(平均)
如果丢失陷阱消息,托管设备将不会发送另一个副本。 如果轮询消息或其响应丢失,管理实体将知道有丢失的消息(因为回复从未到达)。 因此如果需要,管理实体可以重新安排。
通常,最需要网络管理的时间是在压力下,当网络可能严重拥挤和数据包丢失时。 随着SNMP在TCP上运行,TCP的拥塞控制将导致SNMP在网络管理器需要发送SNMP消息的时候退出并停止发送消息。