[ 永遠的UNIX::UNIX技術資料的寶庫 ]   GB | BIG5

首頁 > 網絡管理 > 局域網技術 > 正文
網路概論---9.超越LAN之外 --- Internetworking
http://www.study-area.net/menu1.htm (2001-06-03 21:04:00)
    基本上我們前面所接觸的都是在LAN的圍但時至今日的網絡尤其是internet的蓬勃發展我想也很少網絡會獨立在局域之內吧所以了解一下網路和網路之間的通訊是勢在必行的了。 

在某些定義來看一個LAN就好像一台放大比例的電腦只不過更加雜而已那麼在LAN和LAN之間組建網路我們稱之為internetworking比如 

圖書館可以通過它安排聯網借還 
可以將各醫院的病人記錄集中管理 
銀行可以通過它進行轉帳 
報館之間可以進行新聞交換 
旅行社可以為客人預定全世界的機票和座位 
等等可以說internetworking所帶來的便利遠超過我們能夠想象的。 

Internetworking設備 


增益器(Repeater) 


我們已經在前面講述過repeater的功能了它是用來放大傳輸信號的。當我們的網路線路過長的時候信號會因為損耗而減弱甚至丟失這樣的話repeator就可以在中間幫我們將信號接收下來然後把它放大重新繼續傳送以達到我們預定的距離。 

準確來講repeater不能算是internetworking的設備僅可以算是網路的延伸設備基本上它做到的只是重它所收到的信號而已。 


橋接器(Bridge) 


它是一個硬體或軟體用來連接不同的網路區段(segment)的設備(一個segment就是一個無需借助internetworking設備連接的電腦群體)。例如您可以用一個bridge來連接兩個Ethernet segment或連接一個Token Ring segment到一個Ethernet segment或連接一個Mac segment到一個PC segment。 

只要網路間使用相同的上層協定(如IPX或TCP/IP)bridge就可以成功的將任何網路連接到其它網路它們之間的溝通就無需理會對方使用的是何種機器(網路硬體)了。 

一個bridge的資料傳輸主要有三個步驟 


Discovery就是bridge的任意一端告訴bridge有資料需要傳送到另一端 
Filtering接著bridbe過濾(filter)資料並將協定翻譯給目的端 
Forwarding然後bridge將資料傳送(forward)給目的端的正確地址 

其實bridge是很簡單的就像一座橋架於不同的網路之間您可以將它想象成兩個國家之間的邊境橋樑而兩國都使用著自己各自的語言一邊說Token語另一邊說Ether語。由於兩國過從甚密然語言又互不相通所以他們就聘請了一個傳譯員坐在橋中間再另外聘兩個跑腿各站兩邊。當說Token語的跑腿來告訴傳譯員他們有信息傳到另一邊傳譯員首先將地址翻譯成Ether語再將信息重新裝進Ether國的信封然後叫說Ether語的跑腿將信送到該地址去。傳譯員一點也不在乎信是從哪邊過來的他只關心的是地址準確就行。 

為什麼我們說使用橋的時候網路之間要使用相同的上層協定呢您可以將這些上層協定看成是語言規則。無論是說Token語還是說Ether語他們都使用相同的方法用口來說假如Token國人用畫畫來溝通而Ether國人卻用跳舞來溝通(也就是說他們使用不同的上層協定)那麼這個傳譯員也只有乾瞪眼的份兒了。 

另外bridge除了是一個傳譯員之外它還可以充當交通警察。當我們發現網路過繁忙的時候那麼我們就可以將網路分成兩個或多個segment而bridge就可以幫助網路更好的管理交通和解決瓶頸問題了。 


路由器(Router) 


和bridge差不多router也是一個用來將資料從一個網路節點傳送到其它網路的硬體或軟體設備並能把資料從出發地使用的協定翻譯成目的地使用的協定。 

