欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

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

文檔序號:7886575閱讀:1339來源:國知局
專利名稱:使用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ù)
目前大部分用戶上網(wǎng)都是通過路由器(router)撥號,用戶的電腦(PC)在路由器 (router)后,電腦(PC)使用私網(wǎng)地址。如圖1所示。當(dāng)PC需要訪問外部網(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ā)回來時(shí),路由器根據(jù)會話(session)記錄進(jìn)行匹配。匹配成功則將數(shù)據(jù)轉(zhuǎn)發(fā)到內(nèi)部相應(yīng)的 PC上。這樣的機(jī)制下,如果外部網(wǎng)絡(luò)想主動(dòng)訪問內(nèi)網(wǎng)的PC,會被路由器丟掉。因?yàn)榇藭r(shí)路由器內(nèi)部并沒有相應(yīng)的session記錄,路由器內(nèi)部防火墻一般會將這種沒有記錄的“不請自來”的數(shù)據(jù)包丟棄,保證內(nèi)部網(wǎng)絡(luò)的安全性。外部網(wǎng)絡(luò)需要主動(dòng)訪問路由器后面的一臺主機(jī)時(shí),一般有兩種方法解決。第一種方法是在路由器上手動(dòng)添加端口映射規(guī)則,將外部來的某種指定的數(shù)據(jù)轉(zhuǎn)到內(nèi)網(wǎng)指定的PC。這種方法需要修改路由器,需要對路由器有一定的了解才能配置。第二種方法即通常說的“打洞”,是利用了路由器中的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)穿透的方法,所述方法令第一終端能夠通過外部網(wǎng)絡(luò)主動(dòng)訪問內(nèi)網(wǎng)的第二終端,所述方法包括下述步驟所述第一終端發(fā)送請求至服務(wù)器,第一終端和服務(wù)器之間通過心跳機(jī)制長期保持此連接;所述第二終端發(fā)送IGMP報(bào)文,建組播域并歸入該組;本地建立UDP套接字,并在一端口上監(jiān)聽;所述第二終端經(jīng)過第二路由器發(fā)送消息至服務(wù)器,將組播域值和端口值發(fā)送至服務(wù)器,提出訪問所述第一終端的請求;服務(wù)器將訪問請求轉(zhuǎn)發(fā)給第一終端;第一終端將數(shù)據(jù)通過UDP的方式發(fā)送至第二路由器,目的地址為所述組播域值, 目的端口為所述端口值;第二路由器將數(shù)據(jù)轉(zhuǎn)發(fā)給第二終端。
另一方面,本發(fā)明提供一種內(nèi)網(wǎng)穿透系統(tǒng),至少包括依次連接的第一終端、服務(wù)器、第二路由器和第二終端,所述系統(tǒng)在使用上述方法后第二終端能夠通過所述服務(wù)器主動(dòng)訪問第一終端。本發(fā)明使用IGMP實(shí)現(xiàn)內(nèi)網(wǎng)穿透的方法中,IGMP使用組播地址傳輸,且IGMP不需要使用端口號,可以繞開Symmetric NAT轉(zhuǎn)換端口號的問題。實(shí)現(xiàn)了對包括Symmetric NAT 路由器系統(tǒng)在內(nèi)的多種系統(tǒng)的內(nèi)網(wǎng)穿透,效果良好。本發(fā)明內(nèi)網(wǎng)穿透系統(tǒng)通過網(wǎng)絡(luò)實(shí)現(xià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é)合說明書附圖和實(shí)施例對本發(fā)明做詳細(xì)描述。當(dāng)客戶端(例如PC)向互連網(wǎng)上一臺服務(wù)器A發(fā)送請求時(shí),路由器(router)為其分配一個(gè)session,并分配一個(gè)端口號。路由器記錄下本次session的源IP、源端口、目的 IP和目的端口。如果此時(shí)客戶端向另外一臺服務(wù)器B發(fā)送一個(gè)同樣的請求,路由器會為其再分配一個(gè)session。如果分配的端口號不變,此類型的NAT叫Cone NAT,如圖2所示。如果路由器為其分配了另外一個(gè)端口,此類型的NAT叫Symmetric NAT。在Cone NAT路由器的情況下可以通過“打洞”來實(shí)現(xiàn)一個(gè)客戶端通過外網(wǎng)主動(dòng)訪問另一個(gè)客戶端。這種“打洞”操作需要一個(gè)具有固定互連網(wǎng)IP地址的主機(jī)作為服務(wù)器, 即作為連接建立的中轉(zhuǎn)站。如圖3和圖4所示,“打洞”方法主要包括下述步驟l.PC A先發(fā)一個(gè)請求到服務(wù)器(server);經(jīng)過router A轉(zhuǎn)換后,源地址和端口改為50. 50. 50. 50:3000 ;server收到后將此信息保存下來,PC A和server之間通過心跳機(jī)制長期保持此連接,用來傳輸命令。2. PC B向服務(wù)器A發(fā)請求,查詢r(jià)outer A對外開放的端口。3. server記錄下PC B對外的IP地址和端口號40. 40. 40. 40 2000。同時(shí)向PC A 發(fā)送請求,要求PC A使用原來的socket向40. 40. 40. 40的2000端口發(fā)送請求。4. server 向 PC B 發(fā)送 PC A 的 IP 地址和端口 號 50. 50. 50. 50 3000。5. PC A向PC B發(fā)送請求,目的端口為2000。在router A中生成一個(gè)session,源 IP、源端口、目的 ip和目的端口分別為 50. 50. 50. 50:3000,40. 40. 40. 402000。對于Router B來講,此數(shù)據(jù)報(bào)沒有相應(yīng)的session匹配,將其丟棄。6. PC B向PC A的3000端口發(fā)起數(shù)據(jù)請求。7. PC B的請求到達(dá)routerA后,routerA查找session,發(fā)現(xiàn)可以匹配,將數(shù)據(jù)轉(zhuǎn)發(fā)到內(nèi)網(wǎng)PC A上,這樣一條數(shù)據(jù)鏈路就建立起來了。如果路由器使用的NAT是Symmetric NAT, “打洞”方法就不管用了,因?yàn)镽outer 做NAPT后端口是不固定的。雖然一般情況下是遞增的,但僅僅是一般情況,不能保證100% 正確。這一特點(diǎn)令應(yīng)用“打洞”方法易出現(xiàn)錯(cuò)誤。本發(fā)明使用IGMP實(shí)現(xiàn)內(nèi)網(wǎng)穿透的方法可以解決這一問題。IGMP使用組播地址傳輸。相比UDP,IGMP不需要使用端口號,可以繞開Symmetric NAT轉(zhuǎn)換端口號的問題。其原理和UDP的打洞技術(shù)類似,只是借用了組播地址。該方法令第二終端能夠通過外部網(wǎng)絡(luò)主動(dòng)訪問內(nèi)網(wǎng)的第一終端,無需滿足端口固定的要求。該方法包括下述步驟第一終端發(fā)送請求至服務(wù)器,第一終端和服務(wù)器之間通過心跳機(jī)制期保持此連接;第二終端發(fā)送IGMP報(bào)文,建組播域并歸入該組;本地建立UDP套接字,并在一端口上監(jiān)聽;第二終端經(jīng)過第二路由器發(fā)送消息至服務(wù)器,將組播域值和端口值發(fā)送至服務(wù)器,提出訪問第一終端的請求;服務(wù)器將訪問請求轉(zhuǎn)發(fā)給第一終端;第一終端將數(shù)據(jù)通過UDP的方式發(fā)送至第二路由器,目的地址為所述組播域值, 目的端口為所述端口值;第二路由器將數(shù)據(jù)轉(zhuǎn)發(fā)給第二終端。通過上述步驟,本發(fā)明使用IGMP實(shí)現(xiàn)內(nèi)網(wǎng)穿透的方法成功地實(shí)現(xiàn)了一終端通過外部網(wǎng)絡(luò)主動(dòng)訪問內(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è)請求到服務(wù)器(server),PC A和server之間通過心跳機(jī)制長期保持此連接,用來傳輸命令。2. PC B 發(fā)送一個(gè) IGMP report 報(bào)文,加入一個(gè)組:234. 5. 6. 7。3. PC B本地建立udp socket在12;34端口上監(jiān)聽,然后發(fā)送消息到server,通知 server自己加入組播域234. 5. 6. 7,并希望訪問PCA的數(shù)據(jù),自己使用1234端口接收。4. server將消息轉(zhuǎn)發(fā)給PC A。5. PC A將數(shù)據(jù)通過UDP的方式發(fā)送,目的地址為234. 5. 6. 7,目的端口為12;34。如果PC B也在路由器后,當(dāng)PC B發(fā)送IGMP r印ort報(bào)文時(shí),路由器會建立一個(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ù)后釋放端口,下次再請求數(shù)據(jù)時(shí)另外申請組播域和UDP端口,避免和公網(wǎng)上的其他組播服務(wù)沖突。本發(fā)明內(nèi)網(wǎng)穿透系統(tǒng)至少包括依次連接的第一終端、服務(wù)器、第二路由器和第二終端,該系統(tǒng)在使用上述方法后第二終端能夠通過所述服務(wù)器主動(dòng)訪問第一終端。上述使用IGMP實(shí)現(xiàn)內(nèi)網(wǎng)穿透的方法可以令本發(fā)明內(nèi)網(wǎng)穿透系統(tǒng)實(shí)現(xiàn)一終端通過外部網(wǎng)絡(luò)主動(dòng)訪問內(nèi)網(wǎng)的另一終端,解決了使用Symmetric NAT的系統(tǒng)無法主動(dòng)訪問的問
以上,僅為本發(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)穿透的方法,所述方法令第一終端能夠通過外部網(wǎng)絡(luò)主動(dòng)訪問內(nèi)網(wǎng)的第二終端,其特征在于,所述方法包括下述步驟所述第一終端發(fā)送請求至服務(wù)器,第一終端和服務(wù)器之間通過心跳機(jī)制保持此連接; 所述第二終端發(fā)送IGMP報(bào)文,建組播域并歸入該組;本地建立UDP套接字,并在一端口上監(jiān)聽;所述第二終端經(jīng)過第二路由器發(fā)送消息至服務(wù)器,將組播域值和端口值發(fā)送至服務(wù)器,提出訪問所述第一終端的請求;服務(wù)器將訪問請求轉(zhuǎn)發(fā)給第一終端;第一終端將數(shù)據(jù)通過UDP的方式發(fā)送至第二路由器,目的地址為所述組播域值,目的端口為所述端口值;第二路由器將數(shù)據(jù)轉(zhuǎn)發(fā)給第二終端。
2.—種內(nèi)網(wǎng)穿透系統(tǒng),至少包括依次連接的第一終端、服務(wù)器、第二路由器和第二終端,其特征在于所述系統(tǒng)在使用權(quán)1所述方法后第二終端能夠通過所述服務(wù)器主動(dòng)訪問第一終端。
全文摘要
本發(fā)明公開一種使用IGMP實(shí)現(xiàn)內(nèi)網(wǎng)穿透的方法,為解決使用SymmetricNAT的系統(tǒng)無法用一終端主動(dòng)訪問另一終端的缺陷而設(shè)計(jì)。該方法主要包括下述步驟第一終端發(fā)送請求至服務(wù)器,兩者之間保持連接;第二終端發(fā)送IGMP報(bào)文,建組播域并歸入該組,本地建立UDP套接字,并在一端口上監(jiān)聽;第二終端將組播域值和端口值發(fā)送至服務(wù)器,提出訪問請求;服務(wù)器將訪問請求轉(zhuǎn)發(fā)給第一終端;第一終端將數(shù)據(jù)發(fā)送至第二路由器,由其轉(zhuǎn)發(fā)給第二終端。本發(fā)明還公開了一種內(nèi)網(wǎng)穿透系統(tǒng),至少包括兩個(gè)終端、一個(gè)路由器和一服務(wù)器。本發(fā)明方法適用于用一終端主動(dòng)訪問另一終端的各種系統(tǒng),尤其是使用Symmetric NAT的系統(tǒng)。
文檔編號H04L29/06GK102420774SQ201210002998
公開日2012年4月18日 申請日期2012年1月6日 優(yōu)先權(quán)日2012年1月6日
發(fā)明者王金桂, 閆瑞軒 申請人:深圳市共進(jìn)電子股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1
南宁市| 宁安市| 黑山县| 九江县| 天津市| 桐乡市| 阳西县| 桃园县| 北流市| 苏尼特右旗| 达拉特旗| 基隆市| 宝坻区| 射阳县| 乌兰浩特市| 博兴县| 大同县| 清苑县| 昌江| 鲁甸县| 都昌县| 米易县| 和林格尔县| 含山县| 应城市| 凯里市| 海南省| 甘谷县| 宁德市| 噶尔县| 桑日县| 建水县| 江陵县| 嵊州市| 天台县| 盐池县| 交口县| 陵水| 衡东县| 富裕县| 沈阳市|