计算机网络系列学习:Delay

下面对网络传输过程中的各种延时进行一次整理。

Processing Delay

Processing delay产生于很多地方,如检查数据包的头、决定数据包的传输方向、检查数据包比特级别的传输错误等等。通常,在一个高速路由器中,processing delay的大小在微秒级别甚至更小。

Queuing Delay

在packet switching中,每一个switch会与多条线路连接。Switch为每条线路的数据传输提供一个输出缓冲区(output buffer,也称output queue),当多条线路都有数据包传出时,第一个到达switch的数据包会立刻被发送,其余数据包就会按照到达顺序进入缓冲区,然后根据先进先出策略发送出去。因此这里会产生一个延时,称为queuing delay。Queue delay的大小在微秒到毫秒之间。

设R为传输速率,单位bits/sec,即一个bit从output queue发送出去的速率为R bps;一个数据包的长度为L bits,每个数据包到达queue的平均速率为a 个/sec。则到达output queue的平均比特速率为 La bits/sec。我们称 La/R 为traffic intensity,若La/R > 1,则output queue会趋向于无限增长(假设output queue的长度无穷大)。

计算:

假设数据包每L/R秒到达output queue,则每当一个数据包到达时,output queue总是空的,为什么?

解析:

R bits/sec*L/R sec = L bits,则恰好L/R后恰好一个数据包被完整送走。

计算:

假设N个数据每(L/R)N秒同时到达output queue(arrive in bursts),问第n个数据包的queuing delay是多少?

解析:

第一个数据包没有delay,
第二个数据包的queuing delay为:L/R s,
….
第n个数据包的queuing delay为:(n-1)L/R。

Transmission Delay

Transmission delay是针对router而言的,英文上的解释是:the rate of which bits are pushed out of the queue,重点就是out of the queue。中文上的理解是router在发送数据时使数据包从router进入到传输媒体所需的时间,即从数据块的第一个比特开始发送算起,到最后一个比特发送完毕所需时间。Transmission delay的大小在微秒到毫秒之间。
若数据包长度为L bits,router A到router B的传输速率为 R bits/sec,则:

dtransL/R

Propagation Delay

Propagation delay是针对link而言的,与传输的数据包大小无关,指的是电磁信号在传播介质中传输的时间,取决于传输介质的物理性质和两router的物理距离。Propagation delay的大小在毫秒量级。
若d是router A和router B的距离,s是传播介质上的传输时间,则:

dpropd/s

了解了这四种延时后,一个节点的延时就不难得出了:

Total nodal delay:

dnodaldprocdqueuedtransdprop

通常,如果说output queue不拥挤或网络不拥挤,则表明忽略 dqueue

进一步,给出end-to-end delay:

假设在source host和destination host之间有N-1个routers,且网络并不拥挤,则:

dendendN(dprocdtransdprop)

你可能感兴趣的:(计算机网络)