日韩成人黄色,透逼一级毛片,狠狠躁天天躁中文字幕,久久久久久亚洲精品不卡,在线看国产美女毛片2019,黄片www.www,一级黄色毛a视频直播

基于stun協(xié)議的udp老化時間檢測系統(tǒng)及方法

文檔序號:7823468閱讀:1029來源:國知局
基于stun協(xié)議的udp老化時間檢測系統(tǒng)及方法
【專利摘要】本發(fā)明提供一種基于STUN協(xié)議的UDP老化時間檢測系統(tǒng)及方法,該方法包括:由第一套接口按照一鏈路檢測時間而發(fā)送第一鏈路測試請求包至STUN伺服端,由STUN伺服端向第一套接口回復(fù)第一鏈路測試響應(yīng)包并更新鏈路信息;由第二套接口發(fā)送第二鏈路測試請求包至STUN伺服端,由STUN伺服端回復(fù)第二鏈路測試響應(yīng)包至第一套接口;選定其他鏈路檢測時間,重復(fù)檢測;最后由第一套接口根據(jù)第二鏈路測試響應(yīng)包的接收狀態(tài)而確定STUN客戶端與STUN伺服端之間通信鏈路的UDP老化時間。本發(fā)明可簡便且準(zhǔn)確確定出通信鏈路的UDP老化時間,從而可根據(jù)UDP老化時間來決定STUN客戶端發(fā)送數(shù)據(jù)包的頻率,增強(qiáng)數(shù)據(jù)傳輸?shù)目煽啃浴?br> 【專利說明】基于STUN協(xié)議的UDP老化時間檢測系統(tǒng)及方法

【技術(shù)領(lǐng)域】
[0001 ] 本發(fā)明屬于信息【技術(shù)領(lǐng)域】,特別是涉及一種基于STUN協(xié)議的UDP老化時間檢測系統(tǒng)及方法。

【背景技術(shù)】
[0002]隨著網(wǎng)絡(luò)的發(fā)展,網(wǎng)絡(luò)的規(guī)模在不斷擴(kuò)大,網(wǎng)絡(luò)用戶的數(shù)量也在不斷增加,然而由于歷史原因以及IPV4網(wǎng)絡(luò)地址的局限性,網(wǎng)絡(luò)地址資源十分有限。為了緩解網(wǎng)絡(luò)地址耗盡的問題,在IPV4地址中定義了私網(wǎng)IP地址段,可以用于構(gòu)建私有網(wǎng)絡(luò),比如公司、企業(yè)內(nèi)部網(wǎng)絡(luò),但是這些私網(wǎng)IP地址只能在局域網(wǎng)內(nèi)部使用,無法在外部網(wǎng)絡(luò)(Internet)上使用。所以為了使私網(wǎng)主機(jī)能夠訪問外部網(wǎng)絡(luò)上的主機(jī)/服務(wù)器,在私網(wǎng)出口處部署NAT (Network Address Translat1n,網(wǎng)絡(luò)地址轉(zhuǎn)換)設(shè)備,將私網(wǎng)IP地址轉(zhuǎn)換為公網(wǎng)IP地址,以便私網(wǎng)主機(jī)能夠在公網(wǎng)上使用。
[0003]在目前網(wǎng)絡(luò)中已經(jīng)存在大量的NAT設(shè)備來實(shí)現(xiàn)私網(wǎng)地址和公網(wǎng)地址的轉(zhuǎn)換,但是NAT技術(shù)的采用破壞了 IP網(wǎng)絡(luò)的端到端可訪問的特性。在一個部署了 NAT網(wǎng)關(guān)的網(wǎng)絡(luò)中,要從NAT網(wǎng)關(guān)外部(公網(wǎng)側(cè))主動發(fā)起到NAT網(wǎng)關(guān)內(nèi)部(私網(wǎng)側(cè))的訪問是非常困難的。
[0004]目前有很多技術(shù)來實(shí)現(xiàn)NAT網(wǎng)關(guān)的穿越,以保證一個應(yīng)用可以從NAT網(wǎng)關(guān)外部主動訪問到 NAT 網(wǎng)關(guān)內(nèi)部。STUN(Simple Traversal of User Datagram Protocol ThroughNetwork Address Translators,UDP流協(xié)議穿透NAT的協(xié)議)技術(shù)是其中一種比較成功的技術(shù),其原理如圖1所示。STUN的關(guān)鍵技術(shù)思想就是由NAT網(wǎng)關(guān)內(nèi)部的私網(wǎng)主機(jī),在NAT網(wǎng)關(guān)上預(yù)先建立一個sess1n (會話)信息,并將sess1n信息通告給STUN服務(wù)器。外部主機(jī)如果希望發(fā)起與內(nèi)部主機(jī)的通信,需要先從STUN服務(wù)器上查詢到內(nèi)部主機(jī)注冊在NAT網(wǎng)關(guān)上的sess1n信息,即內(nèi)部主機(jī)的私網(wǎng)地址和端口與外部主機(jī)的公網(wǎng)地址和端口的對應(yīng)關(guān)系,通過查詢到的公網(wǎng)地址和端口,向NAT網(wǎng)關(guān)發(fā)起訪問,由NAT網(wǎng)關(guān)根據(jù)對應(yīng)關(guān)系進(jìn)行轉(zhuǎn)換,才能向NAT內(nèi)部主機(jī)發(fā)起訪問,在外部主機(jī)和內(nèi)部主機(jī)之間建立UDP(UDP:UserDatagram Protocol,用戶數(shù)據(jù)包協(xié)議)通信。
[0005]由于NAT網(wǎng)關(guān)上sess1n信息有一定的老化時間,當(dāng)一個sess1n信息表項(xiàng)達(dá)到老化時間(在老化時間內(nèi)沒有使用該sess1n表項(xiàng)來進(jìn)行報文的轉(zhuǎn)發(fā)),該sess1n表項(xiàng)將被刪除。為了保證sess1n信息的有效性,作為STUN客戶端的內(nèi)部主機(jī)需要不斷發(fā)送保活(KEEP ALIVE)報文給STUN服務(wù)器,該報文定時通過NAT網(wǎng)關(guān),以維持sess1n信息不老化。?;顖笪氖且环NIP報文,該報文定時通過NAT網(wǎng)關(guān),以維持sess1n信息不老化。在現(xiàn)實(shí)網(wǎng)絡(luò)中存在大量NAT主機(jī),這些主機(jī)的?;顖笪膶⒔oSTUN服務(wù)器帶來巨大的性能壓力。
[0006]在一實(shí)際應(yīng)用中,當(dāng)該STUN客戶端為WiFi智能插座或智能路由器的情況下,STUN客戶端(也即WiFi智能插座或智能路由器)則需要向STUN服務(wù)器周期性發(fā)送UDP心跳包,而在向STUN服務(wù)器周期性發(fā)送UDP心跳包的過程中會經(jīng)過一個甚至多個NAT設(shè)備,而每個NAT設(shè)備的UDP老化時間都不一致,且STUN客戶端無法事先預(yù)知。如果以一個比較小的心跳發(fā)包,比如20s,可能占用過多的帶寬導(dǎo)致帶寬的浪費(fèi),如果以一個比較大的心跳發(fā)包,即超過整個鏈路上最小的UDP老化時間,那么在此期間如果有數(shù)據(jù)包通過此鏈路發(fā)送到客戶端時,數(shù)據(jù)包將到達(dá)不了 STUN客戶端,從而使通信失敗。


