国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

B/S架構(gòu)下應(yīng)用系統(tǒng)從IPv4到IPv6的遷移技術(shù)研究

2013-07-03 08:15:30劉生寒盧有飛肖建毅
計算機與現(xiàn)代化 2013年2期
關(guān)鍵詞:IP地址端口客戶端

劉生寒,盧有飛,肖建毅

(1.廣東電網(wǎng)公司信息中心,廣東 廣州 510000;2.廣州供電局有限公司,廣東 廣州 510000)

0 引言

IPv6是針對目前普遍使用的Internet協(xié)議IPv4的不足而提出的。IPv4的地址空間匱乏和可擴展性差等問題嚴重制約了因特網(wǎng)的發(fā)展。與IPv4相比,IPv6在地址空間、安全性、移動性及服務(wù)質(zhì)量等多方面都有較大的改進。隨著互聯(lián)網(wǎng)的發(fā)展,從IPv4過渡到IPv6已是大勢所趨。IPv6對我國的工業(yè)化和信息化發(fā)展具有重要意義。我國是世界上的移動通信大國、電力大國,對IP地址有著巨大需求,但在現(xiàn)實發(fā)展中卻面臨IP地址匱乏的嚴重問題。為此,工信部在“十二五”規(guī)劃中統(tǒng)籌考慮了資源、產(chǎn)業(yè)、應(yīng)用、建設(shè)、安全等方面的因素,全面推動下一代互聯(lián)網(wǎng)IPv6的部署。

從IPv4到IPv6的過渡包括兩方面的工作,一方面是由IPv4網(wǎng)絡(luò)逐步改造成IPv6的網(wǎng)絡(luò),這主要是網(wǎng)絡(luò)基礎(chǔ)設(shè)施的改造升級[1];另一方面就是互聯(lián)網(wǎng)上的應(yīng)用系統(tǒng)從IPv4到IPv6的改造和遷移[2]。在IPv6的發(fā)展和建設(shè)過程中,勢必會面臨現(xiàn)有應(yīng)用系統(tǒng)從IPv4到IPv6的改造遷移工作,根據(jù)B/S架構(gòu)應(yīng)用系統(tǒng)(以下簡稱“應(yīng)用系統(tǒng)”)的網(wǎng)絡(luò)特性,遷移至IPv6下的關(guān)鍵技術(shù)主要涉及運行環(huán)境的配置升級、應(yīng)用層協(xié)議相關(guān)代碼改造以及Socket編程方法的重構(gòu)。目前國內(nèi)外已有大量關(guān)于IPv4到IPv6過渡遷移方案的研究,但多數(shù)只停留在網(wǎng)絡(luò)層,而應(yīng)用層中應(yīng)用系統(tǒng)的改造與遷移研究則尚存空白。因此,本文從應(yīng)用層角度出發(fā),重點對IPv6條件下應(yīng)用系統(tǒng)運行環(huán)境和Socket編程進行研究,探討應(yīng)用系統(tǒng)從IPv4到IPv6的改造方法及遷移流程,并對該遷移方案的可行性進行驗證,為IPv6網(wǎng)絡(luò)環(huán)境下應(yīng)用系統(tǒng)的改造遷移提供科學的依據(jù)。

1 遷移過程中的關(guān)鍵技術(shù)研究

B/S架構(gòu)下應(yīng)用系統(tǒng)從IPv4到IPv6的遷移過程中所涉及的關(guān)鍵技術(shù)主要包括運行環(huán)境的配置及Socket編程方法改造。

1.1 運行環(huán)境對IPv6支持的關(guān)鍵技術(shù)研究

一個典型B/S架構(gòu)應(yīng)用系統(tǒng)運行環(huán)境,包括底層操作系統(tǒng)、數(shù)據(jù)庫、中間件(應(yīng)用服務(wù)器)及應(yīng)用系統(tǒng)本身。因此對IPv6網(wǎng)絡(luò)條件下的應(yīng)用系統(tǒng)進行改造、遷移,需要從操作系統(tǒng)、數(shù)據(jù)庫、中間件等對IPv6的支持上進行研究,確定B/S架構(gòu)下應(yīng)用系統(tǒng)改造、遷移及開發(fā)思路,為后面制定可行的、通用的及具有前瞻性的技術(shù)指引提供理論支持。

1.1.1 操作系統(tǒng)

通過分析和研究,發(fā)現(xiàn)目前主流操作系統(tǒng)均已支持 IPv6,包括 Windows、Linux、Unix 等,具體版本支持情況如表1所示。

