QUESTION
PART I
Learning Outcomes of this Assessment
On completion of this project it is expected that the student will have a deep understanding
of the process and tools used in simulating a typical networking system, including planning,
development, execution and analysis of simulation exercises. Students are also expected
to gain practical knowledge of the OPNET simulation tool and C++ programming language.
Key Skills to be Assessed
Research methods
Analysis and Design
Programming – OPNET and C++
Communication – Production of written report
Introduction and Purpose
In the lectures and tutorials you have been introduced to the OPNET simulation package and to the simulation development process. You have also learned that simulating communication systems, requires the planning and design of the model, the input data to be fed to the model, the results to be collected and the approach to analysing these results.
On the other hand, you learned that many systems may be modelled using queues and queuing theory. The purpose of this project is to develop simulation models for particular scenarios and execute them using the OPNET simulation tool and by writing a C++ program. Results should then be collected and presented together with critical analysis of the results and final conclusions. There are two exercises in this project; one requires, building an OPNET simulation for a network case study and the other is to simulate a queuing system using C++ program. The description of the case study is found in PART II of this brief, while the description of the simulation program is found in PART III.
Although you are expected to use OPNET to run the simulation and obtain the results, you may use other tools (such as MATLAB or Excel) to analyse those results by exporting the results from OPNET to other tools.
Deliverables
The following must be submitted by the date outlined above:
1. An individual report (approximately 10-15 pages, times new roman pt 12, single lined spaced) that outlines your solution and the development of your simulation. It should include the following elements:
- Problem definition
- Approach to the problem investigation
- Description of the parameters used in the simulation, including values and justification
- Type of the various inputs to the simulation including, traffic flow(s), various operating conditions, or other signals propagating the network
- Description of the scenarios to be run in the course of the project including the reasons why these have been chosen
- Design of the simulation project, including all parameter settings and scripts/ code used in the process
- Description of the collected results, including the justification
- Analysis of collected results
- Final conclusion and critical evaluation of the whole process
2. The report should approximate the following structure:
- Title page
- Contents page
- List of figures
- Introduction
- Problem definition and objectives of each of the two exercises
- Model definition and program design
- Design and Implementation of the simulation and program
- Results and Analysis
- Evaluation and conclusion
- References
3. Solution files
- OPNET Project files.
- Executable file(s) for the C++ simulation software.
- Source code files and Visual Studio project definition solution.
Note about Plagiarism
Your submitted assignment must be written in your own words. The rules of plagiarism are clearly stated in your Student Handbook which you must consult. You are strongly advised to take care to reference and acknowledge any material that is not your own work. In particular, you must make sure that:
- Any sentences, Including any definitions that are copied word for word are in quotation marks and cite the source(s);
- Any figures copied include citations to sources;
- Any code that is taken from any source (text book, 1fVWIN, journals etc) is fully acknowledged.
PART II – OPNET Simulation Case Study
Study of Routing Techniques (protocols) Response to a Link Failure and Recovery
Overview
In this case study, you are required to design and implement a simulation-based experiment to study the response of two types of routing technique (distance-vector and link state) with respect to a link failure and a link re-start. An example of a link-state routing protocol is the OSPF protocol, while RIP (Routing Information Protocol) is an example of a distance vector routing.
A distance-vector routing protocol requires that a router informs its neighbours of topology changes periodically. Compared to link-state protocols, which require a router to inform all the nodes in a network of topology changes, distance-vector routing protocols have less computational complexity and message overhead. In both techniques, a routing table is used to forward a packet to the next hop on the path to its destination. The difference between the two rests In the knowledge of the entire network and the way in which this knowledge is obtained. Unlike the distance vector routing technique, the link-state technique keeps local knowledge of the entire network topology. Although it uses the shortest path to forward packets to their destinations, other paths to the destination are also learned and kept by the routers as redundant links. In distance vector routing, no redundant paths are kept by the routers. This difference has an impact on the way and speed the two techniques respond to any link failure In the network.
Aim
The aim of the simulation is to study the effect of the link failure on the operation and performance of the two routing techniques (distance-vector and link state), and to provide comparison between them
Simulation strategy and methodology
In this case study, the simulation should achieve the following:
- Choose at least one protocol per routing technique to be used in the simulation.
- Design an appropriate network topology for simulating the two protocols; discuss the reasons behind the topology design, including the number of the nodes and links in the topology.
- Design a set of scenarios with respect to the intended outcome of the study; the scenarios should provide you with enough results to enable you to make sound judgments and conclusions about the performance of the protocols. These may, for example, study the effect of the failure before and after the protocol(s) have converged. Also they may study the effect of single or multiple link failure(S) on the performance of each protocol. The design and rationales behind these scenarios constitute part of the overall project design and will be taken into consideration in the assessment of the project.
- Devise a process for validating and verifying the model and simulation. This process should demonstrate how the model and its implementation (simulation) would be modified in light of the validation and verification results.
- The process should also include a method for collecting, analyzing and evaluating the results including comparisons between the various scenarios.
- Present all results using a combination of graphs, tables, diagrams, etc. as appropriate. You may use other tools such as MATLAB or Excel for the sake of analysis.
- Make clear and rational conclusions related to the objectives of the study. All conclusions should be linked back to and supported by the simulation results which have been presented as above.
Documents and Recommended Reading
- Module Notes provided throughout the semester.
- OPNET modelling concepts documentation
- OPNET Tutorials
PART III – c++ Simulation
Simulating an M/M/1 System
Overview
In this exercise, you are required to write a C++ program to simulate an M/M/1system in order to estimate the average delay time of a packet transmission and average queue size.
An M/M/1 queue (shown in the figure below) represents a queue system having a single server, where job arrivals are determined by a Poisson process with the following characteristics:
– ΙΙD (independent and identically distributed)
– Memoryless
– Exponentially distributed (l.e., CDF F(χ) = 1- e– λχ
where λ = average arrival rate
In an M/M/1 queue system we assume that job service times (times spent actually processing/ transmitting a job exclusive of waiting time) are also negative exponentially distributed (I.e. generated by a Poisson process) with service rate ( μ ) and service time (1/μ)
A queue system is said to be at a steady state (stable system) when the number of jobs entering the system is equal to the number of jobs leaving. A system can reach a steady state if the system load factor (ρ ≤ 1), where ρ = λ / μ.
According to little theorem, the average number of jobs (jobs in the queue) at a steady state is given by the following equation:
Scenario
The aim of the simulation Is to simulate packet transmission as an M/M/1 queue system using the C++ language. The following parameters should be used to implement the simulation:
- Average time interval between two packets = 0.04 sec
- Line throughput = 100,000 (100Kbps)
- Average packet size = 500 bytes
The completed program should use the parameters to do the following:
1. model the packet arrival (to be added into a queue) using an exponentially distributed random variable,
2. model the packet size as an exponentially distributed random variable
3. compute the transmission time after retrieving it from the queue
4. for every iteration through the Simulation, calculate the average queue length (in bits) and average packet delay time (in)
5. draw the above two values as functions of time; you may write the above values to a file and use an extemal tool such as Excel for drawing these values
Simulation strategy and methodology
This exercise is best implemented as time-driven simulation. In the time-driven simulation, time is segmented into fixed-length slots. As the simulation progresses, there is a clock that advances by the length of a slot. At the end of each slot the system is updated in accordance with events that may have occurred in the slot interval. For example, in a queueing system, new arrivals can be added to the queue and departures removed. If the arrival process Is Poisson, the number of new arrivals has a Poisson distribution, whose mean is the average arrival rate times the duration of the slot. After the system is updated for all the events that can occur, the clock advances by one time segment. Although time-driven simulation is often straightforward to program, it may be Inefficient. The time slot should be small enough to avoid an excessive number of events that can occur in a slot.
Use the following general strategy to solve the problem:
- Start the simulation at time = 0.
- Run the simulation as a loop, where every iteration advances the simulation time by an appropriate time slot (increment).
- Calculate the time of arrival of the next packet using a random variable.
- When the simulation time reaches the time of the next packet, create a new packet and add it to the queue. The packet size should be calculated as a random variable too.
- If the queue is not empty and the system is free to transmit a packet, then retrieve one packet and calculate the time the system needs to transmit the packet.
- Calculate the time delay of the packet, the current queue length (no of bits in the queue) and the averages of both values. Write these values to a file.
- Update the simulation time and repeat the process.
A previously simulated queue system (implemented in C++) has produced the results shown in the figures below. Your Implementation is expected to produce similar results.
Documents and Recommended Reading
- Module Notes provided throughout the semester.
- Stroustrup, B. “The C++ Programming Language” 3rd edition; Addison Wesley 1997;
- ISBN
- C++ tutorials and examples from the internet
- http://www.cplusplus.com/reference/stl/
- http://msdn.microsoft.com/en-us/library/3bstk3k5.aspx
- http://www.johndcook.com/cpp_TR1_random.ht
SOLUTION
- 1.CASE STUDY—Study of routing techniques (protocols)response to a link failure and recovery.
This system automatically provides events to appropritately configured processors and queues when the condition attributes of nodes or links are changed to the value‘disabled’
and ‘enabled’ respectively.Typically ,the processes that are effected need to determine the identity of the node or link that caused the event to occur .Program below shows how this is accomplished—
event_type=op_intrpt_type();
if (event_type==OPC_INTRPT_FALL)
status=DOWN;
else
Status=UP;
object_id=op_intrpt_source();
object_type=op_id_to_type(object_id);
if (object_type==OPC_OBJTYPE_NDFIX)
{
routes_reconfig_node(object_id,status);
}
else routs_reconfig_link(object_id,status);
2.CASE STUDY—Simulating a M/M/1 system.
The quing model M/M/1 is single queue and single server case model.It represents a ‘server’ such as a CPU ar a computer with a set of tasks (programs) to be executed.The tasks are activated or arrive at random times and are queued in memory until they can be processed or ‘serviced’ by the CPU on a first come first served basis.The key parameters of the model are the rate at which tasks requiring service arrive and the rate at which the tasks are serviced ,both measured in tasks /s.The mean or average arrival and service rates are conventionally denoted by λ and µ respectively. The actual arrival and service rates vary randomly around these mean values and are representated by probability distributions.
The symbol ρ denotes λ/ µ and represents the mean utilization of the server.,that is,the fraction of time it is busy ,on average .
The arrival of tasks at the system is a random process characterized by the interarrival time distribution pI(t) defined as the probability that at least one task arrives during a period of length t.The M/M/1 case assumes a Poission arrival process ,for which the probability distribution function is –
pI(t)=1-exp(-λt)
This exponential distribution has pI(t) =0 when t=0.As t increases pI(t) increases steadily toward 1 at a rate determined by λ.Exponential distributions characterize the randomness of many quing model.So it is usual to model the behaviour of the server (the service process) by an exponential distribution also.Let ps(t) be the probability that the service required by a task is completed by the CPU in time t or less after its removel from the queue.Then the service process is characterized by
Ps(t)=1- exp(- µt)
Various performance parameters can characterize the steady state performance of a single server queueing system under the forgoing assumptions.
1.The utilization ρ=λ/µ of the server ,that is the average fraction of time it is busy.
2.The average number of tasks queued in the system,including tasks waiting for service and those actually being served .The parameter is called mean squre length and is denoted by lq.It can be shown that
lq= ρ/(1- ρ)
The average time that arriving tasks spend in the system ,both waiting for service and being served ,which is called the “mean waiting time” tq.The quantities t and lq are related direcrtly as follows .An average task X passing through the system under steadity state conditions should encounter the same number of waiting tasks lq when it enters the system as it leaves behind when it departs from the system after being serviced.The number left behind is λtq,which is the number of tasks that enter the system at rate λ,during the period tq when X is present.Hence we conclude that lq=λtq,
In other words—
Tq=lq/λ
This equation is known as “Little’s equation”.And it is valid for all types of queing system.
Combining above two equations—
Tq=1/(µ-λ)
The quantities lq and tq refer to tasks that are either waiting for access to the server or are actually being served .The mean number of tasks waiting in the queue excluding those being served is denoted by lw,while tw denoted the mean time spent waiting in the queue,excluding service time.(w means waiting).The mean utilization of the server is an M/M/1 system that is the mean number of tasks being served ,is λ/µ.Hence subtracting this from lq yields lw:
lw=lq-ρ= λ* λ/(µ(µ-λ)
similarly,
tw=tq-(1/ µ)= λ/(µ(µ-λ)
where 1/ µ is the mean time it takes to service a task .Comparing the equations of tw and lw.We see that tw=lw/ λ.
Therefor little equation holds for both the Q and the W subscripts.
CODE—
#include<iostream.h>
#include<math.h>
int main(int argc, char *argv[])
{
cout<<“lambda:”;
cout<<“mu”;
cout<<“t”;
float lamda;
float mu;
float t;
float pIt;
float pst;
float lq;
float rho;
float tq;
float lw;
float tw;
pIt=1- exp((-1)*lambda*t);
pst=1- exp(-mu*t);
rho=lambda/mu;
lq=rho/(1-rho);
tq=lq/lambda;
tq=1/(1-mu-lambda);
lw=lambda*lambda/(mu*(mu-lambda));
tw=lambda/(mu*(mu-lambda));
cout<<“lambda”<<lambda;
cout<<“mu”;
cin>>mu;
cout<<“pIt”;
cin>>pIt;
cout<<“Pst”;
cin<<pst;
cout<<“rho”;
cin>>rho;
cout<<“lq”;
cin>>lq;
cout<<“tq”
cin>>tq;
cout<<“lw”;
cin>>lw;
cout<<“tw”;
cin>>tw;
return 0;
}
JF84
-
“The presented piece of writing is a good example how the academic paper should be written. However, the text can’t be used as a part of your own and submitted to your professor – it will be considered as plagiarism.
But you can order it from our service and receive complete high-quality custom paper. Our service offers “Information technology” essay sample that was written by professional writer. If you like one, you have an opportunity to buy a similar paper. Any of the academic papers will be written from scratch, according to all customers’ specifications, expectations and highest standards.”