分组交换四种分组延时
dnodal = dproc + dqueue + dtrans + dprop
- 节点处理延时(dproc)
- 来了分组需要检查是否出错,查路由表
- 检查bit级差错
- 排队延时(dqueue) = (I/1-I)*(L/R))
I
是系统的利用率,即系统正在被使用的时间占总时间的比例。就是流量强度。L
是系统中的平均队列长度。R
是请求的平均服务率,即系统每单位时间可以处理的请求数量。
- 在输出链路上等待传输的时间
- 依赖于路由器的拥塞程度
- 流量强度La/R(a=分组到达队列的平均速率) ~0的时候平均排队延时很小,接近于1,传输延时(dtran)延时变得很大,大于1比特到达队列的速率超过了从该队列的速率,平均排队延时将趋向无穷大(会丢包)
- 传输延时(dtrans)
- R = 链路带宽(bps)
- L = 分组长度(bits)
- 将分组发送到链路上的时间=L/R
- 存储转发延时
- 传播延迟(dprop)
- d = 物理链路的长度
- s = 在媒体上的传播速度(~(2×10^8)m/sec)
- 传播延时=d/s
分组交换 vs 电路交换
同样的网络资源分组交换允许更多用户使用网络
Internet的延时和路由
Linux的transroute和windows的tracert是诊断程序,通过从源端经过路由器到达目的地的延时测量
对于所有i:
沿着目的地的路径对每个路由器发送三个探测分组,路由器i将向发送方返回一个分组,发送方对发送和回复之间间隔计时
原理ICMP协议(互联网控制报文协议)
这个协议有很多类型的数据包,其中有一种是下图这样子的:
IP头有很多字段,其中一种叫做TTL字段,就是TIME TO LIVE生存时间 ,生存时间每过一个路由器就-1,当TTL等于0的时候就会被抛弃掉,然后该路由器就会发送ICMP报文给主机通知该数据包挂掉了。tranceroute就是相当于每次增加TTL然后计算到每个节点延迟时间。
分组丢失
每条缓冲队列都是有限的,多余的就会丢失
丢失的分组有三种情况
- 本身可靠:上级重传
- 本身不可靠(比如以太网):源主机负责重传
- 源主机UDP协议传输:都不重传
吞吐量
- 单位时间内从源主机到目标主机放出的有效的比特数量
- 瞬间吞吐量:一个时间点速率(仍然是有效比特数)
- 平均吞吐量:一段时间的速率平均值(仍然是有效比特数)
- 取决于带宽小的链路,即瓶颈链路
- 比如说分组交换,一条链路有n组主机再用来传输,那么某一对主机传输的获得的带宽是平均带宽1/N(TCP的公平性)这里解释一下,虽然分组交换实际上是占用所有链路传输,但是平均下来许多组传输都在用这个链路,实际上可以看做是用链路一部分。