表1 支持IPv6的操作系統(tǒng)版本

雖然各種操作系統(tǒng)間支持IPv6的實現(xiàn)方式不盡相同,程度也存在差異,但這已充分表明了在操作系統(tǒng)產(chǎn)業(yè)已充分意識到IPv6是大勢所趨,并著手為未來的IPv6網(wǎng)絡(luò)應(yīng)用進行準備。值得提出的是,微軟對IPv6的支持雖然在業(yè)界并不處于領(lǐng)先位置,但卻具有至關(guān)重要的意義,它將IPv6技術(shù)在真正意義上帶到了商用化的程度。

以IBM AIX 5L V5300-006和Red Hat Enterprise Linux(RHEL)5.5為例,分析研究其配置支持IPv6的方法。

(1)IBM AIX 5L V5300-006。

首先,通過root授權(quán),運行autconf6-i en1命令來啟用IPv6。若在系統(tǒng)啟動時自動啟用IPv6,需要編輯/etc/rc.tcpip并取消以下兩行的注釋:

接著,運行startsrc-s ndpd-host,開啟網(wǎng)絡(luò)發(fā)現(xiàn)協(xié)議(Network Discovery Protocal)。然后通過添加-A到start/usr/sbin/autoconf6""來編輯/etc/rc.tcpip,如下所示:

此時,AIX系統(tǒng)上的IPv6無狀態(tài)自動配置或DHCP配置已完成。如果要設(shè)置靜態(tài)IPv6地址,需要發(fā)送smit tcpip命令。在以太網(wǎng)接口上配置完IPv6后,運行ifconfig命令來驗證IP地址分配是否成功。

(2)Red Hat Enterprise Linux(RHEL)5.5。

首先,配置RHEL支持IPv6需要人工編輯配置文件。系統(tǒng)本身沒有提供除啟用或禁用IPv6外其他可用于管理設(shè)置的圖形界面。所有編輯必須通過命令行界面(Command-Line Interface,CLI)完成。如要啟用IPv6協(xié)議,需編輯/etc/sysconfig/network文件,加入以下的行:

然后,在桌面點擊System(系統(tǒng))—Administration(管理)—Network(網(wǎng)絡(luò)),為指定的接口啟用 IPv6。還可以通過編輯接口的配置文件來完成這些設(shè)置,加入以下的行:

最后,設(shè)置完成以上內(nèi)容后發(fā)送“service network restart”命令重啟網(wǎng)絡(luò),系統(tǒng)將根據(jù)所處網(wǎng)絡(luò)中是否存在DHCP服務(wù)器提供IPv6地址或其他相關(guān)信息來進行無狀態(tài)自動配置或DHCP配置。如要配置靜態(tài)地址,需編輯/etc/sysconfig/network-scripts/ifcfg-eth1文件。更改了配置文件后,同樣需要運行“service network restart”命令重啟網(wǎng)絡(luò)設(shè)備。運行route-A inet命令從路由表可以查看到成功配置后的路由信息。

1.1.2 數(shù)據(jù)庫

通過分析和研究,發(fā)現(xiàn)目前常用的數(shù)據(jù)庫均已支持IPv6,包括對IPv6地址鏈接和訪問的支持以及對IPv6數(shù)據(jù)存儲的支持,如表2所示。

表2 支持IPv6的數(shù)據(jù)庫版本

以O(shè)racle 11g Release2為例,分析研究其配置支持IPv6的方法。

Oracle 11g Release2提供對純IPv6環(huán)境的支持。當默認主機名與TCP協(xié)議同時在listener.ora中配置時,Oracle Net Listener將監(jiān)聽所有網(wǎng)絡(luò)接口上的傳入連接請求。當使用主機名時,可以在listener.ora中將IP參數(shù)指定為ADDRESS的一部分,以決定需要監(jiān)聽哪些IP地址,支持的值包括FIRST、V4-ONLY、V6-ONLY。如果使用了默認主機名而未指定IP參數(shù),此時就可以監(jiān)聽對應(yīng)于該主機名的所有IP地址。

客戶端和中間層應(yīng)用程序使用11g Release 2版Oracle Client Stack(客戶端堆棧),IPv6地址和解析成IPv6地址的主機名可以作為TNS Connect Address的HOST參數(shù)使用。TNS Connect Address可以通過使用任意受支持的Oracle Net命名方法來獲得??蛻舳藢⒃噲D連接DNS返回的所有IP地址,直到成功建立了連接或試遍了所有地址。

