IP 數(shù)據(jù)報的交付
  • 更新時間:2024-11-08 17:13:40
  • 網(wǎng)站建設
  • 發(fā)布時間:1年前
  • 299

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

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

什么是無連接、不可靠的數(shù)據(jù)傳輸?

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

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

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

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

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

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

R: 保留未使用。

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

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

分片偏移量(Fragment Offset,F(xiàn)O) : 分片偏移原始數(shù)據(jù)報開頭的位置。偏移字節(jié)數(shù)是偏移值乘以8。

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

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

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

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

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

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

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

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

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

數(shù)據(jù):是傳輸層提交下來的協(xié)議數(shù)據(jù)單元。

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

3. IP協(xié)議的工作原理

IP是怎樣實現(xiàn)網(wǎng)絡互聯(lián)的?

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

那么,"IP包"是什么?

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

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

4.網(wǎng)絡層其他協(xié)議

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

1)ICMP協(xié)議

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

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

2) ARP協(xié)議

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

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

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

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

在線客服

掃碼聯(lián)系客服

3985758

回到頂部