專利名稱:一種可穿越網(wǎng)絡(luò)地址翻譯的自動隧道的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及互聯(lián)網(wǎng)技術(shù)領(lǐng)域,特別是一種可穿越NAT(網(wǎng)絡(luò)地址翻譯)的自動隧道方法。該方法利用現(xiàn)有的IPv4網(wǎng)絡(luò)路由體系傳輸IPv6數(shù)據(jù)包,是一種IPv4向IPv6過渡時期的隧道技術(shù),用以實現(xiàn)IPv4向IPv6的過渡。
背景技術(shù):
NAT(網(wǎng)絡(luò)地址翻譯)技術(shù)是解決IPv4地址不足的一種有效方法,它在中國的部署極其廣泛。NAT按映射關(guān)系不同可以分為3種類型“cone”NAT、“Restricted”NAT、“Symmetric”NAT。
NAT收到來自內(nèi)部網(wǎng)絡(luò)的數(shù)據(jù)包時,將數(shù)據(jù)包的IPv4源地址(私有地址)轉(zhuǎn)換成另一地址(公有地址),我們稱該地址為外部地址,將TCP或UDP源端口號轉(zhuǎn)換成另一端口號,我們稱該端口號為外部端口,然后向外部網(wǎng)絡(luò)發(fā)送轉(zhuǎn)換后的數(shù)據(jù)包。并在它維護的轉(zhuǎn)換表中增加源地址、源端口和外部地址、外部端口之間的映射關(guān)系。外部網(wǎng)絡(luò)收到數(shù)據(jù)包后如果要往回發(fā)送數(shù)據(jù)包,它將外部地址設(shè)為數(shù)據(jù)包的目的地址,將外部端口設(shè)為數(shù)據(jù)包的目的端口。當(dāng)NAT收到來自外部網(wǎng)絡(luò)的數(shù)據(jù)包時,根據(jù)轉(zhuǎn)換表中的映射關(guān)系將數(shù)據(jù)包的IPv4目的地址和TCP或UDP目的端口(也就是原來的外部地址和外部端口)轉(zhuǎn)換成源地址和源端口后發(fā)送給內(nèi)部網(wǎng)絡(luò)。
“cone”NAT中,轉(zhuǎn)換表的映射關(guān)系為<源地址,源端口,外部地址,外部端口>。只要來自外部網(wǎng)絡(luò)的數(shù)據(jù)包中的<目的地址,目的端口>符合映射關(guān)系中的<外部地址,外部端口>,它就將之轉(zhuǎn)化為映射關(guān)系中的<源地址,源端口>,然后向內(nèi)部網(wǎng)絡(luò)發(fā)送該數(shù)據(jù)包。
“Restricted”NAT中,轉(zhuǎn)換表的映射關(guān)系為<源地址,源端口,外部地址,外部端口,目的地址,目的端口>或<源地址,源端口,外部地址,外部端口,目的地址>。如果來自外部網(wǎng)絡(luò)的數(shù)據(jù)包的<目的地址、目的端口、源地址、源端口>符合映射關(guān)系中的<外部地址,外部端口,目的地址,目的端口>或<外部地址,外部端口,目的地址>,它就將數(shù)據(jù)包的<目的地址,目的端口>轉(zhuǎn)化為映射關(guān)系中的<源地址,源端口>,然后向內(nèi)部網(wǎng)絡(luò)發(fā)送該數(shù)據(jù)包。
上述兩種NAT,映射關(guān)系是一對一,也就是說只要原象<源地址,源端口>不變,映射后的象<外部地址,外部端口>也不變?!盨ymmetric”NAT不同,它的映射關(guān)系是一對多,對于同一個原象<源地址,源端口>,根據(jù)數(shù)據(jù)包不同的目的地址,會被映射成不同的象<外部地址,外部端口>。
NAT在解決IPv4地址不足的同時也破壞了IP協(xié)議端到端的特性,而IPv4協(xié)議本身在地址分配策略、安全、接入、Qos、移動性等方面存在諸多不足,IPv6就是為解決這些問題而設(shè)計的。隨著政府和企業(yè)對IPv6互聯(lián)網(wǎng)研究和運行投入的不斷增加,IPv4互聯(lián)網(wǎng)向IPv6互聯(lián)網(wǎng)的轉(zhuǎn)變勢在必行。但這種轉(zhuǎn)變不是一蹴而就的,它需要一個漫長的過程。目前,IETF已經(jīng)提出了從IPv4過渡到IPv6的3種主要遷移機制雙棧、協(xié)議翻譯、隧道。
雙棧節(jié)點同時實現(xiàn)了IPv4和IPv6協(xié)議,可以和IPv4或IPv6節(jié)點建立通信。節(jié)點根據(jù)目的IP地址決定采用IPv4還是IPv6協(xié)議發(fā)送或接收數(shù)據(jù)包。目前雙棧是運行最廣泛的遷移機制。但雙棧只允許相同IP版本之間的通信。
協(xié)議翻譯就是將數(shù)據(jù)包透明的從一種協(xié)議翻譯成另一種協(xié)議。這樣使得純IPv6節(jié)點可以和純IPv4節(jié)點之間建立通信,而不需要修改任何軟件。最有名的協(xié)議翻譯機制是NAT-PT。NAT-PT采用SIIT(StatelessIP/ICMP T路由廣告nslator)進(jìn)行協(xié)議翻譯,當(dāng)IPv6節(jié)點和IPv4節(jié)點需要建立通信時,NAT-PT為IPv6節(jié)點分配一個臨時的IPv4地址,并在會話期間維護IPv4地址和IPv6地址的映射關(guān)系。同時它還可以提供應(yīng)用層網(wǎng)關(guān)的功能,執(zhí)行IPv4和IPv6 DNS請求和應(yīng)答的翻譯。
隧道技術(shù)的實質(zhì)是將IPv6(IPv4)數(shù)據(jù)包封裝在IPv4(IPv6)數(shù)據(jù)包中,利用已有的IPv4(IPv6)路由體系進(jìn)行傳輸,從而解決被不兼容的網(wǎng)絡(luò)分離的采用相同IP版本的節(jié)點之間相互通信的問題。在過渡前期,IPv4網(wǎng)絡(luò)占主導(dǎo)地位,IPv6網(wǎng)絡(luò)好比是整個IPv4汪洋中的孤立島嶼,這些島嶼之間的通信可采用IPv6-over-IPv4隧道來實現(xiàn)。過渡后期,IPv6網(wǎng)絡(luò)占統(tǒng)治地位,類似地,各個孤立IPv4島嶼之間的通信可采用IPv4-over-IPv6隧道來實現(xiàn)。
通常隧道由3部分組成隧道首節(jié)點,對數(shù)據(jù)包進(jìn)行封裝;隧道尾節(jié)點,對數(shù)據(jù)包進(jìn)行解封裝;隧道主體,實際上是一條IPv6或IPv4路徑,將封裝后的數(shù)據(jù)包從隧道首節(jié)點傳送到隧道尾節(jié)點。根據(jù)各部分實現(xiàn)方式的不同,隧道技術(shù)包括6to4、ISATAP、6over4、Tunnel Broker、DSTM等。
目前絕大部分隧道技術(shù)都采用將IPv6數(shù)據(jù)包封裝在IPv4載荷中的方式解決被IPv4網(wǎng)絡(luò)分離的兩個IPv6節(jié)點之間通信的問題。但是,這些隧道技術(shù)都無法支持NAT域內(nèi)的IPv6節(jié)點和其他IPv6節(jié)點之間的通信,也就是說,這些隧道不允許隧道主體上有NAT存在。原因是目前的NAT基本上不允許IPv6-in-IPv4數(shù)據(jù)包(也就是IPv4頭部的協(xié)議類型字段為41的數(shù)據(jù)包)通過。NAT收到IPv6-in-IPv4數(shù)據(jù)包后,由于不認(rèn)識而將之丟棄。
發(fā)明內(nèi)容
本發(fā)明提出一種可穿越NAT的自動隧道的方法,目的是解決NAT域內(nèi)的IPv6節(jié)點和其他IPv6節(jié)點(可以在NAT域內(nèi),也可以不是)之間互相通信的問題。
本發(fā)明的技術(shù)方案因此提出了一種將IPv6數(shù)據(jù)包封裝在UDP載荷中的隧道技術(shù),我們稱之為“SilkRoad”,相應(yīng)的,我們稱這種隧道為SilkRoad隧道,SilkRoad不受隧道主體上存在任意類型和任意數(shù)量的NAT的影響,可將IPv6數(shù)據(jù)包從隧道首節(jié)點傳送到隧道尾節(jié)點。
SilkRoad隧道定義了3個通信實體,用于實現(xiàn)上述的方法1.Silkroad客戶端(以下簡稱客戶端),表示NAT域內(nèi)的IPv6/IPv4雙棧節(jié)點,支持Silkroad隧道功能,有一個全球單播聚類IPv6地址(我們稱之為SilkRoad地址)和一個私有IPv4地址。
2.Silkroad服務(wù)器(以下簡稱服務(wù)器),在NAT域外,表示為客戶端分配IPv6地址并具有路由功能的IPv6/IPv4雙棧節(jié)點,支持Silkroad隧道功能,有一個公有IPv4地址,它可以有通向IPv6骨干網(wǎng)的路由,也可以有通向孤立IPv6網(wǎng)絡(luò)的路由。
3.普通IPv6節(jié)點,表示除客戶端和服務(wù)器以外的其他IPv6節(jié)點。
圖1為服務(wù)器分配給客戶端的SilkRoad地址格式圖。
圖2為SilkRoad定義的數(shù)據(jù)包格式圖。
圖3為SilkRoad定義的維持包格式圖。
圖4為SilkRoad的路由體系圖。
圖5為客戶端啟動后的初始化配置過程圖。
圖6為相同鏈路上客戶端之間的通信過程圖。
圖7為位于不同NAT域客戶端之間通信的第一種情況圖。
圖8為位于不同NAT域客戶端之間通信的第二種情況圖。
圖9為位于不同NAT域客戶端之間通信的第三種情況圖。
圖10為客戶端到普通IPv6節(jié)點的通信過程圖。
圖11為普通IPv6節(jié)點到客戶端的通信過程圖。
客戶端通信時采用的IPv6地址是一種規(guī)定格式的地址,它包括64位的IPv6地址前綴和64位的接口標(biāo)識符,接口標(biāo)識符由偽外部端口字段、NAT類型標(biāo)志位字段、Silkroad地址標(biāo)志位字段和偽外部地址字段組成,如附圖1所示。各部分說明如下◆IPv6前綴IANA正式分配的全球聚類單播地址前綴或“site-local”地址前綴,不可以是“1ink-local”地址前綴或組播地址前綴。
◆偽外部端口外部端口(經(jīng)NAT映射后的端口)和0xFFFF與或后的16位數(shù)值。
SilkRoad客戶端啟動后向服務(wù)器發(fā)送一個初始化數(shù)據(jù)包,該包經(jīng)過NAT時其UDP端口被映射成一個不同的端口,我們稱之為外部端口。服務(wù)器從接收到的初始化數(shù)據(jù)包中獲得此端口??紤]到NAT會刪除過期的映射關(guān)系,客戶端(或服務(wù)器)將周期性的向NAT發(fā)送數(shù)據(jù)包以維持這種映射關(guān)系,所以NAT的轉(zhuǎn)換表中始終保留該映射關(guān)系。對外部端口進(jìn)行與或操作的目的是為了防止某些“自作聰明”的NAT將UDP數(shù)據(jù)包載荷,即IPv6頭部+IPv6載荷中的外部端口進(jìn)行轉(zhuǎn)化。
◆NAT類型標(biāo)志位長度為2位,用來表示客戶端所在NAT的類型。00表示客戶端位于“cone”NAT域,10表示客戶端位于“Restricted”NAT域,11表示客戶端位于“Symmetric”NAT域。
◆Silkroad地址標(biāo)志位長度為14位,設(shè)為0,表示該地址是一Silkroad地址。將該字段放在接口標(biāo)識符中間的目的在于避免和其他地址沖突,因為目前只要不是隨機分配的接口標(biāo)識符,其中間16位都是FFFE。
◆偽外部地址外部地址即經(jīng)NAT映射后的地址和0xFFFFFFFF與或后的32位數(shù)值??蛻舳藛雍笙蚍?wù)器發(fā)送一個初始化數(shù)據(jù)包,該包經(jīng)過NAT時其私有IPv4地址被映射成一個公有IPv4地址,我們稱之為外部地址。服務(wù)器從接收到的初始化數(shù)據(jù)包中獲得此地址??紤]到NAT會刪除過期的映射關(guān)系,客戶端(或服務(wù)器)將周期性的向NAT發(fā)送數(shù)據(jù)包以維持這種映射關(guān)系,所以NAT的轉(zhuǎn)換表中始終保留該映射關(guān)系。對外部地址進(jìn)行與或操作的目的是為了防止某些“自作聰明”的NAT將UDP數(shù)據(jù)包載荷,即IPv6頭部+IPv6載荷中的外部端口進(jìn)行轉(zhuǎn)化??蛻舳撕推渌鸌Pv6節(jié)點通信時發(fā)送或接收的數(shù)據(jù)包我們稱之為Silkroad數(shù)據(jù)包,它由IPv4頭部、UDP頭部、IPv6頭部以及IPv6載荷組成,如附圖2所示。具體說明如下●IPv4頭部源IPv4地址為客戶端的IPv4地址(私有地址),目的IPv4地址為服務(wù)器的IPv4地址(如果目的地是普通IPv6節(jié)點)或?qū)Ψ娇蛻舳私?jīng)NAT映射后的外部地址(如果目的地是另一客戶端)。
●UDP頭部
源端口為5188,目的端口為5188(如果目的地是普通IPv6節(jié)點)或?qū)Ψ娇蛻舳私?jīng)NAT映射后的外部端口(如果目的地是另一客戶端)。
●IPv6頭部包含源IPv6地址和目的IPv6地址,其中至少有一個是SilkRoad地址。
●IPv6載荷由0或若干個IPv6擴展頭部,以及上層協(xié)議數(shù)據(jù)單元(PDU)組成。
為了維持NAT中的映射關(guān)系,如“cone”NAT的<源地址,源端口,目的地址,目的端口>??蛻舳诵枰芷谛缘南騈AT發(fā)送數(shù)據(jù)包,我們稱這種數(shù)據(jù)包為維持包,如附圖3所示。在維持包的IPv6頭部中,下一跳字段設(shè)為59,表示沒有IPv6載荷。
Silkroad的路由體系如附圖4所示??蛻舳送ㄟ^SilkRoad隧道接口發(fā)送或接收數(shù)據(jù)包,SilkRoad隧道接口是一個邏輯接口,它會自動將IPv6數(shù)據(jù)包封裝在UDP載荷中進(jìn)行發(fā)送。同樣,Silkroad隧道接口接收到的數(shù)據(jù)包肯定是一個封裝了IPv6報文的UDP數(shù)據(jù)包??蛻舳擞幸粋€缺省路由(∷/0),它將所有IPv6地址視為同一鏈路上的地址并使用SilkRoad隧道接口進(jìn)行轉(zhuǎn)發(fā)。缺省路由的下一跳地址為IPv6數(shù)據(jù)包中的目的地址,下一跳接口為SilkRoad隧道接口。服務(wù)器有通向IPv6骨干網(wǎng)以及各孤立IPv6網(wǎng)絡(luò)的路由,也有通向各客戶端的路由。IPv6骨干網(wǎng)以及各孤立IPv6網(wǎng)絡(luò)中任何一個IPv6節(jié)點發(fā)送的數(shù)據(jù)包,只要目的地址前綴是服務(wù)器分配給客戶端的地址前綴,都將被路由至服務(wù)器(圖中以地址前綴2001*/64為例),服務(wù)器再通過去往客戶端的路由將數(shù)據(jù)包轉(zhuǎn)發(fā)至客戶端。同樣,客戶端可通過服務(wù)器和IPv6骨干網(wǎng)以及各孤立IPv6網(wǎng)絡(luò)中的任何一個IPv6節(jié)點實現(xiàn)互訪。
客戶端每次啟動后首先向服務(wù)器注冊以獲得一個SilkRoad地址,這樣才能和其他IPv6節(jié)點建立通信,這個過程我們稱之為客戶端的初始化配置,如附圖5所示。
客戶端的初始化配置通過向服務(wù)器發(fā)送一系列路由請求報文來完成,服務(wù)器以路由廣告報文作為響應(yīng),路由廣告報文中含有客戶端被NAT映射后的外部地址和外部端口信息。通過此過程客戶端獲得一個SilkRoad地址并判斷它位于何種NAT域內(nèi)。
客戶端的初始化配置過程如下1、客戶端向首選的服務(wù)器(圖中為服務(wù)器1)發(fā)送一個路由請求報文,報文的源IPv6地址是一個“1ink-local“地址,其F字段值為00。
2、服務(wù)器1收到路由請求報文后發(fā)送一個路由廣告報文作為響應(yīng),因為路由請求報文顯示客戶端位于“cone”NAT域內(nèi)(F字段設(shè)為00),所以它選擇一個不同的IPv4地址作為源地址發(fā)送路由廣告報文,如果客戶端能收到此報文,表明客戶端確實位于“cone”NAT域內(nèi)。
3、如果客戶端沒有收到此路由廣告報文,它將再向服務(wù)器1發(fā)送一個路由請求報文,路由請求報文的源IPv6地址是另一個“l(fā)ink-local“地址,其F字段值為10。
4、服務(wù)器1收到路由請求報文后發(fā)送一個路由廣告報文作為響應(yīng),因為路由請求報文顯示客戶端位于“Restricted”NAT域內(nèi),它將以路由請求報文中的目的IPv4地址作為源IPv4地址發(fā)送路由廣告報文,客戶端如果收到此報文,表示它位于一個“Restricted”NAT域內(nèi)。
5、客戶端為了明確是否位于“Symmetric”NAT域內(nèi),將再向另一個服務(wù)器(圖5中為服務(wù)器2)發(fā)送路由請求報文,服務(wù)器2收到路由請求報文后發(fā)送一個路由廣告報文作為響應(yīng)。
6、客戶端收到此路由廣告報文后和原先收到的路由廣告報文作比較,如果報文包含的用來構(gòu)造SilkRoad地址的信息相同,表示NAT的地址端口映射關(guān)系是一一對應(yīng)的。如果不同,表示NAT將相同的內(nèi)部地址和端口映射成了不同的外部地址和端口,映射關(guān)系是一對多,所以客戶端認(rèn)為它位于“Symmetric”NAT域。
根據(jù)第2、4或6步收到的路由廣告報文, 客戶端按如下構(gòu)造一個SilkRoad地址●地址的前64位設(shè)置為路由廣告報文中的“前綴信息選項”(如2001***/64)。
●接下去的16位設(shè)為路由廣告報文中包含的外部端口。
●接下去的2位設(shè)為00(如果客戶端位于“cone”NAT后)或10(如果客戶端位于“Restricted”NAT后)或11(如果客戶端位于“Symmetric”NAT后)。
●接下去的14位設(shè)為0。
●最后32位設(shè)為路由廣告報文包含的外部地址。
客戶端和其他IPv6節(jié)點之間的通信情況分以下3種情況一、通信對方是同一鏈路上的客戶端;對于目的地是相同鏈路上客戶端的數(shù)據(jù)包,SilkRoad隧道接口采用SilkRoad維持包的交換代替鄰居發(fā)現(xiàn)的地址決議過程,交換SilkRoad維持包是為了獲得通信對方在該鏈路上的IPv4地址以便可以直接進(jìn)行通信;為了判斷目的地址所對應(yīng)的主機是否位于同一鏈路,客戶端會檢查它的SilkRoad鄰居緩存,每個客戶端都會向和它相連的IPv4鏈路發(fā)送SilkRoad維持包以表明它在該鏈路上的存在,所有收到這些SilkRoad維持包的客戶端將包中的SilkRoad地址和IPv4地址放入它的SilkRoad鄰居緩存;因此,如果某個目的SilkRoad地址位于SilkRoad鄰居緩存,那么該地址對應(yīng)的主機肯定位于相同的鏈路上,相同鏈路上客戶端之間的通信如附圖6所示。通信過程如下1、客戶端1,本主機發(fā)送一個維持包,其IPv4目的地址為一保留的IPv4多播地址224.0.0.1(由IANA分配)。維持包的IPv6頭部的目的IPv6地址為客戶端2,目的主機的SilkRoad地址。
2、客戶端2收到SilkRoad維持包后判斷客戶端1的IPv4地址是否屬于同一鏈路、UDP端口是否為5188。若地址端口都得到確認(rèn),客戶端2向客戶端1發(fā)送一個維持包作為響應(yīng),客戶端1收到該包后獲得客戶端2的IPv4地址(此地址是NAT域內(nèi)的私有地址)。
3、接著客戶端1直接向客戶端2發(fā)送數(shù)據(jù),不需要經(jīng)過NAT,更不需要經(jīng)過服務(wù)器。
二、通信對方另一NAT域的客戶端;這種情況又可細(xì)分為3種情況1.本主機位于“cone”NAT域或“Restricted”NAT域,目的主機位于“cone”NAT域它們之間的通信可以直接進(jìn)行,如附圖7所示。因為“cone”NAT不會對任何源IPv4地址加以限制,所以客戶端1可以直接向客戶端2發(fā)送數(shù)據(jù)包來創(chuàng)建對方NAT轉(zhuǎn)換表中的地址端口映射關(guān)系。若客戶端1位于“Restricted”NAT,因為在它向客戶端2發(fā)送數(shù)據(jù)后NAT1已經(jīng)建立了目的地為NAT2的映射關(guān)系,所以客戶端2的數(shù)據(jù)包可以通過NAT1;2.目的主機位于“Restricted”NAT域SilkRoad隧道接口采用維持包的交換來代替鄰居發(fā)現(xiàn)的地址決議過程,使得對方所在NAT創(chuàng)建通信必須的地址端口映射關(guān)系,之后兩個客戶端之間就可以直接交換數(shù)據(jù)包,如附圖8所示。具體通信過程如下●客戶端1(即本主機)向客戶端2(即目的主機)發(fā)送一個維持包,目的是為了在“Restricted”NAT1建立目的地為NAT2的映射關(guān)系,以便來自NAT2的數(shù)據(jù)可以通過NAT1。如果NAT1是“cone”類型,則可以省略這一步。
●接著客戶端1向服務(wù)器1(即客戶端1注冊的服務(wù)器)發(fā)送維持包,目的IPv4地址為服務(wù)器1的公有IPv4地址,目的IPv6地址為客戶端2的地址。
●服務(wù)器1收到此包后剝?nèi)Pv4頭部和UDP頭部,新的數(shù)據(jù)包只有一個IPv6頭部。通過IPv6網(wǎng)將新數(shù)據(jù)包轉(zhuǎn)發(fā)至服務(wù)器2(即客戶端2注冊的服務(wù)器)。圖中虛線表示該包走的是IPv6網(wǎng)絡(luò)。
●服務(wù)器2收到此包后從目的IPv6地址中提取出外部地址和外部端口,將此包封裝在UDP中后發(fā)送給客戶端2。UDP的目的端口為提取的外部端口,源端口為5188,IPv4頭部的源地址為服務(wù)器2的IPv4地址,目的地址為提取的外部地址。
●客戶端2收到來自服務(wù)器2的數(shù)據(jù)包后從源IPv6地址中提取出客戶端1的外部地址和外部端口,并從客戶端1的地址中獲知它不位于“Symmetric”NAT域。然后向客戶端1發(fā)送一個維持包,其中IPv4源地址為客戶端2的私有地址,IPv4目的地址為提取的外部地址。UDP源端口為5188,目的端口為提取的外部端口。即使NAT1是“Restricted”類型,因為第一步中NAT1已經(jīng)建立了到NAT2的映射關(guān)系,所以該包可以通過NAT1。
接下去客戶端1就可以直接向客戶端2發(fā)送數(shù)據(jù)包,不需要中間服務(wù)器的轉(zhuǎn)發(fā)。發(fā)送之前從目的IPv6地址也就是客戶端2的SilkRoad地址中提取出外部地址和外部端口,然后將數(shù)據(jù)包封裝在UDP中,目的IPv4地址為提取的外部地址,源IPv4地址為本機的私有IPv4地址,目的端口為提取的外部端口,源端口為5188。客戶端2收到此包后進(jìn)行解封裝,如果它要向客戶端1發(fā)送數(shù)據(jù)包,必須執(zhí)行同客戶端1一樣的封裝過程。
3.本主機或?qū)Ψ轿挥凇癝ymmetric”NAT域它們之間通信的數(shù)據(jù)包必須通過服務(wù)器轉(zhuǎn)發(fā),如附圖9所示。具體過程如下●客戶端1,本主機將要發(fā)送的數(shù)據(jù)包封裝在UDP中,目的IPv4地址為服務(wù)器1的公有IPv4地址,源IPv4地址為本機的私有IPv4地址,目的端口和源端口均為5188。
●服務(wù)器1(即客戶端1注冊的服務(wù)器)剝?nèi)Pv4和UDP頭部,通過IPv6網(wǎng)將沒有封裝的IPv6數(shù)據(jù)包轉(zhuǎn)發(fā)至服務(wù)器2。圖中虛線表示該包走的是IPv6網(wǎng)絡(luò)。
●服務(wù)器2(即客戶端2注冊的服務(wù)器)收到此包后從目的IPv6地址中提取出外部地址和外部端口,將此包封裝在UDP中然后發(fā)送給客戶端2目的主機。UDP的目的端口為提取的外部端口,源端口為5188,IPv4頭部的源地址為服務(wù)器2的IPv4地址,目的地址為提取的外部地址。
●客戶端2收到來自服務(wù)器2的數(shù)據(jù)包后如果要向客戶端1發(fā)送數(shù)據(jù)包,則將該包封裝在UDP中,目的IPv4地址為服務(wù)器2的公有IPv4地址,源IPv4地址為本機的私有IPv4地址,目的端口和源端口均為5188。
三、通信對方是普通IPv6節(jié)點客戶端和普通IPv6節(jié)點之間通信的數(shù)據(jù)包必須通過服務(wù)器轉(zhuǎn)發(fā),客戶端和服務(wù)器之間采用“SilkRoad”隧道傳送數(shù)據(jù)流,服務(wù)器和普通IPv6節(jié)點之間的數(shù)據(jù)流直接利用IPv6網(wǎng)絡(luò)進(jìn)行傳送或通過IPv6-over-IPv4隧道利用IPv4網(wǎng)絡(luò)進(jìn)行傳送。
客戶端到普通IPv6節(jié)點的通信過程如附圖10所示,具體描述如下●客戶端將要發(fā)送的數(shù)據(jù)包封裝在UDP中,目的IPv4地址為服務(wù)器的公有IPv4地址,源IPv4地址為本機的私有IPv4地址,目的端口和源端口均為5188。
●服務(wù)器剝?nèi)Pv4和UDP頭部,通過IPv6網(wǎng)將沒有封裝的IPv6數(shù)據(jù)包轉(zhuǎn)發(fā)給IPv6節(jié)點。圖中虛線表示該包走的是IPv6網(wǎng)絡(luò)。
●IPv6節(jié)點向客戶端發(fā)回的數(shù)據(jù)包最終將被路由至服務(wù)器。圖中虛線表示該包走的是IPv6網(wǎng)絡(luò)。
●服務(wù)器收到此包后從目的IPv6地址中提取出外部地址和外部端口,并將該數(shù)據(jù)包封裝在UDP中,其IPv4頭部的源IPv4地址為服務(wù)器的公有IPv4地址,目的地址為提取的外部地址,源端口為5188,目的端口為提取的外部端口。
普通IPv6節(jié)點到客戶端的通信過程,如附圖11所示,具體描述如下●IPv6節(jié)點向客戶端發(fā)送數(shù)據(jù)包,目的IPv6地址為客戶端的SilkRoad地址。圖中虛線表示該包走的是IPv6網(wǎng)絡(luò)。
●該數(shù)據(jù)包最終被路由至服務(wù)器,服務(wù)器從目的IPv6地址中提取出外部地址和外部端口,并將該數(shù)據(jù)包封裝在UDP中,其IPv4頭部的源IPv4地址為服務(wù)器的公有IPv4地址,目的地址為提取的外部地址,源端口為5188,目的端口為提取的外部地址。然后將封裝后的數(shù)據(jù)包發(fā)送給客戶端。
●客戶端將要發(fā)送的數(shù)據(jù)包封裝在UDP中,目的IPv4地址為服務(wù)器的公有IPv4地址,源IPv4地址為本機的私有IPv4地址,目的端口和源端口均為5188。
●服務(wù)器剝?nèi)Pv4和UDP頭部,通過IPv6網(wǎng)將沒有封裝的IPv6數(shù)據(jù)包轉(zhuǎn)發(fā)給IPv6節(jié)點。圖中虛線表示該包走的是IPv6網(wǎng)絡(luò)。
權(quán)利要求
1.一種可穿越NAT的自動隧道的方法,其特征在于,提出了一種將IPv6數(shù)據(jù)包封裝在UDP載荷中的隧道技術(shù),稱這種隧道為SilkRoad隧道,SilkRoad不受隧道主體上存在任意類型和任意數(shù)量的NAT的影響,可將IPv6數(shù)據(jù)包從隧道首節(jié)點傳送到隧道尾節(jié)點。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,該隧道技術(shù)定義了3個通信實體,用于實現(xiàn)上述的方法Silkroad客戶端,表示NAT域內(nèi)的IPv6/IPv4雙棧節(jié)點,支持Silkroad隧道功能,有一個全球單播聚類IPv6地址和一個私有IPv4地址;Silkroad服務(wù)器,在NAT域外,表示為客戶端分配IPv6地址并具有路由功能的IPv6/IPv4雙棧節(jié)點,支持Silkroad隧道功能,有一個公有IPv4地址,它可以有通向IPv6骨干網(wǎng)的路由,也可以有通向孤立IPv6網(wǎng)絡(luò)的路由;普通IPv6節(jié)點,表示除客戶端和服務(wù)器以外的其他IPv6節(jié)點。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,客戶端通信時采用的IPv6地址是一種規(guī)定格式的地址,它包括64位的IPv6地址前綴和64位的接口標(biāo)識符,接口標(biāo)識符由偽外部端口字段、NAT類型標(biāo)志位字段、Silkroad地址標(biāo)志位字段和偽外部地址字段組成,各部分說明如下◆IPv6前綴IANA正式分配的全球聚類單播地址前綴或“site-local”地址前綴,不可以是“l(fā)ink-local”地址前綴或組播地址前綴;◆偽外部端口外部端口,即經(jīng)NAT映射后的端口和0xFFFF與或后的16位數(shù)值,SilkRoad客戶端啟動后向服務(wù)器發(fā)送一個初始化數(shù)據(jù)包,該包經(jīng)過NAT時其UDP端口被映射成一個不同的端口,我們稱之為外部端口;服務(wù)器從接收到的初始化數(shù)據(jù)包中獲得此端口,考慮到NAT會刪除過期的映射關(guān)系,客戶端或服務(wù)器,將周期性的向NAT發(fā)送數(shù)據(jù)包以維持這種映射關(guān)系,所以NAT的轉(zhuǎn)換表中始終保留該映射關(guān)系,對外部端口進(jìn)行與或操作的目的是為了防止某些NAT將UDP數(shù)據(jù)包載荷,即IPv6頭部+IPv6載荷中的外部端口進(jìn)行轉(zhuǎn)化;◆NAT類型標(biāo)志位長度為2位,用來表示客戶端所在NAT的類型,00表示客戶端位于“cone”NAT域,10表示客戶端位于“Restricted”NAT域,11表示客戶端位于“Symmetric”NAT域;◆Silkroad地址標(biāo)志位長度為14位,設(shè)為0,表示該地址是一Silkroad地址,將該字段放在接口標(biāo)識符中間的目的在于避免和其他地址沖突,因為目前只要不是隨機分配的接口標(biāo)識符,其中間16位都是FFFE;◆偽外部地址外部地址,即經(jīng)NAT映射后的地址和0xFFFFFFFF與或后的32位數(shù)值,客戶端啟動后向服務(wù)器發(fā)送一個初始化數(shù)據(jù)包,該包經(jīng)過NAT時其私有IPv4地址被映射成一個公有IPv4地址,稱之為外部地址,服務(wù)器從接收到的初始化數(shù)據(jù)包中獲得此地址,考慮到NAT會刪除過期的映射關(guān)系,客戶端或服務(wù)器,將周期性的向NAT發(fā)送數(shù)據(jù)包以維持這種映射關(guān)系,所以NAT的轉(zhuǎn)換表中始終保留該映射關(guān)系,對外部地址進(jìn)行與或操作的目的是為了防止某些NAT將UDP數(shù)據(jù)包載荷,即IPv6頭部+IPv6載荷中的外部端口進(jìn)行轉(zhuǎn)化。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于,客戶端和其他IPv6節(jié)點通信時發(fā)送或接收的數(shù)據(jù)包由IPv4頭部、UDP頭部、IPv6頭部以及IPv6載荷組成;具體說明如下·IPv4頭部源IPv4地址為客戶端的IPv4地址,即私有地址,目的IPv4地址為服務(wù)器的IPv4地址,如果目的地是普通IPv6節(jié)點或?qū)Ψ娇蛻舳私?jīng)NAT映射后的外部地址,如果目的地是另一客戶端;·UDP頭部源端口為5188,目的端口為5188,如果目的地是普通IPv6節(jié)點或?qū)Ψ娇蛻舳私?jīng)NAT映射后的外部端口,如果目的地是另一客戶端;·IPv6頭部包含源IPv6地址和目的IPv6地址,其中至少有一個是SilkRoad地址;·IPv6載荷由O或若干個IPv6擴展頭部,以及上層協(xié)議數(shù)據(jù)單元,即PDU組成;為了維持NAT中的映射關(guān)系,如“cone”NAT的<源地址,源端口,目的地址,目的端口>,客戶端需要周期性的向NAT發(fā)送數(shù)據(jù)包,稱這種數(shù)據(jù)包為維持包,在維持包的IPv6頭部中,下一跳字段設(shè)為59,表示沒有IPv6載荷。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于,客戶端通過SilkRoad隧道接口發(fā)送或接收數(shù)據(jù)包,SilkRoad隧道接口是一個邏輯接口,它會自動將IPv6數(shù)據(jù)包封裝在UDP載荷中進(jìn)行發(fā)送,同樣,Silkroad隧道接口接收到的數(shù)據(jù)包肯定是一個封裝了IPv6報文的UDP數(shù)據(jù)包,客戶端有一個缺省路由(∷/0),它將所有IPv6地址視為同一鏈路上的地址并使用SilkRoad隧道接口進(jìn)行轉(zhuǎn)發(fā),缺省路由的下一跳地址為IPv6數(shù)據(jù)包中的目的地址,下一跳接口為SilkRoad隧道接口,服務(wù)器有通向IPv6骨干網(wǎng)以及各孤立IPv6網(wǎng)絡(luò)的路由,也有通向各客戶端的路由,IPv6骨干網(wǎng)以及各孤立IPv6網(wǎng)絡(luò)中任何一個IPv6節(jié)點發(fā)送的數(shù)據(jù)包,只要目的地址前綴是服務(wù)器分配給客戶端的地址前綴,都將被路由至服務(wù)器,以地址前綴2001*/64為例,服務(wù)器再通過去往客戶端的路由將數(shù)據(jù)包轉(zhuǎn)發(fā)至客戶端;同樣,客戶端可通過服務(wù)器和IPv6骨干網(wǎng)以及各孤立IPv6網(wǎng)絡(luò)中的任何一個IPv6節(jié)點實現(xiàn)互訪。
6.據(jù)權(quán)利要求1所述的方法,其特征在于,客戶端每次啟動后首先向服務(wù)器注冊以獲得一個SilkRoad地址,這樣才能和其他IPv6節(jié)點建立通信,這個過程我們稱之為客戶端的初始化配置;客戶端的初始化配置通過向服務(wù)器發(fā)送一系列路由請求報文來完成,服務(wù)器以路由廣告報文作為響應(yīng),路由廣告報文中含有客戶端被NAT映射后的外部地址和外部端口信息,通過此過程客戶端獲得一個SilkRoad地址并判斷它位于何種NAT域內(nèi);客戶端的初始化配置過程如下1、戶端向首選的服務(wù)器,即服務(wù)器1發(fā)送一個路由請求報文,報文的源IPv6地址是一個“l(fā)ink-local“地址,其F字段值為00;2、服務(wù)器1收到路由請求報文后發(fā)送一個路由廣告報文作為響應(yīng),因為路由請求報文顯示客戶端位于“cone”NAT域內(nèi),F(xiàn)字段設(shè)為00,所以它選擇一個不同的IPv4地址作為源地址發(fā)送路由廣告報文,如果客戶端能收到此報文,表明客戶端確實位于“cone”NAT域內(nèi);3、如果客戶端沒有收到此路由廣告報文,它將再向服務(wù)器1發(fā)送一個路由請求報文,路由請求報文的源IPv6地址是另一個“l(fā)ink-local“地址,其F字段值為10;4、服務(wù)器1收到路由請求報文后發(fā)送一個路由廣告報文作為響應(yīng),因為路由請求報文顯示客戶端位于“Restricted”NAT域內(nèi),它將以路由請求報文中的目的IPv4地址作為源IPv4地址發(fā)送路由廣告報文,客戶端如果收到此報文,表示它位于一個“Restricted”NAT域內(nèi);5、客戶端為了明確是否位于“Symmetric”NAT域內(nèi),將再向另一個服務(wù)器,即服務(wù)器2發(fā)送路由請求報文,服務(wù)器2收到路由請求報文后發(fā)送一個路由廣告報文作為響應(yīng);6、客戶端收到此路由廣告報文后和原先收到的路由廣告報文作比較,如果報文包含的用來構(gòu)造SilkRoad地址的信息相同,表示NAT的地址端口映射關(guān)系是一一對應(yīng)的;如果不同,表示NAT將相同的內(nèi)部地址和端口映射成了不同的外部地址和端口,映射關(guān)系是一對多,所以客戶端認(rèn)為它位于“Symmetric”NAT域;根據(jù)第2、4或6步收到的路由廣告報文,客戶端按如下構(gòu)造一個SilkRoad地址·地址的前64位設(shè)置為路由廣告報文中的“前綴信息選項”,如2001***/64;·接下去的16位設(shè)為路由廣告報文中包含的外部端口;·接下去的2位設(shè)為00,如果客戶端位于“cone”NAT后或10,如果客戶端位于“Restricted”NAT后或11,如果客戶端位于“Symmetric”NAT后;·接下去的14位設(shè)為0;·最后32位設(shè)為路由廣告報文包含的外部地址;
7.根據(jù)權(quán)利要求1所述的方法,其特征在于,Client和其他IPv6節(jié)點的通信情況有以下3種一、通信對方是同一鏈路上的客戶端;對于目的地是相同鏈路上客戶端的數(shù)據(jù)包,SilkRoad隧道接口采用SilkRoad維持包的交換代替鄰居發(fā)現(xiàn)的地址決議過程,交換SilkRoad維持包是為了獲得通信對方在該鏈路上的IPv4地址以便可以直接進(jìn)行通信;為了判斷目的地址所對應(yīng)的主機是否位于同一鏈路,客戶端會檢查它的SilkRoad鄰居緩存,每個客戶端都會向和它相連的IPv4鏈路發(fā)送SilkRoad維持包以表明它在該鏈路上的存在,所有收到這些SilkRoad維持包的客戶端將包中的SilkRoad地址和IPv4地址放入它的SilkRoad鄰居緩存;因此,如果某個目的SilkRoad地址位于SilkRoad鄰居緩存,那么該地址對應(yīng)的主機肯定位于相同的鏈路上,相同鏈路上客戶端之間的通信過程如下1、客戶端1,即本主機發(fā)送一個維持包,其IPv4目的地址為一保留的IPv4多播地址224.0.0.1,由IANA分配,維持包的IPv6頭部的目的IPv6地址為客戶端2,即目的主機的SilkRoad地址;2、客戶端2收到SilkRoad維持包后判斷客戶端1的IPv4地址是否屬于同一鏈路、UDP端口是否為5188,若地址端口都得到確認(rèn),客戶端2向客戶端1發(fā)送一個維持包作為響應(yīng),客戶端1收到該包后獲得客戶端2的IPv4地址,此地址是NAT域內(nèi)的私有地址;3、接著客戶端1直接向客戶端2發(fā)送數(shù)據(jù),不需要經(jīng)過NAT,更不需要經(jīng)過服務(wù)器;二、通信對方另一NAT域的客戶端;這種情況又可細(xì)分為3種情況1、本主機位于“cone”NAT域或“Restricted”NAT域,目的主機位于“cone”NAT域它們之間的通信可以直接進(jìn)行,因為“cone”NAT不會對任何源IPv4地址加以限制,所以客戶端1可以直接向客戶端2發(fā)送數(shù)據(jù)包來創(chuàng)建對方NAT轉(zhuǎn)換表中的地址端口映射關(guān)系,若客戶端1位于“Restricted”NAT,因為在它向客戶端2發(fā)送數(shù)據(jù)后NAT1已經(jīng)建立了目的地為NAT2的映射關(guān)系,所以客戶端2的數(shù)據(jù)包可以通過NAT1;2、目的主機位于“Restricted”NAT域SilkRoad隧道接口采用維持包的交換來代替鄰居發(fā)現(xiàn)的地址決議過程,使得對方所在NAT創(chuàng)建通信必須的地址端口映射關(guān)系,之后兩個客戶端之間就可以直接交換數(shù)據(jù)包,具體通信過程如下·客戶端1,即本主機向客戶端2,即目的主機發(fā)送一個維持包,目的是為了在“Restricted”NAT1建立目的地為NAT2的映射關(guān)系,以便來自NAT2的數(shù)據(jù)可以通過NAT1,如果NAT1是“cone”類型,則可以省略這一步;·接著客戶端1向服務(wù)器1,即客戶端1注冊的服務(wù)器發(fā)送維持包,目的IPv4地址為服務(wù)器1的公有IPv4地址,目的IPv6地址為客戶端2的地址;·服務(wù)器1收到此包后剝?nèi)Pv4頭部和UDP頭部,新的數(shù)據(jù)包只有一個IPv6頭部,通過IPv6網(wǎng)將新數(shù)據(jù)包轉(zhuǎn)發(fā)至服務(wù)器2,即客戶端2注冊的服務(wù)器,虛線表示該包走的是IPv6網(wǎng)絡(luò);·服務(wù)器2收到此包后從目的IPv6地址中提取出外部地址和外部端口,將此包封裝在UDP中后發(fā)送給客戶端2,UDP的目的端口為提取的外部端口,源端口為5188,IPv4頭部的源地址為服務(wù)器2的IPv4地址,目的地址為提取的外部地址;·客戶端2收到來自服務(wù)器2的數(shù)據(jù)包后從源IPv6地址中提取出客戶端1的外部地址和外部端口,并從客戶端1的地址中獲知它未位于“Symmetric”NAT域,然后向客戶端1發(fā)送一個維持包,其中IPv4源地址為客戶端2的私有地址,IPv4目的地址為提取的外部地址,UDP源端口為5188,目的端口為提取的外部端口,即使NAT1是“Restricted”類型,因為第一步中NAT1已經(jīng)建立了到NAT2的映射關(guān)系,所以該包可以通過NAT1;接下去客戶端1就可以直接向客戶端2發(fā)送數(shù)據(jù)包,不需要中間服務(wù)器的轉(zhuǎn)發(fā),發(fā)送之前從目的IPv6地址也就是客戶端2的SilkRoad地址中提取出外部地址和外部端口,然后將數(shù)據(jù)包封裝在UDP中,目的IPv4地址為提取的外部地址,源IPv4地址為本機的私有IPv4地址,目的端口為提取的外部端口,源端口為5188,客戶端2收到此包后進(jìn)行解封裝,如果它要向客戶端1發(fā)送數(shù)據(jù)包,必須執(zhí)行同客戶端1一樣的封裝過程;3、本主機或目的主機位于“Symmetric”NAT域它們之間通信的數(shù)據(jù)包必須通過服務(wù)器轉(zhuǎn)發(fā),具體過程如下·客戶端1,即本主機將要發(fā)送的數(shù)據(jù)包封裝在UDP中,目的IPv4地址為服務(wù)器1的公有IPv4地址,源IPv4地址為本機的私有IPv4地址,目的端口和源端口均為5188;·服務(wù)器1,即客戶端1注冊的服務(wù)器剝?nèi)Pv4和UDP頭部,通過IPv6網(wǎng)將沒有封裝的IPv6數(shù)據(jù)包轉(zhuǎn)發(fā)至服務(wù)器2,虛線表示該包走的是IPv6網(wǎng)絡(luò);·服務(wù)器2,即客戶端2注冊的服務(wù)器收到此包后從目的IPv6地址中提取出外部地址和外部端口,將此包封裝在UDP中然后發(fā)送給客戶端2,即目的主機,UDP的目的端口為提取的外部端口,源端口為5188,IPv4頭部的源地址為服務(wù)器2的IPv4地址,目的地址為提取的外部地址;·客戶端2收到來自服務(wù)器2的數(shù)據(jù)包后如果要向客戶端1發(fā)送數(shù)據(jù)包,則將該包封裝在UDP中,目的IPv4地址為服務(wù)器2的公有IPv4地址,源IPv4地址為本機的私有IPv4地址,目的端口和源端口均為5188;三、通信對方是普通IPv6節(jié)點客戶端和普通IPv6節(jié)點之間通信的數(shù)據(jù)包必須通過服務(wù)器轉(zhuǎn)發(fā),客戶端和服務(wù)器之間采用“SilkRoad”隧道傳送數(shù)據(jù)流,服務(wù)器和普通IPv6節(jié)點之間的數(shù)據(jù)流直接利用IPv6網(wǎng)絡(luò)進(jìn)行傳送或通過IPv6-over-IPv4隧道利用IPv4網(wǎng)絡(luò)進(jìn)行傳送;客戶端到普通IPv6節(jié)點的通信過程如下·客戶端將要發(fā)送的數(shù)據(jù)包封裝在UDP中,目的IPv4地址為服務(wù)器的公有IPv4地址,源IPv4地址為本機的私有IPv4地址,目的端口和源端口均為5188;·服務(wù)器剝?nèi)Pv4和UDP頭部,通過IPv6網(wǎng)將沒有封裝的IPv6數(shù)據(jù)包轉(zhuǎn)發(fā)給IPv6節(jié)點,虛線表示該包走的是IPv6網(wǎng)絡(luò);·IPv6節(jié)點向客戶端發(fā)回的數(shù)據(jù)包最終將被路由至服務(wù)器,虛線表示該包走的是IPv6網(wǎng)絡(luò);·服務(wù)器收到此包后從目的IPv6地址中提取出外部地址和外部端口,并將該數(shù)據(jù)包封裝在UDP中,其IPv4頭部的源IPv4地址為服務(wù)器的公有IPv4地址,目的地址為提取的外部地址,源端口為5188,目的端口為提取的外部端口;普通IPv6節(jié)點到客戶端的通信過程如下·IPv6節(jié)點向客戶端發(fā)送數(shù)據(jù)包,目的IPv6地址為客戶端的SilkRoad地址,虛線表示該包走的是IPv6網(wǎng)絡(luò);·該數(shù)據(jù)包最終被路由至服務(wù)器,服務(wù)器從目的IPv6地址中提取出外部地址和外部端口,并將該數(shù)據(jù)包封裝在UDP中,其IPv4頭部的源IPv4地址為服務(wù)器的公有IPv4地址,目的地址為提取的外部地址,源端口為5188,目的端口為提取的外部地址,然后將封裝后的數(shù)據(jù)包發(fā)送給客戶端;·客戶端將要發(fā)送的數(shù)據(jù)包封裝在UDP中,目的IPv4地址為服務(wù)器的公有IPv4地址,源IPv4地址為本機的私有IPv4地址,目的端口和源端口均為5188;·服務(wù)器剝?nèi)Pv4和UDP頭部,通過IPv6網(wǎng)將沒有封裝的IPv6數(shù)據(jù)包轉(zhuǎn)發(fā)給IPv6節(jié)點,虛線表示該包走的是IPv6網(wǎng)絡(luò)。
全文摘要
本發(fā)明涉及互聯(lián)網(wǎng)技術(shù)領(lǐng)域,一種可穿越NAT(網(wǎng)絡(luò)地址翻譯)的自動隧道技術(shù),也就是該隧道技術(shù)允許隧道主體存在任何類型和任意數(shù)量的NAT,它是一種新的IPv4互聯(lián)網(wǎng)向IPv6互聯(lián)網(wǎng)過渡時期的隧道技術(shù)。目的是為了使NAT域內(nèi)的IPv6/IPv4雙棧節(jié)點獲得全球端到端IPv6連接。利用該隧道技術(shù)NAT域內(nèi)的IPv6/IPv4雙棧節(jié)點將通過中間服務(wù)器和不在NAT域內(nèi)的IPv6節(jié)點進(jìn)行通信,對同為NAT域內(nèi)的IPv6/IPv4雙棧節(jié)點之間。
文檔編號H04Q3/545GK1525699SQ0315897
公開日2004年9月1日 申請日期2003年9月17日 優(yōu)先權(quán)日2003年9月17日
發(fā)明者吳賢國, 劉敏, 張?zhí)鞓? 石晶林, 李忠誠 申請人:中國科學(xué)院計算技術(shù)研究所