用協(xié)議分析工具學(xué)習(xí)TCP/IP(2)

1、TCP/IP的基本原理
  本文的重點雖然是根據(jù)實例來解析TCP/IP,但要講明白下面的過程必須簡要講一下TCP/IP的基本原理。
  1)網(wǎng)絡(luò)是分層的,每一層分別負責不同的通信功能。
  TCP/IP通常被認為是一個四層協(xié)議系統(tǒng),TCP/IP協(xié)議族是一組不同的協(xié)議組合在一起構(gòu)成的協(xié)議族。盡管通常稱該協(xié)議族為TCP/IP,但TCP和IP只是其中的兩種協(xié)議而已,如表1所示。每一層負責不同的功能:
TCP/IP層描述 主要協(xié)議 主要功能
應(yīng)用層 HTTP、Telnet、FTP和E-mail等 負責把數(shù)據(jù)傳輸?shù)絺鬏攲踊蚪邮諒膫鬏攲臃祷氐臄?shù)據(jù)
傳輸層 TCP和UPD 主要為兩臺主機上的應(yīng)用程序提供端到端的通信,TCP為兩臺主機提供可靠的數(shù)據(jù)通信。它所做的工作包括把應(yīng)用程序交給它的數(shù)據(jù)分成合適的小塊交給下面的網(wǎng)絡(luò)層,確認接收到的分組,設(shè)置發(fā)送最后確認分組的超時時鐘等。UPD則為應(yīng)用層提供一種非常簡單的服務(wù)。它只是把稱作數(shù)據(jù)報的分組從一臺主機發(fā)送到另一臺主機,但并不保證該數(shù)據(jù)能到達另一端。
網(wǎng)絡(luò)層 ICMP、IP和IGMP 有時稱作互聯(lián)網(wǎng)層,主要為數(shù)據(jù)包選擇路由,其中IP是TCP/IP協(xié)議族中最為核心的協(xié)議。所有的TCP、UPD、ICMP及IGMP數(shù)據(jù)協(xié)議都以IP數(shù)據(jù)包格式傳輸。
鏈路層 ARP、RARP和設(shè)備驅(qū)動程序及接口卡 發(fā)送時將IP包作為幀發(fā)送;接收時把接收到的位組裝成幀;提供鏈路管理、錯誤檢測等。

表1

  分層的概念說起來非常簡單,但在實際的應(yīng)用中非常的重要,在進行網(wǎng)絡(luò)設(shè)置和排除故障時對網(wǎng)絡(luò)層次理解得很透,將對工作有很大的幫助。例如:設(shè)置路由是網(wǎng)絡(luò)層IP協(xié)議的事,要查找MAC地址是鏈路層ARP的事,常用的Ping命令由ICMP協(xié)議來做的。
  圖5顯示了各層協(xié)議的關(guān)系,理解它們之間的關(guān)系對下面的協(xié)議分析非常重要。

用協(xié)議分析工具學(xué)習(xí)TCP/IP(圖五)
圖5

  2)數(shù)據(jù)發(fā)送時是自上而下,層層加碼;數(shù)據(jù)接收時是自下而上,層層解碼。
  當應(yīng)用程序用TCP傳送數(shù)據(jù)時,數(shù)據(jù)被送入?yún)f(xié)議棧中,然后逐個通過每一層直到被當作一串比特流送入網(wǎng)絡(luò)。其中每一層對收到的數(shù)據(jù)都要增加一些首部信息(有時還要增加尾部信息),該過程如圖6所示。TCP傳給IP的數(shù)據(jù)單元稱作TCP報文段或簡稱為TCP段。I P傳給網(wǎng)絡(luò)接口層的數(shù)據(jù)單元稱作IP數(shù)據(jù)報。 通過以太網(wǎng)傳輸?shù)谋忍亓鞣Q作幀(Frame)。
  數(shù)據(jù)發(fā)送時是按照圖6自上而下,層層加碼;數(shù)據(jù)接收時是自下而上,層層解碼。

用協(xié)議分析工具學(xué)習(xí)TCP/IP(圖六)
圖6

  3)邏輯上通訊是在同級完成的
  垂直方向的結(jié)構(gòu)層次是當今普遍認可的數(shù)據(jù)處理的功能流程。每一層都有與其相鄰層的接口。為了通信,兩個系統(tǒng)必須在各層之間傳遞數(shù)據(jù)、指令、地址等信息,通信的邏輯流程與真正的數(shù)據(jù)流的不同。雖然通信流程垂直通過各層次,但每一層都在邏輯上能夠直接與遠程計算機系統(tǒng)的相應(yīng)層直接通信。
  從圖7可以看出,通訊實際上是按垂直方向進行的,但在邏輯上通信是在同級進行的。

用協(xié)議分析工具學(xué)習(xí)TCP/IP(圖七)
圖7

  2、過程描述
  為了更好的分析協(xié)議,我們先描述一下上述例子數(shù)據(jù)的傳輸步驟。如圖8所示:
  1)FTP客戶端請求TCP用服務(wù)器IP地址建立連接。
  2)TCP發(fā)送一個連接請求分段到遠端的主機,即用上述IP地址發(fā)送一份IP數(shù)據(jù)報。
  3) 如果目的主機在本地網(wǎng)絡(luò)上,那么IP數(shù)據(jù)報可以直接送到目的主機上。如果目的主機在一個遠程網(wǎng)絡(luò)上,那么就通過IP選路函數(shù)來確定位于本地網(wǎng)絡(luò)上的下一站路由器地址,并讓它轉(zhuǎn)發(fā)IP數(shù)據(jù)報。在這兩種情況下,IP數(shù)據(jù)報都是被送到位于本地網(wǎng)絡(luò)上的一臺主機或路由器。
  4) 本例是一個以太網(wǎng),那么發(fā)送端主機必須把32位的IP地址變換成48位的以太網(wǎng)地址,該地址也稱為MAC地址,它是出廠時寫到網(wǎng)卡上的世界唯一的硬件地址。把IP地址翻譯到對應(yīng)的MAC地址是由ARP協(xié)議完成的。
  5) 如圖的虛線所示,ARP發(fā)送一份稱作ARP請求的以太網(wǎng)數(shù)據(jù)幀給以太網(wǎng)上的每個主機,這個過程稱作廣播。ARP請求數(shù)據(jù)幀中包含目的主機的IP地址,其意思是“如果你是這個IP地址的擁有者,請回答你的硬件地址!
  6) 目的主機的ARP層收到這份廣播后,識別出這是發(fā)送端在尋問它的IP地址,于是發(fā)送一個ARP應(yīng)答。這個ARP應(yīng)答包含I P地址及對應(yīng)的硬件地址。
  7) 收到ARP應(yīng)答后,使ARP進行請求—應(yīng)答交換的IP數(shù)據(jù)包現(xiàn)在就可以傳送了。
  8) 發(fā)送IP數(shù)據(jù)報到目的主機。

用協(xié)議分析工具學(xué)習(xí)TCP/IP(圖八)

圖8

北大青鳥網(wǎng)上報名
北大青鳥招生簡章