Reputation: 305
Here is my question: We wish to send a message of size 150,000 bytes over the network. There are four hops, each of length 20km and running at 100 Mb/s. However, before sending we split the message into 1500 byte packets. What is the end-to-end delay of the message? Use speed of light in copper = c = 2 * 10^8 m/s, and round your answer to the nearest integer millisecond.
What I have so far is 48ms, which I calculated in the following fashion: 1500 bytes = 12,000 bits 12,000 bits/(100x10^6)[100Mb/s] = 0.00012s 20km/(2*10^8)[speed of light in this equation] = 1e-7 Add them up and you get 0.0001201s per hop x 4 hops = 0.0004804s -> 48ms rounded to nearest integer.
Apparently this is not correct and I cannot figure out my error. My online course has no assistance available so I'm turning to SO. If anyone can point me in the right direct, I would appreciate the help.
Upvotes: 9
Views: 28773
Reputation: 35
The key point is, the router needs to wait until a full packet received, then it starts to forward the packet to next router. In the first case, when the 150,000 bytes message is not divided into 100 packets of 1500 bytes, each router needs to wait (150,000 * 8) / (100 * 10^6) seconds until it can start to forward the message. i.e., the router is stuck for this time long. However, in the second case, if the message is divided, then each router only needs to wait (1500 * 8) / (100 * 10^6) seconds before it starting to forward the packet, which is 1/100 of the previous case. Because in this case, it is a kind of pipelining, the router is able to forward the part of message arrived while receiving the rest of message. At the fourth router, or just the destination, the total travel time of the message is calculated when the whole message is arrived. In the first case, the last router is waiting and do nothing, so the waiting time is just (150,000 * 8) / (100 * 10^6) seconds. In the second case, the last router first waits for (1500 * 8) / (100 * 10^6) seconds, then, since it is the last router, the destination, it does not need to forward arrived message, the only job for it is to wait until all the message arrived. Therefore, it waits for another 99 packets to arrive, which is just ((150,000 - 1500) * 8) / (100 * 10^6) seconds. Finally, the total delay for the first case is 4 * (150,000 * 8) / (100 * 10^6) + 4 * (20 * 10^3) / (2 * 10^8) = 48 ms, and the total delay for the second case is 3 * (1500 * 8) / (100 * 10^6) + (150,000 * 8) / (100 * 10^6) + 4 * (20 * 10^3) / (2 * 10^8) = 12.76 ms. Note that in two cases, there is no difference it their propagation delays, the difference is in the stuck time of each router.
Upvotes: 0
Reputation: 11
Calculate the time for one packet (p/r + l/c):
single packet size : 1500 byte * 8 = 12000 bit
network speed : 100 Megabit * 1 000 000 = 100 000 000 bit / sec
12 000 bit / 100 000 000 bit/sec = 0.00012 sec (0.12 ms)
propagation delay: 20 000 / (2 * 10 ^ 8) = 0.0001 sec (0.1 ms)
total delay during one hop: 0.12 ms + 0.1 ms = 0.22 ms
4 hops so total time in ms = 4 * 0.22 ms =
0.88 ms
The second part only needs to calculate how long it takes to put the rest onto the link (remember, you are not waiting for the first packet to arrive at the destination before putting the second on the link)
remainder to put on the link = 150 000 byte - 1 500 byte = 148 500byte
which is (148500 * 8 =) 1 188 000 bit
So 1 188 000 bit / 100 000 000 bit/sec = 0.01188 sec (**11.88ms**)
Total is then
11.88 ms + 0.88 ms = 12.76
(13 due to rounding to nearest integer ms)
Upvotes: 1
Reputation: 97
End to End Delay can be calculated by multiplying number of links with total delay in network. you can use this online End to End Delay tool.
Upvotes: 0
Reputation: 1
My interpretation:
The first question is to illustrate how long it takes if we don't break down the packet
The second question is to illustrate the advantage of break down to a smaller size
As explained in video, if we don't break it down, the transmission will need to wait for complete data transfer for each hop. But if we break it down, the first will wait shorter (smaller size), the latter packets can then load to the network to streamline the transmission.
Upvotes: 0
Reputation: 3690
4 Hops means
S->r1->r2->r3->D
No. of packets is =15*10^4 / 1500 = 100 packets
T.D=> 15*10^2*8 / 100* 10^6 (this is for 1 packet) = 0.12ms
P.D=> 20*10^3 / 2* 10^8 = 0.1ms
Total is =>0.1+0.12 = 0.22ms
4 hops takes => 0.22*4=0.88ms
0.88ms is for 1st packet only
The first packet will take 0.88 ms to reach D. While first packet was reaching D, other packets must have been processing in parallel. So D will receive remaining packets 1 packet per 0.12 ms from R2.
So other 99 packets take 0.12*99 ms.//Only transmission delay is multiplied by (N-1) packets
Answer is => 0.88 + 0.12*99=12.76ms
FORMULA for calculating any such type of question->
Total delay=No. of hops(1st packet total delay) + TransmissionN - (Transmission delay + Processing + Queuing)
OR
(IF processing delay and queuing delay = 0 then)
Total delay=No. of hops*(1st packet total delay) + Transmission delay*(N - 1)
PPT HIGHLY RECOMMENDED EXAMPLES
Upvotes: 3
Reputation: 1
For individual bits, the router works in store-and-forward mode, i.e. it waits for the whole packet to arrive before moving on to the next hop.
When you send packets, you do not need to wait for all packets to arrive to the router before sending on an individual packet.
Youhe "packetization delay" for packets themselves which only depends on the slowest link, the size of the packet and the number of packets.
Upvotes: 0
Reputation: 5347
Edit:
I think I got it finally. The network topology looks like this:
source - link#1 - router#1 - link#2 - router#2 - link#3 - router#3 - link#4 - dest
Let's first consider it from the perspective of the source. We're sending the message packet by packet. As soon as we put the first packet on the wire, we're sending the second one, then the 3rd, etc. How long does it take to put all 100 packets on the wire?
100 * 1500B * 8(b/B) / 100 Mb/s = 12 ms
End to end delay is the time it takes to transfer the whole message from source to dest. So now that the source just put the packet #100 on the link#1, let's follow that last packet life. For that last packet it takes
20km/(2 * 10^8 m/s) = 0.1 ms - to get to the router#1
1500B * 8(b/B) / 100 Mb/s = 0.12 ms - to put it on the link#2
20km/(2 * 10^8 m/s) = 0.1 ms - to get to the router#2
1500B * 8(b/B) / 100 Mb/s = 0.12 ms - to put it on the link#3
20km/(2 * 10^8 m/s) = 0.1 ms - to get to the router#3
1500B * 8(b/B) / 100 Mb/s = 0.12 ms - to put it on the link#4
20km/(2 * 10^8 m/s) = 0.1 ms - to get to the dest
so in total it takes the last packet 0.76 ms to get to the final destination after it was put on the link#1 by the source. Which gives us the final answer:
12 ms + 0.76 ms = 12.76 ms ~= 13 ms
Original answer:
Below is apparently a correct answer but I don't understand why we don't multiply the second part of the sum by 4, there are 4 hoops after all. If somebody can explain, I would be very grateful.
EXPLANATION
13ms. We calculate the end-to-end delay as follows:
4 * (1500B * 8(b/B) / 100 Mb/s + 20km/2 * 10^8 m/s)
+ (150,000/1500 - 1) * (1500 * 8 (b/B) / 100Mb/s) = 12.76 ms
Upvotes: 9