📄 rfc888.txt
字号:
组织:中国互动出版网(http://www.china-pub.com/)
RFC文档中文翻译计划(http://www.china-pub.com/compters/emook/aboutemook.htm)
E-mail:ouyang@china-pub.com
译者:15222775@61. (15222775@61. hbzzx2001@yahoo.com.cn)
译文发布时间:2002-1-18
版权:本中文翻译文档版权归中国互动出版网所有。可以用于非商业用途自由转载,但必须
保留本文档的翻译及版权信息。
Linda J. Seamonson
Eric C. Rosen
BBN Communications
January 1984
“烟头”外部网关协议
(RFC888——"STUB" EXTERIOR GATEWAY PROTOCOL)
本注释所阐述的外部网关协议用来讲一个烟头网关联到一个自治系统的核心网关上。文
献规定了工作协议,并定义了一个ARPA官方协议。所有网关的编写这都应该仔细阅读
本文。
目录
1 介绍 1
2.定义与概论 2
3.邻居获得 3
4.邻居可达性协议 3
5.网络可达(NR)报文 4
6.NR报文轮询技术 6
7.发送NR报文 6
8.间接邻居 7
9.局限性 7
1 介绍
DARPA catenet 有希望成为一个不断扩展的系统,因为有越来越多的网络上的越来越多
的主机不断加入其中。当然这需要更多的网关。过去,这种扩展以一种相对无组织的形式进
行。新网关,通常包含了于现存网关极为不同的的软件,将不断增加并立即通过EGP协议
参与共同路由算法。然而随着因特网变得越来越大,这种简单的扩展方式变得越来越不可行。
原因是:
——路由算法的开销变得过大;
——大量截然不同的网关参与同一路由算法,使得管理和错误隔离几乎不可能。因为已
经不能将因特网看作是一个完全的通信系统。
——网关软件和算法尤其是路由算法台死板和缺乏灵活性,因为任何改变必须经过太多
的部门和太多的人才能完成。
将来,我们希望因特网进化成一组单独的部分或“自治系统”。每个都是由一个或多个
相对同构的网关组成。协议特别是(这些网关用在他们自身之间的)路由算法应当是一种私
人问题,而绝不需要在网关内部实现,除非特殊部分或系统。
最简单的情况下,一个自治系统仅由单个网关组成,这个网关将局域网连到(如)ARPA
网上。我们称这种网关为“烟头”网关,因为他唯一的目的是将本的网络连接到因特网的其
他部分上,既没有打算用他处理发自本地网络内部的通信流也没有打算用他处理去网那个本
地网的通信流。不久的将来,我们把因特网看作一组自治系统,一个由ARP网和STANET
上的DARPA网关组成,其他的是一些到达局域网的网关。前者,被我们成为“核心”的系
统——被后者用作为传输或“长途运输”系统。
最后,因特网由一组自治系统组成,每个可能被来自任意系统或去往任意系统的通信作
为传输介质。这种常见的情况仍然是研究的主题。本论文仅仅描述了怎样用外部网关协议
(EGP)把“烟头”网关连接到核心系统。
2.定义与概论
为了达到本文的目标,必须将烟头网关定义为:
——它不是一个核心网关。
——它至少和一个核心网关(象某些核心网关一样在同一个网络上具有一个接口)
共享一个接口。
——它具有到达一个或多个没有核心网关的网关的接口。
——其他所有通过烟头核心系统才能到达的网络不可见除非通过烟头有别的到达
核心系统的路径。
烟头网关被期望完全处理互联网控制报文协议(ICP)和EGP协议。具体的,他必
须响应ICMP的每个请求。,必须适当的发送ICMP目的地死亡报文。他还必须适当的
发送ICMP重定向报文。
自治系统应被指定一个16位号码(由许多相同的方法如现在也给网络和协议指定
号码),并且每个EGP报文头部为这个数含有一个域。零不被指定给任何系统;零作为
一个自治系统的用法留在将来使用。
我们称两个网关为邻居,如果存在一个到达每个网关都有一个接口的网络。如果两
个网关是同一个自治系统的组成部分,我们称他们为内部邻居;如任何两个位于同一网
络上的两个核心网关称为内部邻居。如果两个网关不是同一个自治系统的组成部分,我
们称他们为外部邻居;如果一个核心网关和一个烟头网关共享一个网络,我们称之为外
部网关。为了使一个系统将另一个作为通信介质,互为外部邻居的网关必须能够知道那
个网络必须通过那些网络才能到达。外部网关协议使这个信息能够在两个外部邻居之间
进行传递。因为它是一个轮询协议,他也能让每个网关控制和接收网络可大性信息的速
率,允许每个系统控制它自己的开销。他还使得每个系统具有自主的路由算法,这些算
法不会因为其他系统的失败而中断。外部网关协议具有三个部分(a)邻居获得协议(b)
邻居可达性协议和(c)网络可达性判断。注意,所有EGP定义的报文仅传播一站。即
他们在一个网关产生并发送到一个邻居网关而不调停任何干涉网关。因此,生存时间应
设成一个很小的数。如果网关在报文流中收到EGP报文但地址不是指向他们,网关会
删除它们。
每个EGP报文含有一个序列号。网关应为每个邻居维护一个序列号。
3.邻居获得
能够从外部网关那里获得路由信息之前,必须象捕获直接邻居一样获得它(直接邻
居和间接邻居之间的差别下面将给以解释)。为了让两关网关称为直接邻居,按照前面
定义的含义,并且他们必须执行邻居获得协议,简单的讲他是一个两次握手标准。
一向根其他网关启动邻居请求的网关,给他发出一个邻居获得请求。这个报文应重
复发送(以合适的速度过去大约每30秒一次),知道收到一个邻居获得应答或邻居获
得拒绝。请求应含有一个标示号,以便拷贝进应答后应答和请求相匹配。
收到邻居获得请求的网关必须决定它是否象成为发出请求者的直接邻居。如果不,
他也许在它的选项上用一个邻居获得拒绝给以响应,随便规定拒绝的原因。否则他会发
送一个邻居获得应答报文。
发出请求的网关当他收到邻居的应答后应认为邻居获得已完成,。发出应答的网关
应认为邻居获得已完成,当他发出应答后。
经过一段合理的时间后,不匹配的应答和拒绝被丢弃。然而所有这些不匹配的信息
对于诊断确实有用的。
来自已成为直接邻居网关的邻居获得请求请求应给予一个应答作为响应。
从网关G到网关G'的邻居获得请求或应答应载有G迅速回答给G'的邻居可达性
Hello报文所用的最小时间段(以秒为单位)和G被迅速去掉NR报文(见下文) 所用的
最小时间段(以秒为单位)。
如果一个网关不想成为继续成为一个特定外部网关的邻居,他发送一个邻居终止报
文。收到邻居终止报文的网关应用一个邻居终止确认给以响应。他应停止把报文发送者
以任何方式作为邻居看待。因为有大量协议运行在直接邻居之间(见下文),如果某些
网关不再需要成为其他的直接网关,他用一个邻居终止报文很礼貌的指出这个事实。在
收到它的确认之前,邻居终止报文应重复传输直到一定次数。收到邻居终止报文之后,
邻居可达性协议应被停止处理。
烟头应具有一些表,其内配置有一些具有和他共同网络的核心网关(仅由两到三个)
的地址。烟头的责任应是使用这些网关发动邻居获取。如果烟头的直接邻居全部失败,
烟头还有一个最少获得一个直接邻居的责任。它能做到这些,通过选择已经成为它的间
接邻居(见下文)的核心网关中的一个,并且用他执行邻居获得协议。(在任何一个时
间仅一个核心网关总是愿意成为一个给定烟头网关的直接邻居。)
4.邻居可达性协议
对一个网关而言,保持它的诸如邻居可达性这样的事时信息是十分重要的。如果一
个网关断定某个特定的邻居不可达,他应停止向那个网关发送通信流。为了做出判断,
一个邻居可达性协议是必须的。EGP协议为此提供了两种报文类型——hello和I heard
you报文。
从直接邻居那里收到一份hello报文时,必须立即给那个直接邻居返回一个I heard
you报文。收到hello和返回I heard you 之间绝不能大于几秒。
为了判断一个外部邻居的可达性,核心网关将使用下列算法:
一个可达邻居将被公布为不可达,如果核心网关上次发送了n个hello而在此之间
收到的回答少于K个I heard you的话。一个不可达网关应被被公布可达,如果核心网关
上次发送了m个hello而在此之间收到的回答至少j个I heard you的话。
烟头网关也会给他们的直接邻居发送hello并且也会收到I heard you作为回答。判
断可达性的算法可能相似于上面描述的算法。但是对烟头网关而言发送hello不是必须
的。Hello和I heard you报文具备一个状况域,发送网关用它来指出他认为接收网关是
可达的还是不可达的。这个信息对于诊断十分有用。他还允许烟头网关将它的可达性判
断寄生在它的核心邻居上:事实上只有核心网关需要发送hello报文。烟头能够根据hello
内的状态域来判断是否可达。即,烟头网关(仅发送I heard you)宣布核心网关(仅发
送hello)为可达,当来自核心网关的hello指出他已经宣布烟头是可达的。
Hello的发送频率参数k,n,j,和m的值不能在此规定。最好的效果依赖于邻居和邻居
所在的共同网络的特性。这意味着,恰当的参数需要由两个邻居网关的设计者和实现者
共同决定。不顾及邻居和所连网络的特点而孤立的选择算法和参数九没有希望产生最佳
的可达性判断。
然而邻居获得请求和应答报文位邻居提供了一个互相通告迅速回答hello的最小频
率的方法。当网关G发送一个邻居获得请求给网关G'时,他声明它不希望以高于X秒
一次的速度回答来自G'的hello。G'在它的邻居请求回答中指出它不希望以高于Y秒一
次的速度回答来自G的hello。这两个速度不必完全相同。但每个必须遵守另一个的时
间间隔。网关会以低于所要求的速度而非更高的速度发送hello。
直接邻居网关还应被公布为不可达,如果连接它的网络使用了地记得协议信息,这
是可以推断出的。然而例如网关收到一个来自ARPANET的目的地死亡报文,指出一个
直接邻居已死亡,网关应公布那个邻居为不可达。邻居不应被公布为可达,在交换完必
须数量的Hello/I heard you包之前。
变为不可达的直接邻居不会停止成为一个直接邻居。邻居可以被公布为可达而不必
经由邻居获得协议。然而,如果邻居保持不可达很长一段时间,诸如一个小时,网关应
停止把它作为一个邻居,如,应终止发送hello报文给他。邻居获得协议应被重复,在
他又一次变为一直接邻居之前。
来自非直接邻居的hello报文应给予简单的丢弃。然而所有这些信息的记录可以提
供极有用的诊断信息。
一个停极的网关或它的将它连到一个特定邻居的网关的接口停机,那末它应发送一
邻居终止报文给所有不能到达它的直接邻居。终止报文使用在信息域指明停机原因。他
应重传那个报文许多次,在他收到一邻居终止确认之前。以此给邻居提供停机的事前警
告,并使他们准备好在某种程度上最少化由此对现存通信的破坏。
5.网络可达(NR)报文
术语:假定网关G有个到达网络N的接口。我们说这个G相对于网络N(M和N
相隔遥远)是一个到达网络M的合适初站,当且仅当有以下约束时:
去往网络M和网关G的网络N接口上收到的通信将被G转发到M,通过不包含任
何其他具有到达网络N的接口的网关。简而言之,比较于网络N而言G时网络M的合
适初站。在网络N上找不到比它更好的网关以路由去往网络M的通信的话。关于最优
路由,网络N上的去往网络M的通信应总是被转发到一个合适的初站的网关那里。
为了使外部网关G和G'(他们使网络N上的邻居)能够相互用作包交换机来转发
去网远程网络的通信,每个需要了解作为其他网络的合适初站的网络列表。外部网关协
议定义了一个报文,叫做网络可达性报文或NR报文以传送这个信息。
假定G是一个位于网络N上的网。那末G发送的关于网络N的报文必须包含下列
信息:
一张完整的网络列表。表中的网络是对网络N而言所有合适的初站。
如果G'能从外部邻居G获得这些信息,那末它就知道去往那些不在列表之列的网
络的通信不应被转发给G。(然而不能简单的断定列表中网络的所有通信都通过G转发,
因为G'也许有其他到达N的合适初站的邻居。例如G和G"也许都是G'的邻居,但对
网络N而言是等距离的。那末每个都是一个合适的初站。)
对于表中的每一个网络,NR报文还规定了从G到那个网络的“距离”(按照自治
系统中网关G的设计者交付的定义的某些公制作为元素)。核心网关应公布那些能不离
开核心系统就能够到达的网络的距离小于128。其他的为大于等于128。烟头网关应将
列于其NR报文中的所有网络的距离公布为小于128。
距离最大值(255)的意义是指网络不可达。所有其它值得意义是网络可达。
如果来自网关G的一个NR报文没有提及网络N,而先前来自N的NR报文提及过
网络N,那末对于G而言N可能已为不可达。如果连续的来自G的NR报文都没有提及
N,那末就应该解释为对G而言N为不可达。这个过程是必须的,以确保那已不可达,
但不是永远公布为不可达的。网络超时并从网络列表中消除。
一种常见的情况时,核心网关G和烟头网关G'是网络N上的直接邻居,并知道这
些邻居是哪些网络的合适初站。虽然烟头网关G'可能不知道其他所有邻居,但是它能够
方便的和高效的从G那里获取这些信息。因此,EGPNR报文还含有一些允许核心网关
G规定下列信息域:
a)(网络N上的)G的所有邻居(包括内部邻居和外部邻居)的列表,这些邻居必须
是G已经可靠的判断为可达的。G还可以在这张列表中包含间接邻居(见下文)。
b)对于邻居中的每一个,可作为网络列表中的哪一个网络的合适初站(对于网络N
而言)。
c)每个<邻居,网络>对,从一个邻居到一个网络的距离。
所以,NR报文提供了一种方法,允许一个网关去发现新的邻居,通过察看一个已
知的邻居是否具有在同一个网路上的另外的邻居。这个信息还使得下面描述的间接邻居
策略的实现成为可能。
NR报文的一个更为精确的解释如下:
报文的数据部分应主要由数据块组成,没块应由一个网关地址作为标题,这个地址
应为任何发送这个报文的网关或网关的邻居的地址。每个网关地址应能通过一个网络列
表而理解为某个网络的合适初站。所有到达同一网关具有相同距离的网络应被组织在这
张列表中,之前加上距离本身和网络号。整个列表之前是表中距离-组的数量。
数据块列表之前是:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -