專利名稱:一種計算客戶端和中間層之間的網(wǎng)絡(luò)傳遞速度的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種計算客戶端和中間層之間企業(yè)管理軟件的網(wǎng)絡(luò)傳遞速度的方法。
背景技術(shù):
目前在企業(yè)中采用計算機進(jìn)行管理,可以大大提高管理的效率,同時也降低了管理成本及提高了時效,目前一般的企業(yè)管理軟件是三層結(jié)構(gòu),數(shù)據(jù)庫,中間層(業(yè)務(wù)層),客戶端(表現(xiàn)層)??蛻舳送ㄟ^特定的協(xié)議和中間層交互,這些交互往往成為軟件的性能瓶頸,特別是大型企業(yè)如果在管理中有大量的數(shù)據(jù)要傳輸,則可能會造成企業(yè)中局域網(wǎng)的堵塞,因此如果能夠?qū)蛻舳撕椭虚g層之間的網(wǎng)絡(luò)傳遞速度進(jìn)行有效地檢測,得到實際的數(shù)據(jù)傳遞速度,可以對于企業(yè)的計算機管理中的網(wǎng)絡(luò)設(shè)置作出正確的設(shè)計。以避免客戶端和中間層的數(shù)據(jù)交互成為軟件的性能瓶頸。但是目前的計算客戶端和中間層之間的網(wǎng)絡(luò)傳遞速度的方法,往往是采用下載文件或網(wǎng)絡(luò)測速工具進(jìn)行模擬測速,而網(wǎng)速具有波動性,特別是多臺設(shè)備多種應(yīng)用共享同一網(wǎng)絡(luò)帶寬時,另外應(yīng)用程序不同時段同時上線用戶數(shù)不同, 使用功能不同,使用強度不同,數(shù)據(jù)包大小不同,很難準(zhǔn)確模擬,無法準(zhǔn)確測出網(wǎng)絡(luò)速度,因此亟待發(fā)明出新的計算客戶端和中間層之間的網(wǎng)絡(luò)傳遞速度的方法,以解決目前存在的計算客戶端和中間層之間的網(wǎng)絡(luò)傳遞速度無法準(zhǔn)確計算的問題。
發(fā)明內(nèi)容
本發(fā)明的目的是解決現(xiàn)有技術(shù)中采用模擬測速方法來計算客戶端和中間層之間的網(wǎng)絡(luò)傳遞速度所存在的準(zhǔn)確性問題,提供一種計算客戶端和中間層之間的網(wǎng)絡(luò)傳遞速度的方法。本發(fā)明設(shè)計一種計算客戶端和中間層之間的網(wǎng)絡(luò)傳遞速度的方法,其特征在于由下列步驟組成
(1)客戶端產(chǎn)生請求將請求打包成中間層可以理解的數(shù)據(jù)包,
(2)客戶端將數(shù)據(jù)包發(fā)給中間層,在數(shù)據(jù)包頭上增加字段ClientSendTime,記錄客戶端的發(fā)送時間,增加字段ClientSize,記錄包的大小,
(3)中間層收到客戶端的數(shù)據(jù)包,在數(shù)據(jù)包頭上增加字段ServerRecvTime,記錄中間層的接收時間,
(4)中間層解釋數(shù)據(jù)包,處理生成新的結(jié)果,將新的結(jié)果打成新數(shù)據(jù)包,在新數(shù)據(jù)包頭上記錄字段 ClientSendTime, ClientSize, ServerRecvTime,增加字段 ServerSendTime,記錄中間層發(fā)送時間,增加字段ServerSize,記錄中間層生成的新包大小,
(5)中間層將新數(shù)據(jù)包發(fā)給客戶端,
(6)客戶端收到中間層生成的新數(shù)據(jù)包,增加字段ClientRecvTime,記錄客戶端收到的時間,另外從新數(shù)據(jù)包頭取得ClientSendTime, ClientSize, ServerRecvTime,ServerSendTime, ServerSize 的值,
(7)客戶端解釋新的數(shù)據(jù)包,在界面給用戶響應(yīng),
(8)得到客戶端和中間層之間的網(wǎng)絡(luò)傳遞速度為(ClientSize+ ServerSize)/ (ServerRecvTime - ClientSendTime +ClientRecvTime - ServerSendTime),其中ServerRecvTime - ClientSendTime為客戶端和中間層兩個不同的物理機器的固定時差。本發(fā)明的優(yōu)點是(I)計算傳遞速度時考慮服務(wù)器的開銷,(2)允許中間層和客戶端存在不可估計的時差,(3)具體實現(xiàn)和編程語言無關(guān)和底級協(xié)議無關(guān),底層協(xié)議可采用http、https、socket 等。
具體實施例方式下面結(jié)合實施例對本發(fā)明作詳細(xì)說明,
(1)客戶端產(chǎn)生請求將請求打包成中間層可以理解的數(shù)據(jù)包,
(2)客戶端將數(shù)據(jù)包發(fā)給中間層,在數(shù)據(jù)包頭上增加字段ClientSendTime,記錄客戶端的發(fā)送時間,增加字段ClientSize,記錄包的大小,
(3)中間層收到客戶端的數(shù)據(jù)包,在數(shù)據(jù)包頭上增加字段ServerRecvTime,記錄中間層的接收時間,
(4)中間層解釋數(shù)據(jù)包,處理生成新的結(jié)果,將新的結(jié)果打成新數(shù)據(jù)包,在新數(shù)據(jù)包頭上記錄字段 ClientSendTime, ClientSize, ServerRecvTime,增加字段 ServerSendTime,記錄中間層發(fā)送時間,增加字段ServerSize,記錄中間層生成的新包大小,
(5)中間層將新數(shù)據(jù)包發(fā)給客戶端,
(6)客戶端收到中間層生成的新數(shù)據(jù)包,增加字段ClientRecvTime,記錄客戶端收到的時間,另外從新數(shù)據(jù)包頭取得ClientSendTime, ClientSize, ServerRecvTime,ServerSendTime, ServerSize 的值,
(7)客戶端解釋新的數(shù)據(jù)包,在界面給用戶響應(yīng),
(8)得到客戶端和中間層之間的網(wǎng)絡(luò)傳遞速度為(ClientSize+ ServerSize)/ (ServerRecvTime - ClientSendTime +ClientRecvTime - ServerSendTime),其中ServerRecvTime - ClientSendTime為客戶端和中間層兩個不同的物理機器的固定時差。上海博科資訊股份有限公司的Yigo平臺產(chǎn)品中實現(xiàn)了以上方法,
下面列舉一個真實調(diào)用的例子,其六個值分別如下
ClientSendTime 1355210038111,
ClientSize 348,
ServerRecvTime: 1355210040158,
ServerSendTime 355210040236,
ServerSize 4627,
ClientRecvTime 1355210038239,
size單位為byte, time單位為ms,以1970年某一時刻作為參照的值,
如果不考慮時差,ClientRecvTime - ServerSendTime居然是負(fù)數(shù),也就是說服務(wù)端傳遞到客戶端所花時間為負(fù)數(shù),顯然不合理。根據(jù)本方法可計算出網(wǎng)絡(luò)傳輸速度=(ClientSize + ServerSize) / (ServerRecvTime - ClientSendTime + ClientRecvTime - ServerSendTime)=
(348 + 4627) / (1355210040158 - 1355210038111 + 1355210038239 -1355210040236) = 4975 / 51 = 97. 5byte/ms。
當(dāng)然多次調(diào)用累計更能說明問題,如下數(shù)據(jù)是一個真實項目所記錄的部分?jǐn)?shù)據(jù),遠(yuǎn)程訪問221次,發(fā)送數(shù)據(jù)92. 54KB,接收數(shù)據(jù)1266. 016KB,網(wǎng)絡(luò)傳輸用時1. 881s,網(wǎng)絡(luò)傳輸速度705. 324KB/s,中間層用時6. 202s。 這些數(shù)據(jù)說明,客戶端和服務(wù)器的221次交互中,共傳輸了約1358KB數(shù)據(jù),網(wǎng)絡(luò)傳輸速度700多KB/s,應(yīng)該說網(wǎng)絡(luò)環(huán)境非常好。
權(quán)利要求
1. 一種計算客戶端和中間層之間的網(wǎng)絡(luò)傳遞速度的方法,其特征在于由下列步驟組成 (1)客戶端產(chǎn)生請求將請求打包成中間層可以理解的數(shù)據(jù)包, (2)客戶端將數(shù)據(jù)包發(fā)給中間層,在數(shù)據(jù)包頭上增加字段ClientSendTime,記錄客戶端的發(fā)送時間,增加字段ClientSize,記錄包的大小, (3)中間層收到客戶端的數(shù)據(jù)包,在數(shù)據(jù)包頭上增加字段ServerRecvTime,記錄中間層的接收時間, (4)中間層解釋數(shù)據(jù)包,處理生成新的結(jié)果,將新的結(jié)果打成新數(shù)據(jù)包,在新數(shù)據(jù)包頭上記錄字段 ClientSendTime, ClientSize, ServerRecvTime,增加字段 ServerSendTime,記錄中間層發(fā)送時間,增加字段ServerSize,記錄中間層生成的新包大小, (5)中間層將新數(shù)據(jù)包發(fā)給客戶端, (6)客戶端收到中間層生成的新數(shù)據(jù)包,增加字段ClientRecvTime,記錄客戶端收到的時間,另外從新數(shù)據(jù)包頭取得ClientSendTime, ClientSize, ServerRecvTime,ServerSendTime, ServerSize 的值, (7)客戶端解釋新的數(shù)據(jù)包,在界面給用戶響應(yīng), (8)得到客戶端和中間層之間的網(wǎng)絡(luò)傳遞速度為(ClientSize+ ServerSize)/ (ServerRecvTime - ClientSendTime +ClientRecvTime - ServerSendTime),其中ServerRecvTime - ClientSendTime為客戶端和中間層兩個不同的物理機器的固定時差。
全文摘要
本發(fā)明涉及一種計算客戶端和中間層之間的網(wǎng)絡(luò)傳遞速度的方法。其特征在于由下列步驟組成客戶端將數(shù)據(jù)包發(fā)給中間層,在數(shù)據(jù)包頭上增加字段記錄客戶端的發(fā)送時間,增加字段記錄包的大小,中間層收到客戶端的數(shù)據(jù)包,在數(shù)據(jù)包頭上增加字段記錄中間層的接收時間,中間層將新的結(jié)果打成新數(shù)據(jù)包,在新數(shù)據(jù)包頭上增加字段,記錄中間層發(fā)送時間,增加字段記錄中間層生成的新包大小,中間層將新數(shù)據(jù)包發(fā)給客戶端,客戶端收到中間層的新數(shù)據(jù)包,從新數(shù)據(jù)包頭取得各個值,客戶端解釋新的數(shù)據(jù)包,(8)客戶端解釋新的數(shù)據(jù)包,經(jīng)過計算得到客戶端和中間層之間的網(wǎng)絡(luò)傳遞速度,本發(fā)明的優(yōu)點是考慮服務(wù)器的開銷,允許中間層和客戶端存在時差,實現(xiàn)和編程語言無關(guān)和底級協(xié)議無關(guān)底層協(xié)議。
文檔編號H04L12/26GK103001830SQ201210550940
公開日2013年3月27日 申請日期2012年12月18日 優(yōu)先權(quán)日2012年12月18日
發(fā)明者蔣正華, 王元和, 周小偉 申請人:上海博科資訊股份有限公司