网络基本功之路由

概述

路由(routing)是指分组从目的地时,决定端到端路径的网络范围的进程 。路由工作在OSI参考模型第三层——网络层的数据包转发设备。路由器通过转发数据包来实现网络互连。虽然路由器可以支持多种协议(如TCP/IP、IPX/SPX、AppleTalk等协议),但是在我国绝大多数路由器运行TCP/IP协议。路由器通常连接两个或多个由IP子网或点到点协议标识的逻辑端口,至少拥有1个物理端口。路由器根据收到数据包中的网络层地址以及路由器内部维护的路由表决定输出端口以及下一跳地址,并且重写链路层数据包头实现转发数据包。路由器通过动态维护路由表来反映当前的网络拓扑,并通过网络上其他路由器交换路由和链路信息来维护路由表。

动态路由

若某个设置好的路径无法使用时,现存的节点必须决定另一个发送资料到目的地的路径。他们通常使用以下两种形式的路由协议来达成:距离向量算法与连线状态算法。所有路由算法几乎都可以分类到这两种算法中。

距离向量算法

主条目:距离向量路由协议
距离向量算法使用Bellman-Ford算法。对于每一条网络上节点间的路径,算法指定一个“成本”给它们。节点会选择一条总成本(经过路径的所有成本总和)最低的路径,用来把资料从节点甲送到节点乙。

此算法非常的简单。当某节点初次引导时,将只知道它的邻居节点(直接连接到该节点的节点)与到该节点的成本。(这些信息、目的地列表、每个目的地的总成本,以及到某个目的地所必须经过的“下一个节点”,构成路由表,或称距离表。)每个节点定时地将目前所知,到各个目的地的成本的信息,送给每个邻居节点。邻居节点则检查这些信息,并跟目前所知的信息做比较;如果到某个目的地的成本比目前所知的低,则将收到的信息加入自己的路由表。经过一段时间后,网络上的所有节点将会了解到所有目的地的最佳“下一个节点”与最低的总成本。

当某个节点断线时,每个将它当作某条路径的“下一个节点”的节点会将该路由信息舍弃,再创建新的路由表信息。接着,他们将这些信息告诉所有相邻的节点,再找出到所有可抵达的目的地之新路径。

连线状态算法

主条目:连线状态路由协议
在连线状态算法中,每个节点拥有网络的图谱(一个图)。每个节点将自己可以连接到的其他节点信息发送到网络上所有的节点,而其他节点接着各自将这个信息加入到图谱中。每个路由器即可根据这个图谱来决定从自己到其它节点的最佳路径。

完成这个动作的算法——Dijkstra算法——创建另一种数据结构——树。节点产生的树将自己视为根节点,且最后这棵树将会包含了网络中所有其他的节点。一开始,此树只有根节点(节点自己)。接着在树中已有的节点的邻居节点且不存在树中的节点集合中,选取一个成本最低的节点加入此树,直到所有节点都存入树中为止。

这棵树即用来创建路由表、提供最佳的“下一个节点”等,让节点能跟网络中其它节点通信。

路由算法的比较

在小型网络中,距离向量路由协议十分简单且有效率,且只需要一些管理。然而,它们的规模性不好,且 收敛性质也十分差,因此促进了较复杂但规模性较好的连线状态路由协议的开发,以使用在较大型的网络。距离向量路由协议也有无限计数问题(见[1] 页面存档备份,存于互联网档案馆(英文))。

连线状态路由协议的主要优点是在限制的时间内,对于连线改变(例如断线)的反应较快。而且连线状态路由协议在网络上所发送的数据包也比距离向量路由协议的数据包小。距离向量路由协议必须发送一个节点的整个路由表,但连线状态路由协议的数据包只需要传输该节点的邻居节点信息即可。因此,这些数据包小到不会占用可观的网络资源。连线状态路由协议的主要缺点则是比距离向量路由协议需要较多的存储空间与较强的计算能力。

路由协议与可被绕送协议

有时路由协议与可被绕送协议常会令人混淆:

可被绕送协议:任何一个提供足够的网络层地址信息让数据包可被从一个设备转送到另一个,而不需要知道来源到目的地的整条路径的网络通信协议。“可被绕送协议”定义了数据包的格式与数据包字段的使用方式。数据包通常从一个终端系统被递送到另一个。IP是一个可被绕送协议,而以太网是一个不可被绕送协议的例子。
路由协议:在网络间交换路由信息,让路由器可动态创建路由表的通信协议。传统的IP路由十分简单,因为它使用下一个节点路由方法,也就是路由器只需要考虑将数据包送到哪一个“下一个节点”,而不需考虑到目的地的整条路径。虽然动态路由可能非常复杂,但它使得互联网十分有弹性,且让互联网的规模自从采用IP以后成长了超过八个数量级。

路由度量(routing metric)包含了被路由算法使用来决定哪一条路径较另一条路径好的所有数值。度量可能包括许多信息,例如带宽、延迟、经过节点数、路径成本、负载、MTU、可靠性及传输成本等。路由表只存储最佳的可能路径,但连线状态或拓扑数据库可能存储其他相关的信息。当路由器从不同的路由协议里发现有多个能抵达相同目的地的不同路径时,它们使用称为管理距离(administrative distance)的特性来选择最佳的路径。管理距离定义了路由协议的可靠程度。每个路由协议按照管理距离值,由最可靠到最不可靠排列来区分优先级。

依照路由器与其他自治系统的关系,有许多种类的路由协议,只作了解:

Ad hoc网络路由协议出现在没有或一点点基础的网络。参见Ad hoc路由协议列表以获得提议中的协议。
内部网关协议(IGPs)在单一的自治系统中交换路由信息。常见的示例包括:
IGRP(Interior Gateway Routing Protocol)
EIGRP(Enhanced Interior Gateway Routing Protocol)[1]
OSPF(Open Shortest Path First)
RIP(Routing Information Protocol)
IS-IS(Intermediate System to Intermediate System)
外部网关协议(EGPs)在不同的自治系统中交换路由信息。EGP包括:
EGP(原本用来连接互联网骨干的外部网关协议,现在已不再使用)
BGP(Border Gateway Protocol:大约从1995年开始使用目前的版本,BGPv4)

posted @ 2021-01-21 18:26  等不到的口琴  阅读(365)  评论(0编辑  收藏  举报