?網絡協議通常分不同層次進行開發, 每一層分別 負責不同的通信功能。一個協議族,比如 T C P / I P,是 一組不同層次上的多個協議的組合。 T C P / I P通常被認 為是一個四層協議系統。
這里面的四個層次分別有不同的功能:
1) 鏈路層,有時也稱作數據鏈路層或網絡接口層, 通常包括操作系統中的設備驅動程序和計算機 中對應的網絡接口卡。它們一起處理與電纜(或其他任何傳輸媒介)的物理接口細節。
2) 網絡層, 有時也稱作互聯網層, 處理分組在網絡中的活動, 例如分組的選路。 在 T C P / I P協議族中,網絡層協議包括 I P協議(網際協議),I C M P協議(I n t e r n e t互聯網控 制報文協議),以及IGMP協議(Internet組管理協議)。
3) 運輸層主要為兩臺主機上的應用程序提供端到端的通信。在 T C P / I P協議族中, 有兩個 互不相同的傳輸協議:TCP(傳輸控制協議)和UDP(用戶數據報協議)。 TCP為兩臺主機提供高可靠性的數據通信。它所做的工作包括把應用程序交給它的數據分 成合適的小塊交給下面的網絡層,確認接收到的分組,設置發送最后確認分組的超時時鐘 等。由于運輸層提供了高可靠性的端到端的通信,因此應用層可以忽略所有這些細節。 而另一方面, U D P則為應用層提供一種非常簡單的服務。 它只是把稱作數據報的分組 從一臺主機發送到另一臺主機, 但并不保證該數據報能到達另一端。 任何必需的可靠 性必須由應用層來提供。這兩種運輸層協議分別在不同的應用程序中有不同的用途,這一點將在后面看到。
4) 應用層負責處理特定的應用程序細節。幾乎各種不同的 T C P / I P實現都會提供下面這些 通用的應用程序:Telnet 遠程登錄, FTP 文件傳輸協議,SMTP 簡單郵件傳送協議, SNMP 簡單網絡管理協議。假設在一個局域網( L A N)如以太網中有兩臺主機,二者都運行 F T P協議,那么這兩者之間的網絡聯系將會通過下圖體現:
這里,我們列舉了一個 F T P客戶程序和另一個 F T P服務器程序。 大多數的網絡應用程序都 被設計成客戶—服務器模式。 服務器為客戶提供某種服務, 在本例中就是訪問服務器所在主 機上的文件。在遠程登錄應用程序 Telnet中,為客戶提供的服務是登錄到服務器主機上。
在同一層上,雙方都有對應的一個或多個協議進行通信。例如,某個協議允許 T C P層進 行通信,而另一個協議則允許兩個 IP層進行通信。
在圖2的右邊, 我們注意到應用程序通常是一個用戶進程, 而下三層則一般在(操作系 統)內核中執行。盡管這不是必需的,但通常都是這樣處理的,例如 UNIX操作系統。
在圖2中, 頂層與下三層之間還有另一個關鍵的不同之處。 應用層關心的是應用程序的 細節, 而不是數據在網絡中的傳輸活動。 下三層對應用程序一無所知, 但它們要處理所有的 通信細節。
在圖2中列舉了四種不同層次上的協議。 F T P是一種應用層協議, T C P是一種運輸層協 議, I P是一種網絡層協議,而以太網協議則應用于鏈路層上。 T C P / I P協議族是一組不同的協 議組合在一起構成的協議族。盡管通常稱該協議族為 T C P / I P,但T C P和I P只是其中的兩種協 議而已(該協議族的另一個名字是 Internet協議族(Internet Protocol Suite))。
網絡接口層和應用層的目的是很顯然的 — 前者處理有關通信媒介的細節(以太網、令牌 環網等),而后者處理某個特定的用戶應用程序( F T P、Te l n e t等)。 但是, 從表面上看, 網絡 層和運輸層之間的區別不那么明顯。 為什么要把它們劃分成兩個不同的層次呢?為了理解這 一點,我們必須把視野從單個網絡擴展到一組網絡。
在8 0年代, 網絡不斷增長的原因之一是大家都意識到只有一臺孤立的計算機構成的“孤 島”沒有太大意義,于是就把這些孤立的系統組在一起形成網絡。隨著這樣的發展,到了 9 0 年代, 我們又逐漸認識到這種由單個網絡構成的新的更大的“島嶼”同樣沒有太大的意義。 于是,人們又把多個網絡連在一起形成一個網絡的網絡,或稱作互連網 ( i n t e r n e t )。 一個互連 網就是一組通過相同協議族互連在一起的網絡。
構造互連網最簡單的方法是把兩個或多個網絡通過路由器進行連接。 它是一種特殊的用 于網絡互連的硬件盒。 路由器的好處是為不同類型的物理網絡提供連接:以太網、令牌環網、 點對點的鏈接和FDDI(光纖分布式數據接口)等等。
這些盒子也稱作IP路由器(IP Router),但我們這里使用路由器(Router)這個術語。 從歷史上說,這些盒子稱作網關( g a t e w a y),在很多T C P / I P文獻中都使用這個術語。 現在網關這個術語只用來表示應用層網關:一個連接兩種不同協議族的進程(例如, TCP/IP和IBM的SNA),它為某個特定的應用程序服務(常常是電子郵件或文件傳輸)。
圖3是一個包含兩個網絡的互連網:一個以太網和一個令牌環網, 通過一個路由器互相 連接。 盡管這里是兩臺主機通過路由器進行通信, 實際上以太網中的任何主機都可以與令牌 環網中的任何主機進行通信。 在圖3中, 我們可以劃分出端系統( End system )(兩邊的兩臺主機)和中間系統 (Intermediate system)(中間的路由器)。應用層和運輸層使用端到端( End-to-end)協議。在 圖中,只有端系統需要這兩層協議。但是,網絡層提供的卻是逐跳( Ho p - b y - h o p)協議, 兩 個端系統和每個中間系統都要使用它。
在T C P / I P協議族中,網絡層 I P提供的是一種不可靠的服務。 也就是說, 它只是盡可能快 地把分組從源結點送到目的結點,但是并不提供任何可靠性保證。而另一方面, T C P在不可 靠的I P層上提供了一個可靠的運輸層。為了提供這種可靠的服務, T C P采用了超時重傳、發 送和接收端到端的確認分組等機制。由此可見,運輸層和網絡層分別負責不同的功能。 從定義上看, 一個路由器具有兩個或多個網絡接口層(因為它連接了兩個或多個網絡)。
任何具有多個接口的系統,英文都稱作是多接口的 (multihomed)。一個主機也可以有多個接口, 但一般不稱作路由器 , 除非它的功能只是單純地把分組從一個接口傳送到另一個接口。 同樣, 路由器并不一定指那種在互聯網中用來轉發分組的特殊硬件盒。大多數的 T C P / I P實現也允許 一個多接口主機來擔當路由器的功能, 但是主機為此必須進行特殊的配置。 在這種情況下, 我們既可以稱該系統為主機(當它運行某一應用程序時,如 F T P或Te l n e t), 也可以稱之為路 由器(當它把分組從一個網絡轉發到另一個網絡時)。在不同的場合下使用不同的術語。
互聯網的目的之一是在應用程序中隱藏所有的物理細節。雖然這一點在圖 3由兩個網絡 組成的互聯網中并不很明顯, 但是應用層不能關心(也不關心)一臺主機是在以太網上, 而 另一臺主機是在令牌環網上, 它們通過路由器進行互連。 隨著增加不同類型的物理網絡, 可 能會有2 0個路由器, 但應用層仍然是一樣的。 物理細節的隱藏使得互聯網功能非常強大, 也 非常有用。
連接網絡的另一個途徑是使用網橋。 網橋是在鏈路層上對網絡進行互連, 而路由器則是 在網絡層上對網絡進行互連。網橋使得多個局域網( L A N)組合在一起, 這樣對上層來說就 好像是一個局域網。