美文网首页
网络层(三)

网络层(三)

作者: EvanForEver | 来源:发表于2018-05-05 00:18 被阅读14次

    五、因特网的路由选择协议

    不存在一种绝对的最佳路由算法。所谓“最佳”只能是相对于某一种特定要求下得出的较为合理的选择而已。实际的路由选择算法,应尽可能接近于理想的算法。
    从路由算法的自适应性考虑可以分为两种:
    1、静态路由选择策略——即非自适应路由选择,其特点是简单和开销较小,但不能及时适应网络状态的变化。
    2、动态路由选择策略——即自适应路由选择,其特点是能较好地适应网络状态的变化,但实现起来较为复杂,开销也比较大。

    自治系统 AS(Autonomous System)
    在单一的技术管理下的一组路由器,而这些路由器使用一种 AS 内部的路由选择协议和共同的度量以确定分组在该 AS 内的路由,同时还使用一种 AS 之间的路由选择协议用以确定分组在 AS之间的路由。

    因特网有两大类路由选择协议

    • 内部网关协议 IGP (Interior Gateway Protocol) 即在一个自治系统内部使用的路由选择协议。目前这类路由选择协议使用得最多,如 RIP 和 OSPF 协议。在自治系统内部的路由选择叫做域内路由选择(intradomain routing)
    • 外部网关协议EGP (External Gateway Protocol) 若源站和目的站处在不同的自治系统中,当数据报传到一个自治系统的边界时,就需要使用一种协议将路由选择信息传递到另一个自治系统中。这样的协议就是外部网关协议 EGP。在外部网关协议中目前使用最多的是 BGP-4。 自治系统之间的路由选择也叫做域间路由选择(interdomain routing)

    因特网的早期 RFC 文档中未使用“路由器”而是使用“网关”这一名词。但是在新的 RFC 文档中又使用了“路由器”这一名词。应当把这两个属于当作同义词。
    IGP 和 EGP 是协议类别的名称。但 RFC 在使用 EGP 这个名词时出现了一点混乱,因为最早的一个外部网关协议的协议名字正好也是 EGP。因此在遇到名词 EGP 时,应弄清它是指旧的协议 EGP 还是指外部网关协议 EGP 这个类别。

    内部网关协议 RIP

    路由信息协议 RIP 是内部网关协议 IGP中最先得到广泛使用的协议。是一种分布式的基于距离向量的路由选择协议。RIP 协议要求网络中的每一个路由器都要维护从它自己到其他每一个目的网络的距离记录。

    特点:
    1、认为一个好的路由就是它通过的路由器的数目少,即“距离短”。
    2、允许一条路径最多只能包含 15 个路由器。
    3、“距离”的最大值为16 时即相当于不可达。可见 RIP 只适用于小型互联网。
    4、RIP 不能在两个网络之间同时使用多条路由。RIP 选择一个具有最少路由器的路由(即最短路由),哪怕还存在另一条高速(低时延)但路由器较多的路由。
    5、仅和相邻路由器交换信息。
    6、交换的信息是当前本路由器所知道的全部信息,即自己的路由表。
    7、按固定的时间间隔交换路由信息,例如,每隔 30 秒。

    RIP协议让互联网中的所有路由器都和自己的相邻路由器不断交换路由信息,并不断更新其路由表,使得从每一个路由器到每一个目的网络的路由都是最短的(即跳数最少)。
    虽然所有的路由器最终都拥有了整个自治系统的全局路由信息,但由于每一个路由器的位置不同,它们的路由表当然也应当是不同的。

    距离向量算法
    收到相邻路由器(其地址为 X)的一个 RIP 报文:
    (1) 先修改此 RIP 报文中的所有项目:把“下一跳”字段中的地址都改为 X,并把所有的“距离”字段的值加 1。
    (2) 对修改后的 RIP 报文中的每一个项目,重复以下步骤:
    若项目中的目的网络不在路由表中,则把该项目加到路由表中。
    否则
    若下一跳字段给出的路由器地址是同样的,则把收到的项 目 替换原路由表中的项目。
    否则
    若收到项目中的距离小于路由表中的距离,则进行更新,
    否则,什么也不做。
    (3) 若 3 分钟还没有收到相邻路由器的更新路由表,则把此相邻路由器记为不可达路由器,即将距离置为16(距离为16表示不可达)。
    (4) 返回。

    好消息传播得快,而坏消息传播得慢。网络出故障的传播时间往往需要较长的时间(例如数分钟)。这是 RIP 的一个主要缺点。

    内部网关协议 OSPF (Open Shortest Path First)

    OSPF 协议的基本特点
    1、“开放”表明 OSPF 协议不是受某一家厂商控制,而是公开发表的。
    2、“最短路径优先”是因为使用了 Dijkstra 提出的最短路径算法SPF
    3、OSPF 只是一个协议的名字,它并不表示其他的路由选择协议不是“最短路径优先”。
    4、是分布式的链路状态协议。

    向本自治系统中所有路由器发送信息,这里使用的方法是洪泛法

    1. 发送的信息就是与本路由器相邻的所有路由器的链路状态,但这只是路由器所知道的部分信息。“链路状态”就是说明本路由器都和哪些路由器相邻,以及该链路的“度量”(metric)。
      只有当链路状态发生变化时,路由器才用洪泛法向所有路由器发送此信息。
    2. 由于各路由器之间频繁地交换链路状态信息,因此所有的路由器最终都能建立一个链路状态数据库。这个数据库实际上就是全网的拓扑结构图,它在全网范围内是一致的(这称为链路状态数据库的同步)。
      OSPF 的链路状态数据库能较快地进行更新,使各个路由器能及时更新其路由表。OSPF 的更新过程收敛得快是其重要优点。

    为了使 OSPF 能够用于规模很大的网络,OSPF 将一个自治系统再划分为若干个更小的范围,叫作区域。每一个区域都有一个 32 位的区域标识符(用点分十进制表示)。区域也不能太大,在一个区域内的路由器最好不超过 200 个。

    1. 划分区域的好处就是将利用洪泛法交换链路状态信息的范围局限于每一个区域而不是整个的自治系统,这就减少了整个网络上的通信量。
    2. 在一个区域内部的路由器只知道本区域的完整网络拓扑,而不知道其他区域的网络拓扑的情况。
    3. OSPF 使用层次结构的区域划分。在上层的区域叫作主干区域(backbone area)。主干区域的标识符规定为0.0.0.0。主干区域的作用是用来连通其他在下层的区域。

    其他特点:

    1. OSPF 对不同的链路可根据 IP 分组的不同服务类型 TOS 而设置成不同的代价。因此,OSPF 对于不同类型的业务可计算出不同的路由。
    2. 如果到同一个目的网络有多条相同代价的路径,那么可以将通信量分配给这几条路径。这叫作多路径间的负载平衡。
    3. 所有在 OSPF 路由器之间交换的分组都具有鉴别的功能。
    4. 支持可变长度的子网划分和无分类编址 CIDR。
    5. 每一个链路状态都带上一个 32 位的序号,序号越大状态就越新。
    6. OSPF 还规定每隔一段时间,如 30 分钟,要刷新一次数据库中的链路状态。
    7. 由于一个路由器的链路状态只涉及到与相邻路由器的连通状态,因而与整个互联网的规模并无直接关系。因此当互联网规模很大时,OSPF 协议要比距离向量协议 RIP 好得多。
    8. OSPF 没有“坏消息传播得慢”的问题,据统计,其响应网络变化的时间小于 100 ms。

    外部网关协议 BGP

    BGP 是不同自治系统的路由器之间交换路由信息的协议。
    BGP 较新版本是 2006 年 1 月发表的 BGP-4(BGP 第 4 个版本),简写为 BGP
    边界网关协议 BGP 只能是力求寻找一条能够到达目的网络且比较好的路由(不能兜圈子),而并非要寻找一条最佳路由。

    每一个自治系统的管理员要选择至少一个路由器作为该自治系统的“ BGP 发言人”
    1、一般说来,两个 BGP 发言人都是通过一个共享网络连接在一起的,而 BGP 发言人往往就是 BGP 边界路由器,但也可以不是 BGP 边界路由器。
    2、一个 BGP 发言人与其他自治系统中的 BGP 发言人要交换路由信息,就要先建立 TCP 连接,然后在此连接上交换 BGP 报文以建立 BGP 会话(session),利用 BGP 会话交换路由信息。
    3、使用 TCP 连接能提供可靠的服务,也简化了路由选择协议。,使用 TCP 连接交换路由信息的两个 BGP 发言人,彼此成为对方的邻站或对等站。
    4、BGP 所交换的网络可达性的信息就是要到达某个网络所要经过的一系列 AS。
    5、当 BGP 发言人互相交换了网络可达性的信息后,各 BGP 发言人就根据所采用的策略从收到的路由信息中找出到达各 AS 的较好路由

    BGP 协议的特点

    1. BGP 协议交换路由信息的结点数量级是自治系统数的量级,这要比这些自治系统中的网络数少很多。
    2. 每一个自治系统中 BGP 发言人(或边界路由器)的数目是很少的。这样就使得自治系统之间的路由选择不致过分复杂
    3. BGP 支持 CIDR,因此 BGP 的路由表也就应当包括目的网络前缀、下一跳路由器,以及到达该目的网络所要经过的各个自治系统序列。
    4. 在BGP 刚刚运行时,BGP 的邻站是交换整个的 BGP 路由表。但以后只需要在发生变化时更新有变化的部分。这样做对节省网络带宽和减少路由器的处理开销方面都有好处。

    路由器在网际互连中的作用

    路由器是一种具有多个输入端口和多个输出端口的专用计算机,其任务是转发分组。也就是说,将路由器某个输入端口收到的分组,按照分组要去的目的地(即目的网络),把该分组从路由器的某个合适的输出端口转发给下一跳路由器。下一跳路由器也按照这种方法处理分组,直到该分组到达终点为止。

    “转发”和“路由选择”的区别
    “转发”(forwarding)就是路由器根据转发表将用户的 IP 数据报从合适的端口转发出去。
    “路由选择”(routing)则是按照分布式算法,根据从各相邻路由器得到的关于网络拓扑的变化 情况,动态地改变所选择的路由。
    路由表是根据路由选择算法得出的。而转发表是从路由表得出的。
    在讨论路由选择的原理时,往往不去区分转发表和路由表的区别,

    典型的路由器的结构
    • 输入端口对线路上收到的分组的处理
      数据链路层剥去帧首部和尾部后,将分组送到网络层的队列中排队等待处理。这会产生一定的时延。
    • 输出端口将交换结构传送来的分组发送到线路
      当交换结构传送过来的分组先进行缓存。数据链路层处理模块将分组加上链路层的首部和尾部,交给物理层后发送到外部线路

    若路由器处理分组的速率赶不上分组进入队列的速率,则队列的存储空间最终必定减少到零,这就使后面再进入队列的分组由于没有存储空间而只能被丢弃。
    路由器中的输入或输出队列产生溢出是造成分组丢失的重要原因

    交换结构

    六、IP 多播

    多播可明显地减少网络中资源的消耗

    不使用多播时需要发送 90 次单播

    IP 多播的一些特点:
    (1) 多播使用组地址——IP 使用 D 类地址支持多播。多播地址只能用于目的地址,而不能用于源地址。
    (2) 永久组地址——由因特网号码指派管理局 IANA 负责指派。
    (3) 动态的组成员
    (4) 使用硬件进行多播

    在局域网上进行硬件多播
    因特网号码指派管理局 IANA规定TCP/IP 协议使用的以太网多播地址块的范围是:
    从 01-00-5E-00-00-00 到 01-00-5E-7F-FF-FF
    D 类 IP 地址可供分配的有 28 位,在这 28 位中的前 5 位不能用来构成以太网硬件地址。

    D 类 IP 地址与以太网多播地址的映射关系

    IP多播需要两种协议

    为了使路由器知道多播组成员的信息,需要利用 网际组管理协议 IGMP (Internet Group Management Protocol)。连接在局域网上的多播路由器还必须和因特网上的其他多播路由器协同工作,以便把多播数据报用最小代价传送给所有的组成员。这就需要使用 多播路由选择协议

    网际组管理协议 IGMP

    IGMP 并非在因特网范围内对所有多播组成员进行管理的协议。它不知道 IP 多播组包含的成员数,也不知道这些成员都分布在哪些网络上。IGMP 协议是让连接在本地局域网上的多播路由器知道 本局域网上是否有主机(严格讲,是主机上的某个进程)参加或退出了某个多播组。

    IGMP 可分为两个阶段

    • 第一阶段:当某个主机加入新的多播组时,该主机应向多播组的多播地址发送IGMP 报文,声明自己要成为该组的成员。本地的多播路由器收到 IGMP 报文后,将组成员关系转发给因特网上的其他多播路由器
    • 第二阶段:因为组成员关系是动态的,因此本地多播路由器要周期性地探询本地局域网上的主机,以便知道这些主机是否还继续是组的成员。
      只要对某个组有一个主机响应,那么多播路由器就认为这个组是活跃的。
      但一个组在经过几次的探询后仍然没有一个主机响应,则不再将该组的成员关系转发给其他的多播路由器

    多播路由选择

    多播路由选择协议尚未标准化。
    一个多播组中的成员是动态变化的,随时会有主机加入或离开这个多播组。
    多播路由选择实际上就是要找出以源主机为根结点的多播转发树。
    在多播转发树上的路由器不会收到重复的多播数据报。
    对不同的多播组对应于不同的多播转发树。同一个多播组,对不同的源点也会有不同的多播转发树。
    转发多播数据报使用的方法

    • 洪泛与剪除
      这种方法适合于较小的多播组,而所有的组成员接入的局域网也是相邻接的。
      一开始,路由器转发多播数据报使用洪泛的方法(这就是广播)。为了避免兜圈子,采用了叫做反向路径广播 RPB (Reverse Path Broadcasting)的策略。

    RPB 的要点
    路由器收到多播数据报时,先检查是否从源点经最短路径传送来的。
    若是,就向所有其他方向转发刚才收到的多播数据报(但进入的方向除外),否则就丢弃而不转发。
    如果存在几条同样长度的最短路径),那么只能选择一条最短路径,选择的准则就是看这几条最短路径中的相邻路由器谁的 IP 地址最小。

    • 隧道技术(tunneling)
    • 基于核心的发现技术
      这种方法对于多播组的大小在较大范围内变化时都适合。
      这种方法是对每一个多播组 G 指定一个核心(core)路由器,给出它的 IP 单播地址。
      核心路由器按照前面讲过的方法创建出对应于多播组 G 的转发树。

    七、虚拟专用网 VPN 和网络地址转换 NAT

    内联网 intranet 和外联网 extranet(都是基于 TCP/IP 协议)
    由部门 A 和 B 的内部网络所构成的虚拟专用网 VPN 又称为内联网(intranet),表示部门 A 和 B 都是在同一个机构的内部。
    一个机构和某些外部机构共同建立的虚拟专用网 VPN 又称为外联网(extranet)

    网络地址转换 NAT(Network Address Translation)

    需要在专用网连接到因特网的路由器上安装 NAT 软件。装有 NAT 软件的路由器叫做 NAT路由器,它至少有一个有效的外部全球地址 IPG
    所有使用本地地址的主机在和外界通信时都要在 NAT 路由器上将其本地地址转换成 IPG 才能和因特网连接。
    内部主机 X 用本地地址 IPX 和因特网上主机 Y 通信所发送的数据报必须经过 NAT 路由器。

    网络地址转换的过程
    1、NAT 路由器将数据报的源地址 IPX 转换成全球地址 IPG,但目的地址 IPY 保持不变,然后发送到因特网。
    2、NAT 路由器收到主机 Y 发回的数据报时,知道数据报中的源地址是 IPY 而目的地址是 IPG
    3、根据 NAT 转换表,NAT 路由器将目的地址 IPG 转换为 IPX,转发给最终的内部主机 X。

    相关文章

      网友评论

          本文标题:网络层(三)

          本文链接:https://www.haomeiwen.com/subject/wjjjrftx.html