[發(fā)明專利]一種基于泊松模型的遞增型對稱NAT的UDP穿透方法與系統(tǒng)有效
| 申請?zhí)枺?/td> | 201810908823.2 | 申請日: | 2018-08-10 |
| 公開(公告)號: | CN109120737B | 公開(公告)日: | 2021-08-31 |
| 發(fā)明(設(shè)計)人: | 黃嘉煜;王巍;劉揚;王佰玲;傅春樂;何清剛 | 申請(專利權(quán))人: | 哈爾濱工業(yè)大學(xué)(威海) |
| 主分類號: | H04L29/12 | 分類號: | H04L29/12;H04L12/24;H04L29/08 |
| 代理公司: | 濟南舜昊專利代理事務(wù)所(特殊普通合伙) 37249 | 代理人: | 李舜江 |
| 地址: | 264209 山東省威海市哈*** | 國省代碼: | 山東;37 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 基于 模型 遞增 對稱 nat udp 穿透 方法 系統(tǒng) | ||
1.一種基于泊松模型的遞增型對稱NAT的UDP穿透方法,其特征在于,
方法采用基于泊松模型的遞增型對稱NAT的UDP穿透系統(tǒng),系統(tǒng)包括:數(shù)據(jù)庫,服務(wù)器以及分別與服務(wù)器通信連接的至少兩個客戶端;
客戶端包括:注冊模塊,NAT穿透模塊以及數(shù)據(jù)傳輸模塊;
服務(wù)器包括:通信模塊,采集分析訓(xùn)練模塊以及預(yù)測模塊;
采集分析訓(xùn)練模塊包括:分類器,端口敏感型數(shù)據(jù)采集模塊,地址敏感型數(shù)據(jù)采集模塊,數(shù)據(jù)分析模塊以及訓(xùn)練數(shù)據(jù)模塊;
預(yù)測模塊包括:網(wǎng)絡(luò)狀態(tài)模擬模塊以及端口預(yù)測模塊;
數(shù)據(jù)傳輸模塊用于客戶端之間的數(shù)據(jù)傳輸;
方法包括:
第一步,客戶端A的注冊模塊向服務(wù)器的通信模塊的兩個不同端口發(fā)送注冊數(shù)據(jù)包;服務(wù)器的通信模塊以七元組的形式存儲注冊數(shù)據(jù)包映射信息至數(shù)據(jù)庫的NAT端口分配數(shù)據(jù)表,返回注冊成功數(shù)據(jù)包至客戶端A的注冊模塊,通知客戶端A與服務(wù)器的連接建立成功;七元組為time,local_ip,local_port,dest_ip,dest_port,mapped_ip,mapped_port的形式;
第二步,服務(wù)器通信模塊根據(jù)NAT A公網(wǎng)IP查詢數(shù)據(jù)庫的NAT信息表,若無記錄,則進入第三步;
第三步,分類器以客戶端A的本地地址和NAT A的公網(wǎng)IP作為local_addr、mapped_ip字段查詢數(shù)據(jù)庫的NAT端口分配信息表;若mapped_port不同,則進入第四步;若mapped_port相同,則進入第五步;
第四步,端口敏感型數(shù)據(jù)采集模塊命令客戶端A的注冊模塊在t1=iT,t2=iT+ε,i=1,2,3,…,ε10ms向服務(wù)器的不同端口發(fā)送UDP數(shù)據(jù)采集包,經(jīng)過預(yù)設(shè)時長后進入第六步;T為端口老化時間,T≥3min;
第五步,地址敏感型數(shù)據(jù)采集模塊命令客戶端A的注冊模塊在t1=iT,t2=iT+ε,i=1,2,3,…,ε10ms向服務(wù)器的不同端口發(fā)送UDP數(shù)據(jù)采集包,經(jīng)過預(yù)設(shè)時長后進入第六步;T為端口老化時間,T≥3min;
第六步,數(shù)據(jù)分析模塊查詢、分析數(shù)據(jù)庫的NAT端口分配數(shù)據(jù)表,以NAT A公網(wǎng)IP作為mapped_ip字段提取出所有相關(guān)記錄,按時間順序排列;計算時間間隔△t10ms的相鄰端口差值,得到集合{p1,p2,p3,…};計算時間間隔為T的相鄰端口差值,得到集合{x1,x2,x3,…};將兩個差值集合發(fā)送至訓(xùn)練數(shù)據(jù)模塊;
第七步,訓(xùn)練數(shù)據(jù)模塊接收來自數(shù)據(jù)分析模塊的數(shù)據(jù),使用平均值法計算出Δp的估計量,取正整數(shù);將差值集合{x1,x2,x3,…}依次除以得到集合{y1,y2,y3,…};使用公式,
變量n代入{y1,y2,y3,…},t取時間T,得到概率集合{f1,f2,f3,…};采用極大似然算法,計算出λ的估計量和存儲至數(shù)據(jù)庫的NAT信息表;
第八步,客戶端A請求建立與客戶端B的P2P連接,向服務(wù)器的通信模塊發(fā)送P2P請求數(shù)據(jù)包;通信模塊記錄P2P請求數(shù)據(jù)包接收時刻tA以及NAT A分配的端口號mPORTA,以客戶端B的本地地址作為local_ip字段查詢數(shù)據(jù)庫的NAT端口分配數(shù)據(jù)表,獲取NAT B的公網(wǎng)IP、最近一次分配端口mPORTB以及時間tB;發(fā)送NAT A、NAT B的映射地址與時刻tA、tB至網(wǎng)絡(luò)狀態(tài)模擬模塊;
第九步,網(wǎng)絡(luò)狀態(tài)模擬模塊接收來自通信模塊的數(shù)據(jù),根據(jù)NAT A、NAT B的公網(wǎng)IP查詢數(shù)據(jù)庫的NAT信息表,通過步驟六和步驟七獲取NAT B的λ;以及獲取NAT A的λ;記錄現(xiàn)在時刻t1,使用公式
模擬出[tA,t1]內(nèi)NAT A內(nèi)網(wǎng)對于外網(wǎng)的訪問數(shù)XA,以及[tB,t1]時間內(nèi)NAT B內(nèi)網(wǎng)對于外網(wǎng)的訪問數(shù)XB;發(fā)送客戶端A的mPORTA、客戶端B的mPORTB、XA、XB以及NAT A的和NAT B的至端口預(yù)測模塊;
第十步,端口預(yù)測模塊接收來自網(wǎng)絡(luò)狀態(tài)模擬模塊的數(shù)據(jù),根據(jù)公式prePORT=mPORT+Δp(1+X),分別計算出客戶端A的預(yù)測端口值和客戶端B的預(yù)測端口值,發(fā)送至通信模塊;
第十一步,通信模塊將客戶端A、客戶端B的預(yù)測端口值分別發(fā)送至客戶端B的NAT穿透模塊和客戶端A的NAT穿透模塊;客戶端A的NAT穿透模塊和客戶端B的NAT穿透模塊分別向客戶端B的預(yù)測端口值以及附近范圍,客戶端A的預(yù)測端口值以及附近范圍發(fā)送多個UDP猜詢包;若客戶端A和客戶端B均接收到UDP猜詢包,則穿透成功,將穿透映射信息存儲在數(shù)據(jù)庫的NAT端口分配數(shù)據(jù)表中。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于哈爾濱工業(yè)大學(xué)(威海),未經(jīng)哈爾濱工業(yè)大學(xué)(威海)許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201810908823.2/1.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。





