GT ECE 6110 - The Georgia Tech Network Simulator

Unformatted text preview:

The Georgia Tech Network Simulator (GTNetS) ECE6110 August 25, 2008OverviewNetwork Simulation Basics - 1Network Simulation Basics - 2Network Simulation Basics - 3GTNetS Designed Like Real NetworksGTNetS Design PhilosophyGTNetS Details - NodeGTNetS Details - PacketGTNetS ApplicationsGTNetS ProtocolsGTNetS RoutingGTNetS Support ObjectsGTNetS Distributed SimulationExampleIntegration of Zebra bgpd into ns-2/GTNetSBGP++ scalabilityOther BGP++ featuresScalability Results - PSCQuestions?The Georgia Tech Network The Georgia Tech Network SimulatorSimulator(GTNetS)(GTNetS)ECE6110ECE6110August 25, 2008August 25, 2008George F. RileyOverviewOverviewNetwork Simulation BasicsGTNetS Design PhilosophyGTNetS DetailsBGP++Scalability ResultsFAQFuture PlansDemos2Network Simulation Basics Network Simulation Basics - 1- 1Discrete Event Simulation◦Events model packet transmission, receipt, timers, etc.◦Future events maintained in sorted Event List◦Processing events results in zero or more new eventsPacket transmit event generates a future packet receipt event at next hop3Network Simulation Basics Network Simulation Basics - 2- 2Create Topology◦Nodes, Links, Queues, Routing, etc.Create Data Demand on Network◦Web Browsers, FTP transfers, Peer-to-Peer Searching and Downloads, On--Off Data Sources, etc.Run the SimulationAnalyze Results4Network Simulation Basics Network Simulation Basics - 3- 35TCP Client 1TCP Client 2TCP Server 1TCP Server 2100 Mbps, 5ms100 Mbps, 5ms100 Mbps, 5ms100 Mbps, 5ms10 Mbps, 20msGTNetS Designed Like Real GTNetS Designed Like Real NetworksNetworksNodes have one or more Interfaces◦Interfaces have IP Address and Mask◦Interfaces have an associated Link objectPackets append and remove PDU’sClear distinction between protocol stack layersPacket received at an Interface◦Forwards to Layer 2 protocol object for processing◦Forwards to Layer 3 based on protocol number (800 is IPV4)◦Forwards to Layer 4 based on protocol number (6 is TCP)◦Forwards to application based on port number6GTNetS Design PhilosophyGTNetS Design PhilosophyWritten Completely in C++Released as Open SourceAll network modeling via C++ objectsUser Simulation is a C++ main programInclude our supplied “#include” filesLink with our supplied librariesRun the resulting executable7GTNetS Details - NodeGTNetS Details - Node8NodeInterfaceQueueLinkL2 ProtocolInterfaceQueueLinkL2 ProtocolRouting InfoLocationPort MapGTNetS Details - PacketGTNetS Details - Packet9PacketUnique IDSizeTimestampHeader Header Header HeaderGTNetS ApplicationsGTNetS ApplicationsWeb Browser (based on Mah’1997)Web Server - including Gnutella GCacheOn-Off Data SourceFTP File TransferBulk Data Sending/ReceivingGnutella Peer-to-PeerSyn FloodUDP StormInternet WormsVOIP10GTNetS ProtocolsGTNetS ProtocolsTCP, complete client/server◦Tahoe, Reno, New-Reno◦Sack (in progress)◦Congestion Window, Slow Start, Receiver WindowUDPIPV4 (IPV6 Planned)IEEE 802.3 (Ethernet and point-to-point)IEEE 802.11 (Wireless)Address Resolution Protocol (ARP)ICMP (Partial)11GTNetS RoutingGTNetS RoutingStatic (pre-computed routes)Nix-Vector (on-demand)Manual (specified by simulation application)EIGRPBGPOSPFDSRAODV12GTNetS Support ObjectsGTNetS Support ObjectsRandom Number Generation◦Uniform, Exponential, Pareto, Sequential, Emiprical, ConstantStatistics Collection◦Histogram, Average/Min/MaxCommand Line Argument ProcessingRate, Time, and IP Address Parsing◦Rate(“10Mb”), Time(“10ms”)◦IPAddr(“192.168.0.1”)13GTNetS Distributed GTNetS Distributed SimulationSimulationSplit topology model into several partsEach part runs on separate workstation or separate CPU in SMPEach simulator has complete topology picture◦“Real” nodes and “Ghost” nodesTime management and message exchange via Georgia Tech “Federated Developers Kit”.Allows larger topologies that single simulationMay run faster14ExampleExampleUNC Chapel Hill, Feb 3, 2006 15// Simple GTNetS example// George F. Riley, Georgia Tech, Winter 2002#include "simulator.h" // Definitions for the Simulator Object#include "node.h" // Definitions for the Node Object#include "linkp2p.h" // Definitions for point-to-point link objects#include "ratetimeparse.h" // Definitions for Rate and Time objects#include "application-tcpserver.h" // Definitions for TCPServer application#include "application-tcpsend.h" // Definitions for TCP Sending app#include "tcp-tahoe.h" // Definitions for TCP Tahoeint main(){ // Create the simulator object Simulator s; // Create and enable IP packet tracing Trace* tr = Trace::Instance(); // Get a pointer to global trace object tr->IPDotted(true); // Tr ace IP addresses in dotted notation tr->Open("intro1.txt"); // Create the trace file TCP::LogFlagsText(true); // Log TCP flags in text mode IPV4::Instance()->SetTrace(Trace::ENABLED);// Enable IP tracing all nodes // Create the nodes Node* c1 = new Node(); // Client node 1 Node* c2 = new Node(); // Client node 2 Node* r1 = new Node(); // Router node 1 Node* r2 = new Node(); // Router node 2 Node* s1 = new Node(); // Server node 1 Node* s2 = new Node(); // Server node 2 // Create a link object template, 100Mb bandwidth, 5ms delay Linkp2p l(Rate("100Mb"), Time("5ms")); // Add the links to client and server leaf nodes c1->AddDuplexLink(r1, l, IPAddr("192.168.0.1")); // c1 to r1 c2->AddDuplexLink(r1, l, IPAddr("192.168.0.2")); // c2 to r1 s1->AddDuplexLink(r2, l, IPAddr("192.168.1.1")); // s1 to r2 s2->AddDuplexLink(r2, l, IPAddr("192.168.1.2")); // s2 to r2 // Create a link object template, 10Mb bandwidth, 100ms delay Linkp2p r(Rate("10Mb"), Time("100ms")); // Add the router to router link r1->AddDuplexLink(r2, r); // Create the TCP Servers TCPServer* server1 = new TCPServer(TCPTahoe()); TCPServer* server2 = new TCPServer(TCPTahoe()); server1->BindAndListen(s1, 80); // Application on s1, port 80 server2->BindAndListen(s2, 80); // Application on s2, port 80 server1->SetTrace(Trace::ENABLED); // Trace TCP actions at server1 server2->SetTrace(Trace::ENABLED); // Trace TCP actions at server2 // Create the TCP Sending Applications TCPSend* client1 = new TCPSend(TCPTahoe(c1), s1->GetIPAddr(), 80,


View Full Document

GT ECE 6110 - The Georgia Tech Network Simulator

Documents in this Course
Load more
Download The Georgia Tech Network Simulator
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view The Georgia Tech Network Simulator and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view The Georgia Tech Network Simulator 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?