IPv4 地址不夠了為什麼不能簡單地加些數欄位就好了?
為什麼換成IPv6還要新鋪網路幹線什麼的
首先我得駁斥一下二樓的回答,NAT轉換不能夠解決當前IPv4地址匱乏的問題。原因很簡單,我們所謂的將私網地址轉換成公網地址通信,實際上靠的是地址之間的埠映射,也就是路由器上常用的配置命令NAT Pool。一個IP地址最多有65536個埠,試想一下,當你的內網有1000台主機,平均每個主機有70的埠在與外網建立TCP會話的時候,這個用來的映射的公有地址的埠就被徹底的耗盡了。所以說,NAT只是解決諸位的上網問題,並不能去除IPv4耗盡的困擾。
這裡也許會有一些對網路協議和數據包不甚明了的人反駁我,既然你認為是缺少埠號,那我門再加一點埠號好了呀。但是這世界上的道理都不是大家想像的那麼簡單,讓我們追本溯源地去探究一下TCP/IP的由來,大家也就知道這樣的一次升級是多麼的遲緩和艱難。
1969年美國國防部建立的Arpnet,最早的數據交換機制使用的是無限分組交換網和衛星。但是這種依靠專有設備的交換網路,顯然不能夠經受住戰時頻繁的設備故障的考研。在1975年,研究員們設計了一個網路交換的協議TCP/IP,這也許是二戰之後最偉大的協議。但是當時的人們不這麼想,IBM公司有SNA協議——用於它生產的大型伺服器之間的數據通信;蘋果有AppleTalk協議用於自己的MAC電腦的通信;甚至史上最沒有效率的組織ISO都發布了一個自以為完美的ISO七層網路協議。TCP/IP在這場戰爭中存活了下來,最終所有的網路操作系統都開始使用了TCP/IP進行網路通信。當操作系統的網路通信基礎是TCP/IP時,相應的應用層的軟體開發也會基於此。比如說qq軟體常用的是4000,HTTP使用的是80。也就是說你的軟體代碼里,在socket通信這一部分必然是與TCP/IP相關聯的。
我舉軟體的例子,就是想告訴大家,一旦由IPv4轉換成IPv6,我們大量的軟體都需要進行重開發。當然會有一些白目的人問我,不是換一下埠號就行了么?那我只能跟他說,你這娃太樸實了,適合好好念書,祖國的未來就靠你了。讓我們看一下IPv4包頭和IPv6包頭的差別:
Have you seen the differences?
我還是說明一下吧。
payload length就是包長度
hop limit就是TTL
Taffice class 就是DIffServ
Flow label這是為了快速交換時查找源目地址用的,新的欄位
最大的差別是Next Header
本質上來說是IPv4的protocol號,其實它起到的作用還有Options的作用。
Next Header的很多值也與IPv4中有差別。
比如說ICMP,ipv4是1,Ipv6是58。
數據報頭的變化只是IPv4轉換成IPv6的冰山一角。在這麼多年TCP/IP發展的過程中,為了提供相應的服務,我們敬愛的IETF協會製作了大量的協議和標準,比如說用於組播的IGMP。當我們使用IPv6時,這些協議都要被修改。這裡我舉幾個修改成功的例子,OSPFv3 ,EIRGP,RIPng,當然還有一些本來就支持IPv6的協議BGP-v4。
然而,最大的阻力不是來自於知識,而來自於這些改變的需求者(用戶)。IPv6的升級必然會淘汰一些不支持IPv6協議的網路基礎設備,這樣運營商的成本會變高。同時很多軟體開發商還要基於IPv6做重開發。這樣我們現在廉價的網路服務必然在一段時間內會變得昂貴起來,運營商也不得不考慮到用戶在面對升級時帶來的經濟問題。所以在NAT尚未將所有埠榨乾之前,他們是不會輕易地去升級的。對於運營商來說,現在核心的設備來支持轉發IPv6完全沒有問題,我本人就是一名網路工程師,在路由器和交換機上的IPv6路由協議已經相當之完備了。所以,現在的壓力還是來之用戶端。
再說一句,所謂IPv6上網不要錢,是因為運營商在鼓勵一些公司和學校提供這些IPv6服務。當前的Global Ipv6 地址的租用基本都是免費的,但是這裡有個很詭異的協定——你申請的IPv6地址一經使用,就不得收回。所以,當IPv6普及的那一天,ISP還是會跟學校收錢的。
童鞋,IPv6並不需要鋪設新的幹線,而是需要新的設備來支持,鋪設新的幹線是個附加的事情。
上面有人用車道來形容,是不準確的,因為IPv6最重要的改進只是擴充了地址,並不能直接提升網路的流量和速度。
你可以把IP地址看成是信封上填郵政編碼的那六個框框。
因為一開始的時候,設計信封(IP協議)的人沒想到這個東西會全球共用一個網,還有這麼多設備,所以給這個地方留的空間不夠。
那為什麼不直接簡單粗暴的在後面自己畫幾個框就好了呢?
很顯然問題沒有這麼簡單,因為郵局的很多自動化設備都是只能識別這六個框的,甚至很多信封模板也是這樣的,這些東西都得升級換代才行。
而且!最關鍵的一點,必須是從寄信人到收信人之間經過的所有郵局的設備全部更新換代後,新款式的信封才能被正確投遞,否則全都寄海里去了。。。。。
這,就是IPv6推進緩慢的最根本的原因,只要有一個關鍵節點卡住了,整個網路都不通。
然後,因為一些難以解釋的原因,有的地方IP地址已經嚴重短缺了,有的地方IP地址卻多的用不完。這就造成全球互聯網IPv6設備升級工作,有些地方積極推進,有些地方隨聲附和,可想而知,現有網路的全盤升級,怕是遙遙無期的。
在這種情況下,有的地方終於坐不住了,既然老的郵局升級這麼慢,我們就自己蓋郵局吧,,,,,簡單回答下樓主所提的問題:
- 1.IPv4 地址不夠了為什麼不能簡單地加些數欄位就好了?
IPv6地址你也可以認為就是IPv4地址「簡單地加些數欄位」。像我現在的IP地址,是222.200.54.90,這是10進位的寫法,換成16進位的寫法,也就是DE.C8.36.5A,那如果轉換成IPv6地址,就是0000:0000:0000:0000:0000:0000:DEC8:365A,也就是IPv4地址「簡單地加些數欄位」,題主的問題本身就是錯誤的,IPv6地址就是IPv4地址「簡單地加些數欄位」。正是因為是「簡單地加了些數欄位」,所以IPv6的可用地址數量剛好是IPv4的倍。那些一本正經回答問題卻沒糾正題主錯誤的是什麼心態?隨時受不了。
- 2.為什麼換成IPv6還要新鋪網路幹線什麼的
不需要新鋪設網路幹線,而是需要普及IPv6的協議,不止客戶端,還需要網路運營商的支持。題主的描述本身也是錯誤的。
新的規範肯定是需要時間來普及的,像我現在如果搞了HTML6,明天我就要全世界包括IE6用戶都馬上給我支持這個標準,你覺得可能嗎?如果我在H.265的基礎上繼續改進了衍生出新的標準,我要馬上讓各種單反、電腦、手機都支持,你覺得可能嗎?
首先說明,我寫的回答是針對這個問題,下面的ipv6的小附帶問題我就不回答了。
IPv4 地址不夠了為什麼不能簡單地加些數欄位就好了?
張昭的答案(後面竟然還有同學吐槽說張昭跑題了,呵呵)相對來說回答的是最正確的,IPv4地址不夠了,樓主想到的是增加數欄位,標準的制定者也是這麼想的,所以有後面的 IPv6協議的推出。但是 IPv6是最最複雜的加數欄位的解決方案,張昭提到的NAT 才是一種簡單的加數欄位的解決方案,只是數欄位不是加在 IP 地址中,而是加在映射埠中,以前的路由器,交換機,該怎麼用還是這麼用。所以針對這個問題,談 NAT或者談 IPv6,都沒有跑題,我的這個回答倒是有些跑題,只是為了支持一下張昭。
IPv4地址快耗盡的事情,逐漸再也沒有人提了,為啥?2012年底IPv4地址已經耗盡了?有關係嗎?在家裡上網,我們在 ISP 的內網中,在公司和學校上網,我們還是在公司和學校的內網中,只要 ISP,公司和學校有公用的 IP 地址,作為用戶的我們是否有公用的 IP 地址,誰在乎,只要你讓我能夠上網就可以了。對於ISP,公司和學校來說,改動只是修改一下配置,將部分使用公網 IP 地址的用戶換為內網 IP,啥硬體也不用採購,還可以空出很多公網IP 用作他用。所以大家都笑了,以前的設備還可以繼續用,新買的設備IPv4/IPv6也都支持,如果有用戶說,我只想用 IPv6,支持也是分分鐘的事情,整個世界和諧了。
有誰愁眉苦臉嗎?當然,指望 IPv6大賺一筆的網路設備商,部分P2P 的應用,還有初級黑客;但是隨著大家對 NAT 的了解,緊鎖的眉頭又舒展了,網路設備商繼續賣著兼容IPv4/IPv6的新設備;P2P 應用找到了應對各種 NAT 的辦法;黑客們也發現 NAT 只是省了公網IP,安全方面形同虛設,所以大家繼續各行其事,世界繼續和諧。
如張昭指出的,NAT 畢竟只是一個臨時的解決方案,雖然大家都用的很爽;未來肯定有很多應用會需要唯一的公網地址,這時 IPv6就派上用場了,移動終端可能就是一個實例,另外NAT64等協議已經早就在設備上就緒,為未來IPv6的終端訪問 IPv4的伺服器提前做準備。當然可以,你以為機智的程序猿們會想不到這一點嗎,而且按照題主思路的方法(NAT技術,用額外的埠號來共享ip)已經在用了。如果不是機智的程序猿們,ipv4地址早就不夠用了!06年的時候就吵吵著要全部換成ipv6了,要不然地址不夠用,後來為什麼換ipv6有不那麼緊迫了呢,多虧了一系列ip地址轉換技術延緩了這一過程。(不過也側面導致了ipv6現在部署緩慢,人嘛,不到deadline就沒生產力)
所以程序猿說:你們啊too young too simple
- NAT機制允許一個站點內的多台計算機通過單一的IP地址去使用網際網路。NAT:內外有別。
- 為了避免地址衝突,NAT為每台計算機分配一個本地唯一的地址。當對外交換信息時,則把該本地私有地址轉換為在整個網際網路上能識別的全球IP地址。就是如下圖
可以通過埠和ip地址之間轉換來實現
比如說NAT設備(其全球ip為:162,.105.31.220)對其管理範圍之內的兩台計算機分配了私有的ip:10.0.0.1和10.0.0.2
這兩台計算機中各有一個進程與外界通訊,ip+埠號分別是10.0.0.1:30000和10.0.0.2:30000
那麼這台NAT設備對外的時候就可以以162,.105.31.220:40001和162,.105.31.220:40002來分別代表內部的這兩台計算機進程。
所以就達到了兩台計算機共享同一ip而不不想干擾。
至於為什麼還要換ipv6?回答就是:你總不能把零食當正餐吃吧。
怎麼樣,程序猿是不是很機智,那還不是把用來找妹子的時間用在了提高計算機發展的艱難道路上。真是男默女淚的故事。其實解決方案就是簡單加些欄位,只是為了保證所有設備都能識別新地址需要付出很高的成本。
問題有些不太清楚,導致好多回答從規定動作變成自選動作...
後一個問題,大家都說了,IPv6不需要鋪新線路,不多說了。
前一個問題,腦補一下,樓主其實主要是想知道,IPv4 地址不夠了為什麼不能簡單地 給IP地址加一個欄位,其它什麼都不變。?就像電話號碼升位一樣多好啊!
LZ大概想要的效果是這樣的,幾個IT男晚上在電信公司機房吭哧吭哧忙了一晚上,第二天早上新聞宣布,我市IP地址今晨順利升級至40位...
實際上,IP網路和以前的電話網的區別,導致IP地址升位比電話升位麻煩得多。
首先,電話號碼升位和IP地址升位對於設備的改造難度不一樣。電話網和程式控制交換機的設計天生是支持變長地址(即不同位數的電話號碼)的,所以電話升位,大多數情況下,程式控制交換機連軟體版本都不需要動,改改數據配置就OK了,這對IT男來說,真的是小菜一碟。IP大大地不一樣,IP地址是定長的,IP網是邊緣智能化的,IP協議是無連接的,地址是IP包自帶的...IP的種種特性,決定了如果需要地址加幾位,IP設備的軟體必須修改。雖然外面看來只是地址加了幾位,但是IP stack的變化不小,上下層之間和IP地址有點關係的協議都要改,DNS,ICMP,ARP等等。應用層的軟體也要升級,比如FTP。IP地址空間變大了,路由表可能也要變大,因此說不定還要變硬體,加點內存啥的。支持IP的軟體硬體各種各樣,成千上萬,每種都來一套,這開發工作量不可想像啊!
其次,IP網需要改造的設備要多得多。一個PSTN本地網,如果電話升位,需要動的交換機也就最多幾十台吧。但是如果IP網地址想加個8位組,那就需要升級改造所有的IP設備,路由器啊,交換機啊,手機啊,電腦啊,POS機啊等等。這些設備需要知道IP升級了,相比之下電話網的終端(電話機)都是傻終端,完全不需要知道號碼升位這回事。這樣,一個城市的IP設備就是千萬數量級的,這和升級幾十台程式控制交換機當然不可同日而語;
再進一步,假定某地牛逼地在一夜之間完成了幾千萬的IP設備的升級,也是不行的!電話號碼升級可以一個本地網內升級,其它地方的交換機完全不需要知道,不會影響通信。(深圳的程式控制交換機完全不需要知道杭州電話是幾位,看到用戶撥了0571XXXXX, 直接把號碼一股腦放到SS7的消息里丟給杭州的程式控制交換機。當然,撥號的用戶要是沒聽早上的廣播,還傻兮兮的撥升位前的號碼,杭州的程式控制交換機會把你給拒了)。但是IP網路不行,杭州的IP設備生成40位IP地址之後,再也不會不懂也不理解怎樣和32位IP地址的世界通信了;同樣,其它還是32位地址的地方也不懂不會不理解怎樣才能和這個奇葩的40位IP的地方通信了,這樣的結果是,這個地方成了一個IP網路的孤島!(這樣說來,某些地方倒是很需要升級一下IP地址位,或者乾脆升級到宇宙最牛逼的IPv9更好----牆都省了!)
所以,如果想要IP地址「簡單地」加幾位,需要全世界的IP設備一起升級,這個應該是百億數量級的吧!
所以,想要「簡單地」給IP加幾位,需要 1)給成千上萬的IP設備開發出新的協議棧和應用軟體 2)在同一時刻給全世界的IP設備升級!
這個難度太大點兒吧?Ivony回答準確
張昭回答明顯偏題,跟NAT無關
終於有專業相關的了。
一樓 @Ivony 老師的答案已經很完美了,通俗易懂,又答出了重點。
我就稍微補充點,另外反對一下都在講的NAT技術。不拽文了,定義什麼的大家都自己能搜到。
當然@Ivony 老師的比喻還不是太恰當,如果郵局規定每個人分得一個郵編,比喻就更貼切了。因為設計ip 地址的目的就是用來區別主機的。(Internet上的每台主機(Host)都有一個唯一的IP地址。IP協議就是使用這個地址在主機之間傳遞信息,這是Internet 能夠運行的基礎。via:百度百科)
而所謂的NAT,就是把以前分給個人的郵編,分給組織。
我也舉個栗子:- 在沒有NAT的時代,有人要給你寄個栗子,他會在郵編里寫郵局分給你的地址,如233333,然後通過各地郵局(路由)就到你手裡了。
- 而在有NAT的時候,有人要給你寄栗子,他會在郵編里寫郵局分給你所在小區的地址,如233333,然後你的小區門衛(路由器)會根據其他附加的信息(埠號),把信交給你。
當然如果需要比喻更恰當,郵局需要在設計的時候有其他幾個格子(埠號),用來填寫郵寄的物品是什麼。NAT就是通過前期設計的其他幾個格子,本來是用來標識物品的格子,讓門衛來找到你這個人的。
另,反對樓上各位對NAT的推崇。IP(網路層)用來區分主機,埠(傳輸層)用來區分網路服務,這是互聯網設計之初的規定。NAT這種用埠來區分主機的行為,事實上是一種破壞規則的投機取巧行為。完全配不上 "機智的程序猿" "多虧了一系列ip地址轉換技術" 這樣的辭彙。
1.不用重新鋪,這物理線路無關。
2.現網很多規劃案例的確是通過介面唯一的欄位+固定欄位組合起來的,某種意義就是「簡單地加些數欄位」。
IPv6解決了很多除了地址空間之外的問題。
參考了RFC2460,也就是互聯網工程任務組(Internet Engineering Task Force ,IETF)發布的IPv6 Specification,裡面在Introduction部分直接簡述了從IPv4到IPv6的變化,以下是我的翻譯和我個人的理解。
1. 更強的定址能力(Expanded Addressing Capabilities)
這裡不只是地址空間的擴大,而且允許更多的路由層次,更簡單的地址自動設置(大概是指SLAAC),以及對Multicast和Anycast更好的支持(介於通常的單播和廣播之間)。
2. 簡化的包頭格式(Header Format Simplification)
減少包處理事件和限制帶寬的浪費。可以和下面的QoS(Quality of service)結合起來理解。
3. 對擴展和選項的更好支持(Improved Support for Extensions and Options)
更加靈活,方便在未來需要的時候進行擴展(要想了解詳細的還是去看RFC裡面具體的包頭說明吧。。)
4. 區分不同流的能力(Flow Labeling Capability)
QoS,比如需要實時性的通信流可以得到特殊的區分對待(比如在路由的時候)
5. 認證和隱私性的能力(Authentication and Privacy Capabilities)
可以通過擴展支持 認證,數據完整性,數據保密性。(強調了IPsec)
另外,還有移動IP的問題,根據http://www.telekom.hu/ipv6_networks/why_is_ipv6_better
- Contrary to the Mobile IPv4 protocol, the Mobile IPv6 (MIPv6) helps avoid triangular routing experienced earlier, and makes it possible for mobile (WiFi) clients to select a new router without renumbering, which results in a more reliable and faster connection with less network interruption.
以及其他供參考的鏈接:
http://www.ipv6.com/articles/general/ipv6-the-next-generation-internet.htm
http://www.telekom.hu/ipv6_networks/why_is_ipv6_better
ip協議中,是固定的位數來表示地址的,也就是說,地址之後還是有內容的,如果直接加位數,那之後的內容,因為錯位,就都解讀不了。如果全球所有設備都同時改ipv4協議,那代價比啟用一個新協議要大多了。
計算機網路只考了70多分…憂傷…
加了欄位,大量的軟體和硬體會成廢物!損失多少億美元無法估計!
樓主混淆了軟硬體問題。IP更新換代是軟體問題,網路鋪設是硬體問題。
當然不排除為了更好的升級,增加基礎設施的可能性
線路通常不需要重新鋪,但是線路上的設備通常需要更新,或者說設備里的軟體需要更新。從 32 位地址到 128 位地址,再到相應的網路層協議簇變更,這些改變了網路層的交互邏輯。
如果現有設備可以通過固件更新的方法來實現IPv6支持,當然可以不用換設備了。簡單的例子是,許多TPLINK的家用路由器目前不支持IPv6協議,但是刷上支持IPv6協議的固件之後就可以了;在這個過程中,設備還是原來的設備,只是換了新的軟體。
記得說大吞吐量、高速的路由器裡邊都有專用的硬體來實現第三層協議(網路層,或這裡說的IP層)的部分功能。在這種情形下,舊的硬體對應舊的協議,新的協議要上馬只能換設備了。問題是網路設備能理解255以上的數字 能理解的解決方法就是ipv6 主要是外網用戶所涉及的設備全部採用ipv6所涉及的協議嗎
推薦閱讀:
※打電話的時候為什麼要先說:現在通話方便嗎?
※VR如果做到無線傳輸需什麼樣的數據速率,用什麼方式實現?假設條件是實時(極低的時延)傳輸高清視頻信號?
※大家學校學習信號與系統都用哪個教材?
※如何評價中國航天要全球無死角開放 Wi-Fi(低軌道寬頻移動通信衛星系統)?
※SpaceX 的全球上網通信服務有何特別之處?為什麼會吸引 Google 的投資?