第八章 计算机网络——网络互连

路由器在网际互连中的作用

路由器的构成

直接交付和间接交付

当主机 A 要向另一个主机 B 发送数据报时,先要检查目的主机 B 是否与源主机 A 连接在同一个网络上。

如果是,就将数据报直接交付给目的主机 B 而不需要通过路由器。

但如果目的主机与源主机 A 不是连接在同一个网络上,则应将数据报发送给本网络上的某个路由器,由该路由器按照转发表指出的路由将数据报转发给下一个路由器。这就叫作间接交付。  

“转发”和“路由选择”的区别

  1. “转发”(forwarding)就是路由器根据转发表将用户的 IP 数据报从合适的端口转发出去。
  2. “路由选择”(routing)则是按照分布式算法,根据从各相邻路由器得到的关于网络拓扑的变化         情况,动态地改变所选择的路由。
  3. 路由表是根据路由选择算法得出的。而转发表是从路由表得出的。
  4. 在讨论路由选择的原理时,往往不去区分转发表和路由表的区别, 

分组丢弃

若路由器处理分组的速率赶不上分组进入队列的速率,则队列的存储空间最终必定减少到零,这就使后面再进入队列的分组由于没有存储空间而只能被丢弃。

路由器中的输入或输出队列产生溢出是造成分组丢失的重要原因。

交换结构

网络互相连接的中间设备

中间设备又称为中间系统或中继(relay)系统。

  1. 物理层中继系统:转发器(repeater)。
  2. 数据链路层中继系统:网桥或桥接器(bridge)。
  3. 网络层中继系统:路由器(router)。
  4. 网桥和路由器的混合物:桥路器(brouter)。
  5. 网络层以上的中继系统:网关(gateway)。  

 因特网的网际协议 IP

网际协议 IP 是 TCP/IP 体系中两个最主要的协议之一 。与 IP 协议配套使用的还有四个协议:

  1.   地址解析协议 ARP    (Address Resolution Protocol)
  2. 逆地址解析协议 RARP     (Reverse Address Resolution Protocol)
  3. 因特网控制报文协议 ICMP     (Internet Control Message Protocol)
  4. 因特网组管理协议 IGMP     (Internet Group Management Protocol)

分类的 IP地址

我们把整个因特网看成为一个单一的、抽象的网络。IP 地址就是给每个连接在因特网上的主机(或路由器)分配一个在全世界范围是惟一的 32 bit 的标识符。 IP 地址现在由因特网名字与号码指派公司ICANN (Internet Corporation for Assigned Names and Numbers)进行分配 。

IP 地址的编址方法

分类的 IP 地址。这是最基本的编址方法,在 1981 年就通过了相应的标准协议。

子网的划分。这是对最基本的编址方法的改进,其标准[RFC 950]在 1985 年通过。

构成超网。这是比较新的无分类编址方法。1993 年提出后很快就得到推广应用。

每一类地址都由两个固定长度的字段组成,其中一个字段是网络号 net-id,它标志主机(或路由器)所连接到的网络,而另一个字段则是主机号 host-id,它标志该主机(或路由器)。 两级的 IP 地址可以记为:

点分十进制记法

常用的三种类别的 IP 地址

特点

(1)  IP 地址是一种分等级的地址结构。分两个等级的好处是:

  1. IP 地址管理机构在分配 IP 地址时只分配网络号,而剩下的主机号则由得到该网络号的单位自行分配。这样就方便了 IP 地址的管理。
  2. 路由器仅根据目的主机所连接的网络号来转发分组(而不考虑目的主机号),这样就可以使路由表中的项目数大幅度减少,从而减小了路由表所占的存储空间。

(2)  实际上 IP 地址是标志一个主机(或路由器)和一条链路的接口。

  1. 当一个主机同时连接到两个网络上时,该主机就必须同时具有两个相应的 IP 地址,其网络号 net-id 必须是不同的。这种主机称为多接口主机(multihomed host)。
  2. 由于一个路由器至少应当连接到两个网络(这样它才能将 IP 数据报从一个网络转发到另一个网络),因此一个路由器至少应当有两个不同的 IP 地址。 

(3) 用转发器或网桥连接起来的若干个局域网仍为一个网络,因此这些局域网都具有同样的网络号 net-id。

(4) 所有分配到网络号 net-id 的网络,范围很小的局域网,还是可能覆盖很大地理范围的广域网,都是平等的。

IP 地址与硬件地址

由以上流程可以发现:

  1. 从协议栈的层次上看数据的流动
  2. 从虚拟的 IP 层上看 IP 数据报的流动
  3. 在链路上看 MAC 帧的流动
  4. 在 IP 层抽象的互联网上只能看到 IP 数据报 图中的  IP1→IP2  表示从源地址 IP1 到目的地址 IP2 两个路由器的 IP 地址并不出现在 IP 数据报的首部中 
  5. 路由器只根据目的站的 IP 地址的网络号进行路由选择
  6. 在具体的物理网络的链路层 只能看见 MAC 帧而看不见 IP 数据报
  7. IP层抽象的互联网屏蔽了下层很复杂的细节 在抽象的网络层上讨论问题,就能够使用 统一的、抽象的 IP 地址 研究主机和主机或主机和路由器之间的通信

