路由器的主要作用便是将数据报从入链路转发到出链路
网络服务模型定义了分组在发送与接收端系统之间的端到端运输特性
i. 考虑网络层能够提供的某些可能的服务。在发送主机中,当运输层向网络层传递一个分组时,能由网络层提供的特定服务包括:
ii. 因特网的网络层提供了单一的服务,称为尽力而为服务。使用该服务,分组间的定时是不能确保被保证的,分组接收的顺序也不能保证与发送的顺序一致,传送的分组也不能保证最终交付。
iii. 两个最重要的ATM服务模型是恒定比特率和可用比特率服务:
iv. 其实,网络层服务模型可以分为两大类:
网络层连接和无连接服务与运输层面向连接和无连接服务有类似之处,但也存在不同:
仅在网络层提供连接服务的计算机网络称为虚电路网络
i. 一条虚电路的组成如下:
iv. 虚电路中的3个明显不同的阶段:
v. 运输层的连接建立仅涉及两个端系统,在连接建立期间,两个端系统独自决定运输层连接的参数;而对于一个虚电路网络层,沿两个端系统之间路径上的路由器都要参与虚电路的建立,且每台路由器都完全知道经过它的所有虚电路。
vi. 端系统向网络发送指示虚电路启动与终止的报文,以及路由器之间传递的用于建立虚电路(即修改路由器表中的连接状态)的报文,它们被称为信令报文,用来交换这些报文的协议常称为信令协议。
仅在网络层提供无连接服务的计算机网络称为数据报网络
一个通用路由器体系结构的组成:输入端口、交换结构、输出端口、路由选择处理器
交换结构位于一台路由器的核心部位,有如下三种交换技术:
经内存交换:一个分组到达一个输入端口时,该端口会先通过中断方式向路由选择处理器发出信号。于是,该分组从输入端口处被复制到处理器内存中。路由选择处理器则从其首部中提取目的地址,在转发表中找到适当的输出端口,并将该分组复制到输出端口的缓存中。这种情况下,不能同时转发两个分组(即使它们有不同的端口号,因为经过共享系统总线一次仅能执行一个内存读/写)。
许多现代路由器通过内存进行交换,然而,与早期路由器的一个主要差别是,目的地址的查找和将分组存储(交换)进适当的内存存储位置是由输入线路卡来处理的。
经总线交换:输入端口经一根共享总线将分组直接传送到输出端口,不需要路由选择处理器的干预。工作方式如下;
让输入端口为分组预先计划一个交换机内部标签(首部),指示本地输出端口,使分组在总线上传送和传输到输出端口。然后标签在输出端口被去除,因为其仅用于交换机内部来跨越总线。如果多个分组同时到达路由器,每个位于不同的输出端口,除了一个分组外所有其他分组必须等待,因为一次只有一个分组能够跨越总线。因为每个分组必须跨过单一总线,故路由器的交换带宽受总线速率的限制。
经互联网络交换:与前两种交换方法不同,纵横式网络能够并行转发多个分组。然而如果来自两个不同输入端口的两个分组其目的地为相同的输出端口,则一个分组必须在输入端等待,因为在某个时刻经给定总线仅有一个分组能够发送。
因特网的网络层有三个主要组件。第一个组件是IP协议,它是本节的主题。第二个主要组件是路由选择部分,它决定了数据报从源到目的地所流经的路径。最后一个组件是报告数据报中的差错和对某些网络层信息请求进行响应的设施。
ii. IP数据报分片
A类地址,网络号8位,主机号24位(50%),高1位为0:0.0.0.0~127.255.255.255
B类地址,网络号16位,主机号16位(25%),高2位为10:128.0.0.0~191.255.255.255
C类地址,网络号24位,主机号8位(12.5%),高3位为110:192.0.0.0~233.255.255.255
D类地址(多播地址):不再划分网络号和主机号,用于命名或标识因特网中的一组主机(这组主机理论上可以分布在互联网中的每个地方),这类地址只能作为IP分组中的目的主机地址,而不可以用作源主机地址,如果向多播地址发送一个IP分组,那么只要是多播地址中的成员都会接收这个副本。高4位为1110,地址范围:224.0.0.0~239.255.255.255
E类地址:不再划分网络号和主机号,保留做研究使用,高4位为1111,地址范围:240.0.0.0~255.255.255.255
特殊的IP地址:
网络号全0,主机号全0的IP地址可以作为IP分组的源地址,但不可以作为IP分组的目的地址,用于在本网范围内表示主机;在路由表中用于表示默认路由(相当于表示整个Internet网络)
网络号全0,主机号为特定值的IP地址不可以作为IP分组的源地址,但可以作为IP分组的目的地址,表示本网内某个特定主机
网络号全1,主机号全1的IP地址不可以作为IP分组的源地址,但可以作为IP分组的目的地址,用于本网广播地址(路由器不转发)
网络号为特定值,主机号为全0的IP地址不可以作为IP分组的源地址,不可以作为IP分组的目的地址,用于网络地址,表示一个网络
网络号为特定值,主机号为全1的IP地址不可以作为IP分组的源地址,可以作为IP分组的目的地址,用于直接广播地址,对特定网络上的所有主机进行广播
网络号为127,主机号为非全0或非全1的任何数的IP地址可以作为IP分组的源地址和IP分组的目的地址,用于本地软件环回测试,称为环回地址
A类地址中网络号为10地址、B类地址中网络号为172.16~171.31、C类地址中网络号为192.168.0 ~ 192.168.245范围内为私有IP地址
因特网的地址分配策略被称为无类别域间路由选择(CIDR)。CIDR将子网寻址的概念一般化了。因为对于子网寻址,32比特的IP地址被划分为两部分,并且也具有点分十进制形式a.b.c.d/x,其中x指示了地址的第一部分中的比特数。
i. 消除了传统的A类、B类和C类地址界限,前缀可以为任何数
ii. 融合子网地址与子网掩码,方便子网划分。
iii. 提高IPv4地址空间分配效率
iv. 提高路由效率:将多个子网聚合成为一个较大的子网;构造超网;路由聚合;层级编址使得路由信息通告更高效
形式为a.b.c.d/x的地址的x最高比特构成了IP地址的网络部分,并且经常被称为该地址的前缀(网络前缀),一个组织通常被分配一块连续的地址,即具有相同前缀的一段地址。在这种情况下,该组织内部的设备的IP地址将共享共同的前缀。仅考虑前面的前缀比特x。这相当大地减少了在这些路由器中转发表的长度,因为形式为a.b.c.d/x单一表项足以将数据报转发到该组织内的任何目的地。
一个地址剩余的32-x比特可认为是用于区分该组织内部设备的,其中的所有设备具有相同的网络前缀。
本节讲述一个组织是如何为其设备得到一个地址块的,然后再看一个设备(如一台主机)是如何从某组织的地址块中分配到一个地址的。
i. 互联网控制报文协议ICMP支持主机或路由器:差错(或异常)报告;网络探询
ii. 两类ICMP报文:
iii. ICMP通常被认为是IP的一部分(即ICMP报文封装到IP数据报中传输),但从体系结构上讲它是位于IP之上的,因为ICMP 报文是承载在IP分组中的。
iv. ICMP报文有一个类型字段和一个编码字段,并且包含引起该ICMP报文首次生成的IP数据报的首部和前8字节内容(以便发送方能确定引发该差错的数据报)。
v. 几种不发送ICMP差错报告报文的特殊情况:
vi. 几种ICMP报文已不再使用
vii. ICMP的应用举例:Traceroute
i. 最初动机:32位IPv4地址空间已分配殆尽
ii. 其他动机:改进首部格式——快速处理/转发数据报;支持QoS
iii. IPv6数据报格式:
vi. IPv6基本地址类型:
vii. IPv4向IPv6过渡
i. 距离向量算法是一种迭代的、异步的和分布式的算法
ii. 令dx(y)是从结点x到结点y的最低费用路径的费用。则最低费用与著名的Bellman-Ford方程相关,即 d x ( y ) = m i n v { C ( x , v ) + d v ( y ) } d_x (y)=min_v \{C(x,v)+d_v (y)\} dx(y)=minv{C(x,v)+dv(y)},其中的minv是对于x的所有邻居的。
iii. DV算法的基本思想:每个结点x以Dx(y)开始,对在N中的所有结点,估计从它自己到结点y的最低费用路径的费用。令 D x = [ D x ( y ) : y ∈ N ] D_x=[D_x (y):y∈N] Dx=[Dx(y):y∈N],是结点x的距离向量,该向量是从x到在N中的所有其他结点y的费用估计的向量。使用DV算法,每个结点x维护下列路由选择信息:
在该分布式、异步算法中,每个结点不时地向它地每个邻居发送它地距离向量副本。当结点x从它地任何一个邻居v接收到一个新距离向量,它保存v地距离向量,然后使用Bellman-Ford方程更新它自己地距离向量如下: D x ( y ) = m i n v { C ( x , v ) + D v ( y ) } D_x (y)=min_v \{C(x,v)+D_v (y)\} Dx(y)=minv{C(x,v)+Dv(y)},对N中的每个结点。如果结点x的距离向量因这个更新步骤而改变,结点x接下来将向它的每个邻居发送其更新后的距离向量。只要所有的结点继续以异步方式交换它们的距离向量,每个费用估计 D x ( y ) D_x (y) Dx(y)收敛到 d x ( y ) d_x (y) dx(y), d x ( y ) d_x (y) dx(y)为从结点x到结点y的实际最低费用路径的费用。
iv. DV算法可能会出现路由选择环路,增加毒性逆转并不能解决一般的无穷计数问题
v. LS与DV路由选择算法的比较:两者采用互补的方法来解决路由选择计算问题。在DV算法中,每个结点仅与它直接相连的邻居交谈,但它为其邻居提供了它自己到网络中(它所知道的)所有其他结点的最低费用估计。在LS算法中,每个结点(经广播)与所有其他结点交谈,但它仅告诉它们与它直接相连链路的费用。令N为结点(路由器)的集合,而E是边(链路)的集合
i. 将任意规模网络抽象为一个图计算路由-过于理想化(标识所有路由器、“扁平”网络),在实际网络(尤其是大规模网络)中,不可行!
ii. 在实践中,将网络只看作一个互联路由器的集合这种模型和这种一组执行同样路由选择算法的同质路由器集合的观点有点简单化了,至少有以下两个原因:
iii. 层次路由:聚合路由器为一个区域——自治系统AS
iv. 同一AS内的路由器运行相同的路由协议(算法)
vi. 详情请参考书本!
Internet采用层次路由;AS内部路由协议也称为内部网络协议IGP,最常见的AS内部路由协议有以下几个:
i. 早于1982年随BSD-UNIX操作系统发布
ii. RIP是一种距离向量协议
iii. RIP路由表是利用一个称作routed的应用层进程进行管理的;通告报文周期性地通过UDP数据报发送
i. OSPF中的开放一词是指路由选择协议规范是公众可用的
ii. 采用链路状态路由算法
iii. OSPF通告中每个入口对应一个邻居
iv. OSPF通告在整个AS范围泛洪:OSPF报文直接封装到IP数据报中
v. 与OSPF及其相似的一个路由协议:IS-IS路由协议
vi. OSPF优点(RIP不具备)
vii. 分层的OSPF:详情请见书本!