一種基于最短通信時間的網(wǎng)絡結點通信模擬方法
【專利摘要】本發(fā)明提供的是一種基于最短通信時間的網(wǎng)絡結點通信模擬方法。該方法在拓撲網(wǎng)絡中使用隨機數(shù)生成模擬網(wǎng)絡結點通信,突出模擬網(wǎng)絡的隨機性,同時以最快完成任務為原則將隨機生成的通信任務安排給通信結點的通信端口,提高通信仿真的效率。
【專利說明】一種基于最短通信時間的網(wǎng)絡結點通信模擬方法
(-)【技術領域】
[0001]本發(fā)明涉及的是一種基于最短通信時間的網(wǎng)絡結點通信模擬方法。
(二)【背景技術】
[0002]現(xiàn)代社會中通信網(wǎng)絡系統(tǒng)是一典型的復雜網(wǎng)絡系統(tǒng),不僅其本身具有系統(tǒng)復雜性、自組織性、臨界性等特點,而且與其它關鍵基礎設施系統(tǒng)之間以及用戶人群之間存在著復雜的依賴關系。通信系統(tǒng)的模擬仿真技術是借助計算機對通信系統(tǒng)的模型來進行實驗,可以使用戶在很短的時間內(nèi)建立整個通信系統(tǒng)模型,具有經(jīng)濟、安全、周期短的特點。
[0003]在所有的通信系統(tǒng)中,信道噪聲、干擾和衰落等隨機影響會對信息的傳輸造成損失。要想精確地仿真通信系統(tǒng),首先要對這些影響建立準確的模型,通信信號是通信系統(tǒng)的基礎,所以開發(fā)一個高效的通信信號模擬仿真環(huán)境在現(xiàn)代通信技術中意義重大。
[0004]針對以上情況,我們提出了一種基于最短通信時間的網(wǎng)絡結點通信模擬方法來實現(xiàn)網(wǎng)絡通信仿真:首先生成隨機數(shù)M、N表示未來表示結點M將與其他N個網(wǎng)絡結點進行通信,最后生成N個二元數(shù)組分別表示通信結點,通信信息長度。根據(jù)所生成的二元數(shù)組,將通信任務以最快完成任務為原則安排給結點M的通信端口來模擬單一結點的流量并發(fā);
(三)
【發(fā)明內(nèi)容】
[0005]本發(fā)明的目的在于提供一種基于最短通信時間的網(wǎng)絡結點通信模擬方法。該方法在拓撲網(wǎng)絡中使用隨機數(shù)生成模擬網(wǎng)絡結點通信,突出模擬網(wǎng)絡通信的隨機性,同時以最快完成任務為原則安排給結點M的通信端口,提高通信仿真的效率。
[0006]本發(fā)明的目的是這.樣實現(xiàn)的:
[0007]設網(wǎng)絡中結點A將與其他網(wǎng)絡結點進行通信,通信次數(shù)為N ;設結點A共有P個通信端口,并且只能通過這些通信端口向網(wǎng)絡其他結點發(fā)送信息;使用數(shù)據(jù)格式Pi: [Di, Mi]表示結點A通過通信端口 Pi向網(wǎng)絡結點Di的發(fā)送信息長度為Mi的通信任務;
[0008]生成N個不同的二元隨機正整數(shù)組的集合M=HD1, MJ,..., {Dn, Mn} },從M集合中取出最大的P個元素,按照從大到小的順序放入集合T1= {{Dn, M1J,..., {D,pl) MpJ},依次分配給P個通信端口形成通信隊列MLi st= (P1: {Dn, M1J,P2: {D21, M2J ,...,Pp: {Dpl, Mpl}};如果M集合不為空,則從M中再取出最大的P個元素,按照從大到小順序放入集合T2= {{D12, M1J,...,{Dp2, MpJ },按照上次分配的反序依次分配給P個通信端口,將分配結果加入到通信隊列 MList=IP1: {Dn,Mn} {Dp2, MpJ , P2: {D21, M2J {D(p_1)2, M(p_1)2},...,Pp: {DN1, MnJ{D12,M12}}中;如果M集合不為空,重復上述步驟直至集合M為空為止,這樣在MList中保存了結點A發(fā)送N個信息的最短通信模擬序列;
[0009]具體步驟為:
[0010](I)用戶輸入通信總數(shù)N ;初始化數(shù)據(jù)鏈表MList、TempList為空;
[0011](2)生成隨機數(shù)A,P,表示網(wǎng)絡結點A有P個通信端口,端口編號為Pnum,num=l,2…P ;[0012](3)設置 i=0;
[0013](4)生成三元隨機數(shù)(Di, MJ ;
[0014](5)初始化 j=l;
[0015](6)如果i=0,執(zhí)行步驟7,否則執(zhí)行步驟;
[0016](7)取 MList 的第 j 個元素{D」,MjI ;
[0017](8)如果Di=Dj,執(zhí)行步驟9,否則執(zhí)行步驟10 ;
[0018](9)如果Mi=Mj,執(zhí)行步驟,否則執(zhí)行步驟10 ;
[0019](10) j的值加1,如果j>i,執(zhí)行步驟11,否則執(zhí)行步驟7 ;
[0020](11)將(Di, MJ 加入 TempList, i 的值加 I ;
[0021](12)如果i>N·,執(zhí)行步驟13,否則執(zhí)行步驟4 ;
[0022](13)將TempList中的元素根據(jù)M的大小降序排序;
[0023](14)初始化 k= I;
[0024](15)如果k*p〈N,執(zhí)行步驟16,否則執(zhí)行步驟20 ;
[0025](16)如果k mod2=l ;執(zhí)行步驟17,否則執(zhí)行步驟18 ;
[0026](17)順序取出TempList中的第(k_l)p+l到k*p個元素,依次分配給P個通信端口,形成通信隊列 MList= {P1:...{Dlk, M1J,..., Pp:...{Dpk, MpJ };執(zhí)行步驟 19 ;
[0027](18)倒序取出TempList中的第(k_l)p+l到k*p個元素,依次分配給P個通信端口,形成通信隊列 MLi st= {P1:...{Dlk, M1J,..., Pp:...{Dpk, MpJ };
[0028](19)k+l,執(zhí)行步驟 15 ;
[0029](20)g=(k_l)*p+l ;
[0030](21)如果k mod2=l ;執(zhí)行步驟22,否則執(zhí)行步驟23 ;
[0031](22)順序取出TempList中的第g到N個元素,依次分配給第I到第g個通信端口,形成通信隊列 MList= (P1:...{Dlk,Mlk},Pg: {...Dgk,U, ..,Pp.{...Dp(k—I),Mp(k—i)}},執(zhí)
行步驟24 ;
[0032](23)倒序取出TempList中的第g到N個元素,依次分配給P個通信端口,形成通信隊列 MList= {P1:...{Dlk,Mlk},Pg: {...Dgk,U,...,Pp.{...Dp(k—I),Mp(k—i)}};
[0033](24)這樣結點的各端口只需要根據(jù)列表PortList完成發(fā)送任務。
[0034]本發(fā)明的關鍵在于在模擬網(wǎng)絡通信隨機性和并發(fā)性的基礎上提高仿真效率。為此,以最快完成任務為原則安排給網(wǎng)絡結點的通信端口,在保證網(wǎng)絡結點隨機并發(fā)通信的基礎上,還使模擬通信環(huán)境的效率得到提高。
[0035]其主要特點如下:
[0036]1、使用隨機數(shù)生成方法來確定網(wǎng)絡中的通信結點和通信時間,使每次產(chǎn)生的通信結點和通信信息長度段都不盡相同,使生成的網(wǎng)絡通信環(huán)境更具有普遍性;
[0037]2、以最快完成任務為原則將通信任務安排給網(wǎng)絡結點的通信端口,使用簡單的列表完成隨機通信環(huán)境的記錄,提高了模擬通信環(huán)境的效率。
(四)【專利附圖】
【附圖說明】
[0038]圖1:一種基于最短通信時間的網(wǎng)絡結點通信模擬方法(五)具體的實施方式
[0039]下面結合附圖距離對本發(fā)明作更詳細的描述:
[0040]本發(fā)明所述方法的特征在于:
[0041]設網(wǎng)絡中結點A將與其他網(wǎng)絡結點進行通信,通信次數(shù)為N ;設結點A共有P個通信端口,并且只能通過這些通信端口向網(wǎng)絡其他結點發(fā)送信息;使用數(shù)據(jù)格式Pi: [Di, Mi]表示結點A通過通信端口 Pi向網(wǎng)絡結點Di的發(fā)送信息長度為Mi的通信任務;
[0042]生成N個不同的二元隨機正整數(shù)組的集合M=HD1, MJ,..., {DN, Mj },從M集合中取出最大的P個元素,按照從大到小的順序放入集合T1= {{Dn, M1J,..., {D,pl) MpJ},依次分配給P個通信端口形成通信隊列MLi st= (P1: {Dn, M1J,P2: {D21, M2J ,...,Pp: {Dpl, Mpl}};如果M集合不為空,則從M中再取出最大的P個元素,按照從大到小順序放入集合T2= {{D12, M1J,...,{Dp2, MpJ },按照上次分配的反序依次分配給P個通信端口,將分配結果加入到通信隊列 MList=IP1: {Dn,Mn} {Dp2, MpJ , P2: {D21, M2J {D(p_1)2, M(p_1)2},...,Pp: {DN1, MnJ{D12,M12}}中;如果M集合不為空,重復上述步驟直至集合M為空為止,這樣在MList中保存了結點A發(fā)送N個信息的最短通信模擬序列;
[0043]具體步驟為:
[0044](I)用戶輸入通信總數(shù)N ;初始化數(shù)據(jù)鏈表MList、TempList為空;
[0045](2)生成隨機數(shù)A,P,表示網(wǎng)絡結點A有P個通信端口,端口編號為Pnum,num=l,2…P ;
[0046](3)設置 i=0 ;
[0047](4)生成三元隨機數(shù)他,MJ ;
[0048](5)初始化 j=l ;
[0049](6)如果i=0,執(zhí)行步驟7,否則執(zhí)行步驟;
[0050](7)取 MList 的第 j 個元素{D」,MjI ;
[0051](8)如果Di=Dj,執(zhí)行步驟9,否則執(zhí)行步驟10 ;
[0052](9)如果Mi=Mj,執(zhí)行步驟,否則執(zhí)行步驟10 ;
[0053](10) j的值加I,如果j>i,執(zhí)行步驟11,否則執(zhí)行步驟7 ;
[0054](11)將(Di, MJ 加入 TempList,i 的值加 I ;
[0055](12)如果i>N,執(zhí)行步驟13,否則執(zhí)行步驟4 ;
[0056](13)將TempList中的元素根據(jù)M的大小降序排序;
[0057](14)初始化 k= I;
[0058](15)如果k*p〈N,執(zhí)行步驟16,否則執(zhí)行步驟20 ;
[0059](16)如果k mod2=l ;執(zhí)行步驟17,否則執(zhí)行步驟18 ;
[0060](17)順序取出TempList中的第(k_l)p+l到k*p個元素,依次分配給P個通信端口,形成通信隊列 MList= {P1:...{Dlk, Mlk},...,Pp:...{Dpk, Mpk}};執(zhí)行步驟 19 ;
[0061](18)倒序取出TempList中的第(k_l)p+l到k*p個元素,依次分配給P個通信端P,形成通信隊列 MList= {P1:...{Dlk, Mlk},..., Pp:...{Dpk, Mpk}};
[0062](19)k+l,執(zhí)行步驟 15 ;
[0063](20)g=(k_l)*p+l ;
[0064](21)如果k mod2=l ;執(zhí)行步驟22,否則執(zhí)行步驟23 ;[0065](22)順序取出TempList中的第g到N個元素,依次分配給第I到第g個通信端P,形成通信隊列 MList= {Pl:...{Dlk, Mlk}, Pg: {...Dgk, Mgk},..., Pp:..Dp (k_l), Mp (k-1)}};執(zhí)行步驟24 ;
[0066](23)倒序取出TempList中的第g到N個元素,依次分配給P個通信端口,形成通信隊列 MList= {P1:...{Dlk, Mlk}, Pg: {...Dgk, Mgk},..., Pp:..Dp (k-1), Mp (k-1)}};
[0067](24)這樣結點的各端口只需要根據(jù)列表PortList完成發(fā)送任務。
[0068]其具體實施模式是這樣的:
[0069]首先生成將要通信的結點和通信數(shù)量,根據(jù)通信數(shù)量,生成每次通信的結點和通信信息長度,并將隨機生成的通信任務根據(jù)通信信息長度降序排列;然后將通信任務根據(jù)通信結點的端口數(shù)分成多個組,最后將通信組以正序、反序交替的方式依次分配給通信結點的各個通信端口。經(jīng)過上述步驟,每個端口的任務便形成了一個由數(shù)組記錄的任務列表,各個端口只需要根據(jù)列表記錄的通信結點和通信信息長度進行通信,這樣便模擬了一種基于最短通信時間的網(wǎng)絡結點通信模擬方法。
【權利要求】
1.一種基于最短通信時間的網(wǎng)絡結點通信模擬方法,其特征在于:本發(fā)明的目的是這樣實現(xiàn)的:設網(wǎng)絡中結點A將與其他網(wǎng)絡結點進行通信,通信次數(shù)為N ;設結點A共有P個通信端口,并且只能通過這些通信端口向網(wǎng)絡其他結點發(fā)送信息;使用數(shù)據(jù)格式Pi: [Di, Mi]表示結點A通過通信端口 Pi向網(wǎng)絡結點Di的發(fā)送信息長度為Mi的通信任務;生成N個不同的二元隨機正整數(shù)組的集合M=HDpMJ,..., {DN,MN}},從M集合中取出最大的P個元素,按照從大到小的順序放入集合T1= {(D111M1J,..., {D,pl, MpJ },依次分配給 P 個通信端口形成通信隊列 MList={P1: (D111M1J1P2: {D21,M21},...,Pp: {Dpl, Mpl}};如果M集合不為空,則從M中再取出最大的P個元素,按照從大到小順序放入集合T2= {{D12, M1J,...,{Dp2, MpJ },按照上次分配的反序依次分配給P個通信端口,將分配結果加入到通信隊列 MList=IP1: {Dn,Mn} {Dp2, MpJ , P2: {D21, M2J {D(p_1)2, M(p_1)2},...,Pp: {DN1, MnJ{D12,M12}}中;如果M集合不為空,重復上述步驟直至集合M為空為止,這樣在MList中保存了結點A發(fā)送N個信息的最短通信模擬序列;具體步驟為:(1)用戶輸入通信總數(shù)N;初始化數(shù)據(jù)鏈表MList、TempList為空;(2)生成隨機數(shù)A,P,表示網(wǎng)絡結點A有P個通信端口,端口編號為Pnum,num=l,2...P ;(3)設置i=0 ;(4)生成三元隨機數(shù)(DilMJ;(5)初始化j=l;(6)如果i=0,執(zhí)行步驟7,否則執(zhí)行步驟;(7)取MList的第j個元素{D」,MjI;(8)如果Di=Dp執(zhí)行步驟9,否則執(zhí)行步驟10;(9)如果Mi=Mj,執(zhí)行步驟,否則執(zhí)行步驟10;(10)j的值加1,如果j>i,執(zhí)行步驟11,否則執(zhí)行步驟7;(11)將{DdMJ加入 TempList,i 的值加 I ;(12)如果i>N,執(zhí)行步驟13,否則執(zhí)行步驟4;(13)將TempList中的元素根據(jù)M的大小降序排序;(14)初始化k=l;(15)如果k*p〈N,執(zhí)行步驟16,否則執(zhí)行步驟20;(16)如果kmod2=l;執(zhí)行步驟17,否則執(zhí)行步驟18 ;(17)順序取出TempList中的第(k_l)p+1到k*p個元素,依次分配給P個通信端口,形成通信隊列 MList= {P1:...{Dlk, M1J ,...,Pp:...{Dpk, MpJ };執(zhí)行步驟 19 ;(18)倒序取出TempList中的第(k_l)p+l到k*p個元素,依次分配給P個通信端口,形成通信隊列 MList 1:...{Dlk, M1J,...,Pp:...{Dpk, MpJ};(19)k+l,執(zhí)行步驟15;(20)g=(k-l)*p+l;(21)如果kmod2=l ;執(zhí)行步驟22,否則執(zhí)行步驟23 ;(22)順序取出TempList中的第g到N個元素,依次分配給第I到第g個通信端口,形成通信隊列 MList= (P1:...{Dlk,Mlk},Pg: {...Dgk,Mgk},...,Pp.{...Dp(k—I),Mp(k—i) }};執(zhí)行步驟24;(23)倒序取出TempList中的第g到N個元素,依次分配給P個通信端口,形成通信隊列
【文檔編號】H04L12/26GK103441903SQ201310395218
【公開日】2013年12月11日 申請日期:2013年9月3日 優(yōu)先權日:2013年9月3日
【發(fā)明者】姚文斌, 韓司, 李祥書 申請人:北京郵電大學