網路中存在多臺主機,為保證主機間能順利通訊,且通訊雙方可以獲取到準確、有效的資料,應制訂一組用於資料傳輸的規則,這組規則就是協議。
協議需要預先制定,同時,為確保網路通訊過程中對各種事件的應對能“有法可依”,協議應面面俱到。但網路間的通訊需要經歷複雜的過程,一段複雜過程中的各項操作會出現各種各樣的結果,為複雜過程的多種結果也會是複雜的。為了簡化協議,人們考慮按照通訊過程中各項工作的性質,將工作分為不同層次,併為每一層制定各自的協議。
制定協議時為網路間通訊過程所劃分的層次通常稱為計算機網路的體系結構。下面先對網路體系結構進行講解,再基於體系結構中的層次介紹常用的網路協議。
1. 網路體系結構
計算機網路中常見的體系結構有OSI(Open System Interconnect,開放式系統互聯模型)和TCP/IP(Transmission Control Protocol/Internet Protocol,傳輸控制協議/網際網路協議模型)。
OSI由國際標準協會ISO制定,共分為七層,由上而下依次為應用層、表示層、會話層、傳輸層、網路層、資料鏈路層和物理層,雖然OSI由ISO制定,但其實用性較差,並未得到廣泛應用。
在OSI誕生時,因特網已實現了全世界的基本覆蓋,因此市面上應用最廣泛的體系結構為因特網中使用的TCP/IP體系結構,該結構包含四層,分別為應用層、傳輸層、網際層和網路介面層。
此外,在計算機網路中通常以一種包含五層協議的體系結構來講解各層之間的功能與聯絡,這種體系結構結合OSI和TCP/IP的優點,分為應用層、傳輸層、網路層、資料鏈路層和物理層。
以上三種體系結構中各層的對應關係如圖1所示。
圖1 計算機網路體系結構
五層協議體系結構中各層的功能分別如下:
(1)物理層。物理層是計算機體系結構的最底層,它為裝置之間的資料傳輸提供可靠的環境。
(2)資料鏈路層。資料鏈路層簡稱鏈路層,該層將從網路層獲取的資料報組裝成幀,在網路結點之間以幀為單位傳輸資料。
(3)網路層。為分組交換網上的不同主機提供通訊服務,在進行通訊時,將從傳輸層獲取的報文段或資料報封裝成分組或包,資料或包通常稱為資料報。
(4)傳輸層。為應用程序提供連線服務,實現連線兩端程序的會話。
(5)應用層。為應用程序提供服務,定義了應用程序間通訊和互動的規則。
2. 協議
計算機網路通訊基於TCP/IP(Transmission Control Protocol/Internet Protocol,傳輸控制協議/網際網路協議),TCP/IP實際上並不是協議,而是協議族,它由多種協議構成,包括TCP協議、UDP協議、IP協議等等,其中TCP、UDP協議應用在傳輸層;IP協議應用在網路層。
(1)TCP協議
TCP協議即傳輸控制協議(Transmission Control Protocol),該協議是一種面向連線的、可靠的、基於位元組流的傳輸協議。在傳遞資料之前,收發雙方會先透過一種被稱為“三次握手”的協商機制使通訊雙方建立連線,為資料傳輸做好準備。為了防止報文段丟失,TCP會給每個資料段一個序號,使接收端按序號順序接收資料。若接收端正常接收到報文段,向傳送端傳送一個確認資訊;若傳送端在一定的時間後未接收到確認資訊,便假設報文段已丟失,並重新向接收端傳送對應報文段。此外,TCP協議中定義了一個校驗函式,用於檢測傳送和接收的資料,防止產生資料錯誤。
通訊結束後,通訊雙方經過“四次握手”關閉連線。因為TCP連線是全雙工的(全雙工指交換機在傳送資料的同時也能夠接收資料,兩者同步進行,類似語音通話,雙方在說話的同時也能夠聽到對方的聲音),所以每個方向必須單獨關閉連線,即連線的一端需先發送關閉資訊到另一端,當關閉資訊傳送後,傳送關閉資訊的一端不會再發送資訊,但另一端仍可向該端傳送資訊。
(2)UDP協議
UDP協議即使用者資料報協議(User Datagram Protocol),它是一種無連線的傳輸層協議。 UDP的收發雙方不存在連線,當按照UDP協議傳輸資料時,傳送方使用套接字檔案傳送資料報給接收方,之後可立即使用同一個套接字傳送其它資料報給另一個接收方;同樣的,接收方也可以透過相同的套接字接收由多個傳送方發來的資料。
UDP不對資料報進行編號,它不保證接收方以正確的順序接收到完整的資料,但會將資料報的長度隨資料傳送給接收方。雖然UDP面向無連線的通訊,不能如TCP般很好地保證資料的完整性和正確性,但UDP處理速度快,耗費資源少,因此在對資料完整性要求低、對傳輸效率要求高的應用中一般使用UDP協議傳輸資料。
(3)IP協議
IP協議的兩個基本功能為定址和分段。傳輸層的資料封裝完成後沒有直接傳送到接收方,而是先遞達網路層;網路層又在原資料報前新增IP首部,封裝成IP資料報,並解析資料報中的目的地址,為其選擇傳輸路徑,將資料報傳送到接收方,IP協議中這種選擇道路的功能稱為路由功能。此外,IP協議可重新組裝資料報,改變資料報的大小,以適應不同網路對包大小的要求。需要說明的是,IP協議不提供端到端或結點到結點的確認,只檢測報頭中的校驗碼,不提供可靠的傳輸服務。
雖然各層使用的協議互不相同,但協議通常都由如下3個部分組成:
(1)待互動資料的結構和格式;
(2)進行互動的方式,包括資料的型別、對資料的處理動作等;
(3)事件實現順序的說明。
一組完整的協議不僅需要考慮通訊雙方在正常情況下的動作,還應考慮到通訊時可能出現的異常,並對異常情況下通訊雙方的動作做出規定。