分组延时、丢失和吞吐量
分组丢失和延时是怎样发生的
在路由器缓冲区的分组队列
- 分组到达链路的速率超过了链路输出的能力
- 分组等待排到队头、被传输
延时原因:
- 当当前链路有别的分组进行传输,分组没有到达队首,就会进行排队,从而产生排队延迟
- 丢失原因:分组到达的时候,队列满了,就会丢弃
- 除了排队延时,还有传输延时
四种延时类型
- 节点处理延时
- 检查bit级差错
- 检查分组首部和决定将分组导向何处
- 排队延时
- 在输出链路上等待传输的时间
- 依赖于路由器的拥塞程度
- 传输延时
- R = 链路带宽(bps)
- L = 分组长度(bits)
- 将分组发送到链路上的时间 = L / R
- 存储转发延时
- 传播延时
- d = 物理链路的长度
- s = 在媒体上的传播速度( 2 ∗ 1 08 2 * 10^{8}2∗108 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 的大小