c++ project and need support to help me learn.
Need to write a code for tcp in Ubuntu using ns3 cpp and netanim
Requirements: | .doc file
CSE 5344 – Fall 2023 – Project 1
Objectives for this lab:
In this project you will use a simulator to construct a network, run TCP flows among a set of source-destination pairs and monitor the packets “walking” through the network.
You will use ns-3 simulator. This is a very useful simulation tool which supports all kinds of networks and network devices, such as routers, Ethernet, WIFI and SDN-enabled switches. Ns-3 supports both Python and C languages, but I suggest you use C since it is the most common language ns-3 researchers use.
This is an individual project. You can discuss with other students, but you need to write your simulation code independently. You can use any integrated development environment (IDE), such as Visual Studio/Eclipse, to write but must be executable by ns-3.
Due: Nov. 3rd, 2023, 11:59:59 p.m.
Code: The code needs to simulate the following network and the flows running through it:
There are total of 8 pairs of senders (SX with source X)-receivers (DX with destination X) with a TCP session running between each pair that keep sending packets for 30 seconds.
The nodes which are named bX and eX are routers.
The propagation delays and link capacities are marked in the graph.
The simulation code needs to generate two outputs for observation.
An animation records all TCP messages communications of all 8 sender-receiver pairs through the network.
The overall throughput and goodput of each TCP flows in the 30 second simulation time.
NOTE: You may assign any IP address to a link, only making sure that each IP address assigned is unique. The port numbers for the sender and receiver in a sender-receiver pair must be the same, and there is no restriction on what the port number value you may assign to a pair.
Running the Script
The script file should have the following content
/* Copy Right */
/* CSE 5344 */
/* Your name */
Put the project1.cc under the folder of ns-3.xx/scratch/
Runing it by ./waf –run project1 at ns-3.xx/ directory
Programming Hints & Grading Policy
You can go to the /example/tutorial/ to read first.cc second.cc third.cc. Copy them to ns-3.xx/scratch/
then go to main direction and run ./waf –run scratch/first
Here’s a material to help you understand how the script file work.
This are the steps (with the percentage of grade allocated) you need to take to complete the project:
Create the hosts; 10%
Connect the hosts by router; 10%
Set up and assign the link status for each link; 10%
Populate the routing table; 10%
Deploy TCP connection on receiving and sending hosts pairs. 10%
Generate the monitoring animation. 10%
Generate the overall performance of each flow; 10%
The executable would take the rest 30% of the total grade.
NS-3 Installation Guidelines
Platform: (prefer: Ubuntu. If you have Ubuntu already, jump to step 5)
Windows, Mac users:
Step 1: install VirtualBox.
Step 2: download Ubuntu.
Step 3: Load Ubuntu into VirtualBox
Click “new” button
Name your virtual machine, choose a folder your file would be stored.
Select Linux and Ubuntu-64bit as Type and Version. Then click create
And click create again
Right click your new virtual machine and choose setting
At Storage section choose the Empty under Controller:IDE. Then click the disk button right to the optical drive. Select Choose a disk file and find your ubuntu file just downloaded at step 2
Start your virtual machine
Step 4: Install Ubuntu by install instruction
Step 5: install ns-3
Step 6. Install netanim
This animation tool would be automatically installed with ns-3. If you find that this tool does not work, you can read
NS-3 Use Guidelines
Before go to the next step, you should make sure that in the ./ns-allinone-3.xx/ns-3.xx/ directory, you can run ./waf –configure successfully.
You should put your code like xxxx.cc under .ns-3.xx/scratch directory and run ./waf –run scratch/xxxx at ./ns-3.xx/ directory
NS-3 Use Guidelines
You can go to the ns-allinone-3.xx/netanim-3.xx directory and run the ./Netanim to open the netanim program. (If you cannot find the ./Netanim executable program go back to ns-allinone-3.xx directory and run ./build.py
When you successfully put the animation tracer in the script file, you can generate a xxx.xml file.
Use the open button(looks like a folder at the top left corner) and choose the xml file to see the packet transmission animation.
E-mail your program source code to our class TA, Xuan Wang, e-mail address: email@example.com. Make the subject of the e-mail “CSE5344: Project 1”. You should zip your script file(xxx.cc) and email it. The name of this file should be your campus login_ID.zip. Be sure that you include everything necessary to unzip this file on another machine and compile and run it. DO NOT INCLUDE ANY RUNNABLE EXECUTABLE (.class file) program. The email servers have limited storage space & we will be recompiling your programs anyway.
Make sure your name and your student ID are listed as comments in your source code. You may resubmit the project at any time before the deadline and you may submit your file as many times as you like, but only the most recently submitted file will be retained. Late submissions will be accepted at a penalty of 10 points per day. This penalty will apply regardless of whether you have other excuses. If the TA cannot run your program then he will email you to schedule a demo. The TA may optionally decide to require all the students to demonstrate their labs. In that case, , the TA will set up a schedule for each demo.
If your program is not working by the deadline, send it anyway and review it with the TA for partial credit. Do not take a zero or excessive late penalties just because it does not work. We will make an effort to grade you on the work you have done. If you have any questions regarding the project, please e-mail Xuan or message him on Teams during his office hours.