TCP/IP協議——TCP/IP協議棧及框架

 1  基於4層的TCP/IP協議棧基本描述

基於4層的TCP/IP協議棧最具說服力的是:這一觀點是由TCP/IP原始標準的創立者——美國國防部提出的,它與ISO/OSI參考模型的對應關係如下圖:

1  TCP/IP協議棧層次結構與ISO/OSI參考模型的對應關係

如圖1所示,TCP/IP協議棧從低層開始,依次爲網絡存取層、網絡互連層、傳輸層和應用層,具體描述如下:

1.1  網絡存取層(Network Access Layer

網絡存取層(又稱網絡層),位於TCP/IP協議棧的最低層,該層中的協議提供了數據傳送的方法,使得系統可以通過連接的網絡將數據傳送到其它設備,並定義瞭如何利用網絡來傳送IP數據報。它基本上包括了ISO/OSI模型中的數據鏈路層和物理層的所有功能。TCP/IP網絡存取層定義了網絡傳送IP數據報的方式(即流與分組),使得系統能夠把數據傳送給與網絡直接相連的設備。

     網絡存取層的協議與較高層協議不一樣,它必須知道物理網絡的各種細節,以便準確地格式化傳輸的數據,使其遵守網絡規定。因此,網絡存取層的協議種類繁多,每一個協議都對應一種物理網絡標準。這些協議常常由設備驅動程序和相關的程序結合而成,其內含的API除將IP數據封裝成能在網絡中傳送的單元——幀外,還能將IP地址轉換成爲網絡使用的物理地址。典型的協議實例有RFC 826(地址轉換協議 ARP)、RFC 894(以太網上IP數據報傳輸標準)等。

1.2  網絡互連層 (Internet Layer

      網絡互連層(又稱網際層)位於網絡存取層之上,由互連網協議(IP)、互連網控制報文協議(ICMP)和互連網組管理協議(IGMP)等協議組成。IPTCP/IP的核心,也是網絡互連層中最重要的協議,它提供基本的分組傳送服務,是構建TCP/IP網絡的基礎。因爲,無論是IP上層還是IP下層的協議,也不管數據是輸入還是輸出,目的地在何方,它們都使用IP來傳遞數據。概括起來,IP主要完成以下任務:

  • 定義數據報,數據報是Internet中傳輸的基本單元。
  • 定義Internet地址系統。
  • 把數據報分解或重組成易於在網絡中傳輸的結構。
  • 在網絡存取層和傳輸層之間傳遞數據。
  • 給遠端主機的數據報指定路由。
  • 完成數據報的擁擠控制和信息控制。

  IP是一個“無連接協議”,它在傳輸數據之前不交換控制信息來建立端到端的連接,而且還要依靠其它層的協議提供錯誤檢測和錯誤恢復。但這並不能說明IP協議是不可信賴的,事實上,它可以正確的將數據傳送到已連接的網絡,只是它並不能檢驗數據是否被正確地接收。

1.3  傳輸層( Transport Layer

   傳輸層也稱主機到主機的傳輸層,位於TCP/IP棧的第3層,它爲應用層提供可靠的或不可靠的端到端服務。TCP(傳輸控制協議)和UDP(用戶數據報協議)是傳輸層中兩個最重要的協議。它們都爲應用層和網絡互連層傳送數據,二者的區別在於:TCP是一種可靠的、面向連接的、字節流協議,它利用端到端錯誤檢測與糾正功能提供可靠的數據傳輸服務,因爲它能驗證數據在網絡上是否以合適的序列正確地傳輸;而UDP是一個不可靠的無連接數據報協議,就像IP一樣,它能爲應用程序提供低開銷的無連接數據報傳輸服務。

     總之,TCP的優勢在於可靠,但開銷大;而UDP比較適合於傳輸的數據量少及使用“查詢——響應”方式的應用程序的服務。

1.4  應用層(Application Layer

    應用層位於TCP/IP協議棧的頂層,它爲用戶提供各種網絡服務,如文件傳輸、遠程登錄、電子郵件等。同時,應用層包含與具體應用程序相關的所有細節。

      對於網絡軟件工程師而言,你在應用層的工作是將信息傳到協議棧的下一合適層。協議棧的每一層要完成各自的功能。也就是說,TCP/IP協議將共同工作,完成地址轉換、尋址和數據傳輸工作。爲了和協議棧上的協議通信,必須知道有哪些協議可用,並知道它們在協議棧中的位置和功能。正常情況下應用程序將和傳輸協議的某一個協議(TCPUDP)進行通信,或不使用傳輸層服務,直接與網絡互連層的IP打交道(如外部網關協議 EGP)。

2  基於5層的TCP/IP協議棧基本描述

相對於ISO/OSI模型,基於5層的TCP/IP協議比基於4層的TCP/IP協議更容易理解,具體的分層方案如下圖2:

2   TCP/IP協議棧層次結構與ISO/OSI參考模型的對應關係

比較圖2和圖1可以看出,從頂層向下三層(應用層、傳輸層和網絡互連層)對於基於5層的TCP/IP和基於4層的TCP/IP其功能都是一樣的,這裏不在贅述。除此之外,基於5層的TCP/IP在低層比基於4層的TCP/IP分層更詳細,即用物理層和鏈路層兩層來表示上面講到的網絡存取層。

2.1  物理層

       TCP/IP協議棧的物理層與ISO/OSI模型的物理層相同——它包括攜帶網絡數據的傳輸媒體介質,這種介質通常是雙絞線、同軸電纜或標準串口線等,網絡設計人員必須知道網絡介質的傳輸特性

2.2  鏈路層

       鏈路層包括一個硬件接口和兩個協議模塊:地址解析協議(ARP)和反向地址解析協議(RARP)。鏈路層處理物理層和網絡互連層的數據交換,並向網絡互連層隱藏物理層的執行細節。當鏈路層完成其工作時,網絡互連層的協議不關心網絡是使用以太網技術還是令牌環技術,網絡互連層只是簡單地將數據傳給鏈路層,然後由鏈路層處理所有進一步的數據傳輸。

      綜上所述,不論採用哪種分層方式,其核心和功能是一樣的,特別是在應用層。應用層的初級網絡用戶對分層幾乎不感興趣,但要進行網絡編程的人必須清楚這一點:當用戶啓動了某個應用層服務之後,該應用要首先建立一個到某特定機器的連接,隨後告訴目的機器本次連接的操作意圖,並控制整個操作過程。在源計算機系統中,應用層將要發送的信息交給服務層的TCP(或UDP),TCP通過增加TCP協議所規定的報頭來確保信息正確地傳輸到目的地。然後,TCP把包括目的地址在內的報頭和用戶數據交給網絡互連層的IPIP負責爲信息選擇路由。由於 TCPIP處理與網絡有關的細節,所以應用層協議可以將一個網絡連接看成一個簡單的字節流,而不必描述與通信有關的任何細節。

     對網絡通信軟件設計者而言,一個網絡連接可由兩對元素完全刻畫:源主機的IP地址和應用程序端口號;目的主機的IP地址和應用程序端口號。爲了保證使用TCP/IP 協議的網絡中兩臺主機的正常連接,應禁止使用相同的IP地址和端口號,特別是IP地址。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章