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

Nat環(huán)境下的路由動態(tài)調(diào)整方法和系統(tǒng)的制作方法

文檔序號:7702820閱讀:296來源:國知局
專利名稱:Nat環(huán)境下的路由動態(tài)調(diào)整方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及網(wǎng)絡(luò)通信領(lǐng)域,特別涉及NAT環(huán)境下的路由動態(tài)調(diào)整方法和系統(tǒng)。
技術(shù)背景
NAT (Network Address Translation,網(wǎng)絡(luò)地址轉(zhuǎn)換)是一種在IP數(shù)據(jù)包通過路由 器或防火墻時重寫源IP地址或/和目的IP地址的技術(shù)。通過NAT可將內(nèi)網(wǎng)主機的不具有 唯一性的內(nèi)部IP地址轉(zhuǎn)換成公網(wǎng)IP地址,從而實現(xiàn)該主機與公網(wǎng)中其他主機間的通信。 NAT根據(jù)“內(nèi)網(wǎng)IP地址,內(nèi)網(wǎng)端口號”與“公網(wǎng)IP地址,公網(wǎng)端口號”做映射時所采 用的映射方式的不同可以分成Cone NAT (圓錐形NAT)和Symmetric NAT (對稱型NAT) 兩大類,而Cone NAT根據(jù)NAT對入網(wǎng)IP數(shù)據(jù)包的限制又可以細分為FullCone NAT(完 全圓錐形 NAT)、Restricted Cone NAT (受限圓錐形 NAT)、Port Restricted Cone NAT (端 口 受限圓錐形NAT)。
Cone NAT是指在網(wǎng)絡(luò)地址轉(zhuǎn)換過程中,如果存在多個數(shù)據(jù)連接,只要發(fā)起數(shù)據(jù) 連接的內(nèi)網(wǎng)IP地址和端口號相同,則無論目的IP地址是否發(fā)生變化,這些數(shù)據(jù)連接都使 用同一個會話,在同一個會話中,內(nèi)網(wǎng)IP地址及內(nèi)網(wǎng)端口號與所轉(zhuǎn)換的公網(wǎng)IP地址及公 網(wǎng)端口號之間的映射關(guān)系是固定的。Cone NAT中的Full Cone NAT是指在一個會話中建立 一個內(nèi)網(wǎng)/公網(wǎng)的端口綁定后,通過公網(wǎng)端口可從外部的任何主機接收數(shù)據(jù)。ConeNAT 中的Restricted Cone NAT是指只有內(nèi)網(wǎng)主機先向外部的主機發(fā)送數(shù)據(jù),才有可能從該外部 主機接收數(shù)據(jù)。Cone NAT中的Port Restricted ConeNAT是指只有內(nèi)網(wǎng)主機先向外部的主 機的某一端口發(fā)送數(shù)據(jù),才有可能從該外部主機的該端口接收數(shù)據(jù)。
SymmetricNAT是指在網(wǎng)絡(luò)地址轉(zhuǎn)換過程中,如果存在多個數(shù)據(jù)連接,且發(fā)起數(shù) 據(jù)連接的內(nèi)網(wǎng)IP地址和端口號相同,但目的IP地址發(fā)生變化,那么這些數(shù)據(jù)連接會使用 不同的會話,在不同的會話中,會分配不同的公網(wǎng)端口。
現(xiàn)有技術(shù)中存在多種NAT穿透方法,如STUN/TURN、ICE、ALG> MIDCOM 等,這些NAT穿透方法適用于不同類型的NAT。例如,STUN Session haversal Utilities for NAT)允許位于NAT (或多重NAT)后的客戶端找出自己的公網(wǎng)地址,查出自己位于 哪種類型的NAT之后以及NAT為某一個本地端口所綁定的Internet端端口,從而利用 上述信息穿透NAT與其他主機建立UDP通信。但STUN只能用于前述的Cone NAT, 不能用于Symmetric NAT。TURN (Traversal Using Relay NAT)將私網(wǎng)用戶發(fā)出的報文 經(jīng)由TURN服務(wù)器進行Relay轉(zhuǎn)發(fā),從而達到穿透NAT的目的。TURN方式可以克服 STUN不能用于Symmetric NAT的缺陷,但TURN在處理Cone NAT環(huán)境下的數(shù)據(jù)包時較 前述的STUN方式效率更低。針對上述情況,本領(lǐng)域技術(shù)人員還提出了 ICE (Interactive ConnectivityEstablishment),ICE將前述的STUN和TURN相結(jié)合,當客戶端所在內(nèi)網(wǎng)的 路由器或防火墻為Cone NAT類型時,ICE采用STUN方式實現(xiàn)NAT穿透,當客戶端所在 內(nèi)網(wǎng)的路由器或防火墻為Symmetric NAT類型時,ICE采用TURN方式實現(xiàn)NAT穿透。
在圖1中給出了 ICE的一種典型的應(yīng)用環(huán)境,在該應(yīng)用環(huán)境中,包括有兩個客戶端L、R,客戶端L的內(nèi)網(wǎng)IP地址為10.0.0.2,內(nèi)網(wǎng)端口號為10000,客戶端R的 內(nèi)網(wǎng)IP地址為192.168.0.2,內(nèi)網(wǎng)端口號為10001。 客戶端L位于具有NAT功能的第 一路由器之后,該路由器的公網(wǎng)IP地址為159.226.219.21。客戶端R位于具有NAT功 能的第二路由器之后,該路由器的公網(wǎng)IP地址為159.2^.218.21。所述的第一路由器 和第二路由器中的NAT都為對稱型NAT。在整個應(yīng)用環(huán)境中,還包括有一臺SIP服 務(wù)器和一臺同時具有SRUN和TURN功能的ICE服務(wù)器,所述ICE服務(wù)器的IP地址為 159.226.217.21,端口號為3478。在通信過程中,客戶端首先收集候選地址。如客戶端L 通過Stun Request消息收集候選地址,所能收集到的候選地址包括“10.0.0.2,10000,,、 “159.226.219.21,8000” 和 “159.226.217.21,4000”,其中的候選地址 “10.0.0.2, 10000” 是客戶端 L 的主機地址(HostCandidate),候選地址 “159.226.219.21,8000” 是 客戶端L經(jīng)由NAT轉(zhuǎn)換所采用的地址,即服務(wù)器反向地址Server Reflexive Candidate), 而候選地址“159.2^.217.21,4000”是客戶端L經(jīng)由ICE服務(wù)器中繼所采用的地址,即 中繼候選地址(Relay Candidate)。在收集到上述候選地址以后,需要將候選地址交換到 通信對端的客戶端。在交換時,客戶端L通過Sipinvite消息將通信請求發(fā)到客戶端R, 客戶端R收到該消息后,同樣進行地址收集,此后,客戶端L還要將自身的候選地址通 過200ok消息發(fā)送給客戶端R。在得到客戶端L和客戶端R的候選地址后,根據(jù)這些候 選地址可以生成候選的數(shù)據(jù)鏈路,檢測所生成的候選數(shù)據(jù)鏈路的可用性。以客戶端L為 例,一般來說,將其候選地址稱為本地地址(Local Candidate),將對端的候選地址稱為遠 端地址(Remote Candidate),然后將每個本地地址與遠端地址進行組合,構(gòu)成候選地址對 (Candidate Pair),這樣總共有9個候選地址對(相當于9個可選的數(shù)據(jù)鏈路)。然后根據(jù) 一定的優(yōu)先級順序?qū)@些候選地址對進行檢測,判斷其鏈路可用性。由于圖1中的客戶 端L和客戶端R都位于對稱型NAT后面,因此雙方只能通過ICE服務(wù)器進行中繼,從而 得到唯一的經(jīng)由中繼候選地址的可用數(shù)據(jù)鏈路。在得到可用數(shù)據(jù)鏈路后,利用可用數(shù)據(jù) 鏈路進行報文傳輸。
在上面的實例中,由于第一路由器和第二路由器中的NAT都為對稱型NAT, 因此,最后所得到的可用數(shù)據(jù)鏈路具有唯一性。但如果將第一路由器和第二路由器中的 NAT的類型換為Cone NAT,則最終所得到的可用數(shù)據(jù)鏈路的數(shù)目將大于一個,此時需要 對這些可用的數(shù)據(jù)鏈路進行鏈路質(zhì)量檢測,選擇鏈路質(zhì)量最好的數(shù)據(jù)鏈路作為通信時所 采用的數(shù)據(jù)鏈路。但眾所周知,網(wǎng)絡(luò)的鏈路狀況是動態(tài)變化的,特別對于大數(shù)據(jù)量文件 傳輸這類耗時較長的任務(wù),一條數(shù)據(jù)鏈路在某一時刻鏈路質(zhì)量最好并不代表它在下一時 刻同樣優(yōu)于其它鏈路。但在現(xiàn)有技術(shù)中,一旦確定某一候選地址所形成的數(shù)據(jù)鏈路,那 么在該次會話中,即使網(wǎng)絡(luò)中存在鏈路質(zhì)量優(yōu)于該選定鏈路的其它備選數(shù)據(jù)鏈路,數(shù)據(jù) 鏈路也不會發(fā)生改變。如果要對數(shù)據(jù)鏈路進行切換,也只能是在斷開當前會話后,在下 次會話的建立過程中選擇新的數(shù)據(jù)鏈路。這顯然不利于提高客戶端之間的通信質(zhì)量。發(fā)明內(nèi)容
本發(fā)明的目的是克服現(xiàn)有技術(shù)無法在通信過程中根據(jù)數(shù)據(jù)鏈路的鏈路質(zhì)量對數(shù) 據(jù)鏈路進行動態(tài)調(diào)整的缺陷,從而提供一種NAT環(huán)境下的路由動態(tài)調(diào)整方法。
為了實現(xiàn)上述目的,本發(fā)明提供了一種NAT環(huán)境下的路由動態(tài)調(diào)整方法,包括
步驟1)、探測所述多個可用數(shù)據(jù)鏈路的鏈路質(zhì)量;所述可用數(shù)據(jù)鏈路包括客戶 端在通信過程中正在使用的數(shù)據(jù)鏈路,以及客戶端間能夠使用的候選數(shù)據(jù)鏈路;
步驟2、、將所述多個可用數(shù)據(jù)鏈路的鏈路質(zhì)量進行比較;
步驟幻、當所述候選數(shù)據(jù)鏈路的鏈路質(zhì)量優(yōu)于通信過程中正在使用的數(shù)據(jù)鏈路 的鏈路質(zhì)量時,將客戶端間通信用的數(shù)據(jù)鏈路由當前正在使用的數(shù)據(jù)鏈路切換為鏈路質(zhì) 量最優(yōu)的候選數(shù)據(jù)鏈路。
上述技術(shù)方案中,所述的步驟1)包括
步驟1-1)、利用Stun Request消息以及Stun Response消息定時探測所述可用數(shù) 據(jù)鏈路的回環(huán)時間;其中,所述Stun Request消息以及StunResponse包括有用于記錄時間的時間戳選項;
步驟1-2)、根據(jù)一段時間內(nèi)關(guān)于回環(huán)時間的多個探測結(jié)果計算可用數(shù)據(jù)鏈路的 單向網(wǎng)絡(luò)時延和單向丟包率;
步驟1-;3)、由所述可用數(shù)據(jù)鏈路的單向網(wǎng)絡(luò)時延和單向丟包率計算鏈路質(zhì)量。
上述技術(shù)方案中,所述的步驟1-1)包括
步驟1-1-1)、所述可用數(shù)據(jù)鏈路的發(fā)起方的客戶端定時發(fā)送StunRequest消息;
步驟1-1-2)、所述可用數(shù)據(jù)鏈路的接收方的客戶端收到所述的StunRequest消息 后,取出該消息的時間戳選項中所保存的時間,然后將該時間重新填入Stun Response消 息的時間戳選項中,再將該Stun Response消息返回給所述可用數(shù)據(jù)鏈路的發(fā)起方的客戶 端;
步驟1-1-3)、所述可用數(shù)據(jù)鏈路的發(fā)起方的客戶端收到所述StunResponse消息 后,從該消息的時間戳選項中取出所述Stun Request消息發(fā)送時的時間值,然后將該時間 值與當前時間進行比較,得到所述可用數(shù)據(jù)鏈路的回環(huán)時間。
上述技術(shù)方案中,所述的步驟1- 包括
步驟1-2-1)、由多個回環(huán)時間探測結(jié)果得到平均回環(huán)時間;所述平均回環(huán)時間 用T表示,其計算公式包括一 I
=
其中,η表示統(tǒng)計時間內(nèi)的探測次數(shù),T1表示第i次所探測的回環(huán)時間;
步驟1-2- 、根據(jù)所述回環(huán)時間與平均回環(huán)時間計算可用數(shù)據(jù)鏈路的抖動情 況;所述抖動情況用Q表示,其計算公式包括
Q= If (Γ.-T)2\nti
步驟1-2- 、根據(jù)所述平均回環(huán)時間和所述抖動情況計算單向網(wǎng)絡(luò)時延;所述 單向時延用d表示,其計算公式包括
d=|(T + Q);
步驟1-2-4)、根據(jù)統(tǒng)計時間內(nèi)所發(fā)送的Stun Request消息以及所收到的StunResponse消息的數(shù)量計算單向丟包率;所述單向丟包率用ρ表示,其計算公式包括

