999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

一種IPv6穿越CDMA網(wǎng)絡(luò)的方法

2008-01-01 00:00:00劉衍珩田大新
計算機應(yīng)用研究 2008年4期

摘要:為了使IPv6客戶端能夠通過CDMA無線接入方式訪問遠程的IPv6服務(wù)器,介紹了已有的隧道技術(shù)并分析其不足,如不能適用于CDMA網(wǎng)絡(luò),提出并實現(xiàn)了一種基于NetFilter框架、Libnet和Libipq使得IPv6可以穿越CDMA網(wǎng)絡(luò)的方法。實際應(yīng)用表明,運用這種方法,IPv6主機可以有效地通過CDMA方式接入網(wǎng)絡(luò),并訪問遠程的IPv6服務(wù)器。

關(guān)鍵詞: IPv4; IPv6; 碼分多址; 無線接入; 隧道

中圖分類號:TP302文獻標(biāo)志碼:A

文章編號:1001-3695(2008)04-1199-02

隨著IPv6網(wǎng)絡(luò)和CDMA無線上網(wǎng)方式的普及,出現(xiàn)了將兩者結(jié)合使用的需求。這兩種新興技術(shù)的結(jié)合將會有非常廣闊的應(yīng)用前景,如汽車的遠程故障診斷、移動終端的視頻會議等。但是目前的CDMA網(wǎng)絡(luò)并不支持IPv6協(xié)議,造成IPv6客戶無法穿越CDMA網(wǎng)絡(luò)訪問互聯(lián)網(wǎng)中的IPv6服務(wù)器,嚴重制約了IPv6應(yīng)用在CDMA網(wǎng)絡(luò)中的發(fā)展。針對隧道的各種實現(xiàn)技術(shù),國內(nèi)外都做了大量工作[1~3],但多數(shù)均無法穿越NAT。

1常用的隧道技術(shù)

目前在IPv4網(wǎng)絡(luò)中部署IPv6網(wǎng)絡(luò)的基本技術(shù)主要有三種,即雙協(xié)議棧(RFC 4213[4])、隧道技術(shù)(RFC 4213)和NAT-PT(RFC 2766[5])。由于目前CDMA網(wǎng)絡(luò)并不支持IPv6并且人們要實現(xiàn)的是IPv6客戶端訪問遠程IPv6服務(wù)器,這相當(dāng)于在IPv4的“海洋”中實現(xiàn)IPv6“小島”的互通。鑒于這種情況,只可能使用隧道技術(shù)。目前在實踐中常用的隧道技術(shù)有以下幾種:手工配置隧道、自動配置隧道、Tunnel Broker、6 over 4、6 to 4。由于在CDMA網(wǎng)絡(luò)中經(jīng)常使用NAT技術(shù)和存在基于狀態(tài)的防火墻,使得上述幾種隧道技術(shù)均在CDMA網(wǎng)絡(luò)中失效。鑒于以上原因,本文提出并實現(xiàn)了一種基于NetFilter框架、Libnet和Libipq使得IPv6可以穿越CDMA網(wǎng)絡(luò)的方法。

2實現(xiàn)技術(shù)

1)NetFilter[6]Linux 2.4內(nèi)核中實現(xiàn)數(shù)據(jù)包過濾、處理和NAT等功能的框架。包含以下三部分: 

a)為每種網(wǎng)絡(luò)協(xié)議(IPv4、IPv6等)定義一套鉤子函數(shù)(IPv4和IPv6各定義了五個鉤子函數(shù))。這些鉤子函數(shù)在數(shù)據(jù)報流過協(xié)議棧的幾個關(guān)鍵點被調(diào)用。在這幾個點中,協(xié)議棧將把數(shù)據(jù)報及鉤子函數(shù)標(biāo)號作為參數(shù)調(diào)用NetFilter框架。

b)內(nèi)核的任何模塊可以對每種協(xié)議的一個或多個鉤子進行注冊,實現(xiàn)掛接。這樣當(dāng)某個數(shù)據(jù)包被傳遞給NetFilter框架時,內(nèi)核能檢測是否有任何模塊對該協(xié)議和鉤子函數(shù)進行了注冊。若注冊了,則調(diào)用該模塊注冊時使用的回調(diào)函數(shù)。這樣這些模塊就有機會檢查(可能還會修改)該數(shù)據(jù)包、丟棄該數(shù)據(jù)包及指示NetFilter將該數(shù)據(jù)包傳入用戶空間的隊列。 

