获取中...

-

Just a minute...

《计算机网络自顶向下方法》第五章读书笔记

概述

计算、维护和安装转发表和流表有两种可能的方法:

1.每路由器控制。每台路由器中都包含转发和路由选择功能。每台路由器有一个路由选择组件,用于与其他路由器中的路由选择组件通信,以计算转发表的值。

2.逻辑集中式控制。逻辑集中式控制器计算并分发转发表以供每台路由器使用。

路由选择算法

根据路由算则算法是集中式还是分散式

集中式路由选择算法

完整的、全局性的网络知识计算出从源到目的地之间的最低开销路径。也就是说,该算法以所有节点之间的连通性及所有链路的开销为输入。这就要求该算法在真正开始计算以前,要以某种方式获得这种信息。具有全局状态信息的算法常被称作 链路状态(Link State, LS)算法

分散式路由选择算法

路由器以迭代、分布式的方式计算出最低开销路径。没有节点拥有关于所有网络链路的开销的完整信息。相反,每个节点仅有与其之间相连链路的开销知识即可开始工作。然后,通过迭代计算过程以及与相邻节点的信息交换,一个节点逐渐计算出到达某目的节点或一组目的节点的最低开销路径。

根据算法是静态的还是动态

静态路由选择算法

路由随时间的变化非常缓慢,通常是人工进行调整。

动态路由选择算法

随着网络流量负载或拓扑发生变化而改变路由选择路径。一个动态算法可周期性地运行或直接相应拓扑或链路开销的变化而运行。虽然动态算法易于对网络的变化做出反应,但也更容易受诸如路由选择循环、路由振荡之类问题的影响。

根据是负载敏感还是负载迟钝

负载敏感算法

链路开销会动态地变化以反应出底层链路得到当前拥塞水平。如果当前拥塞的一条链路与高开销想联系,则路由选择算法趋向于绕开该拥塞链路来选择路由。

负载迟钝算法

某条链路的开销不明确地反应其当前的拥塞水平。

链路状态路由选择算法(Dijkstra)

在链路状态算法中,网络拓扑和所有的链路开销都是已知的,也就是说可用作LS算法的输入。实际上这是通过让每个节点向网络中所有其他节点广播链路状态分组来完成的,其中每个链路状态分组包含它所连接的链路的标识和开销。这经常有链路状态广播算法来完成。链路状态算法实际上是用Dijkstra算法实现的。

距离向量路由选择算法

距离向量(Distance-Vector, DV)算法 是一种迭代的、异步的和分布式的算法。DV算法实际上是用Bellman-Ford算法实现的。在DV算法中,当节点x发现它的直接相连的链路开销变化或从某个邻居接收到一个距离向量的更新时,它就更新距离向量估计值。每个节点等待来自任何邻居的更新,当接收到一个更新时计算它的新距离向量并向它的邻居分布其新距离向量。

DV算法 会遇到 路由选择环路 而变得缓慢。对于两个直接相连的节点,可以通过毒性逆转技术加以避免,但是对于3个或以上的节点就无法使用毒性逆转技术检测到。

LS算法与DV算法的比较

报文复杂性。 LS算法要求每个节点都知道网络中每条链路的开销。这就要求发送O(|N||E|)个报文。而且无论何时一条链路的开销改变时,必须向所有节点发送新的链路开销。DV算法要求在每次迭代时,在两个直接相连邻居之间交换报文。算法收敛所需时间依赖于许多因素。当链路开销改变时,DV算法仅当在新的链路开销导致与该链路相连节点的最低开销路径发生改变时,才传播已改变的链路开销。

收敛速度。LS算法的实现是一个要求O(|N||E|)个报文的O(|N|2)算法。DV算法收敛较慢,且在收敛时会遇到路由选择环路。DV算法还会遇到无穷计数问题。

健壮性。 如果一台路由器发生故障、行为错乱或收到蓄意破坏时,对于LS算法,路由器能够向其连接广播不正确的开销。作为LS广播的一部分,一个节点也可损坏或丢弃它收到的任何LS广播分组。但是一个LS节点仅计算自己的转发表;其他节点也自行执行类似的计算。这就意味着在LS算法下,路由计算在某种程度上是分离的,提供了一定程度的健壮性。在DV算法中,一个节点可向任意或所有目的节点通告其不正确的最低开销路径。在此情况下,DV算法中一个不正确的节点计算值会扩散到整个网络。

