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.
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
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
Another Example
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)
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.
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.
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.
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.
I'm currently learning about transmission delay and propagation. I'm really having a tough time with the conversions. I understand how it all works but I cant get through the converting. For example:
8000bits/5mbps(mega bits per second) I have no idea how to do this conversion , I've tried looking online but no one explains how the conversion happens. I'm supposed to get 1.6 ms, but I cannot see how the heck that happens. I tried doing it this way, 8000b / 5x10^6 b/s but that gives me 1600 s.
(because that would not fit in a comment):
8000 bits = 8000 / 1000 = 8 kbit, or 8000 / 1000 / 1000 = 0.008 mbit.
(or 8000 / 1024 = 7.8 Kibit, or 8000 / 1024 / 1024 = 0.0076 Mibit,
see here: https://en.wikipedia.org/wiki/Data_rate_units)
Say you have a throughput of 5mbps (mega bits per second), to transmit your 8000 bits that's:
( 0.008 mbit) / (5 mbit/s) = 0.0016 s = 1.6 ms
That is, unit wise:
bit / (bit/s)
bit divided by bit => the bit unit disappear,
then divide and divide by seconds = not "something per second", but second,
result unit is second.
Can someone explain to me how to get the answer I am so lost.
Q1. A multiplexer combines four 100-kbps channels using a time slot of 2 bits.
What is the frame rate and the bit rate?
The answer is 50,000 Frame per sec and 400 kbps.
bit rate = no. of channels * Input bit rate
So, bit rate = 4 * 100kbps = 400kbps
Frame rate = Input bit rate (convert it into bit) / time slot bit(s)
So, Frame rate = 100000bps / 2b = 50000 frames per second (Frames/s)
4 * 100kbps = 400kbps
100kbps / 2b = 100000bps / 2b = 50000fps
Frame rate is the number of frames per second.
If we have 400000 bits per second transmission
Since each frame carries 8 bits, the frame rate would be:
400000/8 = 5000 per second.
I'm having some difficulty calculating the total time it takes a packet to get from A to B, the question is:
"We have 200 bytes of data to send from A to B, with a distance of 200km between them. Calculate the total transmission time, assuming the speed of the signal is 200,000 km/s and that the data rate is 1Mbps and that a header of 40 bytes has to be added to the data before it is sent."
My understanding is that at some point you need to factor in propagation and the speed of light (??) but I'm unsure if it's needed in this case. Is there a formula which can be used to work these types of question out?
So we have a total of 200 bytes of payload + 40 bytes of header = 240 bytes. The data can be put on the wire at a rate of 1 Mbps which equals 1,000,000 bits per second (unless the question actually means Mibps which is 1,048,576 bits per second; we'll work on the assumption that Mbps is correct and it's 1,000,000).
240 bytes is equal to 1920 bits (240 * 8), so it takes
1920 bits / 1,000,000 bits per second = 0.00192 seconds
to get the data on the wire.
Now, for the data to be transmitted, it has to travel 200 km at a rate of 200,000 km/s.
200km / 200,000(km/s) = 0.001 seconds.
Now, to take the data from the wire and read into computer in location B takes the same amount of time as putting the data on the wire = 0.00192 seconds.
So the total amount of time is equal to
0.00192 + 0.001 + 0.00192 = 0.00484 seconds = 4.84 milliseconds.
I have this 3-axis dongle serial accelerometer connected using RS-232 cable. I am putting the baud rate as 9600 and im getting 80 XXXX-YYYY-ZZZZ readout per second. I am trying to justify why does it shows 80 readings in a second, and here is my calculation,
2 Bytes of data x (1 Start bit + 1 Stop bit + 8 bits) = 20 bits
20 bits x 3 axis x 80 readouts = 4800 bits
While im getting 4800 bits instead of 9600 bits, so i am wondering did i miss out anything in justifying the 80 readouts?
Thanks guys :)
You indicate that you're getting 80 XXXX-YYYY-ZZZZ readouts per second. I'm assuming this is ASCII, so each digit is one byte.
So each "message" is len('XXXX-YYYY-ZZZZ')*8 = 112 bits long. Add a start and stop bit and you have 114. Multiply that times 80 messages per second, and you're transmitting 9120 bits per second, which is much close to the theoretical limit.