第四章 网络层
主要内容 网络层提供的两种服务 IP协议 划分子网和构造超网 ICMP协议 路由选择协议 网络地址转换NAT
Type of the Network Services 网络层提供的服务分为两种: 虚电路。 数据报。
虚电路服务 虚电路表示这只是一条逻辑上的连接,分组都沿着这条逻辑连接按照存储转发方式传送,而并不是真正建立了一条物理连接。 虚电路 应用层 运输层 网络层 数据链路层 物理层 应用层 运输层 网络层 数据链路层 物理层 H1 H2 虚电路 H1 发送给 H2 的所有分组都沿着同一条虚电路传送
数据报服务 应用层 运输层 网络层 数据链路层 物理层 应用层 运输层 网络层 数据链路层 物理层 IP 数据报 H1 H2 丢失
虚电路服务与数据报服务的对比 对比的方面 虚电路服务 数据报服务 思路 可靠通信应当由网络来保证 可靠通信应当由用户主机来保证 连接的建立 必须有 不需要 终点地址 仅在连接建立阶段使用,每个分组使用短的虚电路号 每个分组都有终点的完整地址 分组的转发 属于同一条虚电路的分组均按照同一路由进行转发 每个分组独立选择路由进行转发 当结点出故障时 所有通过出故障的结点的虚电路均不能工作 出故障的结点可能会丢失分组,一些路由可能会发生变化 分组的顺序 总是按发送顺序到达终点 到达终点时不一定按发送顺序 端到端的差错处理和流量控制 可以由网络负责,也可以由用户主机负责 由用户主机负责
主要内容 网络层提供的两种服务 IP协议 划分子网和构造超网 ICMP协议 路由选择协议 网络地址转换NAT 虚拟互联网 分类的IP地址 地址解析协议ARP IP数据报的格式 IP层转发分组的流程 划分子网和构造超网 ICMP协议 路由选择协议 网络地址转换NAT
Internet的本质 路由器 网络 网络 虚拟互连网络 (IP 网) 网络 网络 网络 (a) 互连网络 (b) 虚拟互连网络 8
TCP/IP网络层的主要协议 各种应用层协议 网络接口层 (TELNET, FTP, SMTP 等) 物理硬件 运输层 TCP, UDP ICMP IP RARP ARP 与各种网络接口 网际层 IGMP 9
提供了将数据包正确的由源端网络路由到目的网络的机制。 路由器的作用(1) 提供了一种将异构网进行互联的机制。 提供了将数据包正确的由源端网络路由到目的网络的机制。 如何实现了异构网的互联:路由器上有多个接口,不同的接口运行相应的异构网协议。 路由:指导IP报文发送的路径信息。需要提供一种查询机制,指导数据的发送。 10
路由器的作用(2) Ethernet X.25 IP 下层网内通信,依据下层网的通信能力。 路由器只实现IP转发。 11
典型的路由器的结构 路由选择处理机 3——网络层 2——数据链路层 1——物理层 路由 选择 分组 转发 交换结构 路由选择协议 路由表 输入端口 输出端口 1 2 3 3 2 1 分组处理 … … 转发表 分组 转发 输入端口 输出端口 1 2 3 交换结构 3 2 1
高性能路由器的外观 Cisco GSR 12416 Juniper M160 Capacity: 160Gb/s Power: 4.2kW 13
平等网络 Ethernet X.25 从路由器的角度看,路由器所连接的都是网络(即使仅有一根线),凡是能传递报文的通信系统都是网络。路由器每个接口都属于所连接的网络。 14
提供了全球统一的编址方式,屏蔽了物理网络地址的差异,使路由查找成为可能。 IP协议的基本功能(RFC 791) 提供了全球统一的编址方式,屏蔽了物理网络地址的差异,使路由查找成为可能。 提供了全球统一的报文格式,屏蔽了网络链路层差异,使网络互联成为可能。 IP尽可能的少的依赖下层提供的服务。 IP提供不可靠通信,把可靠通信责任交给上层。 IP网络是一个Best-effort的网络。 15
主要内容 网络层提供的两种服务 IP协议 划分子网和构造超网 ICMP协议 路由选择协议 网络地址转换NAT 虚拟互联网 分类的IP地址 地址解析协议ARP IP数据报的格式 IP层转发分组的流程 划分子网和构造超网 ICMP协议 路由选择协议 网络地址转换NAT
IP 地址的编址方法 分类的 IP 地址。这是最基本的编址方法,在 1981 年就通过了相应的标准协议。 子网的划分。这是对最基本的编址方法的改进,其标准[RFC 950]在 1985 年通过。 构成超网。这是比较新的无分类编址方法。1993 年提出后很快就得到推广应用。
IP 地址中的网络号字段和主机号字段 A 类地址 net-id 8 位 host-id 24 位 B 类地址 1 net-id 16 位 net-id 8 位 host-id 24 位 B 类地址 1 net-id 16 位 host-id 16 位 C 类地址 1 1 net-id 24 位 host-id 8 位 D 类地址 1 1 1 0 多 播 地 址 E 类地址 1 1 1 1 保 留 为 今 后 使 用
IP 地址中的网络号字段和主机号字段 A 类地址的网络号字段 net-id 为 1 字节 A 类地址 net-id 8 位 host-id net-id 8 位 host-id 24 位 B 类地址 1 net-id 16 位 host-id 16 位 C 类地址 1 1 net-id 24 位 host-id 8 位 A 类地址的网络号字段 net-id 为 1 字节 D 类地址 1 1 1 0 多 播 地 址 E 类地址 1 1 1 1 保 留 为 今 后 使 用
IP 地址中的网络号字段和主机号字段 B 类地址的网络号字段 net-id 为 2 字节 A 类地址 net-id 8 位 host-id net-id 8 位 host-id 24 位 B 类地址 1 net-id 16 位 host-id 16 位 C 类地址 1 1 net-id 24 位 host-id 8 位 B 类地址的网络号字段 net-id 为 2 字节 D 类地址 1 1 1 0 多 播 地 址 E 类地址 1 1 1 1 保 留 为 今 后 使 用
IP 地址中的网络号字段和主机号字段 C 类地址的网络号字段 net-id 为 3 字节 A 类地址 net-id 8 位 host-id net-id 8 位 host-id 24 位 B 类地址 1 net-id 16 位 host-id 16 位 C 类地址 1 1 net-id 24 位 host-id 8 位 C 类地址的网络号字段 net-id 为 3 字节 D 类地址 1 1 1 0 多 播 地 址 E 类地址 1 1 1 1 保 留 为 今 后 使 用
IP 地址中的网络号字段和主机号字段 A 类地址的主机号字段 host-id 为 3 字节 A 类地址 net-id 8 位 host-id net-id 8 位 host-id 24 位 B 类地址 1 net-id 16 位 host-id 16 位 C 类地址 1 1 net-id 24 bit host-id 8 位 A 类地址的主机号字段 host-id 为 3 字节 D 类地址 1 1 1 0 多 播 地 址 E 类地址 1 1 1 1 保 留 为 今 后 使 用
IP 地址中的网络号字段和主机号字段 B 类地址的主机号字段 host-id 为 2 字节 A 类地址 net-id 8 位 host-id net-id 8 位 host-id 24 位 B 类地址 1 net-id 16 位 host-id 16 位 C 类地址 1 1 net-id 24 位 host-id 8 位 B 类地址的主机号字段 host-id 为 2 字节 D 类地址 1 1 1 0 多 播 地 址 E 类地址 1 1 1 1 保 留 为 今 后 使 用
IP 地址中的网络号字段和主机号字段 C 类地址的主机号字段 host-id 为 1 字节 A 类地址 net-id 8 位 host-id net-id 8 位 host-id 24 位 B 类地址 1 net-id 16 位 host-id 16 位 C 类地址 1 1 net-id 24 位 host-id 8 位 C 类地址的主机号字段 host-id 为 1 字节 D 类地址 1 1 1 0 多 播 地 址 E 类地址 1 1 1 1 保 留 为 今 后 使 用
IP 地址中的网络号字段和主机号字段 D 类地址是多播地址 A 类地址 net-id 8 位 host-id 24 位 B 类地址 1 net-id 8 位 host-id 24 位 B 类地址 1 net-id 16 bit D 类地址是多播地址 host-id 16 位 C 类地址 1 1 net-id 24 位 host-id 8 位 D 类地址 1 1 1 0 多 播 地 址 E 类地址 1 1 1 1 保 留 为 今 后 使 用
IP 地址中的网络号字段和主机号字段 E 类地址保留为今后使用 A 类地址 net-id 8 位 host-id 24 位 B 类地址 1 net-id 8 位 host-id 24 位 B 类地址 1 net-id 16 bit E 类地址保留为今后使用 host-id 16 位 C 类地址 1 1 net-id 24 位 host-id 8 位 D 类地址 1 1 1 0 多 播 地 址 E 类地址 1 1 1 1 保 留 为 今 后 使 用
点分十进制记法 10000000000010110000001100011111 机器中存放的 IP 地址 是 32 位 二进制代码 10000000 00001011 00000011 00011111 每隔 8 位插入一个空格 能够提高可读性 将每 8 位的二进制数 转换为十进制数 128 11 3 31 采用点分十进制记法 则进一步提高可读性 128.11.3.31 课件制作人:谢希仁 27
几类特殊的IP地址 表示本机,在系统启动时可以作为源地址,不能作为目的地址。 表示在本网内广播,不能作为源地址。 表示向本网内广播,不能作为源地址。其实这个地址表示向整个互联网广播,但是路由器往往不转发广播包。 表示一个网络,不能作为源地址,也不能作为目的地址。 表示向指定网络广播,但是并不是所有的路由器都支持。不能作为源地址。 表示本网内某主机,不能作为目的地址。 表示loopback地址,用作软件测试,将不会出现在Internet上。 其余的组合都是非法的地址。 “0”表示本,“1”表示广播。 28
编址规则 互连网的结构:若干子网经路由互连起来的网状结构。 子网的编址 主机的编址:所有要进行IP通信的站点,都应分配唯一主机号 每个子网分配一个唯一的网络号。 该子网也可称为一个IP网络。 主机的编址:所有要进行IP通信的站点,都应分配唯一主机号 对路由器的编址:路由器也是该网络的一个站点(需分配主机号)。 一个IP网络:我们可以认为用路由器连接的是一个IP网络,也可以认为,如果两个网络分配的IP地址的网络号部分不同,也是一个不同的IP网络。 29
图中的网络号就是 IP 地址中的 net-id 在同一个局域网上的主机或路由器的 IP 地址中的网络号必须是一样的。 图中的网络号就是 IP 地址中的 net-id 222.1.1.1 222.1.1.2 222.1.1.3 LAN1 222.1.1. 222.1.1.4 R1 LAN3 222.1.5.1 222.1.6.1 222.1.3.3 222.1.3. 222.1.2.1 N3 222.1.6. LAN2 222.1.2. N2 222.1.5. 222.1.5.2 222.1.6.2 222.1.3.1 R3 N1 222.1.4. R2 222.1.2.5 222.1.2.2 222.1.3.2 222.1.4.2 222.1.4.1 B 222.1.2.4 222.1.2.3 互联网
图中的网络号就是 IP 地址中的 net-id 在同一个局域网上的主机或路由器的 IP 地址中的网络号必须是一样的。 图中的网络号就是 IP 地址中的 net-id 222.1.1.1 222.1.1.2 222.1.1.3 LAN1 222.1.1. 222.1.1.4 R1 LAN3 222.1.5.1 222.1.6.1 222.1.3.3 222.1.3. 222.1.2.1 N3 222.1.6. LAN2 222.1.2. N2 222.1.5. 222.1.5.2 222.1.6.2 222.1.3.1 R3 N1 222.1.4. R2 222.1.2.5 222.1.2.2 222.1.3.2 222.1.4.2 222.1.4.1 B 222.1.2.4 222.1.2.3 互联网
图中的网络号就是 IP 地址中的 net-id 222.1.1.1 222.1.1.2 222.1.1.3 LAN1 222.1.1. 222.1.1.4 R1 LAN3 222.1.5.1 在同一个局域网上的主机或路由器的 IP 地址中的网络号必须是一样的。 图中的网络号就是 IP 地址中的 net-id 222.1.6.1 222.1.3.3 222.1.3. 222.1.2.1 N3 222.1.6. LAN2 222.1.2. N2 222.1.5. 222.1.5.2 222.1.6.2 222.1.3.1 R3 N1 222.1.4. R2 222.1.2.5 222.1.2.2 222.1.3.2 222.1.4.2 222.1.4.1 B 222.1.2.4 222.1.2.3 互联网
图中的网络号就是 IP 地址中的 net-id 在同一个局域网上的主机或路由器的 IP 地址中的网络号必须是一样的。 图中的网络号就是 IP 地址中的 net-id 222.1.1.1 222.1.1.2 222.1.1.3 LAN1 222.1.1. 222.1.1.4 R1 LAN3 222.1.5.1 222.1.6.1 222.1.3.3 222.1.3. 222.1.2.1 N3 222.1.6. LAN2 222.1.2. N2 222.1.5. 222.1.5.2 222.1.6.2 222.1.3.1 R3 N1 222.1.4. R2 222.1.2.5 222.1.2.2 222.1.3.2 222.1.4.2 222.1.4.1 B 222.1.2.4 222.1.2.3 互联网
路由器总是具有两个或两个以上的 IP 地址。 路由器的每一个接口都有一个 不同网络号的 IP 地址。 222.1.1.1 222.1.1.2 222.1.1.3 LAN1 222.1.1. 222.1.1.4 R1 LAN3 222.1.5.1 222.1.6.1 222.1.3.3 222.1.3. 222.1.2.1 N3 222.1.6. LAN2 222.1.2. N2 222.1.5. 222.1.5.2 222.1.6.2 222.1.3.1 R3 N1 222.1.4. R2 222.1.2.5 222.1.2.2 222.1.3.2 222.1.4.2 222.1.4.1 B 222.1.2.4 222.1.2.3 互联网
路由器总是具有两个或两个以上的 IP 地址。 路由器的每一个接口都有一个 不同网络号的 IP 地址。 222.1.1.1 222.1.1.2 222.1.1.3 LAN1 222.1.1. 222.1.1.4 R1 LAN3 222.1.5.1 222.1.6.1 222.1.3.3 222.1.3. 222.1.2.1 N3 222.1.6. LAN2 222.1.2. N2 222.1.5. 222.1.5.2 222.1.6.2 222.1.3.1 R3 N1 222.1.4. R2 222.1.2.5 222.1.2.2 222.1.3.2 222.1.4.2 222.1.4.1 B 222.1.2.4 222.1.2.3 互联网
路由器总是具有两个或两个以上的 IP 地址。 路由器的每一个接口都有一个 不同网络号的 IP 地址。 222.1.1.1 222.1.1.2 222.1.1.3 LAN1 222.1.1. 222.1.1.4 R1 LAN3 222.1.5.1 222.1.6.1 222.1.3.3 222.1.3. 222.1.2.1 N3 222.1.6. LAN2 222.1.2. N2 222.1.5. 222.1.5.2 222.1.6.2 222.1.3.1 R3 N1 222.1.4. R2 222.1.2.5 222.1.2.2 222.1.3.2 222.1.4.2 222.1.4.1 B 222.1.2.4 222.1.2.3 互联网
互联网中的 IP 地址 两个路由器直接相连的接口处,可指明也可不指明 IP 地址。如指明 IP 地址,则这一段连线就构成了一种只包含一段线路的特殊“网络” 。现在常不指明 IP 地址。 222.1.1.1 222.1.1.2 222.1.1.3 LAN1 222.1.1. 222.1.1.4 R1 LAN3 222.1.5.1 222.1.6.1 222.1.3.3 222.1.3. 222.1.2.1 N3 222.1.6. LAN2 222.1.2. N2 222.1.5. 222.1.5.2 222.1.6.2 222.1.3.1 R3 N1 222.1.4. R2 222.1.2.5 222.1.2.2 222.1.3.2 222.1.4.2 222.1.4.1 B 222.1.2.4 222.1.2.3 互联网
例 38
IP地址特点 IP地址是有层次结构的。同时也是一种非等级的地址结构。 IP地址不能反映主机的地理位置。 IP地址分配对象是机构、组织等地理上的虚拟实体。 当一个设备同时连接到两个以上的网络时,该设备就必须同时具有两个以上的相应的IP地址。 IP地址的本质是“并非标识主机,而是标示主机的物理连接。”
练习 试画出IP地址为8.0.0.0的网络,它通过路由器连接到IP地址为131.45.0.0的网络。试选择路由器的每一个接口的IP地址。在每一个网络上还要画出3个主机并标出它的IP地址。每个网络是什么类? IP地址为108.67.18.70的主机发送受限广播分组给该网络上的所有主机。在这个分组中使用什么源IP地址和目的IP地址?
练习 1. 试把IP地址114.34.2.8从点分十进制记法转换为二进制记法。 2.试把IP地址01111111,11110000,01100111,011111101从二进制记法转换为点分十进制记法。 3. IP地址为128.23.67.3的主机给IP地址为128.45.23.7的主机发送报文。试问这个报文要经过任何路由器吗?
主要内容 网络层提供的两种服务 IP协议 划分子网和构造超网 ICMP协议 路由选择协议 网络地址转换NAT 虚拟互联网 分类的IP地址 地址解析协议ARP IP数据报的格式 IP层转发分组的流程 划分子网和构造超网 ICMP协议 路由选择协议 网络地址转换NAT
IP 地址与硬件地址 首部 应用层数据 网络层及以上 使用 IP 地址 IP 地址 TCP 报文 首部 链路层及以下 使用硬件地址 硬件地址 尾部 MAC 帧
查找路由表 查找路由表 通信的路径 H1→经过 R1 转发→再经过 R2 转发→H2 主机 H1 主机 H2 IP1 硬件地址 IP2 HA1 HA3 HA4 HA5 HA6 HA2 局域网 局域网 局域网 通信的路径 H1→经过 R1 转发→再经过 R2 转发→H2
从协议栈的层次上看数据的流动 IP 层上的互联网 主机 H1 主机 H2 IP1 硬件地址 IP2 路由器 R1 路由器 R2 HA1 局域网 局域网 局域网 主机 H1 主机 H2 IP 数据报 路由器 R1 路由器 R2 IP1 → IP2 IP1 → IP2 IP1 → IP2 IP1 IP2 IP3 IP4 IP5 IP6 IP 层上的互联网 HA1 HA3 HA4 HA5 HA6 HA2 从 HA1 到 HA3 从 HA4 到 HA5 从 HA6 到 HA2 MAC 帧 MAC 帧 MAC 帧
从虚拟的 IP 层上看 IP 数据报的流动 IP 层上的互联网 主机 H1 主机 H2 IP1 硬件地址 IP2 路由器 R1 路由器 R2 HA1 HA3 HA4 HA5 HA6 HA2 局域网 局域网 局域网 主机 H1 主机 H2 IP 数据报 路由器 R1 路由器 R2 IP1 → IP2 IP1 → IP2 IP1 → IP2 IP1 IP2 IP3 IP4 IP5 IP6 IP 层上的互联网 HA1 HA3 HA4 HA5 HA6 HA2 从 HA1 到 HA3 从 HA4 到 HA5 从 HA6 到 HA2 MAC 帧 MAC 帧 MAC 帧
在链路上看 MAC 帧的流动 IP 层上的互联网 主机 H1 主机 H2 IP1 硬件地址 IP2 路由器 R1 路由器 R2 HA1 局域网 局域网 局域网 主机 H1 主机 H2 IP 数据报 路由器 R1 路由器 R2 IP1 → IP2 IP1 → IP2 IP1 → IP2 IP1 IP2 IP3 IP4 IP5 IP6 IP 层上的互联网 HA1 HA3 HA4 HA5 HA6 HA2 从 HA1 到 HA3 从 HA4 到 HA5 从 HA6 到 HA2 MAC 帧 MAC 帧 MAC 帧
在 IP 层抽象的互联网上只能看到 IP 数据报 图中的 IP1→IP2 表示从源地址 IP1 到目的地址 IP2 主机 H1 主机 H2 IP 数据报 路由器 R1 路由器 R2 IP1 → IP2 IP1 IP2 IP3 IP4 IP5 IP6 IP 层上的互联网 HA1 HA3 HA4 HA5 HA6 HA2 从 HA1 到 HA3 从 HA4 到 HA5 从 HA6 到 HA2 MAC 帧 MAC 帧 MAC 帧
路由器只根据目的站的 IP 地址的网络号进行路由选择 主机 H1 主机 H2 IP 数据报 路由器 R1 路由器 R2 IP1 → IP2 IP1 → IP2 IP1 → IP2 IP1 IP2 IP3 IP4 IP5 IP6 IP 层上的互联网 HA1 HA3 HA4 HA5 HA6 HA2 从 HA1 到 HA3 从 HA4 到 HA5 从 HA6 到 HA2 MAC 帧 MAC 帧 MAC 帧
在具体的物理网络的链路层 只能看见 MAC 帧而看不见 IP 数据报 IP 层上的互联网 主机 H1 主机 H2 IP 数据报 路由器 R1 HA1 HA3 HA4 HA5 HA6 HA2 MAC 帧 从 HA1 到 HA3 从 HA4 到 HA5 从 HA6 到 HA2
IP层抽象的互联网屏蔽了下层很复杂的细节 在抽象的网络层上讨论问题,就能够使用 统一的、抽象的 IP 地址 研究主机和主机或主机和路由器之间的通信 主机 H1 主机 H2 IP 数据报 路由器 R1 路由器 R2 IP1 → IP2 IP1 → IP2 IP1 → IP2 IP1 IP2 IP3 IP4 IP5 IP6 IP 层上的互联网 HA1 HA3 HA4 HA5 HA6 HA2 MAC 帧 从 HA1 到 HA3 从 HA4 到 HA5 从 HA6 到 HA2
主要内容 网络层提供的两种服务 IP协议 划分子网和构造超网 ICMP协议 路由选择协议 网络地址转换NAT 虚拟互联网 分类的IP地址 地址解析协议ARP IP数据报的格式 IP层转发分组的流程 划分子网和构造超网 ICMP协议 路由选择协议 网络地址转换NAT
地址解析协议ARP ARP 物理地址 IP 地址 RARP 物理地址 IP 地址
主机 A 广播发送 ARP 请求分组 主机 B 向 A 发送 ARP 响应分组 我是 209.0.0.5,硬件地址是 00-00-C0-15-AD-18 我想知道主机 209.0.0.6 的硬件地址 ARP 请求 ARP 请求 ARP 请求 ARP 请求 209.0.0.6 209.0.0.5 X Y Z A B 00-00-C0-15-AD-18 主机 B 向 A 发送 ARP 响应分组 我是 209.0.0.6 硬件地址是 08-00-2B-00-EE-0A ARP 响应 209.0.0.6 209.0.0.5 X Y Z A B 00-00-C0-15-AD-18 08-00-2B-00-EE-0A 54
使用 ARP 的四种典型情况 发送方是主机,要把IP数据报发送到本网络上的另一个主机。这时用 ARP 找到目的主机的硬件地址。
ARP的注意事项 ARP 是解决同一个局域网上的主机或路由器的 IP 地址和硬件地址的映射问题 只要主机或路由器要和本网络上的另一个已知 IP 地址的主机或路由器进行通信,ARP 协议就会自动地将该 IP 地址解析为链路层所需要的硬件地址
什么我们不直接使用硬件地址进行通信? 由于全世界存在着各式各样的网络,它们使用不同的硬件地址。要使这些异构网络能够互相通信就必须进行非常复杂的硬件地址转换工作,因此几乎是不可能的事。 连接到因特网的主机都拥有统一的 IP 地址,它们之间的通信就像连接在同一个网络上那样简单方便,因为调用 ARP 来寻找某个路由器或主机的硬件地址都是由计算机软件自动进行的,对用户来说是看不见这种调用过程的。
最基本的互联网服务由一个分组交付系统组成,它是所有其他服务的基础。 IP协议定义了: Internet的结构和思想 应用服务 可靠的数据传输服务 最基本的互联网服务由一个分组交付系统组成,它是所有其他服务的基础。 IP协议定义了: IP地址规范 IP数据报格式 IP分组交付 无连接,不可靠的分组交付服务 虚拟互连网络
主要内容 网络层提供的两种服务 IP协议 划分子网和构造超网 ICMP协议 路由选择协议 网络地址转换NAT 虚拟互联网 分类的IP地址 地址解析协议ARP IP数据报的格式 IP层转发分组的流程 划分子网和构造超网 ICMP协议 路由选择协议 网络地址转换NAT
首部的前一部分是固定长度,共20字节,是所有IP数据报必须具有的。 在首部的固定部分的后面是一些可选字段,其长度是可变的。
位 4 8 16 19 24 31 首 部 版 本 首部长度 区 分 服 务 总 长 度 固 定 部 分 标 识 标志 片 偏 移 生 存 时 间 协 议 首 部 检 验 和 源 地 址 目 的 地 址 可变 部分 可 选 字 段 (长 度 可 变) 填 充 数 据 部 分 首 部 数 据 部 分 发送在前 IP 数据报
位 4 8 16 19 24 31 固 定 部 分 版 本 首部长度 区 分 服 务 总 长 度 标 识 标志 片 偏 移 首 部 生 存 时 间 协 议 首 部 检 验 和 源 地 址 目 的 地 址 可变 部分 可 选 字 段 (长 度 可 变) 填 充 数 据 部 分 首 部 数 据 部 分 发送在前 IP 数据报
位 4 8 16 19 24 31 版 本 首部长度 区 分 服 务 总 长 度 固 定 部 分 标 识 标志 片 偏 移 首 部 生 存 时 间 协 议 首 部 检 验 和 源 地 址 目 的 地 址 可变 部分 可 选 字 段 (长 度 可 变) 填 充 数 据 部 分 首 部 数 据 部 分 发送在前 IP 数据报
1. IP 数据报首部的固定部分中的各字段 版本——占 4 位,指 IP 协议的版本 目前的 IP 协议版本号为 4 (即 IPv4) 位 4 8 16 19 24 31 版本——占 4 位,指 IP 协议的版本 目前的 IP 协议版本号为 4 (即 IPv4) 版 本 首部长度 区 分 服 务 总 长 度 固 定 部 分 标 识 标志 片 偏 移 首 部 生 存 时 间 协 议 首 部 检 验 和 源 地 址 目 的 地 址 可变 部分 可 选 字 段 (长 度 可 变) 填 充 数 据 部 分
首部长度——占 4 位,可表示的最大数值 是 15 个单位(一个单位为 4 字节) 因此 IP 的首部长度的最大值是 60 字节。 位 4 4 8 16 19 24 31 版 本 首部长度——占 4 位,可表示的最大数值 是 15 个单位(一个单位为 4 字节) 因此 IP 的首部长度的最大值是 60 字节。 首部长度 区 分 服 务 总 长 度 固 定 部 分 标 识 标志 片 偏 移 首 部 生 存 时 间 协 议 首 部 检 验 和 源 地 址 目 的 地 址 可变 部分 可 选 字 段 (长 度 可 变) 填 充 数 据 部 分
在旧标准中叫做服务类型,但实际上一直未被使用过。 1998 年这个字段改名为区分服务。 位 4 8 16 19 24 31 区分服务——占 8 位,用来获得更好的服务 在旧标准中叫做服务类型,但实际上一直未被使用过。 1998 年这个字段改名为区分服务。 只有在使用区分服务(DiffServ)时,这个字段才起作用。 在一般的情况下都不使用这个字段 版 本 首部长度 区 分 服 务 总 长 度 固 定 部 分 标 识 标志 片 偏 移 首 部 生 存 时 间 协 议 首 部 检 验 和 源 地 址 目 的 地 址 可变 部分 可 选 字 段 (长 度 可 变) 填 充 数 据 部 分
总长度——占 16 位,指首部和数据之和的长度, 单位为字节,因此数据报的最大长度为 65535 字节。 4 8 16 19 24 31 总长度——占 16 位,指首部和数据之和的长度, 单位为字节,因此数据报的最大长度为 65535 字节。 总长度必须不超过最大传送单元 MTU。 版 本 首部长度 区 分 服 务 总 长 度 固 定 部 分 标 识 标志 片 偏 移 首 部 生 存 时 间 协 议 首 部 检 验 和 源 地 址 目 的 地 址 可变 部分 可 选 字 段 (长 度 可 变) 填 充 数 据 部 分
标识(identification) 占 16 位, 4 8 16 19 24 31 版 本 首部长度 区 分 服 务 总 长 度 固 定 部 分 标识(identification) 占 16 位, 它是一个计数器,用来产生数据报的标识。 标 识 标志 片 偏 移 首 部 生 存 时 间 协 议 首 部 检 验 和 源 地 址 目 的 地 址 可变 部分 可 选 字 段 (长 度 可 变) 填 充 数 据 部 分
标志(flag) 占 3 位,目前只有前两位有意义。 标志字段的最低位是 MF (More Fragment)。 4 8 16 19 24 31 版 本 首部长度 区 分 服 务 总 长 度 固 定 部 分 标 识 标志 片 偏 移 首 部 生 存 时 间 协 议 首 部 检 验 和 源 地 址 目 的 地 址 可变 部分 可 选 字 段 (长 度 可 变) 填 充 数 据 部 分 标志(flag) 占 3 位,目前只有前两位有意义。 标志字段的最低位是 MF (More Fragment)。 MF 1 表示后面“还有分片”。MF 0 表示最后一个分片。 标志字段中间的一位是 DF (Don't Fragment) 。 只有当 DF 0 时才允许分片。
片偏移(12 位)指出:较长的分组在分片后 某片在原分组中的相对位置。 片偏移以 8 个字节为偏移单位。 位 4 8 16 19 24 31 4 8 16 19 24 31 版 本 首部长度 区 分 服 务 总 长 度 固 定 部 分 片偏移(12 位)指出:较长的分组在分片后 某片在原分组中的相对位置。 片偏移以 8 个字节为偏移单位。 标 识 标志 片 偏 移 首 部 生 存 时 间 协 议 首 部 检 验 和 源 地 址 目 的 地 址 可变 部分 可 选 字 段 (长 度 可 变) 填 充 数 据 部 分
【例4-1】 IP 数据报分片 数据部分共 3800 字节 需分片的 数据报 偏移 = 0/8 = 0 首部 字节 0 1400 2800 3799 首部 1 首部 2 首部 3 字节 0 1399 1400 2799 2800 3799 数据报片 1 数据报片 2 数据报片 3 偏移 = 0/8 = 0 偏移 = 1400/8 = 175 偏移 = 2800/8 = 350
生存时间(8 位)记为 TTL (Time To Live) 数据报在网络中可通过的路由器数的最大值。 4 8 16 19 24 31 版 本 首部长度 区 分 服 务 总 长 度 固 定 部 分 标 识 标志 片 偏 移 首 部 生 存 时 间 协 议 首 部 检 验 和 源 地 址 目 的 地 址 可变 部分 可 选 字 段 (长 度 可 变) 填 充 数 据 部 分 生存时间(8 位)记为 TTL (Time To Live) 数据报在网络中可通过的路由器数的最大值。
协议(8 位)字段指出此数据报携带的数据使用何种协议 以便目的主机的 IP 层将数据部分上交给哪个处理过程 4 8 16 19 24 31 版 本 首部长度 区 分 服 务 总 长 度 固 定 部 分 标 识 标志 片 偏 移 首 部 协议(8 位)字段指出此数据报携带的数据使用何种协议 以便目的主机的 IP 层将数据部分上交给哪个处理过程 生 存 时 间 协 议 首 部 检 验 和 源 地 址 目 的 地 址 可变 部分 可 选 字 段 (长 度 可 变) 填 充 数 据 部 分
运输层 TCP UDP ICMP IGMP OSPF 网络层 首部 数 据 部 分 协议字段指出应将数据 部分交给哪一个进程 IP 数据报
这里不采用 CRC 检验码而采用简单的计算方法。 位 4 8 16 19 24 31 版 本 首部长度 区 分 服 务 总 长 度 固 定 部 分 标 识 标志 片 偏 移 首 部 首部检验和(16 位)字段只检验数据报的首部 不检验数据部分。 这里不采用 CRC 检验码而采用简单的计算方法。 生 存 时 间 协 议 首 部 检 验 和 源 地 址 目 的 地 址 可变 部分 可 选 字 段 (长 度 可 变) 填 充 数 据 部 分
发送端 接收端 字 1 字 1 16 位 16 位 数 据 报 首 部 字 2 字 2 16 位 16 位 … … 置为全 0 检验和 16 位 检验和 … … 字 n 字 n 16 位 16 位 16 位 反码算术 运算求和 16 位 反码算术 运算求和 取反码 IP 数据报 取反码 16 位 检验和 16 位 结果 若结果为 0, 则保留; 否则,丢弃该数据报 数据部分 不参与检验和的计算 数据部分
练习 设IP数据报使用固定首部,其各字段的具体数值如图所示(除IP地址外,均为十进制表示)。试用二进制运算方法计算应当写入到首部检验和字段中的数值(用二进制表示)。 位 4 8 16 19 24 31 4 5 28 固 定 部 分 1 首 部 4 17 首 部 检 验 和(待计算后填入) 10.12.14.5 12.6.7.9 可变 部分 可 选 字 段 (长 度 可 变) 填 充 数 据 部 分
解答: 1000101 00000000 00000000-00011100 00000000 00000001 00000000-00000000 00000100 00010001 xxxxxxxx xxxxxxxx 00001010 00001100 00001110 00000101 00001100 00000110 00000111 00001001作二进制检验和(XOR) 01110100 01001110取反码 10001011 10110001
源地址和目的地址都各占 4 字节 位 4 8 16 19 24 31 版 本 首部长度 区 分 服 务 总 长 度 固 定 部 分 标 识 4 8 16 19 24 31 版 本 首部长度 区 分 服 务 总 长 度 固 定 部 分 标 识 标志 片 偏 移 首 部 生 存 时 间 协 议 首 部 检 验 和 源地址和目的地址都各占 4 字节 源 地 址 目 的 地 址 可变 部分 可 选 字 段 (长 度 可 变) 填 充 数 据 部 分
练习 一个3200 位长的TCP 报文传到IP 层,加上160 位的首部后成为数据报。下面的互联网由两个局域网通过路由器连接起来。但第二个局域网所能传送的最长数据帧中的数据部分只有1200 位。因此数据报在路由器必须进行分片。试问第二个局域网向其上层要传送多少比特的数据(这里的“数据”当然指的是局域网看见的数据)? 解答: 第二个局域网所能传送的最长数据帧中的数据部分只有1200bit,即每个IP数据片的数据部分<1200-160(bit),由于片偏移是以8字节即64bit为单位的,所以IP数据片的数据部分最大不超过1024bit,这样3200bit的报文要分4个数据片,所以第二个局域网向上传送的比特数等于(3200+4×160),共3840bit
练习 一具数据报长度为4000 字节(固定首部长度)。现在经过一个网络传送,但此网络能够传送的最大数据长度为1500 字节。试问应当划分为几个短些的数据报片?各数据报片的数据字段长度、片偏移字段和MF 标志应为何数值? 答: IP数据报固定首部长度为20字节,长度为4000字节的数据报中数据为4000-20=3980字节。 MTU = 1500 = 首部长度+数据长度 = 20+1480 将原始数据报中的数据3980字节 = 1480 + 1480 + 1020 (共三段)
结果: 总长度 (字节) 数据长度 MF 片偏移 原始数据报 4000 3980 数据报片1 1500 1480 1 数据报片2 185 数据报片1 1500 1480 1 数据报片2 185 数据报片3 1040 1020 370
主要内容 网络层提供的两种服务 IP协议 划分子网和构造超网 ICMP协议 路由选择协议 网络地址转换NAT 虚拟互联网 分类的IP地址 地址解析协议ARP IP数据报的格式 IP层转发分组的流程 划分子网和构造超网 ICMP协议 路由选择协议 网络地址转换NAT
IP协议路由方法 IP协议是一个可路由协议(Routed Protocol)。 最终数据到达目的地需要用到底层物理网络的传输系统。 在主机和路由器中都存在路由表。用于指导数据包路由。这是所有交换设备的共性。
主机路由表 85
路由器路由表 Quidway#show ip route Routing Tables: Destination/mask proto pref Metric Nexthop Interface 0.0.0.0/0 Static 60 0 120.0.0.2 Serial0 8.0.0.0/8 RIP 100 3 120.0.0.2 Serial0 9.0.0.0/8 OSPF 10 50 20.0.0.2 Ethernet0 9.1.0.0/16 RIP 100 4 120.0.0.2 Serial0 11.0.0.0/8 Static 60 0 120.0.0.2 Serial0 20.0.0.0/8 Direct 0 0 20.0.0.1 Ethernet0 20.0.0.1/32 Direct 0 0 127.0.0.1 LookBack0 路由表的格式在不同的平台上可能有些不同,但是都大同小异。 每一个表项由若干列组成,含义后面我们会解释。这里注意每一个表项Nexthop和Interface是缺一不可的。 0.0.0.0/0表项是一个特殊的表项。 Computer Networks 第5- 86页 Copyright © 2002-2006 GONGJIE All rights reserved 86
直接转发和间接转发 直接交付不需要使用路由器 但间接交付就必须使用路由器 C A 直接交付 间接交付 间接交付 间接交付 直接交付 B 转发结点与目的结点在同一个物理网络中 转发中间不需要经过其他路由器 分组封装在物理帧中,直接传送到目的结点 直接交付不需要使用路由器 但间接交付就必须使用路由器 87
查找路由表 C A 直接交付 间接交付 间接交付 间接交付 直接交付 B 根据目的网络地址就能确定下一跳路由器,这样做的结果是: IP 数据报最终一定可以找到目的主机所在目的网络上的路由器(可能要通过多次的间接交付)。 只有到达最后一个路由器时,才试图向目的主机进行直接交付。 转发结点与目的结点在同一个物理网络中 转发中间不需要经过其他路由器 分组封装在物理帧中,直接传送到目的结点 88
路由表的结构 10.0.0.4 20.0.0.7 20.0.0.9 30.0.0.2 30.0.0.1 40.0.0.4 R1 R2 R3 网 1 10.0.0.0 网 2 20.0.0.0 网 3 30.0.0.0 网 4 40.0.0.0 1 路由器 R2 的路由表 设计路由表的一个主要考虑点是如何缩小路由表。 选路:是对目的网络的选路,需要使用目的地址中的网络部分 只需维护目的网络的信息,而与单个主机无关 对主机的选路:由最后一跳路由器通过直接转发实现 路由表:由一系列的(N,R)二元组构成的二维表 路由表的规模和内容取决于互连网中网络的数量,与主机数量无关 在路由表中仅表示出目的地址和掩码,与原地址无关。 在路由表中仅表示出下一跳,而没有表示出后续路径。 在路由表中,不可缺少的是目的地,下一跳和Interface,其余的都是辅助功能。 基本的路由算法:主机或路由器取得了目的IP地址,提出目的网络号,然后在路由表中查找与之匹配(match)的目的地址,找到则转发到相应地下一跳,否则,丢弃数据包。 目的主机所在的网络 下一跳路由器的地址 20.0.0.0 直接交付,接口 0 30.0.0.0 直接交付,接口 1 10.0.0.0 20.0.0.7,接口0 40.0.0.0 30.0.0.1,接口1 89
默认路由 Intranet R Internet A 使用一条指向 R 的默认路由路径来访问 Internet 默认路由选路(default routing) 在选路时,若未能在路由表中搜索到与目的地址相匹配的表项,那么 IP 协议可以采用一条预定义的默认路由,将分组转发到一个默认的下一跳路由器上; 默认路由用来进一步减少路由表的规模。 90
默认路由(default route) 路由器还可采用默认路由以减少路由表所占用的空间和搜索路由表所用的时间。 这种转发方式在一个网络只有很少的对外连接时是很有用的。 默认路由在主机发送 IP 数据报时往往更能显示出它的好处。 如果一个主机连接在一个小网络上,而这个网络只用一个路由器和因特网连接,那么在这种情况下使用默认路由是非常合适的。
只要目的网络不是 N1 和 N2, 就一律选择默认路由, 把数据报先间接交付路由器 R1, 路由表 R2 目的网络 下一跳 N1 直接 N2 R2 默认 R1 R1 N1 因特网
特定主机路由 特定主机路由选路(host-specific routing) 路由表表项是基于网络地址的(而不是基于主机地址)。 但是,为了某些特殊的目的(如管理或维护等), IP 协议也允许在路由表中使用主机地址作为表项,为特定主机指定特定的路由通路,也就是特定主机路由。 93
必须强调指出 IP 数据报的首部中没有地方可以用来指明“下一跳路由器的 IP 地址”。 当路由器收到待转发的数据报,不是将下一跳路由器的 IP 地址填入 IP 数据报,而是送交下层的网络接口软件。 网络接口软件使用 ARP 负责将下一跳路由器的 IP 地址转换成硬件地址,并将此硬件地址放在链路层的 MAC 帧的首部,然后根据这个硬件地址找到下一跳路由器。
分组转发算法 (1) 从数据报的首部提取目的主机的 IP 地址 D, 得出目的网络地址为 N。 (2) 若网络 N 与此路由器直接相连,则把数据报直接交付目的主机 D;否则是间接交付,执行(3)。 (3) 若路由表中有目的地址为 D 的特定主机路由,则把数据报传送给路由表中所指明的下一跳路由器;否则,执行(4)。 (4) 若路由表中有到达网络 N 的路由,则把数据报传送给路由表指明的下一跳路由器;否则,执行(5)。 (5) 若路由表中有一个默认路由,则把数据报传送给路由表中所指明的默认路由器;否则,执行(6)。 (6) 报告转发分组出错。
练习 主机A 发送IP 数据报给主机B,途中经过了5 个路由器。试问在IP 数据报的发送过程总共使用几次ARP? 解:前提,理论上当前主机路由器arp 表中都没有下一跳路由器MAC 共需6 次,主机A 先通过arp 得到第一个路由器的MAC,之后每一个路由器转发前都通过ARP得到下一跳路由器的MAC,最后一条路由器将IP 包发给B 前仍要通过ARP 得到B 的MAC,共6 次。
主要内容 网络层提供的两种服务 IP协议 划分子网和构造超网 ICMP协议 路由选择协议 网络地址转换NAT
便于管理:在A类或B类网络中将如此大量的主机处于一个IP网络中有许多问题存在。 子网掩码 便于管理:在A类或B类网络中将如此大量的主机处于一个IP网络中有许多问题存在。 节约地址:在A类或B类网络中基本不会出现主机使用完所有的地址的情况。也就是说有剩余的地址,但是这些地址也不能让别的主机使用。 缩小路由表。 使用掩码后,可以将原来的一个A,B,C类地址划分为若干小的网络,但是在网络的外部仍然认为是一个网络。这种技术我们认为是子网划分。 使用掩码后,同样可以把原来的若干个网络聚合成一个大的网络,但是在网络的外部认为是一个网络。这种技术我们认为是超网聚合。 引入掩码后,原来的A,B,C类网络的概念不存在了,这个观点大家一定要注意。 98
子网划分 141.14.2.21 141.14.2.105 141.14.2.20 141.14.7.45 141.14.7.44 141.14.2.0 Network 141.14.0.0 Subnetwork 141.14.7.0 Subnetwork Subnetwork 141.14.22.0 原来的9台主机位于141.14.0.0这个网络内,但是如果我们采用子网划分以后,9台主机位于不同的IP网络内。 141.14.7.96 141.14.22.8 Net 141.14.0.0 141.14.22.9 141.14.22.64 99
划分子网掩码的基本思路 划分子网纯属一个单位内部的事情。单位对外仍然表现为没有划分子网的网络。 从主机号借用若干个比特作为子网号 subnet-id,而主机号 host-id 也就相应 减少了若干个比特。 IP地址 ::= {<网络号>, <子网号>, <主机号>}
为了实现对子网的支持,我们引入了子网掩码的概念。 我们将原始的一个IP网络划分为多个IP子网,各个IP子网也是一个IP网络。 子网划分是把原来的一个大网划分为了许多小网。 这时一个IP地址分成了3个部分,网络号,子网号,主机号,其实我们也可以将网络号,子网号统称为网络号。 子网掩码采用和IP地址一样的格式也是采用32bits的数。其中掩码中的“1”表示与之对应的IP地址的相应的位表示网络号。掩码中的“0”表示与之对应的IP地址的相应的位表示主机号。其中“1”的位置连续。 我们用IP/Mask的方式表示IP地址和所对应的掩码,如210.41.240.23/24,表示210.41.240.23所对应的掩码有24个连续的“1”,也就是掩码为255.255.255.0。注意:这种表示方法是一种通用的表示方法。 这时我们判断两个IP地址(也就是两台主机)是否在一个IP网络内,除了看他们是否在一个网络内,也要看他们是否在一个子网内。也就是看在有子网掩码的情况下,两个IP地址的网络号是否相同。 101
IP 地址的各字段和子网掩码 net-id host-id 两级 IP 地址 145 . 13 . 3 . 10 net-id 145 . 13 . 3 . 10 net-id subnet-id host-id 三级 IP 地址 145 . 13 . 3 . 10 主机号 子网号为 3 的网络的网络号 子网掩码 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 子网的 网络地址 145 . 13 . 3
(IP 地址) AND (子网掩码) = 网络地址 网络号 net-id 主机号 host-id 三级 IP 地址 net-id host-id subnet-id 逐位进行 AND 运算 网络号 子网号 主机号 子网掩码 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 子网的 网络地址 net-id subnet-id
子网掩码中的相关计算 Mask 255.255.0.0 Mask 255.255.255.0 Mask 255.255.255.0 Mask Network address=(IP address ) • (Mask) Host address=(IP address) • (Mask) Mask 255.255.0.0 Mask 255.255.255.0 141.14.2.21 141.14.2.0 141.14.0.0 IP address Network address Mask 255.255.255.0 Mask 255.255.255.224 202.115.12.34 202.115.12.32 202.115.12.0 IP address Network address 104
练习 主机1的IP地址为156.26.101.88 主机2的IP地址为156.26.101.132 子网掩码为255.255.255.192 判断它们是不是在同一个子网上。
默认子网掩码 A 类 地 址 网络地址 net-id host-id 为全 0 默认子网掩码 255.0.0.0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 B 类 地 址 网络地址 net-id host-id 为全 0 默认子网掩码 255.255.0.0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 C 类 地 址 网络地址 net-id host-id 为全 0 默认子网掩码 255.255.255.0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0
通过子网划分可以从一个地址块创建多个逻辑网络。 定长子网划分 变长子网划分
子网数量 = 2^n (n = 借用的位数) 主机数量 = 2^n - 2 (n = 剩余的主机位数) 定长子网划分 通过子网划分可以从一个地址块创建多个逻辑网络。由于我们使用路由器将这些网络连接在一起,因此路由器上的每个接口都必须有唯一的网络 ID。该链路上的每个节点都位于同一个网络中。 具体做法:使用一个或多个主机位作为网络位创建子网,即延长掩码。 例如,借用 1 个位可以定义 2 个子网。如果借用 2 个位,则有 4 个子网。但是,每借用一个位,每个子网可用的主机地址就会减少。 子网数量 = 2^n (n = 借用的位数) 主机数量 = 2^n - 2 (n = 剩余的主机位数)
网划分示例(4子网)
网划分示例(8子网)
有如下一个网络,请你将153.90.0.0合理的分配给各个网络。 例 有如下一个网络,请你将153.90.0.0合理的分配给各个网络。 NetA150台主机 R2 NetB24台主机 R1 R3 R4 NetC90台主机 NetD53台主机 上面的例,我们采用了每个相同的掩码格式。这叫做定长子网划分,很明显这种方法有问题,也会浪费地址。还有一种方法叫变长子网掩码。 111
解题思路 确定一共有多少个子网? 8个
解题思路 确定一共有多少个子网? 8个 R1 R2 Net A Net E Net B Net F Net G Net C Net H Net D R3 R4
解题思路 确定一共有多少个子网? 确定最大的子网有多少台主机? 8个 151台 Net E,F,G,H各有多少台主机? R1 R2 Net A 150台 Net E Net B 24台 Net F Net G Net C 90台 Net H Net D 53台 R3 R4
解题思路 选择的掩码要求满足如下条件 m,n的取值范围为: 2m≥8(m为掩码中比B类IP地址默认掩码中多的“1”的个数) 2n-2≥151(n为掩码中“0”的个数) m+n=16 m,n的取值范围为: m=3,n=13(255.255.224.0) m=4,n=12(255.255.240.0) m=5,n=11(255.255.248.0) m=6,n=10(255.255.252.0) m=7,n=9(255.255.254.0) m=8,n=8(255.255.255.0)
变长子网-将网络划分为适当大小的多个子网 有些网络(如点对点 WAN 链路)最多只需要两台主机。而其它网络(如大型建筑或部门内的用户 LAN)却可能需要支持数百台主机。网络管理员需要设计网间编址方案,以满足每个网络的最大主机数量需求。每个部分的主机数量还应该支持主机数量的增长。 划分大小不一的子网的过程: 确定总的地址数量 确定网络数量和每个网络中的主机数量 划分地址块以建立适应最大网络要求的网络 进一步划分地址块,建立适应下一个最大网络要求的网络 继续这个过程,直到所有的子网都分配了地址
变长子网划分 例如:一个公司的销售部有50名员工,需要60个IP地址;财务部有20名,需要30个IP地址;人事部有5名员工,需要5个IP地址;现在有192.168.1.0/24网段,将IP地址合理分配,并且剩余的IP地址供其他部门使用。 分析: 分析用户需求 设备的IP地址数量取决于主机位有多少,设有Y位做主机位,则可容纳的设备数量为2Y-2; 由于此网段有8位主机位,我们便可以 求出此网段可容纳的设备数量:28-2=254
变长子网划分 根据需求,按从大到小排列为:60、30、5;第一个子网至少需要6位主机位:26-2>60,那么子网部分还剩2位,22=4,可划分出4个子网 销售部使用 192.168.1.0/26 192.168.1.64/26 192.168.1.128/26 192.168.1.192/26 继续划分 25-2>=30,Y=5,子网位为1,可划分2个子网:192.168.1.64/27 192.168.1.96/27 财务部使用 继续划分
练习 实例分析 例1:某单位有4个部门,需建立4个子网,其中部门1有50台主机,部门2有25台主机,部门3和部门4分别有10台主机,现有一个内部C类地址:192.168.1.0.请为该单位进行IP地址划分。 解析:本题需要进行子网划分,利用VLSM技术可以划分具有不同主机数的子网,充分利用网络资源。划分的一般步骤如下: 判断用户需求 选择可变长子网掩码 确定子网IP地址空间
练习 判断用户需求,计算最大网络需求 选择可变长子网掩码,即继续分配子网号 部门1:50台主机25<50<26 需要6位主机号 C类地址8位主机号留下6位,其余2位做子网号 01和10两个子网号得到192.168.1.64/26和192.168.1.128/26两个子网。 假设192.168.1.64/26分配给部门1 选择可变长子网掩码,即继续分配子网号 部门2:25台主机24<25<25 需要5位主机号 192.168.1.128/26这个子网可划分为192.168.1.128/27和192.168.1.160/27两个子网; 假设192.168.1.64/26分配给部门2 部门3和部门4: 10台主机23<10<24 需要4位主机号 192.168.1.160/27这个子网可划分为192.168.1.160/28和192.168.1.176/28两个子网; 01000000——64 10000000——128 ------------------------------------- 10000000 10100000---------160 --------------------------------------- 10100000 10110000-----------176 120
练习 确定子网IP地址空间 部门 IP地址 网络范围 最大主机数 1 192.168.1.64/26 192.168.1.64~192.168.1.127 26-2=62 2 192.168.1.128/27 192.168.1.128~192.168.1.159 25-2=30 3 192.168.1.160/28 192.168.1.160~192.168.1.175 24-2=14 4 192.168.1.176/28 192.168.1.176~192.168.1.191 121
在不划分子网的两级 IP 地址下,从 IP 地址得出网络地址是个很简单的事。 使用子网掩码的分组转发过程 在不划分子网的两级 IP 地址下,从 IP 地址得出网络地址是个很简单的事。 路由表项添加子网掩码 分组转发算法进行相应修改 IP数据报不含子网掩码,路由器如何得 知该IP数据报属于哪一个网络? 划分子网后,从 IP 地址却不能唯一地得出网络地址来,这是因为网络地址取决于那个网络所采用的子网掩码,但数据报的首部并没有提供子网掩码的信息。 因此分组转发的算法也必须做相应的改动。 在不划分子网的两级 IP 地址下,从 IP 地址得出网络地址是个很简单的事。 但在划分子网的情况下,从 IP 地址却不能唯一地得出网络地址来,这是因为网络地址取决于那个网络所采用的子网掩码,但数据报的首部并没有提供子网掩码的信息。
在划分子网的情况下路由器转发分组的算法 (1) 从收到的分组的首部提取目的 IP 地址 D。 相应的网络地址匹配。若匹配,则将分组直接交付。 否则就是间接交付,执行(3)。 (3) 若路由表中有目的地址为 D 的特定主机路由,则将 分组传送给指明的下一跳路由器;否则,执行(4)。 (4) 对路由表中的每一行的子网掩码和 D 逐位相“与”, 若其结果与该行的目的网络地址匹配,则将分组传送 给该行指明的下一跳路由器;否则,执行(5)。 (5) 若路由表中有一个默认路由,则将分组传送给路由表 中所指明的默认路由器;否则,执行(6)。 (6) 报告转发分组出错。
【例4-4】已知互联网和路由器 R1 中的路由表。主机 H1 向 H2 发送分组。试讨论 R1 收到 H1 向 H2 发送的分组后查找路由表的过程。 128.30.33.13 目的网络地址 子网掩码 下一跳 128.30.33.0 128.30.33.128 128.30.36.0 255.255.255.128 255.255.255.0 接口 0 接口 1 R2 子网1: 网络地址 128.30.33.0 子网掩码 255.255.255.128 H1 128.30.33.1 子网2:网络地址 128.30.33.128 子网掩码 255.255.255.128 128.30.33.130 1 128.30.33.129 H2 128.30.33.138 R2 1 128.30.36.2 子网3:网络地址 128.30.36.0 子网掩码 255.255.255.0 H3 128.30.36.12
主机 H1 要发送分组给 H2 因此 H1 首先检查主机 128.30.33.138 是否连接在本网络上 要发送的分组的目的 IP 地址:128.30.33.138 R1 的路由表(未给出默认路由器) 128.30.33.13 目的网络地址 子网掩码 下一跳 128.30.33.0 128.30.33.128 128.30.36.0 255.255.255.128 255.255.255.0 接口 0 接口 1 R2 子网1: 网络地址 128.30.33.0 子网掩码 255.255.255.128 H1 128.30.33.1 R1 子网2:网络地址 128.30.33.128 子网掩码 255.255.255.128 128.30.33.130 1 128.30.33.129 128.30.33.138 R2 H2 请注意:H1 并不知道 H2 连接在哪一个网络上。 H1 仅仅知道 H2 的 IP 地址是 128.30.33.138 因此 H1 首先检查主机 128.30.33.138 是否连接在本网络上 如果是,则直接交付; 否则,就送交路由器 R1,并逐项查找路由表。 1 128.30.36.2 子网3:网络地址 128.30.36.0 子网掩码 255.255.255.0 H3 128.30.36.12
主机 H1 首先将 本子网的子网掩码 255. 255. 255. 128与分组的 IP 地址 128. 30. 33 主机 H1 首先将 本子网的子网掩码 255.255.255.128与分组的 IP 地址 128.30.33.138 逐比特相“与”(AND 操作) 255.255.255.128 AND 128.30.33.138 的计算 128.30.33.13 H1 目的网络地址 子网掩码 下一跳 128.30.33.0 128.30.33.128 128.30.36.0 255.255.255.128 255.255.255.0 接口 0 接口 1 R2 子网1: 网络地址 128.30.33.0 子网掩码 255.255.255.128 255 就是二进制的全 1,因此 255 AND xyz = xyz, 这里只需计算最后的 128 AND 138 即可。 128.30.33.1 R1 子网2:网络地址 128.30.33.128 子网掩码 255.255.255.128 128 → 10000000 138 → 10001010 128.30.33.130 1 128.30.33.129 H2 逐比特 AND 操作后:10000000 → 128 128.30.33.138 R2 1 128.30.36.2 255.255.255.128 128. 30. 33.138 128. 30. 33.128 逐比特 AND 操作 子网3:网络地址 128.30.36.0 子网掩码 255.255.255.0 H1 的网络地址 H3 128.30.36.12
因此 H1 必须把分组传送到路由器 R1 然后逐项查找路由表 128.30.33.13 目的网络地址 子网掩码 下一跳 128.30.33.0 128.30.33.128 128.30.36.0 255.255.255.128 255.255.255.0 接口 0 接口 1 R2 子网1: 网络地址 128.30.33.0 子网掩码 255.255.255.128 H1 128.30.33.1 R1 子网2:网络地址 128.30.33.128 子网掩码 255.255.255.128 128.30.33.130 1 128.30.33.129 H2 128.30.33.138 R2 1 128.30.36.2 子网3:网络地址 128.30.36.0 子网掩码 255.255.255.0 H3 128.30.36.12
路由器 R1 收到分组后就用路由表中第 1 个项目的 子网掩码和 128.30.33.138 逐比特 AND 操作 R1 收到的分组的目的 IP 地址:128.30.33.138 R1 的路由表(未给出默认路由器) 128.30.33.13 目的网络地址 子网掩码 下一跳 128.30.33.0 128.30.33.128 128.30.36.0 255.255.255.128 255.255.255.0 接口 0 接口 1 R2 子网1: 网络地址 128.30.33.0 子网掩码 255.255.255.128 H1 128.30.33.1 R1 子网2:网络地址 128.30.33.128 子网掩码 255.255.255.128 不一致 128.30.33.130 1 128.30.33.129 R2 H2 128.30.33.138 255.255.255.128 AND 128.30.33.138 = 128.30.33.128 不匹配! (因为128.30.33.128 与路由表中的 128.30.33.0 不一致) 1 128.30.36.2 子网3:网络地址 128.30.36.0 子网掩码 255.255.255.0 H3 128.30.36.12
路由器 R1 再用路由表中第 2 个项目的 子网掩码和 128.30.33.138 逐比特 AND 操作 R1 收到的分组的目的 IP 地址:128.30.33.138 R1 的路由表(未给出默认路由器) 128.30.33.13 目的网络地址 子网掩码 下一跳 128.30.33.0 128.30.33.128 128.30.36.0 255.255.255.128 255.255.255.0 接口 0 接口 1 R2 子网1: 网络地址 128.30.33.0 子网掩码 255.255.255.128 H1 一致! 128.30.33.1 R1 子网2:网络地址 128.30.33.128 子网掩码 255.255.255.128 128.30.33.130 1 128.30.33.129 128.30.33.138 R2 H2 255.255.255.128 AND 128.30.33.138 = 128.30.33.128 匹配! 这表明子网 2 就是收到的分组所要寻找的目的网络 1 128.30.36.2 子网3:网络地址 128.30.36.0 子网掩码 255.255.255.0 H3 128.30.36.12
练习 课后习题4-20
主要内容 网络层提供的两种服务 IP协议 划分子网和构造超网 ICMP协议 路由选择协议 网络地址转换NAT
ICMP 允许主机或路由器报告差错情况和提供有关异常情况的报告。 为了提高 IP 数据报交付成功的机会,在网际层使用了网际控制报文协议 ICMP (Internet Control Message Protocol)。 ICMP 允许主机或路由器报告差错情况和提供有关异常情况的报告。 ICMP IGMP IP ARP RARP 网络层协议
ICMP 报文的格式 8 16 31 前 4 个字节 都是一样的 类型 代码 检验和 (这 4 个字节取决于 ICMP 报文的类型) 8 16 31 前 4 个字节 都是一样的 类型 代码 检验和 (这 4 个字节取决于 ICMP 报文的类型) ICMP 的数据部分(长度取决于类型) ICMP 报文 首 部 数 据 部 分 IP 数据报
ICMP 报文的种类有两种,即 ICMP 差错报告报文和 ICMP 询问报文。
ICMP 差错报告报文的数据字段的内容 IP 数据报的数据字段 收到的 IP 数据报 IP 数据报 首部 8 字节 ICMP 的 前 8 字节 IP 数据报 首部 8 字节 ICMP 差错报告报文 首部 ICMP 差错报告报文 装入 ICMP 报文的 IP 数据报 IP 数据报
对 ICMP 差错报告报文不再发送 ICMP 差错报告报文。 对第一个分片的数据报片的所有后续数据报片都不发送 ICMP 差错报告报文。
类型: 应用举例 ICMP 询问报文 回送请求和回答报文 时间戳请求和回答报文 PING (Packet InterNet Groper) Tracert
超时接收,即在规定的时间内没有收到对方的ICMP响应 ping PING 用来测试两个主机之间的连通性。 PING 使用了 ICMP 回送请求与回送回答报文。 PING 是应用层直接使用网络层 ICMP 的例子,它没有通过运输层的 TCP 或UDP。 超时接收,即在规定的时间内没有收到对方的ICMP响应
使用ICMP跟踪路由 Tracert用来确定去往目的主机需要经过的中间路由器: 用户调用tracert命令,给出远程计算机的名字或地址,如tracert www.sina.com.cn 程序显示去往目的主机路径上的中间路由器,每行一个路由器
主要内容 网络层提供的两种服务 IP协议 划分子网和构造超网 ICMP协议 路由选择协议 网络地址转换NAT
路由选择协议 什么是路由选择? 什么是最佳路由选择? 正确性 简单性(低开销) 健壮性 稳定性(快收敛) 公平性 最佳性
Tracert的实现机制 Tracert工具使用TTL逐渐增大的一系列数据包探测路径: Tracert将第一个数据包的TTL值置1,第一个收到此包的路由器将TTL减为0,产生一个ICMP超时错误报告。 Tracert从携带错误报告的包中取出源IP地址,此为在到达目标路径上的第一个路由器的地址。 Tracert将第二个数据包的TTL值置2,则路径上的第二跳路由器将产生一个ICMP超时错误报告,从而Tracert可以得到第二个路由器的地址。 依次类推,直至收到来自目的主机的数据包。
路由表中路由项的来源 链路发现路由 静态路由: 动态路由 开销小,配置简单,无需人工维护,只能发现本接口所属网端的路由。 无开销,配置简单,需人工维护,不能及时适应网络状态的变化。 动态路由 开销大,配置复杂,无需人工维护,能较好地适应网络的变化,但实现起来比较复杂。
每种路由协议都有自已的语言(相应的路由协议报文),如果两台路由器都实现了某种路由协议并已经启动该协议,则具备了相互通讯的基础。 动态路由协议基本原理 动态路由协议是做什么的 计算路由的。计算本路由器到网络中其它网段的路由。 如何做到这一点 “天王盖地虎”---“宝塔镇河妖” “初次见面,请多关照” “好久不见,近况如何” 每种路由协议都有自已的语言(相应的路由协议报文),如果两台路由器都实现了某种路由协议并已经启动该协议,则具备了相互通讯的基础。 一台新加入的路由器应该主动把自己介绍给网段内的其他路由器。通过发送广播报文或发送给指定的路由器邻居来做到这一点。 为了能够察觉到某台路由器突然失效(路由器本身故障或连接线路中断)这种异常情况,规定两台路由器之间的协议报文应该周期性地发送。
自治系统 AS (Autonomous System) 分层次的路由选择协议 因特网采用分层次的路由选择协议 因特网的规模非常大 隐蔽策略 自治系统 AS (Autonomous System) 在单一的技术管理下的一组路由器 这些路由器使用一种 AS 内部的路由选择协议和共同的度量以确定分组在该 AS 内的路由 同时还使用一种 AS 之间的路由选择协议用以确定分组在 AS之间的路由 因特网采用分层次的路由选择协议。 因特网的规模非常大。如果让所有的路由器知道所有的网络应怎样到达,则这种路由表将非常大,处理起来也太花时间。而所有这些路由器之间交换路由信息所需的带宽就会使因特网的通信链路饱和。 许多单位不愿意外界了解自己单位网络的布局细节和本部门所采用的路由选择协议(这属于本部门内部的事情),但同时还希望连接到因特网上。
动态路由协议的分类 IGP EGP BGP RIP OSPF Popular routing protocols 按工作区域分 IGP是内部网关协议。在同一自治系统内交换路由信息,RIP和OSPF属于IGP。IGP的主要目的是发现和计算自治域内的路由信息。 EGP是外部网关协议。用于连接不同的自治系统,在不同的自治系统之间交换路由信息,主要使用路由策略和路由过滤等控制路由信息在自治域间的传播。 内部网关协议 IGP (Interior Gateway Protocol) 即在一个自治系统内部使用的路由选择协议。目前这类路由选择协议使用得最多,如 RIP 和 OSPF 协议。 外部网关协议EGP (External Gateway Protocol) 若源站和目的站处在不同的自治系统中,当数据报传到一个自治系统的边界时,就需要使用一种协议将路由选择信息传递到另一个自治系统中。这样的协议就是外部网关协议 EGP。在外部网关协议中目前使用最多的是 BGP-4。
自治系统和内部网关协议、外部网关协议 自治系统 A 自治系统 B 自治系统 C R3 IGP EGP R2 IGP IGP IGP IGP H1 IGP H2 IGP IGP IGP IGP 内部网关协议 IGP (例如,RIP) 外部网关协议 EGP (例如,BGP-4) 内部网关协议 IGP (例如,OSPF)
路由信息协议 RIP 是内部网关协议 IGP中最先得到广泛使用的协议。 RIP 是一种分布式的基于距离向量的路由选择协议。 从一路由器到直接连接的网络的距离定义为 1。 从一个路由器到非直接连接的网络的距离定义为所经过的路由器数加 1。 RIP 协议中的“距离”也称为“跳数”(hop count),因为每经过一个路由器,跳数就加 1。 这里的“距离”实际上指的是“最短距离”, RIP 认为一个好的路由就是它通过的路由器的数目少,即“距离短”。 RIP 允许一条路径最多只能包含 15 个路由器。 “距离”的最大值为16 时即相当于不可达。可见 RIP 只适用于小型互联网。 RIP 不能在两个网络之间同时使用多条路由。RIP 选择一个具有最少路由器的路由(即最短路由),哪怕还存在另一条高速(低时延)但路由器较多的路由。
路由表的建立 路由器在刚刚开始工作时,只知道到直接连接的网络的距离(此距离定义为1)。 以后,每一个路由器也只和数目非常有限的相邻路由器交换并更新路由信息。 经过若干次更新后,所有的路由器最终都会知道到达本自治系统中任何一个网络的最短距离和下一跳路由器的地址。 RIP 协议的收敛(convergence)过程较快,即在自治系统中所有的结点都得到正确的路由选择信息的过程。
2. 距离向量算法 收到相邻路由器(其地址为 X)的一个 RIP 报文: (1) 先修改此 RIP 报文中的所有项目:把“下一跳”字段中的地址都改为 X,并把所有的“距离”字段的值加 1。 (2) 对修改后的 RIP 报文中的每一个项目,重复以下步骤: 若项目中的目的网络不在路由表中,则把该项目加到路由表中。 否则 若下一跳字段给出的路由器地址是同样的,则把收到的项 目 替换原路由表中的项目。 若收到项目中的距离小于路由表中的距离,则进行更新, 否则,什么也不做。 (3) 若 3 分钟还没有收到相邻路由器的更新路由表,则把此相邻路由器记为不可达路由器,即将距离置为16(距离为16表示不可达)。 (4) 返回。 RIP协议让互联网中的所有路由器都和自己的相邻路由器不断交换路由信息,并不断更新其路由表,使得从每一个路由器到每一个目的网络的路由都是最短的(即跳数最少)。 虽然所有的路由器最终都拥有了整个自治系统的全局路由信息,但由于每一个路由器的位置不同,它们的路由表当然也应当是不同的。
一开始,各路由表只有到相邻路由器的信息 “”表示“直接交付” “4”表示“从本路由器到网 4” “1”表示“距离是 1” 1 1 1 1 5 1 E 网 1 1 1 2 1 3 1 网 5 5 1 6 1 2 1 5 1 D 网 2 A 4 1 6 1 F 网 6 B 网 3 网 4 C 3 1 4 1 “”表示“直接交付” “4”表示“从本路由器到网 4” “1”表示“距离是 1”
RIP 协议的三个要点 路由器从哪些路由器上收集通路信息 信息的内容: 合时收集信息: 仅和相邻路由器交换信息。 交换的信息是当前本路由器所知道的全部信息,即自己的路由表。 合时收集信息: 按固定的时间间隔交换路由信息,例如,每隔 30 秒。 收到路由信息后如何更新?
路由器 B 收到相邻路由器 A 和 C 的路由表 A 说:“我到网 1 的距离是 1。” 因此 B 现在也可以到网 1, 1 1 5 1 E 1 1 2 1 3 1 网 1 1 1 2 1 3 1 网 5 5 1 6 1 2 1 5 1 D 网 2 A 4 1 6 1 4 1 6 1 F 网 6 B 网 3 网 4 C 3 1 4 1 更新后 A 说:“我到网 1 的距离是 1。” 因此 B 现在也可以到网 1, 距离是 2,经过 A。” 1 2 A 2 2 A 3 1 4 1 6 2 C
路由器 B 收到相邻路由器 A 和 C 的路由表 A 说:“我到网 2 的距离是 1。” 因此 B 现在也可以到网 2, 1 1 5 1 E 网 1 1 1 2 1 3 1 网 5 5 1 6 1 2 1 5 1 D 网 2 A 4 1 6 1 F 网 6 B 网 3 1 1 2 1 3 1 网 4 4 1 6 1 C 3 1 4 1 更新后 A 说:“我到网 2 的距离是 1。” 因此 B 现在也可以到网 2, 距离是 2,经过 A。” 1 2 A 2 2 A 3 1 4 1 6 2 C
路由器 B 收到相邻路由器 A 和 C 的路由表 A 说:“我到网 3 的距离是 1。” 但 B 没有必要绕道经过路由器 A 1 1 5 1 E 网 1 1 1 2 1 3 1 网 5 5 1 6 1 2 1 5 1 D 网 2 A 4 1 6 1 F 网 6 B 网 3 1 1 2 1 3 1 网 4 3 1 4 1 4 1 6 1 C 更新后 A 说:“我到网 3 的距离是 1。” 但 B 没有必要绕道经过路由器 A 再到达网 3,因此这一项目不变。 1 2 A 2 2 A 3 1 4 1 6 2 C
路由器 B 收到相邻路由器 A 和 C 的路由表 C 说:“我到网 4 的距离是 1。” 但 B 没有必要绕道经过路由器 C 1 1 5 1 E 网 1 1 1 2 1 3 1 网 5 5 1 6 1 2 1 5 1 D 网 2 A 4 1 6 1 F 网 6 B 网 3 1 1 2 1 3 1 网 4 3 1 4 1 4 1 6 1 C 更新后 C 说:“我到网 4 的距离是 1。” 但 B 没有必要绕道经过路由器 C 再到达网 4,因此这一项目不变。 1 2 A 2 2 A 3 1 4 1 6 2 C
路由器 B 收到相邻路由器 A 和 C 的路由表 C 说:“我到网 6 的距离是 1。” 因此 B 现在也可以到网 6, 1 1 5 1 E 网 1 1 1 2 1 3 1 网 5 5 1 6 1 2 1 5 1 D 网 2 A 4 1 6 1 F 网 6 B 网 3 1 1 2 1 3 1 网 4 3 1 4 1 4 1 6 1 C 更新后 C 说:“我到网 6 的距离是 1。” 因此 B 现在也可以到网 6, 距离是 2,经过 C。” 1 2 A 2 2 A 3 1 4 1 6 2 C
最终所有的路由器的路由表都更新了 1 1 2 1 3 1 4 2 B 5 2 E 6 3 B 1 1 2 2 A 3 2 A 1 1 2 1 3 1 4 2 B 5 2 E 6 3 B 1 1 2 2 A 3 2 A 4 3 A 5 1 6 2 F 1 2 E 2 2 D 3 3 C 4 2 C 5 1 6 1 E 网 1 网 5 1 2 A 2 1 3 2 A 4 3 A 5 1 6 2 F 网 2 D A F C 网 6 1 2 A 2 2 A 3 1 4 1 5 3 C 6 2 C 1 3 B 2 3 B 3 2 B 4 1 5 2 F 6 1 网 3 B 网 4
更新算法 路由表的更新 更新情况: 新的网络; 到同一目的地,且距离更短; 到同一目的地,下一跳相同,不管距离长短,直接更新; Net2 4 Net3 8 Net6 4 Net8 3 Net9 5 从C路由器来的路由更新表 Net2 5 Net3 9 Net6 5 Net8 4 Net9 6 从C到的网络的距离 Net1 7 A Net2 5 C Net3 9 C Net6 5 C Net8 4 E Net9 4 F New routing table Net1 7 A Net2 2 C Net6 8 F Net8 4 E Net9 4 F 老的路由表 一般路由器每30秒广播一次路由更新报文。 更新方法: 新的网络的更新。 到同一目的地的短的更新。 到同一目的地的相同下一跳的长的更新。 更新算法
RIP特点 优势 不足 实现简单,开销较小。 路由器之间交换的路由信息是路由器中的完整路由表,因而随着网络规模的扩大,开销也就增加。 当网络出现故障时,要经过比较长的时间才能将此信息传送到所有的路由器。
“”表示“直接交付” “1”表示“从本路由器到网 1” “1”表示“距离是 1” R1 说:“我到网 1 的距离是 1,是直接交付。” 正 常 情 况 1 1 网 1 网 2 1 2 R1 网 3 R1 R2 “”表示“直接交付” “1”表示“从本路由器到网 1” “1”表示“距离是 1” R1 说:“我到网 1 的距离是 1,是直接交付。”
“R1”表示 “1”表示“从本路由器到网 1” 经过 R1 “2”表示“距离是 2” R2 说:“我到网 1 的距离是 2,是经过 R1。” 正 常 情 况 1 1 网 1 网 2 1 2 R1 网 3 R1 R2 “R1”表示 经过 R1 “1”表示“从本路由器到网 1” “2”表示“距离是 2” R2 说:“我到网 1 的距离是 2,是经过 R1。”
R1 说:“我到网 1 的距离是 16 (表示无法到达), 是直接交付。” 正 常 情 况 1 1 网 1 网 2 1 2 R1 网 3 R1 R2 R2 R1 网 1 网 3 网 2 网 1出了故障 1 16 1 2 R1 R1 说:“我到网 1 的距离是 16 (表示无法到达), 是直接交付。” 但 R2 在收到 R1 的更新报文之前,还发送原来的报文, 因为这时 R2 并不知道 R1 出了故障。
正 常 情 况 1 1 网 1 网 2 1 2 R1 网 3 R1 R2 R2 R1 网 1 网 3 网 2 网 1出了故障 1 16 1 2 R1 1 3 R2 R1 收到 R2 的更新报文后,误认为可经过 R2 到达网1,于是更新自己的路由表,说:“我到网 1 的距离是 3,下一跳经过 R2”。然后将此更新信息发送给 R2。
R2 以后又更新自己的路由表为“1, 4, R1”,表明 “我到网 1 距离是 4,下一跳经过 R1”。 正 常 情 况 1 1 网 1 网 2 1 2 R1 网 3 R1 R2 R2 R1 网 1 网 3 网 2 网 1出了故障 1 16 1 2 R1 1 3 R2 1 4 R1 R2 以后又更新自己的路由表为“1, 4, R1”,表明 “我到网 1 距离是 4,下一跳经过 R1”。
这就是好消息传播得快,而坏消息传播得慢。网络出故障的传播时间往往需要较长的时间(例如数分钟)。这是 RIP 的一个主要缺点。 正 常 情 况 这就是好消息传播得快,而坏消息传播得慢。网络出故障的传播时间往往需要较长的时间(例如数分钟)。这是 RIP 的一个主要缺点。 1 1 网 1 网 2 1 2 R1 网 3 R1 R2 网 1 网 2 网 3 R1 R2 网 1出了故障 1 16 1 2 R1 1 3 R2 1 4 R1 1 5 R2 … … 1 16 R2 1 16 R1 这样不断更新下去,直到 R1 和 R2 到网 1 的距离都增大到 16 时,R1 和 R2 才知道网 1 是不可达的。
1.IP数据报在到达时其首部有如下的信息(十六进制表示): Homework 1.IP数据报在到达时其首部有如下的信息(十六进制表示): 45 00 00 54 00 03 00 00 20 06 00 00 7C 4E 03 02 B4 0E 0F 02 (1)有无任何选项字段? (2)这个分组被分片了吗? (3)数据的长度是多少? (4)这个分组能够经过多少个路由器? (5)这个分组的标识号是多少? (6)这个分组的源IP和目的IP分别是多少?(用16进制表示)
Homework 2. 路由器的IP地址是108.5.18.20。它发送一个直接广播分组给该网络上的所有主机。在这个分组中使用什么源IP地址和目的IP地址? 3. IP地址为108.67.18.70的主机发送受限广播分组给该网络上的所有主机。在这个分组中使用什么源IP地址和目的IP地址? 4.书后习题 4-20 (必须写明推算过程)
练习 1. 如果片偏移的值为100,表示() 2. IP分组中校验和检查的范围是() A. 此数据报未分片 B. 此数据报的长度为100字节 C. 此数据报的第一个字节在原数据报中编号为100 D. 此数据报的第一个字节在原数据报中编号为800 2. IP分组中校验和检查的范围是() A. 仅仅首部 B. 仅仅数据部分 C. 首部和数据部分 D. 仅仅源IP和目的IP
练习 3. HLEN的值是10进制的10,它表示() A. 有10字节的选项 B. 有40字节的选项 C. 有10字节的首部 D. 有40字节的首部
主要内容 网络层提供的两种服务 IP协议 划分子网和构造超网 ICMP协议 路由选择协议 网络地址转换NAT
具有这些IP地址的主机连入Internet需要进行NAT。(RFC 3235,3027,3022,2993,2663) 10.0.0.1~10.255.255.254/8 172.16.0.1~172.31.255.254/12 192.168.0.1~192.168.255.254/16 具有这些IP地址的主机连入Internet需要进行NAT。(RFC 3235,3027,3022,2993,2663) 172
NAT的原理 Inside Internet 4 5 3 1 2 NAT table 10.1.1.2:1723 10.1.1.1:1024 192.167.2.2:1723 192.167.2.2:1024 172.21.7.3:23 172.20.7.3:23 TCP 10.1.1.3:1723 192.167.2.2:1492 Internet Inside 10.1.1.1 Host B 172.20.7.3 1 3 SA DA 192.167.2.2 10.1.1.2 10.1.1.3 4 5 2 Host C 172.21.7.3 Inside Global IP Address: Port Outside Global IP Address: Port Protocol Inside Local IP 过程简单描述如下: 10.1.1.1决定向172.20.7.3发送数据,IP数据包的源IP地址为10.1.1.1,源TCP端口为1024,目的IP地址为172.20.7.3,目的端口为23。图中1所示。 IP数据包到达NAT设备后,需要完成转换,将源IP地址变为192.167.2.2,源TCP端口为1024,目的IP地址和目的端口不变。然后重新计算校验和。图中2和3所示。 数据到达172.20.7.3后(图中4所示),172.20.7.3发送回应数据。这是数据包的源IP地址为172.20.7.3,源端口为23,目的IP地址为192.167.2.2,目的端口为1024。数据会发送到NAT设备。 在NAT设备上,进行第2步的反变换。即可将数据发送到10.1.1.1(图5)。 NAT比较复杂,很多问题我们都没有讲到,如NAT转换表是如何形成的?外部主机能否首先访问内部主机?两个使用内部地址的网络能否相互通信?大家可以参阅其他资料。 173
NAT的缺陷 NAT违反了IP的结构模式。IP地址不再是全球惟一的。 NAT将无连接的Internet变成了一个面向连接的网络。 有些应用在正文中要加入IP地址,端口等。这样要求NAT对应用层协议有很好的理解,这样限制了NAT的应用。在FTP和ICMP协议中会出现这种情况。 一个公网地址最多可以提供61440个Internet连接。 174