【發(fā)明內(nèi)容】

[0007]本發(fā)明的目的在于提供一種基于STUN協(xié)議的UDP老化時間檢測系統(tǒng)及方法,以解決現(xiàn)有技術(shù)由于不能確定UDP老化時間而致通信失敗等問題。
[0008]本發(fā)明提供一種一種基于STUN協(xié)議的UDP老化時間檢測系統(tǒng),其特征在于,包括:NAT網(wǎng)關(guān)、通過所述NAT網(wǎng)關(guān)而通信連接的STUN伺服端和STUN客戶端,其中,所述STUN客戶端配置有相互通信連接的第一套接口和第二套接口 ;所述第一套接口,用于按照一鏈路檢測時間組中的一鏈路檢測時間而發(fā)送第一鏈路測試請求包至所述STUN伺服端,以令所述STUN伺服端根據(jù)所述第一鏈路測試請求包而向所述第一套接口回復(fù)第一鏈路測試響應(yīng)包并將鏈路信息更新為所述第一套接口的鏈路數(shù)據(jù);所述第二套接口,用于根據(jù)所述鏈路檢測時間而發(fā)送第二鏈路測試請求包至所述STUN伺服端,以令所述STUN伺服端根據(jù)所述第二鏈路測試請求包和記錄的所述鏈路信息而回復(fù)第二鏈路測試響應(yīng)包至與所述鏈路信息對應(yīng)的所述第一套接口,由所述第一套接口根據(jù)所述第二鏈路測試響應(yīng)包的接收狀態(tài)而確定所述STUN客戶端與所述STUN伺服端之間通信鏈路的UDP老化時間。
[0009]可選地,所述第二套接口還包括發(fā)送鏈路保持請求包至所述STUN伺服端,令所述STUN伺服端根據(jù)所述鏈路保持請求包而回復(fù)鏈路保持響應(yīng)包至所述第二套接口,以令所述STUN客戶端與所述STUN伺服端之間通信鏈路保持暢通。
[0010]可選地,所述UDP老化時間檢測系統(tǒng)還包括時間設(shè)置單元,用于設(shè)置所述鏈路檢測時間組中的各個鏈路檢測時間。
[0011]可選地,所述第二套接口根據(jù)所述鏈路檢測時間而發(fā)送第二鏈路測試請求包至所述STUN伺服端中的所述鏈路檢測時間是由所述第一套接口發(fā)送至所述第二套接口而獲得的。
[0012]可選地,所述UDP老化時間檢測系統(tǒng)還包括定時單元,所述定時單元中的設(shè)定時間為所述鏈路檢測時間;所述第二套接口,用于根據(jù)所述鏈路檢測時間而發(fā)送第二鏈路測試請求包至所述STUN伺服端,包括:所述第二套接口接收到來自所述第一套接口所發(fā)送的所述鏈路檢測時間,將所述鏈路檢測時間作為所述定時單元的設(shè)定時間并啟動所述定時單元,在設(shè)定時間結(jié)束之后,由所述第二套接口向所述STUN伺服端發(fā)送第二鏈路測試請求包。
[0013]本發(fā)明另提供一種基于STUN協(xié)議的UDP老化時間檢測方法,包括:
[0014]I)由第一套接口按照一鏈路檢測時間組中的一鏈路檢測時間而發(fā)送第一鏈路測試請求包至STUN伺服端,由所述STUN伺服端根據(jù)所述第一鏈路測試請求包而向所述第一套接口回復(fù)第一鏈路測試響應(yīng)包并將鏈路信息更新為所述第一套接口的鏈路數(shù)據(jù);
[0015]2)由第二套接口根據(jù)所述鏈路檢測時間而發(fā)送第二鏈路測試請求包至所述STUN伺服端,由所述STUN伺服端根據(jù)所述第二鏈路測試請求包和記錄的所述鏈路信息而回復(fù)第二鏈路測試響應(yīng)包至與所述鏈路信息對應(yīng)的所述第一套接口 ;
[0016]選定所述鏈路檢測時間組中的其他鏈路檢測時間,重復(fù)上述I)和2);
[0017]由所述第一套接口根據(jù)所述第二鏈路測試響應(yīng)包的接收狀態(tài)而確定所述STUN客戶端與所述STUN伺服端之間通信鏈路的UDP老化時間。
[0018]可選地,所述UDP老化時間檢測方法還包括:在檢測過程中,由所述第二套接口發(fā)送鏈路保持請求包至所述STUN伺服端,使得所述STUN伺服端根據(jù)所述鏈路保持請求包而回復(fù)鏈路保持響應(yīng)包至所述第二套接口,以令所述STUN客戶端與所述STUN伺服端之間通信鏈路保持暢通。
[0019]可選地,所述UDP老化時間檢測方法還包括:預(yù)先設(shè)置所述鏈路檢測時間組中的各個鏈路檢測時間。
[0020]可選地,由第二套接口根據(jù)所述鏈路檢測時間而發(fā)送第二鏈路測試請求包至所述STUN伺服端,包括:第二套接口接收到來自所述第一套接口所發(fā)送的所述鏈路檢測時間,將所述鏈路檢測時間作為設(shè)定時間并啟動定時,在設(shè)定時間結(jié)束之后,由所述第二套接口向所述STUN伺服端發(fā)送第二鏈路測試請求包。
[0021]可選地,由所述第一套接口根據(jù)所述第二鏈路測試響應(yīng)包的接收狀態(tài)而確定所述STUN客戶端與所述STUN伺服端之間通信鏈路的UDP老化時間,包括:若所述第一套接口在當(dāng)前鏈路檢測時間下接收到所述第二鏈路測試響應(yīng)包,則判定所述STUN客戶端與所述STUN伺服端之間通信鏈路的UDP老化時間要大于所述當(dāng)前鏈路檢測時間,之后,選定大于當(dāng)前鏈路檢測時間的下一個鏈路檢測時間以進(jìn)行繼續(xù)檢測;若所述第一套接口在當(dāng)前鏈路檢測時間下沒有接收到所述第二鏈路測試響應(yīng)包,則判定所述STUN客戶端與所述STUN伺服端之間通信鏈路的UDP老化時間要小于所述當(dāng)前鏈路檢測時間,將所述STUN客戶端與所述STUN伺服端之間通信鏈路的UDP老化時間確定為小于所述當(dāng)前鏈路檢測時間的上一個鏈路檢測時間。
[0022]本發(fā)明提供的基于STUN協(xié)議的UDP老化時間檢測系統(tǒng)及方法,主要是在STUN客戶端處提供了第一套接口和第二套接口,并設(shè)定了包含有多個鏈路檢測時間的一組鏈路檢測時間組,多個鏈路檢測時間具有時間間隔,通過所述第一套接口和所述第二套接口根據(jù)鏈路檢測時間而與STUN伺服端進(jìn)行交互通信,以檢測出所述STUN客戶端與所述STUN伺服端之間通信鏈路的m)P老化時間,解決現(xiàn)有技術(shù)中網(wǎng)絡(luò)鏈路上UDP老化時間不能準(zhǔn)確確定而致通信失敗等問題,從而可以根據(jù)檢測到的UDP老化時間來決定STUN客戶端發(fā)送數(shù)據(jù)包的頻率,增強(qiáng)數(shù)據(jù)傳輸?shù)目煽啃浴?br>
【專利附圖】