1.1.3 中間件

通過分析與研究,目前主流中間件(應(yīng)用服務(wù)器)均已支持IPv6,具體支持版本信息如表3所示。

表3 支持IPv6的中間件版本

以Apache Tomcat為例,分析研究其配置支持IPv6的方法。

使用Listen指令更新httpd.conf文件,該指令指示Apache監(jiān)聽特定的IPv4和IPv6地址或端口。默認下它將響應(yīng)所有 IP接口的請求,包括 IPv4和IPv6。為主機分配 IP 地址:74.86.48.99(IPv4)和2607:f0d0:1002:11::4(IPv6)。

首先,輸入以下代碼來打開 httpd.conf配置文件:

#vi httpd.conf

接著,使服務(wù)器接受 74.86.48.99、2607:f0d0:1002:11::4和端口80上的連接:

然后,保存并關(guān)閉文件,并重啟/重載Apache,這時Apache配置已完成并生效。

還可以使用如下netstat命令來驗證Apache是否能在雙棧模式下正常工作:

1.2 Socket編程對IPv6支持的關(guān)鍵技術(shù)研究

1.2.1 Socket通信

Socket(套接字)是TCP/IP網(wǎng)絡(luò)環(huán)境下進行通信的重要工具[3]。Socket在計算機中提供通信端口,可以通過該端口與任何一個具有Socket接口的計算機通信。應(yīng)用程序通常通過Socket向網(wǎng)絡(luò)發(fā)出請求或者應(yīng)答網(wǎng)絡(luò)請求。使用Socket進行通信的方式有3種類型:(1)流式Socket(SOCK_STREAM):提供可靠的、面向連接的通信流,針對面向連接的TCP服務(wù)應(yīng)用;(2)數(shù)據(jù)報Socket(SOCK_DGRAM):定義了一種無連接的服務(wù),數(shù)據(jù)通過相互獨立的報文進行傳輸,是無序的且不保證可靠、無差錯,對應(yīng)于無連接的UDP服務(wù)應(yīng)用;(3)原始Socket(Raw_Socket):protocol賦值為零,允許程序使用底層協(xié)議如IP或ICMP,它功能強大但使用較為不便,主要應(yīng)用于一些協(xié)議的開發(fā)[4]。

Socket開發(fā)原理為:在服務(wù)器,使用ServerSocket監(jiān)聽指定的端口,端口可以隨意指定(建議使用大于1024的端口,因為1024以下的端口通常屬于保留端口,在一些操作系統(tǒng)中不能隨意使用),等待客戶連接請求,客戶連接后,會話產(chǎn)生;在完成會話后,關(guān)閉連接。在客戶端,使用Socket對網(wǎng)絡(luò)上某一個服務(wù)器的某一個端口發(fā)出連接請求,一旦連接成功,打開會話;會話完成后,關(guān)閉Socket??蛻舳瞬恍枰付ù蜷_的端口,通常會臨時地、動態(tài)地分配一個大于1024的端口[5]。

1.2.2 IPv4 和 IPv6 下 Socket編程的對比

IPv4網(wǎng)絡(luò)環(huán)境下,網(wǎng)絡(luò)編程主要依靠Socket連接。在客戶端,其基本步驟為:創(chuàng)建一個Socket,使用Socket連接服務(wù)器,然后通過TCP或UDP協(xié)議進行數(shù)據(jù)讀寫。如果把這套方法移植到IPv6網(wǎng)絡(luò)環(huán)境下,則需要在原有基礎(chǔ)上引入新的協(xié)議族、數(shù)據(jù)結(jié)構(gòu)以及地址域名轉(zhuǎn)換函數(shù)等,具體差異包括:

(1)地址結(jié)構(gòu)。

(2)創(chuàng)建方法。

差別在于IPv4中,第一個參數(shù)為AF_INET,而IPv6中,第一個參數(shù)為AF_INET6。

(3)字符串地址和網(wǎng)絡(luò)序IP地址的相互轉(zhuǎn)換。

IPv4中字符串地址轉(zhuǎn)換為網(wǎng)絡(luò)序IP地址使用函數(shù) inet_aton,而 IPv6使用 inet_pton。

(4)主機名和地址的轉(zhuǎn)換。

IPv4使用gethostbyname()和gethostbyaddr(),而IPv6通用采用的是getaddrinfo()和getnameinfo()。

1.2.3 基于IPv6的Socket編程實現(xiàn)

