TCP\IP協議詳解

一、 TCP/IP 和 ISO/OSI

TCP IP模型與OSI模型的對比

        ISO/OSI模型,即開放式通信系統互聯參考模型(Open System Interconnection Reference Model),是國際標準化組織(ISO)提出的一個試圖使各種計算機在世界範圍內互連爲網絡的標準框架,簡稱OSI。

        TCP/IP協議模型(Transmission Control Protocol/Internet Protocol),包含了一系列構成互聯網基礎的網絡協議,是Internet的核心協議,通過20多年的發展已日漸成熟,並被廣泛應用於局域網和廣域網中,目前已成爲事實上的國際標準。TCP/IP協議簇是一組不同層次上的多個協議的組合,通常被認爲是一個四層協議系統,與OSI的七層模型相對應。


二、 TCP/IP分層模型


   (1). 鏈路層

        也稱作數據鏈路層或網絡接口層(在第一個圖中爲網絡接口層和硬件層),通常包括操作系統中的設備驅動程序和計算機中對應的網絡接口卡。它們一起處理與電纜(或其他任何傳輸媒介)的物理接口細節。ARP(地址解析協議)和RARP(逆地址解析協議)是某些網絡接口(如以太網和令牌環網)使用的特殊協議,用來轉換IP層和網絡接口層使用的地址。

   (2). 網絡層

        也稱作互聯網層(在第一個圖中爲網際層),處理分組在網絡中的活動,例如分組的選路。在TCP/IP協議族中,網絡層協議包括IP協議(網際協議),ICMP協議(Internet互聯網控制報文協議),以及IGMP協議(Internet組管理協議)。

        IP是一種網絡層協議,提供的是一種不可靠的服務,它只是儘可能快地把分組從源結點送到目的結點,但是並不提供任何可靠性保證。同時被TCP和UDP使用。TCP和UDP的每組數據都通過端系統和每個中間路由器中的IP層在互聯網中進行傳輸。

        ICMP是IP協議的附屬協議。IP層用它來與其他主機或路由器交換錯誤報文和其他重要信息。

        IGMP是Internet組管理協議。它用來把一個UDP數據報多播到多個主機。

    (3). 傳輸層

        主要爲兩臺主機上的應用程序提供端到端的通信。在TCP/IP協議族中,有兩個互不相同的傳輸協議:TCP(傳輸控制協議)和UDP(用戶數據報協議)。

        TCP爲兩臺主機提供高可靠性的數據通信。它所做的工作包括把應用程序交給它的數據分成合適的小塊交給下面的網絡層,確認接收到的分組,設置發送最後確認分組的超時時鐘等。由於運輸層提供了高可靠性的端到端的通信,因此應用層可以忽略所有這些細節。爲了提供可靠的服務,TCP採用了超時重傳、發送和接收端到端的確認分組等機制。

        UDP則爲應用層提供一種非常簡單的服務。它只是把稱作數據報的分組從一臺主機發送到另一臺主機,但並不保證該數據報能到達另一端。一個數據報是指從發送方傳輸到接收方的一個信息單元(例如,發送方指定的一定字節數的信息)。UDP協議任何必需的可靠性必須由應用層來提供。

   (4). 應用層

        應用層負責處理特定的應用程序細節。


三、 數據的封裝與分用



        當應用程序用TCP傳送數據時,數據被送入協議棧中,然後逐個通過每一層直到被當作一串比特流送入網絡。其中每一層對收到的數據都要增加一些首部信息(有時還要增加尾部信息),該過程如圖所示。

        TCP傳給IP的數據單元稱作TCP報文段或簡稱爲TCP段(TCP segment);UDP數據與TCP數據基本一致。唯一的不同是UDP傳給IP的信息單元稱作U D P數據報(UDP datagram),而且UDP的首部長爲8字節。IP傳給網絡接口層的數據單元稱作IP數據報(IP datagram)。通過以太網傳輸的比特流稱作幀(Frame )。




        當目的主機收到一個以太網數據幀時,數據就開始從協議棧中由底向上升,同時去掉各層協議加上的報文首部。每層協議盒都要去檢查報文首部中的協議標識,以確定接收數據的上層協議。這個過程稱作分用(Demultiplexing)。協議是通過目的端口號、源I P地址和源端口號進行解包的。


四、 其他相關概念

   (1) IP地址

        互聯網上的每個接口必須有一個唯一的Internet地址(也稱作IP地址)。IP地址長32 bit。Internet地址並不採用平面形式的地址空間,如1、2、3等。IP地址具有一定的結構,五類不同的互聯網地址格式如下:



   (2). 端口號

        服務器一般都是通過知名端口號來識別的。例如,對於每個TCP/IP實現來說,FTP服務器的TCP端口號都是21,每個Telnet服務器的TCP端口號都是23,每個TFTP (簡單文件傳送協議)服務器的UDP端口號都是69。任何TCP/IP實現所提供的服務都用知名的1~1023之間的端口號。這些知名端口號由Internet號分配機構(Internet Assigned Numbers Authority, IANA)來管理。知名端口號介於1~255之間;256~1023之間的端口號通常都是由Unix系統佔用,以提供一些特定的Unix服務;1024~5000端口號用於客戶端分配臨時端口號;大於5000的端口號是爲其他服務器預留的。

   (3). DNS

        DNS 是計算機域名系統 (Domain Name System 或Domain Name Service) 的縮寫,它是由解析器以及域名服務器組成的。域名服務器是指保存有該網絡中所有主機的域名和對應IP地址,並具有將域名轉換爲IP地址功能的服務器。

發佈了128 篇原創文章 · 獲贊 36 · 訪問量 20萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章