複製鏈接
請複製以下鏈接發送給好友

IP數據報

鎖定
TCP/IP協議定義了一個在因特網上傳輸的包,稱為IP數據報,由首部和數據兩部分組成。首部的前一部分是固定長度,共20字節,是所有IP數據報必須具有的。在首部的固定部分的後面是一些可選字段,其長度是可變的。首部中的源地址和目的地址都是IP協議地址。
中文名
IP數據報
外文名
IP Datagram
實    質
虛擬包
組    成
首部和數據兩部分
協    議
IP協議
內    容
源地址、目的地址和數據

IP數據報簡介

IP協議控制傳輸的協議單元稱為IP數據報(IP Datagram,IP數據報、IP包或IP分組)。IP協議屏蔽了下層各種物理子網的差異,能夠向上層提供統一格式的IP數據報。lP數據報採用數據報分組傳輸的方式,提供的服務是無連接方式。IP數據報的格式能夠説明lP協議具有什麼功能。IPv4數據報由報頭和數據兩部分組成,其中,數據是高層需要傳輸的數據,報頭是為了正確傳輸高層數據而增加的控制信息。報頭的前一部分長度固定,共20字節,是所有IP數據報必須具有。在首部固定部分的後面是可選字段,長度可變。

IP數據報結構

IP數據報固定部分

(1)版本 佔4位,指IP協議的版本。通信雙方使用的IP協議版本必須一致。廣泛使用的IP協議版本號為4(即IPv4)。關於IPv6,還處於草案階段。
(2)首部長度 佔4位,可表示的最大十進制數值是15。請注意,這個字段所表示數的單位是32位字長(1個32位字長是4字節),因此,當IP的首部長度為1111時(即十進制的15),首部長度就達到60字節。當IP分組的首部長度不是4字節的整數倍時,必須利用最後的填充字段加以填充。因此數據部分永遠在4字節的整數倍開始,這樣在實現IP協議時較為方便。首部長度限制為60字節的缺點是有時可能不夠用。但這樣做是希望用户儘量減少開銷。最常用的首部長度就是20字節(即首部長度為0101),這時不使用任何選項。
(3)區分服務 佔8位,用來獲得更好的服務。這個字段在舊標準中叫做服務類型,但實際上一直沒有被使用過。1998年IETF把這個字段改名為區分服務DS(Differentiated Services)。只有在使用區分服務時,這個字段才起作用。
(4)總長度 總長度指首部和數據之和的長度,單位為字節。總長度字段為16位,因此數據報的最大長度為2^16-1=65535字節。
在IP層下面的每一種數據鏈路層都有自己的幀格式,其中包括幀格式中的數據字段的最大長度,這稱為最大傳送單元MTU(Maximum Transfer Unit)。當一個數據報封裝成鏈路層的幀時,此數據報的總長度(即首部加上數據部分)一定不能超過下面的數據鏈路層的MTU值。
(5)標識(identification) 佔16位。IP軟件在存儲器中維持一個計數器,每產生一個數據報,計數器就加1,並將此值賦給標識字段。但這個“標識”並不是序號,因為IP是無連接服務,數據報不存在按序接收的問題。當數據報由於長度超過網絡的MTU而必須分片時,這個標識字段的值就被複制到所有的數據報的標識字段中。相同的標識字段的值使分片後的各數據報片最後能正確地重裝成為原來的數據報。
(6)標誌(flag) 佔3位,但只有2位有意義。
● 標誌字段中的最低位記為MF(More Fragment)。MF=1即表示後面“還有分片”的數據報。MF=0表示這已是若干數據報片中的最後一個。
● 標誌字段中間的一位記為DF(Don’t Fragment),意思是“不能分片”。只有當DF=0時才允許分片。
(7)片偏移 佔13位。片偏移指出:較長的分組在分片後,某片在原分組中的相對位置。也就是説,相對用户數據字段的起點,該片從何處開始。片偏移以8個字節為偏移單位。這就是説,除了最後一個分片,每個分片的長度一定是8字節(64位)的整數倍。
(8)生存時間 佔8位,生存時間字段常用的的英文縮寫是TTL(Time To Live),表明是數據報在網絡中的壽命。由發出數據報的源點設置這個字段。其目的是防止無法交付的數據報無限制地在因特網中兜圈子,因而白白消耗網絡資源。最初的設計是以秒作為TTL的單位。每經過一個路由器時,就把TTL減去數據報在路由器消耗掉的一段時間。若數據報在路由器消耗的時間小於1秒,就把TTL值減1。當TTL值為0時,就丟棄這個數據報。後來把TTL字段的功能改為“跳數限制”(但名稱不變)。路由器在轉發數據報之前就把TTL值減1.若TTL值減少到零,就丟棄這個數據報,不再轉發。因此,TTL的單位不再是秒,而是跳數。TTL的意義是指明數據報在網絡中至多可經過多少個路由器。顯然,數據報在網絡上經過的路由器的最大數值是255.若把TTL的初始值設為1,就表示這個數據報只能在本局域網中傳送。
(9)協議 佔8位,協議字段指出此數據報攜帶的數據是使用何種協議,以便使目的主機的IP層知道應將數據部分上交給哪個處理過程。
(10)首部檢驗和 佔16位。這個字段只檢驗數據報的首部,但不包括數據部分。這是因為數據報每經過一個路由器,路由器都要重新計算一下首部檢驗和(一些字段,如生存時間、標誌、片偏移等都可能發生變化)。不檢驗數據部分可減少計算的工作量。
(11)源地址 佔32位。
(12)目的地址 佔32位。