網(wǎng)絡(luò)應(yīng)用系統(tǒng)基本上都是利用Socket套接字處理數(shù)據(jù)通信,需要分別為服務(wù)器端和客戶端建立套接字。下面以一簡單的通信程序為例說明如何創(chuàng)建服務(wù)器端套接字和客戶端套接字,關(guān)鍵代碼如下:

(1)服務(wù)器端。

①創(chuàng)建服務(wù)器端套接字。

(2)客戶端。

①創(chuàng)建客戶端套接字。

2 IPv6網(wǎng)絡(luò)環(huán)境下應(yīng)用系統(tǒng)的遷移流程

圖1 IPv6網(wǎng)絡(luò)環(huán)境下的應(yīng)用系統(tǒng)遷移流程圖

根據(jù)應(yīng)用系統(tǒng)在網(wǎng)絡(luò)環(huán)境方面的基本特性,IPv6網(wǎng)絡(luò)環(huán)境下的應(yīng)用系統(tǒng)遷移改造流程如圖1所示,其相關(guān)工作步驟具體如下:

(1)應(yīng)用系統(tǒng)所處的運行環(huán)境配置及部署。運行環(huán)境主要有:操作系統(tǒng)、數(shù)據(jù)庫和中間件(應(yīng)用服務(wù)器)3個。不同的網(wǎng)絡(luò)環(huán)境下,對于每個應(yīng)用系統(tǒng)都離不開3個運行環(huán)境的配置,否則就不能正常運行。

(2)對應(yīng)用系統(tǒng)本身的改造。該部分主要包括Socket編程和應(yīng)用層協(xié)議相關(guān)代碼改造[6]。Socket是TCP/IP網(wǎng)絡(luò)環(huán)境下進行通信的重要工具,應(yīng)用程序需要通過Socket向網(wǎng)絡(luò)發(fā)出請求或者應(yīng)答網(wǎng)絡(luò)請求。另外,應(yīng)用系統(tǒng)遷移到IPv6下,需要對其應(yīng)用層網(wǎng)絡(luò)協(xié)議的相關(guān)代碼進行改造。

(3)對應(yīng)用系統(tǒng)進行測試及修正。應(yīng)用系統(tǒng)測試方法主要包括業(yè)務(wù)功能測試、協(xié)議聯(lián)通測試(FTP、SNMP、SMTP/POP3、Telnet、RIP、NFS 和 DNS 等協(xié)議)和數(shù)據(jù)處理測試(增、刪、改、查詢)3種。通過測試找出IPv6網(wǎng)絡(luò)環(huán)境下應(yīng)用系統(tǒng)的Bug,并根據(jù)日志管理文件,對遷移流程中出現(xiàn)缺陷的具體位置進行修改。

3 實例驗證

為了驗證遷移方案的可行性,本文在IPv4網(wǎng)絡(luò)環(huán)境下開發(fā)一個B/S架構(gòu)下的測試改造用例系統(tǒng),測試改造用例的相關(guān)詳細信息如表4所示。

表4 測試改造用例的詳細信息表

通過對上述測試用例系統(tǒng)進行改造,并遷移到IPv6網(wǎng)絡(luò)環(huán)境下進行測試。首先,在業(yè)務(wù)功能測試方面,用戶管理、登錄系統(tǒng)、Email、日志管理等功能均可以正常實現(xiàn);其次,在網(wǎng)絡(luò)協(xié)議互通測試方面,F(xiàn)TP、SNMP、SMTP/POP3、Telnet、RIP、NFS 和 DNS 等協(xié)議均能夠互通,而聯(lián)通速度會稍小于IPv4網(wǎng)絡(luò)環(huán)境下;然后,在數(shù)據(jù)處理測試方面,對系統(tǒng)中的數(shù)據(jù)進行增、刪、改、查詢操作,沒有發(fā)現(xiàn)缺陷;最后,查看日志管理文件,對遷移流程中不易通過測試發(fā)現(xiàn)的報錯小問題進行調(diào)試與修正??傮w來看,遷移改造流程在邏輯上具有一定的合理性,可以適用于IPv6下一般應(yīng)用系統(tǒng)的遷移改造。

4 結(jié)束語