因特网中自治系统内部的路由

选择OSPF

  • 随着路由器数目变得很大,涉及路由选择信息的通信、计算和存储的开销将高得不可实现。因特网是ISP的网络,其中每个ISP都有它自己的路由器网络。ISP通常希望按自己的意愿运行路由器,或对外部隐藏其网络的内部组织面貌。这两个问题都可以通过将路由器组织进 自治系统(Autonomous System, AS) 来解决。其中每个AS由一组通常处在相同管理控制下的路由器组成。通常在一个ISP中的路由器以及互联它们的链路构成一个AS,而其他ISP则将它们的ISP拆分为数十个互联的AS。一个自治系统由其全局唯一的AS号(ASN)所标识。
  • 在相同的AS中的路由器都运行相同的路由选择算法并且有彼此的信息。在一个自治系统内运行得到路由选择算法叫做 自治系统内部路由选择协议

开放最短路优先(OSPF)

开放最短路优先(OSPF) 是一种链路状态协议,它使用洪泛链路状态信息和Dijkstra最低开销路径算法。使用OSPF,一台路由器构建了一副关于整个自治系统的完整拓扑图。于是,每台路由器在本地运行Dijkstra的最短路径算法,以确定一个自身为根节点到所有子网的最短路径树。各条链路开销是由网络管理员配置的。

使用OSPF时,路由器向自治系统内所有其他路由器广播路由选择信息,而不仅仅是向其相邻路由器广播。每当一条链路的状态发生变化时,路由器就会广播链路状态信息。即使链路状态未发生变化,它也要周期性地(至少每隔30min一次)广播链路状态。

OSPF的优点:

①安全。 能够鉴别OSPF路由器之间的交换。使用鉴别,仅有受信任的路由器能参与一个AS内的OSPF协议,因此可防止恶意入侵者将不正确的信息诸如路由器表内。

②多条相同开销路径。 当到达某目的地的多条路路径具有相同的开销时,OSPF允许使用多条路径(这就是说,当存在多条相等开销的路径时,无须仅选择单一的路径来承载所有的流量)。

③对单播和多播路由选择的综合支持。 多播OSPF(MOSPF)提供对OSPF的简单扩展,以便提供多播路由选择。MOSPF使用现有的OSPF链路数据库,并为现有的OSPF链路状态广播机制增加了一种新型的链路状态通告

④支持在单个AS中的层次结构。 一个OSPF自治系统能够层次化地配置多个区域。每个区域都运行自己的OSPF链路状态路由选择算法,区域内的每台路由器都向该区域内的所有其他路由器广播其链路状态。

ISP之间的路由选择(BGP)

在因特网中,所有的AS运行相同的AS间路由选择协议,称为 边界网关协议(Broder Gateway Protocal, BGP)

BGP的作用

从邻居AS获得前缀的可达性信息。 BGP允许每个子网向因特网的其余部分通告他的存在。BGP确保在因特网中的的所有AS知道该子网。如果没有BGP的话,每个子网将是隔离的孤岛,即它们孤独地存在,不为其他因特网其余部分所知和所达。

确定到该前缀的“最好的”路由。 一台路由器可能知道两条或更多条到特定前缀的不同路由。为了确定最好的路由,该路由器将本地运行一个BGP路由选择过程。该最好的路由将基于策略以及可达性信息来确定。

通告BGP路由信息

对于每个AS,每台路由器要么是一台 网关路由器 ,要么是一台内部路由器。网关路由器是一台位于 AS边缘的路由器 ,它直接连接到在其他AS中的一台或多台路由器。内部路由器仅连接在它自己AS中主机和路由器。

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

  • 对于每个AS,每台路由器要么是一台 网关路由器 ,要么是一台内部路由器。网关路由器是一台位于AS边缘的路由器,它直接连接到在其他AS中的一台或 多台路由器 。内部路由器仅连接在它自己AS中主机和路由器。

确认最好的路由

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

热土豆路由选择

在一台路由器转发表中对于热土豆路由器选择增加AS向外前缀的步骤:

1.从AS间协议学到经过多个网关可达子网x。

2.使用来自AS内部协议的路由选择信息,以决定到达每个网关的最低开销路径的开销。

3.热土豆路由选择:选择具有最小最低开销的网关。

4.从转发表确定通往最低开销的网关的接口I。在转发表中加入表项(x, I)。

