TCP/IP層描述 | 主要協議 | 主要功能 |
應用層 | HTTP、Telnet、FTP和E-mail等 | 負責把數據傳輸到傳輸層或接收從傳輸層返回的數據 |
傳輸層 | TCP和UPD | 主要為兩臺主機上的應用程序提供端到端的通信,TCP為兩臺主機提供可靠的數據通信。它所做的工作包括把應用程序交給它的數據分成合適的小塊交給下面的網絡層,確認接收到的分組,設置發送最后確認分組的超時時鐘等。UPD則為應用層提供一種非常簡單的服務。它只是把稱作數據報的分組從一臺主機發送到另一臺主機,但并不保證該數據能到達另一端。 |
網絡層 | ICMP、IP和IGMP | 有時稱作互聯網層,主要為數據包選擇路由,其中IP是TCP/IP協議族中最為核心的協議。所有的TCP、UPD、ICMP及IGMP數據協議都以IP數據包格式傳輸。 |
鏈路層 | ARP、RARP和設備驅動程序及接口卡 | 發送時將IP包作為幀發送;接收時把接收到的位組裝成幀;提供鏈路管理、錯誤檢測等。 |
表1
分層的概念說起來非常簡單,但在實際的應用中非常的重要,在進行網絡設置和排除故障時對網絡層次理解得很透,將對工作有很大的幫助。例如:設置路由是網絡層IP協議的事,要查找MAC地址是鏈路層ARP的事,常用的Ping命令由ICMP協議來做的。
圖5顯示了各層協議的關系,理解它們之間的關系對下面的協議分析非常重要。
2)數據發送時是自上而下,層層加碼;數據接收時是自下而上,層層解碼。
當應用程序用TCP傳送數據時,數據被送入協議棧中,然后逐個通過每一層直到被當作一串比特流送入網絡。其中每一層對收到的數據都要增加一些首部信息(有時還要增加尾部信息),該過程如圖6所示。TCP傳給IP的數據單元稱作TCP報文段或簡稱為TCP段。I P傳給網絡接口層的數據單元稱作IP數據報。 通過以太網傳輸的比特流稱作幀(Frame)。
數據發送時是按照圖6自上而下,層層加碼;數據接收時是自下而上,層層解碼。
3)邏輯上通訊是在同級完成的
垂直方向的結構層次是當今普遍認可的數據處理的功能流程。每一層都有與其相鄰層的接口。為了通信,兩個系統必須在各層之間傳遞數據、指令、地址等信息,通信的邏輯流程與真正的數據流的不同。雖然通信流程垂直通過各層次,但每一層都在邏輯上能夠直接與遠程計算機系統的相應層直接通信。
從圖7可以看出,通訊實際上是按垂直方向進行的,但在邏輯上通信是在同級進行的。
圖7
2、過程描述
為了更好的分析協議,我們先描述一下上述例子數據的傳輸步驟。如圖8所示:
1)FTP客戶端請求TCP用服務器的IP地址建立連接。
2)TCP發送一個連接請求分段到遠端的主機,即用上述IP地址發送一份IP數據報。
3) 如果目的主機在本地網絡上,那么IP數據報可以直接送到目的主機上。如果目的主機在一個遠程網絡上,那么就通過IP選路函數來確定位于本地網絡上的下一站路由器地址,并讓它轉發IP數據報。在這兩種情況下,IP數據報都是被送到位于本地網絡上的一臺主機或路由器。
4) 本例是一個以太網,那么發送端主機必須把32位的IP地址變換成48位的以太網地址,該地址也稱為MAC地址,它是出廠時寫到網卡上的世界唯一的硬件地址。把IP地址翻譯到對應的MAC地址是由ARP協議完成的。
5) 如圖的虛線所示,ARP發送一份稱作ARP請求的以太網數據幀給以太網上的每個主機,這個過程稱作廣播。ARP請求數據幀中包含目的主機的IP地址,其意思是“如果你是這個IP地址的擁有者,請回答你的硬件地址。”
6) 目的主機的ARP層收到這份廣播后,識別出這是發送端在尋問它的IP地址,于是發送一個ARP應答。這個ARP應答包含I P地址及對應的硬件地址。
7) 收到ARP應答后,使ARP進行請求—應答交換的IP數據包現在就可以傳送了。
8) 發送IP數據報到目的主機。