IP 數據報的交付
  • 更新時間:2025-07-10 03:07:16
  • 網站建設
  • 發(fā)布時間:2年前
  • 620

網絡層的出現也是網絡發(fā)展的結果。當數據通信需要跨越網段并且有多個通信路徑可供選擇時,這就產生了如何連接任意兩臺主機進行遠距離數據傳輸的問題。網絡層的IP協議很好地解決了這個問題。這里需要先了解IP協議和IP數據單元的格式,然后再分析IP協議的工作原理。1. IP協議

IP協議(Internet Protocol,網際協議)是互聯網互連協議。 IP 協議是一組應遵循的約定或規(guī)則,以使所有連接到Internet 的計算機能夠相互通信。這套規(guī)則保證了跨網連接、跨網尋址、跨網數據轉發(fā)等功能的實現。因此,它是網絡層中最重要的協議。它與TCP 協議一起構成了TCP/IP 協議族的核心。 IP協議在網絡層提供無連接、不可靠的數據傳輸服務。

什么是無連接、不可靠的數據傳輸?

在網絡層傳輸IP數據包就像我們日常生活中在郵局發(fā)送的普通信件一樣。每一封普通信件都有一個明確的目的地地址。普通信件在傳輸過程中的路徑可能會有所不同。途中普通信件不保;寄件人和收件人之間沒有直接的限制關系(理解為斷開連接),如果平信在傳輸過程中丟失(理解為不可靠),郵局概不負責。也就是說,IP數據包在網絡傳輸過程中,發(fā)送端網絡層和接收端網絡層之間不需要建立連接,發(fā)送端網絡層也不需要建立連接。關心IP數據包是否發(fā)送到接收端的網絡層。2. IP數據單元格式

IP協議的數據單元也很復雜,如圖4-14所示。 IP協議頭主要由12個字段組成,從傳輸層傳下來的數據單元構成了網絡層的IP數據報,也稱為IP包。IP數據單元格式 IP協議頭的組成,每行32位,各字段含義解釋如下。版本(Version):是指IP協議版本號,目前是4,是指IPv4a頭的長度(Internet Header Length,IH L):是指IF協議頭的長度,有4個B為一個單位,最小值為5,即最小的IP協議頭有20個字節(jié)(沒有選項時)。

服務類型(TOS):由8位組成,不同位置的位設置可以代表不同的服務類型。有數據優(yōu)先級(現在忽略)、低延遲、高吞吐量、高可靠性和最低費用等類型的服務,否則就是一般服務。

總長度(Total Length,TL):是指整個中頻包的長度,在B中。利用協議頭的長度和總長度,可以知道中頻包中數據的起始位置和長度.

標識(Identification) : 標識主機發(fā)送的每個中頻數據包的代碼(ID),占16位。通常,每發(fā)送一個IP 數據包,其值都會增加1。

中頻報文是網絡層傳輸的數據單元,不同的網絡類型在鏈路層具有最大傳輸單元(MTU)限制的特點。比如以太網的MTU是1500B,這個1500B就是網絡層的IP協議數據單元。最大值。如果IP包的總長度超過MTU,網絡層會對IF包進行分片,使每個包的長度小于等于MTU。此時,IF包被分片后,16位的標識符會被復制到每個分片中。在接收端,數據報分片重組的依據就是這個ID。

R: 保留未使用。

