TCP/IP協議原理【轉載】

Dus發表於2015-12-10

前述

       各種L2資料網具有不同的通訊協議與幀結構,其網路節點裝置可以是各種型別的資料交換機(X.25、FR、Ethernet和ATM等分組交換機);而L3資料網(IP網或internet)具有統一的TCP/IP通訊協議和分組結構,全網採用統一格式的IP地址,節點裝置統一採用面向無連線的路由器。為便於理解,我們可以將L3資料網簡單地理解為構建在L2資料網平臺上的一個路由器網。

1 internet概述

internet是一個由眾多網路互聯而成的世界範圍內的計算機網路。從通訊的角度來看,internet是一個以TCP/IP統一的標準,將世界範圍內多個國家的部門和機構的兩層計算機子網聯接而成的三層資料網。從資源角度來看,internet是一個集各領域、各學科、各種應用等各種資源為一體的資源資料網。

internet具有以下特點:

(1) TCP/IP是internet的基礎與核心,依靠TCP/IP協議實現了網路的互聯;

(2) 使用者使用internet時無需瞭解網路底層(物理層和鏈路層)的結構,十分方便;

(3) 隨著internet主幹線路與接入頻寬的不斷擴充,internet最終將取代現有的電話網、資料網和有線電視網,成為三網合一的綜合多媒體業務網;

(4) 世界上沒有對internet上通訊進行統一管理的機構,internet上的許多服務和功能都是由使用者開發、經營和管理的,因此從經營角度看internet是一個使用者的網路。

2 TCP/IP 協議

internet實現互聯的關鍵是TCP/IP協議。在internet內部,計算機之間互相傳送資訊包進行通訊,TCP/IP協議對這種資訊包的傳輸方式作了具體的規定。

2.1 IP協議(因特網協議)

2.1.1 IP協議概述

IP協議定義在OSI-RM第三層———網路層,是internet最重要的協議。在IP協議中規定了在internet上進行通訊時應遵守的規則,例如IP資料包的組成、路由器如何將IP資料包送到目的主機等。

各種物理網路在鏈路層(二層)所傳輸的基本單元為幀(MAC幀),其幀格式隨物理網路而異,各物理網路的實體地址(MAC地址)也隨物理網路而異。IP協議的作用就是向傳輸層(TCP層)提供統一的IP包,即將各種不同型別的MAC幀轉換為統一的IP包,並將MAC幀的實體地址變換為全網統一的邏輯地址(IP地址)。這樣,這些不同物理網路MAC幀的差異對上層而言就不復存在了。正因為這一轉換,才實現了不同型別物理網路的互聯。

IP協議面向無連線,IP網中的節點路由器根據每個IP包的包頭IP地址進行定址,這樣同一個主機發出的屬於同一報文的IP包可能會經過不同的路徑到達目的主機。

2.1.2 IP協議的功能

IP協議主要具有以下幾部分功能:

(1) 定址

這一功能將在下一節中作為專題進行討論。

(2) 路由選擇

路由選擇是以單個IP資料包為基礎的,概括而言是確定某個IP資料包到達目的主機需經過哪些路由器。路由選擇可以由源主機決定,也可以由IP資料包所途經的路由器決定。

在IP協議中,路由選擇依靠路由表進行。在IP網上的主機和路由器中均儲存了一張路由表,路由表指明下一個路由器(或目的主機)的IP地址。路由表由目的主機地址和去往目的主機的路徑兩部分組成。其中,去往目的主機的路徑通常是下一個路由器的地址,也可是目的主機的IP地址。

(3) 分段與組裝

IP資料包在實際傳送過程中所經過的物理網路幀的最大長度可能不同,當長IP資料包需通過短幀子網時,需對IP資料包進行分段與組裝。

IP協議實現分段與組裝的方法是給每個IP資料包分配一個惟一的標誌符,且報頭部分還有與分段與組裝相關的分段標記和位移。IP資料包在分段時,每一段需包含原有的標誌符。為了提高效率、減輕路由器的負擔,重新組裝工作由目的主機來完成。

2.2 TCP協議(傳輸控制協議)

2.2.1 TCP協議概述

TCP協議位於OSI-RM第四層———傳輸層,是一個端對端、面向連線的協議。該協議彌補了IP協議的某些不足,其中比較突出的有兩個方面:一是TCP協議能夠保證在IP資料包丟失時進行重發,能夠刪去重複收到的IP資料包,還能保證準確地按原傳送端的傳送順序重新組裝資料;二是TCP協議能區別屬於同一應用報文的一組IP資料包,並能鑑別應用報文的性質。這一功能使得某些具有四層協議功能的高階路由器可以對IP資料包進行流量、優先順序、安全管理、負荷分配和複用等智慧控制。

