<menu id="w8yyk"><menu id="w8yyk"></menu></menu>
  • <dd id="w8yyk"><nav id="w8yyk"></nav></dd>
    <menu id="w8yyk"></menu>
    <menu id="w8yyk"><code id="w8yyk"></code></menu>
    <menu id="w8yyk"></menu>
    <xmp id="w8yyk">
    <xmp id="w8yyk"><nav id="w8yyk"></nav>
  • 網站首頁 > 物聯資訊 > 技術分享

    IPv4與IPv6數據報格式詳解

    2016-09-28 00:00:00 廣州睿豐德信息科技有限公司 閱讀
    睿豐德科技 專注RFID識別技術和條碼識別技術與管理軟件的集成項目。質量追溯系統、MES系統、金蝶與條碼系統對接、用友與條碼系統對接

    摘要:
    本文給出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:http://blog.chinaunix.net/uid-9112803-id-3206178.html

    RFID管理系統集成商 RFID中間件 條碼系統中間層 物聯網軟件集成
    最近免费观看高清韩国日本大全