1. 程式人生 > >TCP/IP協議族分層詳解

TCP/IP協議族分層詳解

1、TCP/IP的介紹

網際網路協議族(Internet Protocol Suite,縮寫IPS)是一個網路通訊模型,以及一整個網路傳輸協議家族,
為網際網路的基礎通訊架構。它常被通稱為TCP/IP協議族(TCP/IP Protocol Suite,或TCP/IP Protocols),
簡稱TCP/IP。

TCP/IP提供點對點的連結機制,將資料應該如何封裝、定址、傳輸、路由以及在目的地如何接收,都加以標
準化。它通常將軟體通訊過程抽象化為四個抽象層,採取協議堆疊的方式,分別實現出不同通訊協議。協議套組下的各種協議,依其功能不同,被分別歸屬到這四個層次結構之中,常被視為是簡化的七層OSI模型。

2、TCP/IP和ISO/OSI 分層比較

這裡寫圖片描述

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

3、TCP/IP分層詳解

這裡寫圖片描述

在上面,通常我們是把TCP/IP協議族分為四層,但是如果是五層的話就是在鏈路層下再加個物理層。下面是對各層的詳細介紹。

這裡寫圖片描述

IP是一種網路層協議,提供的是一種不可靠的服務,它只是儘可能快地把分組從源結點送到目的結點,但是、並不提供
任何可靠性保證。同時被TCP和UDP使用。TCP和UDP的每組資料都通過端系統和每個中間路、由器中的IP層在網際網路中
進行傳輸。
ICMP是IP協議的附屬協議。IP層用它來與其他主機或路由器交換錯誤報文和其他重要資訊。
IGMP是Internet組管理協議。它用來把一個UDP資料報多播到多個主機。
TCP是一個傳輸控制協議,它為兩臺主機提供了可靠性的資料通訊,它所做的工作包括把應用程式交給它的資料進行合適
的分塊交給下層的網路層,確認接收到的分組,設定傳送最後確認分組的超時時鐘等
UDP是使用者資料報協議,它為應用層提供了簡單的服務,它只是把稱作資料報的分組從一臺主機發送到另外一臺主機,並
不保證該資料報能到達另外一端。

4、IP地址的介紹

網際網路上的每個介面必須有一個唯一的Internet地址(也稱作IP地址)。IP地址長32 bit。Internet地址並不
採用平面形式的地址空間,如1、2、3等。IP地址具有一定的結構,五類不同的網際網路地址格式如下:
這裡寫圖片描述

從上圖,我們可以看出IP地址有五類,每類的地址範圍為:
這裡寫圖片描述

我們可以發現,通過IP地址的網路號和主機號已經可以識別網路介面,進而訪問主機,但是人們最喜歡還是使用主機名,所以我們需要提供一個:域名系統(DNS),它給我們提供了主機名和IP地址之間的對映資訊。

5、封裝和分用

  • 封裝

這裡寫圖片描述

如上圖所示,當應用程式採用TCP傳送資料時,資料被送入協議棧中,然後,通過每一層直到被當做一串位元流傳入網路中。其中每一層收到資料都會對資料增加一些首部資訊(有的還需要尾部資訊)。TCP傳給IP的資料單元稱為TCP報文段或簡稱為TCP段(UDP傳給IP的資料單元稱為UDP資料段),IP傳給網路介面層的資料單元稱為IP資料報。通過乙太網傳輸的位元流稱為幀。

  • 分用
    當目的主機收到了一個乙太網的資料幀時,資料要從協議棧中,由底往上,同時去掉各層協議上的報文首部,如下圖所示:
    這裡寫圖片描述

補充:埠號介紹

伺服器一般都是通過知名埠號來識別的。例如,對於每個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的埠號是為其他服務
器預留的。