如何计算此方案中的端到端延迟

时间:2016-07-15 01:20:43

标签: networking packet end-to-end

这是我的问题: 我们希望通过网络发送大小为150,000字节的消息。有四个跳,每个跳长20km,运行速度为100 Mb / s。但是,在发送之前,我们将消息拆分为1500字节的数据包。消息的端到端延迟是什么?使用铜的光速= c = 2 * 10 ^ 8 m / s,并将你的答案四舍五入到最接近的整数毫秒。

到目前为止我所拥有的是48毫秒,我按以下方式计算:     1500字节= 12,000位     12,000比特/(100×10 ^ 6)[100Mb / s] = 0.00012s     20km /(2 * 10 ^ 8)[该等式中的光速] = 1e-7 加起来你每跳得到0.0001201 x 4跳= 0.0004804s - > 48ms舍入到最接近的整数。

显然这不正确,我无法弄清楚我的错误。我的在线课程没有任何帮助,所以我转向SO。如果有人能直接指出我,我会很感激帮助。

7 个答案:

答案 0 :(得分:6)

编辑:

我想我终于明白了。网络拓扑如下所示:

var size:Int = Int()

@IBOutlet var questionLabel: UILabel!
@IBOutlet var answerLabel: UILabel!

@IBAction func answerButton(sender: AnyObject) {


}

func getSize() {

    self.size = scienceDictionary.count

}

var scienceDictionary = ["What is the chemical process that converts sugar into alcohol?": "Fermentation",
    "Where in your body would you find you hippocampus?": "Brain",]

override func viewDidLoad() {
    super.viewDidLoad()
    print(size)
}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}

让我们首先从源头的角度考虑它。我们正在逐包发送消息。一旦我们将第一个数据包放在线路上,我们就会发送第二个数据包,然后发送第三个数据包等。将所有100个数据包放在线路上需要多长时间?

source - link#1 - router#1 - link#2 - router#2 - link#3 - router#3 - link#4 - dest

端到端延迟是将整个消息从源传输到dest所需的时间。所以现在源只是将#100数据包放在链路#1上,让我们按照最后的数据包生命周期。对于最后一个数据包需要

100 * 1500B * 8(b/B) / 100 Mb/s = 12 ms

因此总共需要0.76 ms的最后一个数据包在它被链接到#1链接之后到达最终目的地。这给了我们最终答案:

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

原始答案:

下面显然是一个正确的答案,但我不明白为什么我们不将总和的第二部分乘以4,毕竟有4个箍。如果有人能解释,我会非常感激。

说明

13毫秒。我们按如下方式计算端到端延迟:

12 ms + 0.76 ms = 12.76 ms ~= 13 ms

答案 1 :(得分:2)

4跳意味着

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

第一个数据包需要0.88毫秒才能到达D. 当第一个数据包到达D时,其他数据包必须并行处理。因此,D将从R2开始每0.12 ms收到剩余数据包1个数据包。

所以其他99个数据包占用0.12 * 99 ms //只有传输延迟乘以(N-1)个数据包

答案是=> 0.88 + 0.12 * 99 = 12.76ms

用于计算任何此类问题的公式 - >

总延迟=否。跳数(第一个数据包总延迟)+传输 N - (传输延迟+处理+排队)

OR

(IF处理延迟和排队延迟= 0)

总延迟=否。跳数*(第1包总延迟)+传输延迟*(N-1)

PPT HIGHLY RECOMMENDED EXAMPLES

Another Example

答案 2 :(得分:0)

对于单个位,路由器以存储转发模式工作,即它等待整个数据包到达,然后再转到下一跳。

发送数据包时,在发送单个数据包之前,无需等待所有数据包到达路由器。

Youhe"打包延迟"数据包本身只取决于最慢的链路,数据包的大小和数据包的数量。

答案 3 :(得分:0)

计算一个数据包的时间(p / r + l / c):

单个数据包大小:1500 byte * 8 = 12000 bit
网络速度:100 Megabit * 1 000 000 = 100 000 000 bit / sec

12 000 bit / 100 000 000 bit/sec = 0.00012 sec (0.12 ms)

传播延迟:20 000 / (2 * 10 ^ 8) = 0.0001 sec (0.1 ms)

一跳期间的总延迟:0.12 ms + 0.1 ms = 0.22 ms

4个跃点,total time in ms = 4 * 0.22 ms = 0.88 ms

第二部分只需要计算将其余部分放到链接上所需的时间(记住,在将第二个数据包放到链接上之前,你不是在等待第一个数据包到达目的地)

留下链接= 150 000 byte - 1 500 byte = 148 500byte的剩余部分 这是(148500 * 8 =) 1 188 000 bit

所以1 188 000 bit / 100 000 000 bit/sec = 0.01188 sec (**11.88ms**)

总计是 11.88 ms + 0.88 ms = 12.76(13由于四舍五入到最接近的整数ms)

答案 4 :(得分:0)

端到端延迟可以通过将链路数乘以网络中的总延迟来计算。 您可以使用此在线End to End Delay工具。

答案 5 :(得分:0)

我的解释:

第一个问题是说明如果我们不破坏数据包需要花费多长时间

第二个问题是说明分解为较小尺寸的优势

如视频中所述,如果我们不对它进行分解,则传输将需要等待每一跳的完整数据传输。但是,如果我们将其分解,第一个将等待更短的时间(较小的大小),随后的数据包可以加载到网络以简化传输。

答案 6 :(得分:0)

关键是,路由器需要等待直到收到完整的数据包,然后开始将数据包转发到下一个路由器。在第一种情况下,当150,000字节的消息未划分为100个1500字节的数据包时,每个路由器都需要等待(150,000 * 8)/(100 * 10 ^ 6)秒,直到可以开始转发消息。即路由器长时间卡住了。但是,在第二种情况下,如果消息被分割,则每个路由器只需要等待(1500 * 8)/(100 * 10 ^ 6)秒,即可开始转发数据包,这是前一个的1/100。案件。因为在这种情况下,这是一种流水线,所以路由器能够在接收其余消息的同时转发到达的消息部分。在第四个路由器或目的地处,当整个邮件到达时,将计算邮件的总传播时间。在第一种情况下,最后一个路由器正在等待并且什么也不做,因此等待时间仅为(150,000 * 8)/(100 * 10 ^ 6)秒。在第二种情况下,最后一个路由器首先等待(1500 * 8)/(100 * 10 ^ 6)秒,然后,因为它是最后一个路由器,即目的地,所以它不需要转发到达的消息,这是唯一的工作因为它要等到所有消息到达为止。因此,它等待另外99个数据包到达,即((150,000-1500)* 8)/(100 * 10 ^ 6)秒。最后,第一种情况的总延迟为4 *(150,000 * 8)/(100 * 10 ^ 6)+ 4 *(20 * 10 ^ 3)/(2 * 10 ^ 8)= 48 ms,总计第二种情况的延迟为3 *(1500 * 8)/(100 * 10 ^ 6)+(150,000 * 8)/(100 * 10 ^ 6)+ 4 *(20 * 10 ^ 3)/(2 * 10 ^ 8)= 12.76毫秒。请注意,在两种情况下,它们的传播延迟没有区别,区别在于每个路由器的停留时间。