本發(fā)明涉及通信技術(shù)領(lǐng)域,尤其涉及一種移動(dòng)網(wǎng)絡(luò)的性能測試方法、移動(dòng)終端、服務(wù)器及測試系統(tǒng)。
背景技術(shù):
目前針對移動(dòng)網(wǎng)絡(luò)的優(yōu)化逐漸集中到用戶感知上,而用戶感知的影響因素很顯然是很復(fù)雜的,排除資費(fèi)、心理差異等因素外,從終端到服務(wù)器的端到端鏈路上的所有環(huán)節(jié),都可能會(huì)對業(yè)務(wù)的性能造成影響,進(jìn)而波及到用戶對業(yè)務(wù)質(zhì)量的感知。
目前的優(yōu)化手段,往往關(guān)注在端到端鏈路上的某個(gè)單點(diǎn)上,例如終端側(cè)抓包、接入網(wǎng)內(nèi)部網(wǎng)元抓包、或采用硬探針設(shè)備進(jìn)行監(jiān)聽分析等。這些手段能解決部分問題,但當(dāng)需要針對單個(gè)投訴案例進(jìn)行深入分析某項(xiàng)指標(biāo)時(shí),如需要逐跳、逐包進(jìn)行分析和排查時(shí),仍然顯得力有不逮。
上述內(nèi)容僅用于輔助理解本發(fā)明的技術(shù)方案,并不代表承認(rèn)上述內(nèi)容是現(xiàn)有技術(shù)。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的主要目的在于提供一種移動(dòng)網(wǎng)絡(luò)的性能測試方法、移動(dòng)終端、服務(wù)器及測試系統(tǒng),旨在利用移動(dòng)終端對真實(shí)網(wǎng)絡(luò)進(jìn)行性能測試,以獲取針對端到端鏈路上的丟包、亂序和吞吐率等指標(biāo),從而可以對移動(dòng)網(wǎng)絡(luò)進(jìn)行精確診斷。
為實(shí)現(xiàn)上述目的,本發(fā)明提供的一種移動(dòng)網(wǎng)絡(luò)的性能測試方法,所述移動(dòng)網(wǎng)絡(luò)的性能測試方法包括以下步驟:
移動(dòng)終端發(fā)送第一類型控制包至服務(wù)器,并在接收到所述服務(wù)器的回復(fù)后連續(xù)發(fā)送預(yù)定數(shù)量的第一類型數(shù)據(jù)包至所述服務(wù)器;
待所述第一類型數(shù)據(jù)包發(fā)送完畢,移動(dòng)終端發(fā)送第二類型控制包至所述 服務(wù)器,以告知所述服務(wù)器本輪上行數(shù)據(jù)發(fā)送完成;
接收所述服務(wù)器發(fā)送的第二類型數(shù)據(jù)包,并在接收到所述服務(wù)器發(fā)送的第三類型控制包時(shí),獲取所述服務(wù)器計(jì)算的上行性能統(tǒng)計(jì)數(shù)據(jù),并計(jì)算本輪的下行性能統(tǒng)計(jì)數(shù)據(jù),將所述上行性能統(tǒng)計(jì)數(shù)據(jù)和下行性能統(tǒng)計(jì)數(shù)據(jù)寫入測試日志文件。
優(yōu)選地,所述接收所述服務(wù)器發(fā)送的第二類型數(shù)據(jù)包的步驟之后還包括:
判斷所述第二類型數(shù)據(jù)包的移動(dòng)終端時(shí)戳彈回字段是否為第一預(yù)定值;
若否,則獲取所述第二類型數(shù)據(jù)包的接收時(shí)刻;
計(jì)算所述接收時(shí)刻、第一預(yù)定值以及所述服務(wù)器內(nèi)部處理時(shí)延之間的差值,得到有效時(shí)延,并將所述有效時(shí)延記錄到所述測試日志文件中;
其中,所述服務(wù)器內(nèi)部處理時(shí)延為所述服務(wù)器根據(jù)當(dāng)前時(shí)刻與所述第一類型數(shù)據(jù)包放入隊(duì)列的入隊(duì)時(shí)刻之間的差值計(jì)算得到。
優(yōu)選地,所述在接收到所述服務(wù)器發(fā)送的第三類型控制包時(shí),獲取所述服務(wù)器計(jì)算的上行性能統(tǒng)計(jì)數(shù)據(jù),并計(jì)算本輪的下行性能統(tǒng)計(jì)數(shù)據(jù),將所述上行性能統(tǒng)計(jì)數(shù)據(jù)和下行性能統(tǒng)計(jì)數(shù)據(jù)寫入測試日志文件的步驟包括:
所述移動(dòng)終端在接收到所述第三類型控制包時(shí),從所述第三類型控制包中獲取所述服務(wù)器計(jì)算的上行性能統(tǒng)計(jì)數(shù)據(jù);
根據(jù)與所述服務(wù)器側(cè)對應(yīng)的隊(duì)列,計(jì)算本輪包括丟包率、亂序率以及吞吐率指標(biāo)的下行性能統(tǒng)計(jì)數(shù)據(jù);
根據(jù)所述下行性能統(tǒng)計(jì)數(shù)據(jù),結(jié)合所述上行性能統(tǒng)計(jì)數(shù)據(jù),綜合整理成本輪測試的最終結(jié)果,記錄到所述測試日志文件中。
為實(shí)現(xiàn)上述目的,本發(fā)明還提供一種移動(dòng)網(wǎng)絡(luò)的性能測試方法,所述移動(dòng)網(wǎng)絡(luò)的性能測試方法包括:
服務(wù)器在接收到移動(dòng)終端發(fā)送的第一類型控制包時(shí),將所述第一類型控制包彈回至所述移動(dòng)終端;
接收所述移動(dòng)終端發(fā)送的第一類型數(shù)據(jù)包,并在接收到所述移動(dòng)終端發(fā)送的第二類型控制包時(shí),向所述移動(dòng)終端連續(xù)發(fā)送預(yù)定數(shù)量的第二類型數(shù)據(jù)包;
待所述第二類型數(shù)據(jù)包發(fā)送完畢,計(jì)算出本輪的上行性能統(tǒng)計(jì)數(shù)據(jù),并將所述上行性能統(tǒng)計(jì)數(shù)據(jù)放入第三類型控制包中,再將所述第三類型控制包 發(fā)送至所述移動(dòng)終端,以供所述移動(dòng)終端將所述上行性能統(tǒng)計(jì)數(shù)據(jù)以及計(jì)算出的下行性能統(tǒng)計(jì)數(shù)據(jù)寫入測試日志文件。
優(yōu)選地,所述服務(wù)器在接收到移動(dòng)終端發(fā)送的第一類型控制包時(shí),將所述第一類型控制包彈回至所述移動(dòng)終端的步驟包括:
所述服務(wù)器解析出所述第一類型控制包中含有的國際移動(dòng)用戶識別碼imsi,并根據(jù)所述imsi查找對應(yīng)的用戶記錄;
若查找到用戶記錄,所述服務(wù)器則將所述第一類型控制包彈回至所述移動(dòng)終端,并新建用戶記錄;
若否,所述服務(wù)器則新建用戶記錄,并將所述第一類型控制包彈回至所述移動(dòng)終端。
優(yōu)選地,所述服務(wù)器在接收到移動(dòng)終端發(fā)送的第一類型控制包時(shí),將所述第一類型控制包彈回至所述移動(dòng)終端的步驟之后還包括:
所述服務(wù)器根據(jù)所述imsi查找對應(yīng)的用戶記錄;
若查找到用戶記錄,所述服務(wù)器則抽取所述第一類型數(shù)據(jù)包的發(fā)包輪數(shù)、移動(dòng)終端側(cè)發(fā)包時(shí)戳字段以及所述序列號,并根據(jù)所述序列號將所述第一類型數(shù)據(jù)包放入隊(duì)列的預(yù)定位置,并設(shè)置所述隊(duì)列的到位字段為第二預(yù)定值;
若否,則忽略所述第一類型數(shù)據(jù)包。
優(yōu)選地,所述根據(jù)所述序列號將所述第一類型數(shù)據(jù)包放入隊(duì)列的預(yù)定位置,并設(shè)置所述隊(duì)列的到位字段為第二預(yù)定值的步驟之后還包括:
所述服務(wù)器獲取當(dāng)前時(shí)刻以及所述第一類型數(shù)據(jù)包放入隊(duì)列的入隊(duì)時(shí)刻;
計(jì)算所述當(dāng)前時(shí)刻與所述入隊(duì)時(shí)刻之間的差值,得到服務(wù)器內(nèi)部處理時(shí)延。
為實(shí)現(xiàn)上述目的,本發(fā)明還提供一種移動(dòng)終端,所述移動(dòng)終端包括:
第一發(fā)送模塊,用于發(fā)送第一類型控制包至服務(wù)器,并在接收到所述服務(wù)器的回復(fù)后連續(xù)發(fā)送預(yù)定數(shù)量的第一類型數(shù)據(jù)包至所述服務(wù)器;
第二發(fā)送模塊,用于待所述第一類型數(shù)據(jù)包發(fā)送完畢,移動(dòng)終端發(fā)送第二類型控制包至所述服務(wù)器,以告知所述服務(wù)器本輪上行數(shù)據(jù)發(fā)送完成;
計(jì)算處理模塊,用于接收所述服務(wù)器發(fā)送的第二類型數(shù)據(jù)包,并在接收到所述服務(wù)器發(fā)送的第三類型控制包時(shí),獲取所述服務(wù)器計(jì)算的上行性能統(tǒng)計(jì)數(shù)據(jù),并計(jì)算本輪的下行性能統(tǒng)計(jì)數(shù)據(jù),將所述上行性能統(tǒng)計(jì)數(shù)據(jù)和下行 性能統(tǒng)計(jì)數(shù)據(jù)寫入測試日志文件。
優(yōu)選地,所述服務(wù)器包括:
彈回模塊,用于在接收到移動(dòng)終端發(fā)送的第一類型控制包時(shí),將所述第一類型控制包彈回至所述移動(dòng)終端;
第三發(fā)送模塊,用于接收所述移動(dòng)終端發(fā)送的第一類型數(shù)據(jù)包,并在接收到所述移動(dòng)終端發(fā)送的第二類型控制包時(shí),向所述移動(dòng)終端連續(xù)發(fā)送預(yù)定數(shù)量的第二類型數(shù)據(jù)包;
第四發(fā)送模塊,用于待所述第二類型數(shù)據(jù)包發(fā)送完畢,計(jì)算出本輪的上行性能統(tǒng)計(jì)數(shù)據(jù),并將所述上行性能統(tǒng)計(jì)數(shù)據(jù)放入第三類型控制包中,再將所述第三類型控制包發(fā)送至所述移動(dòng)終端,以供所述移動(dòng)終端將所述上行性能統(tǒng)計(jì)數(shù)據(jù)以及計(jì)算出的下行性能統(tǒng)計(jì)數(shù)據(jù)寫入測試日志文件。
為實(shí)現(xiàn)上述目的,本發(fā)明還提供一種測試系統(tǒng),所述測試系統(tǒng)包括移動(dòng)終端和服務(wù)器,
所述移動(dòng)終端包括:
第一發(fā)送模塊,用于發(fā)送第一類型控制包至服務(wù)器,并在接收到所述服務(wù)器的回復(fù)后連續(xù)發(fā)送預(yù)定數(shù)量的第一類型數(shù)據(jù)包至所述服務(wù)器;
第二發(fā)送模塊,用于待所述第一類型數(shù)據(jù)包發(fā)送完畢,移動(dòng)終端發(fā)送第二類型控制包至所述服務(wù)器,以告知所述服務(wù)器本輪上行數(shù)據(jù)發(fā)送完成;
計(jì)算處理模塊,用于接收所述服務(wù)器發(fā)送的第二類型數(shù)據(jù)包,并在接收到所述服務(wù)器發(fā)送的第三類型控制包時(shí),獲取所述服務(wù)器計(jì)算的上行性能統(tǒng)計(jì)數(shù)據(jù),并計(jì)算本輪的下行性能統(tǒng)計(jì)數(shù)據(jù),將所述上行性能統(tǒng)計(jì)數(shù)據(jù)和下行性能統(tǒng)計(jì)數(shù)據(jù)寫入測試日志文件;
所述服務(wù)器包括:
彈回模塊,用于在接收到移動(dòng)終端發(fā)送的第一類型控制包時(shí),將所述第一類型控制包彈回至所述移動(dòng)終端;
第三發(fā)送模塊,用于接收所述移動(dòng)終端發(fā)送的第一類型數(shù)據(jù)包,并在接收到所述移動(dòng)終端發(fā)送的第二類型控制包時(shí),向所述移動(dòng)終端連續(xù)發(fā)送預(yù)定數(shù)量的第二類型數(shù)據(jù)包;
第四發(fā)送模塊,用于待所述第二類型數(shù)據(jù)包發(fā)送完畢,計(jì)算出本輪的上行性能統(tǒng)計(jì)數(shù)據(jù),并將所述上行性能統(tǒng)計(jì)數(shù)據(jù)放入第三類型控制包中,再將 所述第三類型控制包發(fā)送至所述移動(dòng)終端,以供所述移動(dòng)終端將所述上行性能統(tǒng)計(jì)數(shù)據(jù)以及計(jì)算出的下行性能統(tǒng)計(jì)數(shù)據(jù)寫入測試日志文件。
本發(fā)明提供的移動(dòng)網(wǎng)絡(luò)的性能測試方法、移動(dòng)終端、服務(wù)器及測試系統(tǒng),通過移動(dòng)終端發(fā)送第一類型控制包至服務(wù)器,并在接收到服務(wù)器的回復(fù)后連續(xù)發(fā)送第一類型數(shù)據(jù)包至所述服務(wù)器,待發(fā)送完畢,移動(dòng)終端發(fā)送第二類型控制包至服務(wù)器,以告知本輪上行數(shù)據(jù)發(fā)送完成,當(dāng)接收到所述服務(wù)器發(fā)送的第三類型控制包時(shí),獲取所述服務(wù)器計(jì)算的上行性能統(tǒng)計(jì)數(shù)據(jù),并計(jì)算本輪的下行性能統(tǒng)計(jì)數(shù)據(jù),然后將所述上行性能統(tǒng)計(jì)數(shù)據(jù)和下行性能統(tǒng)計(jì)數(shù)據(jù)寫入測試日志文件。這樣,利用移動(dòng)終端對真實(shí)網(wǎng)絡(luò)進(jìn)行性能測試,以獲取針對端到端鏈路上的丟包、亂序和吞吐率等指標(biāo),從而可以對移動(dòng)網(wǎng)絡(luò)進(jìn)行精確診斷。
附圖說明
圖1為本發(fā)明移動(dòng)網(wǎng)絡(luò)的性能測試方法第一實(shí)施例的流程示意圖;
圖2為本發(fā)明定義的不同類型控制包和數(shù)據(jù)包一實(shí)施例的示意圖;
圖3為本發(fā)明移動(dòng)終端和服務(wù)器之間進(jìn)行發(fā)包和收包的示意圖;
圖4為本發(fā)明移動(dòng)網(wǎng)絡(luò)的性能測試方法第二實(shí)施例的流程示意圖;
圖5為圖4中步驟s13的細(xì)化流程示意圖;
圖6為本發(fā)明移動(dòng)網(wǎng)絡(luò)的性能測試方法第三實(shí)施例的流程示意圖;
圖7為圖6中步驟s21的細(xì)化流程示意圖;
圖8為本發(fā)明每條消息的字段組成示意圖;
圖9為本發(fā)明移動(dòng)網(wǎng)絡(luò)的性能測試方法第四實(shí)施例的流程示意圖;
圖10為本發(fā)明移動(dòng)網(wǎng)絡(luò)的性能測試方法第五實(shí)施例的流程示意圖;
圖11為服務(wù)器端的消息隊(duì)列示意圖;
圖12為本發(fā)明移動(dòng)終端一實(shí)施例的功能模塊示意圖;
圖13為本發(fā)明服務(wù)器一實(shí)施例的功能模塊示意圖;
圖14為本發(fā)明測試系統(tǒng)一實(shí)施例的功能模塊示意圖。
本發(fā)明目的的實(shí)現(xiàn)、功能特點(diǎn)及優(yōu)點(diǎn)將結(jié)合實(shí)施例,參照附圖做進(jìn)一步說明。
具體實(shí)施方式
應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
本發(fā)明提供一種移動(dòng)網(wǎng)絡(luò)的性能測試方法,參照圖1,在一實(shí)施例中,所述移動(dòng)網(wǎng)絡(luò)的性能測試方法包括以下步驟:
步驟s11,移動(dòng)終端發(fā)送第一類型控制包至服務(wù)器,并在接收到所述服務(wù)器的回復(fù)后連續(xù)發(fā)送預(yù)定數(shù)量的第一類型數(shù)據(jù)包至所述服務(wù)器;
本發(fā)明中,移動(dòng)終端和服務(wù)器之間是配合使用的,雙方需要遵守特定的測試協(xié)議,協(xié)議主要包括交互步驟、控制包和數(shù)據(jù)包的格式定義、異常情況處理等。因此從實(shí)現(xiàn)的角度看,移動(dòng)終端按測試協(xié)議規(guī)定,以特定模式周期性發(fā)送上行控制包和數(shù)據(jù)包,接收下行數(shù)據(jù)包并完成統(tǒng)計(jì)計(jì)算,以及保存測試日志文件供后續(xù)分析;而服務(wù)器按控制協(xié)議,接收各種上行數(shù)據(jù)包,對上行指標(biāo)進(jìn)行計(jì)算后攜帶給移動(dòng)終端,并按測試協(xié)議發(fā)送下行控制包和數(shù)據(jù)包。
本實(shí)施例中,第一類型控制包攜帶下行發(fā)包的控制參數(shù),在移動(dòng)終端接收到服務(wù)器的回復(fù)后,移動(dòng)終端即啟動(dòng)發(fā)包過程。
本發(fā)明定義了不同類型的控制包和數(shù)據(jù)包,第一類型控制包(s包)、第一類型數(shù)據(jù)包(u包)、第二類型控制包(#包)、第二類型數(shù)據(jù)包(d包)、第三類型控制包($包)、第四類型控制包(t包),具體參照圖2和圖3:
其中,s和t包分別是用戶按下啟動(dòng)和停止按鈕后發(fā)出的控制包,其他包是在每一輪測試中都會(huì)出現(xiàn)的。例如用戶配置了10輪測試,則測試正常進(jìn)行時(shí),會(huì)包含u(n個(gè))-#-d(n個(gè))-$-u(n個(gè))-#-d(n個(gè))-$-...這樣的循環(huán)10次。n是可配置的,由協(xié)議執(zhí)行者選定即可。下文中均以n=1000為例,凡出現(xiàn)1000的地方,均對應(yīng)1000個(gè)u或d包。
步驟s12,待所述第一類型數(shù)據(jù)包發(fā)送完畢,移動(dòng)終端發(fā)送第二類型控制包至所述服務(wù)器,以告知所述服務(wù)器本輪上行數(shù)據(jù)發(fā)送完成;
本實(shí)施例中,待n個(gè)u包發(fā)送完畢,移動(dòng)終端通過#包通知服務(wù)器本輪的上行數(shù)據(jù)發(fā)送完畢,服務(wù)器此時(shí)開始連續(xù)發(fā)送n個(gè)d包。
步驟s13,接收所述服務(wù)器發(fā)送的第二類型數(shù)據(jù)包,并在接收到所述服務(wù)器發(fā)送的第三類型控制包時(shí),獲取所述服務(wù)器計(jì)算的上行性能統(tǒng)計(jì)數(shù)據(jù),并計(jì)算本輪的下行性能統(tǒng)計(jì)數(shù)據(jù),將所述上行性能統(tǒng)計(jì)數(shù)據(jù)和下行性能統(tǒng)計(jì)數(shù)據(jù)寫入測試日志文件。
本實(shí)施例中,移動(dòng)終端在接收到$包后,計(jì)算本輪的下行性能統(tǒng)計(jì)數(shù)據(jù),并結(jié)合服務(wù)器計(jì)算的上行性能統(tǒng)計(jì)數(shù)據(jù),一起寫入測試日志文件。
以上為一輪發(fā)包循環(huán),正常情況會(huì)進(jìn)入下一輪發(fā)包循環(huán),重復(fù)步驟s11至s13,待所述移動(dòng)終端接收到停止指令時(shí),則向所述服務(wù)器發(fā)送第四類型控制包,以結(jié)束針對移動(dòng)網(wǎng)絡(luò)的性能測試。
本實(shí)施例中,進(jìn)入下一輪發(fā)包循環(huán),移動(dòng)終端先發(fā)送n個(gè)u包,服務(wù)器再發(fā)送n個(gè)d包,即采用半雙工的測試方式,直至用戶按下停止按鈕觸發(fā)停止指令,移動(dòng)終端則發(fā)送t包至服務(wù)器,以結(jié)束針對移動(dòng)網(wǎng)絡(luò)的性能測試。
本發(fā)明中提及的移動(dòng)網(wǎng)絡(luò),其接入網(wǎng)類型包括但不限于gsm(globalsystemformobilecommunication,全球移動(dòng)通信系統(tǒng))、umts(通用移動(dòng)通信系統(tǒng),簡稱umts(universalmobiletelecommunicationssystem)、cdma(codedivisionmultipleaccess,碼分多址)、td-scdma(timedivision-synchronouscodedivisionmultipleaccess,時(shí)分同步碼分多址)、fdd-lte(頻分雙工-長期演進(jìn)技術(shù))、tdd-lte(時(shí)分雙工-長期演進(jìn)技術(shù))等無線制式。除接入網(wǎng)之外,還包括ps(packetswitch,分組交換)數(shù)據(jù)域核心網(wǎng)、ip傳輸網(wǎng)及internet上的各種業(yè)務(wù)服務(wù)器,整體上構(gòu)成了端到端的業(yè)務(wù)傳輸路徑。
本發(fā)明提供的移動(dòng)網(wǎng)絡(luò)的性能測試方法,通過移動(dòng)終端發(fā)送第一類型控制包至服務(wù)器,并在接收到服務(wù)器的回復(fù)后連續(xù)發(fā)送第一類型數(shù)據(jù)包至所述服務(wù)器,待發(fā)送完畢,移動(dòng)終端發(fā)送第二類型控制包至服務(wù)器,以告知本輪上行數(shù)據(jù)發(fā)送完成,當(dāng)接收到所述服務(wù)器發(fā)送的第三類型控制包時(shí),獲取所述服務(wù)器計(jì)算的上行性能統(tǒng)計(jì)數(shù)據(jù),并計(jì)算本輪的下行性能統(tǒng)計(jì)數(shù)據(jù),然后將所述上行性能統(tǒng)計(jì)數(shù)據(jù)和下行性能統(tǒng)計(jì)數(shù)據(jù)寫入測試日志文件。這樣,利用移動(dòng)終端對真實(shí)網(wǎng)絡(luò)進(jìn)行性能測試,以獲取針對端到端鏈路上的丟包、亂序和吞吐率等指標(biāo),從而可以對移動(dòng)網(wǎng)絡(luò)進(jìn)行精確診斷。
在一實(shí)施例中,如圖4所示,在上述圖1的實(shí)施例的基礎(chǔ)上,本實(shí)施例中,所述步驟s13,接收所述服務(wù)器發(fā)送的第二類型數(shù)據(jù)包的步驟之后還包括:
步驟s14,判斷所述第二類型數(shù)據(jù)包的移動(dòng)終端時(shí)戳彈回字段是否為所 述第一預(yù)定值;
步驟s15,若否,則獲取所述第二類型數(shù)據(jù)包的接收時(shí)刻;
步驟s16,計(jì)算所述接收時(shí)刻、第一預(yù)定值以及所述服務(wù)器內(nèi)部處理時(shí)延之間的差值,得到有效時(shí)延,并將所述有效時(shí)延記錄到所述測試日志文件中。
其中,所述服務(wù)器內(nèi)部處理時(shí)延為所述服務(wù)器根據(jù)當(dāng)前時(shí)刻與所述第一類型數(shù)據(jù)包放入隊(duì)列的入隊(duì)時(shí)刻之間的差值計(jì)算得到。
本實(shí)施例中,移動(dòng)終端在收到每個(gè)d包時(shí),d包中的“移動(dòng)終端時(shí)戳彈回”字段,是直接取自對應(yīng)u包中的“移動(dòng)終端側(cè)發(fā)包時(shí)戳”字段。如果其中包含的tm非0(第一預(yù)定值),則能根據(jù)接收時(shí)刻和tm之差,再減去d包中的“服務(wù)器內(nèi)部處理時(shí)延”,即可得到一個(gè)有效的往返時(shí)延,并將該往返時(shí)延記錄到測試日志文件中。如果tm為0,則無法獲取往返時(shí)延。類似服務(wù)器對上行u包的處理,移動(dòng)終端抽取每個(gè)d包的相關(guān)信息,并記入移動(dòng)終端側(cè)的消息隊(duì)列中。
在一實(shí)施例中,如圖5所示,在上述圖1或圖4的實(shí)施例的基礎(chǔ)上,本實(shí)施例中,所述步驟s13包括:
步驟s131,所述移動(dòng)終端在接收到所述第三類型控制包時(shí),從所述第三類型控制包中獲取所述服務(wù)器計(jì)算的上行性能統(tǒng)計(jì)數(shù)據(jù);
步驟s132,根據(jù)與所述服務(wù)器側(cè)對應(yīng)的隊(duì)列,計(jì)算本輪包括丟包率、亂序率以及吞吐率指標(biāo)的下行性能統(tǒng)計(jì)數(shù)據(jù);
步驟s133,根據(jù)所述下行性能統(tǒng)計(jì)數(shù)據(jù),結(jié)合所述上行性能統(tǒng)計(jì)數(shù)據(jù),綜合整理成本輪測試的最終結(jié)果,記錄到所述測試日志文件中。
本實(shí)施例中,由于$包指示著下行d包發(fā)送完畢,因此,移動(dòng)終端收到第一個(gè)$包后,開始根據(jù)移動(dòng)終端側(cè)的消息隊(duì)列(與服務(wù)器側(cè)對應(yīng)),計(jì)算下行對應(yīng)的丟包率、亂序率和吞吐率等指標(biāo),結(jié)合$包中提取的上行對應(yīng)指標(biāo)(因?yàn)樯闲械闹笜?biāo)已經(jīng)由服務(wù)器計(jì)算完畢,作為字段放入了$包中,移動(dòng)終端提取即可),作為本輪測試的最終結(jié)果,記錄到測試日志文件中。
移動(dòng)終端繼續(xù)接收$包,正常情況下應(yīng)該還能收到4個(gè)。如果收全了4個(gè),或收到n個(gè)(n<4)后,剩余幾個(gè)$包在接收過程中超時(shí)了(超時(shí)門限由 執(zhí)行者自行決定),都認(rèn)為是$包接收完畢,移動(dòng)終端進(jìn)入下一輪的u-#-d-$收發(fā)循環(huán)??梢岳斫獾氖牵緦?shí)施例并不限定接收$包的具體數(shù)量。
當(dāng)用戶按下測試停止按鈕,移動(dòng)終端會(huì)連續(xù)發(fā)送預(yù)定數(shù)量如5個(gè)t包至服務(wù)器,此時(shí)直接結(jié)束測試,并釋放本地資源。當(dāng)服務(wù)器收到第一個(gè)t包后,則會(huì)刪除該用戶對應(yīng)的記錄,而在收到其他重復(fù)的t包后,無動(dòng)作。
本發(fā)明還提供一種移動(dòng)網(wǎng)絡(luò)的性能測試方法,參照圖6,在一實(shí)施例中,所述移動(dòng)網(wǎng)絡(luò)的性能測試方法包括以下步驟:
步驟s21,服務(wù)器在接收到移動(dòng)終端發(fā)送的第一類型控制包時(shí),將所述第一類型控制包彈回至所述移動(dòng)終端;
本發(fā)明中,移動(dòng)終端和服務(wù)器之間是配合使用的,雙方需要遵守特定的測試協(xié)議,協(xié)議主要包括交互步驟、控制包和數(shù)據(jù)包的格式定義、異常情況處理等。因此從實(shí)現(xiàn)的角度看,移動(dòng)終端按測試協(xié)議規(guī)定,以特定模式周期性發(fā)送上行控制包和數(shù)據(jù)包,接收下行數(shù)據(jù)包并完成統(tǒng)計(jì)計(jì)算,以及保存測試日志文件供后續(xù)分析;而服務(wù)器按控制協(xié)議,接收各種上行數(shù)據(jù)包,對上行指標(biāo)進(jìn)行計(jì)算后攜帶給移動(dòng)終端,并按測試協(xié)議發(fā)送下行控制包和數(shù)據(jù)包。
本實(shí)施例中,第一類型控制包攜帶下行發(fā)包的控制參數(shù),在移動(dòng)終端接收到服務(wù)器的回復(fù)后,移動(dòng)終端即啟動(dòng)發(fā)包過程。
本發(fā)明定義了不同類型的控制包和數(shù)據(jù)包,第一類型控制包(s包)、第一類型數(shù)據(jù)包(u包)、第二類型控制包(#包)、第二類型數(shù)據(jù)包(d包)、第三類型控制包($包)、第四類型控制包(t包),具體參照圖2和圖3:
其中,s和t包分別是用戶按下啟動(dòng)和停止按鈕后發(fā)出的控制包,其他包是在每一輪測試中都會(huì)出現(xiàn)的。例如用戶配置了10輪測試,則測試正常進(jìn)行時(shí),會(huì)包含u(n個(gè))-#-d(n個(gè))-$-u(n個(gè))-#-d(n個(gè))-$-...這樣的循環(huán)10次。n是可配置的,由協(xié)議執(zhí)行者選定即可。下文中均以n=1000為例,凡出現(xiàn)1000的地方,均對應(yīng)1000個(gè)u或d包。
步驟s22,接收所述移動(dòng)終端發(fā)送的第一類型數(shù)據(jù)包,并在接收到所述移動(dòng)終端發(fā)送的第二類型控制包時(shí),向所述移動(dòng)終端連續(xù)發(fā)送預(yù)定數(shù)量的第二類型數(shù)據(jù)包;
本實(shí)施例中,服務(wù)器向所述移動(dòng)終端連續(xù)發(fā)送預(yù)定數(shù)量n個(gè)d包,待發(fā) 送完畢,服務(wù)器計(jì)算出本輪的上行性能統(tǒng)計(jì)數(shù)據(jù),并將所述上行性能統(tǒng)計(jì)數(shù)據(jù)放入$包中,再將$包發(fā)送至移動(dòng)終端。其中,$包同時(shí)也指示著本輪的下行數(shù)據(jù)發(fā)送完畢。
步驟s23,待所述第二類型數(shù)據(jù)包發(fā)送完畢,計(jì)算出本輪的上行性能統(tǒng)計(jì)數(shù)據(jù),并將所述上行性能統(tǒng)計(jì)數(shù)據(jù)放入第三類型控制包中,再將所述第三類型控制包發(fā)送至所述移動(dòng)終端,以供所述移動(dòng)終端將所述上行性能統(tǒng)計(jì)數(shù)據(jù)以及計(jì)算出的下行性能統(tǒng)計(jì)數(shù)據(jù)寫入測試日志文件。
本實(shí)施例中,服務(wù)器在將d包發(fā)送完畢時(shí),計(jì)算本輪的上行統(tǒng)計(jì)數(shù)據(jù),并將該上行性能統(tǒng)計(jì)數(shù)據(jù)放入$包中,并發(fā)送至移動(dòng)終端,當(dāng)移動(dòng)終端在接收到$包后,計(jì)算本輪的下行性能統(tǒng)計(jì)數(shù)據(jù),移動(dòng)終端則將所述上行性能統(tǒng)計(jì)數(shù)據(jù)和下行性能統(tǒng)計(jì)數(shù)據(jù)一起寫入測試日志文件。
以上為一輪發(fā)包循環(huán),正常情況會(huì)進(jìn)入下一輪發(fā)包循環(huán),重復(fù)步驟s21至s23,待所述移動(dòng)終端接收到停止指令時(shí),則向所述服務(wù)器發(fā)送第四類型控制包,當(dāng)服務(wù)器接收到t包時(shí),即結(jié)束針對移動(dòng)網(wǎng)絡(luò)的性能測試。
本實(shí)施例中,進(jìn)入下一輪發(fā)包循環(huán),移動(dòng)終端先發(fā)送n個(gè)u包,服務(wù)器再發(fā)送n個(gè)d包,即采用半雙工的測試方式,直至用戶按下停止按鈕觸發(fā)停止指令,移動(dòng)終端則發(fā)送t包至服務(wù)器,以結(jié)束針對移動(dòng)網(wǎng)絡(luò)的性能測試。
本發(fā)明中提及的移動(dòng)網(wǎng)絡(luò),其接入網(wǎng)類型包括但不限于gsm(globalsystemformobilecommunication,全球移動(dòng)通信系統(tǒng))、umts(通用移動(dòng)通信系統(tǒng),簡稱umts(universalmobiletelecommunicationssystem)、cdma(codedivisionmultipleaccess,碼分多址)、td-scdma(timedivision-synchronouscodedivisionmultipleaccess,時(shí)分同步碼分多址)、fdd-lte(頻分雙工-長期演進(jìn)技術(shù))、tdd-lte(時(shí)分雙工-長期演進(jìn)技術(shù))等無線制式。除接入網(wǎng)之外,還包括ps(packetswitch,分組交換)數(shù)據(jù)域核心網(wǎng)、ip傳輸網(wǎng)及internet上的各種業(yè)務(wù)服務(wù)器,整體上構(gòu)成了端到端的業(yè)務(wù)傳輸路徑。
本發(fā)明提供的移動(dòng)網(wǎng)絡(luò)的性能測試方法,通過服務(wù)器在接收到移動(dòng)終端發(fā)送的第一類型控制包時(shí),將第一類型控制包彈回至移動(dòng)終端,當(dāng)接收到移動(dòng)終端發(fā)送的第二類型控制包時(shí),向移動(dòng)終端連續(xù)發(fā)送第二類型數(shù)據(jù)包,待發(fā)送完畢,計(jì)算出本輪的上行性能統(tǒng)計(jì)數(shù)據(jù),并放入第三類型控制包中,然 后將第三類型控制包發(fā)送至移動(dòng)終端,以供移動(dòng)終端將上行性能統(tǒng)計(jì)數(shù)據(jù)以及計(jì)算出的下行性能統(tǒng)計(jì)數(shù)據(jù)寫入測試日志文件。這樣,通過對真實(shí)網(wǎng)絡(luò)進(jìn)行性能測試,以獲取針對端到端鏈路上的丟包、亂序和吞吐率等指標(biāo),從而可以對移動(dòng)網(wǎng)絡(luò)進(jìn)行精確診斷。
在一實(shí)施例中,如圖7所示,在上述圖6的實(shí)施例的基礎(chǔ)上,本實(shí)施例中,所述步驟s21包括:
步驟s211,所述服務(wù)器解析出所述第一類型控制包中含有的國際移動(dòng)用戶識別碼imsi,并根據(jù)所述imsi查找對應(yīng)的用戶記錄;
步驟s212,若查找到用戶記錄,所述服務(wù)器則將所述第一類型控制包彈回至所述移動(dòng)終端,并新建用戶記錄;
本實(shí)施例中,所述服務(wù)器收到s包的處理過程如下:
服務(wù)器解析s包中含有的imsi,并根據(jù)所述imsi查找對應(yīng)的用戶記錄;若查找到與imsi對應(yīng)的用戶記錄,表明服務(wù)器端的資源準(zhǔn)備已經(jīng)完畢,但可能上次由服務(wù)器彈回的應(yīng)答s包丟失,導(dǎo)致移動(dòng)終端沒有收到,而本次收到的是移動(dòng)終端再次發(fā)送的重傳s包,此時(shí)服務(wù)器只需要再次彈回收到的重傳s包即可。另一種可能是上次對移動(dòng)網(wǎng)絡(luò)進(jìn)行性能測試時(shí),移動(dòng)終端出現(xiàn)異常,導(dǎo)致未能正常退出。為了讓系統(tǒng)處于可預(yù)期的初始化狀態(tài),需要重新建立該imsi對應(yīng)的用戶記錄。
步驟s213,若否,所述服務(wù)器則新建用戶記錄,并將所述第一類型控制包彈回至所述移動(dòng)終端。
本實(shí)施例中,若服務(wù)器沒有查找到與imsi對應(yīng)的用戶記錄,則新建一條與imsi對應(yīng)的用戶記錄,其中,新建的用戶記錄中包含的核心信息是一個(gè)長為1000的消息隊(duì)列,每條消息的字段組成如圖8所示,具體包括:發(fā)包輪數(shù)round、包序列號seq、終端側(cè)發(fā)包時(shí)戳tm、服務(wù)器側(cè)收包時(shí)戳ts以及隊(duì)列的預(yù)定槽位是否收到包valid。每輪發(fā)包前,所有消息的所有字段都重新清零,待用戶記錄創(chuàng)建完畢,服務(wù)器則彈回s包作為應(yīng)答(這里的彈回指服務(wù)器原樣返回收到的包給移動(dòng)終端),移動(dòng)終端收到應(yīng)答后即刻連續(xù)發(fā)送預(yù)定數(shù)量n個(gè)u包至所述服務(wù)器。
因此,本發(fā)明中服務(wù)器只要收到s包,不管是否重復(fù),都建立新的與imsi 對應(yīng)的用戶記錄,并彈回s包至移動(dòng)終端。而移動(dòng)終端必須收到彈回的s包,才能開始發(fā)u包至服務(wù)器。如此,移動(dòng)終端才可以確認(rèn)服務(wù)器資源(消息隊(duì)列)分配好了。
本實(shí)施例中,移動(dòng)終端使用接收超時(shí)機(jī)制(門限可由實(shí)際執(zhí)行者選擇),如果移動(dòng)終端接收s包超時(shí),則會(huì)重發(fā)s包,這個(gè)過程持續(xù)嘗試預(yù)定次數(shù)如5次,若在5次內(nèi)均失敗,移動(dòng)終端則放棄測試,并提示用戶本次測試啟動(dòng)失敗。
在一實(shí)施例中,如圖9所示,在上述圖7的實(shí)施例的基礎(chǔ)上,本實(shí)施例中,所述步驟s21之后還包括:
步驟s24,所述服務(wù)器根據(jù)所述imsi查找對應(yīng)的用戶記錄;
步驟s25,若查找到用戶記錄,所述服務(wù)器則抽取所述第一類型數(shù)據(jù)包的發(fā)包輪數(shù)、移動(dòng)終端側(cè)發(fā)包時(shí)戳字段以及所述序列號,并根據(jù)所述序列號將所述第一類型數(shù)據(jù)包放入隊(duì)列的預(yù)定位置,并設(shè)置所述隊(duì)列的到位字段為第二預(yù)定值;
步驟s26,若否,則忽略所述第一類型數(shù)據(jù)包。
本實(shí)施例中,服務(wù)器根據(jù)所述imsi查找對應(yīng)的用戶記錄,若沒有查找到對應(yīng)的用戶記錄,則可能是t包先到并觸發(fā)了用戶記錄被刪除,而u包是后到的亂序包。因此,此時(shí)不做任何動(dòng)作,并忽略該u包。
若服務(wù)器根據(jù)所述imsi查找到對應(yīng)的用戶記錄,服務(wù)器抽取每個(gè)u包的發(fā)包輪數(shù)round、移動(dòng)終端側(cè)發(fā)包時(shí)戳字段tm以及所述序列號,并以序列號做下標(biāo),找到消息隊(duì)列的對應(yīng)位置,寫入對應(yīng)的消息,并將消息的valid字段置為1。消息中的ts時(shí)戳字段就是服務(wù)器收到該包的時(shí)刻,以備后續(xù)計(jì)算服務(wù)器內(nèi)部處理的時(shí)延之用。如果某個(gè)位置最終沒有收到包,表明該u包丟失,則此位置對應(yīng)的tm為0。
當(dāng)移動(dòng)終端發(fā)送完1000個(gè)u包后,直接發(fā)1個(gè)#包,然后開始接收服務(wù)器發(fā)送的d包。如果超時(shí)服務(wù)器還未收到d包,會(huì)重復(fù)發(fā)送#包。如果嘗試預(yù)定次數(shù)如5次后仍然收不到d包,則移動(dòng)終端放棄測試,并提示用戶本次測試啟動(dòng)失敗。
在一實(shí)施例中,如圖10所示,在上述圖9的實(shí)施例的基礎(chǔ)上,本實(shí)施例中,所述步驟s25之后還包括:
步驟s26,所述服務(wù)器獲取當(dāng)前時(shí)刻以及所述第一類型數(shù)據(jù)包放入隊(duì)列的入隊(duì)時(shí)刻;
步驟s27,計(jì)算所述當(dāng)前時(shí)刻與所述入隊(duì)時(shí)刻之間的差值,得到服務(wù)器內(nèi)部處理時(shí)延。
本實(shí)施例中,大部分包的字段定義已經(jīng)明確示于圖1和2中,這里只重點(diǎn)介紹一下d包和$包。d包中的“移動(dòng)終端時(shí)戳彈回”字段,是直接取自對應(yīng)u包中的“移動(dòng)終端側(cè)發(fā)包時(shí)戳”字段,移動(dòng)終端收到d包的時(shí)間減去彈回的u包發(fā)送時(shí)戳,就是這個(gè)特定序列號包的往返時(shí)延,記為t1。但由于每個(gè)包都在服務(wù)器內(nèi)部經(jīng)過了排隊(duì)等待(依次收完所有上行包,才能開始下行發(fā)送過程),因此d包中提供了“服務(wù)器內(nèi)部處理時(shí)延”字段,記為t2,t1-t2則反映了真正的傳輸路徑上的端到端往返時(shí)延。最后,$包中稍帶了關(guān)于本輪上行的性能統(tǒng)計(jì)數(shù)據(jù),因?yàn)檫@些信息只能由服務(wù)器反饋給移動(dòng)終端,移動(dòng)終端能自主計(jì)算的只是本輪的下行性能統(tǒng)計(jì)數(shù)據(jù)。
當(dāng)服務(wù)器收到#包后,不論是第幾次收到#包,馬上開始按序發(fā)送1000個(gè)d包,該包中的“服務(wù)器內(nèi)部處理時(shí)延”字段由服務(wù)器根據(jù)當(dāng)前時(shí)刻與對應(yīng)u包的入隊(duì)時(shí)刻ts之差計(jì)算得到。值得注意的是,如步驟s26所述,對隊(duì)列中tm為0的消息,其對應(yīng)的d包的tm字段也為0。移動(dòng)終端收到該d包后(如果該d包未丟),通過檢查d包的tm字段是否為0,即可判斷該位置對應(yīng)的u包是否在上行傳輸時(shí)丟了。通過這種機(jī)制,移動(dòng)終端既可以通過分析d包的接收隊(duì)列來得知每個(gè)下行丟包的具體編號,也能通過d包的tm字段來推導(dǎo)出每個(gè)上行丟包的具體編號。
所有d包發(fā)送完成后,服務(wù)器根據(jù)消息隊(duì)列計(jì)算上行的丟包率、亂序率和吞吐率指標(biāo),以此構(gòu)造$包,然后連續(xù)發(fā)送5個(gè)$包給終端,以確保終端能收到。
如圖11所示,根據(jù)服務(wù)器端的消息隊(duì)列,可計(jì)算上行的各項(xiàng)性能指標(biāo)。移動(dòng)終端也維護(hù)一個(gè)類似隊(duì)列,計(jì)算方法也類似,此處從略。圖10中的t1<t2<t3<...<ti<...<t1000,是遞增序列,x代表該序列號對應(yīng)的上行u包 未被服務(wù)器收到。各指標(biāo)計(jì)算方法如下:
1)上行丟包率=所有x的個(gè)數(shù)總和/1000;
2)上行吞吐率=上行收到的所有包的字節(jié)總和/(ti的最大值–ti的最小值);
由于存在亂序的可能,如圖10中的t2和t3代表序列號為3的u包先于第2個(gè)到達(dá),因此ti的最大值和最小值需要掃描消息隊(duì)列后得出;
3)上行亂序率=上行亂序的次數(shù)總和/上行收到的總包數(shù);
亂序的個(gè)數(shù)計(jì)算:對每個(gè)非x的消息,提取其ts值(記為left)和下一個(gè)ts值(記為right),如果right<left,則記作一個(gè)亂序。例如圖4中的t2<t3,因此出現(xiàn)一次亂序。
本發(fā)明還提供一種移動(dòng)終端1,參照圖12,在一實(shí)施例中,所述移動(dòng)終端1包括:
第一發(fā)送模塊11,用于發(fā)送第一類型控制包至服務(wù)器,并在接收到所述服務(wù)器的回復(fù)后連續(xù)發(fā)送預(yù)定數(shù)量的第一類型數(shù)據(jù)包至所述服務(wù)器;
本發(fā)明中,移動(dòng)終端1和服務(wù)器之間是配合使用的,雙方需要遵守特定的測試協(xié)議,協(xié)議主要包括交互步驟、控制包和數(shù)據(jù)包的格式定義、異常情況處理等。因此從實(shí)現(xiàn)的角度看,移動(dòng)終端1按測試協(xié)議規(guī)定,以特定模式周期性發(fā)送上行控制包和數(shù)據(jù)包,接收下行數(shù)據(jù)包并完成統(tǒng)計(jì)計(jì)算,以及保存測試日志文件供后續(xù)分析;而服務(wù)器按控制協(xié)議,接收各種上行數(shù)據(jù)包,對上行指標(biāo)進(jìn)行計(jì)算后攜帶給移動(dòng)終端1,并按測試協(xié)議發(fā)送下行控制包和數(shù)據(jù)包。
本實(shí)施例中,第一類型控制包攜帶下行發(fā)包的控制參數(shù),在移動(dòng)終端1接收到服務(wù)器的回復(fù)后,移動(dòng)終端1即啟動(dòng)發(fā)包過程。
本發(fā)明定義了不同類型的控制包和數(shù)據(jù)包,第一類型控制包(s包)、第一類型數(shù)據(jù)包(u包)、第二類型控制包(#包)、第二類型數(shù)據(jù)包(d包)、第三類型控制包($包)、第四類型控制包(t包),具體參照圖2和圖3:
其中,s和t包分別是用戶按下啟動(dòng)和停止按鈕后發(fā)出的控制包,其他包是在每一輪測試中都會(huì)出現(xiàn)的。例如用戶配置了10輪測試,則測試正常進(jìn)行時(shí),會(huì)包含u(n個(gè))-#-d(n個(gè))-$-u(n個(gè))-#-d(n個(gè))-$-...這樣的 循環(huán)10次。n是可配置的,由協(xié)議執(zhí)行者選定即可。下文中均以n=1000為例,凡出現(xiàn)1000的地方,均對應(yīng)1000個(gè)u或d包。
第二發(fā)送模塊12,用于待所述第一類型數(shù)據(jù)包發(fā)送完畢,移動(dòng)終端1發(fā)送第二類型控制包至所述服務(wù)器,以告知所述服務(wù)器本輪上行數(shù)據(jù)發(fā)送完成;
本實(shí)施例中,待n個(gè)u包發(fā)送完畢,移動(dòng)終端1通過#包通知服務(wù)器本輪的上行數(shù)據(jù)發(fā)送完畢,服務(wù)器此時(shí)開始連續(xù)發(fā)送n個(gè)d包。
計(jì)算處理模塊13,用于接收所述服務(wù)器發(fā)送的第二類型數(shù)據(jù)包,并在接收到所述服務(wù)器發(fā)送的第三類型控制包時(shí),獲取所述服務(wù)器計(jì)算的上行性能統(tǒng)計(jì)數(shù)據(jù),并計(jì)算本輪的下行性能統(tǒng)計(jì)數(shù)據(jù),將所述上行性能統(tǒng)計(jì)數(shù)據(jù)和下行性能統(tǒng)計(jì)數(shù)據(jù)寫入測試日志文件。
本實(shí)施例中,移動(dòng)終端1在接收到$包后,計(jì)算本輪的下行性能統(tǒng)計(jì)數(shù)據(jù),并結(jié)合服務(wù)器計(jì)算的上行性能統(tǒng)計(jì)數(shù)據(jù),一起寫入測試日志文件。
以上為一輪發(fā)包循環(huán),正常情況會(huì)進(jìn)入下一輪發(fā)包循環(huán),重復(fù)步驟s11至s13,待所述移動(dòng)終端1接收到停止指令時(shí),則向所述服務(wù)器發(fā)送第四類型控制包,以結(jié)束針對移動(dòng)網(wǎng)絡(luò)的性能測試。
本實(shí)施例中,進(jìn)入下一輪發(fā)包循環(huán),移動(dòng)終端1先發(fā)送n個(gè)u包,服務(wù)器再發(fā)送n個(gè)d包,即采用半雙工的測試方式,直至用戶按下停止按鈕觸發(fā)停止指令,移動(dòng)終端1則發(fā)送t包至服務(wù)器,以結(jié)束針對移動(dòng)網(wǎng)絡(luò)的性能測試。
本發(fā)明中提及的移動(dòng)網(wǎng)絡(luò),其接入網(wǎng)類型包括但不限于gsm(globalsystemformobilecommunication,全球移動(dòng)通信系統(tǒng))、umts(通用移動(dòng)通信系統(tǒng),簡稱umts(universalmobiletelecommunicationssystem)、cdma(codedivisionmultipleaccess,碼分多址)、td-scdma(timedivision-synchronouscodedivisionmultipleaccess,時(shí)分同步碼分多址)、fdd-lte(頻分雙工-長期演進(jìn)技術(shù))、tdd-lte(時(shí)分雙工-長期演進(jìn)技術(shù))等無線制式。除接入網(wǎng)之外,還包括ps(packetswitch,分組交換)數(shù)據(jù)域核心網(wǎng)、ip傳輸網(wǎng)及internet上的各種業(yè)務(wù)服務(wù)器,整體上構(gòu)成了端到端的業(yè)務(wù)傳輸路徑。
本發(fā)明提供的移動(dòng)終端1,通過發(fā)送第一類型控制包至服務(wù)器,并在接收到服務(wù)器的回復(fù)后連續(xù)發(fā)送第一類型數(shù)據(jù)包至所述服務(wù)器,待發(fā)送完畢, 發(fā)送第二類型控制包至服務(wù)器,以告知本輪上行數(shù)據(jù)發(fā)送完成,當(dāng)接收到所述服務(wù)器發(fā)送的第三類型控制包時(shí),獲取所述服務(wù)器計(jì)算的上行性能統(tǒng)計(jì)數(shù)據(jù),并計(jì)算本輪的下行性能統(tǒng)計(jì)數(shù)據(jù),然后將所述上行性能統(tǒng)計(jì)數(shù)據(jù)和下行性能統(tǒng)計(jì)數(shù)據(jù)寫入測試日志文件。這樣,利用移動(dòng)終端1對真實(shí)網(wǎng)絡(luò)進(jìn)行性能測試,以獲取針對端到端鏈路上的丟包、亂序和吞吐率等指標(biāo),從而可以對移動(dòng)網(wǎng)絡(luò)進(jìn)行精確診斷。
本發(fā)明還提供一種服務(wù)器2,參照圖13,在一實(shí)施例中,所述服務(wù)器2包括:
彈回模塊21,用于在接收到移動(dòng)終端1發(fā)送的第一類型控制包時(shí),將所述第一類型控制包彈回至所述移動(dòng)終端1;
本發(fā)明中,移動(dòng)終端1和服務(wù)器2之間是配合使用的,雙方需要遵守特定的測試協(xié)議,協(xié)議主要包括交互步驟、控制包和數(shù)據(jù)包的格式定義、異常情況處理等。因此從實(shí)現(xiàn)的角度看,移動(dòng)終端1按測試協(xié)議規(guī)定,以特定模式周期性發(fā)送上行控制包和數(shù)據(jù)包,接收下行數(shù)據(jù)包并完成統(tǒng)計(jì)計(jì)算,以及保存測試日志文件供后續(xù)分析;而服務(wù)器2按控制協(xié)議,接收各種上行數(shù)據(jù)包,對上行指標(biāo)進(jìn)行計(jì)算后攜帶給移動(dòng)終端1,并按測試協(xié)議發(fā)送下行控制包和數(shù)據(jù)包。
本實(shí)施例中,第一類型控制包攜帶下行發(fā)包的控制參數(shù),在移動(dòng)終端1接收到服務(wù)器2的回復(fù)后,移動(dòng)終端1即啟動(dòng)發(fā)包過程。
本發(fā)明定義了不同類型的控制包和數(shù)據(jù)包,第一類型控制包(s包)、第一類型數(shù)據(jù)包(u包)、第二類型控制包(#包)、第二類型數(shù)據(jù)包(d包)、第三類型控制包($包)、第四類型控制包(t包),具體參照圖2和圖3:
其中,s和t包分別是用戶按下啟動(dòng)和停止按鈕后發(fā)出的控制包,其他包是在每一輪測試中都會(huì)出現(xiàn)的。例如用戶配置了10輪測試,則測試正常進(jìn)行時(shí),會(huì)包含u(n個(gè))-#-d(n個(gè))-$-u(n個(gè))-#-d(n個(gè))-$-...這樣的循環(huán)10次。n是可配置的,由協(xié)議執(zhí)行者選定即可。下文中均以n=1000為例,凡出現(xiàn)1000的地方,均對應(yīng)1000個(gè)u或d包。
第三發(fā)送模塊22,用于接收所述移動(dòng)終端1發(fā)送的第一類型數(shù)據(jù)包,并在接收到所述移動(dòng)終端1發(fā)送的第二類型控制包時(shí),向所述移動(dòng)終端1連續(xù) 發(fā)送預(yù)定數(shù)量的第二類型數(shù)據(jù)包;
本實(shí)施例中,服務(wù)器2向所述移動(dòng)終端1連續(xù)發(fā)送預(yù)定數(shù)量n個(gè)d包,待發(fā)送完畢,服務(wù)器2計(jì)算出本輪的上行性能統(tǒng)計(jì)數(shù)據(jù),并將所述上行性能統(tǒng)計(jì)數(shù)據(jù)放入$包中,再將$包發(fā)送至移動(dòng)終端1。其中,$包同時(shí)也指示著本輪的下行數(shù)據(jù)發(fā)送完畢。
第四發(fā)送模塊23,用于待所述第二類型數(shù)據(jù)包發(fā)送完畢,計(jì)算出本輪的上行性能統(tǒng)計(jì)數(shù)據(jù),并將所述上行性能統(tǒng)計(jì)數(shù)據(jù)放入第三類型控制包中,再將所述第三類型控制包發(fā)送至所述移動(dòng)終端1,以供所述移動(dòng)終端1將所述上行性能統(tǒng)計(jì)數(shù)據(jù)以及計(jì)算出的下行性能統(tǒng)計(jì)數(shù)據(jù)寫入測試日志文件。
本實(shí)施例中,服務(wù)器2在將d包發(fā)送完畢時(shí),計(jì)算本輪的上行統(tǒng)計(jì)數(shù)據(jù),并將該上行性能統(tǒng)計(jì)數(shù)據(jù)放入$包中,并發(fā)送至移動(dòng)終端1,當(dāng)移動(dòng)終端1在接收到$包后,計(jì)算本輪的下行性能統(tǒng)計(jì)數(shù)據(jù),移動(dòng)終端1則將所述上行性能統(tǒng)計(jì)數(shù)據(jù)和下行性能統(tǒng)計(jì)數(shù)據(jù)一起寫入測試日志文件。
以上為一輪發(fā)包循環(huán),正常情況會(huì)進(jìn)入下一輪發(fā)包循環(huán),重復(fù)步驟s21至s23,待所述移動(dòng)終端1接收到停止指令時(shí),則向所述服務(wù)器2發(fā)送第四類型控制包,當(dāng)服務(wù)器2接收到t包時(shí),即結(jié)束針對移動(dòng)網(wǎng)絡(luò)的性能測試。
本實(shí)施例中,進(jìn)入下一輪發(fā)包循環(huán),移動(dòng)終端1先發(fā)送n個(gè)u包,服務(wù)器2再發(fā)送n個(gè)d包,即采用半雙工的測試方式,直至用戶按下停止按鈕觸發(fā)停止指令,移動(dòng)終端1則發(fā)送t包至服務(wù)器2,以結(jié)束針對移動(dòng)網(wǎng)絡(luò)的性能測試。
本發(fā)明中提及的移動(dòng)網(wǎng)絡(luò),其接入網(wǎng)類型包括但不限于gsm(globalsystemformobilecommunication,全球移動(dòng)通信系統(tǒng))、umts(通用移動(dòng)通信系統(tǒng),簡稱umts(universalmobiletelecommunicationssystem)、cdma(codedivisionmultipleaccess,碼分多址)、td-scdma(timedivision-synchronouscodedivisionmultipleaccess,時(shí)分同步碼分多址)、fdd-lte(頻分雙工-長期演進(jìn)技術(shù))、tdd-lte(時(shí)分雙工-長期演進(jìn)技術(shù))等無線制式。除接入網(wǎng)之外,還包括ps(packetswitch,分組交換)數(shù)據(jù)域核心網(wǎng)、ip傳輸網(wǎng)及internet上的各種業(yè)務(wù)服務(wù)器2,整體上構(gòu)成了端到端的業(yè)務(wù)傳輸路徑。
本發(fā)明提供的服務(wù)器2,通過在接收到移動(dòng)終端1發(fā)送的第一類型控制 包時(shí),將第一類型控制包彈回至移動(dòng)終端1,當(dāng)接收到移動(dòng)終端1發(fā)送的第二類型控制包時(shí),向移動(dòng)終端1連續(xù)發(fā)送第二類型數(shù)據(jù)包,待發(fā)送完畢,計(jì)算出本輪的上行性能統(tǒng)計(jì)數(shù)據(jù),并放入第三類型控制包中,然后將第三類型控制包發(fā)送至移動(dòng)終端1,以供移動(dòng)終端1將上行性能統(tǒng)計(jì)數(shù)據(jù)以及計(jì)算出的下行性能統(tǒng)計(jì)數(shù)據(jù)寫入測試日志文件。這樣,通過對真實(shí)網(wǎng)絡(luò)進(jìn)行性能測試,以獲取針對端到端鏈路上的丟包、亂序和吞吐率等指標(biāo),從而可以對移動(dòng)網(wǎng)絡(luò)進(jìn)行精確診斷。
本發(fā)明還提供一種測試系統(tǒng)100,參照圖14,在一實(shí)施例中,所述測試系統(tǒng)100包括移動(dòng)終端1和服務(wù)器2,
在一實(shí)施例中,參照圖12,所述移動(dòng)終端1包括:
第一發(fā)送模塊11,用于發(fā)送第一類型控制包至服務(wù)器2,并在接收到所述服務(wù)器2的回復(fù)后連續(xù)發(fā)送預(yù)定數(shù)量的第一類型數(shù)據(jù)包至所述服務(wù)器2;
第二發(fā)送模塊12,用于待所述第一類型數(shù)據(jù)包發(fā)送完畢,移動(dòng)終端1發(fā)送第二類型控制包至所述服務(wù)器2,以告知所述服務(wù)器2本輪上行數(shù)據(jù)發(fā)送完成;
計(jì)算處理模塊13,用于接收所述服務(wù)器2發(fā)送的第二類型數(shù)據(jù)包,并在接收到所述服務(wù)器2發(fā)送的第三類型控制包時(shí),獲取所述服務(wù)器2計(jì)算的上行性能統(tǒng)計(jì)數(shù)據(jù),并計(jì)算本輪的下行性能統(tǒng)計(jì)數(shù)據(jù),將所述上行性能統(tǒng)計(jì)數(shù)據(jù)和下行性能統(tǒng)計(jì)數(shù)據(jù)寫入測試日志文件;
在一實(shí)施例中,參照圖13,所述服務(wù)器2包括:
彈回模塊21,用于在接收到移動(dòng)終端1發(fā)送的第一類型控制包時(shí),將所述第一類型控制包彈回至所述移動(dòng)終端1;
第三發(fā)送模塊22,用于接收所述移動(dòng)終端1發(fā)送的第一類型數(shù)據(jù)包,并在接收到所述移動(dòng)終端1發(fā)送的第二類型控制包時(shí),向所述移動(dòng)終端1連續(xù)發(fā)送預(yù)定數(shù)量的第二類型數(shù)據(jù)包;
第四發(fā)送模塊23,用于待所述第二類型數(shù)據(jù)包發(fā)送完畢,計(jì)算出本輪的上行性能統(tǒng)計(jì)數(shù)據(jù),并將所述上行性能統(tǒng)計(jì)數(shù)據(jù)放入第三類型控制包中,再將所述第三類型控制包發(fā)送至所述移動(dòng)終端1,以供所述移動(dòng)終端1將所述上行性能統(tǒng)計(jì)數(shù)據(jù)以及計(jì)算出的下行性能統(tǒng)計(jì)數(shù)據(jù)寫入測試日志文件。
以上僅為本發(fā)明的優(yōu)選實(shí)施例,并非因此限制本發(fā)明的專利范圍,凡是利用本發(fā)明說明書及附圖內(nèi)容所作的等效結(jié)構(gòu)或等效流程變換,或直接或間接運(yùn)用在其他相關(guān)的技術(shù)領(lǐng)域,均同理包括在本發(fā)明的專利保護(hù)范圍內(nèi)。