DF(Don't Fragment) : IP包未分片標志,占1位。值為1 表示網絡層不會對IP 數據包進行分段。

MF(More Fragment) : 報紙標志。值為0 表示當前數據報是最后一塊;值為1 表示它不是最后一塊,以后還會有其他塊。

分片偏移量(Fragment Offset,FO) : 分片偏移原始數據報開頭的位置。偏移字節(jié)數是偏移值乘以8。

另外,當IP包被分片時,需要將每個分片的總長度值改為分片的長度值。接收端收到最后一個分片,根據其長度和分片偏移量計算出數據報的總長度,并與所有到達分片的長度之和進行比較,判斷分片的完整性,然后重新組裝。

Time To Live (TTL) : 設置了IP數據包最多可以通過的路由器數量(TTL的單位請參考第十一章問題4-5的解釋)。 TTL的初始值由源主機設置,經過路由器后減1。當該字段的值為0時,IP包被路由器丟棄,并發(fā)送ICMP報文通知源主機。

協議(Protocol,PROT) : 表示上層的協議類型。具體指TCP或UDP的協議編碼。

包頭校驗和(Header checksum) :是根據IP協議包頭計算的“校驗和”碼。如果“校驗和”錯誤,則丟棄IP 數據包,但不會生成錯誤消息。重傳控制將由傳輸層控制,以檢測丟棄的數據報并重傳它們。

源IP地址: 每個Ip包必須包含發(fā)送方的

源IP地址,是一個32bit的值。

目的IP地址:每個IP包也都需要包含接收端的IP地址,也是一個32bit的值。

可選字段(Options):一個可變長的選項,用于安全、調試等,也為以后擴展或升級之用(該字段的應用請參見第11章問題4-6解釋)。

填充(Padding):在必要時插人一定的填充字節(jié),以確保IP協議頭始終是32bit的整數倍。

數據:是傳輸層提交下來的協議數據單元。

從IP包的協議頭可知,IP協議頭的大小有兩種:當沒有“選項”這個域時,為160位即20個字節(jié);當有“選項”域時,為192位即24個字節(jié)。

3. IP協議的工作原理

IP是怎樣實現網絡互聯的?

早期各公司的網絡系統(tǒng)不能互通,也不能互連。原因是它們在各自網絡中所傳送的數據基本單元(即數據幀)的格式不同。有了IP協議,不同的網絡系統(tǒng)實現了互聯??梢赃@樣理解lip協議就是一套由程序構成的協議軟件,它把各種不同的“數據幀”統(tǒng)一轉換成“IP包”格式,實現在互聯網上的傳送。這種轉換是Internet的一個最重要的特點,它使異種網絡的計算機系統(tǒng)也能在Internet上實現相互通信,也使Internet具有了真正意義上的“開放性”特征。

那么,"IP包"是什么?

由IP數據單元格式的構成可見,IP包就是一個無連接的,并且是獨立的數據傳輸單元,它攜帶了數據來自哪里,以及將要送到哪里等明確的標識(即IP地址)。這樣,IP包在網絡間傳送時,就不需要一定先建立一條數據通道,而是每個IP包都可經由不同的傳輸路徑獨立地向目的地傳送。

【舉例】如圖4-15所示,IP協議的基本工作原理分析。當通信兩端(主機A和主機B)位于不同的網絡時,數據的傳送需要經由路由器跨網傳遞。發(fā)送端A只需將IP包(需要分片時先分片處理)交給第一路由器RI即可。路由器R1根據IP包攜帶的目的標識,進行路徑選擇并轉發(fā)給下一路由器(R2或R3).下一路由器再轉發(fā)到其下一路由器R4,路由器R4最后將IP包傳送到目的主機。在目的主機B端,收到IP包后進行協議頭校驗和檢驗,將檢驗失敗的IP包.直接丟棄(不會向發(fā)送端回送任何差錯報文);將校驗無誤的IP包提取數據報數據直接交給上層傳輸層。
網絡互聯示意圖
由此可見,在網絡層IP包的傳送不僅是無連接的,而且目的端IP包的到達是無序的,并且是不可靠的。

4.網絡層其他協議

在網絡層,除了非常重要的IP協議之外,還有兩個比較重要的協議在此簡單介紹如下。

1)ICMP協議

ICMP(Internet Control Message Protocollnternet,網際控制消息協議)是TCP/IP協議族的一個子協議,主要用于在主機、路由器之間傳遞控制信息。這些控制消息是指網絡本身的消息,如網絡是否通暢、主機是否可達、路由是否可用、IP包路由傳送已超過“生存時間”等,還包括報告錯誤、交換受限等控制和狀態(tài)信息.這些控制消息雖然并不傳輸用戶數據,但是對于用戶數據的傳遞起著重要的作用。

在網絡應用中,我們經常會得到ICMP提供的消息,只不過常常被忽略了而已。如某主機處于關閉或維護狀態(tài),不提供網絡服務時,ICMP就可以對發(fā)起的TCP連接給出一個終止(Destination Unreachable)通告,告知主機不可達。又如我們在檢查網絡是否通暢時,常常使用ping命令,這個命令就是一項基于ICMP協議的應用,ping命令返回的信息均是由ICMP協議提供的報告。

2) ARP協議

ARP(Address Resolution Protocol,地址解析協議)用于通過主機的網絡地址(即32位的IP地址)解析出該主機的物理地址(即48位的MAC地址)。

在Internet網中,網絡層之下是網絡訪問層,其對應于局域網的數據鏈路層和物理層。在數據鏈路層中,數據通信是以“數據幀”為傳輸單位,而“數據幀”的尋址方式是依據通信兩端點的MAC地址來實現的。因此,網絡層的IP包進人網絡訪問層后,下一步的傳輸必須要知道下一鏈接點或目的節(jié)點的物理地址即MAC地址。如何找到下一鏈接點或目的節(jié)點的MAC地址,就是由ARP協議實現的。

我們專注高端建站,小程序開發(fā)、軟件系統(tǒng)定制開發(fā)、BUG修復、物聯網開發(fā)、各類API接口對接開發(fā)等。十余年開發(fā)經驗,每一個項目承諾做到滿意為止,多一次對比,一定讓您多一份收獲!

本文章出于推來客官網,轉載請表明原文地址:https://www.tlkjt.com/web/12639.html
推薦文章

在線客服

掃碼聯系客服

3985758

回到頂部