網路層
出自 MBA智库百科(https://wiki.mbalib.com/)
目錄 |
網路層是OSI參考模型中的第三層,介於運輸層和數據鏈路層之間,它在數據鏈路層提供的兩個相鄰端點之間的數據幀的傳送功能上,進一步管理網路中的數據通信,將數據設法從源端經過若直幹個中間節點傳送到目的端,從而向運輸層提供最基本的端到端的數據傳送服務。主要內容有:虛電路分組交換和數據報分組交換、路由選擇演算法、阻塞控制方法、X.25協議、綜合業務數據網(ISDN)、非同步傳輸模式(ATM)及網際互連原理與實現。
網路層的目的是實現兩個端系統之間的數據透明傳送,具體功能包括定址和路由選擇、連接的建立、保持和終止等。它提供的服務使運輸層不需要瞭解網路中的數據傳輸和交換技術。為了說明網路層的功能,如圖4.1所示的交換網路拓撲結構,它是由若幹個網路節點按照任意的拓撲結構相互連接而成的。網路層關係到通信子網的運行控制,體現了網路應用環境中資源子網訪問通信子網的方式。網路層從物理上來講一般分佈地域寬廣,從邏輯上來講功能複雜,因此是OSI模型中面向數據通信的下三層(也即通信子網)中最為複雜也最關鍵的一層。
端點之間的通信是依靠通信子網中的節點間通信來實現的,在OSI模型中,網路層是網路節點的最高層,所以網路層將現通信子網向端系統所提供的網路服務。在分組交換中,通信子網向端系統提供的虛電路和數據報兩種網路服務,而通信子內部的操作方式也有虛電路和數據報兩種。通信子網的虛電路操作方式及網路層提供的虛電路服務:虛電路操作方式:為了進行數據的傳輸,網路的源節點之間先要建立一條邏輯通路,因為這條邏輯電路不是專用的,所以稱這為“虛”電路。每個節點到其它任一節點之間可能有若幹條虛電路支持特定的兩個端系統之間的數據傳輸,兩個端系統之間也可以有多條虛電路為不同的進程服務。這些虛電路的實際路徑可能相同,也可能不同。
假設有兩條虛電路經過某節點,當一個數據分組到達時,該節點可利用下述方法判明該分組屬於哪條虛電路,並且能將其轉送至下一正確節點。一個端系統每次在建立虛電路時,選擇一個末被使用虛電路號分配給該虛電路,以便區別於本系統中的其它虛電路。在每個被傳送的數據分組上不僅要有分組號、檢驗和等控制信息,還要有它要通過的虛電路的號碼,為區別於其它虛電路的數據分組。在每個節點上都保存一張虛電路表,表中各項記錄了一個打開的虛電路的信息,包括虛電路號、前一個節點、下一個節點等信息,這些信息是在虛電路建立過程中被確定的。上述採用固定虛電路號的虛電路表法存在著缺陷,因為各個端系統各自獨立地選取虛電路號,就有可能造成虛電路號的重覆,如果兩條編號相同的虛電路經過同一個節點,便會產生畸義。解決的方法是採用“動態”的虛電路號。
“動態”的虛電路號,是指各節點對同一條虛電路,根據本節點的實際情況給予可能不同的編號,與之對應的各節點的虛電路表可能也是在呼叫請求過程中建立的。比如,與A節點相連的端系統發出呼叫請求時,請求分組已含有端系統所選取的不用的最低虛電路號N,A節點到請求分組後不直接其轉送給下一節點C,而是在A節點與C節點間所有已使用的虛電路號之外選取一個最低編號NA,並將請求分組中的虛電路號N替換成該編號NA,再將分組發送給下一節點C。自此以後的各節點依次逐個根據自身實際情況選取新的編號(如NB、NC、ND)等來替換收到的分組中的虛電路編號,目的節點最後將請求分組傳送給連接它的端系統,這樣便使得虛電路所跨越的每一段連接上的虛電路號都是唯一的。在虛電路建立好以後各類分組的傳送過程中,也同樣要進行如上的虛電路號的替換操作。
在建立虛電路的同時,每個節點的虛電路表中的每一項要記錄兩個虛電路號:前一個節點所選取的虛電路號和本節點所選取的虛電路號。這樣一來,每條虛電路就有了唯一的一套虛電路編號。圖4.2說明瞭圖4.1網路中各節點的虛電路表,這裡假設建立了6條虛電路。由於虛電路上的數據是雙向傳輸的,為保證兩節點之間正、反兩個方向的虛電路不相混淆,在一個節點選取虛電路號來替換其前一節點使用的虛電路號時,不僅要考慮以下一節點之間的虛電路號不相同,還要考慮以下一節點作為另一條反向虛電路的上一節點時所選取的虛電路號相區別。例如,在建立虛電路1-BAE時,(這裡1-BAE表示源節點為B,建立虛電路時選取1為虛電路號,並經A傳送到E),在節點B中,儘管A節點是第一次作為B節點,但由於虛電
路0-ABCD中A到B間已使用了虛電路號0,因此在出路一欄應選B到A間的虛電路號為1。這樣,當從節點A發來一個分組時,若它所攜帶的虛電路號0,則說明是虛電路ABCD上的正向分組;若為1,則說明是虛電路BAE的反向分組。對於2-BFE的建立也是同樣情況。
虛電路服務:虛電路服務是網路層向運輸層提供的一種使所有分組按順序到達目的端系統的可靠的數據傳送方式。進行數據交換的兩個端系統之間存在著一條為它們服務的虛電路。為了建立端系統之間的虛電路,源端系統的運輸層首先向網路層發出連接請求,網路層則通過虛電路網路訪問協議向運輸層發出連接指示,最後,接收方運輸層向發起方發回連接響應從而使虛電路建立起來。以後,兩個端系統這間可傳送數據,數據由網路層拆成若幹組送給通信子網將分組傳送到數據接收方。
上述虛電路的服務是網路層向運輸層提供的服務,也是通信子網向端系統提供的網路業務。但是,提供這種虛電路服務信子網內部的實際操作既可以是虛電路方式的,也可以是數據報方式的。以虛電路方式操作的網路,一般總是提供虛電路服務,OSI中面向連接的網路服務就是虛電路服務。在虛電路操作方式中,端系統的網路層同信子網節點的操作是一致的,SNA,TRANSPAC等多數公共網路都採用這種虛電路操作支持虛電路服務的方式。
以數據報方式操作的網路,也可以提供虛電路服務,即通信子網內部節點按數據報方式交換數據,而與端系統相連的網路節點則向端系統提供虛電路服務。對於端系統來說,它的網路層與網路節點間的通信仍象虛電路操作方式的網路節點間情形一樣,先建立虛電路,再交換數據分組,最後拆電路。但實際上,每個分組被網路節點分成若幹個數據報,附加上地址、序號、虛電路號等信息,分送到目的節點。目的節點再將數據報進行排序,拼成原來的分組,送給目的端系統。因此,源端系統和源網路節點之間、目的節點和目的網路層按虛電路操作方式交換分組,而目的節點和源節點之間則按數據報方式完成分組的交換。儘管通信子網的數據報交換不是很可靠,但是兩端的網路節點做了許多諸如排序、重發等額外工作,從而滿足了虛電路服務的要求。例如,在ARPANET中,內部使用數據報交換方式,但可以向端系統提供數據報和虛電路兩種服務。
通信子網的數據報操作方式及網路層提供的數據報服務:數據報操作方式:在數據報方式中,每個分組被稱為一個數據報,若幹個數據報構成一次要傳送的報文或數據塊。每個數據報自身攜帶有足夠的信息,它的傳送是被單獨處理的。一個節點接收到一個數據報後,根據數據報中的地址信息和節點所存儲的路由信息,找出一個合適的出路,把數據報原樣地發送到下一個節點。當端系統要發送一個報文時,將報文拆成若幹個帶有序號和地址信息的數據報,依次發給網路節點。此後,各個數據報所走的路徑就可能不同了,因為各個節點在隨時根據網路的流量、故障等情況選擇路由。由於各行其道,各數據報不能保證按順序到達目的節點,有些數據報甚至還可能途中丟失。在整個傳送過程中,不必建立虛電路,但要為每個數據報作路由選擇。
數據報服務:數據報服務一般僅由數據報交換網來提供。端系統的網路層同網路節點中的網路之間,一致地按照數據報操作方式交換數據。當系統要發送數據時,網路層給該數據附加上地址、序號等信息,作為數據報發送給網路節點;目的端系統收到的數據報可能是不按序到達的,也可能有數據報的丟失。例如,在ARPANET、DNA等網路中,就提供了數據報服務。數據報服務與OSI的無連接網路服務類似。由虛電路交換網提供數據報服務的組合方式並不常見。可以想象有這麼一種特殊情況:一個端系統的網路層已經構造好了用於處理數據報的服務,而當它要接入以虛電路方式操作的網路時,網路節點就需要做一些轉換工作。當端系統向網路節點發送一個攜帶有完整地址信息的數據報時,若發向同一地址的數據報數量足夠大,則網路節點可以為這些數據報同目的節點間建立一條虛電路,所有相同地址的數據報要發送時,這條虛電路便可拆除。所以,這種數據報服務具有了虛電路服務的通信質量,但是既不經濟,效率也低。
兩種操作方式及兩種網路服務的特點:兩種操作方式的特點:虛電路分組交換適用於端系統之間長時間的數據交換,尤其是在頻繁的,但每次傳送數據又很短的互動式會話情況下,免去了每個分組中地址信息的額外開銷,但是每個網路節點卻需要負擔維持虛電路表的開銷。因此,要將這兩個因素進行權衡,另外還要考慮如果建立和拆除電路的次數過於頻繁也不合適。數據報免去了呼叫建立過程,在分組傳輸數量不多的情況下要比虛電路簡單靈活。每個數據報可以臨時根據網路中的流量情況選取不太擁擠的鏈路,不象虛電路中的每個分組必須按照連接建立時的路徑傳送。每個節點沒有額外開銷,但每個分組在每個節點都要經過路由選擇處理,會影響傳送速度。
虛電路提供了可靠的通信功能,能保證每個分組的正確到達,且分組保持原來順序。另外,還可以對兩個數據端點的流量進行控制,當接收方來不及接收數據時,可以通知發送方暫緩發送分組,但虛電路有一個致命的弱點,即當某個節點或某條鏈路出故障的影響面要小得多,當發生上述故障時,僅有緩存在該節點上的分組可能丟失,其它分組則可繞開故障區到達目的地,或者一直被擱置到故障修複後再傳送。不過,數據報不保證數據分組的按序到達,數據的丟失也不會立即被髮現。兩種網路服務的特點:虛電路服務與數據報服務的本質差別表現為:是將順序控制、差錯控制和流量控制等通信功能交由通信子網完成,還是由端系統自己來完成。虛電路服務向端系統保證了數據的按序到達,免去了端系統在順序控制上的開銷。但是,當端系統本身並不關心數據的順序時,這項功能便成了多餘,反倒影響了無序數據的整體效率。
虛電路服務向端系統提供了無差錯的數據傳送,但是,在端系統只要求快速的數據傳送,而不在乎個別數據塊丟失的情況下,虛電路服務所提供的差錯控制也就並不很必要了。相反,有的端系統卻要求很高的數據傳送質量,虛電路服務所提供的差錯控制還不能滿足要求,端系統仍需要自己來進行更嚴格的差錯控制,此時虛電路服務所做的工作又略嫌多餘。不過,這種情況下,虛電路服務畢竟在一定程度上為端系統分擔了一部分工作,為降低差錯概率還是起了一定作用。
至於虛電路服務所提供的流量控制,有時對端系統來說也並不適宜,比如在要求數據交換速率儘可能高的情況下。因為,虛電路服務將數據總是按固定路徑傳送,而不靈活地走捷徑;另外,流量控制本身就可能規定了交換速率的上限。虛電路服務提供了可靠的數據傳送和方便的進網介面。但是,虛電路服務中電路的建立與拆除在互動式應用中會影響通信效率。可以看出,兩種服務優、缺點各自參半,對二者的選擇取決於應用背景,即網路用戶對通信子網是要求只管數據傳送而不必多管“閑事”,還是希望通信子網提供更可靠的服務來減輕自身的負擔。有人將虛電路服務比作坐公車,將數據報服務比作坐計程車,這種比喻在某種程度上形象地說明瞭兩種服務的特點。
通信子網路源節點和目的節點提供了多條傳輸路徑的可能性。網路節點在收到一個分組後,要確定向一下節點傳送的路徑,這就是路由選擇。在數據報方式中網路節點要為每個分組路由做出選擇;而在虛電路方式中,只需在連接建立時確定路由。確定路由選擇的策略稱路由演算法。設計路由演算法時要考慮諸多技術要素。首先是路由演算法所基於的性能指標,一種是選擇最短路由,一種是選擇最優路由;其次要考慮通信子網是採用虛電路還是數據報方式;其三,是採用分散式路由演算法,即每節點均為到達的分組選擇下一步的路由,還是採用集中式路由演算法,即由中央點或始發節點來決定整個路由;其四,要考慮關於網路拓撲,流量和延遲等網路信息的來源;最後,確定是採用動態路由選擇策略,還是選擇靜態路由選擇策略。
1.靜態路由選擇策略:靜態路由選擇策略不用測量也無須利用網路信息,這種策略按某種固定規則進行路由選擇。其中還可分為泛射路由選擇、固定路由選擇和隨機路由選擇三種演算法。
(1)泛射路由選擇法: 這是一種最簡單的路由演算法。一個網路節點從某條線路收到一個分組後,再向除該條線路外的所有線路重覆發送收到的分組。結果,最先到達目的節點的一個或若幹個分組肯定經過了最短的路線,而且所有可能的路徑都被同時嘗試過。這種方法可用於諸如軍事網路等強壯性要求很高的場合,即使有的網路節點遭到破壞,只要源、目間有一條通道存在則泛射路由選擇仍能保證數據的可靠傳送。另外,這種方法也可用於將一條分組從數據源傳送到所有其它節點的廣播式數據交換中,它還可用來進行網路的最短傳輸延遲的測試。
(2)固定路由選擇:這是一種使用較多的簡單演算法。每個網路節點存儲一張表格,表格中每一項記錄對應著某個目的節點或鏈路。當一個分組到達某節點時,該節點只要根據分組的地址信息便人固定的路由表中查出對應的目的節點及所應選擇的下一節點。固定路由選擇法的優點是簡便易行,在負載穩定,拓撲結構變化不大的網路中運行效果很好。它的缺點是靈活性差,無法應付網路中發生的阻塞和故障。
(3)隨機路由選擇:在這種方法中,收到分組的節點,在所有與之相鄰的節點中為分組隨機選擇一個出路節點。方法雖然簡單,也較可靠,但實際路由不是最佳路由,增加了不必要的負擔,而且分組傳輸延遲也不可預測,故此法應用不廣。
2.動態路由選擇策略:節點路由選擇要依靠網路當前的狀態信息來決定的策略稱動態路由選擇策略,這種策略能較好地適應網路流量、拓撲結構的變化,有利於改善網路的性能。但由於演算法複雜,會增加網路的負擔,有時會因反應太快引起振蕩或反應太慢不起作用。獨立路由選擇、集中路由選擇和分佈路由選擇是三種動態路由選擇策略的具體演算法。
(1)獨立路由選擇:在這類路由演算法中,節點僅根據自己搜到的有關信息作出路由選擇的決定,與其它節點不交換路由選擇信息,雖然不能正確確定距離本節點較遠的路由選擇,但還是能較好地適應網路流量和拓撲結構的變化。一種簡單的獨立路由選擇演算法是Baran 在1964年提出的熱土豆(Hot Potato)演算法。當一個分組到來時,節點必須儘快脫手,將其放入輸出列最短的方向上排隊,而不管該方向通向何方。
(2)集中路由選擇:集中路由選擇也象固定路由選擇一樣,在每個節點上存儲一張路由表。不同的是,固定路由選擇演算法中的節點路由表由手工製作,而在集中路由選擇演算法中的節點路由表由路由控制中心RCC(Routing Control Center)定時根據網路狀態計算、生成並分送各相應節點。由於RCC利用了整個網路的信息,所以得到的路由選擇是完美的,同時也減輕了各節點計算路由選擇的負擔。
(3)分佈路由選擇:採用分佈路由選擇演算法的網路,所有節點定其地與其每個相鄰節點交換路由選擇信息。每個節點均存儲一張以網路中其它每個節點為索引的路由選擇表,網路中每個節點占用表中一項,每一項又分為兩個部分,即所希望使用的到目的節點的輸出線路和估計到目的節點所需要的延遲或距離。度量標準可以是毫秒或鏈路段數、等待的分組數、剩餘的線路和容量等。對於延遲,節點可以直接發送一個特殊的稱作“回聲”(echo)的分組,接收該分組的節點將其加上時間標記後儘快送回,這樣便可測出延遲。有了以上信息,節點可由此確定路由選擇。
阻塞現象是指到達通信子網中某一部分的分組數量過多,使得該部分網路來不及處理,以致引起這部分乃至整個網路性能下降的現象,嚴重時甚至會導致網路通信業務陷入停頓,即出現死鎖現象。這種現象跟公路網中通常所見的交通擁擠一樣,當節假日公路網中車輛大量增加時,各種走向的車流相互干擾,使每輛車到達目的地的時間都相對增加(即延遲增加),甚至有時在某段公路上車輛因堵塞而無法開動(局部死鎖)。
通信子網吞吐量和通信子網負荷之間一般有如圖4.3 所示的關係。當通信子網負荷(即通信子網正在傳輸的分組數)比較小時,網路的吞吐量(單位為分組數/秒)隨網路負荷(可用每個節點中分組的平均數表示)的增加而線性增加。當網路負荷增加到某一值後,若網路吞吐量反而下降,則表徵網路中出現了阻塞現象。在一個出現阻塞現象的網路中,到達一個節點的分組將會遇到無緩衝區可用的情況,從而使帝些分組不得不由前一節點重傳,或者需要由源節點或源端系統重傳。當阻塞比較嚴重時,通信子網中相當多的傳輸能力和節點緩衝器都用於這種無謂的重傳,從而使通信子網的有效吞吐量下降,由此導致惡性迴圈,使通信子網的局部甚至全部處於死鎖狀態,網路有效吞吐量接近為零。在理想的情況下,整個網路的利用率為100%,但為了使網路在高負荷上能穩定運行,應控制網路節點的隊列長度,以避免由於隊列無限增長而產生通信量的崩潰。有控制的網路可以以接近於理想吞吐的狀態穩定運行。
阻塞控制方法
(1)緩衝區預分配法:這種方法用於採用虛電路的分組交換網。在建立虛電路時,讓呼叫請求分組途經的節點為虛電路預先分配一個或多個數據緩衝區。若某個節點緩衝器已被占滿,則呼叫請求分組另擇路由,或者返回一個“忙”信號給呼叫者。這樣,通過途經的各節點為每條虛電路開設的永久性緩衝區(直到虛電路拆除),就總能有空間來接納並轉送經過的分組。當節點收到一個分組並將它轉發出去之後,該節點向發送節點返回一個確認信息,該確認一方面意味著接收節點已正確收到分組,另一方面告訴發送節點,該節點已空出緩衝區以備接收下一分組。上面是“停-等”協議下的情況,若節點之間的協議允許多個未處理的分組存在,則為了完全消除阻塞的可能性,每個節點要為每條虛電路保留等價於視窗大小數量的緩衝區。這種方法不管有沒有通信量,都有可觀的資源(線路容量或存儲空間)被某個連接永久地占有。由於為每條連接分配了專用資源因此不可能有效地利用網路資源。此時的分組交換跟電路交換很相似。
(2)分組丟棄法:這種方法不用預先保留緩衝區,而在緩衝區占滿時,將到來的分組丟棄。若通信子網提供的是數據報服務,則用分組丟棄法來防止阻塞發生不會引起大的影響。但若通信子網提供的是虛電路服務,則必須在某處保存被丟棄分組的拷貝,以便阻塞解決後能重新傳送。有兩種解決被丟棄分組重發的方法,一種是讓發送被丟棄的節點超時,並重新發送分組直至分組被收到;另一種是讓發送被丟棄分組的節點在嘗試一定次數後放棄發送,並迫使數據源節點超時而重新開始發送。但是不加分辯地隨意丟棄分組也不妥,因為一個包含確認信息的分組可以釋放節點的緩衝區,若因節點無空餘緩衝區來接收含確認信息的分組,這便使節點緩衝區失去了一次釋放的機會。解決這個問題的方法可以為每條輸入鏈路永久地保留一塊緩衝區,心用於接納並檢測所有進入的分組,對於捎帶確認信息的分組,在利用了所捎帶的確認釋放了一個緩衝區後,再將該分組丟棄或將該捎帶好消息的分組保存在剛空出的緩衝區中。
(3)定額控製法:這種方法直接對通信子網中分組的數量進行嚴格、精確的限制,以防止阻塞的發生。從圖4.3網路吞吐量與負荷的關係曲線中可看出,為避免阻塞,可將通信子網中正在傳輸的分組數保持在某一負荷值Lc以下。因此,可以設計在通信子網中存在Lc個稱“許可證”的特殊信息,這些許可證中的一部分在通信子網開始工作之前預先以某種策略分配給各個源節點,另一部分則在子網開始工作後在網中四處環游。當源節點要發送一個剛從源端系統送來的分組時,它必須首先擁有這種許可證,並且每發送一個分組要註銷一張許可證。而在目的節點方,則每收到一個分組並將其遞交給目的端系統後,便生成一張許可證。這樣,便保證了子網中分組數量不會超過許可證的數量。
死鎖及其防止
阻塞的極端後果是死鎖。死鎖是網路中容易發生的故障之一,即使在網路負荷不很重時也會發生。死鎖發生時,一組節點由於沒有空閑緩衝區而無法接收和轉發分組,節點之間相互等待,即不能接收分組也不能轉發分組,並永久保持這一狀態,嚴重的甚至導致整個網路的癱瘓。此時,只能靠人工干預,重新啟動網路解除死鎖。但重新啟動後並未消除引起死鎖的隱患,所以可能再次發生死鎖。死鎖是由於控制技術方面的某些缺陷所引起的,起因通常難以難捉摸難以發現,即使發現,常常不能立即修複。因此,在各層協議中都必須考慮如何避免死鎖的問題。
存儲轉發死鎖及其防止: 最常見的死鎖是發生在兩個節點之間的直接存儲轉發死鎖。此時,A節點的所有緩衝區全部用於輸出到B節點的隊列上,而B節點的所有緩衝區也全部用於輸出到A節點的隊列上,A節點不能從B節點接收分組,B節點也不能從A節點接收分組,如圖4.4(a)所示。這種情況也可能發生在一組節點之間,每個節點都企圖向相鄰節點發送分組,但每個節點都無空閑緩衝區用於接收分組,這種情形稱作間接存儲轉發死鎖,如圖4.4(b)所示。當一個節點處於死鎖狀態時,與之相連的所有鏈路都將被完全阻塞。
有一種防止存儲轉發死鎖的方法。設一通信子網直徑為M,即從任一源點到一目的節點的最大中間鏈路段數為M,每個節點需要M+1個緩衝區,以0到M編號。對於一個源節點,規定僅當其0號緩衝區空時才能接收源端系統來的分組,而此分組僅能轉發給1號緩衝區空閑的相鄰節點,再由該節點將分組轉發給它的2號緩衝區空閑的相鄰節點......。最後,該分組或者順利到達目的節點,並被遞交給目的端系統;或者到了某個節點編號為M的緩衝區中,再也轉發不下去,此時,一定發生了迴圈,
應該將該分組丟棄。由於每個分組都按照一定的順序規則分配緩衝區,即分組所占用的緩衝區編號一直在遞增,從而會使節點之間相互等待空閑緩衝區而發生死鎖情況。
重裝死鎖及其防止:死鎖中一種比較嚴重的情況是生裝死鎖。假設發給一個端系統的報文很長,被源節點拆成若幹個分組發送,目的節點要將所有具有相同報文編號的分組重新裝配成報文遞交給目的端系統。由於目的節點用於重裝報文的緩衝區空間有限,而且它無法知道在接收的報文究竟被拆成多少個分組,此時,就可能發生嚴重的問題:為了接收更多的分組,該目的節點用完了它的緩衝空間,但它又不能將尚未接收並拼裝完整的報文遞送給目的端系統。而鄰節點仍在不斷地向它傳送分組,但它卻無法接收。
這樣,經過多次嘗試後,鄰節點就會繞道從其它途徑再向該目的節點傳送分組,但該目的節點已被牢牢鎖死,其周圍區域也由此發生了阻塞現象。下麵幾種方法可以用於免重裝死鎖的發生: 允許目的節點將不完整的報文遞交給目的端系統。 一個不能完整重裝的報文能被檢測出來,並要求發送該報文的源端系統重新傳送。 為每個節點配備一個後備緩衝空間,當重裝死鎖發生時,將不完整的報文暫移至後備緩衝區中。兩種方法不能很滿意地解決重裝死鎖,因為它們使端系統中的協議複雜化了。一般的設計中,網路層應該對端系統透明,也即端系統不該考慮諸如報文拆、裝之類的事情。第三種方法雖然不涉及端系統,但每個點增加了開銷,降低了可靠性。
CCTT於1974年提出了對於分組交換網(Packet-Switched Network,PSN)的標準訪問協議---X.25,並於1976、1980、1984和1988年相繼作了修訂,X.25描述了主機(DTE)與分組交換網(PSN)之間的介面標準,使主機不必關心網路內部的操作,從而能方便地實現對各種不同網路的訪問。
1.X.25協議層次:X.25實際上是DTE與PSN之間介面的一組協議,X.25協議組包括三個層次,即物理層、數據鏈路層和分組層,分別定義了三個級別上的接(見圖4.5)。從圖4.5(a)可看出,X.25的三個協議級僅具有本地意義,這與端到端操作的運輸層協議不同(MQB ltu 4.5(b))。X.25的分組纊的主要功能相當於OSI參考模型中的第三層,即網功能是向主機提供多通道的道的虛電路服務。
2.X.25分組級的功能:X.25分組級的主要功能是將數據鏈路層所提供的連接DTE/DCE的一條或多條物理鏈路復用成數條邏輯通道,並且對每一邏輯通道所建立的虛電路執行與鏈路層單鏈路協議類似的鏈路建立、數據傳輸、流量控制、順序和差錯檢測、鏈路的拆除等操作。所發送的數據均按分組格式,各種類型的分組長度及交互時的邏輯順序在標準中均有嚴格的規定。利用X.25分組級協議,可向網路層的用戶提供多個虛電路連接,使用戶可以同時與公用數據網中若幹個其它X.25數據終端用戶(DTE)通信。
在X.25中,DCE向DTE提供本地DTE之間的虛電路業務,這裡包括兩種虛電路:一種是虛呼叫業務,即虛電路請求DTE向DCE發出呼叫請求分組,接收方DCE向被呼DTE發出呼叫分組;然後被DTE發出呼叫接受分組,主呼DTE收到呼叩連通分組,由另一方確認後,虛電路便被拆除。另一種是永久虛電路,即它們是在DTE接入X.25網中時由協商指定的DTE之間的不需要呼叫建立與拆除過除過程的虛電路。在正常情況下,永久虛電路兩端的DTE可隨時發送與接收數據。正如4.1節中介紹過的一樣,每條虛電路都被賦一個虛電路號。在X.25中,一個虛電路號由邏輯通道組號(<15)和邏輯通道號(<225)組成,而且在虛電路兩端的虛電路號是互相無關的,由DCE將虛電路號映射到虛電路上去。用於虛呼叫的虛電路號範圍和永久虛電路的虛電路號應在簽訂業務時與管理部門協商確定與分配。
公用數據網有兩種操作方式,一種是虛電路方式,另一種是數據報方式。儘管其它一些網路體繫結構(如Ethernet)仍在有效地使用數據報技術,但數據報服務已在1980年的修訂中被從X.25標準中刪去,取而代之的是一個稱作快速選擇(FastSelect)的可選擴選擴充業務。X.25所規定的虛電路服務屬於面向連接的OSI服務方式,這正好符合OSI參考模型中的網路系層服務標準定義,為公用數據網與OSI結合提供了可能性。OSI網路層的功能是提供獨立於運輸層的中繼器和路由選擇以及其它與之相關的功能。在面向連接的網路層服務中,要進行通信的網路層實體必須首先建立連接,這在X.25中即不相應的建立虛電路的呼叫建立規程。網路層向運輸層提供與路由選擇和中繼器無關的網路層服務。
3. X.25分組級組格式:在分組級上,所有的信息都是以分組作為基本單位進行傳輸和處理的,無論是DTE之間所要傳輸的數據,還是交換網所用的控制信息,都要以分組形式來表示,並按照鏈路協議穿越DTE\DCE界面進行傳輸。因此數據鏈路層上傳輸時,分組應嵌入到信息幀(I幀)的信息欄位中,即表示成如下的格式:標記欄位F/地址欄位A/控制欄位C/[分組]/幀校驗序列FCS/標記欄位F。。
分組格式的數據部分(可以為空)通常被遞交給高層協議或用戶程式去處理,所以分組協議中不對它作進一步規定。分組頭用於網路控制,主要包括DTE/DCE的局部控制信息,其長度隨分組類型不同,但至少要包含前三個位元組,化們分別給通用格式標積、邏輯通道標識和分組類型標識,它們的含義如下:
(1)通用格式標識(GFI):由分組中第一個位元組的前4位組成,用於指出分組頭中其餘部分的格式。第一位(b8)稱作q位或限定位,只用於數據分組中。這是為了對分組中的數據進行特殊處理而設置的,可用於區分數據是正常數據,還是控制信息。對於其它類型的分組,該設置為“0”。第二位(b7)稱d位或傳送確認位,設置該位的目的是用來指出DTE是否希望用分組接收序號P(R)來對它所接數據作端一端確認。在呼叫建立時,DTE之間可通過D位來商定虛電路呼叫期間是否間是將使用D位規程。第三、四位(b6、b5)用以指示數據分組的序號是用3位即模8(b6置“1”)還是7位即模128(b5置“1”),這兩位或者取“10”,一旦選定,相應的分組格式也有所變化。
(2)邏輯通道標識:由第一個位元組中的剩餘四位(b4、b3、b2、b1)所作的邏輯通道組號(LCGN)和第二個位元組所作的邏輯通道號(LCN)中分組成,用以標識邏輯通道。
(3)分組類型標識:由第三個位元組組成,用於區分分組的類型和功能。若該位元組的最後一位(b1)是“0”,則表示分組為數據分組;若該位是“1”,則表示分組為控制其中可包括呼叫請求或指示分組及釋放請求或指示分組。若該字末三位(b3、b2、b1)為全“1”,則表示該分組是某個確認或接受分組。
第四個位元組及其後諸位元組將依據分組類型的不同而有不同的定義。X.25分組級協議規定了多種類型的他組。由於DTE與DCE的不對稱性,所以珍有相同類型編碼的同類型分組,因其傳輸方高的不同有不同的含義和解釋,具體實現時也有所不同。為此,分組協議從本地DTE的分組表示地DTE經DCE向遠地DTE發送的命令請求或應答響應;反之,從DCE到DTE的分組表示DCE代表遠地DTE向本地DTE送的命令或應答響應。
數據類型編碼部分,除了用M位代替I幀中的P/F位外,其它內容與數據鏈路級的幀格式控制欄位C非常類似,最末位的“0”是數據類型分組的特征位。M(More data)位置“1”,表示還有後續的數據,即當前數據分組中的數據將以同一邏輯通道上的下一數據分給中的數據作為邏輯繼續。P(S)、P(R)分別稱為分組發送順序號和接收順序號,它們作用大與幀格式中的N(S)和N(R)相當。但是,它們的主要作用是控制每條邏輯入道上向分組交換網發送或從交換網收的數據流,而不只為站點之間提供確認手段,目的是為了調節每個邏輯通道上的流量,以防止對分組交換網的壓力過重。實際上,P(s)或P(R)的值用以確定一個給定的邏輯通道上的“視窗”,表示通道上允許傳送多少個未被響應的分組。能傳輸未響應分組的最大值稱為視窗大小W,每條虛電路的視窗大小是在呼叫建立時分配的,但最大不能超過7(序號採用3位時)或127(序號採用7位時)個分組。
與數據鏈路級幀格式一樣,分組級也包括RR、RNR和REJ三種分組,它們被為流量控制分組,這些分組中的類型欄位只包括接順序號P(R),而無發送順序號P(S)。RR用於告知對方本方正準備從給定邏輯通道上接收數據分組。RNR可以通過同一方向上發送的RR分組加以清除。與數據鏈路級幀格式一樣,分組級也包括一些無編號的分組,如中斷請求分組,化不需要等待事先已發送的其它分組,而能立即向外發送,甚至在對方不能接收數據時也能發送。中斷請求分組只能攜帶一個位元組的用戶數據,放在原因欄位中用以向對方中斷信息或原因。
X.25中還定義了很多其它類型的分組,包括釋放請求/指示、複位請求/指示、重啟動請求/指示。其中除複位請求/指示分組多一個診斷代碼外,其它均與中斷請求分組格式相同。這些分組都包括一個“原因”欄位,用以存入引起相應動作的原因。需要說明一下複位與重啟動之間的差別,複位請求是為了在數據傳輸狀態中對虛呼叫或永久虛電路進行重新初始準備而設置的;而重啟動則用於同時釋放DTE/DCE界面上所有虛呼叫及複位所有永久電路而設置的。最後一類分組僅含三個位元組,屬於該類格式的分組包括各種確認分組。它們分別是用以對呼叫、釋放、中斷、複位及重啟動的請示或指示的確認。
網際互連的目的是使得一個網路上的某一主機能夠與另一網路上的主機進行通信,也即使一個網路上的用戶能訪問其它網路上的資源,可使不同網路上的用戶互相通信和交換信息。若互連的網路都具有相同的結構,則互連的實現比較容易。ISO的OSI參考模型正是為達到這一境界而提出的。但是事實上存在著大量的異構網,據前幾年統計,全世界已擁有超過2萬個的IBM的SNA網路和DEC的DECNET網路,而各種類型的區域網則更不知其數。儘管OSI的系統相當誘人,但異構網在相當長一段時期的存在卻是一個不容置疑的事實。
網際互連有“區域網-區域網”、“區域網-廣域網”、“廣域網-廣域網”、“區域網-廣域網-區域網”等四種形式.
1.網際互連原理和結構方案:網際互連功能可分為基本功能和擴展功能兩類。基本功能是網際互連必須具備的功能,它包括不同網路之間傳輸信息時的定址和路由選擇等;擴展功能是當各種互連網路提供不同的服務時所需的功能,包括協議的轉換、分組的分段、組合、重定序以及差錯檢測等。網際互連並不單純指不同的通信子網在網路層上互連,實際上,兩個網路之間要互連時,它們之間的差異可以表現在OSI七層模型中的任一層上,因為非OSI系統要與OSI系統互連,非OSI系統之間也要互連,用於網路之間互連的中斷設備稱網路連接器。
按它們進行協議和功能轉換對象的不同,可以分為以下幾類:
中斷器(Repeater):在物理層中實現透明的二進位比特複製,以補償信號衰減。
橋接器(Bridge):在不同或相同的區域網(LAN)之間存儲和轉發幀,提供鏈路層上的協議轉換。
路由器(Router):在不同的網路之間存儲和轉發分組,提供網路層上的協議轉換。
協議轉換器:專門用於高層協議轉換的網間聯接器。用於運輸層及運輸層以上。 根據網際互連介面的特性是DCE還是DTE,以及傳輸服務是端到端還是網路對網路,可將互連網路結構方案分成四種,即DCE級端到端的橋接器、網路對網路的X.75協議,DTE級端到端的網間協議IP,網路對網路的協議轉換器。
2.橋接器:橋接器是一種存儲轉發設備,用來連接類型相似的區域網。從互連網路的結構看,橋接器屬於DCE級的端到端的連接;從協議層次看,橋接器屬於鏈路層範疇,在該層將數據幀進行存儲轉發。它既不同於只作單純信號增強的中斷器,也不同於進行網路層轉換的網間連接器。但橋接器仍然是一種網路連接的方法,因為區域網本身沒有網路層,只有在主機站點上才有網路層或提供網路層服務的功能。橋接器接收幀,並送到數據鏈路層進行差錯校驗,然後送到物理層再經物理傳輸介質送到另一個子網。在轉發幀以前,橋接器對幀的內容和格式不作修改或僅作很少修改。橋接器應該有足夠的緩衝空間,以便能滿足高峰負荷時要求。另外,橋接器必須具備定址和路由選擇的邏輯功能。
區域網的邏輯功能自下向上可分為物理層,介質訪問控制層(MAC)及邏輯鏈路控制層(LLC)三層。各種不同的區域網的差異主要體現在物理層及介質訪問控制層中。圖4.9給出了一個假想的橋接器的工作原理圖。圖中的兩個區域網802.X和802.Y分別為802.3、802.4和802.5MAC標準中的一種。其中802.3為CSMA/CD區域網,802.4為令牌匯流排(Token Bus)區域網,802.5為令牌環(Token Ring)區域網。
3.路由器和信關:Gateway 譯作信關或網間連接器。這是一種連接兩個系統,特別是兩個不同協議的系統的設備。過去把具有路由功能的設備稱作信關或網間連接器,目前已將這種設備稱作路由器(Router)。而信關或網間連接器則用來稱呼一些具有特殊用途的設備,例如七層協議轉換設備。路由演算法或路由器間通信需要一種內部網間連接器協議IGP(InteriorGatewayProtocol),這是一種Internet協議,用以在獨立系統內部交換路由信息。
1、ISDN的定義:ISDN從字面上解釋是Intergrated Services Digital Network的縮寫,譯作綜合業務數字網。但也可把“IS”理解為Standard Interface for all Services(一切業務的標準介面);把“DN”理解為Digital End to End to End connectivity(數字端到端連接)。現代社會需要一種全社會的、經濟的、快速存取信息的手段,ISDN正是在這種社會需要的背景下,以及電腦技術、通信技術、VLSI技術飛速發展的前提下產生的。ISDN目標提供經濟的、有效的、端到端的數字連接以支持廣泛的服務,包括聲音的和非聲音的服務。用戶只需通過有限的網路連接及介面標準,就可在很大的區域範圍,甚至全球範圍記憶體取網路的信息。
2、ISDN 系統結構:ISDN系統結構主要討論用戶設備和ISDN交換系統之間的介面。一個重要的概念稱為數字位管道,即在用戶設備和傳輸設備之間通過比特流的管道。不管這些數字位來自於數字電話、數字終端、數字傳真機,或任何其它設備,這些比特流都能雙向通過管道。數字位管道用比特流的 時分復用支持多個獨立的通道。在數字位管道的介面規範中定義了比特流的確切格式以及比特流的復用。已經定義了兩個位管道的標準,一個是用於家庭的低頻帶標準,另一個是用於企事業的高頻帶標準,後者可支持多個通道,如果需要的話,也可配置多個位管道。
3 、寬頻ISDN(B-ISDN)及其信息傳送方式:當今人們對通信的要求越來越高,除原有的語聲、數據、傳真業務外,還要求綜合傳輸高清晰度電視、廣播電視、高速數據傳真等寬頻業務。隨著光纖傳輸、微電子技術、寬頻通信技術和電腦技術的發展,為滿足這些迅猛增長的要求提供了基礎。早在1985年1月,CCITT第18研究組就成立了專門小組著手研究寬頻ISDN,其研究結果見1988年通過的修訂的I-系列建議。
由窄帶ISDN向寬頻ISDN的發展,可分為三個階段。第一階段是進一步實現話音、數據和圖像等業務的綜合。它是由三個獨立的網構成初步綜合的B-ISDN(如圖4.12所示)。由ATM構成的寬頻交換網實現話音、高速數據和活動圖象的綜合傳輸。第二階段的主要特征是B-ISDN和用戶/網路介面已經標準化,光纖已進入家庭,光交換技術已廣泛應用,因此它能提供包括具有多頻道的高清晰度電視 HDTV(HighDefinition Telecison)在內的寬頻業務。第三階段的主要特征是在寬頻ISDN中引入了智能管理網。由智能網控制中心來管理三個基本網。智能網也可稱作智能專家系統。
4、ATM工作原理:ATM的特點是進一步簡化了網路功能。ATM網路不參與任何數據鏈路層功能。將差錯控制與流量控制工作都交給終端去做。圖4.15是分組交換、幀中繼和ATM交換三種方式的功能比較。可以看出,分組交換網的交換節點參與了OSI第一到第三層的全部功能;幀中繼節點只參與第二層功能的核心部分,也即數據鏈路層中的幀定界、0比特填充和CRC檢驗功能第二層的其它功能,即差錯控制和流量控制,以及第三層功能則義給終端去處理;ATM網路則更為簡單,除了第一層的功能之外,交換節點不參與任何工作。從功能分佈的情況來看,ATM網和電路交換網特點相似。因此有人說ATM網是綜合了分組交換和電路交換的優點而形成的一種網路,這是很有道理的。