PointToPoint Topology Default Application - ns-315-16/04/2016 Simulation of TCP Variants using NS-3...
Transcript of PointToPoint Topology Default Application - ns-315-16/04/2016 Simulation of TCP Variants using NS-3...
![Page 1: PointToPoint Topology Default Application - ns-315-16/04/2016 Simulation of TCP Variants using NS-3 24 Command Line Argument We use command line parser It opens the door to the ns3](https://reader034.fdocuments.in/reader034/viewer/2022051919/600c12c26ae6ec020b7f0103/html5/thumbnails/1.jpg)
PointToPoint TopologyDefault Application
Rahul [email protected]
STVN2016Jointly organized byPoornima University, Jaipur & IIITKota
![Page 2: PointToPoint Topology Default Application - ns-315-16/04/2016 Simulation of TCP Variants using NS-3 24 Command Line Argument We use command line parser It opens the door to the ns3](https://reader034.fdocuments.in/reader034/viewer/2022051919/600c12c26ae6ec020b7f0103/html5/thumbnails/2.jpg)
15-16/04/2016 Simulation of TCP Variants using NS-3 2
Scenario 1
● Create a simple client server node and send a UDP echo packet
<client>10.0.0.11/24
<server>IP 10.0.0.12/24Port 9
<Point-To-Point Link>
rate=5Mbps , delay=2ms
![Page 3: PointToPoint Topology Default Application - ns-315-16/04/2016 Simulation of TCP Variants using NS-3 24 Command Line Argument We use command line parser It opens the door to the ns3](https://reader034.fdocuments.in/reader034/viewer/2022051919/600c12c26ae6ec020b7f0103/html5/thumbnails/3.jpg)
15-16/04/2016 Simulation of TCP Variants using NS-3 3
Flow ChartCreate Node
Create NetDevice & Channel
Install NetDevice & Channel to Node
Create Protocol Stack
Install Protocol Stack on Nodes
Assign IP Address to NetDevice
Install Default UDP Echo Application on Nodes
![Page 4: PointToPoint Topology Default Application - ns-315-16/04/2016 Simulation of TCP Variants using NS-3 24 Command Line Argument We use command line parser It opens the door to the ns3](https://reader034.fdocuments.in/reader034/viewer/2022051919/600c12c26ae6ec020b7f0103/html5/thumbnails/4.jpg)
15-16/04/2016 Simulation of TCP Variants using NS-3 4
Header Files
● Include header files – pointtopoint.h– internetmodule.h– applicationsmodule.h– coremodule.h
![Page 5: PointToPoint Topology Default Application - ns-315-16/04/2016 Simulation of TCP Variants using NS-3 24 Command Line Argument We use command line parser It opens the door to the ns3](https://reader034.fdocuments.in/reader034/viewer/2022051919/600c12c26ae6ec020b7f0103/html5/thumbnails/5.jpg)
15-16/04/2016 Simulation of TCP Variants using NS-3 5
Node
● Use to create NODE– Use Node class– Create object using template function
Ptr<T>CreateObject(void)
Maintain Reference Count
Wrapper handle new operator
![Page 6: PointToPoint Topology Default Application - ns-315-16/04/2016 Simulation of TCP Variants using NS-3 24 Command Line Argument We use command line parser It opens the door to the ns3](https://reader034.fdocuments.in/reader034/viewer/2022051919/600c12c26ae6ec020b7f0103/html5/thumbnails/6.jpg)
15-16/04/2016 Simulation of TCP Variants using NS-3 6
Helper Node Class
● Use of Helper Class– To create Group of NODE we use NodeContainer
NodeContainerCreate(num_of_nodes)
NodeContainer nc;nc.Create(3);
![Page 7: PointToPoint Topology Default Application - ns-315-16/04/2016 Simulation of TCP Variants using NS-3 24 Command Line Argument We use command line parser It opens the door to the ns3](https://reader034.fdocuments.in/reader034/viewer/2022051919/600c12c26ae6ec020b7f0103/html5/thumbnails/7.jpg)
15-16/04/2016 Simulation of TCP Variants using NS-3 7
<client> <server>
CheckPoint
![Page 8: PointToPoint Topology Default Application - ns-315-16/04/2016 Simulation of TCP Variants using NS-3 24 Command Line Argument We use command line parser It opens the door to the ns3](https://reader034.fdocuments.in/reader034/viewer/2022051919/600c12c26ae6ec020b7f0103/html5/thumbnails/8.jpg)
15-16/04/2016 Simulation of TCP Variants using NS-3 8
Channel & NetDevice
● It is a logical path over which information flows– To create Channel we use following classes:
● WifiChannel● CsmaChannel● PointToPointChannel● Etc...
– To create NetDevice we use following classes:● WifiNetDevice● CsmaNetDevice● PointToPointNetDevice● Etc...
![Page 9: PointToPoint Topology Default Application - ns-315-16/04/2016 Simulation of TCP Variants using NS-3 24 Command Line Argument We use command line parser It opens the door to the ns3](https://reader034.fdocuments.in/reader034/viewer/2022051919/600c12c26ae6ec020b7f0103/html5/thumbnails/9.jpg)
15-16/04/2016 Simulation of TCP Variants using NS-3 9
Channel & NetDevice
● Helper Classes Couple NetDevice with Channel– We can use Helper Classes:
● WifiHelper● CsmaHelper● PointToPointHelper
● Now Install NetDevice & Channel– NetDeviceContainer device– device=pointTopoint.Install(node_container);
![Page 10: PointToPoint Topology Default Application - ns-315-16/04/2016 Simulation of TCP Variants using NS-3 24 Command Line Argument We use command line parser It opens the door to the ns3](https://reader034.fdocuments.in/reader034/viewer/2022051919/600c12c26ae6ec020b7f0103/html5/thumbnails/10.jpg)
15-16/04/2016 Simulation of TCP Variants using NS-3 10
CheckPoint
NetDevice
<client> <server>
NetDevicepoint-to-point channel
![Page 11: PointToPoint Topology Default Application - ns-315-16/04/2016 Simulation of TCP Variants using NS-3 24 Command Line Argument We use command line parser It opens the door to the ns3](https://reader034.fdocuments.in/reader034/viewer/2022051919/600c12c26ae6ec020b7f0103/html5/thumbnails/11.jpg)
15-16/04/2016 Simulation of TCP Variants using NS-3 11
Internet Stack & Ipv4Address● Now its time to install Protocol Stack
– Helper Class● InternetStackHelper ish
● Now INSTALL protocol stack on Nodes– ish.install(node_container);
● Ipv4Address– Now associate the devices on our node with IP addresses
● Ipv4AddressHelper iaddr;● iaddr.SetBase(“10.1.1.0”,”255.255.255.0”);
– Now ASSIGN this IP address to NetDevice using Ipv4Interface object
● Ipv4InterfaceContainer iinter = iaddr.Assign(device)
![Page 12: PointToPoint Topology Default Application - ns-315-16/04/2016 Simulation of TCP Variants using NS-3 24 Command Line Argument We use command line parser It opens the door to the ns3](https://reader034.fdocuments.in/reader034/viewer/2022051919/600c12c26ae6ec020b7f0103/html5/thumbnails/12.jpg)
15-16/04/2016 Simulation of TCP Variants using NS-3 12
NetDevice
<client>10.0.0.11/24
<server>10.0.0.12/24
NetDevicepoint-to-point channel
Internet Stack
Internet Stack
CheckPoint
![Page 13: PointToPoint Topology Default Application - ns-315-16/04/2016 Simulation of TCP Variants using NS-3 24 Command Line Argument We use command line parser It opens the door to the ns3](https://reader034.fdocuments.in/reader034/viewer/2022051919/600c12c26ae6ec020b7f0103/html5/thumbnails/13.jpg)
15-16/04/2016 Simulation of TCP Variants using NS-3 13
Application
● Application abstract class– UdpEchoServerApplication – server application– UdpEchoClientApplication client application
● We use Helper classes– UdpEchoServerHelper – UdpEchoClientHelper
![Page 14: PointToPoint Topology Default Application - ns-315-16/04/2016 Simulation of TCP Variants using NS-3 24 Command Line Argument We use command line parser It opens the door to the ns3](https://reader034.fdocuments.in/reader034/viewer/2022051919/600c12c26ae6ec020b7f0103/html5/thumbnails/14.jpg)
15-16/04/2016 Simulation of TCP Variants using NS-3 14
Server Application
UdpEchoServerHelper server(9);– Set up a UDP echo server application on one of the
node– Require the port number as a parameter to the
constructor
– Install server application on server nodeApplicationContainer serApp;
serApp=server.Install(nodes.Get(1));
servApp.Start(Seconds(1.0));
servApp.Stop(Seconds(10.0));
![Page 15: PointToPoint Topology Default Application - ns-315-16/04/2016 Simulation of TCP Variants using NS-3 24 Command Line Argument We use command line parser It opens the door to the ns3](https://reader034.fdocuments.in/reader034/viewer/2022051919/600c12c26ae6ec020b7f0103/html5/thumbnails/15.jpg)
15-16/04/2016 Simulation of TCP Variants using NS-3 15
CheckPoint
NetDevice
<client>10.0.0.11/24
<server>10.0.0.12/24
NetDevicepoint-to-point channel
Internet Stack
Internet Stack
Server App
![Page 16: PointToPoint Topology Default Application - ns-315-16/04/2016 Simulation of TCP Variants using NS-3 24 Command Line Argument We use command line parser It opens the door to the ns3](https://reader034.fdocuments.in/reader034/viewer/2022051919/600c12c26ae6ec020b7f0103/html5/thumbnails/16.jpg)
15-16/04/2016 Simulation of TCP Variants using NS-3 16
Client Application
● Pass parameter (to helper) to set the Remote Address and Remote port for for client to connect server.
UdpEchoClientHelper client(i.GetAddress(1),9);
● Install client application on client node
ApplicationContainer clientApp;
clientApp=client.Install(nodes.Get(0));
clientApp.Start(Seconds(2.0));
clientApp.Stop(Seconds(9.0));
![Page 17: PointToPoint Topology Default Application - ns-315-16/04/2016 Simulation of TCP Variants using NS-3 24 Command Line Argument We use command line parser It opens the door to the ns3](https://reader034.fdocuments.in/reader034/viewer/2022051919/600c12c26ae6ec020b7f0103/html5/thumbnails/17.jpg)
15-16/04/2016 Simulation of TCP Variants using NS-3 17
CheckPoint
NetDevice
<client>10.0.0.11/24
<server>10.0.0.12/24
NetDevicepoint-to-point channel
Internet Stack
Internet Stack
Server App
Client App
![Page 18: PointToPoint Topology Default Application - ns-315-16/04/2016 Simulation of TCP Variants using NS-3 24 Command Line Argument We use command line parser It opens the door to the ns3](https://reader034.fdocuments.in/reader034/viewer/2022051919/600c12c26ae6ec020b7f0103/html5/thumbnails/18.jpg)
15-16/04/2016 Simulation of TCP Variants using NS-3 18
Start Simulation
Simulation::Run();
Simulation::Destroy();
return 0;
![Page 19: PointToPoint Topology Default Application - ns-315-16/04/2016 Simulation of TCP Variants using NS-3 24 Command Line Argument We use command line parser It opens the door to the ns3](https://reader034.fdocuments.in/reader034/viewer/2022051919/600c12c26ae6ec020b7f0103/html5/thumbnails/19.jpg)
15-16/04/2016 Simulation of TCP Variants using NS-3 19
Running Example
● Copy program from example to scratch folder
● And run using following commands●./waf --run /scratch/scenario1
![Page 20: PointToPoint Topology Default Application - ns-315-16/04/2016 Simulation of TCP Variants using NS-3 24 Command Line Argument We use command line parser It opens the door to the ns3](https://reader034.fdocuments.in/reader034/viewer/2022051919/600c12c26ae6ec020b7f0103/html5/thumbnails/20.jpg)
15-16/04/2016 Simulation of TCP Variants using NS-3 20
No Output :(
![Page 21: PointToPoint Topology Default Application - ns-315-16/04/2016 Simulation of TCP Variants using NS-3 24 Command Line Argument We use command line parser It opens the door to the ns3](https://reader034.fdocuments.in/reader034/viewer/2022051919/600c12c26ae6ec020b7f0103/html5/thumbnails/21.jpg)
15-16/04/2016 Simulation of TCP Variants using NS-3 21
Log Compoment
● Logs are generally used to get useful information.● NS-3 provides different levels of logs which are
as follows:-– LOG_INFO– LOG_FUNCTION– LOG_LOGIC– LOG_ALL– etc.
![Page 22: PointToPoint Topology Default Application - ns-315-16/04/2016 Simulation of TCP Variants using NS-3 24 Command Line Argument We use command line parser It opens the door to the ns3](https://reader034.fdocuments.in/reader034/viewer/2022051919/600c12c26ae6ec020b7f0103/html5/thumbnails/22.jpg)
15-16/04/2016 Simulation of TCP Variants using NS-3 22
Enable Log
● To enable log :– LogComponentEnable(module_name,log_level)
● Example – module_name
● ns3::UdpEchoClientApplication● ns3::UdpEchoServerApplication● and,more
– log_level● LOG_LEVEL_INFO● LOG_LEVEL_FUNCTION● LOG_LEVEL_ALL● and ,more
![Page 23: PointToPoint Topology Default Application - ns-315-16/04/2016 Simulation of TCP Variants using NS-3 24 Command Line Argument We use command line parser It opens the door to the ns3](https://reader034.fdocuments.in/reader034/viewer/2022051919/600c12c26ae6ec020b7f0103/html5/thumbnails/23.jpg)
15-16/04/2016 Simulation of TCP Variants using NS-3 23
Lets Play with
Command Line Arguments
![Page 24: PointToPoint Topology Default Application - ns-315-16/04/2016 Simulation of TCP Variants using NS-3 24 Command Line Argument We use command line parser It opens the door to the ns3](https://reader034.fdocuments.in/reader034/viewer/2022051919/600c12c26ae6ec020b7f0103/html5/thumbnails/24.jpg)
15-16/04/2016 Simulation of TCP Variants using NS-3 24
Command Line Argument
● We use command line parser
● It opens the door to the ns3 global variable and Attribute subsystem
int main(int argc, char * argv[ ]){ . . . CommandLine cmd cmd.Parse(argc,argv) . . .}
![Page 25: PointToPoint Topology Default Application - ns-315-16/04/2016 Simulation of TCP Variants using NS-3 24 Command Line Argument We use command line parser It opens the door to the ns3](https://reader034.fdocuments.in/reader034/viewer/2022051919/600c12c26ae6ec020b7f0103/html5/thumbnails/25.jpg)
15-16/04/2016 Simulation of TCP Variants using NS-3 25
Attributes
● Goal of Attribute system is to organize the access of internal members objects of a simulation.
● Most often user is interested in studying or tracing particular internal variables.
● Example:– What is network performance if we change the packet
size?– How transmission time varies with data rate?
![Page 26: PointToPoint Topology Default Application - ns-315-16/04/2016 Simulation of TCP Variants using NS-3 24 Command Line Argument We use command line parser It opens the door to the ns3](https://reader034.fdocuments.in/reader034/viewer/2022051919/600c12c26ae6ec020b7f0103/html5/thumbnails/26.jpg)
15-16/04/2016 Simulation of TCP Variants using NS-3 26
Attribute● How to add attribute?
– Typeid AddAttribute(...)
– Sample Code <PointToPointNetDevice>
Brief Description
Name of attribute
Type of value
Accessing variable
![Page 27: PointToPoint Topology Default Application - ns-315-16/04/2016 Simulation of TCP Variants using NS-3 24 Command Line Argument We use command line parser It opens the door to the ns3](https://reader034.fdocuments.in/reader034/viewer/2022051919/600c12c26ae6ec020b7f0103/html5/thumbnails/27.jpg)
15-16/04/2016 Simulation of TCP Variants using NS-3 27
Let's Play with CMD
● Run the script in the following way– ./waf --run “scratch/senario1 --PrintHelp”
● Now use --PrintAttributes option to do know the attributes
./waf --run “scratch/scenario1 --PrintAttributes=ns3::PointToPointNetDevice”
./waf –run “scratch/senario1 –ns3::PointToPointNetDevice::DataRate=5Mbps”
![Page 28: PointToPoint Topology Default Application - ns-315-16/04/2016 Simulation of TCP Variants using NS-3 24 Command Line Argument We use command line parser It opens the door to the ns3](https://reader034.fdocuments.in/reader034/viewer/2022051919/600c12c26ae6ec020b7f0103/html5/thumbnails/28.jpg)
15-16/04/2016 Simulation of TCP Variants using NS-3 28
Lets Hook User Defined Arguments
● AddValue method of command line parserint main(int argc,char * argv[ ]){
uint32_t nPacket=1;. . .CommandLine cmd;cmd.AddValue(“nPackets””,Number of packets to echo”,nPacket);cmd.Parse(argc,argv);. . .. . .echoClient.setAttribute(“MaxPackets”,UintegerValue(nPackets));. . .. . .
} ./waf –run “scratch/myfirst –PrintAttributes”./waf –run “scratch/myfirst --nPacket”
![Page 29: PointToPoint Topology Default Application - ns-315-16/04/2016 Simulation of TCP Variants using NS-3 24 Command Line Argument We use command line parser It opens the door to the ns3](https://reader034.fdocuments.in/reader034/viewer/2022051919/600c12c26ae6ec020b7f0103/html5/thumbnails/29.jpg)
15-16/04/2016 Simulation of TCP Variants using NS-3 29
Simple Modification in Topology CODE
● Change following values:● NetDevice
– DataRate – Delay
● UDP packet– MaxPacket– Interval– Packet Size
![Page 30: PointToPoint Topology Default Application - ns-315-16/04/2016 Simulation of TCP Variants using NS-3 24 Command Line Argument We use command line parser It opens the door to the ns3](https://reader034.fdocuments.in/reader034/viewer/2022051919/600c12c26ae6ec020b7f0103/html5/thumbnails/30.jpg)
15-16/04/2016 Simulation of TCP Variants using NS-3 30
![Page 31: PointToPoint Topology Default Application - ns-315-16/04/2016 Simulation of TCP Variants using NS-3 24 Command Line Argument We use command line parser It opens the door to the ns3](https://reader034.fdocuments.in/reader034/viewer/2022051919/600c12c26ae6ec020b7f0103/html5/thumbnails/31.jpg)
15-16/04/2016 Simulation of TCP Variants using NS-3 31
● What is the use of Helper Classes ?
● What is the effect of packet size on the Round Trip Time(RTT)?
– Packet Size=256,512,786,1024,1586,1782● What is effect of Maximum Transmission Unit(MTU)
on the Round Trip Time(RTT)?
– MTU= 256 , 512 , 1024 , 1500
![Page 32: PointToPoint Topology Default Application - ns-315-16/04/2016 Simulation of TCP Variants using NS-3 24 Command Line Argument We use command line parser It opens the door to the ns3](https://reader034.fdocuments.in/reader034/viewer/2022051919/600c12c26ae6ec020b7f0103/html5/thumbnails/32.jpg)
15-16/04/2016 Simulation of TCP Variants using NS-3 32
To be Continued...