本文從應(yīng)用層角度來探討從IPv4遷移到IPv6下的應(yīng)用系統(tǒng)改造的關(guān)鍵技術(shù)及其具體實施流程,并對測試改造用例進行多次調(diào)試,實現(xiàn)網(wǎng)絡(luò)協(xié)議互通,同時保證業(yè)務(wù)功能和數(shù)據(jù)的完整性及可操作性,并通過了實例驗證。這就表明了該遷移改造方法及流程具有較強的可行性,可以為目前實際遷移工作提供科學的參考依據(jù)。但隨著IPv6發(fā)展的不斷深入,現(xiàn)有的遷移方法及改造流程可能將不能滿足未來IPv6網(wǎng)絡(luò)環(huán)境下應(yīng)用系統(tǒng)的遷移,應(yīng)該會加入更多的考慮因素,應(yīng)用系統(tǒng)的遷移改造技術(shù)也需要得到進一步的修正。

[1] Garyfalos A,Almeroth K,F(xiàn)inney J.A comparison of network and application layer multicast for mobile IPv6 networks[C]//Proceedings of the 6th ACM International Workshop on Modeling Analysis and Simulation of Wireless and Mobile Systems.2003:58-65.

[2] Blanchet M.Migrating to IPv6:A Practical Guide to Implementing IPv6 in Mobile and Fixed Networks[M].John Wiley& Sons,2006.

[3] Chen W E,Su C Y,Lin Y B.NCTU SLT:A socket-layer translator for IPv4-IPv6 translation[J].IEEE Communications Letters,2005,9(10):865-867.

[4] RFC 5014,IPv6 Socket API for Source Address Selection[S].

[5] RFC 2133,Basic Socket Interface Extensions for IPv6[S].

[6] RFC6384,An FTP Application Layer Gateway(ALG)for IPv6-to-IPv4 Translation[S].

[7] 覃德澤.IPv6的特性及應(yīng)用前景研究[J].計算機科學,2004,31(2):55-58.

[8] 梁劍.應(yīng)用程序向IPv6的遷移技術(shù)[J].電腦知識與技術(shù),2010,6(18):4929-4930.

[9] 王浩.IPv4與IPv6相互轉(zhuǎn)換技術(shù)研究[J].計算機與數(shù)字工程,2010,38(1):114-117.

[10] 哈渭濤.IPv6下協(xié)同入侵檢測系統(tǒng)的設(shè)計與實現(xiàn)[J].河南科學,2010,28(11):1466-1468.

[11] 李彥,陳卓,付敏.混合底層拓撲網(wǎng)絡(luò)中的P2P流媒體模型研究[J].計算機應(yīng)用研究,2012,29(9):3437-3440.

[12] 陳旭生.信息系統(tǒng)的質(zhì)量管理研究[J].中國新通信,2012,14(15):18.

[13] 劉海峰.安全操作系統(tǒng)若干關(guān)鍵技術(shù)的研究[D].北京:中國科學院,2002.

[14] 孫偉強,蔣磊,王大玲.基于IP協(xié)議的透明網(wǎng)絡(luò)信息安全系統(tǒng)的研究與實現(xiàn)[J].價值工程,2011,30(23):14.

猜你喜歡
IP地址端口客戶端
一種端口故障的解決方案
科學家(2021年24期)2021-04-25 13:25:34
鐵路遠動系統(tǒng)幾種組網(wǎng)方式IP地址的申請和設(shè)置
縣級臺在突發(fā)事件報道中如何應(yīng)用手機客戶端
傳媒評論(2018年4期)2018-06-27 08:20:24
孵化垂直頻道:新聞客戶端新策略
傳媒評論(2018年4期)2018-06-27 08:20:16
基于Vanconnect的智能家居瘦客戶端的設(shè)計與實現(xiàn)
電子測試(2018年10期)2018-06-26 05:53:34
端口阻塞與優(yōu)先級
基于SNMP的IP地址管理系統(tǒng)開發(fā)與應(yīng)用
黑龍江電力(2017年1期)2017-05-17 04:25:16
初識電腦端口
電腦迷(2015年6期)2015-05-30 08:52:42
生成樹協(xié)議實例探討
客戶端空間數(shù)據(jù)緩存策略
松潘县| 教育| 北票市| 桐庐县| 台南县| 高邑县| 白玉县| 古田县| 罗城| 赣州市| 金昌市| 昌邑市| 道孚县| 宣威市| 河东区| 潞城市| 漳浦县| 汶上县| 微山县| 松滋市| 浮梁县| 蛟河市| 大厂| 江永县| 海宁市| 平利县| 宁乡县| 白城市| 四川省| 桐乡市| 黔西县| 响水县| 随州市| 酒泉市| 高平市| 临朐县| 临湘市| 永定县| 讷河市| 巨鹿县| 墨竹工卡县|