路由选择特点:

1.路由被指派一个本地偏好值作为其属性之一。一条路由的本地偏好可能由该路由器设置或可能在相同AS中的另一台路由器学习到。本地偏好属性的值是一种策略决定,它完全取决于该AS的网络管理员。具有最高本地偏好值的路由将被选择。

2.从余下的路由中(所有都具有相同的的最高本地偏好值),将选择具有最短AS-PATH的路由。

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

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

IP任意传播

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

SDN控制平面

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

1.基于流的转发。SDN的交换机分组转发工作,能够基于运输层、网络层或链路层首部中任意数量的首部字段值进行。

2.数据平面与控制平面分离。 数据平面由网络交换机组成,交换机是相对简单(但快速)的设备,该设备在它们的流表中执行“匹配加动作”的规则。控制平面由服务器以及决定和管理交换机流表的软件组成。

3.网络控制功能。 位于数据平面的交换机外部。软件在服务器上执行,该服务器与网络交换机截然分开且与之远离。控制平面自身由两个组件组成:一个SDN控制器,以及若干网络控制应用程序。控制器维护准确的网络状态信息;为运行在控制平面的中的网络控制应用程序提供这些信息;提供方法,这些应用程序通过这些方法能够监视、编程和控制下面的网络设备。

4.可编程的网络。 通过运行在控制平面中的网络控制应用程序,该网络是可编程的。这些应用程序代表了SDN控制平面的“智力”,使用了由SDN控制器提供的API来定义和控制网络设备中的数据平面。

SDN控制器的功能大体可组织为3个

通信层。 SDN控制器和受控网络设备之间的通信。显然,如果SDN控制器要控制远程SDN使能的交换机、主机或其他设备的运行,需要一个协议来传送控制器与这些设备之间的信息。此外,设备必须能够向可知其传递本地观察到的时间。这些时间向SDN控制器提供该网络状态的最新视图。这个协议构成了控制器体系结构的最底层。

网络范围状态管理层。 由SDN控制平面所做出的最终控制决定,将要求控制器具有有关网络的主机、链路、交换机和其他SDN控制设备的最新状态信息。交换机的流表包含计数器,其值也可以由网络控制应用程序很好地使用;因此这些值应当为应用程序所用。

对于网络控制应用程序层的接口。 控制器通过接口与网络控制应用程序交互。该API允许网络控制应用程序在状态管理层之间读/写网络状态和流表。当状态改变事件出现时,应用程序能够注册进行通告。

OpenFlow协议

OpenFlow协议运行在TCP之上,使用6653的默认端口号。从控制器到受控交换机流动的重要报文有下列这些:

  • 配置。 该报文允许控制器查询并设置交换机的配置参数。

  • 修改状态。 该报文由控制器所使用,以增加/删除或修改交换机流表中的表项,并且设置交换机端口特性。

  • 读状态。 该报文被控制器用于从交换机的流表和端口收集统计数据和计数器值。

  • 发送分组。 该报文被控制器用于在受控交换机从特定的端口发送出一个特定的报文。

从受控交换机到控制器流动的重要报文有下列这些:

  • 流删除。 该报文通知控制器已删除一个流表项,例如由于超时,或作为收到“修改状态”报文的结果。

  • 端口状态。 交换机用该报文向控制器通知端口状态的变化。

  • 分组入。 一个分组到达交换机端口,并且不能与任何流表项匹配,那么这个分组将被发送给控制器进行额外处理。匹配的分组也被发送给控制器,作为匹配是所采取的一个动作。“分组入”报文被用于将分组发送给控制器。

ICMP(因特网控制报文协议)

为了更有效的提高ip数据报的成功转发和交付的效率,在网际层使用了icmp网际控制报文协议,这个协议允许主机和路由器提供差错和异常情况的报告,icmp不是高层协议,而是网际层的协议,加在ip数据报中一起发出。

ICMP报文通过ip报文发送,ICMP报文当做是ip数据包的数据部分,而IP数据包又被放倒了以太网的数据帧中的数据区。

ICMP的报文种类有ICMP差错报文和ICMP询问报文:

差错报告报文有5种:

(1)终点不可以到达:当路由器和主机不能交付的时候:

(2)源点抑制:当路由器由于网络拥塞而丢弃的时候

(3)时间超过:当路由器收到生存时间为0的数据报的时候

