官术网_书友最值得收藏!

1.7.3 具有五層協(xié)議的體系結構

OSI的七層協(xié)議體系結構(圖1-18(a))的概念清楚,理論也較完整,但它既復雜又不實用。TCP/IP體系結構則不同,它現(xiàn)在已經得到了非常廣泛的應用。TCP/IP是一個四層的體系結構(圖1-18(b)),它包含應用層、運輸層、網際層和網絡接口層(用網際層這個名字是強調這一層是為了解決不同網絡的互連問題)。不過從實質上講,TCP/IP只有最上面的三層,因為最下面的網絡接口層基本上和一般的通信鏈路在功能上沒有多大差別,對于計算機網絡來說,這一層并沒有什么特別新的具體內容。因此在學習計算機網絡的原理時往往采取折中的辦法,即綜合OSI和TCP/IP的優(yōu)點,采用一種只有五層協(xié)議的體系結構(圖1-18(c)),這樣既簡潔又能將概念闡述清楚注:五層協(xié)議的體系結構只是為介紹網絡原理而設計的,實際應用還是TCP/IP四層體系結構。

圖1-18 計算機網絡體系結構

現(xiàn)在結合因特網的情況,自上而下地、非常簡要地介紹一下各層的主要功能。實際上,只有認真學習完本書各章的協(xié)議后才能真正弄清各層的作用。

(1) 應用層(application layer)

應用層是體系結構中的最高層。應用層的任務是通過應用進程間的交互來完成特定網絡應用。應用層協(xié)議定義的是應用進程間通信和交互的規(guī)則。這里的進程(process)就是指主機中正在運行的程序。對于不同的網絡應用需要有不同的應用層協(xié)議。在因特網中的應用層協(xié)議很多,如支持萬維網應用的HTTP協(xié)議,支持電子郵件的SMTP協(xié)議,支持文件傳送的FTP協(xié)議,等等。我們將應用層交互的數據單元稱為報文(message)。

(2) 運輸層(transport layer)

運輸層的任務就是負責向兩個主機中進程之間的通信提供通用的數據傳輸服務。應用進程利用該服務傳送應用層報文。所謂通用,是指并不針對某個特定網絡應用,而是多種應用可以使用同一個運輸層服務。由于一臺主機可同時運行多個進程,因此運輸層有復用和分用的功能。復用就是多個應用層進程可同時使用下面運輸層的服務,分用與復用相反,是運輸層把收到的信息分別交付上面應用層中的相應進程。

運輸層主要使用以下兩種協(xié)議:

傳輸控制協(xié)議TCP (Transmission Control Protocol)——提供面向連接的、可靠的數據傳輸服務,其數據傳輸的單位是報文段(segment)。

用戶數據報協(xié)議 UDP (User Datagram Protocol)——提供無連接的、盡最大努力(best-effort)的數據傳輸服務(不保證數據傳輸的可靠性),其數據傳輸的單位是用戶數據報

(3) 網絡層(network layer)

網絡層負責為分組交換網上的不同主機提供通信服務。在發(fā)送數據時,網絡層把運輸層產生的報文段或用戶數據報封裝成分組(packet)進行傳送。在TCP/IP體系中,由于網絡層使用IP協(xié)議,因此分組也叫作 IP數據報,或簡稱為數據報(datagram)。本書把“分組”和“數據報”作為同義詞使用

請注意:不要將運輸層的“用戶數據報UDP”和網絡層的“IP數據報”弄混。此外,無論在哪一層傳送的數據單元,都可籠統(tǒng)地用“分組”來表示

網絡層的另一個任務就是要選擇合適的路由,使源主機運輸層所傳下來的分組能夠通過網絡中的路由器找到目的主機。

這里要強調指出,網絡層中的“網絡”二字,已不是我們通常談到的具體的網絡,而是在計算機網絡體系結構模型中的專用名詞。

因特網是一個很大的互聯(lián)網,它由大量的異構(heterogeneous)網絡通過路由器(router)相互連接起來。因特網主要的網絡層協(xié)議是無連接的網際協(xié)議IP (Internet Protocol)和許多種路由選擇協(xié)議,因此因特網的網絡層也叫做網際層IP層。在本書中,網絡層、網際層和IP層都是同義語。

(4) 數據鏈路層(data link layer)

數據鏈路層常簡稱為鏈路層。我們知道,兩臺主機之間的數據傳輸,總是在一段一段的鏈路上傳送的,這就需要使用專門的鏈路層的協(xié)議。在兩個相鄰結點之間傳送數據時,數據鏈路層將網絡層交下來的IP數據報組裝成幀(framing),在兩個相鄰結點間的鏈路上傳送(frame)。每一幀包括數據和必要的控制信息(如同步信息、地址信息、差錯控制等)。

在接收數據時,控制信息使接收端能夠知道一個幀從哪個比特開始和到哪個比特結束。這樣,數據鏈路層在收到一個幀后,就可從中提取出數據部分,上交給網絡層。