在使用bridge的時候它的傳譯員會要求所有信息先得經他才能傳出去就算是同一國度裡面的人民相互分享資料傳譯員也要先檢查一下確定是否要進行翻譯傳遞。。這方面router比bridge聰明些也不像bridge那樣勞碌。在router上面的傳譯員會先問跑腿“這資料要送哪裡去的啊”如果資料是傳遞到相同的國度裡去router就根本無需理會而讓資料按其正常的方法傳遞就如根本沒有router存在一樣。只有那些需要翻譯的資料router才會理會。簡單來說bridge會對所有信息進行檢查看看是否要翻譯傳遞而router僅對那些需要翻譯的信息進行處理。 

和bridge不同的是bridge需要所有的segment使用相同的傳輸協定(transport protocol)而router則要求他們使用相同的路由協定(routing protocol)通常是router自己使用的特定協定。 

還要一種叫做Brouter(我也不知道如何翻譯好)的設備可以應用於不同的傳輸協定上面它揉合了bidge和router的優點所在既可以使用不同的上層協定也可以直接將數據以最快的路徑傳遞。當然它的問題是比較難昂貴而且安裝也是件非常頭疼的事情它需要對每一個不同的網路進行細的調校。如果您有一個比較雜的具有多種平的大型網路環境使用brouter通常可以獲得最佳的效能盡管安裝比較困難但一旦設好了自是受益非淺。 


網關(Gateway) 


Gateway可以說是internerworking的最後設備了它通常是一些硬卡跑著一些軟體專門是設計給兩個完全不同的網路結構(比如PC網路和SNA Mainframe)之間進行溝通的。 

如若bridge和router使用的傳譯員僅能夠翻譯語言gateway這個更高級的翻譯卻能完全的將各自不同的交流模式進行翻譯並能讓對方可以理解不管他們使用的是畫畫還是跳舞。 


Bridge的使用 

正如剛才提到bridge的時候已經知道它的主要功能就是過濾(filter)和傳遞(forward)當bridge接到一個封包的時候它就得問自己“這個封包究竟是留在這個區段內還是應該傳遞到下一個區段呢” 

讓我們先假設在兩個Ethernet區段之間架設了一個bridge您有一個資料想從區段甲的節點A送到區段乙的節點B其過程有的像這樣當節點A送出的封包抵達bridge的時候bridge會先檢查封包的來源地址和目的地址如果是寄往同一區段的其它節點的話(在bridge的同一邊)橋就不會向區段乙進行廣播了我們稱這功能為過濾這樣區段乙就減少了無必要的交通了參考下圖 


 

但是如果封包是要傳遞到另外一個區段的那麼bridge就將封包向另外一邊廣播這動作我們稱之為傳遞 


 

Bridge通常是獨立協定之外的可以同時支持多個協定它只關心封包的來源和目的地址不管雙方使用的封包是IPX還是TCP/IPbridge都毫不理會。只要它讀得懂來源和目的地址就能夠判定要對封包進行過濾還是傳遞。 

有一種learning bridge會保持一個表格記錄哪些地址屬哪個區段每次有封包在網路中廣播的時候bridge都會參照記錄檢查其封包地址並進行必要的更新。但並不是所有bridge都會這樣做有些比較低檔的bridge就不管三七二十一凡是接到封包就給它傳遞出去我們稱這樣的bridge為forward-only bridge請參考下圖 


 
Learning Bridge: 只對不同區段的封包進行傳遞。 

大多數的bridge都只能夠連接兩個網路區段如果您的網路擴展到一定圍的時候您就要考慮增加bridge了。然而當使用多個bridge的時候您就會有風險遇到looping的問題。這通常發生在當區段之間有超過一個路徑的時候 


 

如上圖所示當區段甲的節點A對區段乙的節點B進行廣播有兩個bridge接收到信息並認為目的地是在區段乙也就將封包傳遞出去了。當節點B接收到這兩個封包的時候很有可能不知道它們是相同的數據如果節點B將兩份資料都寫到同一個檔案裡面的話就會造成數據錯誤的情形了。 

不過可以告訴大家的是bridge looping只會在Ethernet邏輯形態和Bus物理形態上面出現但使用802.5的Token Ring網路對它是免疫的。 

