本章重点:
- 虚拟互联网的概念
- IP地址与物理地址的关系
- 传统的分类的 IP地址(包括子网掩码)和无分类域间路由选择 CIDR
- 路由选择协议的工作原理
目录
一、网络层提供的两种服务
在计算机网络领域,网络层应该向运输层提供怎样的服务(“面向连接”还是“无连接”)曾引起了长期的争论。
争论的实质就是:在计算机通信中,可靠交付应当由谁来负责?是网络还是端系统?
二、网际协议IP
网际协议IP是TCP/IP体系中两个最主要的协议之一
ARP在最下面,因为IP经常使用该协议;ICMP和 IGMP在这一层的上部,因为它们经常使用 IP协议
网际协议 IP使互连起来的许多计算机网络能够进行通信,因此 TCP/IP体系中的网络层常称为网际层或 IP层
2.1虚拟互联网络
将网络互相连接起来要使用一些中间设备
- 物理层中继系统:转发器 (repeater)
- 数据链路层中继系统:网桥 或 桥接器 (bridge)
- 网络层中继系统:路由器 (router)
- 网桥和路由器的混合物:桥路器 (brouter)
- 网络层以上的中继系统:网关 (gateway)
当中继系统是转发器或网桥时,仅仅是把一个网络扩大了,仍然是一个网络
许多计算机网络通过一些路由器进行互联,由于参加互连的计算机网络使用相同的网际协议 IP,因此可以把互连以后的计算机网络看成一个虚拟互连网络。各物理网络的异构性依旧存在,但在网络层看就像一个统一的网络
互联网可以由多种异构网络互连组成
2.2分类的IP地址
2.2.1 IP地址及其表示
IP地址就是给互联网上的每一台主机或路由器的每一个接口分配一个全世界唯一的32位标识符
IP地址编址方式的三个阶段
- 分类的 IP地址
- 子网的划分
- 构成超网
“分类的 IP地址”就是将 IP地址划分为若干个类,每类地址由两个固定的字段组成,第一个是网络号(标志主机或路由器连接到的网络),第二个是主机号(标志该主机或路由器)
2.2.2常用的三类 IP地址
重要特点
1、IP 地址是一种分等级的地址结构。分两个等级的好处是
- IP 地址管理机构分配 IP地址时只分配网络号,主机号由得到该网络号的单位自行分配。方便了 IP 地址的管理
- 路由器仅根据目的主机所连接的网络号来转发分组,使路由表中的项目数大幅度减少,减小了路由表所占的存储空间
2、IP 地址是标志一个主机(或路由器)和一条链路的接口
当一个主机同时连接到两个网络上时,该主机就必须同时具有两个相应的 IP 地址,其网络号必须不同,称为多归属主机
一个路由器至少应当连接到两个网络,因此一个路由器至少应当有两个不同的 IP 地址
3、一个网络指具有相同网络号的主机的集合,用转发器或网桥连接起来的若干个局域网仍为一个网络
具有不同网络号的局域网必须用路由器互连
4、所有分配到网络号的网络,无论是范围很小的局域网,还是可能覆盖很大地理范围的广域网,都是平等的
2.3 IP地址与硬件地址
从层次的角度看
硬件地址(或物理地址)是数据链路层和物理层使用的地址
IP地址是网络层和以上各层使用的地址,是一种逻辑地址
使用 IP地址的IP数据报一旦交给数据链路层就被封装成 MAC帧,MAC帧传送时使用的源地址和目的地址是硬件地址,写在 MAC帧的首部
强调
- 在 IP层抽象的互联网上只能看到 IP数据报
- 录取只根据目的站的 IP地址的网络号进行路由选择
- 局域网的链路层只能看到 MAC帧。MAC帧在不同网络传送时,其首部的源地址和目的地址要发生变化
- IP层抽象的互联网屏蔽了下层复杂的细节
2.4地址解析协议ARP
要点:在主机 ARP高速缓存中存放一个从 IP地址到硬件地址的映射表,且该表经常动态更新(新增或超时删除)
每个主机设有一个 ARP高速缓存,里面有所在局域网上的各主机和路由器的 IP地址到硬件地址的映射表,存储该主机目前知道的地址
当主机 A 欲向本局域网上的某个主机 B 发送 IP 数据报时,就先在其 ARP 高速缓存中查看有无主机 B 的 IP 地址
- 如有,就可查出其对应的硬件地址,再将此硬件地址写入 MAC 帧,然后通过局域网将该 MAC 帧发往此硬件地址
- 如没有, ARP 进程在本局域网上广播发送一个 ARP 请求分组。收到 ARP 响应分组后,将得到的 IP 地址到硬件地址的映射写入 ARP 高速缓存
ARP高速缓存的作用:存放最近获得的 IP 地址到 MAC 地址的绑定,以减少 ARP 广播的数量
ARP对保存在高速缓存中的每个映射地址项目都设置生存时间,超过生存时间的项目从高速缓存中删掉
ARP是解决同一个局域网上的主机或路由器的 IP 地址和硬件地址的映射问题
从 IP地址到硬件地址的解析自动进行,主机的用户对这种地址解析过程是不知道的
使用 ARP 的四种典型情况
- 发送方是主机,要把 IP 数据报发送到本网络上的另一个主机。这时用 ARP 找到目的主机的硬件地址
- 发送方是主机,要把 IP 数据报发送到另一个网络上的一个主机。这时用 ARP 找到本网络上的一个路由器的硬件地址。剩下的工作由这个路由器来完成
- 发送方是路由器,要把 IP 数据报转发到本网络上的一个主机。这时用 ARP 找到目的主机的硬件地址
- 发送方是路由器,要把 IP 数据报转发到另一个网络上的一个主机。这时用 ARP 找到本网络上另一个路由器的硬件地址。剩下的工作由这个路由器来完成
2.5 IP数据报的格式
2.6 IP层分组转发的流程
路由表中,每一条路由最主要的是两个信息:(目的网络地址,下一跳地址)
互联网中所有的分组转发都基于目的主机所在的网络
当路由器收到一个待转发的数据报,从路由表得出下一跳路由器的 IP地址,送交数据链路层的网络接口软件转换成硬件地址,并放在链路层的 MAC帧的首部,最后根据该硬件地址找到下一个路由器
分组转发算法
- 从数据报的首部提取目的主机的 IP 地址 D, 得出目的网络地址为 N
- 若网络 N 与此路由器直接相连,则把数据报直接交付目的主机 D;否则是间接交付,执行 (3)
- 若路由表中有目的地址为 D 的特定主机路由,则把数据报传送给路由表中所指明的下一跳路由器;否则,执行 (4)
- 若路由表中有到达网络 N 的路由,则把数据报传送给路由表指明的下一跳路由器;否则,执行 (5)
- 若路由表中有一个默认路由,则把数据报传送给路由表中所指明的默认路由器;否则,执行 (6)
- 报告转发分组出错
路由表指出,到某个网络应当先到某个路由器,到达下一跳路由器后,再继续查找其他路由表,知道再下一步应当到哪一个路由器