IP數據報可變部分

IP首部的可變部分就是一個可選字段。選項字段用來支持排錯、測量以及安全等措施,內容很豐富。此字段的長度可變,從1個字節到40個字節不等,取決於所選擇的項目。某些選項項目只需要1個字節,它只包括1個字節的選項代碼。但還有些選項需要多個字節,這些選項一個個拼接起來,中間不需要有分隔符,最後用全0的填充字段補齊成為4字節的整數倍。
增加首部的可變部分是為了增加IP數據報的功能,但這同時也使得IP數據報的首部長度成為可變的。這就增加了每一個路由器處理數據報的開銷。實際上這些選項很少被使用。新的IP版本IPv6就將IP數據報的首部長度做成固定的。這些任選項定義如下:
(1)安全和處理限制(用於軍事領域)
(2)記錄路徑(讓每個路由器都記下它的IP地址
(3)時間戳(Time Stamp)(讓每個路由器都記下IP數據報經過每一個路由器的IP地址和當地時間)
(4)寬鬆的源站路由(Loose Source Route)(為數據報指定一系列必須經過的IP地址)
(5)嚴格的源站路由(Strict Source Route)(與寬鬆的源站路由類似,但是要求只能經過指定的這些地址,不能經過其他的地址) [1] 
這些選項很少被使用,並非所有主機和路由器都支持這些選項。

IP數據報網際協議

IP協議概述。網際協議或互聯網協議(Internet Protocol,IP)是用於報文交換網絡的一種面向數據的協議,是網絡層通信的標準協議,它負責提供基本的數據封包傳送功能,讓每一塊數據包都能夠到達目的主機,但不檢查是否被正確接收。與IP 協議配套使用的還有四個協議:地址解析協ARP、逆地址解析協議RARP、網際控制報文協議ICMP、網際組管理協議IGMP。
虛擬互連網絡中IP 數據報的傳輸。如一個互聯網中的源主機要把一個 IP 數據報發送給目的主機。根據分組交換的存儲轉發的概念,源主機先要查找自己的路由表,看目的主機是否就在本網絡上。如果是,則不需要經過任何路由器而是直接交付,任務就完成了。如果不是,則必須把 IP 數據報發送給某個路由器A 。A 在查找了自己的路由表後,知道應當把數據報轉發給路由器 B 進行間接交付。這樣一直轉發下去,最後由路由器C 知道自己是和目的主機連接在同一個網絡上,不需要再使用別的路由器轉發了,於是就把數據報直接交付給目的主機。而各個網絡之間可以是異構的。
IP地址。IP地址是為每個網絡連接(網卡)分配一個在全世界範圍內惟一的標識。報文頭中的源IP地址、宿IP地址分別表示源主機、目的主機的IP邏輯地址。IP地址長度為32比特,由網絡號、主機號組成,常用的IP地址有 A類、B類、C類地址,路由器就根據 IP 地址進行尋址 。國際互聯網普遍的採用了IP 協議。而在網絡中運行的 IP 協議是 IPv4 ;IPv6 為 IPv4 的後續的一個版本 。互聯網正慢慢的耗盡IP 地址 ,而 IPv6 的出現解決了這個問題,與IPv4的 32 位的地址相比較而言 ,IPv6 擁有 128位的地址空間可以提供比前者多很多的地址 。
IP層轉發分組。在TCP/IP系統中,選路是指在網絡中選擇一條用於傳送IP數據包路徑的過程。路由器是承擔選路任務的網絡設備。用於決策選路的信息稱為IP選路信息 。路由器使用IP選路信息,對所傳輸的IP數據包進行IP 轉發。 [2] 

IP數據報首部檢驗

IP數據報原理

IP數據報的首部通過檢驗和來保證其正確性。發送方將IP數據報的首部按順序分為多個16比特的小數據塊,首部檢驗和字段的初始值設置為0,用1的補碼算法對16比特的小數據塊進行求和,最後再對結果求補碼,便得到了首部檢驗和。將經過計算得到的首部檢驗和填回到數據報的首部檢驗和字段,封裝成幀後發給通往信宿的下一跳設備。
下一跳設備作為接收方將收到的IP數據報的首部再分為多個16比特的小數據塊,用1的補碼算法對16比特的小數據塊進行求和,最後再對結果求補碼,若得到的結果為0,就驗證了數據報首部的正確性。發送方用1的補碼計算和數時,首部檢驗和字段被設置為O,等於沒有參加計算,求補碼後的檢驗和與原檢驗和各位正好相反。接收方用1的補碼計算和數時,由於新的首部檢驗和字段已經被加入,在首部未發生變化的情況下所得的和數應該為0xffff,因此,求補碼後的結果應該為0x0000。

IP數據報意義

IP數據報在傳輸過程中並不對其數據區進行校驗,這樣做的原因有以下兩點:
lP協議是一個點對點協議,如果在傳輸過程中每個點都對數據進行校驗操作,勢必增加很大的費用,這與IP的“盡力傳輸”的思想不相符。將可靠性留給更高的層次去解決,這既可以保證數據的可靠性,又可以得到更大的靈活性和效率。 因為IP層的上層傳輸層是端到端的協議,進行端到端的校驗比進行點對點的校驗的開銷要小得多,在通信線路較好的情況下尤其如此。另外,上層協議可以根據對於數據可靠性的要求,選擇是否進行校驗,甚至可以考慮採用不同的校驗方法,這給系統帶來很大的靈活性。
那麼IP協議為什麼要提供對IP數據報首部的校驗功能呢?一方面,IP首部屬於IP層協議的內容,不可能由上層協議處理,另一方面,IP首部中的部分字段在點對點的傳遞過程中是不斷變化的,只能在每個中間點重新形成校驗數據,在相鄰點之間完成校驗 [3] 

IP數據報監控技術

隨着計算機互聯網技術的迅速發展,網絡已經深入人民的生活當中,與我們的生活具有十分緊密的聯繫,成為了我們生活當中的一部分。黑客們通過複雜多變的網絡攻擊對我們的網絡進行攻擊,侵犯着我們的互聯網,導致我們的互聯網具有相當大的安全威脅,他們可以通過截取局域網中正在傳輸的數據包,然後對數據包解析,得到一系列的數據,導致我們的個人信息和隱私全都暴露出來,甚至對我們的個人財產造成不可估計的損失。如果使用IP數據包監控技術就可以及時的獲取黑客的入侵信息,並提前做好黑客入侵的預防工作,不讓黑客有機可乘,保障我們的信息安全。網絡監控是保護信息安全的一項十分重要的技術,他可以及時的發現網絡中存在的安全問題,有利於維護計算機互聯網網絡安全。 [4] 
局域網IP數據包的結構局域網IP數據包的結構主要是由三部分構成,它包含了“目的IP地址”、“源IP地址”和“數據”,其中“源IP地址”是用來表明該數據包是從哪裏發過來的;“目的IP地址”是用來聲明該數據包將會發送到哪裏去;“數據”部分則是包含了這個數據包中詳細具體的數據信息。局域網IP數據包的結構和我們日常生活中使用的電子郵箱十分的相似,也正是因為這種結構讓它能夠在基於TCP/IP協議下的計算機網絡中進行正常的通訊。 [4] 
網絡監聽其實就是利用計算機的網絡接口獲取其他計算機的數據的技術,利用該技術可以對當前網絡的流量情況進行監聽以及非法竊取網絡中傳輸的機密文件信息數據。局域網監聽的基本原理就是當數據在局域網環境下進行傳輸的時候,包含物理地址的數據包通過局域網送達到每一台主機上,當數據包到達主機網卡的時候,在正常情況下,網卡會檢查還數據包的物理地址是不是和本機的物理地址或者廣播地址相同,如果相同就交給IP層處理,不相同則將該數據包丟棄。當某一台主機的網卡處於混雜模式的時候,那麼所有到達該計算機的數據包全部都會交給IP層進行處理,即使數據包的物理地址和本機的物理地址不同,它也不會將數據包丟棄。所以,在局域網環境下,同一根網線上傳輸的數據包都會被接收,然後再通過對接收的數據進行解析破解,就可以得到用户想要的數據了。 [4] 

IP數據報流量統計

路由器是一種連接多個網絡和網段的設備,它能將不同網絡和網段的信息進行解碼、然後重新編碼,使其網絡間能夠互相連撓,路由器可以根據數據包的目的地址選擇最有效、最簡捷的路徑與其他網絡實現連接,然後形成一個更大的網絡,這樣就能夠最大程度的實現網絡問的資源共享。它是流量數據出入的咽喉,局域網中所有到因特網的網絡流量都必須經過路由器。因此,路由器充當了數據採集的角色。通過路由器對網絡流量的數據進行採集的方法也有很多種,如show IP account命令、SNMP協議Telnet程序等。因為路由器的主要功能是幫助IP數據包選擇正確的路由,時期更快捷的到達目的地址,因此,我們通常不使用其本身自帶的記錄功能獲取網絡流量的數據統計,否則就會大大降低路由器的選擇功能。從路由器上獲取數據包的流量統計我們一般使用SNMP協議和Telnet程序的方法。 [5] 
通過對網絡的數據流量進行統計的方法還有很多,每種方法都有其利弊之處,通過路由器實現網絡數據流量的統計方法具有以下特點:

IP數據報數據流量的統計精確

因為路由器是流量數據出入的咽喉,是實現網絡間相互連接的重要的設備,網絡間的通信都必須通過路由器的轉換來完成。路由器的任務就是根據數據包的目的地址選擇相應的路由,然後與其他的網絡連接。因此,路由器可以準確的反映除了出入的網絡數據流量。 [5] 

IP數據報使計費服務器不受地點限制

對網絡的數據流量進行統計和監測的最終目的就是對其進行收費,由於各種統計方式本身的侷限性使得計費的服務器必須要放在計費網段之內。結果就導致了有多少個計費網段就需要多少個計費服務器,大大增加了工作量。而如果使用路由器就會達到事半功倍的效果,我們只要計費服務器能夠通過網絡訪問到網段所在的路由器就可以實現通過一個計費服務器完成所有網絡流量的數據採集丁作,至於計費服務器位於哪個計費網段並不重要。而且,這種計費所使用的路由器並不需要太複雜,也不需要增加其他硬件,實現起來比其他的計費方式簡單。 [5] 

IP數據報與其他網絡管理功能的一致性

因特網採用的是標準的網絡管理協議SNMP,而路由器也主要通過SNMP協議的L些命令對網絡數據流量進行統計和監測。這樣就保證了在數據採集手段上與其他網絡管理功能的一致性。 [5] 

IP數據報缺點

一方面,路由器的主要功能是實現數據的路由選擇,幫助數據包選擇最快捷的路徑,使其儘快把數據出送到目標地址。然而,使用路由器對網絡數據流量進行統計就會額外的佔用路由器的內存和CPU開銷,特別是對於通信流量比較大的網絡,其矛盾會更加突出。嚴重的會導致計費緩衝區出現溢出的情況,導致出入的流量數據的丟失,最終也會影響網絡的速度。另一方面,路由器是針對IP地址進行流量計費的,因此它不支持對用户的流量計費,也不能防止有心人士對IP地址的盜用,所以也會影響對網絡數據流量的統計與監測。 [5] 
參考資料