c)那些被傳遞到用戶空間的數(shù)據(jù)包被異步地進行處理。一個用戶進程能檢查數(shù)據(jù)包、修改數(shù)據(jù)包,甚至可以重新將該數(shù)據(jù)包通過離開內(nèi)核的同一個鉤子處而被重新注入到內(nèi)核中。

一個數(shù)據(jù)包按照圖1所示的過程通過NetFilter框架。

從圖中可以看到IPv6共有五個鉤子函數(shù),分別為NF_IP6_PRE_ROUTING、NF_IP6_LOCAL_IN、NF_IP6_FORWARD、NF_IP6_POST_ROUTING、NF_IP6_LOCAL_OUT。數(shù)據(jù)報從左邊進入系統(tǒng),進行IP校驗以后,數(shù)據(jù)報經(jīng)過第一個鉤子函數(shù)NF_IP6_PRE_ROUTING[1]進行處理;然后就進入路由代碼,其決定該數(shù)據(jù)包是需要轉(zhuǎn)發(fā)還是發(fā)給本機。若該數(shù)據(jù)包是發(fā)送本機。則該數(shù)據(jù)經(jīng)過鉤子函數(shù)NF_IP6_LOCAL_IN[2]處理后傳遞給上層協(xié)議;若該數(shù)據(jù)包應(yīng)該被轉(zhuǎn)發(fā)則它被NF_IP6_FORWARD[3]處理。經(jīng)過轉(zhuǎn)發(fā)的數(shù)據(jù)報經(jīng)過最后一個鉤子函數(shù)NF_IP6_POST_ROUTING[4]處理后傳輸?shù)骄W(wǎng)絡(luò)上。本地產(chǎn)生的數(shù)據(jù)經(jīng)過鉤子函數(shù)NF_IP6_LOCAL_OUT [5]處理后進行路由選擇處理;然后經(jīng)過NF_IP6_POST_ROUTING[4]處理后發(fā)送到網(wǎng)絡(luò)上。

內(nèi)核模塊可以對一個或多個這樣的鉤子函數(shù)進行注冊掛接,并且在數(shù)據(jù)報經(jīng)過這些鉤子函數(shù)時被調(diào)用,從而模塊可以修改這些數(shù)據(jù)報,并向NetFilter返回如下值: 

NF_ACCEPT——繼續(xù)正常傳輸數(shù)據(jù)報;

NF_DROP——丟棄該數(shù)據(jù)報,不再傳輸;

NF_STOLEN——模塊接管該數(shù)據(jù)報,不要繼續(xù)傳輸該數(shù)據(jù)報;

NF_QUEUE——對該數(shù)據(jù)報進行排隊(通常用于將數(shù)據(jù)報給用戶空間的進程進行處理);

NF_REPEAT——再次調(diào)用該鉤子函數(shù)。

2)Libnet[7]一個小型的接口函數(shù)庫,主要用C語言寫成,提供了低層網(wǎng)絡(luò)數(shù)據(jù)報的構(gòu)造、處理和發(fā)送功能。Libnet的開發(fā)目的是建立一個簡單統(tǒng)一的網(wǎng)絡(luò)編程接口以屏蔽不同操作系統(tǒng)低層網(wǎng)絡(luò)編程的差別,使得程序員將精力集中在解決關(guān)鍵問題上。Libnet允許程序員獲得對數(shù)據(jù)報的絕對控制,并且提供了豐富的數(shù)據(jù)報構(gòu)造函數(shù),可以構(gòu)造TCP/IP協(xié)議族中大多數(shù)協(xié)議的報文。

3)Libipq[8]NetFilter框架的重要組成部分。任何時候在任何NetFilter規(guī)則鏈中,數(shù)據(jù)報均可以被排隊轉(zhuǎn)發(fā)到用戶空間。實際的排隊是由內(nèi)核模塊來完成的(IPv4是ip_queue.o;IPv6是ip6_queue.o)。數(shù)據(jù)報(包括數(shù)據(jù)報的原數(shù)據(jù)如nfmark和mac地址)通過netlink socket被發(fā)送給用戶空間進程,該進程能對數(shù)據(jù)報進行任何處理。處理結(jié)束后,用戶進程可以將該數(shù)據(jù)報重新注入內(nèi)核或者設(shè)置一個對數(shù)據(jù)報的目標(biāo)動作,如丟棄(NF_DROP)等。這是NetFilter的一個關(guān)鍵技術(shù),使用戶進程可以進行復(fù)雜的數(shù)據(jù)報操作,從而減輕了內(nèi)核空間的復(fù)雜度。用戶空間的數(shù)據(jù)報操作進程能很容易地使用Libipq庫進行開發(fā)。

