日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

IPv6技術(shù)詳解

 天下小糧倉 2019-06-28

1、前戲

IPv6的普及已經(jīng)喊了很多年了,但是事與愿違啊,由于NAT技術(shù)的出現(xiàn),硬是將當時岌岌可危的IPv4拖了二十年,所謂的普及IPv6還是遙遙無期,不可否認NAT技術(shù)真的很偉大,但是IPv6肯定是未來的趨勢,作為網(wǎng)絡(luò)編程的開發(fā)人員,系統(tǒng)的詳細的了解IPv6還是很有必要的。我相信IPv6的普及很快就會到來,身懷此絕技的讀者你們,肯定是香饃饃了。所以開始看文章吧。

其實我們用的比較多的主流操作系統(tǒng)都已經(jīng)支持了IPv6協(xié)議棧,Windows7,Linux2.6之后的版本等等。

2、IPV6的基本概念

周所周知,IPv6采用128位的地址長度擁有更大的地址空間。首先我們先來認識一下IPv6到底長成什么樣子。

IPv6數(shù)據(jù)報文和IPv4有很大的差別:

  • 1)數(shù)據(jù)鏈路層(L2)的type字段標識為 0x86dd,表示承載的上層協(xié)議是IPv6(IPv4對比:type字段為0x0800);
  • 2)IPv6的頭部字段,和IPv4差別巨大(可以猜測到,IPv6和IPv4無法兼容)。

我們來看下ipv6的報文頭部格式:

IPv6技術(shù)詳解

ipv6報文頭部

ipv6的頭部更加的簡單,少了很多的字段,對比ipv4,有這幾個地方需要注意:

  • 1)IPv6報文頭部是定長(固定為40字節(jié)),IPv4報文頭部是變長的。這個意味著,寫代碼處理IPv6數(shù)據(jù)報文的效率會提高很多:);
  • 2)IPv6中Hop Limit字段含義類似IPv4的TTL;
  • 3)IPv6中的Traffic Class字段含義類似IPv4中的TOS(Type Of Service);
  • 4)IPv6的報文頭部取消了校驗和字段:取消這個字段也是對IPv4協(xié)議的一個改進。當IPv4報文在網(wǎng)路間傳輸,每經(jīng)過一個路由器轉(zhuǎn)發(fā)就是修改TTL字段,就需要重新計算校驗和,而由于數(shù)據(jù)鏈路層L2和傳輸層L4的校驗已經(jīng)足夠強壯,因此IPv6取消這個字段會提高路由器的轉(zhuǎn)發(fā)效率。值得一提的是,在IPv6協(xié)議下,傳輸層L4協(xié)議UDP、TCP是強制需要進行校驗和的(IPv4是可選的);
  • 5)IPv6報文頭部中的Next Header字段表示“承載上一層的協(xié)議類型”或者“擴展頭部類型”。

這里的含義與IPv4有很大的差別,需要加以解釋:

  • 當IPv6數(shù)據(jù)報文承載的是上層協(xié)議ICMPv6、TCP、UDP等的時候,Next Header的值分別為58、6、17,這個時候和IPv4報文頭部中的Protocol字段很類似;
  • 當不是以上3種協(xié)議類型的時候,IPv6報文頭部緊接的是擴展頭部。擴展頭部是IPv6引入的一個新的概念,每個IPv6的數(shù)據(jù)報文可以承載0個或多個擴展頭部,擴展頭部通過鏈表的形式組織起來。當IPv6數(shù)據(jù)報文承載著擴展頭部的時候,Next Header的數(shù)值為擴展頭部的類型值。

為什么要引入擴展頭部這個概念,這里也是IPv6對IPv4改進的一個方面,用擴展頭部取代了IPv4的可選項信息,精簡了IPv6的頭部,增強了IPv6的擴展性。有同學(xué)會不會有疑問,IPv6的分片數(shù)據(jù)報文怎么處理?其實就是使用了IPv6擴展頭部。

當發(fā)送一個分片IPv6數(shù)據(jù)報文的時候,IPv6使用的是擴展頭部的形式組織各個分片的信息,IPv6報文頭部Next Header字段值為44表示存在擴展頭部,擴展頭部是IPv6分片數(shù)據(jù)信息。

對比IPv4,分片信息是記錄在IPv4報文頭部的分片字段中。

IPv6的擴展頭部類型有很多種,除了上述的分片頭部,還有路由頭部、逐跳可選頭部等,具體的可以參考RFC2460。

本章主要介紹了IPv6的一些很直觀的認識,下面逐漸介紹IPv6上的基本知識和概念。

3、ipv6的地址語法

讀者可以網(wǎng)上查,在此不贅述。

4、IPv6地址的號段劃分和前綴表示法

IPv6擁有128位巨大的地址空間,對于那么大的空間,也不是隨意的劃分,而是使用按照bit位進行號段劃分(與鵝廠內(nèi)部一些的64位uin改造放號的zone劃分算法)。

IPv6的地址結(jié)構(gòu)如下圖:

IPv6技術(shù)詳解

例如RFC4291中定義了n=48, m=16,也就是子網(wǎng)和接口ID與各占64位。

IPv6支持子網(wǎng)前綴標識方法,類似于IPv4的無分類域間路由CIDR機制(注意:IPv6沒有子網(wǎng)掩碼mask的概念)。

使用“IPv6地址/前綴長度”表示方法,例如:

  • 2001:C3:0:2C6A::/64表示一個子網(wǎng);
  • 而2001:C3:0:2C6A:C9B4:FF12:48BC:1A22/64表示該子網(wǎng)下的一個節(jié)點地址。

可以看到,一個IPv6的地址有子網(wǎng)前綴+接口ID構(gòu)成,子網(wǎng)前綴由地址分配和管理機構(gòu)定義和分配,而接口ID可以由各操作系統(tǒng)實現(xiàn)生成,生成算法后面的章節(jié)會介紹。

5、IPv6的地址類型

IPv6地址分三種類型:

  • 1)單播,對應(yīng)于IPv4的普通公網(wǎng)和私網(wǎng)地址;
  • 2)組播,對應(yīng)于IPv4的組播(多播)地址;
  • 3)任播,IPv6新增的地址概念類型。

IPv6沒有廣播地址,用組播地址實現(xiàn)廣播的功能。實際上我們工作和生活最可能最多接觸的就是單播地址,接下來本文重點會講解單播地址的種類。組播和任播地址有興趣的同學(xué)自行查閱相關(guān)RFC和文獻。

這篇寫的不夠好,希望大家見諒,謝謝大家支持。

喜歡我的文章的話,就關(guān)注我吧!不要只收藏和轉(zhuǎn)發(fā)哦,每天至少兩篇編程知識給大家,都是本人多年的經(jīng)驗總結(jié)!

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多