地址解析协议 ARP 和逆地址解析协议 RARP

不管网络层使用的是什么协议,在实际网络的链路上传送数据帧时,最终还是必须使用硬件地址。

每一个主机都设有一个 ARP 高速缓存(ARP cache),里面有所在的局域网上的各主机和路由器的 IP 地址到硬件地址的映射表。

当主机 A 欲向本局域网上的某个主机 B 发送 IP 数据报时,就先在其 ARP 高速缓存中查看有无主机 B 的 IP 地址。如有,就可查出其对应的硬件地址,再将此硬件地址写入 MAC 帧,然后通过局域网将该 MAC 帧发往此硬件地址。  

逆地址解析协议 RARP:

逆地址解析协议 RARP 使只知道自己硬件地址的主机能够知道其 IP 地址。 这种主机往往是无盘工作站。 因此 RARP协议目前已很少使用。

IP 数据报的格式

一个 IP 数据报由首部和数据两部分组成。

首部的前一部分是固定长度,共 20 字节,是所有 IP 数据报必须具有的。

在首部的固定部分的后面是一些可选字段,其长度是可变的。

版本——占 4 bit,指IP协议的版本 目前的 IP 协议版本号为 4 (即 IPv4)。

首部长度——占 4 bit,可表示的最大数值 是 15 个单位(一个单位为 4 字节) 因此 IP 的首部长度的最大值是60字节。

服务类型——占 8 bit,用来获得更好的服务 这个字段以前一直没有被人们使用 。

总长度——占 16 bit,指首部和数据之和的长度, 单位为字节,因此数据报的最大长度为 65535 字节。 总长度必须不超过最大传送单元 MTU。

标识(identification)    占 16 bit, 它是一个计数器,用来产生数据报的标识。

标识(identification)    占 16 bit, 它是一个计数器,用来产生数据报的标识。

片偏移(12 bit)指出:较长的分组在分片后 某片在原分组中的相对位置。 片偏移以 8 个字节为偏移单位。

生存时间(8 bit)记为 TTL (Time To Live) 数据报在网络中的寿命,其单位为秒。

协议(8 bit)字段指出此数据报携带的数据使用何种协议 以便目的主机的 IP 层将数据部分上交给哪个处理过程。

首部检验和(16 bit)字段只检验数据报的首部 不包括数据部分。 这里不采用 CRC 检验码而采用简单的计算方法。

源地址和目的地址都各占 4 字节。

划分子网和构造超网

划分子网

从两级 IP 地址到三级 IP 地址

在 ARPANET 的早期,IP 地址的设计确实不够合理。 IP 地址空间的利用率有时很低。 给每一个物理网络分配一个网络号会使路由表变得太大因而使网络性能变坏。 两级的 IP 地址不够灵活。 

从 1985 年起在 IP 地址中又增加了一个“子网号字段”,使两级的 IP 地址变成为三级的 IP 地址。 这种做法叫作划分子网(subnetting) 。划分子网已成为因特网的正式标准协议。

划分子网纯属一个单位内部的事情。单位对外仍然表现为没有划分子网的网络。 从主机号借用若干个比特作为子网号 subnet-id,而主机号 host-id 也就相应减少了若干个比特。

凡是从其他网络发送给本单位某个主机的 IP 数据报,仍然是根据 IP 数据报的目的网络号 net-id,先找到连接在本单位网络上的路由器。 然后此路由器在收到 IP 数据报后,再按目的网络号 net-id 和子网号 subnet-id 找到目的子网。 最后就将 IP 数据报直接交付给目的主机。

当没有划分子网时,IP 地址是两级结构,地址的网络号字段也就是 IP 地址的“因特网部分”,而主机号字段是 IP 地址的“本地部分”。 划分子网后 IP 地址就变成了三级结构。划分子网只是将 IP 地址的本地部分进行再划分,而不改变 IP 地址的因特网部分.

子网掩码

从一个 I P数据报的首部并无法判断源主机或目的主机所连接的网络是否进行了子网的划分。 使用子网掩码(subnet mask)可以找出 IP 地址中的子网部分。  

使用子网掩码的分组转发过程

主机 H1 要发送分组给 H2

因此 H1 首先检查主机 128.30.33.138 是否连接在本网络上 如果是,则直接交付; 否则,就送交路由器 R1,并逐项查找路由表。

本子网的子网掩码 255.255.255.128 与分组的 IP 地址 128.30.33.138 逐比特相“与”(AND 操作)

因此 H1 必须把分组传送到路由器 R1 然后逐项查找路由表

路由器 R1 收到分组后就用路由表中第 1 个项目的 子网掩码和 128.30.33.138 逐比特 AND 操作

路由器 R1 再用路由表中第 2 个项目的 子网掩码和 128.30.33.138 逐比特 AND 操作 。

