本文对消息创建报告CreatedMessagesReport进行统计,给出创建消息的分布图。

1. CreatedMessagesReport

CreatedMessagesReport用于记录每个新创建消息的详细信息,其格式如下:

# time  ID  size  fromHost  toHost  TTL  isResponse
32.0000 M1 1834 n32 n9 2 N 
58.0000 M2 1273 n16 n52 2 N 
84.0000 M3 1122 n21 n9 2 N 
112.0000 M4 1257 n40 n52 2 N 
144.0000 M5 1671 n58 n38 2 N

2. 新创建消息分布

关于消息事件产生器原理性东西,请参考之前博文《消息事件产生器MessageEventGenerator 》。

2.1 配置文件

配置文件相关条目如下:

Scenario.endTime = 432000

Events2.class = [MessageEventGenerator; OneToEachMessageGenerator; OneFromEachMessageGenerator; MessageBurstGenerator]
Events2.interval = 25,35
Events2.size = 1k,2k
Events2.hosts = 0, 79
Events2.tohosts = 0, 79
Events2.prefix = M

2.2 MessageEventGenerator

共创建了14636个消息。新创建消息的分布如下图,比如,在所有新创建的消息中,节点0产生193个消息(图中绿色叉叉表示),消息的目标节点为0的205个(图中红色加号表示)。蓝线表示均值,可见消息分布并没有集中在均值,这大概是The ONE产生消息时加入了一些限制,如源节点和目的节点不能一样。

infocom06_432000_MessageEventGenerator_CreatedMessagesReport

2.3 OneToEachMessageGenerator

从字面上理解,OneToEachMessageGenerator似乎是每个interval,随机选取一个源节点,分别产生新消息给tohosts。看了源代码,才发现不是,仿真结果更验证了这点。本例tohosts为[0,79),只有51个源节点产生消息,目的节点只有74个(最多一个消息到达某个目的节点)。注:下图的x轴不完整。

img

2.4 OneFromEachMessageGenerator

同理,从字面上理解,OneFromEachMessageGenerator似乎是在每个interval,随机从tohosts选择一个目的节点,每个源节点hosts产生一消息给他。看了源代码,才发现不是,仿真结果更验证了这点。本例tohosts[0,79),74个源节点产生消息(最多产生一个消息),目的节点只有51个。注:下图的x轴不完整。

img

2.5 MessageBurstGenerator

MessageBurstGenerator跟字面上理解的一样,产生大量消息,每个间隔interval,每个源节点hosts为每个tohosts产生一个消息。产生的CreatedMessagesReport有3+G,太大了,就没绘图。

3551072899    infocom06_432000_MessageBurstGenerator_CreatedMessagesReport.txt
    522946    infocom06_432000_MessageEventGenerator_CreatedMessagesReport.txt
      2359    infocom06_432000_OneFromEachMessageGenerator_CreatedMessagesReport.txt
      2359    infocom06_432000_OneToEachMessageGenerator_CreatedMessagesReport.txt

产生的CreatedMessagesReport部分内容如下,共产生90205518个消息(参考这个等式:432000/30 7978 = 88732800)。

# time  ID  size  fromHost  toHost  TTL  isResponse
32.0000 M1 1514 n0 n1 2 N
...
32.0000 M78 1631 n0 n78 2 N 

32.0000 M79 1543 n1 n0 2 N 
....
32.0000 M156 1125 n1 n78 2 N 

...
431971.0000 M90205516 1146 n78 n75 2 N 
431971.0000 M90205517 1862 n78 n76 2 N 
431971.0000 M90205518 1678 n78 n77 2 N

3. 脚本文件

写一个简单shell脚本分析CreatedMessagesReport(主要用到命令有:cut, sed, uniq, wc),用gnuplot绘图。

本文系Spark & Shine原创,转载需注明出处本文最近一次修改时间 2022-03-27 16:13

results matching ""

    No results matching ""