IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> TCP/IP(七)路由协议 -> 正文阅读

[网络协议]TCP/IP(七)路由协议

一、路由控制的定义

1.1.IP地址与路由控制

互联网是由路由器连接的网络组合而成的。为了能让数据包正确的到达目标主机,路由器必须在途中进行正确地转发。这种向“正确的方向”转发数据所进行的处理就叫做路由控制或路由。
路由器根据路由控制表(Routing Table)转发数据包。它根据所收到的数据包中目标主机的IP地址与路由控制表的比较得出下一个应该接收的路由器。因此,这个过程中路由控制表的记录一定要正确无误。但凡出现错误,数据包就有可能无法到达目标主机。

1.2.静态路由与动态路由

路由控制分静态和动态两种类型。
静态路由是指事先设置好路由器和主机中并将路由信息固定的一种方法。而动态路由是指让路由协议在运行过程中自动的设置路由控制信息的一种方法。这些方法都有他们各自的利弊。

静态路由的设置通常是由使用者手工操作完成的。例如,有100个IP网的时候,就需要设置近100个路由信息。并且,每增加一个新的网络,就需要将这个新被追加的网络信息设置在所有的路由器上。因此,静态路由给管理者带来很大的负担,这是其一。还有一个不可忽视的问题是,一旦某个路由器发生故障,基本上无法自动绕过发生故障的节点,只有在管理员手工设置以后才能恢复正常。

使用动态路由的情况下,管理员必须设置好路由协议,其设定过程的复杂程度与具体要设置路由协议的类型有直接关系。例如在RIP的情况下,基本上无需过多的设置。而根据OSPF进行较详细路由控制时,设置工作将会非常繁琐。

如果有一个新的网络被追加到原有的网络中时,只要在新增加网络的路由器上进行一个动态路由的设置即可。而不需要像静态路由那样,不得不在其他所有路由器上进行修改。对于路由器个数较多的网络,采用动态路由显然是一个能够减轻管理员负担的方法。

况且,网络上一旦发生故障,只要有一个可绕的其他路径,那么数据包就会自动选择这个路径,路由器的设置也会自动重叠。路由器为了能够像这样定期相互交换必要的路由控制信息,会与相邻的路由器之间互发信息。这些互换的消息会给网络带来一定程度的负荷。

不论是静态路由还是动态路由,不要只使用其中一种,可以将他们组合起来使用。

1.3.动态路由的基础

动态路由会给相邻路由器发送自己已知的网络连接信息,而这些信息又像接力一样依次传递给其他路由器,直至整个网络都了解时,路由控制表也就制作完成了。而此时也就可以正确转发IP数据包。

二、路由控制范围

随着IP网络的发展,想要对所有网络统一管理是不可能的事。因此,人们根据路由控制的范围常使用IGP(Interior Gateway Protocol)和EGP(Exterior Gateway Protocol)两种类型的路由协议。

2.1.接入互联网的各种组织机构

互联网连接着世界各地的组织机构,不仅包括语言不相通的,甚至包括宗教信仰全然不同的组织。没有管理者,也没有被管理者,每个组织之间保持着平等的关系。

2.2.自治系统与路由协议

企业内部网络的管理方针,往往由该企业组织内部自行决定。因此每个企业或组织机构对网络管理和运维的方法都不尽相同。为了提高自己的销售额和生产力,各家企业和组织机构都会相应购入必要的机械设备、构建合适的网络以及采用合理的运维体制。在这种环境下,可以对公司以外的人士屏蔽企业内部的网络细节,更不必对这些细节上的更新请求作出回应。这好比我们的日常生活,每个人对家庭内部的私事,都不希望过多暴露给外界,听从外界指挥。

指定自己的路由策略,并以此为准在一个或多个网络群体中采用的小型单位叫做自治系统(AS:Autonomous System)或路由选择域(Routing Domain)。

说到自治系统,区域网络、ISP(互联网服务提供商)等都是典型的例子。在区域网络及ISP内部,由构造、管理和运维网络的管理员、运行者制定出路由控制相关方针,然后根据此方针进行具体路由控制的设定。

而接入到区域网络或ISP的组织机构,则必须根据管理员的指示进行路由控制设定。如果不遵循这个原则,会给其他使用者带来负面影响,甚至使自己也无法与任何组织机构进行通信。

自治系统(路由选择域)内部动态路由采用的协议是域内路由协议,即IGP。而自治系统之间的路由控制采用的是域间路由协议,即EGP。

