HELLO協(xié)議提供了一個(gè)IGP的例子,它使用的選路度量標(biāo)準(zhǔn)是基于網(wǎng)絡(luò)時(shí)延而不是跳數(shù)。雖然現(xiàn)在HELLO已經(jīng)廢棄不用了,但是由于曾經(jīng)被早期的NSFNET主干網(wǎng)中的模糊球(fuzzball)路由器采納為IGP,它還是在Internet的發(fā)展史上具有非同一般的意義。HELLO對我們有重要意義,因?yàn)樗峁┝艘粋€(gè)不使用跳數(shù)的矢量距離算法的例子。
HELLO提供兩個(gè)功能:使許多機(jī)器的時(shí)鐘同步,并且使每個(gè)機(jī)器都能計(jì)算到目的站的最短路徑。因此,HELLO報(bào)文在帶有選路信息的同時(shí),還攜帶有時(shí)間戳信息。HELLO的基本原理很簡單:參加HELLO交換的每一個(gè)機(jī)器,維侍一個(gè)對鄰站機(jī)器時(shí)鐘的最佳估值的表。在傳送一個(gè)分組之前,機(jī)器把當(dāng)前時(shí)鐘值復(fù)制到分組中作為它的時(shí)間戳。分組到達(dá)之后,接收方計(jì)算這條鏈路的當(dāng)前時(shí)延。為了做到這點(diǎn),它估計(jì)出鄰站機(jī)器的當(dāng)前時(shí)鐘值,再減去到達(dá)分組的時(shí)間戳值。機(jī)器周期性地輪詢鄰站機(jī)器,以便重新估計(jì)時(shí)鐘值。
HELLO報(bào)文答應(yīng)參與的機(jī)器計(jì)算新的路由。這個(gè)算法和R
ip的很像,只不過是使用時(shí)延而不是跳數(shù)而已。每個(gè)機(jī)器周期性地向其鄰站機(jī)器發(fā)送一個(gè)到所有其他機(jī)器的估計(jì)時(shí)延。假如機(jī)器A向機(jī)器B發(fā)送一個(gè)選路表,指出目的站和時(shí)延。B檢查表中的各個(gè)項(xiàng)目。假如B到一個(gè)已知的目的站D的當(dāng)前時(shí)延,比從A到D的時(shí)延與從B到A的時(shí)延之和還要大,B就更改它的路由,并把流量經(jīng)A送給D。也即只要經(jīng)過A的路由的時(shí)延較小,B就使通信流量經(jīng)過A。
和其他選路算法一樣,HELLO也不能太頻繁地改變路由,否則它就不穩(wěn)定。選路算法的不穩(wěn)定性會(huì)產(chǎn)生“二階段振蕩”(two—stage oscillation)的效應(yīng),即通信流量在兩個(gè)不同的路由之間往返切換。在第一階段,機(jī)器找到一條輕載路徑后忽然將流量切換給它,但不料又發(fā)現(xiàn)該路徑嚴(yán)重超載。第二個(gè)階段,機(jī)器將通信流量從這條超載路徑切換開,結(jié)果又會(huì)發(fā)現(xiàn)這是負(fù)載最輕的路徑。這樣就形成了振蕩。為避免這種現(xiàn)象,HELLO選擇的策略是僅在路由的時(shí)延差距較大時(shí)才進(jìn)行切換。
HELLO的報(bào)文格式。這種協(xié)議比其報(bào)文格式更為復(fù)雜,因?yàn)樗淹ㄟ^本地網(wǎng)的連接與那些跳數(shù)很多的連接區(qū)分開來,使選路表中的陳舊項(xiàng)目不再起作用,并且它使用局部標(biāo)識(shí)符而不是完整的IP地址來標(biāo)識(shí)主機(jī)。
0
16
24
31
校驗(yàn)和
日期
時(shí)間
時(shí)間戳
本地項(xiàng)目
主機(jī)數(shù)
時(shí)延1
偏移1
時(shí)延2
偏移2
時(shí)延n
時(shí)延n
HELLO報(bào)文的格式。每個(gè)報(bào)文攜帶日期、時(shí)間以及時(shí)間戳,以便協(xié)議用來估計(jì)網(wǎng)絡(luò)的時(shí)候
校驗(yàn)和(CHECKSUM)字段記錄了整個(gè)報(bào)文的校驗(yàn)和,日期(DATE)字段是發(fā)送者的當(dāng)?shù)厝掌冢瑫r(shí)間(TIME)字段是按照發(fā)送者的時(shí)鐘記錄下的當(dāng)?shù)貢r(shí)間,時(shí)間戳(TIMESTAMP)字段用于計(jì)算往返時(shí)延。
標(biāo)有 # HOSTS的字段給出了主機(jī)列表中的項(xiàng)目數(shù),本地項(xiàng)目(LOCAL ENTRY)字段標(biāo)出本地網(wǎng)絡(luò)使用的項(xiàng)目塊。每個(gè)項(xiàng)目包括時(shí)延(DELAY)字段和偏移(OFFSET)字段,分別給出了到達(dá)目的的主機(jī)的時(shí)延,以及發(fā)送方對該主機(jī)與自己時(shí)鐘的偏差的當(dāng)前估值。(T002)