<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Jack Jiang

    我的最新工程MobileIMSDK:http://git.oschina.net/jackjiang/MobileIMSDK
    posts - 494, comments - 13, trackbacks - 0, articles - 1

    本文同時發布于“即時通訊技術圈”公眾號,鏈接是:https://mp.weixin.qq.com/s/cS5xB2DrjF52rmz6EGVJ6A

    本文參考了公眾號鮮棗課堂的“IPv6,到底是什么?”一文的部分內容,感謝原作者。

    1、引言

    現在IPv6的技術應用已經越來越普及了,很多應用都開始支持IPv6。

     

    ▲ 去年開始,支付寶的官網上就已出現“支持IPv6”標識

    對于即時通訊技術(尤其是IM應用)的開發者來說,新產品上架蘋果的App Store因IPv6問題被拒的情況,很常見。每次也都能根據網上的資料一一解決,并順利通過審核。

    然而幾次下來,到底什么是IPv6,還是有點云里霧里。

    那么,IP協議在TCP/IP體系中到底有多重要?看看下圖便知(原因清晰版:從此處進入下載)。

     

    ▲ 紅圈處就是IP協議,它幾乎是整個TCP/IP協議簇的支撐(圖引用自《計算機網絡通訊協議關系圖》)

    總之,IP協議在TCP/IP體系中,是非常重要的一環(可以認為,沒它,也就沒有了互聯網),作為IPv4的下一代協議,了解IPv6非常有必要。而作為即時通訊開發者來說,了解IPv6就顯的尤為迫切,說不定某天你的IM就會因為IPv6問題而導致無法通信的局面出現。

    本文將用淺顯易懂的文字,帶你了解到底什么是IPv6。

    (本文同步發布于:http://www.52im.net/thread-2979-1-1.html

    2、系列文章

    本文是系列文章中的第11篇,本系列文章的大綱如下:

    網絡編程懶人入門(一):快速理解網絡通信協議(上篇)

    網絡編程懶人入門(二):快速理解網絡通信協議(下篇)

    網絡編程懶人入門(三):快速理解TCP協議一篇就夠

    網絡編程懶人入門(四):快速理解TCP和UDP的差異

    網絡編程懶人入門(五):快速理解為什么說UDP有時比TCP更有優勢

    網絡編程懶人入門(六):史上最通俗的集線器、交換機、路由器功能原理入門

    網絡編程懶人入門(七):深入淺出,全面理解HTTP協議

    網絡編程懶人入門(八):手把手教你寫基于TCP的Socket長連接

    網絡編程懶人入門(九):通俗講解,有了IP地址,為何還要用MAC地址?

    網絡編程懶人入門(十):一泡尿的時間,快速讀懂QUIC協議

    網絡編程懶人入門(十一):一文讀懂什么是IPv6》(本文)

    3、復習一下什么是IPv4?

    IPv4是Internet Protocol version 4的縮寫,中文翻譯為互聯網通信協議第四版,通常簡稱為網際協議版本4。

    IPv4使用32位(4字節)地址,因此地址空間中只有 4,294,967,296(即2^32) 個地址。

    IPv4地址可被寫作任何表示一個32位整數值的形式,但為了方便人類閱讀和分析,它通常被寫作點分十進制的形式,即四個字節被分開用十進制寫出,中間用點分隔。

    通常IPv4地址的地址格式為 nnn.nnn.nnn.nnn,就像下面這樣:

    172.16.254.1

    下圖看起來更清晰一些:

    4、IPv6又是什么?

    IPv6是Internet Protocol version 6的縮寫,中文翻譯為互聯網通信協議(TCP/IP協議)第6版,通常簡稱為網際協議版6。IPv6具有比IPv4大得多的編碼地址空間,用它來取代IPv4主要是為了解決IPv4地址枯竭問題,同時它也在其他方面對于IPv4有許多改進。

    其實,IPv6并不是新技術,從IPv6最早的工作組成立1992年到現在,已過去27年。在互聯網技術的發展歷程中,IPv6年齡甚至有些太大了。

    IPv6的“6”表示的是TCP/IP協議的第六個版本,IPv4的“4”表示的是TCP/IP協議的第四個版本。其實除了這兩個版本,當然還有其它版本,TCP/IP協議其實從IPv1開始,到現在IPv10都已經出現了,這些不同版本之間并沒有關聯,也不是簡單IP地址長度的長短。

    IPv6地址由八組、每組四位16進制數字組成,每組之間由":"來分隔。

    看個簡單的例子:

    2610:00f8:0c34:67f9:0200:83ff:fe94:4c36,每個“:”前后都是4位16進制的數字,共分隔成8組。

    如下圖所示: 

     

    小知識:如何查看手機或者電腦的網絡是否支持IPv6呢?

    可以在你手機或者電腦上的瀏覽器中打開:Ipv6-test.com,就像下圖這樣: 

    5、為什么要使用IPv6?

    最主要的原因,就是地址數量不夠用了。

    IPv4迄今為止已經使用了30多年。最早期的時候,互聯網只是設計給美國軍方用的,根本沒有考慮到它會變得如此龐大,成為全球網絡。

    尤其是進入21世紀后,隨著計算機和智能手機的迅速普及,互聯網開始爆發性發展,越來越多的上網設備出現,越來越多的人開始連接互聯網。這就意味著,需要越來越多的IP地址。

    IPv4的地址總數是2的32次方,也就是約42.9億個。而全球的網民總數早已超過這個數目。

     

    所以說,IPv4地址池接近枯竭,根本無法滿足互聯網發展的需要。人們迫切需要更高版本的IP協議,更大數量的IP地址池。(有點像固定電話號碼升位。)

    6、IPv6會帶給我們什么?

    首先,最重要的一點,就是前面所說的地址池擴容。IPv4的地址池是約42.9億,IPv6能達到多少呢?

    數量如下:

    340282366920938463463374607431768211456個…

    不用數了,太多了… 簡單說,是2的128次方。

    這個數量,即使是給地球上每一顆沙子都分配一個IP,也是妥妥夠用的。

     

    ▲ 這圖你看懂了嗎?嗯,我也沒看懂,反正就是很多的樣子

    這個數量值是怎么得來的呢?還是它的地址位長決定的。

    如果以二進制來寫,IPv6的地址是128位。不過,這樣寫顯然不太方便(一行都寫不下)。所以,通常用十六進制來寫,也就縮短成32位(32位會分為8組,每組4位)。 

    下面就是一個標準、合法的IPv6地址示例:

    2001:0db8:85a3:08d3:1319:8a2e:0370:7344

    注意:IPv6的地址是可以簡寫的,每項數字前導的0可以省略。

    例如,下面這個地址:

    2001:0DB8:02de:0000:0000:0000:0000:0e13

    粉紅的“0”就可以省略,變成:

    2001: DB8:2de:0:0:0:0:e13

    如果有一組或連續幾組都是0,那么可以簡寫成“::”,也就是:

    2001: DB8:2de::e13

    注意:一個IPv6地址,只能有一個“::”。

    為什么?很簡單,你看下面這四個地址,如果所有0全都縮寫,會變成什么樣?

    2001:0000:0000:0000:0000:25de:0000:cade

    2001: 0000: 0000:0000:25de:0000:0000:cade

    2001: 0000: 0000:25de:0000:0000:0000:cade

    2001: 0000: 25de:0000:0000:0000:0000:cade

    是的,都是2001::25de::cade,沖突了。所以,這個地址是非法的,不允許存在的。

    關于IPv6還有很多技術細節,因篇幅原因,不再贅述。

    除了地址數量之外,IPv6還有很多優點,例如:

    1)IPv6使用更小的路由表。使得路由器轉發數據包的速度更快;

    2)IPv6增加了增強的組播支持以及對流的控制,對多媒體應用很有利,對服務質量(QoS)控制也很有利;

    3)IPv6加入了對自動配置的支持。這是對DHCP協議的改進和擴展,使得網絡(尤其是局域網)的管理更加方便和快捷;

    4)IPv6具有更高的安全性。用戶可以對網絡層的數據進行加密并對IP報文進行校驗,極大地增強了網絡的安全性;

    5)IPv6具有更好的擴容能力。如果新的技術或應用需要時,IPV6允許協議進行擴充;

    6)IPv6具有更好的頭部格式。IPV6使用新的頭部格式,就簡化和加速了路由選擇過程,提高了效率;

    ……

    7、IPv6的優點這么多,為什么之前普及卻這么慢?

    IPv6優點這么多,為什么它問世已經20年了,還是沒有完全替代IPv4呢?這里面的水就很深了。。。說白了,主要還是和利益有關。

    7.1 NAT這類技術,讓IPv4得以續命

    如果按照本世紀初專家們的預測,我們IPv4的地址早已枯竭幾萬次了。但是,一直挺到現在,大家仍然還在用IPv4,對老百姓來說,并沒有因為地址不夠而無法上網。

    這是為什么呢? 就是因為除了IPv6之外,我們還有一些技術,可以變相地緩解地址不足。

    例如NAT(Network Address Translation,網絡地址轉換)。

    NAT是什么意思?當我們在家里或公司上網時,你的電腦肯定有一個類似192.168.0.1的地址,這種地址屬于私網地址,不屬于公共的互聯網地址。

    ▲ 一個典型的NAT應用場景(圖自《IPv6,到底是什么?》)

    每一個小的局域網,都會使用一個網段的私網地址,在與外界連接時,再變換成公網地址。這樣一來,幾十個或幾百個電腦,都只需要一個公網地址。

    甚至還可以私網套私網,NAT套NAT,一層一層套。這樣一來,大大節約了公網IP地址數量。正因為如此,才讓我們“續命”到了今天,不至于無法上網。

    但是,NAT這種方式也有很多缺點,雖然私網地址訪問互聯網地址方便,但互聯網地址訪問私網地址就困難了。很多服務,都會受到限制,你只能通過復雜的設置才能解決,也會影響網絡的處理效率。

    ▲ NAT內網的計算機是不能被外網直接訪問的(圖自《IPv6,到底是什么?》)

    7.2 升級IPv6涉及運營商的利益

    物以稀為貴,地址越稀缺,就越值錢。掌握地址的人,就越開心。誰開心?運營商和ISP(互聯網服務提供商)。

    他們就像是經銷商,從上游(互聯網域名與號碼分配機構,即ICANN)申請到IP地址,再賣給下游用戶。稀缺沒關系,反正,他一定能賺取更多的差價。

    如果大家去找運營商或ISP買帶寬,或者租賃云服務,帶公共地址的,一定比不帶公共地址的貴很多很多。

    除了地址可以賺錢之外,如果升級支持IPv6,對運營商和ISP來說,也意味著很大的資金投入。現在新設備基本都是支持的,但畢竟還是有一些老設備,如果在使用壽命到期之前就換,就是虧錢。

    所以,運營商和ISP都沒有動力去啟用IPv6。 

    至于設備商或手機電腦廠商,出于提前考慮,早已普遍支持了IPv6,意見并不是很大,也決定不了什么。必竟,提供基礎設施服務的運營商們更強勢。

    8、IPv6未來會怎樣

    隨著5G時代的到來,有了IPv6的加持,萬物互聯或許會成為現實。對于我等實時通信類軟件的開發人員來說,某些場景下,或許再也不需要為“P2P打洞”這種事情煩惱了。 

    ▲ 5G+IPv6,萬物互聯不是夢

    未來已來,你準備好了嗎?

    9、參考資料

    [1] IPv6入門教程

    [2] IPv6,到底是什么?

    [3] 關于IPv6的發展史!IPv6的秘密史!

    [4] 科普:一文讀懂IPv6是什么?

    [5] 漫話:全球IPv4地址正式耗盡?到底什么是IPv4和IPv6?

    附錄:更多網絡編程基礎知識文章

    TCP/IP詳解 - 第11章·UDP:用戶數據報協議

    TCP/IP詳解 - 第17章·TCP:傳輸控制協議

    TCP/IP詳解 - 第18章·TCP連接的建立與終止

    TCP/IP詳解 - 第21章·TCP的超時與重傳

    技術往事:改變世界的TCP/IP協議(珍貴多圖、手機慎點)

    通俗易懂-深入理解TCP協議(上):理論基礎

    通俗易懂-深入理解TCP協議(下):RTT、滑動窗口、擁塞處理

    理論經典:TCP協議的3次握手與4次揮手過程詳解

    理論聯系實際:Wireshark抓包分析TCP 3次握手、4次揮手過程

    計算機網絡通訊協議關系圖(中文珍藏版)

    UDP中一個包的大小最大能多大?

    P2P技術詳解(一):NAT詳解——詳細原理、P2P簡介

    P2P技術詳解(二):P2P中的NAT穿越(打洞)方案詳解(基本原理篇)

    P2P技術詳解(三):P2P中的NAT穿越(打洞)方案詳解(進階分析篇)

    P2P技術詳解(四):P2P技術之STUN、TURN、ICE詳解

    通俗易懂:快速理解P2P技術中的NAT穿透原理

    高性能網絡編程(一):單臺服務器并發TCP連接數到底可以有多少

    高性能網絡編程(二):上一個10年,著名的C10K并發連接問題

    高性能網絡編程(三):下一個10年,是時候考慮C10M并發問題了

    高性能網絡編程(四):從C10K到C10M高性能網絡應用的理論探索

    高性能網絡編程(五):一文讀懂高性能網絡編程中的I/O模型

    高性能網絡編程(六):一文讀懂高性能網絡編程中的線程模型

    Java的BIO和NIO很難懂?用代碼實踐給你看,再不懂我轉行!

    不為人知的網絡編程(一):淺析TCP協議中的疑難雜癥(上篇)

    不為人知的網絡編程(二):淺析TCP協議中的疑難雜癥(下篇)

    不為人知的網絡編程(三):關閉TCP連接時為什么會TIME_WAIT、CLOSE_WAIT

    不為人知的網絡編程(四):深入研究分析TCP的異常關閉

    不為人知的網絡編程(五):UDP的連接性和負載均衡

    不為人知的網絡編程(六):深入地理解UDP協議并用好它

    不為人知的網絡編程(七):如何讓不可靠的UDP變的可靠?

    不為人知的網絡編程(八):從數據傳輸層深度解密HTTP

    不為人知的網絡編程(九):理論聯系實際,全方位深入理解DNS

    技術掃盲:新一代基于UDP的低延時網絡傳輸層協議——QUIC詳解

    讓互聯網更快:新一代QUIC協議在騰訊的技術實踐分享

    現代移動端網絡短連接的優化手段總結:請求速度、弱網適應、安全保障

    聊聊iOS中網絡編程長連接的那些事

    移動端IM開發者必讀(一):通俗易懂,理解移動網絡的“弱”和“慢”

    移動端IM開發者必讀(二):史上最全移動弱網絡優化方法總結

    IPv6技術詳解:基本概念、應用現狀、技術實踐(上篇)

    IPv6技術詳解:基本概念、應用現狀、技術實踐(下篇)

    從HTTP/0.9到HTTP/2:一文讀懂HTTP協議的歷史演變和設計思路

    腦殘式網絡編程入門(一):跟著動畫來學TCP三次握手和四次揮手

    腦殘式網絡編程入門(二):我們在讀寫Socket時,究竟在讀寫什么?

    腦殘式網絡編程入門(三):HTTP協議必知必會的一些知識

    腦殘式網絡編程入門(四):快速理解HTTP/2的服務器推送(Server Push)

    腦殘式網絡編程入門(五):每天都在用的Ping命令,它到底是什么?

    腦殘式網絡編程入門(六):什么是公網IP和內網IP?NAT轉換又是什么鬼?

    腦殘式網絡編程入門(七):面視必備,史上最通俗計算機網絡分層詳解

    腦殘式網絡編程入門(八):你真的了解127.0.0.1和0.0.0.0的區別?

    以網游服務端的網絡接入層設計為例,理解實時通信的技術挑戰

    邁向高階:優秀Android程序員必知必會的網絡基礎

    全面了解移動端DNS域名劫持等雜癥:技術原理、問題根源、解決方案等

    美圖App的移動端DNS優化實踐:HTTPS請求耗時減小近半

    Android程序員必知必會的網絡通信傳輸層協議——UDP和TCP

    IM開發者的零基礎通信技術入門(一):通信交換技術的百年發展史(上)

    IM開發者的零基礎通信技術入門(二):通信交換技術的百年發展史(下)

    IM開發者的零基礎通信技術入門(三):國人通信方式的百年變遷

    IM開發者的零基礎通信技術入門(四):手機的演進,史上最全移動終端發展史

    IM開發者的零基礎通信技術入門(五):1G到5G,30年移動通信技術演進史

    IM開發者的零基礎通信技術入門(六):移動終端的接頭人——“基站”技術

    IM開發者的零基礎通信技術入門(七):移動終端的千里馬——“電磁波”

    IM開發者的零基礎通信技術入門(八):零基礎,史上最強“天線”原理掃盲

    IM開發者的零基礎通信技術入門(九):無線通信網絡的中樞——“核心網”

    IM開發者的零基礎通信技術入門(十):零基礎,史上最強5G技術掃盲

    IM開發者的零基礎通信技術入門(十一):為什么WiFi信號差?一文即懂!

    IM開發者的零基礎通信技術入門(十二):上網卡頓?網絡掉線?一文即懂!

    IM開發者的零基礎通信技術入門(十三):為什么手機信號差?一文即懂!

    IM開發者的零基礎通信技術入門(十四):高鐵上無線上網有多難?一文即懂!

    IM開發者的零基礎通信技術入門(十五):理解定位技術,一篇就夠

    百度APP移動端網絡深度優化實踐分享(一):DNS優化篇

    百度APP移動端網絡深度優化實踐分享(二):網絡連接優化篇

    百度APP移動端網絡深度優化實踐分享(三):移動端弱網優化篇

    技術大牛陳碩的分享:由淺入深,網絡編程學習經驗干貨總結

    可能會搞砸你的面試:你知道一個TCP連接上能發起多少個HTTP請求嗎?

    知乎技術分享:知乎千萬級并發的高性能長連接網關技術實踐

    5G時代已經到來,TCP/IP老矣,尚能飯否?

    >> 更多同類文章 ……

    歡迎關注我的“即時通訊技術圈”公眾號: 

    (本文同步發布于:http://www.52im.net/thread-2979-1-1.html



    作者:Jack Jiang (點擊作者姓名進入Github)
    出處:http://www.52im.net/space-uid-1.html
    交流:歡迎加入即時通訊開發交流群 215891622
    討論:http://www.52im.net/
    Jack Jiang同時是【原創Java Swing外觀工程BeautyEye】【輕量級移動端即時通訊框架MobileIMSDK】的作者,可前往下載交流。
    本博文 歡迎轉載,轉載請注明出處(也可前往 我的52im.net 找到我)。


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    Jack Jiang的 Mail: jb2011@163.com, 聯系QQ: 413980957, 微信: hellojackjiang
    主站蜘蛛池模板: 精品久久久久久无码免费| 亚洲欧美日韩国产精品一区| 天堂在线免费观看中文版| 久久爰www免费人成| 久久免费99精品国产自在现线| 亚洲一区二区三区乱码在线欧洲| 亚洲成Av人片乱码色午夜| 免费人妻av无码专区| 在线观看免费精品国产| 午夜老司机免费视频| 成人男女网18免费视频| 嫖丰满老熟妇AAAA片免费看| 日日麻批免费40分钟无码| 国产亚洲免费的视频看| 特级无码毛片免费视频尤物| 两个人看的www免费视频中文| 国产高潮流白浆喷水免费A片 | 一级女性全黄生活片免费看| 欧亚一级毛片免费看| 成在线人直播免费视频| 国产亚洲精品免费视频播放| 成在人线av无码免费高潮水| 东北美女野外bbwbbw免费| 国产一区二区免费| 国产麻豆视频免费观看| 国产在线观看免费不卡| 国产精品久久久久影院免费| 中文字幕人成人乱码亚洲电影 | 成全高清视频免费观看| 亚洲av日韩av欧v在线天堂| 亚洲综合伊人久久综合| 在线电影你懂的亚洲| 亚洲伊人久久大香线蕉AV| fc2成年免费共享视频网站| 亚洲视频免费在线看| 全亚洲最新黄色特级网站| 夜夜亚洲天天久久| 一个人看的hd免费视频| 日本视频免费在线| 亚洲日本中文字幕| 羞羞网站免费观看|