麻豆精品无码国产在线播放,国产亚洲精品成人AA片新蒲金,国模无码大尺度一区二区三区,神马免费午夜福利剧场

使用igmp實(shí)現(xiàn)內(nèi)網(wǎng)穿透的方法和內(nèi)網(wǎng)穿透系統(tǒng)的制作方法

文檔序號(hào):7886575閱讀:1369來(lái)源:國(guó)知局
專(zhuān)利名稱(chēng):使用igmp實(shí)現(xiàn)內(nèi)網(wǎng)穿透的方法和內(nèi)網(wǎng)穿透系統(tǒng)的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種使用IGMP實(shí)現(xiàn)內(nèi)網(wǎng)穿透的方法和內(nèi)網(wǎng)穿透系統(tǒng)。
背景技術(shù)
目前大部分用戶(hù)上網(wǎng)都是通過(guò)路由器(router)撥號(hào),用戶(hù)的電腦(PC)在路由器 (router)后,電腦(PC)使用私網(wǎng)地址。如圖1所示。當(dāng)PC需要訪(fǎng)問(wèn)外部網(wǎng)絡(luò)時(shí),路由器將PC的ip(網(wǎng)絡(luò)之間互連的協(xié)議)地址進(jìn)行 NAPT(Network Address Port Translation)轉(zhuǎn)換為公網(wǎng)的地址,并為此記錄一個(gè)session, 記錄了數(shù)據(jù)的源地址、源端口、目的地址和目的端口等信息。此后,當(dāng)外部網(wǎng)絡(luò)相應(yīng)數(shù)據(jù)發(fā)回來(lái)時(shí),路由器根據(jù)會(huì)話(huà)(session)記錄進(jìn)行匹配。匹配成功則將數(shù)據(jù)轉(zhuǎn)發(fā)到內(nèi)部相應(yīng)的 PC上。這樣的機(jī)制下,如果外部網(wǎng)絡(luò)想主動(dòng)訪(fǎng)問(wèn)內(nèi)網(wǎng)的PC,會(huì)被路由器丟掉。因?yàn)榇藭r(shí)路由器內(nèi)部并沒(méi)有相應(yīng)的session記錄,路由器內(nèi)部防火墻一般會(huì)將這種沒(méi)有記錄的“不請(qǐng)自來(lái)”的數(shù)據(jù)包丟棄,保證內(nèi)部網(wǎng)絡(luò)的安全性。外部網(wǎng)絡(luò)需要主動(dòng)訪(fǎng)問(wèn)路由器后面的一臺(tái)主機(jī)時(shí),一般有兩種方法解決。第一種方法是在路由器上手動(dòng)添加端口映射規(guī)則,將外部來(lái)的某種指定的數(shù)據(jù)轉(zhuǎn)到內(nèi)網(wǎng)指定的PC。這種方法需要修改路由器,需要對(duì)路由器有一定的了解才能配置。第二種方法即通常說(shuō)的“打洞”,是利用了路由器中的NAPT機(jī)制。使用這種“打洞” 的方法要求路由器使用的NAT是Cone NAT。如果路由器使用的NAT是Symmetric NAT,這種“打洞”方法就不管用了。

發(fā)明內(nèi)容
為了克服上述的缺陷,本發(fā)明提供一種可用于Symmetric NAT路由器的使用IGMP 實(shí)現(xiàn)內(nèi)網(wǎng)穿透的方法。為達(dá)到上述目的,一方面,本發(fā)明提供一種使用IGMP實(shí)現(xiàn)內(nèi)網(wǎng)穿透的方法,所述方法令第一終端能夠通過(guò)外部網(wǎng)絡(luò)主動(dòng)訪(fǎng)問(wèn)內(nèi)網(wǎng)的第二終端,所述方法包括下述步驟所述第一終端發(fā)送請(qǐng)求至服務(wù)器,第一終端和服務(wù)器之間通過(guò)心跳機(jī)制長(zhǎng)期保持此連接;所述第二終端發(fā)送IGMP報(bào)文,建組播域并歸入該組;本地建立UDP套接字,并在一端口上監(jiān)聽(tīng);所述第二終端經(jīng)過(guò)第二路由器發(fā)送消息至服務(wù)器,將組播域值和端口值發(fā)送至服務(wù)器,提出訪(fǎng)問(wèn)所述第一終端的請(qǐng)求;服務(wù)器將訪(fǎng)問(wèn)請(qǐng)求轉(zhuǎn)發(fā)給第一終端;第一終端將數(shù)據(jù)通過(guò)UDP的方式發(fā)送至第二路由器,目的地址為所述組播域值, 目的端口為所述端口值;第二路由器將數(shù)據(jù)轉(zhuǎn)發(fā)給第二終端。
另一方面,本發(fā)明提供一種內(nèi)網(wǎng)穿透系統(tǒng),至少包括依次連接的第一終端、服務(wù)器、第二路由器和第二終端,所述系統(tǒng)在使用上述方法后第二終端能夠通過(guò)所述服務(wù)器主動(dòng)訪(fǎng)問(wèn)第一終端。本發(fā)明使用IGMP實(shí)現(xiàn)內(nèi)網(wǎng)穿透的方法中,IGMP使用組播地址傳輸,且IGMP不需要使用端口號(hào),可以繞開(kāi)Symmetric NAT轉(zhuǎn)換端口號(hào)的問(wèn)題。實(shí)現(xiàn)了對(duì)包括Symmetric NAT 路由器系統(tǒng)在內(nèi)的多種系統(tǒng)的內(nèi)網(wǎng)穿透,效果良好。本發(fā)明內(nèi)網(wǎng)穿透系統(tǒng)通過(guò)網(wǎng)絡(luò)實(shí)現(xiàn)一終端訪(fǎng)問(wèn)另一終端,使用IGMP實(shí)現(xiàn)了內(nèi)網(wǎng)穿透。結(jié)構(gòu)合理,使用方便,性能良好。