2.2.2 TCP協議的功能

(1) 保證傳輸的可靠性

TCP協議是面向連線的。所謂連線,是指在進行通訊之前,通訊雙方必須建立連線才能進行通訊,而在通訊結束後終止其連線。相對於面向無連線的IP協議而言,TCP協議具有高度的可靠性。

當目的主機接收到由源主機發來的IP包後,目的主機將向源主機回送一個確認訊息,這是依靠目的主機的TCP協議來完成的。TCP協議中有一個重傳記時器(RTO),當源主機傳送IP包即開始記時。如在超時之前收到確認訊號,則記時器回零;如果記時器超時,則說明該IP包已丟失,源主機應進行重傳。對於重傳記時器,確定合適的記時時長是十分重要的,它由往返時間來決定。TCP協議能夠根據不同情況自動調節記時時長。

需要說明的是,TCP協議所建立的連線是端到端的連線,即源主機與目的主機間的連線。internet中每個轉接節點(路由器)對TCP協議段透明傳輸。

總之,IP協議不提供差錯報告和差錯糾正機制,而TCP協議嚮應用層提供了面向連線的服務,以確保網路上所傳送的資料包被完整、正確、可靠地接收。一旦資料有損傷或丟失,則由TCP協議負責重傳,應用層不參與解決。

(2) 提供部分應用層資訊的功能

在TCP協議之上是應用層協議(如FTP、SMTP、TELNET等),最終需依靠它們實現主機間的通訊。TCP協議攜帶了部分應用層資訊,可用來區別同一報文資料流的一組IP包及其性質。

TCP協議對這些應用層協議規定了整數標誌符,稱為埠序號。被規定的埠序號成為保留埠,其值在0~1 023範圍內(如埠序號23,用於遠端終端服務)。此外還有自由埠序號,供個人程式使用,或者用來區分兩臺主機間相同應用層協議的多個通訊,即兩臺主機間複用多個使用者會話連線。

進行通訊的每臺主機的每個使用者會話連線都有一個插口序號,它由主機的IP地址和埠序號組成。在internet中插口序號是惟一的,一對插口序號惟一地標識了一個埠的連線(發端插口序號=源主機IP地址+源埠序號,收端插口序號=目的主機IP地址+目的埠序號)。利用插口序號可在目的主機中區分不同源主機對同一個目的主機相同埠序號的多個使用者會話連線。

在TCP協議段的頭部各域中具有碼位項。其中,SYN碼位為應用資料流的開始位(當SYN置1,表示該IP資料包為某一應用報文的第一份資料包),FIN碼位為應用資料流的結束位(當FIN置1時,表示此時資料包為某應用報文的最後一份資料包)。因此可利用SYN/FIN兩個碼位來規定某一應用報文(或某一應用資料流)的開始與結束。

TCP協議就是利用埠序號和SYN/FIN碼位來區分應用資料流並判斷其性質的,從而使具有四層功能的高階路由器具有某些對應用資料流的控制功能。

3 TCP/IP 的工作原理

下面以採用TCP/IP協議傳送檔案為例,說明TCP/IP的工作原理,其中應用層傳輸檔案採用檔案傳輸協議(FTP)。

TCP/IP協議的工作流程如下:

●在源主機上,應用層將一串應用資料流傳送給傳輸層。

●傳輸層將應用層的資料流截成分組,並加上TCP報頭形成TCP段,送交網路層。

●在網路層給TCP段加上包括源、目的主機IP地址的IP報頭,生成一個IP資料包,並將IP資料包送交鏈路層。

●鏈路層在其MAC幀的資料部分裝上IP資料包,再加上源、目的主機的MAC地址和幀頭,並根據其目的MAC地址,將MAC幀發往目的主機或IP路由器。

●在目的主機,鏈路層將MAC幀的幀頭去掉,並將IP資料包送交網路層。

●網路層檢查IP報頭,如果報頭中校驗和與計算結果不一致,則丟棄該IP資料包;若校驗和與計算結果一致,則去掉IP報頭,將TCP段送交傳輸層。

●傳輸層檢查順序號,判斷是否是正確的TCP分組,然後檢查TCP報頭資料。若正確,則向源主機發確認資訊;若不正確或丟包,則向源主機要求重發資訊。

●在目的主機,傳輸層去掉TCP報頭,將排好順序的分組組成應用資料流送給應用程式。這樣目的主機接收到的來自源主機的位元組流,就像是直接接收來自源主機的位元組流一樣。

轉載自:http://itlab.idcquan.com/cisco/TCP/18213.html

相關文章