<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 手機與無線通信 > 設(shè)計應(yīng)用 > 基于雙棧協(xié)議的IPV4向IPV6過渡方案設(shè)計

          基于雙棧協(xié)議的IPV4向IPV6過渡方案設(shè)計

          作者: 時間:2007-07-06 來源:網(wǎng)絡(luò) 收藏
          摘要 隨著Internet網(wǎng)絡(luò)在全球范圍內(nèi)的迅速擴大,應(yīng)用日益增加,IP地址即將耗盡的矛盾更加突出,同時為解決IPv4的設(shè)計缺陷,國際互聯(lián)網(wǎng)工程任務(wù)組開發(fā)了新一代Internet-IPv6,但由于IPv4與IPv6之間存在著很大的差異,同時存在眾多IPv4的網(wǎng)絡(luò)及應(yīng)用,因此,要用新的IPv6代替舊的IPv4必然存在一個時期。針對上述問題我們研究了一種機制,并針對該機制設(shè)計實現(xiàn)了瀏覽器模式的IPv4客戶機對 IPv6服務(wù)器的訪問。
          關(guān)鍵詞 IPv4 IPv6 過渡機制 雙棧 代理服務(wù) Java
          前 言
          如今,Internet在全球范圍內(nèi)的普及應(yīng)用超過了歷史上的任何一項新技術(shù)所產(chǎn)生的影響和帶來的變化,實踐證明,IPv4不僅是健壯的、而且是易于實現(xiàn)的,并具有很好的互操作性。這些都充分肯定了IPv4協(xié)議(IPv4 protocol)初始設(shè)計的正確性。但是隨著Internet迅速發(fā)展,接入Internet的網(wǎng)絡(luò)設(shè)備和運行在其上的應(yīng)用程序急劇增加,由此帶來了 IP地址的迅速耗盡與路由表膨脹等問題,對IP地址范圍的擴大也迫在眉睫。針對IP地址的問題,IETF(Internet 工程任務(wù)組)提出了新一代網(wǎng)際互聯(lián)協(xié)議――IPv6協(xié)議(IPv6 protocol),它不但解決了IPv4的地址問題,并且改善了IP協(xié)議的性能[1,2]。而在現(xiàn)階段中,由于Internet完全是建立在IPv4的體系結(jié)構(gòu)上,所有的應(yīng)用程序也是按照IPv4格式書寫的。因此如何由IPv4向IPv6過渡以及由此而產(chǎn)生的過渡機制成為了一個新的研究熱點。針對IPv4向IPv6的過渡,我們研究了用雙協(xié)議棧來過渡的方式,遵循IPv4中的代理服務(wù)機制,嘗試實現(xiàn)了用Firefox為瀏覽器通過雙協(xié)議棧的代理服務(wù)器訪問IPv6的網(wǎng)頁。

          1
          IPv4向IPv6的過渡
          1.1 的必然性
          隨著Internet應(yīng)用范圍的擴大,發(fā)現(xiàn)IPv4有著很多不可克服的問題,必須通過新的協(xié)議來最終替代。通常,協(xié)議的過渡是很不容易的,從IPv4向 IPv6的過渡也是如此。目前由于IPv4協(xié)議已經(jīng)成功的使用了將近20年,IPv4的應(yīng)用程序和設(shè)備已經(jīng)相當(dāng)成熟和具有相當(dāng)?shù)囊?guī)模,不可能一夜之間完成所有升級變更。而另一方面,IPv6的應(yīng)用程序和設(shè)備還不成熟完備,這樣必然會出現(xiàn)許多孤立的IPv6網(wǎng)絡(luò)。那么如何完成從IPv4向IPv6的過渡,是發(fā)展IPv6首要解決的問題。由此在相當(dāng)長時間內(nèi),IPv6節(jié)點之間的通信還要依賴于原有IPv4網(wǎng)絡(luò)的設(shè)施,同時IPv6節(jié)點也必不可少的要與 IPv4節(jié)點通信,因此過渡是不可避免的,并且過渡[3]必將是分布式的、漸進的進行。據(jù)專家的預(yù)測,過渡初期的 Internet將由少量運行 IPv6協(xié)議設(shè)備組成小的網(wǎng)絡(luò)“孤島”和大量運行 IPv4協(xié)議的設(shè)備組成的“海洋”組成。如圖1所示:

          圖1:IPv4網(wǎng)絡(luò)海洋中的IPv6孤島

          而隨著時間的推移,IPv4的海洋將會逐漸變小,而IPv6的小島不僅會越來越多,而且越來越大 ,并最終完全取代IPv4形成新的下一代Internet網(wǎng)絡(luò)。

          1.2
          過渡策略的主要原則
          考慮到網(wǎng)絡(luò)技術(shù)的飛速發(fā)展和現(xiàn)實世界的商業(yè)需求,在進行IPv4網(wǎng)絡(luò)向IPv6網(wǎng)絡(luò)過渡策略的設(shè)計中,如下方向性問題必須遵循,在“下一代協(xié)議建議規(guī)范”(RFC1752)中,明確定義了以下的過渡原則:

          1. 過渡方式應(yīng)該是逐步的和漸進的,保護IPv4網(wǎng)絡(luò)設(shè)備的投資,確保在一個相當(dāng)長的歷史階段,IPv4網(wǎng)絡(luò)設(shè)備可以在過渡時期中正常地獨立使用。
          2. IPv4網(wǎng)絡(luò)世界和IPv6網(wǎng)絡(luò)世界相互滲透,長期并存,這就要求IPv4和IPv6網(wǎng)絡(luò)設(shè)備彼此可以互連互通,實現(xiàn)互操作。
          3. IPv4網(wǎng)絡(luò)世界向IPv6網(wǎng)絡(luò)世界過渡過程中,IPv4向IPv6升級的費用應(yīng)盡可能地低,過渡技術(shù)應(yīng)盡可能地簡單,以盡快地吸引廣大用戶主動的向IPv6過渡。

          由于IPv4協(xié)議和IPv6協(xié)議之間不具有相關(guān)性,因此IPv4和IPv6體系結(jié)構(gòu)之間還需要構(gòu)建相關(guān)的過渡機制來支持二者無縫地并存。

          2
          過渡與實現(xiàn)
          2.1 IPv4/IPv6雙協(xié)議棧代理服務(wù)器原理
          借鑒傳統(tǒng)的IPv4代理服務(wù)器原理,聯(lián)想到在一臺代理服務(wù)器上安裝具有IPv4/IPv6雙協(xié)議棧,那么代理服務(wù)器就可以作為IPv4客戶端向IPv6服務(wù)器的“中轉(zhuǎn)站”,從而實現(xiàn)兩者間的間接通信。其具體實現(xiàn)原理如圖2。

          圖2 IPv4應(yīng)用程序通過代理訪問IPv6服務(wù)器

          2.2 IPv4/IPv6過度與實現(xiàn)

          本方案立足于應(yīng)用最為普遍的瀏覽器技術(shù),而直接改寫瀏覽器本身的代碼是不現(xiàn)實的,因此我們采用一種比較直接的解決方案:在雙協(xié)議棧主機的傳輸層中,借鑒傳統(tǒng)IPv4的傳輸層代理機制對IPv4和IPv6協(xié)議進行“轉(zhuǎn)換”,從而讓僅支持IPv4的應(yīng)用程序無需升級就能夠“無縫”地訪問純IPv6服務(wù)。這樣我們只需對代理服務(wù)器編程,同時利用socket的獨立于網(wǎng)絡(luò)協(xié)議的特性,通過編寫程序完成對socket套接字中某些參數(shù)的修改,讓代理服務(wù)器調(diào)用系統(tǒng)的 IPv6協(xié)議棧來通信,實現(xiàn)接入IPv6。實現(xiàn)上述設(shè)計思路的關(guān)鍵就是對編寫修改完成對socket套接字中某些參數(shù)的修改并完成調(diào)用,下面是構(gòu)造代理服務(wù)器過程相關(guān)代碼提煉如下:
          //在給定Socket上創(chuàng)建一個代理線程。
          public HttpProxy(Socket s) { socket=s; start(); }
           public void writeLog(int c, boolean browser) throws IOException {
           log.write(c);
           }
           public void writeLog(byte[] bytes,int offset,
           int len, boolean browser) throws IOException {
           for (int i=0;ilen;i++) writeLog((int)bytes[offset+i],browser);
           }
           public String processHostName(String url, String host, int port, Socket sock) {
           java.text.DateFormat cal=java.text.DateFormat.getDateTimeInstance();
           System.out.println(cal.format(new java.util.Date()) + " - " +
           url + " " + sock.getInetAddress()+"BR>");
           return host;
          //執(zhí)行操作的線程
          public void run() {
           
          Socket outbound=null;
           try {
           socket.setSoTimeout(TIMEOUT);
           InputStream is=socket.getInputStream();
           OutputStream os=null;
           
          ……
           outbound.setSoTimeout(TIMEOUT);
           os=outbound.getOutputStream();
           os.write(line.getBytes());
           os.write(' ');
           os.write(host0.getBytes());
           os.write(' ');
           ……
          ……
          和所有線程對象一樣,HttpProxy類的主要工作在run方法內(nèi)完成。run方法實現(xiàn)了一個簡單的狀態(tài)機,從Web瀏覽器每次一個讀取字符,持續(xù)這個過程直至有足夠的信息找出目標(biāo)Web服務(wù)器。然后,run打開一個通向該Web服務(wù)器的Socket(如果有多個代理服務(wù)器被鏈接在一起,則run方法打開一個通向鏈里面下一個代理服務(wù)器的Socket)。打開Socket之后,run先把部分的請求寫入Socket,然后調(diào)用pipe方法。pipe方法直接在兩個Socket之間以最快的速度執(zhí)行讀寫操作。完成了代理服務(wù)器程序的設(shè)計后,要使得客戶端能使用代理,還需要在客戶端的瀏覽器進行相應(yīng)的設(shè)置,即在瀏覽器中配置代理服務(wù)器,這樣就完成了全部過程。

          3
          結(jié)論
          Internet的發(fā)展趨勢將證明IPv4必將會被IPv6所替代,但其過渡過程也一定會是一個漫長的、艱難的。因此,對過渡問題的研究不僅有利于完成過渡,而且還能保障Internet網(wǎng)絡(luò)長期穩(wěn)定運行。本設(shè)計不僅能夠完成轉(zhuǎn)換同時采用較低成本模式,形成一個解決方案,系統(tǒng)測試的結(jié)果表明所采取的技術(shù)是合理的,能夠滿足實際運行需要。
          參考文獻
          [1]周玲,尹霞, 吳建平. 實現(xiàn)IPv4向IPv6過渡的隧道技術(shù).計算機工程與應(yīng)用,2002:156
          [2]Jim Bound, L aurent Toutain. Dual Stack transition mechanism(DSTM) http://www.ietf.org/interner-drafts/draft-ietf-ngtrans-dstm-00.txt, October,1999
          [3]R.Hinden . RFC2732: Format for Literal IPv6 Address in URL’s , 2002-12


          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();