功能目的
網路層的目的是實現兩個端系統之間的數據透明傳送,具體功能包括定址和路由選擇、連線的建立、保持和終止等。它提供的服務使運輸層不需要了解網路中的數據傳輸和交換技術。為了說明網路層的功能,如圖4.1所示的交換網路拓撲結構,它是由若干個網路節點按照任意的拓撲結構相互連線而成的。網路層關係到通信子網的運行控制,體現了網路套用環境中資源子網訪問通信子網的方式。網路層從物理上來講一般分布地域寬廣,從邏輯上來講功能複雜,因此是OSI模型中面向數據通信的下三層(也即通信子網)中最為複雜也最關鍵的一層。虛電路和數據報
端點之間的通信是依靠通信子網中的節點間通信來實現的,在OSI模型中,網路層是網路節點的最高層,所以網路層將現通信子網向端系統所提供的網路服務。在分組交換中,通信子網向端系統提供的虛電路和數據報兩種網路服務,而通信子內部的操作方式也有虛電路和數據報兩種。1、通信子網的虛電路操作方式及網路層提供的虛電路服務:虛電路操作方式:為了進行數據的傳輸,網路的源節點之間先要建立一條邏輯通路,因為這條邏輯電路不是專用的,所以稱這為“虛”電路。每個節點到其它任一節點之間可能有若干條虛電路支持特定的兩個端系統之間的數據傳輸,兩個端系統之間也可以有多條虛電路為不同的進程服務。這些虛電路的實際路徑可能相同,也可能不同。
假設有兩條虛電路經過某節點,當一個數據分組到達時,該節點可利用下述方法判明該分組屬於哪條虛電路,並且能將其轉送至下一正確節點。一個端系統每次在建立虛電路時,選擇一個末被使用虛電路號分配給該虛電路,以便區別於本系統中的其它虛電路。在每個被傳送的數據分組上不僅要有分組號、檢驗和等控制信息,還要有它要通過的虛電路的號碼,為區別於其它虛電路的數據分組。在每個節點上都保存一張虛電路表,表中各項記錄了一個打開的虛電路的信息,包括虛電路號、前一個節點、下一個節點等信息,這些信息是在虛電路建立過程中被確定的。上述採用固定虛電路號的虛電路表法存在著缺陷,因為各個端系統各自獨立地選取虛電路號,就有可能造成虛電路號的重複,如果兩條編號相同的虛電路經過同一個節點,便會產生畸義。解決的方法是採用“動態”的虛電路號。
“動態”的虛電路號,是指各節點對同一條虛電路,根據本節點的實際情況給予可能不同的編號,與之對應的各節點的虛電路表可能也是在呼叫請求過程中建立的。比如,與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中,內部使用數據報交換方式,但可以向端系統提供數據報和虛電路兩種服務。
2、通信子網的數據報操作方式及網路層提供的數據報服務:數據報操作方式:在數據報方式中,每個分組被稱為一個數據報,若干個數據報構成一次要傳送的報文或數據塊。每個數據報自身攜帶有足夠的信息,它的傳送是被單獨處理的。一個節點接收到一個數據報後,根據數據報中的地址信息和節點所存儲的路由信息,找出一個合適的出路,把數據報原樣地傳送到下一個節點。當端系統要傳送一個報文時,將報文拆成若干個帶有序號和地址信息的數據報,依次發給網路節點。此後,各個數據報所走的路徑就可能不同了,因為各個節點在隨時根據網路的流量、故障等情況選擇路由。由於各行其道,各數據報不能保證按順序到達目的節點,有些數據報甚至還可能途中丟失。在整個傳送過程中,不必建立虛電路,但要為每個數據報作路由選擇。
數據報服務:數據報服務一般僅由數據報交換網來提供。端系統的網路層同網路節點中的網路之間,一致地按照數據報操作方式交換數據。當系統要傳送數據時,網路層給該數據附加上地址、序號等信息,作為數據報傳送給網路節點;目的端系統收到的數據報可能是不按序到達的,也可能有數據報的丟失。例如,在ARPANET、DNA等網路中,就提供了數據報服務。數據報服務與OSI的無連線網路服務類似。由虛電路交換網提供數據報服務的組合方式並不常見。可以想像有這么一種特殊情況:一個端系統的網路層已經構造好了用於處理數據報的服務,而當它要接入以虛電路方式操作的網路時,網路節點就需要做一些轉換工作。當端系統向網路節點傳送一個攜帶有完整地址信息的數據報時,若發向同一地址的數據報數量足夠大,則網路節點可以為這些數據報同目的節點間建立一條虛電路,所有相同地址的數據報要傳送時,這條虛電路便可拆除。所以,這種數據報服務具有了虛電路服務的通信質量,但是既不經濟,效率也低。
3兩種操作方式及兩種網路服務的特點:兩種操作方式的特點:虛電路分組交換適用於端系統之間長時間的數據交換,尤其是在頻繁的,但每次傳送數據又很短的互動式會話情況下,免去了每個分組中地址信息的額外開銷,但是每個網路節點卻需要負擔維持虛電路表的開銷。因此,要將這兩個因素進行權衡,另外還要考慮如果建立和拆除電路的次數過於頻繁也不合適。數據報免去了呼叫建立過程,在分組傳輸數量不多的情況下要比虛電路簡單靈活。每個數據報可以臨時根據網路中的流量情況選取不太擁擠的鏈路,不象虛電路中的每個分組必須按照連線建立時的路徑傳送。每個節點沒有額外開銷,但每個分組在每個節點都要經過路由選擇處理,會影響傳送速度。
虛電路提供了可靠的通信功能,能保證每個分組的正確到達,且分組保持原來順序。另外,還可以對兩個數據端點的流量進行控制,當接收方來不及接收數據時,可以通知傳送方暫緩傳送分組,但虛電路有一個致命的弱點,即當某個節點或某條鏈路出故障的影響面要小得多,當發生上述故障時,僅有快取在該節點上的分組可能丟失,其它分組則可繞開故障區到達目的地,或者一直被擱置到故障修復後再傳送。不過,數據報不保證數據分組的按序到達,數據的丟失也不會立即被發現。兩種網路服務的特點:虛電路服務與數據報服務的本質差別表現為:是將順序控制、差錯控制和流量控制等通信功能交由通信子網完成,還是由端系統自己來完成。虛電路服務向端系統保證了數據的按序到達,免去了端系統在順序控制上的開銷。但是,當端系統本身並不關心數據的順序時,這項功能便成了多餘,反倒影響了無序數據的整體效率。
虛電路服務向端系統提供了無差錯的數據傳送,但是,在端系統只要求快速的數據傳送,而不在乎個別數據塊丟失的情況下,虛電路服務所提供的差錯控制也就並不很必要了。相反,有的端系統卻要求很高的數據傳送質量,虛電路服務所提供的差錯控制還不能滿足要求,端系統仍需要自己來進行更嚴格的差錯控制,此時虛電路服務所做的工作又略嫌多餘。不過,這種情況下,虛電路服務畢竟在一定程度上為端系統分擔了一部分工作,為降低差錯機率還是起了一定作用。
至於虛電路服務所提供的流量控制,有時對端系統來說也並不適宜,比如在要求數據交換速率儘可能高的情況下。因為,虛電路服務將數據總是按固定路徑傳送,而不靈活地走捷徑;另外,流量控制本身就可能規定了交換速率的上限。虛電路服務提供了可靠的數據傳送和方便的進網接口。但是,虛電路服務中電路的建立與拆除在互動式套用中會影響通信效率。可以看出,兩種服務優、缺點各自參半,對二者的選擇取決於套用背景,即網路用戶對通信子網是要求只管數據傳送而不必多管“閒事”,還是希望通信子網提供更可靠的服務來減輕自身的負擔。有人將虛電路服務比作坐公共汽車,將數據報服務比作坐計程車,這種比喻在某種程度上形象地說明了兩種服務的特點。
路由選擇及其算法
通信子網路源節點和目的節點提供了多條傳輸路徑的可能性。網路節點在收到一個分組後,要確定向一下節點傳送的路徑,這就是路由選擇。在數據報方式中網路節點要為每個分組路由做出選擇;而在虛電路方式中,只需在連線建立時確定路由。確定路由選擇的策略稱路由算法。設計路由算法時要考慮諸多技術要素。首先是路由算法所基於的性能指標,一種是選擇最短路由,一種是選擇最優路由;其次要考慮通信子網是採用虛電路還是數據報方式;其三,是採用分散式路由算法,即每節點均為到達的分組選擇下一步的路由,還是採用集中式路由算法,即由中央點或始發節點來決定整個路由;其四,要考慮關於網路拓撲,流量和延遲等網路信息的來源;最後,確定是採用動態路由選擇策略,還是選擇靜態路由選擇策略。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的緩衝區中,再也轉發不下去,此時,一定發生了循環,應該將該分組丟棄。由於每個分組都按照一定的順序規則分配緩衝區,即分組所占用的緩衝區編號一直在遞增,從而會使節點之間相互等待空閒緩衝區而發生死鎖情況。
重裝死鎖及其防止:死鎖中一種比較嚴重的情況是生裝死鎖。假設發給一個端系統的報文很長,被源節點拆成若干個分組傳送,目的節點要將所有具有相同報文編號的分組重新裝配成報文遞交給目的端系統。由於目的節點用於重裝報文的緩衝區空間有限,而且它無法知道在接收的報文究竟被拆成多少個分組,此時,就可能發生嚴重的問題:為了接收更多的分組,該目的節點用完了它的緩衝空間,但它又不能將尚未接收並拼裝完整的報文遞送給目的端系統。而鄰節點仍在不斷地向它傳送分組,但它卻無法接收。
這樣,經過多次嘗試後,鄰節點就會繞道從其它途徑再向該目的節點傳送分組,但該目的節點已被牢牢鎖死,其周圍區域也由此發生了阻塞現象。下面幾種方法可以用於免重裝死鎖的發生: 允許目的節點將不完整的報文遞交給目的端系統。 一個不能完整重裝的報文能被檢測出來,並要求傳送該報文的源端系統重新傳送。 為每個節點配備一個後備緩衝空間,當重裝死鎖發生時,將不完整的報文暫移至後備緩衝區中。兩種方法不能很滿意地解決重裝死鎖,因為它們使端系統中的協定複雜化了。一般的設計中,網路層應該對端系統透明,也即端系統不該考慮諸如報文拆、裝之類的事情。第三種方法雖然不涉及端系統,但每個點增加了開銷,降低了可靠性。
X.25協定
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。每個分組都是由分組頭和數據信息兩部分組成,其一般格式如圖4.6所示。
分組格式的數據部分(可以為空)通常被遞交給高層協定或用戶程式去處理,所以分組協定中不對它作進一步規定。分組頭用於網路控制,主要包括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的系統相當誘人,但異構網在相當長一段時期的存在卻是一個不容置疑的事實。
網際互連有“區域網路-區域網路”、“區域網路-廣域網”、“廣域網-廣域網”、“區域網路-廣域網-區域網路”等四種形式,見圖4.8。圖中B表示橋接器(Bridge),G表示網間連線器(Gateway),LAN表示區域網路,WAN表示廣域網。
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協定,用以在獨立系統內部交換路由信息。
ISDN和ATM
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交換系統之間的接口。一個重要的概念稱為數字位管道,即在用戶設備和傳輸設備之間通過比特流的管道。不管這些數字位來自於數字電話、數字終端、數字傳真機,或任何其它設備,這些比特流都能雙向通過管道。數字位管道用比特流的 時分復用支持多個獨立的通道。在數字位管道的接口規範中定義了比特流的確切格式以及比特流的復用。已經定義了兩個位管道的標準,一個是用於家庭的低頻帶標準,另一個是用於企事業的高頻帶標準,後者可支持多個通道,如果需要的話,也可配置多個位管道。
圖4.11(a)是用於家庭或小企事業單位的配置,在用戶設備和ISDN交換系統之間設定一個網路終端設備NT1、NT1設定在靠近用戶設備這一邊,利用電話線和幾公里以外的交換系統相連。NT1裝有一個連線器,無源匯流排電纜可插入連線器,最多有八個ISDN電話、終端或其它設備可接到匯流排電纜,如同接到區域網路的方法一樣連線。從用戶的角度看,和網路的界面是NT1上的連線器。NT1不僅起接插板的作用,它還包括網路管理、測試、維護和性能監視等。在無源匯流排上的每個設備必須有一個唯一的地址。NT1還包括解決爭用的邏輯,當幾個設備同時訪問匯流排時,由NT1來決定哪個設備獲得匯流排訪問權。從OSI參考模型來看,NT1是一個物理層設備。
對於大的企事業單位需要用圖4.11(b)的配置,因為往往有很多電話在同時進行,匯流排無法處理。在這種配置中有一個NT2設備,實際上,NT2和NT1就是前面討論過的CBX。NT2和NT1連線並對各種電話、終端以及其它設備提供真正的接口。事實上NT2和ISDN交換系統沒有本質上的差別,只是規模比較小。在單位內部通電話或數字通信,只需撥四個數字的分機號碼,和ISDN交換系統無關。撥一個“9”字,就和外線相連,CBX專門分配一個通道和數字通道相連。CCITT定義了四個參考點,稱R、S、T和U,如圖4.11所示。U參考點連線ISDN交換系統和NT1,目前採用兩線的銅雙絞線,今後可能被光纖代替。T參考點是NT1上提供給用戶的連線器。S參考點是ISDN的CBX和ISDN終端的接口。R參考點用以連線終端適配器和非ISDN終端,R參考點是使用很多不同的接口。
3 、寬頻ISDN(B-ISDN)及其信息傳送方式:當今人們對通信的要求越來越高,除原有的語聲、數據、傳真業務外,還要求綜合傳輸高清晰度電視、廣播電視、高速數據傳真等寬頻業務。隨著光纖傳輸、微電子技術、寬頻通信技術和計算機技術的發展,為滿足這些迅猛增長的要求提供了基礎。早在1985年1月,CCITT第18研究組就成立了專門小組著手研究寬頻ISDN,其研究結果見1988年通過的修訂的I-系列建議。
由窄帶ISDN向寬頻ISDN的發展,可分為三個階段。第一階段是進一步實現話音、數據和圖像等業務的綜合。它是由三個獨立的網構成初步綜合的B-ISDN(如圖4.12所示)。由ATM構成的寬頻交換網實現話音、高速數據和活動圖象的綜合傳輸。第二階段的主要特徵是B-ISDN和用戶/網路接口已經標準化,光纖已進入家庭,光交換技術已廣泛套用,因此它能提供包括具有多頻道的高清晰度電視 HDTV(HighDefinition Telecison)在內的寬頻業務。第三階段的主要特徵是在寬頻ISDN中引入了智慧型管理網。由智慧型網控制中心來管理三個基本網。智慧型網也可稱作智慧型專家系統。目前B-ISDN採用的傳送方式主要有高速分組交換、高速電路交換、異步傳送方式ATM和光交換方式四種。高速分組交換是利用分組交換的基本技術,簡化了X.25協定,採用面向連線的服務,在鏈路上無流量控制、無差錯控制,集中分組交換和同步時分交換的優點,已有多個試驗網已投入試運行。高速電路交換主要是多速時分交換方式(TDSM),這種方式允許信道按時間分配,其頻寬可為基本速率的整數倍,由於這是快速電路交換,其信道的管理和控制十分複雜,尚有許多問題需要繼續研究,目前還末進入實用階段。光交換技術的主要設備是光交換機,它將光技術引入傳輸迴路和控制迴路,實現數位訊號的高速傳輸和交換。由於光積體電路技術尚末成熟,故光交換技術預計要到21世紀才能進到實用階段。
4、ATM工作原理:ATM的特點是進一步簡化了網路功能。ATM網路不參與任何數據鏈路層功能。將差錯控制與流量控制工作都交給終端去做。圖4.15是分組交換、幀中繼和ATM交換三種方式的功能比較。可以看出,分組交換網的交換節點參與了OSI第一到第三層的全部功能;幀中繼節點只參與第二層功能的核心部分,也即數據鏈路層中的幀定界、0比特填充和CRC檢驗功能第二層的其它功能,即差錯控制和流量控制,以及第三層功能則義給終端去處理;ATM網路則更為簡單,除了第一層的功能之外,交換節點不參與任何工作。從功能分布的情況來看,ATM網和電路交換網特點相似。因此有人說ATM網是綜合了分組交換和電路交換的優點而形成的一種網路,這是很有道理的。ATM克服了其它傳送方式的缺點,能夠適應任何類型的業務,不論其速度高低,突發性大小,實時性要求和質量要求如何,都能提供滿意的服務。CCITT在I.113建議中給ATM下了這樣的定義:ATM是一種轉換模式(即前面所說的傳送方式),在這一模式中信息被組織成信元,而包含一段信息的信元並不需要周期性地出現,從這個意義上來說,這種轉換模式是異步的。信元(cell)實際上就是分組,只是為了區別於X.25的分組,才將ATM的信息單元叫作信元。ATM的信元具有固定的長度,即總是53個位元組。其中5個位元組是信頭(header),48個位元組是信息段,或稱有效負荷(payload)。信頭包含各種控制信息,主要是表示信元去向的邏輯地址,另外還有一些維持信息,優先度及信頭的糾錯碼。信息段中包含來自各種不同業務的用戶信息,這些信息透明地穿過網路。信元的格式與業務無關,任何業務的信息都同樣被切割封裝成統一格式的信元。
ATM採用異步時分復用的方式,見圖4.16。來自不同信息的信元匯集到一起,在一個緩衝器內排隊,佇列中的信元逐個輸到傳輸線路,在傳輸線路上形成首尾相接的信元流。信元的信頭中寫有信息的標誌(如A和B),說明該信元去往的地址,網路根據信頭中的標誌來轉移信元。由於信息源產生信息是隨機的,因此,信元到達佇列也是隨機的。高速的業務信元來得十分頻繁、集中;低速的業務信元來得很稀疏。這些信元都按先來後到在佇列中排隊。佇列中的信元按輸出次序用在傳輸線上,具有同樣標誌的信元在傳輸線上並不對應某個固定的時間間隙,也不是按周期出現的,也就是說信息和它在時域中的位置之間沒有任何關係,信息只是按信頭中的標誌來區分的。這種復用方式叫作異步時分復用(Asynchronous Time Division Multiplex),又叫統計復用(Statistic Multiplex),在同步時分復用方式(如PCM復用方式)中,信息以它在一幀中的時間位置(時隙)來區分,一個時隙對應著一條信道,不需要另外的信息頭來標誌信息的身份。
異步時分復用方式使ATM具有很大的靈活性,任何業務都可按實際需要來占用資源,對特定業務,傳送的速率隨信息到達的速率而變化,因此網路資源得到最大限度的利用。此外,ATM網路可以適用於任何業務,不論其特性如何(速率高低、突發性大小、質量和實時性要求等),網路都按同樣的模式來處理,真正做到了完全的業務綜合。如果在某個時刻佇列排空了所有的信元,此時線路上就出現末分配信元(信頭中含有標誌@);反之,如果在某個時刻傳輸線路上找不到可以傳送信元的機會(信元都已排滿),而佇列已經充滿緩衝區,此時,為了儘量減少對業務質量的影響,在信元的信頭寫有優先度標誌,首先丟棄的總是那些優先度低,不太重要的信元。當然緩衝區的容量必須根據信息流量來計算,使信元丟失率在10-9以下。
為了提高處理速度,降低延遲,ATM以面向連線器方式工作。網路的處理工作十分簡單:通信開始時建立虛電路,以後用戶將虛電路標誌寫入信頭(即地址信息),網路根據虛電路標誌將信元送往目的地。經過ATM復用後,信元流速率取決於傳輸線路的速率,如果採用單模光纖,這個速率可高達幾處Gbps。每條虛電路的速率和屬於該虛電路的信元出現的頻率有關。ATM網路包括一些節點,這些節點提供信元的交換。實際上,節點完成的只是虛電路的交換,因為同一虛電路上的所有信元都選擇同樣的路由,經過同樣的通路到達目的地。在接收端,這些信元到達的次序總是和傳送次序相同。ATM交換節點的工作比X.25分組交換網中的節點要簡單得多。ATM節點只做信頭的CRC檢驗,對於信息段的傳輸差錯根本不過問。ATM節點不做差錯控制(信頭中根本沒有信元的編號),也不參與流量控制,這些工作都留給終端去做。ATM節點的主要工作就是讀信頭,並根據信頭的內容快速地將信元送往要去的地方,這件工作在很大程度上依靠硬體來完成,因此,ATM交換的速度非常快,可以和光纖的傳輸速度相匹配。
網路層協定
TCP/IP網路層得核心是IP協定,它是TCP/IP協定族中最主要得協定之一。IP協定非常簡單,僅僅提供不可靠、無連線得傳送服務。IP協定得主要功能有:無連線數據報傳輸、數據報路由選擇和差錯控制。與IP協定配套使用實現其功能得還有地址解析協定ARP、逆地址解析協定RARP、網際網路報文協定ICMP、網際網路組管理協定IGMP。
【IP位址結構】TCP/IP網路使用32位長度的地址以標識一台計算機和同它相連的網路,它的格式為:IP位址=網路地址+主機地址。IP位址是通過它的格式分類的,它有四種格式:A類、B類、C類、D類。如下所示
格式位數主機地址:A類0網路(7位)主機地址(24位)、
B類10網路(14位)主機地址(16位)、C類110網路(21位)主機地址(8位)、D類1110多路通信地址(28位)、未來的格式11110將來使用。這樣,A類地址空間為0-127,最大網路數為126,最大主機數為16,777,124;B類地址空間為128-191,最大網路數為16384,最大主機數為65,534;C類地址空間為192-223,最大網路數為2,097,152,最大主機數為254;D類地址空間為224-254。
C類地址空間分配概況。分配區域地址空間:多區域192.0.0.0~193.255.255.255、歐洲:194.0.0.0~195.255.255.255、其他:196.0.0.0~197.255.255.255、北美:197.0.0.0~199.255.255.255、中南美:200.0.0.0~201.255.255.255、太平洋地區:202.0.0.0~203.255.255.255、其他:204.0.0.0~205.255.255.255、其他:206.0.0.0~207.255.255.255。註:其中“多區域”表示執行該計畫前已經分配的地址空間;“其他”表示已指定名稱的地區之外的地理區劃。
特殊格式的IP位址:廣播地址:當網路或主機標誌符欄位的每位均設定為1時,這個地址編碼標識著該數據報是一個廣播式的通信,該數據報可以被傳送到網路中所有的子網和主機。例如,地址128.2.255.255意味著網路128.2上所有的主機。本網路地址:IP位址的主機標識符欄位也可全部設定為0,表示該地址作為“本主機”地址。網路標識符欄位也可全部設定為0,表示“本網路”。如,128.2.0.0表示網路地址為128.2的網路。使用網路標識符欄位全部設定為0的IP位址在一台主機不知道網路的IP位址時時是很有用的。私有的IP位址:在有些情況下,一個機構並不需要連線到Internet或另一個專有的網路上,因此,無須遵守對IP位址進行申請和登記的規定。該機構可以使用任何的地址。在RFC1597中,有些IP位址是用作私用地址的:A類地址:10.0.0.0到10.255.255.255。B類地址:172.16.0.0到172.31.255.255.255。C類地址:192.168.0.0到192.168.255.255。
【地址解析協定】ARP協定是“AddressResolutionProtocol”(地址解析協定)的縮寫。在區域網路中,網路中實際傳輸的是“幀”,幀裡面是有目標主機的MAC地址的。在乙太網中,一個主機要和另一個主機進行直接通信,必須要知道目標主機的MAC地址。但這個目標MAC地址是如何獲得的呢?它就是通過地址解析協定獲得的。所謂“地址解析”就是主機在傳送幀前將目標IP位址轉換成目標MAC地址的過程。ARP協定的基本功能就是通過目標設備的IP位址,查詢目標設備的MAC地址,以保證通信的順利進行。協定屬於鏈路層的協定在乙太網中的數據幀從一個主機到達網內的另一台主機是根據48位的乙太網地址(硬體地址)來確定接口的,而不是根據32位的IP位址。核心(如驅動)必須知道目的端的硬體地址才能傳送數據。當然,點對點的連線是不需要ARP協定的。
ARP協定的數據結構:
以下是引用片段:
typedefstructarphdr
{unsignedshortarp_hrd;/*硬體類型*/
unsignedshortarp_pro;/*協定類型*/
unsignedchararp_hln;/*硬體地址長度*/
unsignedchararp_pln;/*協定地址長度*/
unsignedshortarp_op;/*ARP操作類型*/
unsignedchararp_sha[6];/*傳送者的硬體地址*/
unsignedlongarp_spa;/*傳送者的協定地址*/
unsignedchararp_tha[6];/*目標的硬體地址*/
unsignedlongarp_tpa;/*目標的協定地址*/
}ARPHDR,*PARPHDR;
為了解釋ARP協定的作用,就必須理解數據在網路上的傳輸過程。這裡舉一個簡單的PING例子。
假設我們的計算機IP位址是192.168.1.1,要執行這個命令:ping192.168.1.2.該命令會通過ICMP協定傳送ICMP數據包。該過程需要經過下面的步驟:1、應用程式構造數據包,該示例是產生ICMP包,被提交給核心(網路驅動程式);2、核心檢查是否能夠轉化該IP位址為MAC地址,也就是在本地的ARP快取中查看IP-MAC對應表;3、如果存在該IP-MAC對應關係,那么跳到步驟9;如果不存在該IP-MAC對應關係,那么接續下面的步驟;4、核心進行ARP廣播,目的地的MAC地址是FF-FF-FF-FF-FF-FF,ARP命令類型為REQUEST(1),其中包含有自己的MAC地址;5、當192.168.1.2主機接收到該ARP請求後,就傳送一個ARP的REPLY(2)命令,其中包含自己的MAC地址;6、本地獲得192.168.1.2主機的IP-MAC地址對應關係,並保存到ARP快取中;7、核心將把IP轉化為MAC地址,然後封裝在乙太網頭結構中,再把數據傳送出去;使用arp-a命令就可以查看本地的ARP快取內容,所以,執行一個本地的PING命令後,ARP快取就會存在一個目的IP的記錄了。當然,如果你的數據包是傳送到不同網段的目的地,那么就一定存在一條網關的IP-MAC地址對應的記錄。知道了ARP協定的作用,就能夠很清楚地知道,數據包的向外傳輸很依靠ARP協定,當然,也就是依賴ARP快取。要知道,ARP協定的所有操作都是核心自動完成的,同其他的應用程式沒有任何關係。同時需要注意的是,ARP協定只使用於本網路。
【逆地址解析協定】具有本地磁碟的系統引導時,一般是從磁碟上的配置檔案中讀取IP位址。但是無盤機,如X終端或無盤工作站,則需要採用其他方法來獲得IP位址。網路上的每個系統都具有唯一的硬體地址,它是由網路接口生產廠家配置的。無盤系統的RARP實現過程是從接口卡上讀取唯一的硬體地址,然後傳送一份RARP請求(一幀在網路上廣播的數據),請求某個主機回響該無盤系統的IP位址(在RARP應答中)。在概念上這個過程是很簡單的,但是實現起來常常比ARP要困難。RARP的正式規範是RFC903[Finlaysonetal.1984]。
RARP的分組格:RARP分組的格式與ARP分組基本一致。它們之間主要的差別是RARP請求或應答的幀類型代碼為0x8035,而且RARP請求的操作代碼為3,應答操作代碼為4。對應於ARP,RARP請求以廣播方式傳送,而RARP應答一般是單播(unicast)傳送的。RARP伺服器的設計:雖然RARP在概念上很簡單,但是一個RARP伺服器的設計與系統相關而且比較複雜。相反,提供一個ARP伺服器很簡單,通常是TCP/IP在核心中實現的一部分。由於核心知道IP位址和硬體地址,因此當它收到一個詢問IP位址的ARP請求時,只需用相應的硬體地址來提供應答就可以了。
作為用戶進程的RARP伺服器:RARP伺服器的複雜性在於,伺服器一般要為多個主機(網路上所有的無盤系統)提供硬體地址到IP位址的映射。該映射包含在一個磁碟檔案中。由於核心一般不讀取和分析磁碟檔案,因此RARP伺服器的功能就由用戶進程來提供,而不是作為核心的實現的一部分。更為複雜的是,RARP請求是作為一個特殊類型的乙太網數據幀來傳送的。這說明RARP伺服器必須能夠傳送和接收這種類型的乙太網數據幀。在附錄A中,我們描述了SBD分組過濾器、SUN的網路接口栓以及SVR4數據鏈路提供者接口都可用來接收這些數據幀。由於傳送和接收這些數據幀與系統有關,因此RARP伺服器的實現是與系統捆綁在一起的。
每個網路有多個RARP伺服器:RARP伺服器實現的一個複雜因素是RARP請求是在硬體層上進行廣播的,這意味著它們不經過路由器進行轉發。為了讓無盤系統在RARP伺服器關機的狀態下也能引導,通常在一個網路上(例如一根電纜)要提供多個RARP伺服器。當伺服器的數目增加時(以提供冗餘備份),網路流量也隨之增加,因為每個伺服器對每個RARP請求都要傳送RARP應答。傳送RARP請求的無盤系統一般採用最先收到的RARP應答(對於ARP,我們從來沒有遇到這種情況,因為只有一台主機傳送ARP應答)。另外,還有一種可能發生的情況是每個RARP伺服器同時應答,這樣會增加乙太網發生衝突的機率。
【網際網路報文協定】ICMP的作用:由於IP協定的兩個缺陷:沒有差錯控制和查詢機制,因此產生了ICMP。ICMP主要是為了提高IP數據報成功交付的機會,在IP數據報傳輸的過程中進行差錯報告和查詢,比如目的主機或網路不可到達,報文被丟棄,路由阻塞,查詢目的網路是否可以到達等等。
ICMP有兩種報文類型:差錯報告報文和詢問報文。差錯報告報文:終點不可到達(由於路由表,硬體故障,協定不可到達,連線埠不可達到等原因導致,這時路由器或目的主機向源站傳送終點不可到達報文);源站抑制(發生擁塞,平衡IP協定沒有流量控制的缺陷);逾時(環路或生存時間為0);參數問題(IP數據報首部參數有二義性);改變路由(路由錯誤或不是最佳)。詢問報文:回送請求或回答(用來測試連通性,如:PING命令);時間戳請求或回答(用來計算往返時間或同步兩者時間);地址掩碼請求或回答(得到掩碼信息);路由詢問或通告(得知網路上的路由器信息)。ICMP是網際(IP)層的協定,它作為IP層數據報的數據,加上數據報的首部,組成數據報傳送出去。PING命令與ICMP協定:套用層的PING(PacketInterNetGroper)命令用來測試兩個主機之間的連通性,PING使用了ICMP回送請求與回送回答報文,屬於ICMP詢問報文,它是套用層直接使用網路層ICMP的一個特例,它沒有通過運輸層的TCP或UDP。IP數據報首部的協定欄位:IP報文首部的協定欄位指出了此數據報是使用的何種協定,以便使目的主機的網路層能夠知道如何交付,將數據上交到哪個處理過程。當其協定欄位的值為1時,表示其IP數據是ICMP報文。
差錯報文:一些要點:對於攜帶ICMP差錯報文的數據報,不再產生ICMP差錯報文;對於分片的數據報,如果不是第一個分片,則不產生ICMP差錯報文;對於特殊
地址如127.0.0.0,0.0.0.0或多播地址不產生ICMP差錯報文。
應注意:所有的差錯報文都包括數據部分,而這數據部分包括原始數據報的首部加上數據報中的前8
個位元組。加上原始數據報中的首部的目的是為了向接收差錯報文的原始信源給出關於數據報本身的信息,要包括數據的前8個位元組是國為這前8個位元組提供了關於連線埠號(UDP和TCP)和序號(TCP)的信息。
類型:主機跟路由器互動時所關心的IGMP訊息有三種類型:0x11=組成員關係查詢。組成員關係查詢有兩種子類型:普通查詢,用於獲知一個相連的網路上有哪些組具有成員。組特定的查詢,用於獲知在一個相連的網路上,某一個特定的組是否具有成員。這兩種訊息是通過組地址來區分的,成員關係查詢訊息以下簡稱為“查詢”訊息。0x16=第2版的成員關係報告。0x17=離開一個組。除此之外,還有一種類型的訊息,只是為了對IGMPv1保持向下兼容:0x12=第一版的成員關係報告。這份文檔把成員關係報告簡稱為“報告”。如果不指明版本,那么內容對兩個版本均適用。未識別的訊息類型會被忽略。在更新版本的IGMP中可能還會有新的訊息類型,以被多播路由協定,或其它使用。
最大回響時間:最大回響時間只在成員關係查詢訊息中有意義,它以1/10秒為單位標明相應的報告傳送所允許的最大延遲時間。在其它類型的訊息中,傳送者把該欄位清0。接收者忽略這個欄位。這個修改允許IGMPv2的路由器可以調節“離開延時”(最後一台主機離開組的時刻到路由協定被通過該組已經沒有成員之間的時間間隔)。它也可以調節子網內IGMP流量的爆炸。校驗和:校驗和是以16位為一段對整個IGMP訊息(一個完整的IP負載)的取反求和。為計算校驗和,校驗和欄位應當先被清0。當傳送數據報時,必須計算校驗和並放到該欄位中。當收到一個數據報後,在處理之前,必須先驗證校驗和。組地址:在一個成員關係查詢訊息中,在傳送一個普通的查詢之前,組地址欄位必須被清0,在傳送一個指定組的查詢之前,把組地址設定為需要查詢的那個組。在一個組成員關係報告或離開組的訊息中,組地址欄位應當是被報告的或要離開的那個組的IP位址。其它欄位:需要注意的是,IGMP訊息是可能大於8個位元組的,特別是將來的向下兼容的IGMP版本。只要類型欄位是可以被識別的,IGMPv2的實現在處理數據報時必須忽略超過8個位元組的內容。但是IGMP校驗和始終是針對整個數據報的,而不僅僅是前面的8個位元組。
參考文獻
1、http://www.ee.zsu.edu.cn/network/newpage2aa.htm
2、http://www.course.cug.edu.cn/computernet/ch-8/ch-8.htm
3、http://www.netemu.cn/BBS/viewthread.php?tid=806
4、《計算機通信網》 王曉軍 毛京麗 編著
5、物聯網組織架構及相關技術:http://www.5lian.cn/html/2012/wulianpuji_0317/31515.html
6、物聯網的定義和體系架構:http://www.5lian.cn/html/2012/wulianpuji_0213/30238.html
計算機通信網
了解計算機通信網和計算機通信網的發展史。 |