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