有些bridge也可以連接兩個以上的區段當有廣播封包(就是給所有節點的封包)要發送的時候由於它是要傳遞給網路上所有節點的bridge就會將它傳遞給所有連接上來的區段我們稱這樣的情形為flooding。越多這樣的廣播封包flooding的出現也就越頻繁網路也就越慢 


 

當您有一個定點封包傳到bridge的時候bridge就要判定究竟要對此封包進行過濾還是傳遞。如果連接到它的區段超過兩個的話它還要知道究竟傳遞到哪個網段去。一些低檔的bridge並不會像learning bridge那樣會記住地址屬於哪個區段然後它就簡單地會向所有連接的區段進行廣播這樣一些不必要交通也就多起來了 


 

那究竟我們如何避免flooding呢下面有兩個選擇 

如果您需要使用一個bridge來連接多個區段確定您購買的是learning bridge也就是能夠追蹤每個節點地址的bridge。 
您還可以購買half-bridge也就是使用一對bridge將過濾和傳遞工作分開。見圖 


 
Half-bridge也有被稱做remote bridge通常是配對的用來連接兩個區段而各自只負責一半處理。例如有一個封包要由區段甲的節點A送到區段乙的節點B先會到達區段甲的half-bridge這個half-bridge只會記著自己所連接的區段之內的地址如果地址不是在此區段那麼就將封包傳給另外一個half-bridge當另外的half-bridge收到封包之後看看地址是否屬它所屬的區段如果不是的話這個封包就會被忽略也不會被重發。這樣網路的交通就會被限制在最低的情況之下了。 

Bridge的標準 

由於bridge只有很低的處理能力如果網路交通太忙的話有可能出現封包丟失的情形。為了解決這樣的問題一些bridge的標準相繼的被開發出來通常有兩個標準是比較廣泛被接受的它們是spanning tree和source-route bridging標準。而且這些標準還可以解決looping和flooding的問題呢不錯哦~~ 

Spanning Tree Standard 


此標準裡面網路會有一個root bridge然後其下還有一些child bridge這個root bridge會決定目的封包要傳遞給哪一個child bridge。由於上級bridge只會將封包傳遞給包含該目的地址的下級bridge因而也就避免了looping的可能性了。 


 

Spanning Tree是由Digital Equipment Corporation (DEC)開發的是專門給802.3 (邏輯bus或Ethernet)和802.4(token bus)網路使用的。給802.5的Token Ring使用的是下個要說的標準。 


Source-route Bridging Standard 


在Source-rout Bridging標準裡面發送端節點要先判定哪個傳送路徑是最佳的再將封包傳給bridge然後再傳給目的地的bridge。這時候bridge可以當成網關(gateway)一樣。它們的連接如下圖 
 
當一個bridge判定了兩個節點之間的最佳路徑之後就會永遠地使用此一路徑就算以後還有更佳路徑的出現也不會被考慮的了。如果您想您的bridge能夠適應不同的網路交通層次並能報告出進行橋接過程的錯誤信息那麼您需要的並非bridge而是router了。 

Router的使用 

Router有那些功能呢先讓我們先將它和bridge做一個透視比較 

Router可以在節點間進行多工處理 
Router可以直接和使用者設備對講 
Router可以協助管理網路交通 
不像bridgerouter並不會閱讀所有在網路上面的封包只會閱讀那些需要進行路由的封包 
由於router是用來連接不同網路的所以他們並不能獨立協定之外 
為了更好的了解router的功能您最好先要明白router是如何工作的以及它和bridge的分別。它們主要的分別是它們如何看待所連接上來的區段當使用bridge連接兩個網路的時候它們僅屬同一網路之內的兩個區段如果使用router來連接兩個網路它們是各自獨立的網路。 

如下圖所見當網路1的節點A要傳送一個封包網路6的節點B節點A會先將封包傳給連接到網路1的router 1。當router 1接到封包的時候他就得要判定哪條是最佳的傳遞給網路6 的路徑。通常最佳的路由路徑對會在好幾個不同的router之間跳來跳去的但無論如何在router將送出封包之前都會根據當前情況而選擇最佳的路徑而不像bridge那樣一旦選定了路徑就永遠固定下來。Router具備這種搜索路徑的能力是非常有用的然而是基於它能否看到其它router的能力而定。 


 

