计算机网络第四章网络层
计算机网络第四章网络层
参与网路层的主要设备:
从输入来链路接口到输出链路接口转移分组的是交换机
基于链路层帧中的字段做出决定的分组交换机称为链路层交换机
基于网络层数据报中的首部字段的值做出转发决定的是路由器
网络层的作用
网络层的作用:将分组从一台发送主机移动到另一台接收主机。
- 转发
- 路由选择
在网络体系中,每一层都是服务于对应的上下层的。网络层也是服务于上层的传输层和下层的数据链路层。
网络层的功能就是让我们在茫茫人海中,能够找到另一台计算机在哪里,是否属于同一个子网等。
其主要作用表现在一下几个方面:
(1)屏蔽网络差异,提供透明传输
网络层就是为了解决不同网络有不同的规范要求的差异问题,寻找一个不同网络间都能共同遵守的网络通信规范,以便不同网络间能相互识别,并接受对方的网络请求。也就是一个中转站的作用,两个毫无交集的网络通过这个中转站来建立交集。
(2)为网络间通信提供路由选择
路由选择是根据一定的原则和路由选择算法在多个结点的通信子网中选择一条到达目的节点的最佳路径的过程。确定路由选择的策略称为路由算法。在无连接的数据包服务中,网络节点要为每个数据包做出路由选择,即选择到达目的节点的最佳路线,而在面向连接的虚电路服务中,存在一条专门的逻辑线路,在建立连接时就已经确定了路有路径,无需额外选择。
(3)拥塞控制
拥塞控制是为了避免网络传输路径中数据的传输延迟或死锁。数据链路层中的流量控制功能,是针对数据链路中点对点传输速率的控制,这里的拥塞控制是针对在网络层传输路径中的端到端传输效率的控制。主要采用预约缓冲区、许可证和分组丢弃等方式。
路由器的工作原理
路由器的构成
路由器的任务
路由器是一种具有多个输入端口和多个输出端口的专用计算机,其任务是转发分组
路由器将某个输入端口收到的分组,按照分组要去的目的地(即目的网络), 把该分组从路由器的某个合适的输出端口转发给下一跳路由器
下一跳路由器也按照这种方法处理分组,直到该分组到达终点为止
转发和路由选择的区别
转发:就是路由器根据转发表将用户的 IP 数据报从合适的端口转发出去
路由选择:则是按照路由选择算法,根据从各相邻路由器得到的关于网络拓扑的变化情况,动态地改变所选择的路由
路由表是根据路由选择算法得出的。而转发表是由路由表生成的
典型的路由器结构
若分组的接收者是路由器自己,需要交给相应的 上层协议 去处理,如发送给路由器的RIP或 OSPF分组等需要 送交路由器的路由选择部分中的路由选择处理机。
否则,网络层处理模块按照 分组首部中的 目的地址 查找转发表,交给交换结构交换到合适的输出端口。
若交换结构处理分组的速率赶不上分组进入队列的速率,则会导致输入队列排队!
交换结构
1. 经内存存储器交换
最早的路由器就是多网络接口的计算机,收到一个分组时,将分组就从输入端口复制到存储器中,从 分组首部 提取 目的地址 ,查找路由表,再将分组复制到合适的 输出端口 的缓存中。
采用这种方式分组要两次经过系统的总线(一次写和 一次读),交换速度比较慢。
许多现代的低端路由器也通过存储器进行交换,与早期路由器的区别是 目的地址 的 查找 和 分组 在存储器中的缓存都是在 输入端口 中进行的。
2. 经总线交换
分组从 输入端口 通过 共享的总线 直接传送到合适的 输出端口,不需要路由选择处理机的干预。
但是,由于 总线是共享的,因此在同一时间只能有一 个分组在总线上传送。
当分组到达输入端口时,若发现总线忙,则被阻塞而不能通过交换结构,并在输入 端口排队等待。
路由器的转发带宽显然要受到总线速率的限制;
要想 实现无阻塞交换,交换总线的速率,就要大于所有输入端口速率的总和。
由于只经过一次总线,比通过存储器交换要快。
3. 经互联网络交换
这 种 交 换 结构 常 称 为互连 网 络(Interconnection Network),它有2N条纵横交叉的总线,通过控制相应的交叉结点使水平总线和垂直总线接通还是断开, 将分组转发到合适的输出端口。
当输入端口收到一个分组时,就将它发送到与该输入 端口相连的水平总线上。若通向所要转发的输出端口 的垂直总线是空闲的,则在这个结点将垂直总线与水 平总线接通,然后将该分组转发到这个输出端口。
但若该垂直总线已被占用(有另一个分组正在转发到 同一个输出端口),则后到达的分组就被阻塞,必须 在输入端口排队。
输出端口
把交换结构传送过来的分组先进行缓存。数据链路层处理模块将分组加上链路层的首部和尾部,交给物理层后发送到外部线路。
若从交换结构到达队列的分组速率超过链路的速率,则会导致输出队列排队!
总结处理过程
-
链路层解封装,IP头部校验。
-
获取报文目的IP地址。
-
用目的IP地址,基于最长前缀匹配规则查询转发表。
-
查询失败,丢弃报文。
-
查询成功:
获取转发出接口和下一跳IP地址。
IP头部“TTL”字段值减1,重新计算IP头部“校验和”。
重新进行链路层封装,发送报文。
注:普通IP报文转发过程中,路由器不查看传输层及以上层协议的内容。 -
IP报文在路由器转发前后的变化:
链路层封装更新,IP头部“TTL”减1,IP头部“校验和”更新。
-
数据报在不同硬件单元的处理
-
报文输入的接口卡
链路层解封装
转发表查询(该工作在输入接口卡处理)
通过交换结构将报文排队发往目的接口卡(发送过快将产生拥塞) -
交换结构
从输入接口卡发往输出接口卡 -
报文输出的接口卡
从交换结构接收报文(排队进行后续处理,到达太快将产生拥塞)
链路层封装
从输出接口发送报文
-
分组调度算法
排队的分组如何经输出链路传输?
1.先进先出(FIFO)
先来的先服务
2.优先权排队
比如分成普通用户和vip两个队,普通用户来了进普通用户队列,vip来了进vip队列,每种队列内通常是FIFO。
每个优先权类可以配置一个队列,每次从非空的优先权队列选择一个。
实践中网络操作员可以配置一个队列,这样携带网络管理信息的分组(比如通过源或目的TCP/UDP端口号所标识)能够比用户流量更有优先权。或者比如实时语音比电子邮件更具有优先权。要传输一个分组时从队列为非空的最高优先级中传输。分组传输时也不能被别的分组打断。
3.循环和加权公平排队
循环公平排队跟上一个相似,不同之处就是大家都是平等的,没有我是vip你不是这一说,循环着来,你这个队列没人了就找下一个。
**加权公平排队(WFQ)**给每个类分配权重,即使是最坏情况下也就是每个队都有人,某个队依然能获得权重x总带宽
第i类将确保接收到的服务部分等于 w i ∑ w j \huge \frac{w_i}{\sum{w_j}} ∑wjwi
被分配的带宽也是 w