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

一種IPv6穿越CDMA網絡的方法

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

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

關鍵詞: IPv4; IPv6; 碼分多址; 無線接入; 隧道

中圖分類號:TP302文獻標志碼:A

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

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

1常用的隧道技術

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

2實現技術

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

a)為每種網絡協議(IPv4、IPv6等)定義一套鉤子函數(IPv4和IPv6各定義了五個鉤子函數)。這些鉤子函數在數據報流過協議棧的幾個關鍵點被調用。在這幾個點中,協議棧將把數據報及鉤子函數標號作為參數調用NetFilter框架。

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

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

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

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

內核模塊可以對一個或多個這樣的鉤子函數進行注冊掛接,并且在數據報經過這些鉤子函數時被調用,從而模塊可以修改這些數據報,并向NetFilter返回如下值: 

NF_ACCEPT——繼續正常傳輸數據報;

NF_DROP——丟棄該數據報,不再傳輸;

NF_STOLEN——模塊接管該數據報,不要繼續傳輸該數據報;

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

NF_REPEAT——再次調用該鉤子函數。

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

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

3系統框架和部署

本方法的適用環境如圖2所示。其中:IPv6客戶端程序的工作過程如圖3所示;網關程序的工作過程如圖4所示。

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

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

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

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

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

4結束語

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

參考文獻:

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

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

[3]何世明,沈軍.IPv4/IPv6主機之間強制隧道的設計與實現[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.

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

主站蜘蛛池模板: 国产黑丝一区| 色噜噜中文网| 一级一级特黄女人精品毛片| 欧美精品伊人久久| 99视频精品在线观看| 日韩大片免费观看视频播放| 久久精品女人天堂aaa| 精品少妇三级亚洲| 久久精品人人做人人综合试看| 久久一级电影| 国产精品粉嫩| 日韩精品毛片人妻AV不卡| 日韩成人午夜| 亚洲第一视频免费在线| 日本午夜视频在线观看| 激情在线网| 欧美精品v欧洲精品| 色婷婷视频在线| 欧美精品v欧洲精品| 欧美成人午夜视频免看| 亚亚洲乱码一二三四区| 99久久精品美女高潮喷水| www.99精品视频在线播放| 91最新精品视频发布页| 欧美高清国产| 亚洲天堂久久久| 日韩精品久久无码中文字幕色欲| 91福利一区二区三区| 青青操国产| 日韩123欧美字幕| 亚洲AV无码久久天堂| 日韩123欧美字幕| 欧美色图久久| 欧美日韩一区二区三| 日韩在线视频网| 在线播放真实国产乱子伦| 亚洲国产欧美中日韩成人综合视频| 国产精品区视频中文字幕 | 中文字幕亚洲另类天堂| 欧美亚洲国产精品第一页| 欧美一级片在线| 亚洲欧美精品日韩欧美| 久久综合亚洲色一区二区三区| 国产成人精品综合| 亚洲中文字幕97久久精品少妇| 色呦呦手机在线精品| 美女免费黄网站| 国产v欧美v日韩v综合精品| 亚洲综合香蕉| 久久国产乱子| 免费午夜无码18禁无码影院| 免费一级全黄少妇性色生活片| 亚洲成肉网| 亚洲美女久久| 欧美自慰一级看片免费| 欧美精品色视频| 亚洲欧美在线综合图区| 国产麻豆永久视频| 亚洲成人在线免费| 日本黄色a视频| 日韩欧美国产另类| 有专无码视频| 国产哺乳奶水91在线播放| 亚洲综合第一区| 亚洲精品自产拍在线观看APP| 成人国产精品一级毛片天堂| 久久精品免费看一| 国产人免费人成免费视频| 日韩成人高清无码| 九月婷婷亚洲综合在线| 国产亚洲视频免费播放| 亚洲V日韩V无码一区二区| 国产主播在线一区| 国产人人射| 91久久偷偷做嫩草影院免费看| 亚洲精选无码久久久| 亚洲伊人电影| 国产一级特黄aa级特黄裸毛片| 一级毛片免费的| 最新亚洲av女人的天堂| 国产精品无码AV片在线观看播放| 在线日韩一区二区|