由於Router 1分別連接到Router 234它會知道它們有多忙以及它們和哪些網路連接著這樣當Router 1有封包要傳遞到其它網路的時候它就會看看哪條路徑在當時是最快的。由於router 2和4都比較忙所以router 1也就選取了沒那麼忙的router 3為路徑了。 

每次當封包從一個router傳到另一個router的過程我們稱之為“hop”,為了找到一條最少hop數的路徑封包的路徑通常會在中就會被改變而補償網路交通的變化。例如在網路1的節點A有一個封包要送到網路4的節點B必需經過router123和4您可以從下圖看到初始路徑的選擇 


 

然而當封包從Router 1移到Router 2的時候Router 2或許會說“嗯~~ 我可以將這個封包傳給Router 3不過~~ Router 3現在看起來挺忙的我想封包如果經由Router 5然後到6再到7再到4或許比較快些咧因為567好像比較清閑。”這條路徑就會改變成下圖那樣了 


 

雖然這路徑要經的hop數目更多但它依然是比經由繁忙的router 3 要快。 

當封包在進行路由的時候有兩組地址是router必需追蹤的封包的來源和目的地址以及datalink的來源和目的地址。網路來源地址和目的地址通常是這樣的一個組合網路號碼和節點地址這兩個地址在路由的任何過程中都不會改變。但datalink地址(例如封包從哪台router來和要送到哪個router去)記錄著即刻需要從一個router傳到下一個router的傳遞信息而最終抵達目的地。您可以從下圖看到這過程是如何工作的 


 

正如您所見到的router和router之間必需相互認識才能讓路由工作正常。更重要的是對使用者而言所有工作站都必須知道它們直接連到哪個(些)router去。每次當一個router加入到網路中的時候它都會向WAN上面的其它router廣告自己的地址和其所連接的網路 


 

當其它router接收到這樣的廣播信息之後就會將資料加入本身的路由表(routing table)去如果越多router加入那麼路由表也就越大。至於路由表的格式則視乎所使用的路由協定而定這些協定都會規定出諸如如何產生路由表如何對建構的表格進行追蹤要保存什麼樣的資料以及每個router如何和別的router進行溝通等細節。其中有一個比較簡單的路由協定叫做 Routing Information Protocol (RIP)。 

當您開啟一個RIP router的時候它會先建立好自己的路由表首先它向所有它連接的網路廣播自己地址並廣告其它在WAN上面的router這些信息。然後大約每隔一分鐘router就會對資料進行更新在其余時間它會傾聽其它router的廣告信息如何將所有新信息加進自己的路由表。這裡的最重要字眼是 --- 新。每次當router的狀態或連接發生改變的時候它都會廣播這些信息讓其它router將舊信息刪除掉換成新的信息。這樣如果WAN上面有一個router工作不良的話其它router就會知道而不會再將封包傳送給它了。 

您可以把RIP router看成是極度信任別人的一伙它們之間不斷地相互交談但永遠只相信最後告訴它們的router所說的。不過這樣有一個潛在的問題如果其中一個router有一個錯誤的關別的router的信息然後將這不實信息在WAN上傳播開其它router接收到信息後就會更新它們的路由表而不實的路由表會導致封包的傳送速度變慢。其情形就如下圖一樣 


 

為了繞過這個問題許多新的路由協定都只會廣播其直接連的網路信息也就增加了資料的可信性了。 

Gateway的使用 

Gateway的工作比bridge和router都要雜許多Bridge只是簡單的看看封包資料的來源和目的地址然後將資料傳遞到正確的地方Router則會看看封包資料然後把封包傳給其它router一路的改變datalink的來源和目的地址但並不改變封包裡面的資料但是Gateway卻實際上可以有效地將資料從一種協定標準轉換成另一種協定標準它在處理使用完全不同協定的網路間的數據傳輸過程中可以使用兩種方法tunneling和terminal emulation。 

Tunneling 


這是最常用而且也是處理器耗費最少的方法。使用tunnelinggateway會先使用第一個網路的格式傳送封包並將之包裹在雙方都容易理解的格式然後在另外一個網路中使用另一種格式進行傳送。 