(4)参数问题:当目的主机发现收到的数据报首部有问题的时候

(5)改变路由:路由器把改变你的路由交付主机,告诉下一次的主机

两种ICMP询问报文:

(1)ICMP请求与回答报文:主机和路由器向主机发送一个ICMP请求报文,目的主机发送一个ICMP回答报文,用来测试两方能否互相通信

(2)ICMP时间戳请求与回答报文:ICMP时间戳报文请某个主机和路由器回答当前的时间,ICMP回答时间戳是一个32位的字段,其中写入的整数表示从
1900/1/1到现在的秒数

ICMP报文有一个类型字段和一个编码字段,并且包含引起该ICMP报文首次生成的IP数据报的首部和前8个字节。表5-1列出了所选的ICMP报文类型

网络管理和SNMP

网络管理包括了硬件、软件和人类元素的设置、综合和协调,以监视、测试、轮询、配置、分析、评价和控制网网络及网元资源,用合理的成本满足实时性、运营性能和服务质量的要求。

网络管理的关键组件

1.管理服务器 是一个应用程序,通常有人的参与,并运行在网络运营中心的集中式网络管理的工作站上。管理服务器是执行网络管理活动的地方,它控制网络管理信息的收集、处理、分析和/或显示。正是在这里,发起控制网络行为的动作,人类网络管理员与网络设备打交道。

2.被管设备 是网络装备的一部分,位于被管理的网络中。在一个被管设备中,有几个所谓被管对象。 这些被管对象是被管设备中硬件的实际部分和用于这些硬件及软件组件的配置参数。

3.一个被管设备中的每个被管对象的关联信息收集在管理信息库(Management Information Base, MIB) 中,这些信息的值可供管理服务器所用。MIB对象由称为SMI(Strcture of Management Information)的数据语言所定义。

4.在每个被管设备中还驻留有网络管理代理。 它是运行在被管设备中的一个进程,该进程与管理服务器通信,在管理服务器的命令和控制下载被管设备中采取本地动作。

网络管理框架的最后组件是网络管理协议。 该协议运行在管理服务器和被管设备之间,允许管理服务器查询被管设备的状态,并经过其代理间接地在这些设备上采取行动。代理能够使用网络管理协议向管理服务器通知异常事件。重要的是网络管理协议自己不能管理网络。恰恰相反,它为网络管理员提供了一种能力,使他们能够管理网络。

简单网络管理协议版本2(SNMPv2)是一个应用层协议,用于在管理服务器和代表管理服务器执行的代理之间传递网络管理控制和信息报文。SNMP最常使用的是请求响应模式,其中SNMP管理服务器向SNMP代理发送一个请求,代理接收到该请求后,执行某些动作,然后对该请求发送一个回答。请求通常用于查询或修改与某被管设备关联的MIB对象值。SNMP第二个常被使用的是代理向管理服务器发送的一种非请求报文,该报文被称为陷阱报文。陷阱报文用于通知管理服务器,一个异常情况已经导致了MIB对象值的改变。表5-2中列出了SNMPv2定义的7种报文,这些报文一般称为协议数据单元(PDU)。SNMP PDU通常是作为UDP数据报的载荷进行传输的。

相关文章
评论
分享
  • 计算机网络中的安全

    《计算机网络自顶向下方法》第八章读书笔记 什么是网络安全安全通信具有下列所需要的特性: 机密性。仅有发送方和希望的接收方能够理解传输报文的内容。因为窃听者可以截获报文,这必须要求报文在一定程度上进行加密,是截取的报文无法被截获者所...

    计算机网络中的安全
  • 无线网络和移动网络

    《计算机网络自顶向下方法》第七章读书笔记 概述 基站 是无线网络基础设施的一个关键部分。基站在有线网络中没有明确的对应设备,它负责向与之关联的无线主机发送数据和从主机那里接收数据。基站通常负责协调与之相关联的多个无线主机的传输。当...

    无线网络和移动网络
  • 链路层和局域网

    《计算机网络自顶向下方法》第六章读书笔记 链路层信道分为两种: 广播信道:局域网,无限LAN,卫星和混合光纤 点对点的通信链路 链路层的概念运行链路层协议的任何设备称为节点。把沿着通信路径连接相邻节点的通信信道称为链路 链路层采取...

    链路层和局域网
Please check the parameter of comment in config.yml of hexo-theme-Annie!