?? 多連接多結(jié)點(diǎn)ppp組.htm
字號:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0058)http://www.longen.org/L-R/detaill~r/PPPBundleDiscovery.htm -->
<HTML><HEAD><TITLE>多連接多結(jié)點(diǎn)PPP組</TITLE>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<META content="MSHTML 6.00.2800.1400" name=GENERATOR></HEAD>
<BODY>
<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
<TBODY>
<TR>
<TD width="100%"><FONT face=宋體 size=3>
<P align=justify><STRONG>多連接多結(jié)點(diǎn)PPP組(Bundle)發(fā)現(xiàn)協(xié)議</STRONG></P>
<P align=justify>1. 介紹</P>
<P
align=justify>多連接PPP允許撥號用戶對一個主機(jī)打開多個PPP連接。通常這種連接建立在動態(tài)申請的情況下,也就是說,當(dāng)主連接的能力達(dá)到極限時,打開一個或多個次連接。當(dāng)需求減少時關(guān)閉次連接。許多撥號主機(jī)支持使多個連接撥打同一個電話號碼,這就是說必須有一個Modem庫來進(jìn)行響應(yīng)。可能有許多個獨(dú)立的Modem連接在遠(yuǎn)程訪問服務(wù)器(RAS)上,使用一個模擬電話線路,也可能是一個Modem連接到T1/E1線路上。無論如何RAS必須能夠處理請求,但現(xiàn)在的RAS還不能支持上百個連接,這就帶來了問題,用戶如何在連接了PPP主連接后,再連接PPP次連接。如果RAS已經(jīng)沒有可用的Modem或接收的請求被分配到另一臺RAS上就會帶來問題。為了解決這一問題,必須使RAS能夠判斷此連接是PPP主連接還是次連接。如果是次連接,RAS用于在主次連接上傳輸組頭(Bundle
Head,BH)在什么地方。如果BH在另一RAS上,協(xié)議必須用于傳輸PPP包到包括BH的RAS上,這樣PPP包才能夠重組。下面我們會討論發(fā)現(xiàn)機(jī)制和傳輸協(xié)議,以及發(fā)現(xiàn)協(xié)議需要配置的參數(shù)。</P>
<P align=justify>2. BH發(fā)現(xiàn)機(jī)制</P>
<P align=justify>當(dāng)用戶撥入RAS進(jìn)行多連接PPP協(xié)商時,RAS必須決定下面的三種情況哪一種存在:</P>
<OL>
<LI>這是MP(多連接)的主連接,此時RAS創(chuàng)建BH;
<LI>這是MP的次連接,BH就在此RAS上,此時RAS將連接加入到組(bundle)中;
<LI>這是次連接,而BH在其它RAS上,此時RAS應(yīng)該連接到有BH的RAS的連接,使用這一連接傳輸MP數(shù)據(jù)。 </LI></OL>
<P align=justify>在操作時,RAS先判斷是不是情況2,如果BH不是本地的而且它確實(shí)存在的話,發(fā)現(xiàn)協(xié)議用于決定BH在什么地方。</P>
<P align=justify>2.1 包格式</P>
<P align=justify>UDP端口號:581,組播地址:224.0.1.69。下面是發(fā)現(xiàn)消息的格式:</P>
<P align=center></FONT><IMG height=48 alt=包格式
src="多連接多結(jié)點(diǎn)PPP組.files/PPPBundleDiscovery-1.gif" width=301></P>
<TABLE cellSpacing=1 cellPadding=7 width="100%" border=1>
<TBODY>
<TR>
<TD vAlign=top width="15%"><FONT face=宋體 size=3>
<P align=justify>類型</FONT></P></TD>
<TD vAlign=top width="11%"><FONT face=宋體 size=3>
<P align=justify>2字節(jié)</FONT></P></TD>
<TD vAlign=top width="74%"><FONT face=宋體 size=3>
<P align=justify>1代表查詢,2代表響應(yīng)</FONT></P></TD></TR>
<TR>
<TD vAlign=top width="15%"><FONT face=宋體 size=3>
<P align=justify>長度</FONT></P></TD>
<TD vAlign=top width="11%"><FONT face=宋體 size=3>
<P align=justify>2字節(jié)</FONT></P></TD>
<TD vAlign=top width="74%"><FONT face=宋體 size=3>
<P align=justify>結(jié)束點(diǎn)ID的長度</FONT></P></TD></TR>
<TR>
<TD vAlign=top width="15%"><FONT face=宋體 size=3>
<P align=justify>隨機(jī)ID</FONT></P></TD>
<TD vAlign=top width="11%"><FONT face=宋體 size=3>
<P align=justify>4字節(jié)</FONT></P></TD>
<TD vAlign=top width="74%"><FONT face=宋體 size=3>
<P align=justify>由RAS產(chǎn)生用于解析連接</FONT></P></TD></TR>
<TR>
<TD vAlign=top width="15%"><FONT face=宋體 size=3>
<P align=justify>Hash</FONT></P></TD>
<TD vAlign=top width="11%"><FONT face=宋體 size=3>
<P align=justify>2字節(jié)</FONT></P></TD>
<TD vAlign=top width="74%"><FONT face=宋體 size=3>
<P align=justify>結(jié)束點(diǎn)ID的無符號字節(jié)的總和。如果它為0則代表無hash產(chǎn)生</FONT></P></TD></TR>
<TR>
<TD vAlign=top width="15%"><FONT face=宋體 size=3>
<P align=justify>結(jié)束點(diǎn)ID</FONT></P></TD>
<TD vAlign=top width="11%"><FONT face=宋體 size=3>
<P align=justify>變長</FONT></P></TD>
<TD vAlign=top width="74%"><FONT face=宋體 size=3>
<P
align=justify>連接的結(jié)束點(diǎn)標(biāo)記,從發(fā)現(xiàn)協(xié)議的角度看,它是一個透明值。但是,出于對多廠商的互操作性的考慮,此域的格式必須定義</FONT></P></TD></TR></TBODY></TABLE><FONT
face=宋體 size=3>
<P align=center> <IMG height=88 alt=格式
src="多連接多結(jié)點(diǎn)PPP組.files/PPPBundleDiscovery-2.gif" width=348></P>
<P align=justify>其中:EPD = 結(jié)束點(diǎn)descriminator;remote = 撥號主機(jī);local =
RAS;級和長度域長度為1,數(shù)據(jù)域長度不定,可以為0。MP協(xié)議要求RAS都有相同的本地EPD,對于MMP,RAS可能不會使用它IP或MAC地址作為EPD。據(jù)有同一個輪詢上的RAS都有相同的EPD,不同的輪詢上可以共享不同的EPD。本地EPD被包括在結(jié)束點(diǎn)標(biāo)記中以保證在不同輪詢上的主機(jī)不會被因?yàn)镋PD的相同而被發(fā)現(xiàn)機(jī)制發(fā)現(xiàn)。除了單播響應(yīng)消息外,其它據(jù)有消息均發(fā)送到規(guī)定的組播地址上。如果系統(tǒng)不能發(fā)送組播消息,可以使用255.255.255.255進(jìn)行廣播。</P>
<P align=justify>2.2 結(jié)束點(diǎn)標(biāo)記匹配</P>
<P
align=justify>比較結(jié)束點(diǎn)ID會是很費(fèi)事的。首先必須決定EPD的等級,然后再比較值。這些比較是比較費(fèi)時的,為了提高效率,使用hash域可以提高比較速度。當(dāng)BH創(chuàng)建后,hash也隨之創(chuàng)建并和結(jié)束點(diǎn)ID一起保存。當(dāng)查詢或響應(yīng)消息產(chǎn)生時,hash被創(chuàng)建并保存在這些消息中。當(dāng)RAS接收到一條消息,它可以進(jìn)行利用hash和自己表中的相應(yīng)hash域進(jìn)行快速比較。如果hash不匹配,結(jié)束點(diǎn)不可能匹配,如果hash匹配,還要對結(jié)束點(diǎn)ID進(jìn)行比較以確定是否匹配。創(chuàng)建hash也是有代價的,但對于每個BH和消息,它只創(chuàng)建一次,比較卻要進(jìn)行多次,因此還是劃算的。</P>
<P align=justify>2.3 協(xié)議操作</P>
<P
align=justify>在本節(jié)中,據(jù)有的配置參數(shù)由它們的名字指定,例如ROBUSTNESS指傳輸數(shù)目等。發(fā)現(xiàn)協(xié)議在QUERY_INTERAL時組播ROBUSTNESS查詢消息,如果響應(yīng)消息在上一廣播的QUERY_INTERVAL時間之內(nèi)接收到,RAS會認(rèn)為這是個主連接并開始建立BH,它發(fā)出一個組播響應(yīng)消息。如果接收到響應(yīng)消息,則不需要再發(fā)出另外的查詢消息了,RAS就已經(jīng)建立了一條通向包括BH的通道了。</P>
<P
align=justify>如果RAS接收到一個MP連接的查詢請求,而對此連接已經(jīng)有BH了,它發(fā)出向查詢者傳送響應(yīng)消息。這里不需要重復(fù)響應(yīng)消息,因?yàn)榧词勾讼G失,查詢者的下一查詢消息還會使RAS發(fā)出響應(yīng)消息的。</P>
<P align=justify>2.4 處理連接</P>
<P
align=justify>在發(fā)送查詢消息時,如果接收到相同MP連接的查詢消息,則說明撥入結(jié)點(diǎn)同時請求多連接,解決的方法是選擇BH。每個RAS等待據(jù)有的查詢消息被發(fā)完,此后,擁有最小隨機(jī)ID的RAS變?yōu)锽H。如果兩臺或多臺RAS擁有相同的隨機(jī)ID,擁有最小IP地址的RAS成為BH。這臺RAS在QUERY_INTERVAL時間內(nèi)發(fā)出兩個響應(yīng)信息,向MP進(jìn)行說明應(yīng)該形成BH。當(dāng)其它RAS接收到響應(yīng)信息時,它們停止廣播,停止檢測附加的響應(yīng)信息,并且向與它們相關(guān)的MP進(jìn)程說明BH在什么地方。</P>
<P
align=justify>RAS為每個連接產(chǎn)生一個隨機(jī)ID,在查詢和響應(yīng)信息中使用與相關(guān)連接關(guān)聯(lián)的隨機(jī)ID值。因此隨機(jī)ID不能重復(fù)使用,除非能夠保證其它RAS不會因?yàn)橹貜?fù)使用隨機(jī)ID而把信息發(fā)錯了地方。</P>
<P align=justify>2.5 MP操作</P>
<P
align=justify>MP必須以下面的算法保證對于相同的MP連接不會有不同的BH。在進(jìn)行MP連接時,必須首先檢查是否已經(jīng)為此連接創(chuàng)建了BH。如果創(chuàng)建了,則直接與此BH產(chǎn)生關(guān)聯(lián)即可不必進(jìn)行發(fā)現(xiàn)。作為一種優(yōu)化,如果MP未發(fā)出此連接的BH,但發(fā)現(xiàn)存在此連接的次連接,MP應(yīng)該連接到這個已知的BH上,而不進(jìn)行發(fā)現(xiàn)。如果MP未找到已知的BH,那就進(jìn)行發(fā)現(xiàn)過程,如果發(fā)現(xiàn)過程發(fā)現(xiàn)了BH,那MP就應(yīng)該使用這個BH,如果發(fā)現(xiàn)過程沒有發(fā)現(xiàn),則MP創(chuàng)建新的BH。當(dāng)RAS決定要為連接創(chuàng)建BH時,不要拖延,越快越好,因?yàn)樵娇旖⒕涂梢栽皆绲貫槠渌黂AS主機(jī)進(jìn)行響應(yīng),如果這個RAS拖延了,其它主機(jī)可能建立它們自己的BH。</P>
<P align=justify>3. 傳輸協(xié)議</P>
<P align=justify>第二層通道協(xié)議(L2TP)用于將PPP數(shù)據(jù)從包括次連接的RAS傳輸?shù)桨˙H的RAS上。</P>
<P align=justify>4. 配置</P>
<P align=justify>有兩個必須的配置開關(guān)和一個條件配置開關(guān)。它們都是必須配置的。</P>
<P align=justify>4.1 Robustness</P>
<P
align=justify>此開關(guān)設(shè)置查詢消息的重復(fù)次數(shù),其值在1-15之間,默認(rèn)值為3。這個值太小了可能會造成查詢不完全,太大了會使用MP超時,在網(wǎng)絡(luò)情況不好時可以設(shè)置大一點(diǎn)。</P>
<P align=justify>4.2 Query Interval</P>
<P
align=justify>此開頭設(shè)置在響應(yīng)消息和查詢消息之間的時間。它的單位是1/10秒,值在1-15之間,默認(rèn)值為1。太大了會使用MP超時,在網(wǎng)絡(luò)情況不好時可以設(shè)置大一點(diǎn)。</P>
<P align=justify>4.3 TTL(條件的)</P>
<P
align=justify>此開關(guān)設(shè)置所有發(fā)現(xiàn)包IP層的TTL,對于使用限制廣播地址的系統(tǒng),不應(yīng)該實(shí)現(xiàn)此開關(guān),TTL應(yīng)該設(shè)置為1,默認(rèn)值是1。</P>
<P align=justify>5. 安全問題</P>
<P
align=justify>發(fā)現(xiàn)機(jī)制中沒有涉及到安全機(jī)制,當(dāng)不轉(zhuǎn)發(fā)組播包時,發(fā)現(xiàn)包會局限于一個LAN內(nèi),如果LAN在物理上安全的,不需要進(jìn)行軟件上的保護(hù)。如果可以進(jìn)行組播轉(zhuǎn)發(fā),但限制的范圍很小,只需要物理上的安全網(wǎng)絡(luò),不需要進(jìn)行軟件保護(hù)。如果組播可以穿過整個Internet(雖然不推薦這樣做)對RAS的認(rèn)證可以通過IPSEC完成。</FONT></P></TD></TR></TBODY></TABLE></BODY></HTML>
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -