摘要:結(jié)合XP環(huán)境下IPv6協(xié)議的安裝、設(shè)置和有連接的IPv6套接字編程實(shí)驗(yàn),介紹了IPv6的報(bào)頭結(jié)構(gòu)、地址結(jié)構(gòu)與類型、三種地址的表示形式,闡述了用]Pv6編程接口實(shí)現(xiàn)面向連接的網(wǎng)絡(luò)通信的編程方法,給出了一個(gè)在普通局域網(wǎng)絡(luò)環(huán)境下實(shí)現(xiàn)IPv6服務(wù)器端與IPv6客戶端有連接通信的網(wǎng)絡(luò)例程和結(jié)果。試驗(yàn)表明:IPv6與lPv4的網(wǎng)絡(luò)編程結(jié)構(gòu)基本一致,但在網(wǎng)絡(luò)地址結(jié)構(gòu)和地址解析方面IPv6與IPv4存在較大區(qū)別。
關(guān)鍵詞:IPv6;地址結(jié)構(gòu);編程接口;面向連接;網(wǎng)絡(luò)通信
引言
目前,為了解決IPv4的絕對(duì)地址資源嚴(yán)重不足問題,一些主流操作系統(tǒng)均開始支持標(biāo)準(zhǔn)化的IPv6協(xié)議Ⅲ。IPv6的地址長(zhǎng)度定義為128位,具有巨大數(shù)目的主機(jī)互連能力,將取代IPv4。
國(guó)內(nèi)十分重視IPv6的發(fā)展與應(yīng)用。根據(jù)北京師范大學(xué)lPv6網(wǎng)站上公布的信息,歐美國(guó)家對(duì)IPv6的發(fā)展仍以實(shí)驗(yàn)和研究為主,而亞洲國(guó)家則致力于IPv6的商用及其業(yè)務(wù)拓展,在全球已開通的11%6網(wǎng)站資源中,一半左右都在中國(guó)。隨著我國(guó)互聯(lián)網(wǎng)和通信領(lǐng)域從IPv4向IPv6的快速過渡,基于IPv6的應(yīng)用需求日漸迫切,應(yīng)用lPv6實(shí)現(xiàn)網(wǎng)絡(luò)通信將成為趨勢(shì)。
1 IPv6報(bào)頭結(jié)構(gòu)及其地址表示形式
對(duì)IPv6協(xié)議和IPv6地址結(jié)構(gòu)及類型(單播地址、組播地址和任意點(diǎn)播地址)的細(xì)節(jié)給出了定義性的描述,以下僅簡(jiǎn)單介紹其報(bào)頭結(jié)構(gòu)和地址表示形式。
IPv6協(xié)議的報(bào)頭總長(zhǎng)320位,依次包括版本(占4位)、通信分類(占8位)、流標(biāo)識(shí)符(占20位)、報(bào)文長(zhǎng)度(占16位)、下一個(gè)報(bào)文(占8位)、跨度限制(占8位)、源地址(128位)和目標(biāo)地址(占128位)八個(gè)部分。
通常,IPv6地址用冒號(hào)分隔字(每個(gè)字用4位十六進(jìn)制數(shù)表示)法表示,特殊情況下,還有用符號(hào)“::”簡(jiǎn)化連續(xù)0法表示和與IPv4混合法表示形式。例如:2008:0:0:0:0:88:0:0:417A,2008::88:0:0:417A、2008::FF:211.70.25.1.169等都是IPv6地址的合法表示。注意:每個(gè)地址中只能出現(xiàn)一次“::”符號(hào),故又稱一次簡(jiǎn)化表示法。
2 試驗(yàn)環(huán)境準(zhǔn)備
2.1 硬件操作環(huán)境
本試驗(yàn)的硬件由裝有XP操作系統(tǒng)的兩臺(tái)電腦(一個(gè)是COMPAQ M2010AP,另一個(gè)是IBM ThinkPad R50e)和一臺(tái)普通交換機(jī)(TaiLink TES-3008)組成,其互連結(jié)構(gòu)如圖1所示。
2.2 IPv6 協(xié)議安裝及地址設(shè)置
XP系統(tǒng)提供了一組命令行方式的IPv6檢測(cè)配置工具。在XP下安裝IPv6協(xié)議后,對(duì)原IPv4協(xié)議的使用不產(chǎn)生任何影響,整個(gè)網(wǎng)絡(luò)上各終端設(shè)備能夠在一個(gè)物理網(wǎng)絡(luò)上共享IPv4和IPv6協(xié)議、并支持兩種協(xié)議的數(shù)據(jù)傳輸,即:所謂的雙棧(DualStack)共享。
安裝IPv6協(xié)議和配置地址及默認(rèn)網(wǎng)關(guān)的過程如下:
D:\>ipv6 install
Installing….
Succeeded.
D:、>netsh
netsh>interface ipv6 add address“本地連接”2008::a:20確定
netsh>interface ipv6 add route::/0“本地連接”2008::a:20
publish=yes確定
netsh>quit
D:\>
在安裝和配置完成后,可使用ping6和tracert6命令檢測(cè)網(wǎng)絡(luò)連通和路由狀態(tài)。
2.3 IPv6編程接口
與IPv4編程接口詡相比,IPv6編程接口主要在地址結(jié)構(gòu)和地址解析方面進(jìn)行了擴(kuò)展,對(duì)所有擴(kuò)展內(nèi)容進(jìn)行了詳細(xì)描述,以下僅列出其中幾個(gè)相關(guān)結(jié)構(gòu)和解析函數(shù)。
3面向連接的IPv6網(wǎng)絡(luò)通信編程試驗(yàn)
3.1 試驗(yàn)?zāi)繕?biāo)說明
首先啟動(dòng)IPv6服務(wù)器,使其進(jìn)入偵聽,等待接受客戶端連接請(qǐng)求的狀態(tài);客戶端向服務(wù)器發(fā)出連接請(qǐng)求,待到服務(wù)器允許建立鏈接時(shí),向服務(wù)器發(fā)送指定信息;服務(wù)器收到信息后,向客戶端發(fā)送響應(yīng)信息。
在圖1所示的環(huán)境下,本文采用VS2005開發(fā)MFC應(yīng)用項(xiàng)目。通信應(yīng)用程序界面及通信結(jié)果如圖2和圖3所示。在圖2、圖3中的主要控件參數(shù)及其設(shè)置見表2和表3。
4 結(jié)束語(yǔ)
在網(wǎng)絡(luò)編程結(jié)構(gòu)上,IPv6與IPv4沒有本質(zhì)區(qū)別,介紹的各種網(wǎng)絡(luò)編程方法均可借鑒。但是,要注意IPv6與lPv4的地址結(jié)構(gòu)與地址解析函數(shù)是完全不同的。