其中,N表示在統(tǒng)計時間內(nèi)發(fā)送的Stun Request消息的數(shù)量,M表示在統(tǒng)計時間 內(nèi)所收到的Stun Response消息的數(shù)量。
上述技術(shù)方案中,所述的步驟2、包括
步驟2-1)、所述可用數(shù)據(jù)鏈路的發(fā)起方的客戶端通過Stun Request消息將所述可 用數(shù)據(jù)鏈路的鏈路質(zhì)量探測結(jié)果發(fā)送到所述可用數(shù)據(jù)鏈路的接收方的客戶端;所述Stun Request消息包括用于記錄鏈路質(zhì)量探測結(jié)果的Rate項;
步驟2- 、所述可用數(shù)據(jù)鏈路的發(fā)起方的客戶端若沒有收到可用數(shù)據(jù)鏈路的接 收方的客戶端所返回的Stun Response消息,則重復(fù)發(fā)送所述的Stun Request消息;
步驟2- 、所述可用數(shù)據(jù)鏈路的接收方的客戶端比較各個可用數(shù)據(jù)鏈路的鏈路 質(zhì)量探測結(jié)果。
上述技術(shù)方案中,所述的步驟幻包括
步驟3-1)、所述可用數(shù)據(jù)鏈路的接收方的客戶端發(fā)送一個Re-invite消息,該消 息包括所要切換的數(shù)據(jù)鏈路的中繼服務(wù)器的地址;
步驟3-2)、所述可用數(shù)據(jù)鏈路的發(fā)起方的客戶端收到所述Re-invite消息后,返 回OK報文,并對中繼服務(wù)器進行切換。
本發(fā)明還提供了一種NAT環(huán)境下的路由動態(tài)調(diào)整系統(tǒng),該系統(tǒng)包括鏈路質(zhì)量探 測模塊、鏈路質(zhì)量比較模塊以及鏈路切換模塊;其中,
所述的鏈路質(zhì)量探測模塊用于探測所述多個可用數(shù)據(jù)鏈路的鏈路質(zhì)量;所述可 用數(shù)據(jù)鏈路包括客戶端在通信過程中正在使用的數(shù)據(jù)鏈路,以及客戶端間能夠使用的候 選數(shù)據(jù)鏈路;
所述的鏈路質(zhì)量比較模塊用于將所述多個可用數(shù)據(jù)鏈路的鏈路質(zhì)量進行比較;
所述的鏈路切換模塊用于當所述候選數(shù)據(jù)鏈路的鏈路質(zhì)量優(yōu)于通信過程中正在 使用的數(shù)據(jù)鏈路的鏈路質(zhì)量時,將客戶端間通信用的數(shù)據(jù)鏈路由當前正在使用的數(shù)據(jù)鏈 路切換為鏈路質(zhì)量最優(yōu)的候選數(shù)據(jù)鏈路。
本發(fā)明的優(yōu)點在于
本發(fā)明能夠根據(jù)數(shù)據(jù)鏈路的鏈路質(zhì)量對數(shù)據(jù)鏈路做動態(tài)切換,從而提高通信質(zhì)量。