圖1為現(xiàn)有PC上網(wǎng)的原理示意圖。圖2為Cone NAT的工作原理示意圖。圖3 “打洞”的工作原理示意圖。圖4圖3所示“打洞”的步驟示意圖。圖5本發(fā)明使用IGMP實(shí)現(xiàn)內(nèi)網(wǎng)穿透的方法的步驟示意圖。
具體實(shí)施例方式下面結(jié)合說(shuō)明書(shū)附圖和實(shí)施例對(duì)本發(fā)明做詳細(xì)描述。當(dāng)客戶(hù)端(例如PC)向互連網(wǎng)上一臺(tái)服務(wù)器A發(fā)送請(qǐng)求時(shí),路由器(router)為其分配一個(gè)session,并分配一個(gè)端口號(hào)。路由器記錄下本次session的源IP、源端口、目的 IP和目的端口。如果此時(shí)客戶(hù)端向另外一臺(tái)服務(wù)器B發(fā)送一個(gè)同樣的請(qǐng)求,路由器會(huì)為其再分配一個(gè)session。如果分配的端口號(hào)不變,此類(lèi)型的NAT叫Cone NAT,如圖2所示。如果路由器為其分配了另外一個(gè)端口,此類(lèi)型的NAT叫Symmetric NAT。在Cone NAT路由器的情況下可以通過(guò)“打洞”來(lái)實(shí)現(xiàn)一個(gè)客戶(hù)端通過(guò)外網(wǎng)主動(dòng)訪(fǎng)問(wèn)另一個(gè)客戶(hù)端。這種“打洞”操作需要一個(gè)具有固定互連網(wǎng)IP地址的主機(jī)作為服務(wù)器, 即作為連接建立的中轉(zhuǎn)站。如圖3和圖4所示,“打洞”方法主要包括下述步驟l.PC A先發(fā)一個(gè)請(qǐng)求到服務(wù)器(server);經(jīng)過(guò)router A轉(zhuǎn)換后,源地址和端口改為50. 50. 50. 50:3000 ;server收到后將此信息保存下來(lái),PC A和server之間通過(guò)心跳機(jī)制長(zhǎng)期保持此連接,用來(lái)傳輸命令。2. PC B向服務(wù)器A發(fā)請(qǐng)求,查詢(xún)r(jià)outer A對(duì)外開(kāi)放的端口。3. server記錄下PC B對(duì)外的IP地址和端口號(hào)40. 40. 40. 40 2000。同時(shí)向PC A 發(fā)送請(qǐng)求,要求PC A使用原來(lái)的socket向40. 40. 40. 40的2000端口發(fā)送請(qǐng)求。4. server 向 PC B 發(fā)送 PC A 的 IP 地址和端口 號(hào) 50. 50. 50. 50 3000。5. PC A向PC B發(fā)送請(qǐng)求,目的端口為2000。在router A中生成一個(gè)session,源 IP、源端口、目的 ip和目的端口分別為 50. 50. 50. 50:3000,40. 40. 40. 402000。對(duì)于Router B來(lái)講,此數(shù)據(jù)報(bào)沒(méi)有相應(yīng)的session匹配,將其丟棄。6. PC B向PC A的3000端口發(fā)起數(shù)據(jù)請(qǐng)求。7. PC B的請(qǐng)求到達(dá)routerA后,routerA查找session,發(fā)現(xiàn)可以匹配,將數(shù)據(jù)轉(zhuǎn)發(fā)到內(nèi)網(wǎng)PC A上,這樣一條數(shù)據(jù)鏈路就建立起來(lái)了。如果路由器使用的NAT是Symmetric NAT, “打洞”方法就不管用了,因?yàn)镽outer 做NAPT后端口是不固定的。雖然一般情況下是遞增的,但僅僅是一般情況,不能保證100% 正確。這一特點(diǎn)令應(yīng)用“打洞”方法易出現(xiàn)錯(cuò)誤。本發(fā)明使用IGMP實(shí)現(xiàn)內(nèi)網(wǎng)穿透的方法可以解決這一問(wèn)題。IGMP使用組播地址傳輸。相比UDP,IGMP不需要使用端口號(hào),可以繞開(kāi)Symmetric NAT轉(zhuǎn)換端口號(hào)的問(wèn)題。其原理和UDP的打洞技術(shù)類(lèi)似,只是借用了組播地址。該方法令第二終端能夠通過(guò)外部網(wǎng)絡(luò)主動(dòng)訪(fǎng)問(wèn)內(nèi)網(wǎng)的第一終端,無(wú)需滿(mǎn)足端口固定的要求。該方法包括下述步驟第一終端發(fā)送請(qǐng)求至服務(wù)器,第一終端和服務(wù)器之間通過(guò)心跳機(jī)制期保持此連接;第二終端發(fā)送IGMP報(bào)文,建組播域并歸入該組;本地建立UDP套接字,并在一端口上監(jiān)聽(tīng);第二終端經(jīng)過(guò)第二路由器發(fā)送消息至服務(wù)器,將組播域值和端口值發(fā)送至服務(wù)器,提出訪(fǎng)問(wèn)第一終端的請(qǐng)求;服務(wù)器將訪(fǎng)問(wèn)請(qǐng)求轉(zhuǎn)發(fā)給第一終端;第一終端將數(shù)據(jù)通過(guò)UDP的方式發(fā)送至第二路由器,目的地址為所述組播域值, 目的端口為所述端口值;第二路由器將數(shù)據(jù)轉(zhuǎn)發(fā)給第二終端。通過(guò)上述步驟,本發(fā)明使用IGMP實(shí)現(xiàn)內(nèi)網(wǎng)穿透的方法成功地實(shí)現(xiàn)了一終端通過(guò)外部網(wǎng)絡(luò)主動(dòng)訪(fǎng)問(wèn)內(nèi)網(wǎng)的另一終端。而且不限于使用的為何種NAT,C0neNAT和Symmetric NAT均可。適用性更廣,性能更好。優(yōu)選實(shí)施例如圖5所示,使用IGMP實(shí)現(xiàn)內(nèi)網(wǎng)穿透的方法的步驟為1. PC A首先先發(fā)一個(gè)請(qǐng)求到服務(wù)器(server),PC A和server之間通過(guò)心跳機(jī)制長(zhǎng)期保持此連接,用來(lái)傳輸命令。2. PC B 發(fā)送一個(gè) IGMP report 報(bào)文,加入一個(gè)組:234. 5. 6. 7。3. PC B本地建立udp socket在12;34端口上監(jiān)聽(tīng),然后發(fā)送消息到server,通知 server自己加入組播域234. 5. 6. 7,并希望訪(fǎng)問(wèn)PCA的數(shù)據(jù),自己使用1234端口接收。4. server將消息轉(zhuǎn)發(fā)給PC A。5. PC A將數(shù)據(jù)通過(guò)UDP的方式發(fā)送,目的地址為234. 5. 6. 7,目的端口為12;34。如果PC B也在路由器后,當(dāng)PC B發(fā)送IGMP r印ort報(bào)文時(shí),路由器會(huì)建立一個(gè)規(guī)則允許目的IP為234. 5. 6. 7的包進(jìn)入,并轉(zhuǎn)發(fā)給PC B。這樣PC B就可以接收到PC A的數(shù)據(jù)了。此方法中UDP端口可以隨機(jī)產(chǎn)生,每次傳完數(shù)據(jù)后釋放端口,下次再請(qǐng)求數(shù)據(jù)時(shí)另外申請(qǐng)組播域和UDP端口,避免和公網(wǎng)上的其他組播服務(wù)沖突。本發(fā)明內(nèi)網(wǎng)穿透系統(tǒng)至少包括依次連接的第一終端、服務(wù)器、第二路由器和第二終端,該系統(tǒng)在使用上述方法后第二終端能夠通過(guò)所述服務(wù)器主動(dòng)訪(fǎng)問(wèn)第一終端。上述使用IGMP實(shí)現(xiàn)內(nèi)網(wǎng)穿透的方法可以令本發(fā)明內(nèi)網(wǎng)穿透系統(tǒng)實(shí)現(xiàn)一終端通過(guò)外部網(wǎng)絡(luò)主動(dòng)訪(fǎng)問(wèn)內(nèi)網(wǎng)的另一終端,解決了使用Symmetric NAT的系統(tǒng)無(wú)法主動(dòng)訪(fǎng)問(wèn)的問(wèn)
以上,僅為本發(fā)明的較佳實(shí)施例,但本發(fā)明的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍之內(nèi)。因此,本發(fā)明的保護(hù)范圍應(yīng)該以權(quán)利要求所界定的保護(hù)范圍為準(zhǔn)。
權(quán)利要求
1.一種使用IGMP實(shí)現(xiàn)內(nèi)網(wǎng)穿透的方法,所述方法令第一終端能夠通過(guò)外部網(wǎng)絡(luò)主動(dòng)訪(fǎng)問(wèn)內(nèi)網(wǎng)的第二終端,其特征在于,所述方法包括下述步驟所述第一終端發(fā)送請(qǐng)求至服務(wù)器,第一終端和服務(wù)器之間通過(guò)心跳機(jī)制保持此連接; 所述第二終端發(fā)送IGMP報(bào)文,建組播域并歸入該組;本地建立UDP套接字,并在一端口上監(jiān)聽(tīng);所述第二終端經(jīng)過(guò)第二路由器發(fā)送消息至服務(wù)器,將組播域值和端口值發(fā)送至服務(wù)器,提出訪(fǎng)問(wèn)所述第一終端的請(qǐng)求;服務(wù)器將訪(fǎng)問(wèn)請(qǐng)求轉(zhuǎn)發(fā)給第一終端;第一終端將數(shù)據(jù)通過(guò)UDP的方式發(fā)送至第二路由器,目的地址為所述組播域值,目的端口為所述端口值;第二路由器將數(shù)據(jù)轉(zhuǎn)發(fā)給第二終端。
2.—種內(nèi)網(wǎng)穿透系統(tǒng),至少包括依次連接的第一終端、服務(wù)器、第二路由器和第二終端,其特征在于所述系統(tǒng)在使用權(quán)1所述方法后第二終端能夠通過(guò)所述服務(wù)器主動(dòng)訪(fǎng)問(wèn)第一終端。
全文摘要
本發(fā)明公開(kāi)一種使用IGMP實(shí)現(xiàn)內(nèi)網(wǎng)穿透的方法,為解決使用SymmetricNAT的系統(tǒng)無(wú)法用一終端主動(dòng)訪(fǎng)問(wèn)另一終端的缺陷而設(shè)計(jì)。該方法主要包括下述步驟第一終端發(fā)送請(qǐng)求至服務(wù)器,兩者之間保持連接;第二終端發(fā)送IGMP報(bào)文,建組播域并歸入該組,本地建立UDP套接字,并在一端口上監(jiān)聽(tīng);第二終端將組播域值和端口值發(fā)送至服務(wù)器,提出訪(fǎng)問(wèn)請(qǐng)求;服務(wù)器將訪(fǎng)問(wèn)請(qǐng)求轉(zhuǎn)發(fā)給第一終端;第一終端將數(shù)據(jù)發(fā)送至第二路由器,由其轉(zhuǎn)發(fā)給第二終端。本發(fā)明還公開(kāi)了一種內(nèi)網(wǎng)穿透系統(tǒng),至少包括兩個(gè)終端、一個(gè)路由器和一服務(wù)器。本發(fā)明方法適用于用一終端主動(dòng)訪(fǎng)問(wèn)另一終端的各種系統(tǒng),尤其是使用Symmetric NAT的系統(tǒng)。
文檔編號(hào)H04L29/06GK102420774SQ201210002998
公開(kāi)日2012年4月18日 申請(qǐng)日期2012年1月6日 優(yōu)先權(quán)日2012年1月6日
發(fā)明者王金桂, 閆瑞軒 申請(qǐng)人:深圳市共進(jìn)電子股份有限公司
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
主站蜘蛛池模板: 阳原县| 福建省| 隆回县| 衡山县| 赤水市| 连江县| 金门县| 扬州市| 绥棱县| 嘉黎县| 芦山县| 武陟县| 新乡县| 神池县| 岱山县| 临漳县| 曲水县| 宿迁市| 奉新县| 集安市| 临夏市| 丽江市| 诏安县| 贵南县| 阳春市| 嵊泗县| 广丰县| 德庆县| 曲水县| 临洮县| 辉南县| 定陶县| 京山县| 农安县| 临沧市| 清苑县| 彭州市| 清徐县| 曲阜市| 博野县| 威海市|