?? 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 + -