分组交换网络

192 阅读8分钟

分组

为了从源端系统向目的端系统发送一个报文,源将长报文划分为较小的数据块,称为分组.

传输分组时间

如果某源端系统或分组交换机经过一条链路发送一个 L bit 的分组,链路的传输速率为 R bps,则传输该分组的时间为 L/R s

存储转发传输

存储转发传输是指交换机开始向输出链路传输该分组的第一个比特之前,必须接收到整个分组.

端到端时延(只考虑传输时延不考虑传播时延)

推导过程

一个分组

源从时刻0开始传输,在时刻L/R,源传输了整个分组,并且整个分组已被接收,存储在路由器中,在时刻L/R,路由器刚好接收到整个分组,所以它能够朝着目的地向出链路传输分组,在时刻2L/R路由器已经传输了整个分组,并且整个分组已经被目的地接收,所以总时延是2L/R

多个分组

计算从源开始发送第一个分组到目的地接收到所有三个分组所有三个分组所需的时间

在时刻L/R,路由器开始转发第一个分组.在时刻L/R源也开始发送第二个分组,因为它已经完成了第一个分组的完整发送,因此,在时刻2L/R,目的地已经收到前两个分组并且路由器已经收到二个分组,类似的吗,在时刻3L/R,目的地已经收到前两个分组并且路由器已经收到第三个分组.最后,在时刻4L/R,目的地已经收到所有3个分组.

排队时延和分组丢失
输出缓存(输出队列)

对于每条相连的链路,该分组交换机具有一个数据缓存,他用于存储路由器准备发往那条链路的分组.

排队时延

如果到达的分组需要传输到某条链路,但发现该链路正忙于传输其他分组,该到达分组必须在输出缓存中等.因此,除了存储转发时延以外,分组还要承受输出缓存的排队时延.

分组丢失(丢包)

因为缓存空间的大小是有限的,一个到达的分组可能发现该缓存已被其他等待传输的分组完全充满了.在此情况下,将出现分组丢失(丢包).到达的分组或已经排队的分组之一将被丢弃.

转发表和路由选择协议
转发过程

在因特网中,每个端系统具有一个称为IP地址的地址.当源主机要向目的端系统发送一个分组时,源在该分组的首部包含目的地的IP地址.该地址具有一种等级结构.当一个分组到达网络中的路由器时,路由器检查该分组的目的地址的一部分,并向一台相邻的路由器转发该分组.

转发表

每台路由器具有一个转发表,用于将目的地址映射为输出链路.当口分组到达一台路由器时,路由器检查该地址,并用这个目的地址搜索其转发表,以发现适当的出链路.路由器再将分组导向该出链路.

分组交换网中的时延,丢包和吞吐量

分组交换网中的时延

当分组从不一个节点(主机或路由器)时沿着这条路径到后继节点(主机或路由器)时,该分组在沿途的每个节点经受几种不同类型的时延.这些时延中比较重要的是节点处理时延,排队时延,传输时延传播时延.这些时延累加起来是节点总时延.

时延的类型

处理时延:

检查分组首部和决定将该分组导向何处所需要的时间是处理时延的一部分.处理时延也包括其他因素.如检查比特级别的差错所需要的时间.

排队时延:

在队列中,当分组在链路上等待传输时,将经受排队时延.一个特定分组的排队时延长度将取决与先期到达的正在排队等待向链路传输的分组数量.

传输时延:

假如分组以先到先服务方式传输-这在分组交换网中时常见的方式,仅当所有已经到达的分组被传输后,才能传输刚到达的分组.用L表示改分组的长度,用R表示从路由器A到路由器B的链路传输速率.例如,对于10Mbps的以太网链路,速率R=100Mbps.传输时延时L/R.这是将所有分组的比特推向链路所需要的时间.

传播时延:

一旦一个比特被推向链路,该比特需要向路由器B传播.从该链路的起点到路由器B传播所需要的时间时传播时延.

排队时延和丢包
什么时候排队时延大,什么时候排队时延又不大呢

该问题的答案很大程度取决于流量到达该队列的速率,链路的传输速率和到达流量的性质,即流量是周期行到达还是突发形式到达.为了更深入的领会某些要点,令a表示分组到达队列的平均速率(a的单位是分组/秒,即pkt/s).前面讲过R是传输速率.即从队列中推出比特的速率(以bps为单位).为了简单起见,也假定所有分组都是由L bit 组成的.即比特到达队列的平均速率是La bps.最后,假定该队列非常大,因为它基本能容纳无限数量的比特,比率La/R被称为流量强度,它在估计排队时延的范围方面经常起着重要的作用.如果La/R>1,则比特道道队列的平均速率超过该队列传输出去的速率.在这种糟糕的情况下,该队列趋向于无限增加,并且排队时延将趋向无穷大!因此,流量工程中的一条金科玉律是:设计系统时流量强度不能大于1.

现在考虑La/R≤1时的情况,这时,到达流量的性质影响排队时延.例如,如果分组周期性到达.即每L/R秒到达一个分组,则每个分组将到达一个空队列.不会有排队时延.另一方面,如果分组以突发形式到达而不是周期性到达,则可能会有很大的平均排队时延.例如,假定每(L/R)N秒同事到达N个分组,则传输的第一个分组没有排队时延,传输的第二个分组就有L/R秒的排队时延,更为一般地,传输的第n个分组具有(n-1)L/R秒的排队时延.

丢包:

一条链路钱的队列只有有限的容量.因为该排队容量时有限的,随着流量强度接近1,排队时延并不真正趋向于无穷大.相反,到达的分组将发现一个满的队列.由于没有地方存储这个分组,路由器将丢弃该分组,即该分组将会丢失

端到端时延:

dtrans=NLRd_{trans} = N\frac{L}{R}

dendend=N(dproc+dtrans+dprop)d_{end-end}=N(d_{proc}+d_{trans}+d_{prop})

吞吐量

瞬时吞吐量

主机A到主机B跨越计算机网络传送文件,瞬时吞吐量时主机B接收到该文件的速率.

平均吞吐量

主机A到主机B跨越计算机网络传送文件,如果该文件由F bit组成,主机B接收到所有F bit用去T s,则文件传送的平均吞吐量就是F/T bps.

瓶颈链路

令Rs表示服务器与路由器之间的链路速率,Rc表示路由器与客户之间的链路速率。假定在整个网络中只有从该服务器到客户的比特在传送。在这种理想的情况下,该服务器到客户的吞吐量是多少?为了回答这个问题,我们可以将比特想象为流体,将通信链路想象为管道。显然,这台服务器不能以快于Rs的速率通过其链路注入比特,这台路由器也不能以快于Rc的速率转发比特。如果Rs<Rc。,则在给定的吞吐量Rs的情况下,由该服务器注入的比特将顺畅地通过路由器“流动”,并以速率Rs到达客户。另一方面,如果Rc<Rs,则该路由器将不能像接收速率那样快地转发比特。在这种情况下,比特将以速率Rc离开该路由器,从而得到端到端吞吐量Rc(还要注意的是,如果比特继续以速率Rs到达路由器,继续以Rc离开路由器的话,在该路由器中等待传输给客户的积压比特将不断增加,这是一种最不希望出现的情况!)因此,对于这种简单的两链路网络,其吞吐量是min{Rc,Rs},也就是瓶颈链路(bottleneck link)的传输速率

相关参考 1.<<计算机网络:自顶向下方法(原书第8版)[美]詹姆斯(1)>>