分组延时、丢失和吞吐量

分组丢失和延时是怎样发生的

在路由器缓冲区的分组队列

  • 分组到达链路的速率超过了链路输出的能力
  • 分组等待排到队头、被传输

延时原因:

  • 当当前链路有别的分组进行传输,分组没有到达队首,就会进行排队,从而产生排队延迟
  • 丢失原因:分组到达的时候,队列满了,就会丢弃
  • 除了排队延时,还有传输延时

四种延时类型

  • 节点处理延时
    • 检查bit级差错
    • 检查分组首部和决定将分组导向何处
  • 排队延时
    • 在输出链路上等待传输的时间
    • 依赖于路由器的拥塞程度
  • 传输延时
    • R = 链路带宽(bps)
    • L = 分组长度(bits)
    • 将分组发送到链路上的时间 = L / R
    • 存储转发延时
  • 传播延时
    • d = 物理链路的长度
    • s = 在媒体上的传播速度( 2 ∗ 1 08 2 * 10^{8}2108 m/sec)
    • 传播延时 = d/s

节点延时

排队延时

  • R = 链路带宽(bps)
  • L = 分组长度(bits)
  • a = 分组到达队列的平均速率

流量强度 = La / R

  • La / R ~ 0:平均排队延时很小
  • La / R -> 1:排队延时变得很大
  • La / R > 1:比特到达队列的速率超过了从该队列输出的速率,平均排队时间将趋向无穷大

系统设计时流量强度不能大于1

Internet的延时和路由

  • Internet 的延时和路由是怎样的?
    • Traceroute 诊断程序:提供从源端,经过路由器,到目的的延时测量
    • For all i:
      • 沿着目的的路径,向每个路由器发送3个探测分组
      • 路由器 i 将向发送方返回一个分组
      • 发送方对发送和回复之间间隔计时

Traceroute 是 利用 ICMP协议(互联网控制报文协议) 运作的
TTL的原理:

  • 假设源客户端是A,目标客户端是B,中间的路由器标号一次为 1 2 3 4 5
  • 在分组的头部header中有一个字段叫TTL(Time to leave)是整数,每经过一个路由器时路由器将TTL-1,如果TTL=0,则该路由器向原客户端发送消息,从而得到时间
  • A设置TTL=1,那么第一个路由器返回时间;设置TTL=2,那么第二个路由器返回时间

依次增大TTL,得到每个路由器返回的延时

  • 对于目标客户端B,设置TTL足够大能够达到B,但是设置端口号没有对应的服务,这样到达B之后找不到对应的端口号就又会向A返回时间,得到B的延时

  • 在Windows系统下

    • Tracert hostname
    • 如 Tracert www.gucas.ac.cn
  • 更完整的例子

    • tract [-d] [-h maximum_hops] [-j computer-list] [-w timeout] target_name
    • 请见帮助: http://www.linkwan.com/gb/broadmeter/article/trace -help.htm
  • 测试网址

    • www.traceroute.org
    • www.linkwan.com

分组丢失

  • 链路的队列缓冲区容量有限
  • 当分组到达一个满的队列时,该分组将会丢失
  • 丢失的分组可能会被前一个节点或源端系统重传,或根本不重传

吞吐量

  • 吞吐量:在源端和目标端之间传输的速率(数据量 / 单位时间)
    • 瞬间吞吐量:在一个时间点的速率
    • 平均吞吐量:在一个长时间内平均值

吞吐量取决于吞吐量最小的路径

吞吐量:互联网场景

  • 如图,可以看到R链路同时由多个连接共享,这样的话不同的连接就要平分带宽

  • 这样尽管R的带宽比 Rs R_sRs Rc R_cRc大,但是实际给AB的带宽是 1/n,最终比较的是 1/n 的大小