Calculating theoretical throughput using Congestion Window

256 views
Skip to first unread message

Abdullah

unread,
Apr 12, 2022, 1:38:33 PM4/12/22
to OMNeT++ Users

I am trying to understand TCP protocol with different simulation scenarios. I have to find out the throughput theoretically by just seeing the congestion window of the TCP. Simulation scenario,

RTT= 100min (6000sec) 
Data rate= 10Mbps 
Loss=0; 
MSS=1460bytes 
SImulation Time= 11445005s

I got this congestion window after simulating as shown in figure attach. The TCP is always in the Congestion Avoidance phase. What I tried is to take the current maximum congestion window value which is in bytes and divide it by the RTT value which is 6000s. is it right? or do you have any suggestions? Please help.

Capture.PNG

Goran Skondrić

unread,
Apr 13, 2022, 3:35:27 AM4/13/22
to OMNeT++ Users
RTT is Round trip time so it s time that is require for signal to propagate from source to destination and back ( 2 x path length )
Troughput is related to  successuful transfer of data, and MSS - maximum segment size that is multiple each time when it receive positive ACK from destination following algorithm that is in use, and result is congestion windows size that is related to specific algorithm (Vegas, Tahoe, Reno etc) .. and it rise from small value to the treshold and then continue to rise until (in your case reach link capacity) and then congestion control will react and decrease congestion window size. 

So as you can see ... troughput is value that is changed durring a time and it s related to current network congestion...

Hope this helped ... just google for this alghoritm and  you will see how congestion window change durring a time ..

Goran

Abdullah

unread,
Apr 13, 2022, 7:24:52 AM4/13/22
to OMNeT++ Users
Thank you for your explanation. I have another question that is the congestion window size will increase to maximum link capacity in my case the 2047MB of the file is completely transferred because of it stops. So my question is the maximum value of the congestion window(in bytes) equal to the file size?
Regards

Goran Skondrić

unread,
Apr 13, 2022, 8:01:27 AM4/13/22
to OMNeT++ Users

Network congestion occurs when packets sent from the source exceed what the destination can handle.  TCP can use the congestion window (cwnd) and the receiver window (rwnd ) to control and avoid network congestion. The amount of data that can be transmitted through a TCP connection is dependent on the congestion window, which is maintained by the source. The receiver window is maintained by the destination, and it s related to buffer space. If destination can t stora data in buffer it will not acknowladge that data, and that mean that rwnd reached max value, so source should decrease cwnd following some alghoritm.  

So source sending the amount of data that receiver can accept and this rearly use full link bandwidth. 

Just to add something about RTT .... if we are talking about TCP (that require ACK of all data) then RTT is time neded to transfer data.... that s because data are succesuful data transfer is only when we get ACK from receiver .... 

so we have sending data ---> one way communication and 

sendin ACk <---- to sender is oposit direction :) 

Hope this helped ... i am more familiar with a networks then with omnet++ but I am trying to learn :) 

Abdullah

unread,
Apr 13, 2022, 9:46:59 AM4/13/22
to OMNeT++ Users
Thank you for your answer. One more thing could you measure the rough throughput from the above-mentioned parameters? so that I can match with mine if it is correct or not  

Goran Skondrić

unread,
Apr 14, 2022, 4:04:22 AM4/14/22
to OMNeT++ Users
First .... you should know several things 

if we are talking about window size it can reach maximum of 65535 bytes .... window size can t go higher ( today,  it can since we have high speed links ... so today we use multiplier of window size but don t complicate since your link iz 10Mbps).
I believe you should focus on parametar "loss" if it s zero ...  then you can expect max window size  ...  but if this number increase (like loss is higher then zero then you have probably congestion) then decrease troughput following one of TCP alghoritam you choose ... (some drop windows size at half and other to zeroo. This should set loss to zero again... and then increase window size again until loss is different then zero).

If you want to simplify things you could observe separate communication between two nodes on network without any additional traffic. Then you can calculate optimal window size using this formula 

windows size = bandwidth x Delay (RTT)

In your case optimal windows size = 10 000 000 bits * 6000 s (I thing that this is tooo high value for RTT it s usualy in ms ... i believe that you have some error here) 

but this is not TROUGHPUT ... this is optimal window size :) ..

I must worn you that RTT of 6000 seconds is way to high for networks. Just ping some destination on you local network and you will see.

Best regards

Abdullah

unread,
Apr 14, 2022, 9:01:39 AM4/14/22
to OMNeT++ Users
Thank you for your explanation. Basically, I am simulating Space communication which is why I am using 100 min of RTT.
One last question if I have zero loss then the throughout I achieve is X. Now If I simulate the network with some error in the channel and I am using some Machine learning algorithm to remove the channel loss, can I get the throughput in the lossy channel ( by mitigating the loss) greater than X (throughput of loss less channel)??

VICTOR HUGO LAZARO LOPES

unread,
Nov 25, 2022, 8:39:45 PM11/25/22
to OMNeT++ Users
Hello.

How can I set up the gNB maximum capacity?
I mean, I see how to select the maximum link (PPP) capacity from the ethernet arriving at the gNB. In this sense, there is some configuration for the radio interface capacity?

Best regards.
Reply all
Reply to author
Forward
0 new messages