In this post: A detailed, step-by-step guide demonstrating the steps I use to solve a problem similar to one encountered in my CS 372 Intro to Networking class.
You have a TCP sender that is continuously sending a 1,096-byte segment. If a TCP receiver advertises a window size of 8,551 bytes, and with a link transmission rate 35 Mbps an end-to-end propagation delay of 33.3 ms, what is the utilization?
(Assume no errors, no processing or queueing delay, and ACKs transmit instantly. Also assume the sender will not transmit a non-full segment.)
Suppose they want the answer as a percentage rounded to one decimal place.
This one breaks down into a series of simple steps:
Step 1: Calculate how many segments the pipeline holds
formula: segments = floor(pipeline size / segment size)
8551 / 1096 = 7.802 = 7 segments
Remember to round down! There are no partial segments in this pipeline.
Step 2: Calculate how long it takes to send one segment
This uses the L/R formula, which is:
formula: time to send one segment = length of segment / transmission rate
(Don’t forget to use the same units for both. I convert everything to bits for consistency.)
(1096 * 8) / (35 x 10^6) = 0.250514 time to send one segment
Step 3: Calculate the Round Trip Time (RTT)
formula: RTT = propagation delay * 2
33.3 * 2 = 66.6 round trip time
Step 4: Calculate the delay per packet
formula: delay per packet = RTT + time to send one
66.6 + 0.250514 = 66.850514 delay per packet
Step 5: Calculate the utilization!
formula: utilization = (segments * time to send one) / delay per packet
(7 * 0.250514) / 66.850514 = 0.026316
Move the decimal to places to the right to get the percentage.
= 2.6% utilization