本發(fā)明涉及網絡通信領域,特別是涉及一種網絡帶寬測試方法、客戶端及網絡帶寬測試系統(tǒng)。
背景技術:
精確地測量應用程序的帶寬是很有意義的,它不僅可以幫助應用程序的使用者了解應用程序的性能,更重要的是可以讓應用程序的開發(fā)者發(fā)現(xiàn)網絡帶寬的瓶頸所在,從而對應用程序進行優(yōu)化,避免擁塞的發(fā)生,實現(xiàn)更好的擁塞控制策略?,F(xiàn)有的帶寬測試方法主要有兩種,其他的算法都是在它們的基礎之上的改進。一種是單數(shù)據包技術,另一種是數(shù)據包對技術。
單數(shù)據包技術通常稱為可變大小數(shù)據包技術,因為它向網絡發(fā)送大小變化的探測數(shù)據包并統(tǒng)計達到目的端的時延來測試網絡的帶寬,而網絡的時延由傳播時延、排隊時延、發(fā)送時延組成。其基本原理是如果一個大小已知的數(shù)據包經過一條鏈路的時間已知,則該鏈路的帶寬就可以計算出來,其測試到的結果是網絡的容量。
數(shù)據包對技術則是利用數(shù)據包在傳輸過程中形成的時間間隔來測試帶寬。其基本原理是在前后兩個數(shù)據包的傳播時延與排隊時延相同的條件下,接收端接收兩個數(shù)據包的時間間隔與數(shù)據包的大小成正比,和鏈路的帶寬成反比。數(shù)據包對技術所測試的是鏈路的瓶頸帶寬或是可用帶寬,而不是單個數(shù)據包技術所測得的鏈路的容量。
這兩種測試技術可以用來測試每一條鏈路的帶寬,也可用來測試端到端的帶寬。無論哪種方法,數(shù)據包傳輸時間的確定都需要客戶端與服務端積極參與,不僅要確保兩端的測試主機具有精確的時鐘,而且需要兩端測試主機的時鐘必須同步,另外在每一端的測試主機上還必須部署測試軟件,而在測量分布式集群的帶寬時,由于服務端節(jié)點一般大于三個,網絡帶寬的測試過程將更加復雜,因而不能夠直接應用于分布式集群的帶寬測試。
技術實現(xiàn)要素:
有鑒于此,本發(fā)明的目的在于提供一種網絡帶寬測試方法、客戶端及網絡帶寬測試系統(tǒng),可以保證測試結果的可靠性、完整性,測試過程簡單化,提高了網絡帶寬的測試效率。其具體方案如下:
一種網絡帶寬測試方法,包括:
向服務端發(fā)送測試信息后,統(tǒng)計所述服務端的反饋模塊在預定時間內傳遞來的反饋信息的數(shù)量;
根據統(tǒng)計的所述反饋信息的數(shù)量,確定在所述預定時間內發(fā)送的測試信息的數(shù)量;
根據所述預定時間、在所述預定時間內發(fā)送的測試信息的數(shù)量以及每條測試消息的字節(jié)長度,計算出網絡帶寬。
優(yōu)選地,在本發(fā)明實施例提供的上述網絡帶寬測試方法中,采用下列公式計算網絡帶寬:
bw=n·m/t
其中,bw表示所述網絡帶寬,t表示所述預定時間,n表示在所述預定時間內發(fā)送的測試信息的數(shù)量,m表示每條測試信息的字節(jié)長度。
優(yōu)選地,在本發(fā)明實施例提供的上述網絡帶寬測試方法中,統(tǒng)計所述服務端的反饋模塊在預定時間內傳遞來的反饋信息的數(shù)量,具體包括:
多次統(tǒng)計所述服務端的反饋模塊在預定時間內傳遞來的反饋信息的數(shù)量;
在計算出網絡帶寬之后,還包括:
根據統(tǒng)計的次數(shù)、以及計算出的網絡帶寬,確定平均網絡帶寬值,所述平均網絡帶寬值作為最終的網絡帶寬。
優(yōu)選地,在本發(fā)明實施例提供的上述網絡帶寬測試方法中,采用下列方式計算平均網絡帶寬值:
ave.bw=bw/n
其中,ave.bw表示所述平均網絡帶寬值,bw表示所述網絡帶寬,n表示所述統(tǒng)計的次數(shù)。
優(yōu)選地,在本發(fā)明實施例提供的上述網絡帶寬測試方法中,在預定時間內,所述反饋信息的數(shù)量等于所述測試信息的數(shù)量。
優(yōu)選地,在本發(fā)明實施例提供的上述網絡帶寬測試方法中,所述反饋信息的字節(jié)長度小于所述測試信息的字節(jié)長度。
優(yōu)選地,在本發(fā)明實施例提供的上述網絡帶寬測試方法中,所述反饋模塊設置在所述服務端的集群各節(jié)點中。
本發(fā)明實施例還提供了一種客戶端,包括:
反饋信息統(tǒng)計模塊,用于向服務端發(fā)送測試信息后,統(tǒng)計所述服務端的反饋模塊在預定時間內傳遞來的反饋信息的數(shù)量;
測試信息確定模塊,用于根據統(tǒng)計的所述反饋信息的數(shù)量,確定在所述預定時間內發(fā)送的測試信息的數(shù)量;
網絡帶寬計算模塊,用于根據所述預定時間、在所述預定時間內發(fā)送的測試信息的數(shù)量以及每條測試消息的字節(jié)長度,計算出網絡帶寬。
本發(fā)明實施例還提供了一種網絡帶寬測試系統(tǒng),包括:本發(fā)明實施例提供的上述客戶端以及服務端。
本發(fā)明所提供的一種網絡帶寬測試方法、客戶端及網絡帶寬測試系統(tǒng),包括:向服務端發(fā)送測試信息后,統(tǒng)計服務端的反饋模塊在預定時間內傳遞來的反饋信息的數(shù)量;根據統(tǒng)計的反饋信息的數(shù)量,確定在預定時間內發(fā)送的測試信息的數(shù)量;根據預定時間、在預定時間內發(fā)送的測試信息的數(shù)量以及每條測試消息的字節(jié)長度,計算出網絡帶寬。本發(fā)明通過測試客戶端在預定時間內成功發(fā)送的信息數(shù),來計算網絡帶寬,保證了測試結果的可靠性;同時,避免了統(tǒng)計服務端集群中各個節(jié)點的接收信息數(shù),只需統(tǒng)計客戶端在預定時間接收的反饋信息數(shù),從而保證了測試結果的完整性,測試過程簡單化,提高了網絡帶寬的測試效率。
附圖說明
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術中的技術方案,下面將對實施例或現(xiàn)有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據提供的附圖獲得其他的附圖。
圖1為本發(fā)明實施例提供的網絡帶寬測試方法的流程圖之一;
圖2為本發(fā)明實施例提供的網絡帶寬測試方法的流程圖之二;
圖3為本發(fā)明實施例提供的客戶端的結構示意圖。
具體實施方式
下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
本發(fā)明提供一種網絡帶寬測試方法,如圖1所示,包括以下步驟:
s101、向服務端發(fā)送測試信息后,統(tǒng)計服務端的反饋模塊在預定時間內傳遞來的反饋信息的數(shù)量;
s102、根據統(tǒng)計的反饋信息的數(shù)量,確定在預定時間內發(fā)送的測試信息的數(shù)量;
s103、根據預定時間、在預定時間內發(fā)送的測試信息的數(shù)量以及每條測試消息的字節(jié)長度,計算出網絡帶寬。
在本發(fā)明實施例提供的上述網絡帶寬測試方法中,首先向服務端發(fā)送測試信息后,統(tǒng)計服務端的反饋模塊在預定時間內傳遞來的反饋信息的數(shù)量;然后根據統(tǒng)計的反饋信息的數(shù)量,確定在預定時間內發(fā)送的測試信息的數(shù)量;最后根據預定時間、在預定時間內發(fā)送的測試信息的數(shù)量以及每條測試消息的字節(jié)長度,計算出網絡帶寬。本發(fā)明通過測試在預定時間內成功發(fā)送的信息數(shù)來計算網絡帶寬,保證了測試結果的可靠性;同時,避免了統(tǒng)計服務端集群中各個節(jié)點接收到的測試信息數(shù),只需統(tǒng)計在預定時間接收的反饋信息數(shù),從而保證了測試結果的完整性,測試過程簡單化,提高了網絡帶寬的測試效率。另外,該測試方法保持特定的復雜度不會隨著服務端節(jié)點的增加而不斷增大。
進一步地,在具體實施時,在本發(fā)明實施例提供的上述網絡帶寬測試方法中,采用下列公式計算網絡帶寬:
bw=n·m/t
其中,bw表示網絡帶寬,t表示預定時間,n表示在預定時間內發(fā)送的測試信息的數(shù)量,m表示每條測試信息的字節(jié)長度。
在具體實施時,在本發(fā)明實施例提供的上述網絡帶寬測試方法中,為了保證統(tǒng)計的靈活性與測試結果的可靠性,如圖2所示,步驟s101統(tǒng)計服務端的反饋模塊在預定時間內傳遞來的反饋信息的數(shù)量,具體可以包括:
s201、多次統(tǒng)計服務端的反饋模塊在預定時間內傳遞來的反饋信息的數(shù)量;
在執(zhí)行步驟s103計算出網絡帶寬之后,還包括:
s202、根據統(tǒng)計的次數(shù)、以及計算出的網絡帶寬,確定平均網絡帶寬值,平均網絡帶寬值作為最終的網絡帶寬。
上述步驟可以理解為每隔一段時間統(tǒng)計一次結果,在整個測試時間段內統(tǒng)計多次結果,這樣可以提高測試的準確性。
進一步地,在具體實施時,在本發(fā)明實施例提供的上述網絡帶寬測試方法中,采用下列方式計算平均網絡帶寬值:
ave.bw=bw/n
其中,ave.bw表示平均網絡帶寬值,bw表示網絡帶寬,n表示統(tǒng)計的次數(shù)。
在具體實施時,在本發(fā)明實施例提供的上述網絡帶寬測試方法中,為了測試簡單化,在預定時間內,反饋信息的數(shù)量可以等于測試信息的數(shù)量,也就是說,向服務端發(fā)送一條測試信息后,服務端的反饋模塊會傳遞來一條反饋信息,反饋信息與測試信息是一一對應的關系。
在具體實施時,在本發(fā)明實施例提供的上述網絡帶寬測試方法中,反饋信息的字節(jié)長度可以小于測試信息的字節(jié)長度,這樣避免對測試帶寬產生影響。
在具體實施時,在本發(fā)明實施例提供的上述網絡帶寬測試方法中,反饋模塊設置在服務端的集群各節(jié)點中。
基于同一發(fā)明構思,本發(fā)明實施例還提供了一種客戶端,由于該客戶端解決問題的原理與前述一種網絡帶寬測試方法相似,因此該客戶端的實施可以參見網絡帶寬測試方法的實施,重復之處不再贅述。
在具體實施時,本發(fā)明實施例提供的客戶端,如圖3所示,可以包括:
反饋信息統(tǒng)計模塊11,用于向服務端發(fā)送測試信息后,統(tǒng)計服務端的反饋模塊在預定時間內傳遞來的反饋信息的數(shù)量;
測試信息確定模塊12,用于根據統(tǒng)計的反饋信息的數(shù)量,確定在預定時間內發(fā)送的測試信息的數(shù)量;
網絡帶寬計算模塊13,用于根據預定時間、在預定時間內發(fā)送的測試信息的數(shù)量以及每條測試消息的字節(jié)長度,計算出網絡帶寬。
在本發(fā)明實施例提供的上述客戶端中,可以只通過測試該客戶端在預定時間內成功發(fā)送的信息數(shù),來計算網絡帶寬,保證了測試結果的可靠性;同時,避免了統(tǒng)計服務端集群中各個節(jié)點的接收信息數(shù),只需統(tǒng)計該客戶端在預定時間接收的反饋信息數(shù),從而保證了測試結果的完整性,測試過程簡單化,提高了網絡帶寬的測試效率。
基于同一發(fā)明構思,本發(fā)明實施例還提供了一種網絡帶寬測試系統(tǒng),包括:本發(fā)明實施例提供的上述客戶端以及服務端。
本發(fā)明實施例提供的一種網絡帶寬測試方法、客戶端及網絡帶寬測試系統(tǒng),包括:向服務端發(fā)送測試信息后,統(tǒng)計服務端的反饋模塊在預定時間內傳遞來的反饋信息的數(shù)量;根據統(tǒng)計的反饋信息的數(shù)量,確定在預定時間內發(fā)送的測試信息的數(shù)量;根據預定時間、在預定時間內發(fā)送的測試信息的數(shù)量以及每條測試消息的字節(jié)長度,計算出網絡帶寬。本發(fā)明通過測試客戶端在預定時間內成功發(fā)送的信息數(shù),來計算網絡帶寬,保證了測試結果的可靠性;同時,避免了統(tǒng)計服務端集群中各個節(jié)點的接收信息數(shù),只需統(tǒng)計客戶端在預定時間接收的反饋信息數(shù),從而保證了測試結果的完整性,測試過程簡單化,提高了網絡帶寬的測試效率。
最后,還需要說明的是,在本文中,諸如第一和第二等之類的關系術語僅僅用來將一個實體或者操作與另一個實體或操作區(qū)分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關系或者順序。而且,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設備中還存在另外的相同要素。
以上對本發(fā)明所提供的網絡帶寬測試方法、客戶端及網絡帶寬測試系統(tǒng)進行了詳細介紹,本文中應用了具體個例對本發(fā)明的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想;同時,對于本領域的一般技術人員,依據本發(fā)明的思想,在具體實施方式及應用范圍上均會有改變之處,綜上所述,本說明書內容不應理解為對本發(fā)明的限制。