本發(fā)明涉及計(jì)算機(jī)領(lǐng)域,更具體地涉及一種網(wǎng)絡(luò)線路選擇方法和網(wǎng)絡(luò)測速方法。
背景技術(shù):
通常,諸如網(wǎng)絡(luò)游戲、即時(shí)通信工具、信息發(fā)布平臺(tái)之類的網(wǎng)絡(luò)應(yīng)用包括用于運(yùn)行在用戶終端上的客戶端(即,客戶端程序)和用于運(yùn)行在服務(wù)器上的伺服端(即,服務(wù)器程序)兩部分。當(dāng)網(wǎng)絡(luò)應(yīng)用的客戶端與伺服端通信時(shí),由于受用戶終端的性能、網(wǎng)絡(luò)運(yùn)營商設(shè)備的性能、以及服務(wù)器負(fù)載等原因的影響,有時(shí)候網(wǎng)絡(luò)速度會(huì)很慢,嚴(yán)重影響用戶體驗(yàn)。
隨著用戶對網(wǎng)絡(luò)應(yīng)用的流暢度的要求與日俱增,很多應(yīng)用提供商開始將網(wǎng)絡(luò)應(yīng)用的伺服端設(shè)置在具有多條網(wǎng)絡(luò)線路的服務(wù)器中,以使網(wǎng)絡(luò)應(yīng)用的客戶端能夠通過該多條網(wǎng)絡(luò)線路中的任意一條與網(wǎng)絡(luò)應(yīng)用的伺服端通信。具體地,當(dāng)網(wǎng)絡(luò)應(yīng)用的客戶端請求與網(wǎng)絡(luò)應(yīng)用的伺服端進(jìn)行通信時(shí),網(wǎng)絡(luò)應(yīng)用的客戶端可以通過以下兩種網(wǎng)絡(luò)線路選擇方案中的任意一種從網(wǎng)絡(luò)應(yīng)用的客戶端與伺服端之間的多條網(wǎng)絡(luò)線路中選擇一條網(wǎng)絡(luò)線路作為與網(wǎng)絡(luò)應(yīng)用的伺服端進(jìn)行通信時(shí)實(shí)際使用的網(wǎng)絡(luò)線路:1)通過網(wǎng)絡(luò)應(yīng)用內(nèi)原有的測速機(jī)制對網(wǎng)絡(luò)應(yīng)用的客戶端與伺服端之間的多條網(wǎng)絡(luò)線路進(jìn)行測速,從而選出網(wǎng)絡(luò)狀況較優(yōu)的一條;和2)通過Ping測速機(jī)制對網(wǎng)絡(luò)應(yīng)用的客戶端與伺服端之間的多條網(wǎng)絡(luò)線路進(jìn)行測速,從而選出網(wǎng)絡(luò)狀況較優(yōu)的一條。
但是,上述兩種測速機(jī)制存在以下缺陷:1)網(wǎng)絡(luò)應(yīng)用內(nèi)原有的測速機(jī)制由于受到網(wǎng)絡(luò)應(yīng)用的進(jìn)程的邏輯處理的影響,無法精確反映當(dāng)前網(wǎng)絡(luò)質(zhì)量;同時(shí),網(wǎng)絡(luò)應(yīng)用內(nèi)原有的測速機(jī)制依賴于網(wǎng)絡(luò)應(yīng)用的伺服端,因而在網(wǎng)絡(luò)應(yīng)用的客戶端與伺服端之間出現(xiàn)網(wǎng)絡(luò)阻塞、斷線等異常情況時(shí),無 法進(jìn)行網(wǎng)絡(luò)連通性及延遲的檢測,從而導(dǎo)致很難分析出現(xiàn)上述異常的原因;2)雖然Ping測速機(jī)制是一種更底層的測速方案,能夠精確地反映網(wǎng)絡(luò)狀況,但是Ping測速機(jī)制一般只有60%-70%的成功率。
技術(shù)實(shí)現(xiàn)要素:
鑒于以上所述的一個(gè)或多個(gè)問題,本發(fā)明提供了一種新穎的網(wǎng)絡(luò)線路選擇方法和網(wǎng)絡(luò)測速方法。
根據(jù)本發(fā)明實(shí)施例的網(wǎng)絡(luò)線路選擇方法,用于從網(wǎng)絡(luò)應(yīng)用的客戶端與伺服端之間的多條網(wǎng)絡(luò)線路中選擇一條網(wǎng)絡(luò)線路作為客戶端與伺服端之間實(shí)際使用的網(wǎng)絡(luò)線路,該方法包括:利用第一測速工具在多條網(wǎng)絡(luò)線路中的每條網(wǎng)絡(luò)線路上進(jìn)行一次以上網(wǎng)絡(luò)測速,并將利用第一測速工具測得的一個(gè)以上第一測速值的平均值作為該條網(wǎng)絡(luò)線路的第一測速結(jié)果;如果所述多條網(wǎng)絡(luò)線路中的任意兩條網(wǎng)絡(luò)線路的第一測速結(jié)果之間的差值大于第一預(yù)定閾值,則選擇所述多條網(wǎng)絡(luò)線路中利用第一測速工具測得的網(wǎng)速最快的一條網(wǎng)絡(luò)線路作為客戶端與伺服端之間實(shí)際使用的網(wǎng)絡(luò)線路,否則選擇所述多條網(wǎng)絡(luò)線路中利用第二測速工具測得的網(wǎng)速最快的一條網(wǎng)絡(luò)線路作為客戶端與伺服端之間實(shí)際使用的網(wǎng)絡(luò)線路。
根據(jù)本發(fā)明實(shí)施例的網(wǎng)絡(luò)測速方法,包括:利用第一測速工具在網(wǎng)絡(luò)應(yīng)用的客戶端與伺服端之間實(shí)際使用的網(wǎng)絡(luò)線路上進(jìn)行一次以上網(wǎng)絡(luò)測速,并將利用第一測速工具測得的一個(gè)以上第一測速值的平均值作為該網(wǎng)絡(luò)線路的第一測速結(jié)果;如果第一測速結(jié)果不大于第二預(yù)定閾值,則將該網(wǎng)絡(luò)線路的第一測速結(jié)果作為該網(wǎng)絡(luò)線路的網(wǎng)速表征,否則將利用第二測速工具測得的該網(wǎng)絡(luò)線路的第二測速結(jié)果作為該網(wǎng)絡(luò)線路的網(wǎng)速表征。
本發(fā)明通過將多種測速工具相結(jié)合,利用多種測速工具的優(yōu)點(diǎn)在高復(fù)雜的網(wǎng)絡(luò)情況下提供了網(wǎng)絡(luò)應(yīng)用各種狀態(tài)時(shí)的網(wǎng)絡(luò)連通性及延遲,從而可以在復(fù)雜情況下提供精準(zhǔn)的服務(wù)器延遲數(shù)據(jù),進(jìn)而提升網(wǎng)絡(luò)應(yīng)用的服務(wù)器的網(wǎng)絡(luò)流暢度。
附圖說明
圖1是示出根據(jù)本發(fā)明的示例實(shí)施例的從網(wǎng)絡(luò)應(yīng)用的客戶端與伺服端之間的多條網(wǎng)絡(luò)線路中選擇一條網(wǎng)絡(luò)線路作為客戶端與伺服端之間實(shí)際使用的網(wǎng)絡(luò)線路的方法的流程圖;
圖2是示出根據(jù)本發(fā)明的另一示例實(shí)施例的從網(wǎng)絡(luò)應(yīng)用的客戶端與伺服端之間的多條網(wǎng)絡(luò)線路中選擇一條網(wǎng)絡(luò)線路作為客戶端與伺服端之間實(shí)際使用的網(wǎng)絡(luò)線路的方法的流程圖;
圖3是示出根據(jù)本發(fā)明的示例實(shí)施例的在網(wǎng)絡(luò)應(yīng)用正常運(yùn)行期間對網(wǎng)絡(luò)應(yīng)用的客戶端與伺服端之間實(shí)際使用的網(wǎng)絡(luò)線路進(jìn)行測速的方法的流程圖;以及
圖4是示出根據(jù)本發(fā)明的另一示例實(shí)施例的在網(wǎng)絡(luò)應(yīng)用的客戶端與伺服端之間的網(wǎng)絡(luò)連接斷開時(shí)對網(wǎng)絡(luò)應(yīng)用的客戶端與伺服端之間實(shí)際使用的網(wǎng)絡(luò)線路進(jìn)行測速的方法的流程圖。
具體實(shí)施方式
下面將詳細(xì)描述本發(fā)明的各個(gè)方面的特征和示例性實(shí)施例。在下面的詳細(xì)描述中,提出了許多具體細(xì)節(jié),以便提供對本發(fā)明的全面理解。但是,對于本領(lǐng)域技術(shù)人員來說很明顯的是,本發(fā)明可以在不需要這些具體細(xì)節(jié)中的一些細(xì)節(jié)的情況下實(shí)施。下面對實(shí)施例的描述僅僅是為了通過示出本發(fā)明的示例來提供對本發(fā)明的更好的理解。本發(fā)明決不限于下面所提出的任何具體配置和算法,而是在不脫離本發(fā)明的精神的前提下覆蓋了元素、部件和算法的任何修改、替換和改進(jìn)。在附圖和下面的描述中,沒有示出公知的結(jié)構(gòu)和技術(shù),以便避免對本發(fā)明造成不必要的模糊。
為了更精確地獲知當(dāng)前網(wǎng)絡(luò)質(zhì)量同時(shí)增加網(wǎng)絡(luò)測速的成功概率,這里提出了這樣一種構(gòu)思:在網(wǎng)絡(luò)應(yīng)用的服務(wù)器側(cè)搭建Ping測速服務(wù)器,使得Ping測速服務(wù)器與網(wǎng)絡(luò)應(yīng)用的服務(wù)器共享多條網(wǎng)絡(luò)線路并且能夠通過該多條網(wǎng)絡(luò)線路中的任意一條與網(wǎng)絡(luò)應(yīng)用的客戶端通信;在網(wǎng)絡(luò)應(yīng)用的服務(wù)器側(cè)搭建TCP(傳輸控制協(xié)議)測速服務(wù)器,使得TCP測速服務(wù)器與網(wǎng)絡(luò)應(yīng)用的服務(wù)器共享多條網(wǎng)絡(luò)線路并且能夠通過該多條網(wǎng)絡(luò)線路中的任意一條 與網(wǎng)絡(luò)應(yīng)用的客戶端通信;Ping測速服務(wù)器和TCP測速服務(wù)器均為多網(wǎng)卡多互聯(lián)網(wǎng)協(xié)議(IP)地址的服務(wù)器,并且均提供網(wǎng)絡(luò)測速功能;優(yōu)選地,TCP測速服務(wù)器除了具有網(wǎng)絡(luò)測速功能以外,同時(shí)具有異常處理及日志記錄的功能;優(yōu)選地,在網(wǎng)絡(luò)應(yīng)用內(nèi)搭建測速工具,并在網(wǎng)絡(luò)應(yīng)用內(nèi)分別添加上行和下行測速消息包,消息包內(nèi)攜帶網(wǎng)絡(luò)應(yīng)用的伺服端和客戶端當(dāng)前時(shí)間戳,通過時(shí)間戳與接收消息時(shí)的時(shí)間差,分別獲取上下行延遲。
應(yīng)該理解的是,為了改善網(wǎng)絡(luò)測速的可靠性,通常同時(shí)搭建兩臺(tái)Ping測速服務(wù)器、以及兩臺(tái)TCP測速服務(wù)器,其中該兩臺(tái)Ping測速服務(wù)器包括一臺(tái)主Ping測速服務(wù)器和一臺(tái)備份Ping測速服務(wù)器,并且該兩臺(tái)TCP測速服務(wù)器包括一臺(tái)主TCP測速服務(wù)器和一臺(tái)備份TCP測速服務(wù)器。
下面結(jié)合圖1和圖2,詳細(xì)描述根據(jù)本發(fā)明實(shí)施例的網(wǎng)絡(luò)線路選擇方法。
圖1是示出根據(jù)本發(fā)明的示例實(shí)施例的從網(wǎng)絡(luò)應(yīng)用的客戶端與伺服端之間的多條網(wǎng)絡(luò)線路中選擇一條網(wǎng)絡(luò)線路作為客戶端與伺服端之間實(shí)際使用的網(wǎng)絡(luò)線路的方法的流程圖。如圖1所示,該方法包括:
在102a處,在網(wǎng)絡(luò)應(yīng)用的用戶經(jīng)由網(wǎng)絡(luò)應(yīng)用的客戶端登錄網(wǎng)絡(luò)應(yīng)用的伺服端之前,利用Ping測速工具(即,第一測速工具)對網(wǎng)絡(luò)應(yīng)用的客戶端與伺服端之間的多條網(wǎng)絡(luò)線路中的每條網(wǎng)絡(luò)線路進(jìn)行一次以上(最多不超過10次)網(wǎng)絡(luò)測速,并將利用Ping測速工具測得的一個(gè)以上Ping測速值(即,第一測速值)的平均值作為該條網(wǎng)絡(luò)線路的Ping測速結(jié)果(即,第一測速結(jié)果)。
在102b處,在利用Ping測速工具對網(wǎng)絡(luò)應(yīng)用的客戶端和伺服端之間的多條網(wǎng)絡(luò)線路進(jìn)行網(wǎng)絡(luò)測速的同時(shí),利用TCP測速工具(即,第二測速工具)在網(wǎng)絡(luò)應(yīng)用的客戶端與伺服端之間的多條網(wǎng)絡(luò)線路中的每條網(wǎng)絡(luò)線路上進(jìn)行一次以上網(wǎng)絡(luò)測速,并將利用第二測速工具測得的一個(gè)以上TCP測速值(即,第二測速值)的平均值作為該條網(wǎng)絡(luò)線路的第二測速結(jié)果。
在104處,判斷網(wǎng)絡(luò)應(yīng)用的客戶端和伺服端之間的多條網(wǎng)絡(luò)線路中的任意兩條網(wǎng)絡(luò)線路的Ping測速結(jié)果之間的差值是否大于第一預(yù)定閾值。如果是,則前進(jìn)到106處,否則前進(jìn)到108處。另外,當(dāng)網(wǎng)絡(luò)應(yīng)用的客戶端 和伺服端之間的多條網(wǎng)絡(luò)線路中沒有一條網(wǎng)絡(luò)線路的Ping測速結(jié)果被獲取到時(shí),也前進(jìn)到108處。
在106處,選擇網(wǎng)絡(luò)應(yīng)用的客戶端和伺服端之間的多條網(wǎng)絡(luò)線路中利用Ping測速工具測得的網(wǎng)速最快的一條網(wǎng)絡(luò)線路作為網(wǎng)絡(luò)應(yīng)用的客戶端與伺服端之間實(shí)際使用的網(wǎng)絡(luò)線路。
在108處,當(dāng)網(wǎng)絡(luò)應(yīng)用的客戶端與伺服端之間的多條網(wǎng)絡(luò)線路中的任意兩條網(wǎng)絡(luò)線路的Ping測速結(jié)果之間的差值都不大于第一預(yù)定閾值時(shí),選擇網(wǎng)絡(luò)應(yīng)用的客戶端和伺服端之間的多條網(wǎng)絡(luò)線路中利用TCP測速工具測得的網(wǎng)速最快的一條網(wǎng)絡(luò)線路作為網(wǎng)絡(luò)應(yīng)用的客戶端與伺服端之間實(shí)際使用的網(wǎng)絡(luò)線路。
下面,詳細(xì)描述圖1所示的網(wǎng)絡(luò)線路選擇方法的應(yīng)用示例。
在第一示例中,網(wǎng)絡(luò)應(yīng)用的客戶端和伺服端之間存在包括第一網(wǎng)絡(luò)線路和第二網(wǎng)絡(luò)線路在內(nèi)的兩條網(wǎng)絡(luò)線路,第一預(yù)定閾值為5毫秒(ms)。使用Ping測速工具在第一網(wǎng)絡(luò)線路上進(jìn)行10次網(wǎng)絡(luò)測速,得到第一網(wǎng)絡(luò)線路的Ping測速結(jié)果為49ms;使用Ping測速工具在第二網(wǎng)絡(luò)線路上進(jìn)行10次網(wǎng)絡(luò)測速,得到第二網(wǎng)絡(luò)線路的Ping測速結(jié)果為56ms;使用TCP測速工具在第一網(wǎng)絡(luò)線路上進(jìn)行8次網(wǎng)絡(luò)測速,得到第一網(wǎng)絡(luò)線路的TCP測速結(jié)果為49ms;使用TCP測速工具在第二網(wǎng)絡(luò)線路上進(jìn)行8次網(wǎng)絡(luò)測速,得到第二網(wǎng)絡(luò)線路的TCP測速結(jié)果為55ms。在該示例中,第一網(wǎng)絡(luò)線路的Ping測速結(jié)果與第二網(wǎng)絡(luò)線路的Ping測速結(jié)果之間的差值(7ms)大于第一預(yù)定閾值,因此第一網(wǎng)絡(luò)線路和第二網(wǎng)絡(luò)線路中的利用Ping測速工具測得的網(wǎng)速較快的一條網(wǎng)絡(luò)線路(即,第一網(wǎng)絡(luò)線路)作為網(wǎng)絡(luò)應(yīng)用的客戶端和伺服端之間實(shí)際使用的網(wǎng)絡(luò)線路。
在第二示例中,網(wǎng)絡(luò)應(yīng)用的客戶端和伺服端之間存在包括第一網(wǎng)絡(luò)線路和第二網(wǎng)絡(luò)線路在內(nèi)的兩條網(wǎng)絡(luò)線路,第一預(yù)定閾值為5ms。使用Ping測速工具在第一網(wǎng)絡(luò)線路上進(jìn)行10次網(wǎng)絡(luò)測速,得到第一網(wǎng)絡(luò)線路的Ping測速結(jié)果為51ms;使用Ping測速工具在第二網(wǎng)絡(luò)線路上進(jìn)行10次網(wǎng)絡(luò)測速,得到第二網(wǎng)絡(luò)線路的Ping測速結(jié)果為49ms;使用TCP測速工具在第一網(wǎng)絡(luò)線路上進(jìn)行10次網(wǎng)絡(luò)測速,得到第一網(wǎng)絡(luò)線路的TCP測速結(jié) 果為49ms;使用TCP測速工具在第二網(wǎng)絡(luò)線路上進(jìn)行10次網(wǎng)絡(luò)測速,得到第二網(wǎng)絡(luò)線路的TCP測速結(jié)果為53ms。在該示例中,第一網(wǎng)絡(luò)線路的Ping測速結(jié)果與第二網(wǎng)絡(luò)線路的Ping測速結(jié)果之間的差值(2ms)小于第一預(yù)定閾值,因此選擇第一網(wǎng)絡(luò)線路和第二網(wǎng)絡(luò)線路中的利用TCP測速工具測得的網(wǎng)速較快的一條網(wǎng)絡(luò)線路(即,第一網(wǎng)絡(luò)線路)作為網(wǎng)絡(luò)應(yīng)用的客戶端和伺服端之間實(shí)際使用的網(wǎng)絡(luò)線路。
在第三示例中,網(wǎng)絡(luò)應(yīng)用的客戶端和伺服端之間存在包括第一網(wǎng)絡(luò)線路、第二網(wǎng)絡(luò)線路、以及第三網(wǎng)絡(luò)線路在內(nèi)的三條網(wǎng)絡(luò)線路,第一預(yù)定閾值為5ms。使用Ping測速工具在第一網(wǎng)絡(luò)線路上進(jìn)行8次網(wǎng)絡(luò)測速,得到第一網(wǎng)絡(luò)線路的Ping測速結(jié)果為56ms;使用Ping測速工具在第二網(wǎng)絡(luò)線路上進(jìn)行8次網(wǎng)絡(luò)測速,得到第二網(wǎng)絡(luò)線路的Ping測速結(jié)果為50ms;使用Ping測速工具在第三網(wǎng)絡(luò)線路上進(jìn)行8次網(wǎng)絡(luò)測速,得到第三網(wǎng)絡(luò)線路的Ping測速結(jié)果為49ms;使用TCP測速工具在第一網(wǎng)絡(luò)線路上進(jìn)行7次網(wǎng)絡(luò)測速,得到第一網(wǎng)絡(luò)線路的TCP測速結(jié)果為52ms;使用TCP測速工具在第二網(wǎng)絡(luò)線路上進(jìn)行7次網(wǎng)絡(luò)測速,得到第二網(wǎng)絡(luò)線路的TCP測速結(jié)果為56ms;使用TCP測速工具在第三網(wǎng)絡(luò)線路上進(jìn)行7次網(wǎng)絡(luò)測速,得到第三網(wǎng)絡(luò)線路的TCP測速結(jié)果為49ms。在該示例中,第一網(wǎng)絡(luò)線路的Ping測速結(jié)果和第三網(wǎng)絡(luò)線路的Ping測速結(jié)果之間的差值(7ms)大于第一預(yù)定閾值,因此選擇第一網(wǎng)絡(luò)線路、第二網(wǎng)絡(luò)線路、以及第三網(wǎng)絡(luò)線路中的利用Ping測速工具測得的網(wǎng)速最快的一條網(wǎng)絡(luò)線路(即,第三網(wǎng)絡(luò)線路)作為網(wǎng)絡(luò)應(yīng)用的客戶端和伺服端之間實(shí)際使用的網(wǎng)絡(luò)線路。
在第四示例中,網(wǎng)絡(luò)應(yīng)用的客戶端和伺服端之間存在包括第一網(wǎng)絡(luò)線路、第二網(wǎng)絡(luò)線路、以及第三網(wǎng)絡(luò)線路在內(nèi)的三條網(wǎng)絡(luò)線路,第一預(yù)定閾值為5ms。使用Ping測速工具在第一網(wǎng)絡(luò)線路上進(jìn)行8次網(wǎng)絡(luò)測速,得到第一網(wǎng)絡(luò)線路的Ping測速結(jié)果為53ms;使用Ping測速工具在第二網(wǎng)絡(luò)線路上進(jìn)行8次網(wǎng)絡(luò)測速,得到第二網(wǎng)絡(luò)線路的Ping測速結(jié)果為54ms;使用Ping測速工具在第三網(wǎng)絡(luò)線路上進(jìn)行8次網(wǎng)絡(luò)測速,得到第三網(wǎng)絡(luò)線路的Ping測速結(jié)果為51ms;使用TCP測速工具在第一網(wǎng)絡(luò)線路上進(jìn)行7次網(wǎng)絡(luò)測速,得到第一網(wǎng)絡(luò)線路的TCP測速結(jié)果為52ms;使用TCP測速工 具在第二網(wǎng)絡(luò)線路上進(jìn)行7次網(wǎng)絡(luò)測速,得到第二網(wǎng)絡(luò)線路的TCP測速結(jié)果為56ms;使用TCP測速工具在第三網(wǎng)絡(luò)線路上進(jìn)行7次網(wǎng)絡(luò)測速,得到第三網(wǎng)絡(luò)線路的TCP測速結(jié)果為49ms。在該示例中,第一網(wǎng)絡(luò)線路的Ping測速結(jié)果和第二網(wǎng)絡(luò)線路的Ping測速結(jié)果之間的差值(1ms)、第一網(wǎng)絡(luò)線路的Ping測速結(jié)果和第三網(wǎng)絡(luò)線路的Ping測速結(jié)果之間的差值(2ms)、第二網(wǎng)絡(luò)線路的Ping測速結(jié)果和第三網(wǎng)絡(luò)線路的Ping測速結(jié)果之間的差值(3ms)均不大于第一預(yù)定閾值,因此選擇第一網(wǎng)絡(luò)線路、第二網(wǎng)絡(luò)線路、以及第三網(wǎng)絡(luò)線路中的利用TCP測速工具測得的網(wǎng)速最快的一條網(wǎng)絡(luò)線路(即,第三網(wǎng)絡(luò)線路)作為網(wǎng)絡(luò)應(yīng)用的客戶端和伺服端之間實(shí)際使用的網(wǎng)絡(luò)線路。
圖2是示出根據(jù)本發(fā)明的另一示例實(shí)施例的從網(wǎng)絡(luò)應(yīng)用的客戶端與伺服端之間的多條網(wǎng)絡(luò)線路中選擇一條網(wǎng)絡(luò)線路作為客戶端與伺服端之間實(shí)際使用的網(wǎng)絡(luò)線路的方法的流程圖。如圖2所示,該方法包括:
在202處,在網(wǎng)絡(luò)應(yīng)用的用戶經(jīng)由網(wǎng)絡(luò)應(yīng)用的客戶端登錄網(wǎng)絡(luò)應(yīng)用的伺服端之前,利用Ping測速工具對網(wǎng)絡(luò)應(yīng)用的客戶端與伺服端之間的多條網(wǎng)絡(luò)線路中的每條網(wǎng)絡(luò)線路進(jìn)行一次以上(最多不超過10次)網(wǎng)絡(luò)測速,并將利用Ping測速工具測得的一個(gè)以上Ping測速值的平均值作為該條網(wǎng)絡(luò)線路的Ping測速結(jié)果。
在204處,判斷網(wǎng)絡(luò)應(yīng)用的客戶端和伺服端之間的多條網(wǎng)絡(luò)線路中的任意兩條網(wǎng)絡(luò)線路的Ping測速結(jié)果之間的差值是否大于第一預(yù)定閾值。如果是,前進(jìn)到206處,否則前進(jìn)到208處。另外,當(dāng)網(wǎng)絡(luò)應(yīng)用的客戶端和伺服端之間的多條網(wǎng)絡(luò)線路中沒有一條網(wǎng)絡(luò)線路的Ping測速結(jié)果被獲取到時(shí),也前進(jìn)到208處。
在206處,選擇網(wǎng)絡(luò)應(yīng)用的客戶端和伺服端之間的多條網(wǎng)絡(luò)線路中的利用Ping測速工具測得的網(wǎng)速最快的一條網(wǎng)絡(luò)線路作為網(wǎng)絡(luò)應(yīng)用的客戶端與伺服端之間實(shí)際使用的網(wǎng)絡(luò)線路。
在208處,利用TCP測速工具在網(wǎng)絡(luò)應(yīng)用的客戶端和伺服端之間的多條網(wǎng)絡(luò)線路中的每條網(wǎng)絡(luò)線路上進(jìn)行一次以上網(wǎng)絡(luò)測速,并將利用TCP測速工具測得的一個(gè)以上TCP測速值的平均值作為該條網(wǎng)絡(luò)線路的第二測速 結(jié)果。
在210處,選擇網(wǎng)絡(luò)應(yīng)用的客戶端和伺服端之間的多條網(wǎng)絡(luò)線路中利用TCP測速工具測得的網(wǎng)速最快的一條網(wǎng)絡(luò)線路作為網(wǎng)絡(luò)應(yīng)用的客戶端與伺服端之間實(shí)際使用的網(wǎng)絡(luò)線路。
下面,詳細(xì)描述圖2所示的網(wǎng)絡(luò)線路選擇方法的應(yīng)用示例。
在第一示例中,網(wǎng)絡(luò)應(yīng)用的客戶端和伺服端之間存在包括第一網(wǎng)絡(luò)線路和第二網(wǎng)絡(luò)線路在內(nèi)的兩條網(wǎng)絡(luò)線路,第一預(yù)定閾值為5ms。使用Ping測速工具在第一網(wǎng)絡(luò)線路上進(jìn)行10次網(wǎng)絡(luò)測速,得到第一網(wǎng)絡(luò)線路的Ping測速結(jié)果為49ms;使用Ping測速工具在第二網(wǎng)絡(luò)線路上進(jìn)行10次網(wǎng)絡(luò)測速,得到第二網(wǎng)絡(luò)線路的Ping測速結(jié)果為56ms。在該示例中,第一網(wǎng)絡(luò)線路的Ping測速結(jié)果和第二網(wǎng)絡(luò)線路的Ping測速結(jié)果之間的差值(7ms)大于第一預(yù)定閾值,因此選擇第一網(wǎng)絡(luò)線路和第二網(wǎng)絡(luò)線路中的利用Ping測速工具測得的網(wǎng)速較快的一條網(wǎng)絡(luò)線路(即,第一網(wǎng)絡(luò)線路)作為網(wǎng)絡(luò)應(yīng)用的客戶端和伺服端之間實(shí)際使用的網(wǎng)絡(luò)線路。
在第二示例中,網(wǎng)絡(luò)應(yīng)用的客戶端和伺服端之間存在包括第一網(wǎng)絡(luò)線路和第二網(wǎng)絡(luò)線路在內(nèi)的兩條網(wǎng)絡(luò)線路,第一預(yù)定閾值為5ms。使用Ping測速工具在第一網(wǎng)絡(luò)線路上進(jìn)行8次網(wǎng)絡(luò)測速,得到第一網(wǎng)絡(luò)線路的Ping測速結(jié)果為49ms;使用Ping測速工具在第二網(wǎng)絡(luò)線路上進(jìn)行8次網(wǎng)絡(luò)測速,得到第二網(wǎng)絡(luò)線路的Ping測速結(jié)果為51ms;由于第一網(wǎng)絡(luò)線路的Ping測速結(jié)果和第二網(wǎng)絡(luò)線路的Ping測速結(jié)果之間的差值(2ms)小于第一預(yù)定閾值,因此繼續(xù)使用TCP測速工具在第一網(wǎng)絡(luò)線路和第二網(wǎng)絡(luò)線路上分別進(jìn)行10次網(wǎng)絡(luò)測速,得到第一網(wǎng)絡(luò)線路的TCP測速結(jié)果為49ms、第二網(wǎng)絡(luò)線路的TCP測速結(jié)果為53ms。在該示例中,選擇第一網(wǎng)絡(luò)線路和第二網(wǎng)絡(luò)線路中的利用TCP測速工具測得的網(wǎng)速較快的一條網(wǎng)絡(luò)線路(即,第一網(wǎng)絡(luò)線路)作為網(wǎng)絡(luò)應(yīng)用的客戶端和伺服端之間實(shí)際使用的網(wǎng)絡(luò)線路。
在第三示例中,網(wǎng)絡(luò)應(yīng)用的客戶端和伺服端之間存在包括第一網(wǎng)絡(luò)線路、第二網(wǎng)絡(luò)線路、以及第三網(wǎng)絡(luò)線路在內(nèi)的三條網(wǎng)絡(luò)線路,第一預(yù)定閾值為5ms。使用Ping測速工具在第一網(wǎng)絡(luò)線路上進(jìn)行8次網(wǎng)絡(luò)測速,得到 第一網(wǎng)絡(luò)線路的Ping測速結(jié)果為56ms;使用Ping測速工具在第二網(wǎng)絡(luò)線路上進(jìn)行8次網(wǎng)絡(luò)測速,得到第二網(wǎng)絡(luò)線路的Ping測速結(jié)果為50ms;使用Ping測速工具在第三網(wǎng)絡(luò)線路上進(jìn)行8次網(wǎng)絡(luò)測速,得到第三網(wǎng)絡(luò)線路的Ping測速結(jié)果為49ms。在該示例中,第一網(wǎng)絡(luò)線路的Ping測速結(jié)果和第三網(wǎng)絡(luò)線路的Ping測速結(jié)果之間的差值(7ms)大于第一預(yù)定閾值,因此選擇第一網(wǎng)絡(luò)線路、第二網(wǎng)絡(luò)線路、以及第三網(wǎng)絡(luò)線路中的利用Ping測速工具測得的網(wǎng)速最快的一條網(wǎng)絡(luò)線路(即,第三網(wǎng)絡(luò)線路)作為網(wǎng)絡(luò)應(yīng)用的客戶端和伺服端之間實(shí)際使用的網(wǎng)絡(luò)線路。
在第四示例中,網(wǎng)絡(luò)應(yīng)用的客戶端和伺服端之間存在包括第一網(wǎng)絡(luò)線路、第二網(wǎng)絡(luò)線路、以及第三網(wǎng)絡(luò)線路在內(nèi)的三條網(wǎng)絡(luò)線路,第一預(yù)定閾值為5ms。使用Ping測速工具在第一網(wǎng)絡(luò)線路上進(jìn)行8次網(wǎng)絡(luò)測速,得到第一網(wǎng)絡(luò)線路的Ping測速結(jié)果為53ms;使用Ping測速工具在第二網(wǎng)絡(luò)線路上進(jìn)行8次網(wǎng)絡(luò)測速,得到第二網(wǎng)絡(luò)線路的Ping測速結(jié)果為54ms;使用Ping測速工具在第三網(wǎng)絡(luò)線路上進(jìn)行8次網(wǎng)絡(luò)測速,得到第三網(wǎng)絡(luò)線路的Ping測速結(jié)果為51ms;由于第一網(wǎng)絡(luò)線路的Ping測速結(jié)果和第二網(wǎng)絡(luò)線路的Ping測速結(jié)果之間的差值(1ms)、第一網(wǎng)絡(luò)線路的Ping測速結(jié)果和第三網(wǎng)絡(luò)線路的Ping測速結(jié)果之間的差值(2ms)、第二網(wǎng)絡(luò)線路的Ping測速結(jié)果和第三網(wǎng)絡(luò)線路的Ping測速結(jié)果之間的差值(3ms)均不大于第一預(yù)定閾值,因此繼續(xù)使用TCP測速工具分別在第一網(wǎng)絡(luò)線路、第二網(wǎng)絡(luò)線路、以及第三網(wǎng)絡(luò)線路上進(jìn)行7次網(wǎng)絡(luò)測速,得到第一網(wǎng)絡(luò)線路的TCP測速結(jié)果為52ms、第二網(wǎng)絡(luò)線路的TCP測速結(jié)果為56ms、第三網(wǎng)絡(luò)線路的TCP測速結(jié)果為49ms。在該示例中,選擇第一網(wǎng)絡(luò)線路、第二網(wǎng)絡(luò)線路、以及第三網(wǎng)絡(luò)線路中的利用TCP測速工具測得的網(wǎng)速最快的一條網(wǎng)絡(luò)線路(即,第三網(wǎng)絡(luò)線路)作為網(wǎng)絡(luò)應(yīng)用的客戶端和伺服端之間實(shí)際使用的網(wǎng)絡(luò)線路。
圖3是示出根據(jù)本發(fā)明的示例實(shí)施例的在網(wǎng)絡(luò)應(yīng)用正常運(yùn)行期間對網(wǎng)絡(luò)應(yīng)用的客戶端與伺服端之間實(shí)際使用的網(wǎng)絡(luò)線路進(jìn)行測速的方法的流程圖。如圖3所示,該方法包括:
在302a處,利用Ping測速工具周期性地對網(wǎng)絡(luò)應(yīng)用的客戶端與伺服 端之間實(shí)際使用的網(wǎng)絡(luò)線路進(jìn)行一次以上網(wǎng)絡(luò)測速(例如,每隔1s利用Ping測速工具對網(wǎng)絡(luò)應(yīng)用的客戶端與伺服端之間實(shí)際使用的網(wǎng)絡(luò)線路進(jìn)行一次以上網(wǎng)絡(luò)測速),并將利用Ping測速工具測得的一個(gè)以上Ping測速值的平均值作為該條網(wǎng)絡(luò)線路的Ping測速結(jié)果。
在302b處,在利用Ping測速工具周期性地對網(wǎng)絡(luò)應(yīng)用的客戶端和伺服端之間實(shí)際使用的網(wǎng)絡(luò)線路進(jìn)行網(wǎng)絡(luò)測速的同時(shí),利用TCP測速工具周期性地對網(wǎng)絡(luò)應(yīng)用的客戶端和伺服端之間實(shí)際使用的網(wǎng)絡(luò)線路進(jìn)行一次以上網(wǎng)絡(luò)測速(例如,每隔1s利用TCP測速工具對網(wǎng)絡(luò)應(yīng)用的客戶端與伺服端之間實(shí)際使用的網(wǎng)絡(luò)線路進(jìn)行一次以上網(wǎng)絡(luò)測速),并將利用TCP測速工具測得的一個(gè)以上TCP測速值的平均值作為該條網(wǎng)絡(luò)線路的TCP測速結(jié)果。
在302c處,在進(jìn)行102a處和102b處的操作的同時(shí),利用網(wǎng)絡(luò)應(yīng)用內(nèi)的測速工具周期性地對網(wǎng)絡(luò)應(yīng)用的客戶端和伺服端之間實(shí)際使用的網(wǎng)絡(luò)線路進(jìn)行一次以上網(wǎng)絡(luò)測速(例如,每隔1s對網(wǎng)絡(luò)應(yīng)用的客戶端與伺服端之間實(shí)際使用的網(wǎng)絡(luò)線路進(jìn)行一次以上網(wǎng)絡(luò)測速),并將一個(gè)以上應(yīng)用內(nèi)測速值的平均值作為應(yīng)用內(nèi)測速結(jié)果。
在304處,判斷網(wǎng)絡(luò)應(yīng)用的客戶端和伺服端之間實(shí)際使用的網(wǎng)絡(luò)線路的Ping測速結(jié)果是否大于第二預(yù)定閾值。如果不是,則說明Ping測速工具測得的網(wǎng)絡(luò)速度在可以接受的范圍內(nèi),前進(jìn)到306處;如果是,則說明Ping測速工具測得的網(wǎng)絡(luò)速度過慢,前進(jìn)到308處。另外,當(dāng)網(wǎng)絡(luò)應(yīng)用的客戶端和伺服端之間實(shí)際使用的網(wǎng)絡(luò)線路的Ping測速結(jié)果無法獲得時(shí),也前進(jìn)到308處。
在306處,將Ping測速結(jié)果作為網(wǎng)絡(luò)應(yīng)用的客戶端與伺服端之間實(shí)際使用的網(wǎng)絡(luò)線路的網(wǎng)速表征。
在308處,將TCP測速結(jié)果作為網(wǎng)絡(luò)應(yīng)用的客戶端與伺服端之間實(shí)際使用的網(wǎng)絡(luò)線路的網(wǎng)速表征。
在310處,利用Ping測速結(jié)果或TCP測速結(jié)果、和應(yīng)用內(nèi)測速結(jié)果,即通過計(jì)算Ping測速結(jié)果或TCP測速結(jié)果和應(yīng)用內(nèi)測速結(jié)果之間的差值,得到網(wǎng)絡(luò)應(yīng)用的伺服端的邏輯延遲。
下面,詳細(xì)描述圖3所示的方法的應(yīng)用示例。
在第一示例中,第二預(yù)定閾值為100ms。使用Ping測速工具在網(wǎng)絡(luò)應(yīng)用的客戶端和伺服端之間實(shí)際使用的網(wǎng)絡(luò)線路上進(jìn)行10次網(wǎng)絡(luò)測速,得到Ping測速結(jié)果為49ms;使用TCP測速工具在網(wǎng)絡(luò)應(yīng)用的客戶端和伺服端之間實(shí)際使用的網(wǎng)絡(luò)線路上進(jìn)行10次網(wǎng)絡(luò)測速,得到TCP測速結(jié)果為55ms;由于Ping測速結(jié)果小于第二預(yù)定閾值,因此將Ping測速結(jié)果作為該網(wǎng)絡(luò)線路的網(wǎng)速表征;利用網(wǎng)絡(luò)應(yīng)用內(nèi)的測速工具得到的應(yīng)用內(nèi)測速結(jié)果為11ms;計(jì)算Ping測速結(jié)果與應(yīng)用內(nèi)測速結(jié)果之間的差值,得到網(wǎng)絡(luò)應(yīng)用的伺服端的邏輯延遲為38ms。
在第二示例中,第二預(yù)定閾值為100ms。使用Ping測速工具在網(wǎng)絡(luò)應(yīng)用的客戶端和伺服端之間實(shí)際使用的網(wǎng)絡(luò)線路上進(jìn)行10次網(wǎng)絡(luò)測速,得到Ping測速結(jié)果為105ms;使用TCP測速工具在網(wǎng)絡(luò)應(yīng)用的客戶端和伺服端之間實(shí)際使用的網(wǎng)絡(luò)線路上進(jìn)行10次網(wǎng)絡(luò)測速,得到TCP測速結(jié)果為60ms;由于Ping測速結(jié)果大于第二預(yù)定閾值,因此將TCP測速結(jié)果作為該網(wǎng)絡(luò)線路的網(wǎng)速表征;利用網(wǎng)絡(luò)應(yīng)用內(nèi)部測速工具得到的應(yīng)用內(nèi)測速結(jié)果為11ms;計(jì)算TCP測速結(jié)果與應(yīng)用內(nèi)測速結(jié)果之間的差值,得到網(wǎng)絡(luò)應(yīng)用的伺服端的邏輯延遲為49ms。
圖4是示出根據(jù)本發(fā)明的另一示例實(shí)施例的在網(wǎng)絡(luò)應(yīng)用的客戶端與伺服端之間的網(wǎng)絡(luò)連接斷開時(shí)對網(wǎng)絡(luò)應(yīng)用的客戶端與伺服端之間實(shí)際使用的網(wǎng)絡(luò)線路進(jìn)行測速的方法的流程圖。如圖4所示,該方法包括:
在402處,利用Ping測速工具周期性地對網(wǎng)絡(luò)應(yīng)用的客戶端與伺服端之間實(shí)際使用的網(wǎng)絡(luò)線路進(jìn)行一次以上網(wǎng)絡(luò)測速(例如,每隔1s利用Ping測速工具對網(wǎng)絡(luò)應(yīng)用的客戶端與伺服端之間實(shí)際使用的網(wǎng)絡(luò)線路進(jìn)行一次以上網(wǎng)絡(luò)測速),并將利用Ping測速工具測得的一個(gè)以上Ping測速值的平均值作為該條網(wǎng)絡(luò)線路的Ping測速結(jié)果。
在404處,判斷網(wǎng)絡(luò)應(yīng)用的客戶端和伺服端之間實(shí)際使用的網(wǎng)絡(luò)線路的Ping測速結(jié)果是否大于第二預(yù)定閾值。如果不是,前進(jìn)到406處;如果是,前進(jìn)到408處。另外,當(dāng)網(wǎng)絡(luò)應(yīng)用的客戶端和伺服端之間實(shí)際使用的網(wǎng)絡(luò)線路的Ping測速結(jié)果無法獲得時(shí),也前進(jìn)到408處。
在406處,在網(wǎng)絡(luò)應(yīng)用的客戶端和伺服端之間實(shí)際使用的網(wǎng)絡(luò)線路上重新建立網(wǎng)絡(luò)連接。
在408處,利用TCP測速工具周期性地對網(wǎng)絡(luò)應(yīng)用的客戶端與伺服端之間實(shí)際使用的網(wǎng)絡(luò)線路進(jìn)行一次以上網(wǎng)絡(luò)測速(例如,每隔1s利用TCP測速工具對網(wǎng)絡(luò)應(yīng)用的客戶端與伺服端之間實(shí)際使用的網(wǎng)絡(luò)線路進(jìn)行一次以上網(wǎng)絡(luò)測速),并將利用TCP測速工具測得的一個(gè)以上TCP測速值的平均值作為該條網(wǎng)絡(luò)線路的TCP測速結(jié)果。
在410處,判斷網(wǎng)絡(luò)應(yīng)用的客戶端和伺服端之間實(shí)際使用的網(wǎng)絡(luò)線路的TCP測速結(jié)果是否大于第三預(yù)定閾值。如果是,則返回到402處繼續(xù)利用Ping測速工具在網(wǎng)絡(luò)應(yīng)用的客戶端和伺服端之間實(shí)際使用的網(wǎng)絡(luò)線路上進(jìn)行網(wǎng)絡(luò)測速,否則前進(jìn)到406。
這里,可以在網(wǎng)絡(luò)應(yīng)用的客戶端增加測速模塊,該測速模塊設(shè)置有Ping測速接口和TCP測速接口并通過單獨(dú)的線程實(shí)現(xiàn)以上結(jié)合圖1至圖4描述的選線和/或測速過程。
綜上所述,本發(fā)明通過將多種測速工具相結(jié)合(例如,將Ping測速和TCP測速相結(jié)合,或者將Ping測速、TCP測速、以及網(wǎng)絡(luò)應(yīng)用內(nèi)的測速相結(jié)合),利用多種測速工具的優(yōu)點(diǎn)(例如,Ping測速的低消耗與高精度、和TCP測速的高穩(wěn)定性和獨(dú)立性,或者Ping測速的低消耗與高精度、TCP測速的高穩(wěn)定性和獨(dú)立性、以及網(wǎng)絡(luò)應(yīng)用內(nèi)測速的邏輯相干性)在高復(fù)雜的網(wǎng)絡(luò)情況下提供了網(wǎng)絡(luò)應(yīng)用各種狀態(tài)時(shí)的網(wǎng)絡(luò)連通性及延遲,從而可以在復(fù)雜情況下提供精準(zhǔn)的服務(wù)器延遲數(shù)據(jù),進(jìn)而提升網(wǎng)絡(luò)應(yīng)用的服務(wù)器的網(wǎng)絡(luò)流暢度。
本領(lǐng)域技術(shù)人員將理解,還存在可用于實(shí)現(xiàn)本發(fā)明實(shí)施例的更多可選實(shí)施方式和改進(jìn)方式,并且上述實(shí)施方式和示例僅是一個(gè)或多個(gè)實(shí)施例的說明。因此,本發(fā)明的范圍僅由所附權(quán)利要求書限制。