3系統(tǒng)框架和部署

本方法的適用環(huán)境如圖2所示。其中:IPv6客戶端程序的工作過程如圖3所示;網(wǎng)關(guān)程序的工作過程如圖4所示。

IPv6客戶端的具體工作過程如下:

IPv6與IPv6 server建立連接之前,需要先在本地啟動一個IPv4 client,將IPv6數(shù)據(jù)包作為IPv4 client的負載傳輸以便穿越CDMA網(wǎng)絡(luò)。a)IPv6 client發(fā)出的數(shù)據(jù)包的目標(biāo)IP地址為IPv6 server的IPv6地址,源地址為本機的IPv6地址。b)當(dāng)IPv6數(shù)據(jù)包流經(jīng)NetFilter框架下的第五個(NF_IP6_LOCAL_OUT)鉤子時,判斷源IPv6地址是不是本機的IPv6地址。如果是,返回NF_QUEUE;否則返回NF_ACCEPT。c)將數(shù)據(jù)包復(fù)制到用戶空間。d)IPv4 client將整個IPv6數(shù)據(jù)包作為負載發(fā)往gateway server的IPv4 server。該IPv4數(shù)據(jù)包的源IP地址是CDMA的ISP給本機分配的臨時地址,目的地址是gateway server固定的IPv4地址。e)CDMA client收到gateway server返回的IPv4包。f)在IPv4 client程序中讀出負載。該負載包含完整的IPv6和TCP頭部;目標(biāo)地址就是本機的IPv6地址;調(diào)用Libnet庫函數(shù)。g)將完整的IPv6包送入本機的協(xié)議棧中,此時該IPv6包也會經(jīng)過c),但是它的源地址不是本機的IPv6地址,而是IPv6 server的IPv6地址,所以它不會被復(fù)制到用戶空間。h)CDMA IPv6 client收到了IPv6 server的響應(yīng),此時完成了一次通信。

Gateway server端的具體通信過程如下:

首先在本地啟動一個IPv4 server程序。a)IPv4 server程序收到IPv6 client 的IPv4 client發(fā)來的數(shù)據(jù)包;b)從IPv4的socket中讀出負載后調(diào)用Libnet庫函數(shù);c)將負載打包成IPv6包發(fā)往IPv6 server;d)判斷發(fā)出的IPv6包是不是IPv6 client發(fā)給服務(wù)器的,若是,則進入e),否則返回NF_ACCEPT;e)由于IPv6響應(yīng)包目的地址是手工配置的,無法正常路由到gateway server,為解決這種情況本文在NetFilter框架下實現(xiàn)了一個支持IPv6的NAT; f)當(dāng)收到IPv6 server返回的響應(yīng)時,在第一個鉤子處進行反向NAT,然后返回NF_QUEUE,把整個IPv6數(shù)據(jù)包復(fù)制到用戶空間;g)把整個IPv6數(shù)據(jù)包作為IPv4 server程序的負載發(fā)送給IPv6 client的IPv4 client,此時IPv4數(shù)據(jù)包的源地址是gateway server的IPv4地址,目的地址是IPv6 client 的IPv4 client臨時的IPv4地址。

系統(tǒng)部署如圖5所示,IPv6 client和gateway server的操作系統(tǒng)均為Redhat 9.0;內(nèi)核版本是2.4.20;IPv6 client采用CDMA無線方式接入Internet。Libnet的版本是1.1.2.1,IP tables的版本是1.3.4,通信協(xié)議使用TCP。

4結(jié)束語

隨著IPv6網(wǎng)絡(luò)的部署和CDMA無線接入方式的普及,可以想象到將兩者結(jié)合起來不僅會更充分地發(fā)揮它們各自的優(yōu)勢,而且很有可能改變目前人們的工作方式。在目前CDMA網(wǎng)絡(luò)還不支持IPv6協(xié)議的情況下,本方法可以使IPv6客戶端通過CDMA無線接入方式方便高效地訪問遠程IPv6服務(wù)器。本方法具有以下優(yōu)點:實現(xiàn)簡單、穩(wěn)定;部署靈活,可以不受NAT和防火墻的限制;具有很好的工程應(yīng)用價值。

