TCP/IP详解010 动态选路协议

前面所说都是静态选路,在配置接口时,以默认方式生成路由表项(对于直接连接的接口),并通过route命令增加表项(通常从系统自引导程序文件),或是通过ICMP重定向生成表项(通常是在默认方式出错的情况下)。
在网络很小,且与其他网络只有单个连接点且没有多余路由时,采用这种方法是可行的。

当相邻路由器之间进行通信,以告知对方每个路由器当前所连接的网络,这时就出现了动态选路
路由器上有一个进程称为路由守护程序(routing daemon),它运行选路协议,并与其相邻的一些路由器进行通信。
路由器守护程序根据它从相邻路由器接收到的信息,更新内核中的路由表。
动态选路并不改变我们的内核在IP层的选路方式,这种选路方式称为选路机制(routing mechanism)
内核搜索路由表,查找主机路由、网络路由以及默认路由的方式并没有改变。仅仅是放置到路由表中的信息改变了——当路由随时间变化时,路由是由路由守护程序动态地增加或删除,而不是来自于自引导程序文件的route命令。
路由守护程序将选路策略(routing policy)加入到系统中,选择路由并加入到内核的路由表中。
Internet是以一组自治系统(AS,Autonomous System)的方式组织的。
常常将一个公司或大学校园定义为一个自治系统,NSFNET的Internet骨干网形成一个自治系统,这是因为骨干网中的所有路由器都在单个的管理控制之下。
每个自治系统可以选择该自治系统中各个路由器之间的选路协议,这种协议我们称之为内部网关协议IGP(Interior Gateway Protocol)或域内选路协议(intradomain routing protocol)
外部网关协议EGP(Exterier Gateway Protocol)或域内选路协议的分隔选路协议用于不同自治系统之间的路由器。

RIP:选路信息协议

RIP V1

正式描述文件是RFC 1058
RIP报文包含在UDP数据报中。


image.png

使用IP地址时的RIP报文格式:

image.png

命令字段为1表示请求,2表示应答。还有两个舍弃不用的命令(3和4),两个非正式的命令:轮询(5)和轮询表项(6)。
请求表示要求其他系统发送其全部或部分路由表。应答则包含发送者全部或部分路由表。
版本字段:版本1就设置为1,版本2就设置为2
紧跟在后面的20字节指定地址系列(address family)(对于IP地址来说,其值是2)、IP地址以及相应的度量
采用这种20字节格式的RIP报文可以通过多达25条路由,上限25是用来保证RIP报文的总长度为20*25+4=504,小于512字节,由于每个报文最多携带25个路由,因此为了发送整个路由表,经常需要多个报文。
RIP的常用端口号是UDP 520
RIP运行:
1、初始化
2、接收到请求
3、接收到响应
4、定期选路更新
5、触发更新
每当一条路由的度量发生变化时,就对它进行更新,不需要发送完整路由表而只需要发送那么发生变化的表项。
在RIP系统中,如果一条路由在180s内未更新,就将该路由的度量值设置成无穷大(16),并标注为删除,这意味着已经在6个30s更新时间里没收到通告该路由的路由器的更新了。再过60s,将从本地路由表中删除该路由,以保证该路由的失效已被传播开。
RIP所使用的度量是以跳(hop)计算的,所有直接连接接口的跳数为1,跳数最大值为15,度量为16表示无路由到达该IP地址。
RIP V1不识别子网地址(从网络地址经过子网划分后得到的网络号)

RIP V2

RFC 1388中对RIP进行了扩充,称其为RIP-2,只是利用了标注为“必须为0”的字段来传递一些额外的信息。
如果RIP忽略这些必须为0的字段,那么,V1V2可互操作。

image.png

路由域(routing domain)是一个选路守护程序的标识符,它指出了这个数据报的所有者。在一个Unix实现中,它可以是选路守护程序的进程号,该域允许管理者在单个路由器上运行多个RIP实例,每个实例在一个选路域内运行
路由标记(routing tag)是为了支持外部网关协议而存在的,它携带着一个EGP和BGP的自治系统号。
每个表项的子网掩码应用于相应的IP地址上,下一站IP地址指明发往目的IP地址的报文该发往哪里。该字段为0意味着发往目的地址的报文应该发给发送RIP报文的系统
RIP-2提供了一种简单的鉴别机制。可以指定RIP报文的前20字节表项地址系列为0xffff,路由标记为2,表项中的其余16字节包含一个明文口令。
RIP-2除了广播还支持多播,可以减少不收听RIP-2报文的主机的负载。

OSPF:开放最短路径优先