2.3.IGP与EGP

如前面述,路由协议大致分为两大类。一类是外部网关协议EGP,另一类是内部网关协议IGP(Interior Gateway Protocol)。
IP地址分为网络部分和主机部分,他们有各自的分工。EGP与IGP的关系与IP地址网络部分和主机部分的关系有相似之处。就像根据IP地址中的网络部分在网络之间进行路由选择、根据主机部分在链路内部进行主机识别一样,可以根据EGP在区域网络之间(或ISP之间)进行路由选择,也可以根据IGP在区域网络内部(或ISP内部)进行主机识别。
由此,路由协议被分为EGP和IGP两个层次。没有EGP就不可能有世界上各个不同组织机构之间的通信。没有IGP机构内部也就不可能进行通信。
IGP中还可以使用RIP(Routing Information Protocol,路由信息协议)、RIP2、OSPF(Open Shortest Path First,开放式最短路径优先)等众多协议。与之相对,EGP使用的是BGP(Border Gateway Protocol,边界网关协议)协议。

三、路由算法

路由控制有各种各样的算法,其中最具代表性的有两种,是距离向量(Distance-Vector)算法和链路状态(Link-State)算法。

3.1.距离向量算法

距离向量算法(DV)是指根据距离(代价)和方向决定目标网络或目标主机位置的一种方法。

路由器之间可以互换目标网络的方向及其距离的相关信息,并以这些信息为基础制作路由控制表。这种方法在处理上比较简单,不过由于只有距离和方向的信息,所以当网络构造变得分外复杂时,在获得稳定的路由信息之前需要消耗一定时间,也极易发生路由循环等问题。

3.2.链路状态算法

链路状态算法是路由器在了解网络整体连接状态的基础上生成路由控制表的一种方法。该方法中,每个路由器必须保持同样的信息才能进行正确的路由选择。

距离向量算法中每个路由器掌握的信息都不相同。通往每个网络所耗的距离(代价)也根据路由器的不同而不同。因此,该算法的一个缺点就是不太容易判断每个路由器上的信息是否正确。

而链路状态算法中所有路由器持有相同的信息。对于任何一台路由器,网络拓扑都完全一样。因此,只要某一台路由器与其他路由器保持同样的路由控制信息,就意味着该路由器上的路由信息是正确的。只要每个路由器尽快地与其他路由器同步路由信息,就可以使路由信息达到一个稳定的状态。因此,即使网络结构变得复杂,每个路由器也能够保持正确的路由信息、进行稳定的路由选择。这也是该算法的一个优点。

为了实现上述机制,链路状态算法付出的代价就是如何从网络代理获取路由信息表。这个过程相当复杂,特别是在一个规模巨大而又复杂的网络结构中,管理和处理代理信息需要高速CPU处理能力和大量的内存。

3.3.主要路由协议

路由协议分很多种。其中,由于EGP不支持CIDR,现在已经不再用作互联网的对外连接协议了。

四、RIP

RIP(Routing Information Protocol)是距离向量型的一种路由协议,广泛用于LAN。被BSD UNIX作为标准面提供的routed采用了RIP,因此RIP得到了迅速的普及。

4.1.广播路由控制信息

RIP将路由控制信息定期(30秒一次)向全网广播。如果没有收到路由控制信息,连接就会被断开。不过,这有可能是由于丢包导致的,因此RIP规定等待5次。如果等了6次(180秒)仍未收到路由信息,才会真正关闭连接。

4.2.根据距离向量确定路由

RIP基于距离向量算法决定路径。距离(Metrics)的单位为“跳数”。跳数是指所经过的路由器的个数。RIP希望尽可能少通过路由器将数据包转发到目标IP地址。根据距离向量生成距离向量表,再抽出较小的路由生成最终的路由控制表。

4.3.使用子网掩码时的RIP处理

RIP虽然不交换子网掩码信息,但可以用于使用子网掩码的网络环境。不过在这种情况下需要注意以下几点:
从接口的IP地址对应分类得出网址后,与根据路由控制信息流过此路由器的包中的IP地址对应的分类得出的网络地址进行比较。如果两者的网络地址相同,那么就以接口的网络地址长度为准。
如果两者的网络地址不同,那么以IP地址的分类所确定的网络地址长度为准。

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章      下一篇文章      查看所有文章
加:2021-08-19 12:24:57  更:2021-08-19 12:25:59 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/17 15:58:45-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码