在划分子网的情况下路由器转发分组的算法:

  1.  从收到的分组的首部提取目的 IP 地址 D。
  2. 先用各网络的子网掩码和 D 逐比特相“与”,看是否和      相应的网络地址匹配。若匹配,则将分组直接交付。      否则就是间接交付,执行(3)。
  3. 若路由表中有目的地址为 D 的特定主机路由,则将      分组传送给指明的下一跳路由器;否则,执行(4)。
  4. 对路由表中的每一行的子网掩码和 D 逐比特相“与”,      若其结果与该行的目的网络地址匹配,则将分组传送      给该行指明的下一跳路由器;否则,执行(5)。
  5. 若路由表中有一个默认路由,则将分组传送给路由表      中所指明的默认路由器;否则,执行(6)。
  6. 报告转发分组出错。

因特网控制报文协议 ICMP

为了提高 IP 数据报交付成功的机会,在网际层使用了因特网控制报文协议 ICMP (Internet Control Message Protocol)。 ICMP 允许主机或路由器报告差错情况和提供有关异常情况的报告。 ICMP 不是高层协议,而是 IP 层的协议。 ICMP 报文作为 IP 层数据报的数据,加上数据报的首部,组成 IP 数据报发送出去。  报文格式如下:

ICMP 报文的种类有两种,即 ICMP 差错报告报文和 ICMP 询问报文。 ICMP 报文的前 4 个字节是统一的格式,共有三个字段:即类型、代码和检验和。接着的 4 个字节的内容与 ICMP 的类型有关。

因特网的路由选择协议

有关路由选择协议的几个基本概念

自治系统:因特网将整个互联网划分为许多较小的自治系统 AS。 一个自治系统是一个互联网,其最重要的特点就是自治系统有权自主地决定在本系统内应采用何种路由选择协议。 一个自治系统内的所有网络都属于一个行政单位(例如,一个公司,一所大学,政府的一个部门,等等)来管辖。 一个自治系统的所有路由器在本自治系统内都必须是连通的。

内部网关协议 IGP (Interior Gateway Protocol)    即在一个自治系统内部使用的路由选择协议。目前这类路由选择协议使用得最多,如 RIP 和 OSPF 协议。

外部网关协议EGP (External Gateway Protocol)    若源站和目的站处在不同的自治系统中,当数据报传到一个自治系统的边界时,就需要使用一种协议将路由选择信息传递到另一个自治系统中。这样的协议就是外部网关协议 EGP。在外部网关协议中目前使用最多的是 BGP-4。  

内部网关协议 RIP

工作原理

路由信息协议 RIP 是内部网关协议 IGP中最先得到广泛使用的协议。

RIP 是一种分布式的基于距离向量的路由选择协议。

RIP 协议要求网络中的每一个路由器都要维护从它自己到其他每一个目的网络的距离记录。

从一路由器到直接连接的网络的距离定义为 1。 从一个路由器到非直接连接的网络的距离定义为所经过的路由器数加 1。 RIP 协议中的“距离”也称为“跳数”(hop count),因为每经过一个路由器,跳数就加 1。  

要点

仅和相邻路由器交换信息。 交换的信息是当前本路由器所知道的全部信息,即自己的路由表。 按固定的时间间隔交换路由信息,例如,每隔 30 秒。

组成

RIP2 报文中的路由部分由若干个路由信息组成。每个路由信息需要用 20 个字节。地址族标识符(又称为地址类别)字段用来标志所使用的地址协议。

路由标记填入自治系统的号码,这是考虑使RIP 有可能收到本自治系统以外的路由选择信息。再后面指出某个网络地址、该网络的子网掩码、下一跳路由器地址以及到此网络的距离。  

优缺点

RIP 存在的一个问题是当网络出现故障时,要经过比较长的时间才能将此信息传送到所有的路由器。

 RIP 协议最大的优点就是实现简单,开销较小。

RIP 限制了网络的规模,它能使用的最大距离为 15(16 表示不可达)。

路由器之间交换的路由信息是路由器中的完整路由表,因而随着网络规模的扩大,开销也就增加。  

内部网关协议 OSPF

基本特点

“开放”表明 OSPF 协议不是受某一家厂商控制,而是公开发表的。 “最短路径优先”是因为使用了 Dijkstra 提出的最短路径算法SPF OSPF 只是一个协议的名字,它并不表示其他的路由选择协议不是“最短路径优先”。 是分布式的链路状态协议。

要点

向本自治系统中所有路由器发送信息,这里使用的方法是洪泛法。

发送的信息就是与本路由器相邻的所有路由器的链路状态,但这只是路由器所知道的部分信息。 “链路状态”就是说明本路由器都和哪些路由器相邻,以及该链路的“度量”(metric)。

只有当链路状态发生变化时,路由器才用洪泛法向所有路由器发送此信息。  

分组类型

类型1,问候(Hello)分组。

类型2,数据库描述(Database Description)分组。

类型3,链路状态请求(Link State Request)分组。

类型4,链路状态更新(Link State Update)分组,用洪泛法对全网更新链路状态。

类型5,链路状态确认(Link State Acknowledgment)  分组。

  • 22
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值