网络层的数据分组(packet)叫数据报(datagram)。
路由器实现的协议栈:网络层以下。
网络层三个功能:转发(forwarding)、路由(routing)、连接建立(connection setup)。转发,就是路由器决定把这个数据报发往哪条链路,路由就是获取从源到目的地完整路径的过程。
网络层中有两种设备:链路层交换机(link-layer switches)、路由器(router)。

网络服务模型
网络层可能提供的服务。
1、确保交付。能够到目的地。
2、具有时延上界的确保交付。最多多久到。
3、有序分组交付。按顺序到。
4、确保最小带宽。确保每个分组的最多多久到。
5、确保最大时延抖动。分组收到的间隔时间的变化小于某个时间,”收货”速度比较稳定。
6、安全性服务。数据安全。
因特网:“对上述服务,概不承诺”。

1、虚电路和数据报网络

网络体提供的类似TCP/UDP连接服务。
虚电路Virtual-Circuit,VC电路,提供有连接服务。
数据报网络datagram network,提供无连接服务,比如因特网。

虚电路

建立/拆除虚电路时,转发表更新。
点击查看【processon】
三个过程:虚电路建立、数据传送、虚电路拆除。

数据报网络

核心是转发表。原理:前缀最长匹配规则。

数据报 转发表
序号 前缀匹配 链路接口
A 11001000 00010111 00010 0
B 11001000 00010111 00011000 1
C 11001000 00010111 00011 2
D 其他 3

假设目的地址为ip,按最长匹配规则,最匹配哪个,就走哪个链路接口。
每隔一段时间,路由器的转发表会根据路由选择算法主动更新一次。

2、路由器的工作原理

路由器结构

image.png

输入端口结构

image.png
查找
查找输出端口。
每个输入端口都有一个转发表副本。
纳秒级查找:硬件执行查找(硬件可以叠加并行执行),超简单线性搜索算法(快速查找算法),高效内存访问(嵌入式DRAM和SRAM内存设计三态内容可寻址存储器TCAM,Tenary Content Address Memory,常数时间内找出)。
数据链路处理
1、物理层、链路层处理。
2、检查并更新分组首部:版本号、检验和、寿命。
3、更新用于网络管理的计数器(接收到的IP数据报的数目)。

交换结构

image.png
1、经内存交换
早期路由器就是传统的计算机,数据从IO -> 内存 -> IO,总线共享,一次只能一个内存读写。
现代的,是每个输入线路卡共享交换结构内存各自处理查找和存储,多处理器共享内存
2、经总线交换
根据上图举例,在A中的分组a被添加了一个标签(首部),然后进入总线,xyz都能收到,只有匹配的标签匹配的才保存,标签会删除,一次只能一个分组通过总线。
3、经互联网络交换
图中纵横式,如果有N个输入、输出端口,就有2*N条总线,交换结构控制器能够控制这些总线交叉点的闭合,比如a要到Y,B要到x,这两条总线就会连上,也就是说可以同时发送多个分组,但是这些分组不能是相同的输出端口。

输出端口结构

image.png
分组调度程序packet scheduler决定先发队列中哪个分组,规则有:FCFS先来先服务,加权公平排队(WFQ),在服务质量保证方面(quality of service guarantee)其关键作用。
缓存要溢出时,改如何管理分组?典型的算法:主动队列管理算法(Active Queue Management,AQM)