參考文獻:

[1]趙海濱,高紀明,唐鼎,等.IPv6過渡機制分析與6 to 4 Tunnel的實現(xiàn)[J]. 計算機工程,2004,30(9):103-105.

[2]余冬梅,廖永剛,張秋余.IPv4網(wǎng)絡(luò)到IPv6網(wǎng)絡(luò)遷移技術(shù)研究[J].計算機工程與科學(xué),2005,27(7):27-29.

[3]何世明,沈軍.IPv4/IPv6主機之間強制隧道的設(shè)計與實現(xiàn)[J].計算機工程,2006,32(3):143-145.

[4]NORDMARK E,GILLIGAN R E.RFC 4213,Basic transition mechanisms for IPv6 hosts and routers[S]. 2005.

[5]TSIRTSIS G,SRISURESH P.RFC 2766,Network address translation-protocol translation(NAT-PT)[S]. 1998.

[6]WELTE H. Netfilter/IPtables project homepage[EB/OL]. (2006-02-18).[2006-11-20]. http://www.netfilter.org.

[7]SCHIFFMAN M D. The libnet packet construction library [EB/OL].(2006-10-22). [2006-12-06]. http://www. packetfactory. net/ libnet.

[8]MORRIS J. Manpage of Libipq[EB/OL].(2001-10-16). [2006-10-13]. http://www. cs. princeton. edu/~nakao/libipq.htm.

“本文中所涉及到的圖表、注解、公式等內(nèi)容請以PDF格式閱讀原文”

主站蜘蛛池模板: 国产真实乱人视频| 99re在线视频观看| 亚洲精品动漫在线观看| 国产一区二区三区视频| 国产在线日本| 亚洲AV无码久久天堂| 99精品国产电影| 国产一区二区三区日韩精品| 一级做a爰片久久毛片毛片| 亚洲最大福利网站| 福利视频一区| 99精品欧美一区| 欧美五月婷婷| 亚洲床戏一区| 国产69囗曝护士吞精在线视频| 54pao国产成人免费视频| 欧美高清三区| 亚洲V日韩V无码一区二区| 色综合a怡红院怡红院首页| 久久国产香蕉| 视频一本大道香蕉久在线播放| 午夜欧美在线| 亚洲国产中文综合专区在| 亚洲一级毛片| 久久香蕉国产线看观看精品蕉| 精品欧美一区二区三区在线| 99精品这里只有精品高清视频| 亚洲福利视频一区二区| 亚洲va欧美ⅴa国产va影院| 色悠久久综合| 中文字幕啪啪| 亚洲系列中文字幕一区二区| 亚洲视屏在线观看| 国产福利微拍精品一区二区| 麻豆a级片| 中文无码精品A∨在线观看不卡| 青青国产成人免费精品视频| 成人毛片在线播放| aⅴ免费在线观看| 欧美三级日韩三级| 色哟哟国产精品一区二区| 欧美亚洲中文精品三区| 久久久国产精品免费视频| 国产男女XX00免费观看| 亚洲午夜天堂| 国产大片黄在线观看| 日本AⅤ精品一区二区三区日| 亚洲不卡影院| 毛片免费视频| 国产成人高清在线精品| 日韩人妻精品一区| 91在线国内在线播放老师| 亚洲精品无码在线播放网站| 亚洲av日韩综合一区尤物| 伊人色天堂| 伊在人亚洲香蕉精品播放| 国产午夜无码专区喷水| 国产成人永久免费视频| 国产午夜一级毛片| 2021最新国产精品网站| 黄色网站在线观看无码| 国产成人福利在线视老湿机| 久久久精品无码一二三区| 欧美日韩亚洲综合在线观看| 久久精品中文字幕免费| 亚洲第一区精品日韩在线播放| 亚洲国产综合自在线另类| 亚洲精品日产精品乱码不卡| 亚洲第一成网站| 免费看av在线网站网址| 五月六月伊人狠狠丁香网| 国产情精品嫩草影院88av| 第一页亚洲| 国产美女一级毛片| 成人噜噜噜视频在线观看| 欧美中文字幕一区| 欧美精品高清| 666精品国产精品亚洲| 91福利国产成人精品导航| 毛片久久久| 国产女人在线| 亚洲无码免费黄色网址|