IPv4與IPv6資料報格式詳解

2021-09-22 21:48:00 字數 2992 閱讀 7693

摘要:

本文給出ipv4與ipv6資料報格式示意圖,並整理了各個字段含義,最後對比ipv4與ipv6資料報格式的區別。

一、ipv4資料報

圖1 ipv4資料報格式

版本號(version)

不同的ip協議版本使用不同的資料報格式。

首部長度(hl, internet head length)

確定ip資料報中資料部分實際從**開始,包含可變數量的選項。若ip資料報沒有包含選項,則ip資料報首部長度為20位元組。

服務型別(tos, type of service)

更好地服務不同型別ip資料報(如實時資料報ip**應用、非實時通訊流ftp),cisco將tos前3位標識不同服務等級,即優先順序。

資料報長度(tl, total length)

ip資料報長度,即首部+資料。

分片:標識(identification)、標誌(flags)、段位移(fragment offset)

這3個字段跟ip分片有關,當目的主機從同乙個源收到一批資料報時,需要確定這些資料報是完整資料報還是分片後的資料報,資料報首部標識字段解決這個問題,檢查資料報的標識號確定哪些資料報真正是同乙個較大資料報的片;如何判斷最後乙個分片已收到,資料報首部標誌字段解決這個問題,將最後一片的標誌為0,其他標記為1;如何順序重組這些片,這就需要記錄每個片的在資料報有效淨荷的偏移量,這也確定了片是否丟失。若丟失某些片,則丟棄這個不完整的資料報(不會交給傳輸層)。需要可靠傳輸怎麼辦呢,由傳輸層讓源重傳原始資料攝中的資料(如tcp)。

壽命(ttl, time to live)

每次資料報經過一台路由器時,該字段的值減1,若ttl欄位減為0,則丟棄該資料報,從而確保資料報不會永遠在網路迴圈。

上層協議(protocol)

該欄位用於指明ip資料報的資料部分應該交給哪個傳輸層協議(6為tcp、17為udp)。

首部檢查和(header checksum)

只是對ip首部進行檢驗,對整個tcp/udp報文段檢驗交由tcp/udp完成。將首部中的每兩個位元組當作乙個數,用反碼運算對這些數求和,該和按1補碼值存放在檢查和字段。當路由器收到ip資料報時,計算其首部檢查和,與該字段值比較,若出錯則丟棄該資料報。

注:因為ttl欄位及選項字段可能改變,所以每個路由器上的檢查和都須重新計算並存放在原處。(檢查後,再更新)

源和目的ip位址(source/destination address)

選項(options)

選項字段允許ip首部被擴充套件,由此導致資料報首部長度可變,故不能預先確定資料字段從何開始,同時也使路由器處理乙個ip資料報所需時間差異很大(有的要處理選項,有的不需要)。

資料(data)

當使用tcp/udp協議時,資料即為傳輸層報文段(tcp/udp)。資料字段也可承載其他型別資料,如icmp報文段。

二、ipv6資料報

圖2 ipv6資料報格式

版本號(version)

不同的ip協議版本使用不同的資料報格式。

通訊量等級(traffic classes)

使得源節點和路由器能夠識別ipv6資訊包的優先順序。與ipv4服務型別tos欄位含義類似。

流標籤(flow label)

標記那些需要ipv6路由器特殊處理(如一種非預設服務質量或實時服務)的資訊包順序。

有效負載長度(payload length)

定長40位元組資料報首部後面的位元組數量,包括擴充套件報頭和負載資料,即資料報長度-40。

下乙個首部(next header)

當ipv6沒有擴充套件報頭時,該字段的作用和ipv4的上層協議字段一樣。當含有擴充套件報頭時,該字段的值即為第乙個擴充套件報頭的型別。

跳限制(hop limit)

**資料報的每台路由器對該字段的值減1,若減為0則丟棄該資料報。

源和目的ip位址(source/destination address)

資料(data)

當資料報到達目的地時,該有效載荷就從ip資料報移出,並交給下乙個首部欄位中指定的協議。

源和目的ip位址(source/destination address)

選項(options)

選項字段允許ip首部被擴充套件,由此導致資料報首部長度可變,故不能預先確定資料字段從何開始,同時也使路由器處理乙個ip資料報所需時間差異很大(有的要處理選項,有的不需要)。

資料(data)

當使用tcp/udp協議時,資料即為傳輸層報文段(tcp/udp)。資料字段也可承載其他型別資料,如icmp報文段。

三、區別

3.1 首部長度

首部長度可變,ipv4首部的選項字段允許ip首部被擴充套件,由此導致資料報首部長度可變,故不能預先確定資料字段從何開始,同時也使路由器處理乙個ip資料報所需時間差異很大(有的要處理選項,有的不需要)。基於此,ipv6採用固定40位元組長度的報頭長度(稱基本報頭)。ipv6如何實現ipv4選項字段類似的功能,答案是擴充套件報頭,並由ipv6基本報頭的下乙個首部指向擴充套件報頭(如果有的話)。路由器不處理擴充套件報頭,提公升了路由器處理效率。

3.2 分片/重組

ipv6,分片與重組只能在源與目的地上執行,不允許在中間路由器進行。分片與重組是個耗時的操作,將該功能從路由器轉移到端系統,大大加快了網路中的ip**速率。那,如果路由器收到ipv6資料報太大而不能**到出鏈路上怎麼辦?該路由器丟棄該包,並向傳送發發回乙個"分組太大"的icmp差錯報文,於是傳送發使用較小長度的ip資料報重發資料。

3.3 首部檢查和

每個路由器上,ipv4首部檢查和都需要重新計算,是一項耗時操作。加之,傳輸層和鏈結層協議執行了檢驗操作,網路傳輸可靠性提公升,所以ipv6不進行首部檢查和,從而更快速處理ip分組。

既然ipv6有如此之多優勢,那麼,接下來的問題,如何從ipv4向ipv6遷移?

參考資料:

[1] 《tcp/ip指南》

[2] 《計算機網路--自頂向下方法與internet特色》[m].

[3] 基於6lowpan的ipv6無線感測器網路的研究與實現[d].上海交通大學.

ipv4g和ipv6資料報格式visio原檔案 ipv4g和ipv6資料報格式.rar

from:

IPV4與IPV6的區別

在windows 7以上系統中,在設定本地ip位址的時候經常會看到同事含有ipv4協議項與ipv6協議項,並不同於以往windows xp系統中僅有tcp ip協議項,不少朋友都覺得比較奇怪,詢問編輯ipv4與ipv6的區別,下面編輯就為大家權威的介紹下ipv4與ipv6有什麼區別。目前的全球網際網...

IPv4與IPv6位址格式詳解

ipv4位址是類似 a.b.c.d 的格式,它是32位,用 分成四段,用10進製表示 ipv6位址類似 x x x x x x x x的格式,它是128位的,用 分成8段,每個x是乙個16進製制數 16 2 4 可見,ipv6位址空間相對於ipv4位址有了極大的擴充 ipv6 位址的長度為 128 ...

IPv4與IPv6之間的區別

ipv4和ipv6是是目前使用的兩種internet協議版本,ipv4和ipv6協議之間存在各種差異,包括它們的功能,但關鍵的一點是它生成的位址 位址空間 的數量的區別。下面我們就來具體的給大家介紹ipv4和ipv6協議之間的區別。1 位址長度 ipv4協議具有32位 4位元組 位址長度 ipv6協...