410 likes | 561 Views
The Design of XML-Based Model and Experiment Description Languages for Network Simulation. Andrew Hallagan Bucknell University Dept. of Computer Science Luiz Felipe Perrone , Advisor. 3 General Network Types. Hardwired, wireless and ad-hoc networks. Nodes. 3 General Network Types.
E N D
The Design of XML-Based Model and Experiment Description Languages for Network Simulation Andrew Hallagan Bucknell University Dept. of Computer Science Luiz Felipe Perrone, Advisor
3 General Network Types Hardwired, wireless and ad-hoc networks
Nodes 3 General Network Types Hardwired, wireless and ad-hoc networks
Channels 3 General Network Types Hardwired, wireless and ad-hoc networks
Communication Between Nodes Breaking a message up into packets.
Communication Between Nodes Breaking a message up into packets.
Communication Between Nodes Breaking a message up into packets.
System Experiment with a model of the system Experiment with the actual system Physical model Mathematical model Analytical solution Simulation Ways to Study a System Source: Averill M. Law, Simulation, Modeling & Analysis
System Experiment with a model of the system Experiment with the actual system Physical model Mathematical model Analytical solution Simulation Ways to Study a System Source: Averill M. Law, Simulation, Modeling & Analysis
X-position = f(SPEED, ANGLE) Y-position = g(SPEED, ANGLE) SPEED ~ N(SPEED_MEAN, 3.0) ANGLE ~ U(0, ANGLE_BOUND) Model Inputs • SPEED_MEAN • ANGLE_BOUND A Simple Mobility Model The horizontal and vertical positions of the node are a function of SPEED and ANGLE, which are random variables distributed Normally and Uniformly, respectively.
Model Description X-position = f(SPEED, ANGLE) Y-position = g(SPEED, ANGLE) SPEED ~ N(SPEED_MEAN, 3.0) ANGLE ~ U(0, ANGLE_BOUND) Model Inputs • SPEED_MEAN • ANGLE_BOUND A Simple Mobility Model The horizontal and vertical positions of the node are a function of SPEED and ANGLE, which are random variables distributed Normally and Uniformly, respectively.
Factor Levels ANGLE_BOUND 15 30 45 60 SPEED_MEAN 2.0 3.0 4.0
Design Matrix ANGLE_BOUND 15 15 15 30 30 30 45 45 45 60 60 60 SPEED_MEAN 2.0 3.0 4.0 2.0 3.0 4.0 2.0 3.0 4.0 2.0 3.0 4.0
Design Matrix ANGLE_BOUND 15 15 15 30 30 30 45 45 45 60 60 60 SPEED_MEAN 2.0 3.0 4.0 2.0 3.0 4.0 2.0 3.0 4.0 2.0 3.0 4.0
Design Matrix Experiment Description ANGLE_BOUND 15 15 15 30 30 30 45 45 45 60 60 60 SPEED_MEAN 2.0 3.0 4.0 2.0 3.0 4.0 2.0 3.0 4.0 2.0 3.0 4.0
Network Complexities Bandwidth, physical distance, network traffic, etc.
Network Complexities Size.
Network Complexities Physical surroundings.
Recap • Networks are complex. • Modeling is difficult. • Experimentation isn’t straight-forward. • Mistakes in this process have led to credibility issues in network simulation.
Solution: Automation • Automate the modeling and experiment design process for users. • Automatically validate model descriptions. • Automatically validate experiment descriptions. • Automatically generate simulation scripts.
“[The Department of Energy] must continue the development of next generation complex networked systems that are more secure, less brittle to unexpected events, and more controllable. For these emerging efforts to be successful, it is essential that a firm intellectual foundation be provided for understanding and simulating large-scale networks.” Motivation for Network Simulation Research Source: J. M. Brase and D. L. Brown, Modeling, Simulation and Analysis of Complex Networked Systems. White paper.
SAFE Simulation Automation Framework for Experiments
High-level view of the SAFE architecture. My work is concerned with the Model Description and Experiment Description inputs to this framework (in the yellow boxes).
High-level view of the SAFE architecture. My work is concerned with the Model Description and Experiment Description inputs to this framework (in the yellow boxes).
<a href=“http://www.google.com”>Link to Google</a> Opening tag Element content Attribute value Closing tag Attribute An HTML “anchor” element. This piece of HTML is valid XML. It is an a tag with an attribute href. The value of the href attribute is a URL string and the content of the a tag is the “Link to Google” string.
ANGLE_BOUND SPEED_MEAN NEDL Functionality Provide ways to list experimental factors.
ANGLE_BOUND 15 30 45 60 SPEED_MEAN 2.0 3.0 4.0 NEDL Functionality Provide ways to list associated level values for each factor.
“Use the values 3, 17, and 9.” ANGLE_BOUND 15 30 45 60 SPEED_MEAN 2.0 3.0 4.0 NEDL Functionality Provide ways to list associated level values for each factor.
“Use the same values already provided for another factor.” ANGLE_BOUND 15 30 45 60 SPEED_MEAN 2.0 3.0 4.0 NEDL Functionality Provide ways to list associated level values for each factor.
“Take multiples of 15 between 15 and 60.” ANGLE_BOUND 15 30 45 60 SPEED_MEAN 2.0 3.0 4.0 NEDL Functionality Provide ways to list associated level values for each factor.
“Use the values specified in my external file named ____” ANGLE_BOUND 15 30 45 60 SPEED_MEAN 2.0 3.0 4.0 NEDL Functionality Provide ways to list associated level values for each factor.
SPEED_MEAN 2.0 3.0 4.0 • 2.0 • 3.0 • 4.0 • 2.0 • 3.0 • 4.0 • 2.0 • 3.0 • 4.0 ANGLE_BOUND 15 15 15 30 30 30 45 45 45 60 60 60 NEDL Functionality Provide ways to “prune” design points from the experiment space.
SPEED_MEAN 2.0 3.0 4.0 • 2.0 • 3.0 • 4.0 • 2.0 • 3.0 • 4.0 • 2.0 • 3.0 • 4.0 ANGLE_BOUND 15 15 15 30 30 30 45 45 45 60 60 60 “Remove the specific design point where ANGLE_BOUND = 15 and SPEED_MEAN = 3.0.” NEDL Functionality Provide ways to “prune” design points from the experiment space.
SPEED_MEAN 2.0 3.0 4.0 • 2.0 • 3.0 • 4.0 • 2.0 • 3.0 • 4.0 • 2.0 • 3.0 • 4.0 ANGLE_BOUND 15 15 15 30 30 30 45 45 45 60 60 60 “Remove every third design point.” NEDL Functionality Provide ways to “prune” design points from the experiment space.
NEDL Validation The NEDL validation module checks language semantics and ensures the experimenter has created a NEDL document that can be successfully parsed by SAFE.
NSTL: Model Description Flexible script templating
norm = ns3.RandomVariable(“Normal”, $SPEED_MEAN$, “3.0”) unif = ns3.RandomVariable(“Uniform”, 0, $ANGLE_BOUND$) node.setSpeed(norm) node.setAngle(unif) Creating an ns-3 script template. One can create an ns-3 script simply by removing certain hard-coded values and inserting special markers that correspond to the factors listed in a NEDL file.
<block> norm = ns3.RandomVariable(“Normal”, $SPEED_MEAN$, “3.0”) unif = ns3.RandomVariable(“Uniform”, 0, $ANGLE_BOUND$) node.setSpeed(norm) node.setAngle(unif) </block> <block> node.setSpeed(17.0) node.setAngle(135) </block> Creating an ns-3 script template. Using the block element in NSTL, one can specify interchangeable code blocks to swap in an ns-3 script. Since two block elements are used, two scripts will be generated.