分组丢失和延迟的原因
队列太长没有意义,用户需求
排队:输出能力<=到来的分组,需要等待
四种分组延迟
节点处理延迟:确定的
排队延迟:随机,取决于网络情况
一个比特的传输时间:
R=1Mbps
1/R=10^-6s=1us(微妙)–传输时间
1秒(s) =1000ms= 1000000微秒(μs)
传输延迟:
如果:
L=1Mbps R=1Mbps
L/R=L*(1/R)(传输延迟,越过链路L需要时间,所以是延迟)
传播延迟:
路径有很多hop跳(段)组成
如果很近,可以忽略不计
车队类比1-局域网
120s传输时间
车队类比2-广域网
100km/1000km/h=1/10h=6min
第一个比特已经到达收费站,即为:没有打完第一个比特,对方就已经收到,路径中几乎没有比特在通行,所以信道容量:车队1>车队2
节点延迟
每一跳都要花费这四个延迟
排队延迟
取决于流量强度I,在(0,1)之间
L:每个分组的长度
a:单位时间内希望它通过这条链路转发的数量,单位时间要求通过这条链路放出去的比特数量
R:链路速率,带宽
I=La/R
排队延迟:
流量强度越接近于1,排队延迟无限大
网络的延迟和路由
在cmd中:
工作原理:
发出三个探测包,发送时计时,回来时计时;可以计算往返延迟【RTT ,Round Trip Time】
使用了ICMP协议,互联网控制报文协议:
IP头部有TTL字段【TIME To Live,生存时间,有限值】,路过一个路由器时TTL减少1;到某个路由器TTL=0时,分组被丢弃,向源主机发送一个ICMP的控制报文,告诉源主机:到此路由器时,TTL=0,分组被丢弃了
使用tracert,测试:
设置TTL足够大,到达最后一个路由器时,目标端口没有应用进程守候,发送ICMP报文:由于目标端口不可达,分组丢失;此时测试结束
分组丢失
分组进了网络核心,没有出来,被丢失掉了
丢失的分组:
看数据链路层(网络层的上一层)本身是否可以可靠,如果可靠【如,WIFI】,由上一个节点来重传;如果数据链路层不可靠【如,以太网向上层提供的服务是不可靠的】,可能由源主机来重传,如果是应用进程提供UDP来发送,则不重传;如果应用进程提供TCP来发送,则重传
三种情况:
物理介质本身可靠,则数据链路层就会放弃可靠性;
物理介质本身不可靠;则数据链路层就会提供可靠的服务【亡羊补牢】
吞吐量
A到B:单位时间内A向B传比特,对方能够有效收到的比特数量【单位时间内成功地传送比特的数量】
有效吞吐量取决于最小的
瓶颈链路:最细的
有多个链路带宽,取决于最小的
A到B
如果有n个主机在同时使用链路的话,每一个主机只能使用1/n带宽(其他条的链路也是一样)
而瓶颈带宽(吞吐量):是最小的1/n
min{1/n1,1/n2。。。}