圖1為現(xiàn)有技術(shù)中的ICE的一種典型的應(yīng)用環(huán)境;
圖2為一個典型的P2P SIP環(huán)境;
圖3為Stun Request消息中新添加的Time項和Rate項的示意圖。
具體實施方式
下面結(jié)合附圖和具體實施方式
對本發(fā)明進行說明。
本發(fā)明的路由動態(tài)調(diào)整方法具有廣泛的應(yīng)用前景。在一個實施例中,以P2PMP 環(huán)境為例,對本發(fā)明進行說明。
圖2示出了一個典型的P2P SIP環(huán)境,在該環(huán)境中包括一個P2P SIP重疊網(wǎng),該 重疊網(wǎng)由具有公網(wǎng)IP地址并且沒有防火墻限制、具有一定帶寬的:Peer節(jié)點構(gòu)成,如圖中 的PeerA、PeerB等??蛻舳斯?jié)點經(jīng)由具有NAT功能的路由器接入到所述重疊網(wǎng)中。如 圖中的客戶端a經(jīng)由路由器接入到Peer Α,客戶端b經(jīng)由路由器接入到her B中。網(wǎng)絡(luò) 中的路由器都采用Symmetric NAT。在一次交互過程中,客戶端a與客戶端b之間要進 行語音和視頻通信,并由客戶端b發(fā)起相應(yīng)的數(shù)據(jù)連接。由于P2P SIP環(huán)境的分布式特 點,P2P SIP重疊網(wǎng)能夠向客戶端提供的中繼候選地址通常多于一個,在本實施例中,假 設(shè)PeerA、PeerE, Peer F都是客戶端a與客戶端b通信過程中的中繼候選地址,根據(jù)現(xiàn) 有技術(shù)中的數(shù)據(jù)鏈路質(zhì)量探測方法,如用于評測VoIP語音質(zhì)量的E-model方法,對上述 三個中繼候選地址進行選擇。若根據(jù)探測結(jié)果知道經(jīng)由Peer F的數(shù)據(jù)鏈路的鏈路質(zhì)量最 好,則建立由客戶端b到客戶端a的路徑客戶端b_ > Peer F- >客戶端a。上述數(shù)據(jù) 鏈路的建立、選擇過程在前面的背景技術(shù)以及現(xiàn)有技術(shù)中都有相應(yīng)的描述,因此不再做 重復(fù)說明。
從上述的說明可以看出,PeerF并不是唯一的中繼候選地址,通過PeerA和PeerE同樣可以生成候選數(shù)據(jù)鏈路。因此,客戶端a和客戶端b具有在工作過程中對路徑進 行動態(tài)調(diào)整的可能。下面結(jié)合本發(fā)明的路由動態(tài)調(diào)整方法對相關(guān)過程進行說明。
探測數(shù)據(jù)鏈路的鏈路質(zhì)量
在將Peer F選定作為中繼地址并建立路徑“客戶端b_ > Peer F_ >客戶端a”的 同時,客戶端a與客戶端b還保存了另外兩個中繼候選地址PeerA、Peer Ε,將Peer A和 I^eerE分別作為中繼服務(wù)器可以得到兩條候選數(shù)據(jù)鏈路,即“客戶端b_> PeerA->客 戶端a”以及“客戶端b_> Peer E->客戶端a”。在客戶端a與客戶端b的通信過程 中,作為數(shù)據(jù)鏈路發(fā)起者的客戶端b需要定時地探測正在使用的數(shù)據(jù)鏈路以及候選數(shù)據(jù) 鏈路的鏈路質(zhì)量。對數(shù)據(jù)鏈路的鏈路質(zhì)量的探測可以采用現(xiàn)有技術(shù)中的相關(guān)方法,在本 實施例中,可通過Stun Request消息和對該消息進行響應(yīng)的Stun Response消息進行探測。
與常見的Stun Request消息和Stun Response消息相比,本實施例中的Stun Request消息和Stun Response消息增加了如圖3所示的時間戳選項Time??蛻舳薭在發(fā) 送所述Stun Request消息時,將當前的系統(tǒng)時間填充在所述的時間戳選項中。然后將這 一消息經(jīng)由某一數(shù)據(jù)鏈路發(fā)送到客戶端a。當客戶端a收到Stun Request消息后,將其中 的時間戳的數(shù)值重新填入到Stun Response的時間戳選項中,再將Stun Response消息經(jīng)由 相應(yīng)的數(shù)據(jù)鏈路返回給客戶端b。當客戶端b收到回復(fù)的Stun Response消息后,從時間 戳選項中提取時間值,然后將時間值與系統(tǒng)的當前時間進行比較,就能夠獲得對應(yīng)數(shù)據(jù) 鏈路的回環(huán)時間RTT。由于在本實施例中,正在使用的數(shù)據(jù)鏈路有一條,候選數(shù)據(jù)鏈路 有兩條,因此可以分別得到上述三條數(shù)據(jù)鏈路的回環(huán)時間。
對數(shù)據(jù)鏈路回環(huán)時間的探測是定時進行的,如每隔20秒探測一次,因此在一段 時間后就可以統(tǒng)計得到關(guān)于回環(huán)時間的多個探測結(jié)果,根據(jù)這些探測結(jié)果可以計算出相 應(yīng)數(shù)據(jù)鏈路的單向網(wǎng)絡(luò)時延和單向丟包率,也就可以采用前面所提到的E-model方法來 探測數(shù)據(jù)鏈路質(zhì)量。例如,將PeerA作為中繼服務(wù)器的數(shù)據(jù)鏈路的回環(huán)時間記為TA,在 統(tǒng)計時間內(nèi)發(fā)送的Stun Request探測消息的數(shù)量記為NA,所收到的Stun Response探測回 復(fù)消息的數(shù)量記為Ma。根據(jù)統(tǒng)計時間內(nèi)記錄的多個回環(huán)時間可以得到數(shù)據(jù)鏈路的平均回環(huán)時間知,其計算公式如下
Ta=-YjTm,其中的η表示統(tǒng)計時間內(nèi)的探測次數(shù)。
由回環(huán)時間還可以計算前述將PeerA作為中繼服務(wù)器的數(shù)據(jù)鏈路的抖動情況 Qa,數(shù)據(jù)鏈路的抖動可以用統(tǒng)計方差的方法求得,其計算公式如下V" M
在得到數(shù)據(jù)鏈路的平均回環(huán)時間知和抖動情況Qa后,就可以得到單向網(wǎng)絡(luò)時延 dA,其計算公式如下
dA=|(T\+QA)o
由前面所得到的Na和Ma,還可以計算數(shù)據(jù)鏈路的單向丟包率pA,其計算公式 如下NA
在得到單向網(wǎng)絡(luò)時延dA和單向丟包率pA以后,就可以計算數(shù)據(jù)鏈路的鏈路質(zhì)量 Sa,其計算公式在關(guān)于E-model方法的相關(guān)文獻中已經(jīng)有詳細說明,因此不在此處重復(fù) 說明。
以上是對本實施例中通過過Stun Request消息和Stun Response消息計算回環(huán)時間,進而計算鏈路質(zhì)量過程的說明。但本領(lǐng)域技術(shù)人員在實際應(yīng)用中也可以采用現(xiàn)有技 術(shù)中的其他方法。此外,雖然在上述的說明中以Peer A作為中繼服務(wù)器的數(shù)據(jù)鏈路為 例,對其鏈路質(zhì)量的探測過程做了說明,但對于本實施例中以PeerE或PeerF為中繼服務(wù) 器的數(shù)據(jù)鏈路而言,其鏈路質(zhì)量的探測過程與之類似。
比較數(shù)據(jù)鏈路的鏈路質(zhì)量
在網(wǎng)絡(luò)中存在多個可用數(shù)據(jù)鏈路的前提下,在通過前述操作得到各個可用數(shù)據(jù) 鏈路的鏈路質(zhì)量后,就要對這些數(shù)據(jù)鏈路加以比較。由于數(shù)據(jù)鏈路的鏈路質(zhì)量探測過程 通常在數(shù)據(jù)鏈路的發(fā)送方一端進行,因此需要將數(shù)據(jù)鏈路探測結(jié)果發(fā)送到數(shù)據(jù)鏈路的接 收方一端,由數(shù)據(jù)鏈路的接收方一端比較數(shù)據(jù)鏈路的鏈路質(zhì)量,這是因為數(shù)據(jù)鏈路的鏈 路質(zhì)量直接對接收方的體驗產(chǎn)生影響。在本實施例中,客戶端b得到以PeerA、PeerE, Peer F作為中繼服務(wù)器的三條數(shù)據(jù)鏈路的鏈路質(zhì)量探測結(jié)果后,通過StunRequest消息分 別將這些探測結(jié)果發(fā)送到客戶端a。為了滿足這一需求,在所述Stun Request消息中還需 要添加一個如圖3所示的用于記錄鏈路質(zhì)量探測結(jié)果的值Rate,通過Stun Request消息的 傳輸,將鏈路質(zhì)量探測結(jié)果發(fā)送到客戶端a。與前述用于探測的Stun Request消息不同的 是,此處所用到的Stun Request消息需要在發(fā)送端(即客戶端b)保存發(fā)送狀態(tài),在一段 時間后如果沒有收到與Stun Request消息所對應(yīng)的Stun Response消息,則發(fā)送端會重復(fù)發(fā) 送包含有Rate值的Stun Request消息??蛻舳薬收到三條數(shù)據(jù)鏈路的鏈路質(zhì)量探測結(jié)果 后,就可以對這些結(jié)果進行比較,如果鏈路質(zhì)量最好的數(shù)據(jù)鏈路不再是前面所選定的路 徑“客戶端b_> her F->客戶端a”,那么就可以向用戶發(fā)出提示信息,告知用戶當前 存在較已用路徑更好的備選路徑,由用戶選擇是否進行路徑切換。當然,在其它的實施例中,也可以不通知用戶,自動進行路徑切換操作。
切換當前所使用的數(shù)據(jù)鏈路
在網(wǎng)絡(luò)中存在鏈路質(zhì)量更好的備選路徑的前提下,如果用戶同意切換路徑或客 戶端可以自動進行路徑切換,需要完成以下操作。首先由客戶端a發(fā)送一個Re-invite消 息,將 Re-invite 消息中所包含的 SDP 中的 ConnectionData 字段中的 <connection_address>設(shè)置為當前最優(yōu)的中繼服務(wù)器,例如PeerA??蛻舳薭收到客戶端a發(fā)出的Re-invite請 求后,返回OK報文,并根據(jù)Re-invite請求中所包含的信息將中繼服務(wù)器由原來的PeerF 轉(zhuǎn)換成PeerA,此后由客戶端b發(fā)往客戶端a的數(shù)據(jù)將由Peer A轉(zhuǎn)發(fā),即當前所選用的路 徑轉(zhuǎn)換為“客戶端b->PeerA->客戶端a”。
以上是對由客戶端b所發(fā)起的數(shù)據(jù)鏈路在工作過程中的動態(tài)切換過程的說明。 對客戶端a到客戶端b的動態(tài)路由優(yōu)化過程與上述類似,采用相反的過程。即由客戶端a 發(fā)送Stun Request探測各個路徑的回環(huán)時間,客戶端b收集并統(tǒng)計一段時間內(nèi)容各路徑的 鏈路質(zhì)量。當有更好的備選路徑時,由客戶端b端的用戶選擇是否切換路徑。需要說明 的是,由客戶端a到客戶端b的數(shù)據(jù)鏈路與由客戶端b到客戶端a的數(shù)據(jù)鏈路可以是兩條 經(jīng)由不同中繼服務(wù)器的的數(shù)據(jù)鏈路。
在上述實施例中,以P2P SIP環(huán)境為例,對路由的動態(tài)切換過程做了說明。但 本發(fā)明的路由動態(tài)切換方法并不局限于P2PSIP環(huán)境,在其他實施例中,只要存在多余一 個的可用路徑,都可以利用本發(fā)明的方法將正在使用的數(shù)據(jù)鏈路與備用的數(shù)據(jù)鏈路進行 鏈路質(zhì)量比較,根據(jù)比較結(jié)果決定是否做路徑切換。例如,在集中式SIP Server環(huán)境中, 若相關(guān)路由器的NAT映射方式為full Core類型,則對于該路由器所在內(nèi)網(wǎng)中的客戶端具 有服務(wù)器反向地址和中繼候選地址兩個可用地址,因此就有三個可能的數(shù)據(jù)鏈路,因此 也可以在通信過程中采用本發(fā)明的方法進行路徑切換。
本發(fā)明還提供了一種路由動態(tài)調(diào)整系統(tǒng),用于在具有多個可用數(shù)據(jù)鏈路的網(wǎng)絡(luò) 環(huán)境中,根據(jù)所述可用數(shù)據(jù)鏈路的鏈路質(zhì)量對路由做動態(tài)調(diào)整;該系統(tǒng)包括鏈路質(zhì)量探 測模塊、鏈路質(zhì)量比較模塊以及鏈路切換模塊;其中,
所述的鏈路質(zhì)量探測模塊用于探測所述多個可用數(shù)據(jù)鏈路的鏈路質(zhì)量;所述可 用數(shù)據(jù)鏈路包括客戶端在通信過程中正在使用的數(shù)據(jù)鏈路,以及客戶端間能夠使用的候 選數(shù)據(jù)鏈路;
所述的鏈路質(zhì)量比較模塊用于將所述多個可用數(shù)據(jù)鏈路的鏈路質(zhì)量進行比較;
所述的鏈路切換模塊用于當所述候選數(shù)據(jù)鏈路的鏈路質(zhì)量優(yōu)于通信過程中正在 使用的數(shù)據(jù)鏈路的鏈路質(zhì)量時,將客戶端間通信用的數(shù)據(jù)鏈路由當前正在使用的數(shù)據(jù)鏈 路切換為鏈路質(zhì)量最優(yōu)的候選數(shù)據(jù)鏈路。
本發(fā)明的上述方法和系統(tǒng)能夠在用戶通信過程中探測當前使用的數(shù)據(jù)鏈路的鏈 路質(zhì)量以及備選的數(shù)據(jù)鏈路的鏈路質(zhì)量,在當前使用的數(shù)據(jù)鏈路的鏈路質(zhì)量低于某一備 選的數(shù)據(jù)鏈路的鏈路質(zhì)量時,能夠?qū)崿F(xiàn)數(shù)據(jù)鏈路的切換,從而提高用戶通信過程的通信質(zhì)量。
最后所應(yīng)說明的是,以上實施例僅用以說明本發(fā)明的技術(shù)方案而非限制。盡管 參照實施例對本發(fā)明進行了詳細說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當理解,對本發(fā)明的技 術(shù)方案進行修改或者等同替換,都不脫離本發(fā)明技術(shù)方案的精神和范圍,其均應(yīng)涵蓋在本發(fā)明的權(quán)利要求范圍當中。
權(quán)利要求
1.一種NAT環(huán)境下的路由動態(tài)調(diào)整方法,包括步驟1)、探測所述多個可用數(shù)據(jù)鏈路的鏈路質(zhì)量;所述可用數(shù)據(jù)鏈路包括客戶端在 通信過程中正在使用的數(shù)據(jù)鏈路,以及客戶端間能夠使用的候選數(shù)據(jù)鏈路; 步驟2)、將所述多個可用數(shù)據(jù)鏈路的鏈路質(zhì)量進行比較;步驟3)、當所述候選數(shù)據(jù)鏈路的鏈路質(zhì)量優(yōu)于通信過程中正在使用的數(shù)據(jù)鏈路的鏈 路質(zhì)量時,將客戶端間通信用的數(shù)據(jù)鏈路由當前正在使用的數(shù)據(jù)鏈路切換為鏈路質(zhì)量最 優(yōu)的候選數(shù)據(jù)鏈路。
2.根據(jù)權(quán)利要求1所述的NAT環(huán)境下的路由動態(tài)調(diào)整方法,其特征在于,所述的步 驟1)包括步驟1-1)、利用Stun Request消息以及Stun Response消息定時探測所述可用數(shù)據(jù)鏈 路的回環(huán)時間;其中,所述Stun Request消息以及StunResponse包括有用于記錄時間的時間戳選項;步驟1-2)、根據(jù)一段時間內(nèi)關(guān)于回環(huán)時間的多個探測結(jié)果計算可用數(shù)據(jù)鏈路的單向 網(wǎng)絡(luò)時延和單向丟包率;步驟1-3)、由所述可用數(shù)據(jù)鏈路的單向網(wǎng)絡(luò)時延和單向丟包率計算鏈路質(zhì)量。
3.根據(jù)權(quán)利要求2所述的NAT環(huán)境下的路由動態(tài)調(diào)整方法,其特征在于,所述的步 驟1-1)包括步驟1-1-1)、所述可用數(shù)據(jù)鏈路的發(fā)起方的客戶端定時發(fā)送StunRequest消息; 步驟1-1-2)、所述可用數(shù)據(jù)鏈路的接收方的客戶端收到所述的StunRequest消息后, 取出該消息的時間戳選項中所保存的時間,然后將該時間重新填入Stun Response消息的 時間戳選項中,再將該Stun Response消息返回給所述可用數(shù)據(jù)鏈路的發(fā)起方的客戶端; 步驟1-1-3)、所述可用數(shù)據(jù)鏈路的發(fā)起方的客戶端收到所述StunResponse消息后, 從該消息的時間戳選項中取出所述Stun Request消息發(fā)送時的時間值,然后將該時間值與 當前時間進行比較,得到所述可用數(shù)據(jù)鏈路的回環(huán)時間。
4.根據(jù)權(quán)利要求2所述的NAT環(huán)境下的路由動態(tài)調(diào)整方法,其特征在于,所述的步 驟1-2)包括步驟1-2-1)、由多個回環(huán)時間探測結(jié)果得到平均回環(huán)時間;所述平均回環(huán)時間用 表示,其計算公式包括 一 1 n T=丄 ΣΤ nti其中,η表示統(tǒng)計時間內(nèi)的探測次數(shù),T1表示第i次所探測的回環(huán)時間; 步驟1-2-2)、根據(jù)所述回環(huán)時間與平均回環(huán)時間計算可用數(shù)據(jù)鏈路的抖動情況;所 述抖動情況用Q表示,其計算公式包括 步驟1-2-3)、根據(jù)所述平均回環(huán)時間和所述抖動情況計算單向網(wǎng)絡(luò)時延;所述單向 時延用d表示,其計算公式包括步驟1-2-4)、根據(jù)統(tǒng)計時間內(nèi)所發(fā)送的Stun Request消息以及所收到的Stun Response消息的數(shù)量計算單向丟包率;所述單向丟包率用ρ表示,其計算公式包括 N
5.根據(jù)權(quán)利要求1所述的NAT環(huán)境下的路由動態(tài)調(diào)整方法,其特征在于,所述的步 驟2)包括步驟2-1)、所述可用數(shù)據(jù)鏈路的發(fā)起方的客戶端通過Stun Request消息將所述可用 數(shù)據(jù)鏈路的鏈路質(zhì)量探測結(jié)果發(fā)送到所述可用數(shù)據(jù)鏈路的接收方的客戶端;所述Stun Request消息包括用于記錄鏈路質(zhì)量探測結(jié)果的Rate項;步驟2-2)、所述可用數(shù)據(jù)鏈路的發(fā)起方的客戶端若沒有收到可用數(shù)據(jù)鏈路的接收方 的客戶端所返回的Stun Response消息,則重復(fù)發(fā)送所述的Stun Request消息;步驟2-3)、所述可用數(shù)據(jù)鏈路的接收方的客戶端比較各個可用數(shù)據(jù)鏈路的鏈路質(zhì)量 探測結(jié)果。
6.根據(jù)權(quán)利要求1所述的NAT環(huán)境下的路由動態(tài)調(diào)整方法,其特征在于,所述的步 驟3)包括步驟3-1)、所述可用數(shù)據(jù)鏈路的接收方的客戶端發(fā)送一個Re-invite消息,該消息包 括所要切換的數(shù)據(jù)鏈路的中繼服務(wù)器的地址;步驟3-2)、所述可用數(shù)據(jù)鏈路的發(fā)起方的客戶端收到所述Re-invite消息后,返回 OK報文,并對中繼服務(wù)器進行切換。
7.—種NAT環(huán)境下的路由動態(tài)調(diào)整系統(tǒng),其特征在于,該系統(tǒng)包括鏈路質(zhì)量探測模 塊、鏈路質(zhì)量比較模塊以及鏈路切換模塊;其中,所述的鏈路質(zhì)量探測模塊用于探測所述多個可用數(shù)據(jù)鏈路的鏈路質(zhì)量;所述可用數(shù) 據(jù)鏈路包括客戶端在通信過程中正在使用的數(shù)據(jù)鏈路,以及客戶端間能夠使用的候選數(shù) 據(jù)鏈路;所述的鏈路質(zhì)量比較模塊用于將所述多個可用數(shù)據(jù)鏈路的鏈路質(zhì)量進行比較;所述的鏈路切換模塊用于當所述候選數(shù)據(jù)鏈路的鏈路質(zhì)量優(yōu)于通信過程中正在使用 的數(shù)據(jù)鏈路的鏈路質(zhì)量時,將客戶端間通信用的數(shù)據(jù)鏈路由當前正在使用的數(shù)據(jù)鏈路切 換為鏈路質(zhì)量最優(yōu)的候選數(shù)據(jù)鏈路。
全文摘要
本發(fā)明提供一種NAT環(huán)境下的路由動態(tài)調(diào)整方法,包括探測所述多個可用數(shù)據(jù)鏈路的鏈路質(zhì)量;所述可用數(shù)據(jù)鏈路包括客戶端在通信過程中正在使用的數(shù)據(jù)鏈路,以及客戶端間能夠使用的候選數(shù)據(jù)鏈路;將所述多個可用數(shù)據(jù)鏈路的鏈路質(zhì)量進行比較;當所述候選數(shù)據(jù)鏈路的鏈路質(zhì)量優(yōu)于通信過程中正在使用的數(shù)據(jù)鏈路的鏈路質(zhì)量時,將客戶端間通信用的數(shù)據(jù)鏈路由當前正在使用的數(shù)據(jù)鏈路切換為鏈路質(zhì)量最優(yōu)的候選數(shù)據(jù)鏈路。本發(fā)明能夠根據(jù)數(shù)據(jù)鏈路的鏈路質(zhì)量對數(shù)據(jù)鏈路做動態(tài)切換,從而提高通信質(zhì)量。
文檔編號H04L12/56GK102025594SQ20091009264
公開日2011年4月20日 申請日期2009年9月14日 優(yōu)先權(quán)日2009年9月14日
發(fā)明者唐暉, 林濤, 王超峰 申請人:中國科學(xué)院聲學(xué)研究所, 北京東方網(wǎng)信科技有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
阳谷县| 大埔区| 赣榆县| 星座| 库车县| 松原市| 舒兰市| 托克托县| 贞丰县| 蒲江县| 庆云县| 锦屏县| 齐齐哈尔市| 南雄市| 合山市| 景德镇市| 和平区| 广汉市| 丹阳市| 望城县| 繁昌县| 天津市| 汉沽区| 靖安县| 罗甸县| 赤峰市| 成都市| 新兴县| 阿合奇县| 沛县| 商都县| 朝阳市| 故城县| 曲周县| 灵川县| 沭阳县| 抚州市| 浠水县| 石泉县| 宁夏| 时尚|