OSPF是一个链路状态协议。
RIP是距离向量协议
距离向量的意思是:RIP发送的报文包含一个距离向量(跳数),每个路由器都根据它所接收到邻站的这些距离向量来更新自己的路由表
而在一个链路状态协议中,路由器并不与其邻站交换距离信息,它采用的是每个路由器主动地测试与其邻站相连链路的状态,将这些信息发送给它的其他邻站,而邻站将这些信息在自治系统中传播出去,每个路由器接收到这些链路状态信息,并建立起完整的路由表。
从实际角度看,两者的不同点是链路状态协议总是比距离向量协议收敛更快。

OSPF和RIP(以及其他选路协议)的不同点在于,OSPF直接使用IP。也就是说,它并不使用UDP或TCP。对于IP首部的protocol字段,OSPF有其自己的值

OSPF的优点:
image.png

BGP:边界网关协议

BGP是一种不同自治系统(AS)的路由器之间进行通信的外部网关协议。
BGP是ARPNET所使用的老EGP的取代品。
目前在使用的是BGP V4
BGP系统与其他BGP系统之间交换网络可到达信息。这些信息包括数据到达这些网络所必须经过的自治系统AS中的所有路径。这些信息足以构造一副自治系统连接图。然后,可以根据连接图删除选路环,制订选路策略。
一个自治系统中的IP数据报可以分为本地流量通过流量
本地流量是指起始或终止于该自治系统的流量。也就是说,其信源IP地址或信宿IP地址所指定的主机位于该自治系统中。其他的流量则成为通过流量。
在Internet中使用BGP的一个目的就是为了减少通过流量

可以将自治系统分为以下几种类型:
1、残桩自治系统(stub AS),它与其他自治系统只有单个连接。stub AS只有本地流量。
2、多接口自治系统(multihomed AS),它与其他自治系统有多个连接,但拒绝传送通过流量。
3、转送自治系统(transit AS),它与其他自治系统由多个连接,在一些策略准则下,它可以传送本地流量和通过流量
这样我们就可以把Internet的总拓扑结构看成是由一些残桩自治系统、多接口自治系统、转送自治系统的任意互联
残桩自治系统、多接口自治系统不需要使用BGP——它们通过运行EGP在自治系统之间交换可达到信息。
BGP允许使用基于策略的选路
BGP使用TCP作为其传输层协议,两个运行BGP的系统之间建立一条TCP连接,然后交换整个BGP路由表,这时候起,在路由表发生变化时,再发送更新信号。
BGP是一个距离向量协议,但是与(通告到目的地址和跳数的)RIP不同的是,BGP列举了到每个目的地址的路由(自治系统到达目的地址的序列号)。采用16bit数字表示自治系统标识
BGP通过定期发送keepalive报文给其邻站来检测TCP连接对端的链路或主机失败。两个报文之间的时间间隔建议值为30s,应用层的keepalive和tcp的keepalive选项是独立的

CIDR:无类型域间选路

CIDR是一个防止Internet路由表膨胀的方法,它也称为超网(supernetting)
CIDR的基本观点是采用一种分配多个IP地址的方式,使其能够将路由表中的许多表项总和成更少的数目
“无类型”的意思是现在的选路策略是基于整个32bit IP地址的掩码操作,而不管其IP地址是A、B、C类,都没有什么区别

小结

有两种基本的选路协议,即用于同一自治系统各路由器之间的内部网关协议(IGP)和用于不同自治系统内路由器通信的外部网关协议(EGP)
OSI选路协议,域间选路协议(IDRP)最开始时,是一个为了使用OSI地址而不是IP地址,而进行修改的BGP版本
Intermediate System to Intermediate System协议(IS-IS)是OSI的标准IGP。可以用它来选路CLNP(无连接网络协议)

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,997评论 6 502
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,603评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,359评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,309评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,346评论 6 390
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,258评论 1 300
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,122评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,970评论 0 275
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,403评论 1 313
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,596评论 3 334
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,769评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,464评论 5 344
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,075评论 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,705评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,848评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,831评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,678评论 2 354

推荐阅读更多精彩内容

  • 10.1 引言 在前面各章中,我们讨论了静态选路。在配置接口时,以默认方式生成路由表项(对于直接连接的接口),并通...
    张芳涛阅读 960评论 0 1
  • 网络层提供的两种服务 在计算机网络领域,网络层应该向运输层提供怎样的服务(面向连接还是无连接)曾引起了长期的争论,...
    srtianxia阅读 3,961评论 0 12
  • 个人认为,Goodboy1881先生的TCP /IP 协议详解学习博客系列博客是一部非常精彩的学习笔记,这虽然只是...
    贰零壹柒_fc10阅读 5,054评论 0 8
  • 五、因特网的路由选择协议 1.有关路由选择协议的几个基本概念 Ⅰ、理想的路由算法 路由表中的路由是怎样得出的呢?核...
    dmmy大印阅读 1,964评论 0 4
  • 面对一成不变的生活,我会偶尔抱怨但不会放弃。 世界于我来讲是空旷的,未知的,但却不是有趣的。 我不会用自己的主观思...
    Mrs_hope阅读 246评论 0 0