概念上tunneling和郵局系統差不多如果您使用公司內部便條傳一個memo給同辦公室的同事只要填上發信人和收信人然後交由秘書就可以但如果要經過郵局寄信給分公司的某經理的話則不能使用這樣的格式了。因為郵局不知道如何處置這便條才好所以您必須將便條裝進郵局標準信封(也就是所謂的雙方都容易理解的格式)裡面然後郵局將信件傳(路由)到分公司經理然後他把郵局信封(路由信封)撕掉就可以得到您的便條了假如便條是用英文寫的而那經理卻只識中文那麼就要找秘書給翻譯(數據轉換)了。 

比如說我有一個Novell IPX封包要從我的PC送給在AppleTalk網路上面的Mac而Netware和AppleTalk都可以理解TCP/IP。這樣我就可以進行資料傳輸了PC將封包裝進一個TCP/IP“信封”裡面然後將封包發送出去當抵達Mac之後將TCP/IP信封撕掉而得到真正的封包但此時Mac依然是讀不懂封包內容的它還的做些數據轉換工作才能看的懂PC的數據。不過數據轉換卻不是gateway的問題哦一旦數據從PC網路抵達Mac網路gatewate的任務就大功告成了。如果您記不起前面討論TCP/IP時候的圖示現在也可以重溫一下 


 


Terminal Emulation 


另一種gateway方法是使用terminal emulation。Mainframe原本在設計上並不是和PC溝通的它們是使用dumb terminal進行通訊的。這樣當一台PC要和mainframe通訊的時候它在轉換過程中就得將自己當成終端才行。 

通常有兩種方法可以進行終端模擬終端模擬卡和終端模擬軟體同時也有兩個途徑來成功地執行終端模擬 


PC Emulation Card或稱為gateway card您可以將它插進每一台需要連接mainframe的PC。不過這通常都很費勁才能將之調整正確因為這比較容易引起資源突或是系統不穩定等問題。您可以從下圖看到這樣的配置 


 

Gateway Server您也可以專門指定一台PC為工作站處理所有的模擬工作這樣的PC就成為gateway server了。模擬卡只需安裝在這台機器之上就可以 


 

這樣所有工作站都使用模擬軟體連接到gateway server再通過模擬卡和mainframe溝通 


然而使用 Emulation Card 進行終端模擬都會有下面的不利因素 


比較昂貴您必須購買額外的硬體和軟體來讓您的PC和mainframe溝通。 
額外的軟體和硬體也容易引起更多的設備突。 
比較慢每次您要由一個作業系統要求另外一個系統都需要時間。 

針對那些問題您或許會考慮使用gateway server不過您依然還是會碰到這些問題的只不過將問題集中在一台機器而不是在所有機器而已而且那些使用軟體的工作站還依然可能會碰到軟體上面的麻煩。 


小結 

至此為止相信您也已經有一定的概念去如何使用各種不同的設備將您的LAN連到WAN上面了吧。如果您管理的是一個小辦公室那您很有可能是邀請外面的商家幫您連接您的LAN。然而當您的網路成長的時候對各種WAN設備的需求也會顯得越來越重要了。 

(http://www.fanqiang.com)
    進入【UNIX論壇

相關文章
網路概論---10.電信 (Telecommunication) (2001-06-03 22:08:00)
網路概論---9.超越LAN之外 --- Internetworking (2001-06-03 21:04:00)
網路概論---8.網路作業系統 (2001-06-03 20:10:00)
網路概論---7.通訊協定 (2001-06-03 19:00:00)
網路概論---6.網路管理模式 (2001-06-03 18:55:37)
網路概論---5.網路架構 (2001-06-03 17:04:00)
網路概論---4.連線材料 (2001-06-03 16:10:00)
網路概論---3.一些網路名詞 (2001-06-03 15:00:00)
網路概論---2.網路能做些什麼 (2001-06-03 14:08:00)
網路概論---1.何為網路? (2001-06-03 13:04:00)
 

★  樊強制作 歡迎分享  ★