控制信息還使接收端能夠檢測到所收到的幀中有無差錯。如發(fā)現(xiàn)有差錯,數據鏈路層就簡單地丟棄這個出了差錯的幀,以免繼續(xù)在網絡中傳送下去白白浪費網絡資源。如果需要改正數據在數據鏈路層傳輸時出現(xiàn)的差錯(這就是說,數據鏈路層不僅要檢錯,而且要糾錯),那么就要采用可靠傳輸協(xié)議來糾正出現(xiàn)的差錯。這種方法會使數據鏈路層的協(xié)議復雜些。

(5) 物理層(physical layer)

在物理層上所傳數據的單位是比特。發(fā)送方發(fā)送1(或0)時,接收方應當收到1(或0)而不是0(或1)。因此物理層要考慮用多大的電壓代表“1”或“0”,以及接收方如何識別出發(fā)送方所發(fā)送的比特。物理層還要確定連接電纜的插頭應當有多少根引腳以及各條引腳應如何連接。當然,解釋比特代表的意思,就不是物理層的任務。請注意,傳遞信息所利用的一些物理媒體,如雙絞線、同軸電纜、光纜、無線信道等,并不在物理層協(xié)議之內而是在物理層協(xié)議的下面。因此也有人把物理媒體當作第0層。

在因特網所使用的各種協(xié)議中,最重要的和最著名的就是TCP和IP兩個協(xié)議。現(xiàn)在人們經常提到的TCP/IP并不一定是單指TCP和IP這兩個具體的協(xié)議,而往往是表示因特網所使用的整個TCP/IP協(xié)議族(protocol suite)注:請注意suite這個字的特殊讀音/swi:t/,不要讀錯。

圖1-19說明的是應用進程的數據在各層之間的傳遞過程中所經歷的變化。這里為簡單起見,假定兩臺主機通過一臺路由器連接起來。

圖1-19 數據在各層之間的傳遞過程

假定主機1的應用進程AP1向主機2的應用進程AP2傳送數據。AP1先將其數據交給本主機的第5層(應用層)。第5層加上必要的控制信息H5就變成了下一層的數據單元。第4層(運輸層)收到這個數據單元后,加上本層的控制信息H4,再交給第3層(網絡層),成為第3層的數據單元。依此類推。不過到了第2層(數據鏈路層)后,控制信息被分成兩部分,分別加到本層數據單元的首部(H2)和尾部(T2);而第1層(物理層)由于是比特流的傳送,所以不再加上控制信息。請注意,傳送比特流時應從首部開始傳送。

OSI參考模型把對等層次之間傳送的數據單位稱為該層的協(xié)議數據單元 PDU (Protocol Data Unit)。這個名詞現(xiàn)已被許多非OSI標準采用。

當這一串的比特流離開主機1的物理層經網絡的物理媒體(傳輸信道)傳送到路由器時,就從路由器的第1層(物理層)依次上升到第3層(網絡層)。每一層都是根據控制信息進行必要的操作,然后將控制信息剝去,將該層剩下的數據單元上交給更高的一層。當分組上升到了第3層時,就根據首部中的目的地址查找路由器中的路由表,找出轉發(fā)分組的接口,然后往下傳送到第2層(鏈路層),加上新的首部和尾部后,再到最下面的第1層,然后在物理媒體上把每一個比特發(fā)送出去。

當這一串的比特流離開路由器到達目的站主機2時,就從主機2的第1層按照上面講過的方式,依次上升到第5層。最后,把應用進程AP1發(fā)送的數據交給目的站的應用進程AP2

可以用一個簡單例子來比喻上述過程。有一封信從最高層向下傳。每經過一層就包上一個新的信封,寫上必要的、交由下一層處理的地址信息。包有多個信封的信件傳送到目的站后,從第1層起,每層拆開一個信封后(即按協(xié)議進行處理后)就把信封中的信交給它的上一層。傳到最高層后,取出發(fā)信人所發(fā)的信交給收信人。

雖然應用進程數據要經過如圖1-19所示的復雜過程才能送到終點的應用進程,但這些復雜過程對用戶來說,卻都被屏蔽掉了,以致應用進程AP1 覺得好像是直接把數據交給了應用進程AP2。同理,任何兩個同樣的層次(例如在兩個系統(tǒng)的第4層)之間,也好像如同圖1-19中的水平虛線所示的那樣,把數據(即數據單元加上控制信息)通過水平虛線直接傳遞給對方。這就是所謂的“對等層”(peer layers)之間的通信。我們以前經常提到的各層協(xié)議,實際上就是在各個對等層之間傳遞數據時的各項規(guī)定。

在文獻中也還可以見到術語“協(xié)議棧”(protocol stack)。這是因為幾個層次畫在一起很像一個(stack)的結構。

主站蜘蛛池模板: 广德县| 阳东县| 大宁县| 延长县| 根河市| 霍山县| 黑水县| 彰化市| 吉林市| 新昌县| 秭归县| 沅江市| 东方市| 宝鸡市| 云龙县| 阳朔县| 榕江县| 聂荣县| 台东市| 靖边县| 南川市| 铜梁县| 长春市| 峨边| 嘉峪关市| 禄劝| 徐水县| 宜良县| 获嘉县| 西乌| 剑河县| 白山市| 广南县| 黄冈市| 施甸县| 德清县| 杂多县| 大同县| 崇仁县| 新绛县| 偃师市|