【附圖說明】
[0023]圖1為基于STUN協(xié)議的原理框圖。
[0024]圖2為本發(fā)明基于STUN協(xié)議的UDP老化時間檢測系統(tǒng)在一個實(shí)施方式中的系統(tǒng)框圖。
[0025]圖3為圖2在一具體實(shí)施例中的系統(tǒng)框圖。
[0026]圖4為本發(fā)明基于STUN協(xié)議的UDP老化時間檢測方法在一個實(shí)施方式中的流程示意圖。

【具體實(shí)施方式】
[0027]以下通過特定的具體實(shí)施例說明本發(fā)明的實(shí)施方式,本領(lǐng)域技術(shù)人員可由本說明書所揭露的內(nèi)容輕易地了解本發(fā)明的其他優(yōu)點(diǎn)與功效。本發(fā)明還可以通過另外不同的【具體實(shí)施方式】加以實(shí)施或應(yīng)用,本說明書中的各項(xiàng)細(xì)節(jié)也可以基于不同觀點(diǎn)與應(yīng)用,在沒有背離本發(fā)明的精神下進(jìn)行各種修飾或改變。
[0028]需要說明的是,本說明書所附圖式所繪示的結(jié)構(gòu)、比例、大小等,均僅用以配合說明書所揭示的內(nèi)容,以供熟悉此技術(shù)的人士了解與閱讀,并非用以限定本發(fā)明可實(shí)施的限定條件,故不具技術(shù)上的實(shí)質(zhì)意義,任何結(jié)構(gòu)的修飾、比例關(guān)系的改變或大小的調(diào)整,在不影響本發(fā)明所能產(chǎn)生的功效及所能達(dá)成的目的下,均應(yīng)仍落在本發(fā)明所揭示的技術(shù)內(nèi)容得能涵蓋的范圍內(nèi)。同時,本說明書中所引用的如“上”、“下”、“左”、“右”、“中間”及“一”等的用語,亦僅為便于敘述的明了,而非用以限定本發(fā)明可實(shí)施的范圍,其相對關(guān)系的改變或調(diào)整,在無實(shí)質(zhì)變更技術(shù)內(nèi)容下,當(dāng)亦視為本發(fā)明可實(shí)施的范疇。
[0029]請參閱圖2,顯示了本發(fā)明基于STUN協(xié)議的UDP老化時間檢測系統(tǒng)在一個實(shí)施方式中的系統(tǒng)框圖。如圖2所示,本發(fā)明基于STUN協(xié)議的UDP老化時間檢測系統(tǒng)包括:NAT網(wǎng)關(guān)20、通過NAT網(wǎng)關(guān)20而通信連接的STUN伺服端21和STUN客戶端23,其中,在STUN客戶端23配置有相互通信連接的第一套接口 X和第二套接口 Y。我們知道,STUN (SimpleTraversal of User Datagram Protocol Through Network Address Translators,UDP 流協(xié)議穿透NAT的協(xié)議)是一種網(wǎng)絡(luò)協(xié)議,它允許位于NAT (或多重NAT)后的STUN客戶端找出自己的公網(wǎng)地址,查出自己位于哪種類型的NAT之后以及NAT為某一個本地端口所綁定的Internet端端口,這些信息被用來在兩個同時處于NAT路由器之后的主機(jī)之間建立UDP通信。需說明的是,在本實(shí)施方式中,STUN客戶端為具有數(shù)據(jù)傳輸能力的網(wǎng)絡(luò)設(shè)備,優(yōu)選為例如:智能插座、智能路由器等,但并不以此為限。
[0030]第一套接口 X,用于按照一鏈路檢測時間組中的一鏈路檢測時間而發(fā)送第一鏈路測試請求包至STUN伺服端21,以令STUN伺服端21根據(jù)所述第一鏈路測試請求包而向第一套接口 X回復(fù)第一鏈路測試響應(yīng)包并將鏈路信息更新為第一套接口 X的鏈路數(shù)據(jù)。在本實(shí)施方式中,為能準(zhǔn)確地檢測出STUN客戶端23與STUN伺服端21之間通信鏈路的UDP老化時間,特別設(shè)置了一鏈路檢測時間組,在該鏈路檢測時間組內(nèi)包含有多個鏈路檢測時間,且多個鏈路檢測時間具有時間間隔,優(yōu)選地,各個鏈路檢測時間以從小到大的方式依序進(jìn)行檢測。通過第一鏈路測試請求包,可使得第一套接口 X與STUN伺服端21建立通信鏈接,并將STUN伺服端21的鏈路信息更新為第一套接口 X的鏈路數(shù)據(jù)。另外,這里的鏈路數(shù)據(jù)包括IP地址(NAT IP)和網(wǎng)絡(luò)端口(NAT Port)。
[0031]第二套接口 Y,用于根據(jù)所述鏈路檢測時間而發(fā)送第二鏈路測試請求包至STUN伺服端21,以令STUN伺服端21根據(jù)所述第二鏈路測試請求包和記錄的所述鏈路信息而回復(fù)第二鏈路測試響應(yīng)包至與所述鏈路信息對應(yīng)的第一套接口 X,由所述第一套接口 X根據(jù)所述第二鏈路測試響應(yīng)包的接收狀態(tài)而確定所述STUN客戶端與所述STUN伺服端之間通信鏈路的UDP老化時間。在本實(shí)施方式中,第二套接口 Y根據(jù)所述鏈路檢測時間而發(fā)送第二鏈路測試請求包至STUN伺服端,包括:第二套接口 Y接收到來自第一套接口 X所發(fā)送的所述鏈路檢測時間,啟動定時,以所述鏈路檢測時間作為定時時間,在定時結(jié)束之后,由第二套接口 Y向STUN伺服端21發(fā)送第二鏈路測試請求包。另外,由第一套接口 X根據(jù)所述第二鏈路測試響應(yīng)包的接收狀態(tài)而確定STUN客戶端23與STUN伺服端21之間通信鏈路的UDP老化時間,包括:若第一套接口 X在當(dāng)前鏈路檢測時間下接收到所述第二鏈路測試響應(yīng)包,則判定STUN客戶端23與STUN伺服端21之間通信鏈路的UDP老化時間要大于所述當(dāng)前鏈路檢測時間。之后,選定大于當(dāng)前鏈路檢測時間的下一個鏈路檢測時間以進(jìn)行繼續(xù)檢測,并再通過第一套接口 X按照下一個鏈路檢測時間而發(fā)送第一鏈路測試請求包至STUN伺服端21以及第二套接口 Y根據(jù)下一個鏈路檢測時間而發(fā)送第二鏈路測試請求包至STUN伺服端21,以令STUN伺服端21根據(jù)所述第二鏈路測試請求包和記錄的所述鏈路信息而回復(fù)第二鏈路測試響應(yīng)包至與所述鏈路信息對應(yīng)的第一套接口 X。若第一套接口 X在當(dāng)前鏈路檢測時間下沒有接收到所述第二鏈路測試響應(yīng)包,則判定STUN客戶端23與STUN伺服端21之間通信鏈路m)P老化時間要小于當(dāng)前鏈路檢測時間,將STUN客戶端23與STUN伺服端21之間通信鏈路的UDP老化時間確定為小于所述當(dāng)前鏈路檢測時間的上一個鏈路檢測時間。
[0032]再有,在本發(fā)明中,針對第二套接口 Y:第二套接口 Y還包括發(fā)送鏈路保持請求包至所述STUN伺服端,令所述STUN伺服端根據(jù)所述鏈路保持請求包而回復(fù)鏈路保持響應(yīng)包至所述第二套接口 Y,以令STUN客戶端23與STUN伺服端21之間通信鏈路保持暢通。
[0033]請參閱圖3,顯示了圖2在一具體實(shí)施例中的系統(tǒng)框圖。如圖3所示,在該具體實(shí)施例中,本發(fā)明基于STUN協(xié)議的UDP老化時間檢測系統(tǒng)除了 NAT網(wǎng)關(guān)20、STUN伺服端21、STUN客戶端23、以及配置于STUN客戶端23的第一套接口 X和第二套接口 Y之外,還包括:時間設(shè)置單元231和定時單元233,
[0034]時間設(shè)置單元231,用于設(shè)置所述鏈路檢測時間組中的各個鏈路檢測時間。在該鏈路檢測時間組內(nèi)包含有多個鏈路檢測時間,且多個鏈路檢測時間具有時間間隔,優(yōu)選地,各個鏈路檢測時間以從小到大的方式依序進(jìn)行檢測。
[0035]定時單元233,用于設(shè)定第二套接口 Y發(fā)送第二鏈路請求的時機(jī)。在本實(shí)施例中,定時單元233中的設(shè)定時間為所述鏈路檢測時間。
[0036]請參閱圖4,顯示了本發(fā)明基于STUN協(xié)議的UDP老化時間檢測方法在一個實(shí)施方式中的流程示意圖。結(jié)合圖3(圖2)和圖4,本發(fā)明基于STUN協(xié)議的UDP老化時間檢測方法包括:
[0037]步驟S201,預(yù)先設(shè)置一鏈路檢測時間組中的各個鏈路檢測時間。在本實(shí)施方式中,在該鏈路檢測時間組內(nèi)包含有多個鏈路檢測時間,且多個鏈路檢測時間具有時間間隔。
[0038]步驟S203,從所述鏈路檢測時間組中選定一鏈路檢測時間。在本實(shí)施例中,檢測STUN客戶端23與STUN伺服端21之間通信鏈路的UDP老化時間即為檢測STUN客戶端23與STUN伺服端21之間通信鏈路的最小UDP老化時間,因此,優(yōu)選地,在步驟S22中,是以從小到大的方式依序來選定鏈路檢測時間。
[0039]步驟S205,由第一套接口 X按照一鏈路檢測時間組中的一鏈路檢測時間而發(fā)送第一鏈路測試請求包至STUN伺服端21。
[0040]步驟S207,由STUN伺服端21根據(jù)所述第一鏈路測試請求包而向第一套接口 X回復(fù)第一鏈路測試響應(yīng)包并將鏈路信息更新為所述第一套接口 X的鏈路數(shù)據(jù)。這里的鏈路數(shù)據(jù)包括IP地址(NAT IP)和網(wǎng)絡(luò)端口(NAT Port)。通過上述步驟205和步驟S207,通過第一鏈路測試請求包,可使得第一套接口 X與STUN伺服端21建立通信鏈接。
[0041 ] 步驟S209,由第二套接口 Y根據(jù)所述鏈路檢測時間而發(fā)送第二鏈路測試請求包至STUN伺服端21。由第二套接口 Y根據(jù)所述鏈路檢測時間而發(fā)送第二鏈路測試請求包至STUN伺服端21,更進(jìn)一步包括:第二套接口 Y接收到來自第一套接口 X所發(fā)送的所述鏈路檢測時間,將所述鏈路檢測時間作為設(shè)定時間并啟動定時,在設(shè)定時間結(jié)束之后,由第二套接口Y向STUN伺服端21發(fā)送第二鏈路測試請求包。
[0042]步驟S211,由STUN伺服端21根據(jù)所述第二鏈路測試請求包和記錄的所述鏈路信息而回復(fù)第二鏈路測試響應(yīng)包至與所述鏈路信息對應(yīng)的所述第一套接口 X。
[0043]步驟S213,判斷第一套接口 X是否接收到所述第二鏈路測試響應(yīng)包。若第一套接口 X有接收到所述第二鏈路測試響應(yīng)包,則判定所述STUN客戶端與所述STUN伺服端之間通信鏈路的UDP老化時間要大于所述當(dāng)前鏈路檢測時間,并進(jìn)至步驟215 ;若第一套接口 X沒有接收到所述第二鏈路測試響應(yīng)包,則判定所述STUN客戶端與所述STUN伺服端之間通信鏈路的UDP老化時間要小于所述當(dāng)前鏈路檢測時間,并進(jìn)至步驟S217。
[0044]步驟S215,選定大于當(dāng)前鏈路檢測時間的下一個鏈路檢測時間,并返至步驟S205,繼續(xù)檢測;
[0045]步驟S217,將所述STUN客戶端與所述STUN伺服端之間通信鏈路的UDP老化時間確定為小于所述當(dāng)前鏈路檢測時間的上一個鏈路檢測時間。
[0046]還需說明的是,在本實(shí)施方式中,在所述UDP老化時間檢測方法中,在步驟S203之前還包括:步驟S200和步驟S202,步驟200,由第二套接口 Y發(fā)送鏈路保持請求包至所述STUN伺服端21 ;步驟S202,STUN伺服端21根據(jù)所述鏈路保持請求包而回復(fù)鏈路保持響應(yīng)包至所述第二套接口 Y,以令STUN客戶端23與STUN伺服端21之間通信鏈路保持暢通。為便于說明,在圖4中,步驟S200和步驟S202是位于步驟S201和步驟S203之間,但并不以此為限,本領(lǐng)域的技術(shù)人員應(yīng)該可知曉,在實(shí)際應(yīng)用中,只要在進(jìn)行數(shù)據(jù)傳輸前在STUN客戶端23與STUN伺服端21之間建立通暢的通信鏈路即可,因此,,步驟S200和步驟S202僅需滿足在步驟S203之前即可,而與設(shè)置鏈路檢測時間組及從鏈路檢測時間組中選定一鏈路檢測時間無必然關(guān)系。
[0047]本發(fā)明提供的基于STUN協(xié)議的UDP老化時間檢測系統(tǒng)及方法,主要是在STUN客戶端處提供了第一套接口 X和第二套接口 Y,并設(shè)定了包含有多個鏈路檢測時間的一組鏈路檢測時間組,多個鏈路檢測時間具有時間間隔,通過所述第一套接口 X和所述第二套接口 Y根據(jù)鏈路檢測時間而與STUN伺服端進(jìn)行交互通信,以檢測出所述STUN客戶端與所述STUN伺服端之間通信鏈路的UDP老化時間,解決現(xiàn)有技術(shù)中網(wǎng)絡(luò)鏈路上UDP老化時間不能準(zhǔn)確確定而致通信失敗等問題,從而可以根據(jù)檢測到的UDP老化時間來決定STUN客戶端發(fā)送數(shù)據(jù)包的頻率,增強(qiáng)數(shù)據(jù)傳輸?shù)目煽啃浴?br> [0048]以下將以智能插座為例對上述基于STUN協(xié)議的UDP老化時間檢測系統(tǒng)及方法進(jìn)行詳細(xì)說明。
[0049]在本具體實(shí)例中,我們設(shè)置一鏈路檢測時間組,在該鏈路檢測時間組中包含有多個鏈路檢測時間,假定,這些鏈路檢測時間分別為30秒、60秒、90秒、120秒、150秒、以及180秒,相鄰兩個鏈路檢測時間的間隔為30秒。當(dāng)然,鏈路檢測時間的數(shù)量、數(shù)值以及時間間隔僅為實(shí)例性說明,并非用以限制其取值范圍。
[0050]STUN Client 端所做工作:
[0051](I)在檢測到老化時間之前,第二套接口 Y —直以一個周期發(fā)送鏈路保持請求包至STUN伺服端,STUN伺服端根據(jù)所述鏈路保持請求包而回復(fù)鏈路保持響應(yīng)包至所述第二套接口 Y,從而確保STUN客戶端與STUN伺服端之間通信鏈路保持暢通。在實(shí)際應(yīng)用中,假設(shè)開始時定義心跳T為10s,所述鏈路保持請求包帶有屬性值STUN_ATTR_OUTLET,大小為0x9000o
[0052](2)第一套接口 X檢測鏈路的老化時間,NAT的老化時間檢測辦法:在Os至180s內(nèi)從30s開始按照30的倍數(shù)依次檢測,即,以308、608、908、1208、1508、以及180s的順序依序進(jìn)彳T檢測。如果超過180秒,則智能插座心跳周期為180s或者170s。
[0053](2-a)第一套接口 X發(fā)送第一鏈路測試請求包,假設(shè)所述第一鏈路測試請求包帶有屬性值 STUN_ATTR_OUTLET_TEST,大小為 0x9100。
[0054](2-b)第一套接口 X將當(dāng)前鏈路檢測時間(假設(shè)當(dāng)前鏈路檢測時間為60s)發(fā)送至第二套接口 Y,第二套接口 Y接收到當(dāng)前鏈路檢測時間之后啟動定時器,此時定時器的設(shè)定時間即為當(dāng)前鏈路檢測時間,當(dāng)定時結(jié)束(若當(dāng)前鏈路檢測時間為60s,則就是說定時啟動并在60s后結(jié)束),由第二套接口 Y發(fā)送第二鏈路測試請求包至STUN伺服端,假設(shè)所述第二鏈路測試請求包帶有屬性值STUN_ATTR_OUTLET_X,大小為0x9200。
[0055]同時,第一套接口 X在發(fā)送第一鏈路測試請求包后,即開始監(jiān)聽STUN伺服端回復(fù)的第二鏈路測試響應(yīng)包。
[0056](2-c)第一套接口 X監(jiān)聽STUN伺服端回復(fù)的第二鏈路測試響應(yīng)包,若第一套接口X有接收到所述第二鏈路測試響應(yīng)包,則判定STUN客戶端與STUN伺服端之間通信鏈路的UDP老化時間要大于所述當(dāng)前鏈路檢測時間(例如60s),則選定當(dāng)前鏈路檢測時間(例如60s)的下一個鏈路檢測時間(例如90s),重新返回(2-a)繼續(xù)進(jìn)行檢測;若第一套接口 X沒有接收到所述第二鏈路測試響應(yīng)包,則判定STUN客戶端與STUN伺服端之間通信鏈路的UDP老化時間要小于當(dāng)前鏈路檢測時間(例如60s),則將小于當(dāng)前鏈路檢測時間(例如60s)的上一個鏈路檢測時間(例如30s)確定為所述STUN客戶端與所述STUN伺服端之間通信鏈路的Μ)Ρ老化時間。如果一直檢測到180s,則最終UDP老化時間確定為180s或者考慮到網(wǎng)絡(luò)時延問題定義為170s。
[0057](3)根據(jù)最終檢測的UDP老化時間t,將第二套接口 Y的心跳周期改為UDP老化時間t,周期性的發(fā)送鏈路保持請求包至STUN伺服端。
[0058]STUN伺服端所做工作:
[0059](a)收到第二套接口 Y發(fā)送的鏈路保持請求包之后,直接回復(fù)鏈路保持響應(yīng)包至第二套接口 Y,從而確保STUN客戶端與STUN伺服端之間通信鏈路保持暢通,所述鏈路保持響應(yīng)包的大小為88字節(jié),并更新數(shù)據(jù)庫相關(guān)的的值。
[0060](b)收到第一套接口 X的第一鏈路測試請求包之后,直接回復(fù)第一鏈路測試響應(yīng)包至第一套接口 X,所述第一鏈路測試響應(yīng)包的大小為88字節(jié),并將STUN伺服端的數(shù)據(jù)庫中鏈路信息更新為第一套接口 X的鏈路數(shù)據(jù),這里的鏈路數(shù)據(jù)包括IP地址(NAT IP)和網(wǎng)絡(luò)端口(NAT Port) ο
[0061](c)收到第二套接口 Y發(fā)送的第二鏈路測試請求包之后,讀取數(shù)據(jù)庫中鏈路信息的MAC對應(yīng)的IP地址(NAT IP)和網(wǎng)絡(luò)端口(NAT Port),并回復(fù)第二鏈路測試響應(yīng)包(大小為96字節(jié))到該IP地址(NAT IP)和網(wǎng)絡(luò)端口(NAT Port),也就是發(fā)送到第一套接口X。
[0062]上述實(shí)施例僅例示性說明本發(fā)明的原理及其功效,而非用于限制本發(fā)明。任何熟悉此技術(shù)的人士皆可在不違背本發(fā)明的精神及范疇下,對上述實(shí)施例進(jìn)行修飾或改變。因此,舉凡所屬【技術(shù)領(lǐng)域】中具有通常知識者在未脫離本發(fā)明所揭示的精神與技術(shù)思想下所完成的一切等效修飾或改變,仍應(yīng)由本發(fā)明的權(quán)利要求所涵蓋。
【權(quán)利要求】
1.一種基于STUN協(xié)議的UDP老化時間檢測系統(tǒng),其特征在于,包括:NAT網(wǎng)關(guān)、通過所述NAT網(wǎng)關(guān)而通信連接的STUN伺服端和STUN客戶端,其中,所述STUN客戶端配置有相互通信連接的第一套接口和第二套接口; 所述第一套接口,用于按照一鏈路檢測時間組中的一鏈路檢測時間而發(fā)送第一鏈路測試請求包至所述STUN伺服端,以令所述STUN伺服端根據(jù)所述第一鏈路測試請求包而向所述第一套接口回復(fù)第一鏈路測試響應(yīng)包并將鏈路信息更新為所述第一套接口的鏈路數(shù)據(jù); 所述第二套接口,用于根據(jù)所述鏈路檢測時間而發(fā)送第二鏈路測試請求包至所述STUN伺服端,以令所述STUN伺服端根據(jù)所述第二鏈路測試請求包和記錄的所述鏈路信息而回復(fù)第二鏈路測試響應(yīng)包至與所述鏈路信息對應(yīng)的所述第一套接口,由所述第一套接口根據(jù)所述第二鏈路測試響應(yīng)包的接收狀態(tài)而確定所述STUN客戶端與所述STUN伺服端之間通信鏈路的m)P老化時間。
2.根據(jù)權(quán)利要求1所述的m)P老化時間檢測系統(tǒng),其特征在于,所述第二套接口還包括發(fā)送鏈路保持請求包至所述STUN伺服端,令所述STUN伺服端根據(jù)所述鏈路保持請求包而回復(fù)鏈路保持響應(yīng)包至所述第二套接口,以令所述STUN客戶端與所述STUN伺服端之間通信鏈路保持暢通。
3.根據(jù)權(quán)利要求1或2所述的UDP老化時間檢測系統(tǒng),其特征在于,還包括時間設(shè)置單元,用于設(shè)置所述鏈路檢測時間組中的各個鏈路檢測時間。
4.根據(jù)權(quán)利要求3所述的UDP老化時間檢測系統(tǒng),其特征在于,所述第二套接口根據(jù)所述鏈路檢測時間而發(fā)送第二鏈路測試請求包至所述STUN伺服端中的所述鏈路檢測時間是由所述第一套接口發(fā)送至所述第二套接口而獲得的。
5.根據(jù)權(quán)利要求4所述的UDP老化時間檢測系統(tǒng),其特征在于,還包括定時單元,所述定時單元中的設(shè)定時間為所述鏈路檢測時間; 所述第二套接口,用于根據(jù)所述鏈路檢測時間而發(fā)送第二鏈路測試請求包至所述STUN伺服端,包括:所述第二套接口接收到來自所述第一套接口所發(fā)送的所述鏈路檢測時間,將所述鏈路檢測時間作為所述定時單元的設(shè)定時間并啟動所述定時單元,在設(shè)定時間結(jié)束之后,由所述第二套接口向所述STUN伺服端發(fā)送第二鏈路測試請求包。
6.一種基于STUN協(xié)議的UDP老化時間檢測方法,應(yīng)用于如權(quán)利要求1所述的UDP老化時間檢測系統(tǒng)中,其特征在于,所述UDP老化時間檢測方法,包括: 1)由第一套接口按照一鏈路檢測時間組中的一鏈路檢測時間而發(fā)送第一鏈路測試請求包至STUN伺服端,由所述STUN伺服端根據(jù)所述第一鏈路測試請求包而向所述第一套接口回復(fù)第一鏈路測試響應(yīng)包并將鏈路信息更新為所述第一套接口的鏈路數(shù)據(jù); 2)由第二套接口根據(jù)所述鏈路檢測時間而發(fā)送第二鏈路測試請求包至所述STUN伺服端,由所述STUN伺服端根據(jù)所述第二鏈路測試請求包和記錄的所述鏈路信息而回復(fù)第二鏈路測試響應(yīng)包至與所述鏈路信息對應(yīng)的所述第一套接口 ; 選定所述鏈路檢測時間組中的其他鏈路檢測時間,重復(fù)上述I)和2); 由所述第一套接口根據(jù)所述第二鏈路測試響應(yīng)包的接收狀態(tài)而確定所述STUN客戶端與所述STUN伺服端之間通信鏈路的UDP老化時間。
7.根據(jù)權(quán)利要求6所述的UDP老化時間檢測方法,其特征在于,還包括:在檢測過程中,由所述第二套接口發(fā)送鏈路保持請求包至所述STUN伺服端,使得所述STUN伺服端根據(jù)所述鏈路保持請求包而回復(fù)鏈路保持響應(yīng)包至所述第二套接口,以令所述STUN客戶端與所述STUN伺服端之間通信鏈路保持暢通。
8.根據(jù)權(quán)利要求6或7所述的UDP老化時間檢測方法,其特征在于,還包括預(yù)先設(shè)置所述鏈路檢測時間組中的各個鏈路檢測時間。
9.根據(jù)權(quán)利要求8所述的UDP老化時間檢測方法,其特征在于,由第二套接口根據(jù)所述鏈路檢測時間而發(fā)送第二鏈路測試請求包至所述STUN伺服端,包括:第二套接口接收到來自所述第一套接口所發(fā)送的所述鏈路檢測時間,將所述鏈路檢測時間作為設(shè)定時間并啟動定時,在設(shè)定時間結(jié)束之后,由所述第二套接口向所述STUN伺服端發(fā)送第二鏈路測試請求包。
10.根據(jù)權(quán)利要求9所述的UDP老化時間檢測方法,其特征在于,由所述第一套接口根據(jù)所述第二鏈路測試響應(yīng)包的接收狀態(tài)而確定所述STUN客戶端與所述STUN伺服端之間通信鏈路的UDP老化時間,包括:若所述第一套接口在當(dāng)前鏈路檢測時間下接收到所述第二鏈路測試響應(yīng)包,則判定所述STUN客戶端與所述STUN伺服端之間通信鏈路的UDP老化時間要大于所述當(dāng)前鏈路檢測時間,之后,選定大于當(dāng)前鏈路檢測時間的下一個鏈路檢測時間以進(jìn)行繼續(xù)檢測;若所述第一套接口在當(dāng)前鏈路檢測時間下沒有接收到所述第二鏈路測試響應(yīng)包,則判定所述STUN客戶端與所述STUN伺服端之間通信鏈路的UDP老化時間要小于所述當(dāng)前鏈路檢測時間,將所述STUN客戶端與所述STUN伺服端之間通信鏈路的UDP老化時間確定為小于所述當(dāng)前鏈路檢測時間的上一個鏈路檢測時間。
【文檔編號】H04L12/26GK104468278SQ201410800325
【公開日】2015年3月25日 申請日期:2014年12月18日 優(yōu)先權(quán)日:2014年12月18日
【發(fā)明者】楊華 申請人:上海斐訊數(shù)據(jù)通信技術(shù)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1