june 28 presentation
TRANSCRIPT
LinQuest Proprietary Information
NS3: Modeling Satellite NetworksAndrew McGarry
Summer Intern
05/02/2023 2LinQuest Proprietary Information
Overview
The Project Goals
Near term Mid term Long term
Relevancy to LinQuest Progress Future Simulations Summary
05/02/2023 3LinQuest Proprietary Information
The Project
Become familiar with ns3 Ns3 is an open-source discrete event simulator used to model networks Similar to the commercial software called OpNet Modeler
Simulate a multi-point network Includes a TCP connection over a satellite link
Gradually increase the complexity of the model Include things such as dynamic link rates Change the maximum size of the congestion window Possibly include Quality of Service algorithms
05/02/2023 4LinQuest Proprietary Information
Goals
Near Term Install ns3 and understand how data is gathered and analyzed Learn about how computer networks work
How the Open Systems Interconnection (OSI) layers interact, what distinguishes them How different networking protocols behave, such as TCP, UDP, multicast Become familiar with networking terminology
Mid Term Learn how to instantiate router models in ns3 Design and construct the multi-point network
Long Term Analyze the performance of a TCP connection over a satellite link
Analyze what happens when the maximum size of the congestion window is changed Determine how changing the bandwidth of the satellite link will change performance Possibly add Quality of Service filtering
Determine if changing the maximum CWND size is beneficial
05/02/2023 5LinQuest Proprietary Information
Relevancy
LinQuest works extensively in military satellite communications Signal generation, modulation, encryption integration Provides systems engineering and acquisitions support Supports the army, navy, air force
LinQuest’s strength is in the Layer 1 aspect of satellite communications This project expands into Layers 3 (Internet) and 4 (Transport) Analyzes the data these radio connections shuttle, rather than the physical link itself
The Impact Provides capability LinQuest can continue to use to simulate real network environments
used by naval vessels, army ground stations, etc. May uncover real problems with these network setups allowing LinQuest to provide
solutions
05/02/2023 6LinQuest Proprietary Information
Progress-Setup
Whole operation takes place in a VM Using VirtualBox v. 4.2.12
Fedora 18 VM Ns3 requires a Linux environment, and I’m familiar with Fedora 18 from last year
Eclipse Open-source IDE with support for a large number of languages Great for debugging and building the simulations I’m putting together
05/02/2023 7LinQuest Proprietary Information
A Typical Workspace
05/02/2023 8LinQuest Proprietary Information
Open Source discrete event simulator Discrete event simulation- models a system as a sequence of
events in time. No changes are assumed to take place between events
Allows one to simulate complex networks and sample data from the simulation
How It’s Set Up Core is a collection of c++ classes (modules) User can interact with the classes by creating c++ or python
programs which implement them The simulation is not real-time
The user specifies start and stop times for applications in the simulation Data collected during the simulation is thrown into files which are easily
modified for use with graphing utilities
05/02/2023 9LinQuest Proprietary Information
Network Simulator 3 - Basic Concepts
Nodes Represent the computing elements in a network (computers, routers, etc.)
Net Devices Provides nodes access to a specific type of connection Represents network cards which are installed in computing elements Multiple net devices can be installed in each node, but each net device only connects to a
single channel Channels
The physical connections over which the communications data passes Represents wires, wireless signals, other physical radio communications which carry data
Applications The name says it all. These represents applications installed on the computing elements in
a network Can be clients, servers, etc.
05/02/2023 10LinQuest Proprietary Information
Network Simulator 3 - Tracing
Tracing is the primary method for collecting data from simulations Sources and Sinks
Sources are pre-defined (or custom, if you’re code-savvy) methods buried in the basic classes of ns3 (nodes, applications, net devices, etc.) which can be “hooked” and connected to sinks
Sinks take the raw data provided by the sources and modify the format of the results to user’s specification
That data is then collected in a file for review after the simulation is complete Difficult to figure out since the return types and connect paths are
complex Tutorial recommends borrowing other people’s code instead of trying to figure out connect
paths yourself
05/02/2023 11LinQuest Proprietary Information
Tutorials
First Simulate a network with the following map: Includes a point-to-point connection, csma network,
and implements the global routing protocol Fourth
Introduced the tracing system Fifth
Sets up a point-to-point TCP connection between two nodes and uses tracing to collect data on the size of the transmitting node’s congestion window.
05/02/2023 12LinQuest Proprietary Information
Tracing Output from Fifth
Cwnd Size (bytes)
Time (seconds)
Cwnd Size (bytes) vs. Time (seconds)
05/02/2023 13LinQuest Proprietary Information
State Transition Diagram
CWND X 2
CWND + (CWND_MAX /
CWND)
CWND_TRANS = CWND_OLD / 2
CWND = 536 bytes (?)CWND +
(CWND_MAX / CWND)
CWND X 2
NO TIMEOUT & CWND < (CWND_MAX / 2)
NO TIMEOUT & CWND > (CWND_MAX / 2)
NO TIMEOUT & CWND > (CWND_OLD / 2)
NO TIMEOUT & CWND < (CWND_MAX / 2)
NO TIMEOUT & CWND < (CWND_OLD / 2)
TIMEOUT
NO TIMEOUT & CWND < CWND_MAX
TIMEOUT
TIMEOUT
START
CWND = CWNDNO TIMEOUT &
CWND = CWND_MAX
NO TIMEOUT & CWND = CWND_MAX
NO TIMEOUT
TIMEOUT
TIMEOUT
05/02/2023 14LinQuest Proprietary Information
Future Simulations
Setup includes two domains connected through a satellite link First iteration will only include one node behind each of the routers TCP connection over a satellite link
Assume .125 second uplink and downlink delay Ideal model for ground terminals
I’m looking to analyze traffic behavior at the routers, not the ground terminals
Echo Client
Router
Terminal/ Modem
Router
Terminal/ Modem
Satellite
Echo Server
05/02/2023 15LinQuest Proprietary Information
Test Parameters
Variable number of terminals Variable number of nodes behind the routers Adjust the maximum congestion window size
Congestion window: maximum number of outstanding bytes. Maintained by sender Include UDP traffic Perhaps add a quality of service regime
Gives varying levels of priority to different users Aircraft carrier networks assign priority based on rank What happens as usage at each rank fluctuates?
05/02/2023 LinQuest Proprietary Information 16
Full Simulation
05/02/2023 17LinQuest Proprietary Information
Summary
Project: Model a simple satellite network in ns3, and gradually increase the complexity of the model Change parameters such as congestion window size, connection bandwidth. Add quality of
service filtering Goals
Near: learn about computer networks, how to use ns3 Mid: simulate a multi-point network which includes a satellite link Far: analyze the increasingly complex model- determine whether changing the maximum
CWND size is beneficial