找路由表查找路由表 622|P地址与硬件地址 应用层数据 通信的路径 TCP报文 网络层及以上 使用P地址 H→经过R转发→再经过R转发→H」 硬件地 P数据报 MAC帧 链路层及以下 使用硬件地址 623地址解析协议ARP和 逆地址解析协议RARP ARP高速缓存的作用 管网络层使用的是什么协议,在实际网络的链路 ●为了减少网络上的通信量,主机A在发送 上传送数据帧时,最终还是必须使用硬件地址 其ARP请求分组时,就将自己的|P地址 ·每一个主机都设有一个ARP高速缓存ARP e),里面有所在的局域网上的各主机和路由器 到硬件地址的映射写入ARP请求分组。 的P地址到硬件地址的映射表 当主机B收到A的ARP请求分组时,就 当主机A欲向本局域网上的某个主机B发送|P数 将主机A的这一地址映射写入主机B自己 先在其ARP高速缓存中查看有无主机 的ARP高速缓存中。这对主机B以后向 址,再将此硬件地址写入MAC帧,然后通过局域 A发送数据报时就更方便了。 网将该MAC帧发往此硬件地址。 应当注意的问题 应当注意的问题 ARP是解决同一个局域网上的主机或路由器 ●从IP地址到硬件地址的解析是自动进行的 的伊P地址和硬件地址的映射问题。 主机的用户对这种地址解析过程是不知道 ●如果所要找的主机和源主机不在同一个局域 的 网上,那么就要通过ARP找到一个位于本局 只要主机或路由器要和本网络上的另一个已 域网上的某个路由器的硬件地址,然后把分 知|P地址的主机或路由器进行通信,ARP 组发送给这个路由器,让这个路由器把分组 协议就会自动地将该|P地址解析为链路层所 转发给下一个网络。剩下的工作就由 需要的硬件地址。 网络来做
6 6.2.2 IP 地址与硬件地址 TCP 报文 IP 数据报 MAC 帧 首部 应用层数据 首部 首部 尾部 链路层及以下 使用硬件地址 硬件地址 网络层及以上 使用 IP 地址 IP 地址 HA1 HA3 HA4 HA5 HA6 主机 H1 主机 H2 路由器R1 硬件地址 路由器R2 HA2 IP1 IP2 局域网 局域网 局域网 通信的路径 H1→经过 R1 转发→再经过 R2 转发→H2 查找路由表 查找路由表 6.2.3 地址解析协议 ARP 和 逆地址解析协议 RARP l 不管网络层使用的是什么协议,在实际网络的链路 上传送数据帧时,最终还是必须使用硬件地址。 l 每一个主机都设有一个 ARP 高速缓存(ARP cache),里面有所在的局域网上的各主机和路由器 的 IP 地址到硬件地址的映射表。 l 当主机 A 欲向本局域网上的某个主机 B 发送 IP 数 据报时,就先在其 ARP 高速缓存中查看有无主机 B 的 IP 地址。如有,就可查出其对应的硬件地 址,再将此硬件地址写入 MAC 帧,然后通过局域 网将该 MAC 帧发往此硬件地址。 ARP 高速缓存的作用 l为了减少网络上的通信量,主机 A 在发送 其 ARP 请求分组时,就将自己的 IP 地址 到硬件地址的映射写入 ARP 请求分组。 l当主机 B 收到 A 的 ARP 请求分组时,就 将主机 A 的这一地址映射写入主机 B 自己 的 ARP 高速缓存中。这对主机 B 以后向 A 发送数据报时就更方便了。 应当注意的问题 lARP 是解决同一个局域网上的主机或路由器 的 IP 地址和硬件地址的映射问题。 l如果所要找的主机和源主机不在同一个局域 网上,那么就要通过 ARP 找到一个位于本局 域网上的某个路由器的硬件地址,然后把分 组发送给这个路由器,让这个路由器把分组 转发给下一个网络。剩下的工作就由下一个 网络来做。 应当注意的问题 l从IP地址到硬件地址的解析是自动进行的, 主机的用户对这种地址解析过程是不知道 的。 l只要主机或路由器要和本网络上的另一个已 知 IP 地址的主机或路由器进行通信,ARP 协议就会自动地将该 IP 地址解析为链路层所 需要的硬件地址
什么我们不直接 使用硬件地址进行通信? 逆地址解析协议RARP 由于全世界存在着各式各样的网络,它们使用不 ●逆地址解析协议RARP使只知道自己硬件 同的硬件地址。要使这些异构网络能够互相通信 就必须进行非常复杂的硬件地址转换工作,因此 地址的主机能够知道其|P地址。 几乎是不可能的事。 ●这种主机往往是无盘工作站。因此RARP 连接到因特网的主机都拥有统一的|P地址,它 协议目前已很少使用 们之间的通信就像连接在同一个网络上那样简单 方便,因为调用ARP来寻找某个路由器或主机 的硬件地址都是由计算机软件自动进行的,对用 户来说是看不见这种调用过程的。 比特0 624P数据报的格式 优先级Rc未用 版本部长度服务类型 ·一个|P数据报由首部和数据两部分组 标志片 成 生存时闯 首部的前一部分是固定长度,共20字 节,是所有IP数据报必须具有的 靦可字段《长度可史 在首部的固定部分的后面是一些可选字 数据部分 段,其长度是可变的 首部 P数据报 2.|P数据报首部的可变部分 62.5卩P层转发分组的流程 |P首部的可变部分就是一个选项字段,用来支 路由器和结点交换机有些区别 持排错、测量以及安全等措施,内容很丰富 选项字段的长度可变,从1个字节到40个字 器走椅本年空榉名,而结点交换机只 节不等,取决于所选择的项目。 铎套里转发分组的,而结点交换机还 ●增加首部的可变部分是为了增加数据报的 功能,但这同时也使得|P数据报的首部长度 開严用 的|P协议,而结点交换机使用 成为可变的。这就增加了每一个路由器处理数 据报的开销。 人的耕鹭找 ●实际上这些选项很少被使用
7 什么我们不直接 使用硬件地址进行通信? l 由于全世界存在着各式各样的网络,它们使用不 同的硬件地址。要使这些异构网络能够互相通信 就必须进行非常复杂的硬件地址转换工作,因此 几乎是不可能的事。 l 连接到因特网的主机都拥有统一的 IP 地址,它 们之间的通信就像连接在同一个网络上那样简单 方便,因为调用 ARP 来寻找某个路由器或主机 的硬件地址都是由计算机软件自动进行的,对用 户来说是看不见这种调用过程的。 逆地址解析协议 RARP l逆地址解析协议 RARP 使只知道自己硬件 地址的主机能够知道其 IP 地址。 l这种主机往往是无盘工作站。 因此 RARP 协议目前已很少使用。 6.2.4 IP 数据报的格式 l一个 IP 数据报由首部和数据两部分组 成。 l首部的前一部分是固定长度,共 20 字 节,是所有 IP 数据报必须具有的。 l在首部的固定部分的后面是一些可选字 段,其长度是可变的。 固 定 部 分 可变 部分 0 4 8 16 19 24 31 版 本 标志 生 存 时 间 协 议 标 识 服 务 类 型 总 长 度 片 偏 移 填 充 首 部 检 验 和 源 地 址 目 的 地 址 可 选 字 段 (长 度 可 变) 比特 首部长度 0 1 2 3 4 5 6 7 优 先 级 D T R C 未用 数 据 部 分 比特 传送 首 部 数 据 部 分 IP 数据报 首 部 2. IP 数据报首部的可变部分 l IP 首部的可变部分就是一个选项字段,用来支 持排错、测量以及安全等措施,内容很丰富。 l 选项字段的长度可变,从 1 个字节到 40 个字 节不等,取决于所选择的项目。 l 增加首部的可变部分是为了增加 IP 数据报的 功能,但这同时也使得 IP 数据报的首部长度 成为可变的。这就增加了每一个路由器处理数 据报的开销。 l 实际上这些选项很少被使用。 6.2.5 IP 层转发分组的流程 路由器和结点交换机有些区别: l 路由器是用来连接不同的网络,而结点交换机只 是在一个特定的网络中工作。 l 路由器是专门用来转发分组的,而结点交换机还 可接上许多个主机。 l 路由器使用统一的 IP 协议,而结点交换机使用 所在广域网的特定协议。 l 路由器根据目的网络地址找出下一个路由器,而 结点交换机则根据目的站所接入的交换机号找出 下一跳(即下一个结点交换机)
在路由表中,对每一条路由,最主要的是 (目的网络地址,下一跳地址) 特定主机路由 ●这种路由是为特定的目的主机指明一个路 路由器R2的路由表 ●采用特定主机路由可使网络管理人员能更 目的主机所在的网络下一跳路由器的地址 方便地控制网络和测试网络,同时也可在 需要考虑某种安全问题时采用这种特定主 机路由。 链 分组转发算法 (1)从数据报的首部提取目的站的P地址D,得出目的 必须强调指出 网络地址为N 付给目的站D:否则是间接交付,执行(3)。 |P数据报的首部中没有地方可以用来指明“下 一跳路由器的|P地址” (3)若路由表中有目的地址为D的特定主机路由,则将 当路由器收到待转发的数 数据报传送给路由表中所指明的下一跳路由器:否 路由器的P地址填入|P数捷 送交下层 则,执行(4)。 的网络接口软件。 (4)若路由表中有到达网络N的路由,则将数据报传送 网络接口软件使用ARP负责将下一跳路由器的 给路由表指明的下一跳路由器:否则,执行5)。 P地址转换成硬件地址,并将此硬件地址放在 (5)若路由表中有一个默认路由,则将数据报传送给路 链路层的MAC帧的首部,然后根据这个硬件 由表中所指明的默认路由器:否则,执行(6) 也址找到下一跳路由器 (6)报告转发分组出错。 63划分子网和构造超网 63.1划分子网 三级的P地址 1.从两级|P地址到三级|P地址 ●从1985年起在IP地址中又增加了一个“子 ●在 ARPANET的早期,IP地址的设计确 网号字段”,使两级的|P地址变成为三级 实不够合理 的|P地址。 O|P地址空间的利用率有时很低。 这种做法叫作划分子网subnetting)。划分 O给每一个物理网络分配一个网络号会使路由 子网已成为因特网的正式标准协议 表变得太大因而使网络性能变坏。 O两级的|P地址不够灵活
8 网 1 10.0.0.0 网 4 40.0.0.0 网 3 30.0.0.0 网 2 20.0.0.0 10.0.0.4 20.0.0.7 20.0.0.9 30.0.0.2 40.0.0.4 目的主机所在的网络 下一跳路由器的地址 20.0.0.0 30.0.0.0 10.0.0.0 40.0.0.0 20.0.0.7 30.0.0.1 直接交付,接口 1 直接交付,接口 0 路由器 R2 的路由表 30.0.0.1 10.0.0.4 20.0.0.7 20.0.0.9 30.0.0.2 30.0.0.1 40.0.0.4 链路1 链路2 链路3 链路4 R1 R2 R3 0 1 R1 R2 R3 在路由表中,对每一条路由,最主要的是 (目的网络地址,下一跳地址) 特定主机路由 l这种路由是为特定的目的主机指明一个路 由。 l采用特定主机路由可使网络管理人员能更 方便地控制网络和测试网络,同时也可在 需要考虑某种安全问题时采用这种特定主 机路由。 分组转发算法 (1) 从数据报的首部提取目的站的IP 地址D, 得出目的 网络地址为 N。 (2) 若网络N 与此路由器直接相连,则直接将数据报交 付给目的站D;否则是间接交付,执行(3)。 (3) 若路由表中有目的地址为 D 的特定主机路由,则将 数据报传送给路由表中所指明的下一跳路由器;否 则,执行(4)。 (4) 若路由表中有到达网络 N 的路由,则将数据报传送 给路由表指明的下一跳路由器;否则,执行(5)。 (5) 若路由表中有一个默认路由,则将数据报传送给路 由表中所指明的默认路由器;否则,执行(6)。 (6) 报告转发分组出错。 必须强调指出 l IP 数据报的首部中没有地方可以用来指明“下 一跳路由器的 IP 地址”。 l 当路由器收到待转发的数据报,不是将下一跳 路由器的IP 地址填入IP数据报,而是送交下层 的网络接口软件。 l 网络接口软件使用 ARP负责将下一跳路由器的 IP 地址转换成硬件地址,并将此硬件地址放在 链路层的 MAC 帧的首部,然后根据这个硬件 地址找到下一跳路由器。 6.3 划分子网和构造超网 6.3.1 划分子网 1. 从两级 IP 地址到三级 IP 地址 l在 ARPANET 的早期,IP 地址的设计确 实不够合理。 °IP 地址空间的利用率有时很低。 °给每一个物理网络分配一个网络号会使路由 表变得太大因而使网络性能变坏。 °两级的 IP 地址不够灵活。 l从 1985 年起在 IP 地址中又增加了一个“子 网号字段”,使两级的 IP 地址变成为三级 的 IP 地址。 l这种做法叫作划分子网(subnetting) 。划分 子网已成为因特网的正式标准协议。 三级的 IP 地址
划分子网的基本思路 划分子网的基本思路(续) 表没题分子你肉部的 单位对外仍然 凡是从其他网络发送给本单位某个主机的|P数 报,仍然是根据|P数据报的目的网络号 net-id,先 从主机号借用若干个比特作为子网号 subnet-id,而 找到连接在本单位网络上的路由器 主机号 host-id也就相应减少了若干个比特 ●然后此路由器在收到IP数据报后,再按目的网络号 netd和子网号 subnet-id找到目的子网 P地址:={<网络号>,<子网号>,<主机号>}(6-2) ●最后就将|P数据报直接交付给目的主机 划分子网后变成了三级结构 2.子网掩码 当没有划分子网时,地址是两级结 ●从一个1P数据报的首部并无法判断源 构,地址的网络号字段也就是IP地址的 主机或目的主机所连接的网络是否进行 因特网部分”,而主机号字段是P地址 了子网的划分 的“本地部分”。 使用子网掩码( subnet mask)可以找出 划分子网后IP地址就变成了三级结构。 P地址中的子网部分。 划分子网只是将IP地址的本地部分进行 再划分,而不改变P地址的因特网部 分 A类、B类和C类P地址的默认子网掩码 632使用子网掩码的分组转发过程 网络地址 hstd为全0 ●在不划分子网的两级卩P地址下,从P地址 得出网络地址是个很简单的事 ●但在划分子网的情况下,从地址却不能惟 网络地址 host-id为全0 一地得出网络地址来,这是因为网络地址取 默认子网11111000000000 决于那个网络所采用的子网掩码,但数据报 的首部并没有提供子网掩码的信息 stid为全 ●因此分组转发的算法也必须做相应的改动 255.255 lI1II111I1111111100000000
9 l 划分子网纯属一个单位内部的事情。单位对外仍然 表现为没有划分子网的网络。 l 从主机号借用若干个比特作为子网号 subnet-id,而 主机号 host-id 也就相应减少了若干个比特。 IP地址 ::= {<网络号>, <子网号>, <主机号>} (6-2) 划分子网的基本思路 l 凡是从其他网络发送给本单位某个主机的 IP 数据 报,仍然是根据 IP 数据报的目的网络号 net-id,先 找到连接在本单位网络上的路由器。 l 然后此路由器在收到 IP 数据报后,再按目的网络号 net-id 和子网号 subnet-id 找到目的子网。 l 最后就将 IP 数据报直接交付给目的主机。 划分子网的基本思路(续) l当没有划分子网时,IP 地址是两级结 构,地址的网络号字段也就是 IP 地址的 “因特网部分”,而主机号字段是 IP 地址 的“本地部分”。 l划分子网后 IP 地址就变成了三级结构。 划分子网只是将 IP 地址的本地部分进行 再划分,而不改变 IP 地址的因特网部 分。 划分子网后变成了三级结构 l从一个 I P数据报的首部并无法判断源 主机或目的主机所连接的网络是否进行 了子网的划分。 l使用子网掩码(subnet mask)可以找出 IP 地址中的子网部分。 2. 子网掩码 net-id net-id host-id 为全 0 net-id 网络地址 A 类 地 址 默认子网掩码 255.0.0.0 网络地址 B 类 地 址 默认子网掩码 255.255.0.0 网络地址 C 类 地 址 默认子网掩码 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 0 0 0 0 0 0 0 0 0 0 0 0 0 0 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 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 host-id 为全 0 host-id 为全 0 A 类、B 类和 C 类 IP 地址的默认子网掩码 l在不划分子网的两级 IP 地址下,从 IP 地址 得出网络地址是个很简单的事。 l但在划分子网的情况下,从IP地址却不能惟 一地得出网络地址来,这是因为网络地址取 决于那个网络所采用的子网掩码,但数据报 的首部并没有提供子网掩码的信息。 l因此分组转发的算法也必须做相应的改动。 6.3.2 使用子网掩码的分组转发过程
633无分类编址CIDR P编址问题的演进 1.网络前缀 划分子网在一定程度上缓解了因特网在发展中遇 1987年,RFC1009就指明了在一个划 到的困难。然而在1992年因特网仍然面临三个必 分子网的网络中可同时使用几个不同的 须尽早解决的问题,这就是 网掩码。使用变长子网掩码VLSM B类地址在1992年已分配了近一半,眼看就 ariable Length Subnet Mask)可进一步 要在1994年3月全部分配完毕! 提高|P地址资源的利用率 ●因特网主干网上的路由表中的项目数急剧增长 在VLSM的基础上又进一步研究出无分 (从几千个增长到几万个) 类编址方法,它的正式名字是无分类域间 整个4的地址空间最终将全部耗 路由选择cIDR( Classless Inter- Domain Routing C|DR最主要的特点 无分类的两级编址 ●CDR消除了传统的A类、B类和C类地 无分类的两级编址的记法是 址以及划分子网的概念,因而可以更加有效 P地址:={<网络前缀>,<主机号习}(6-3) 地分配|Pv4的地址空 C|DR使用各种长度的“网络前缀”( network. C|DR还使用“斜线记法( slash notation,它又称 prefix)来代替分类地址中的网络号和子网 为C|DR记法,即在P地址后面加上一个斜线"r, 后写上网络前缀所占的比特数(这个数值对应 于三级编址中子网掩码中比特1的个数)。 ●P地址从三级编址(使用子网掩码)又回 c|DR将网络前缀都相同的连续的IP地址组成 到了两级编址 C|DR地址块”。 1281432020表示的地址(212个地址) C|DR地址块 最小地址=71000101010 100000000010010000000001 1281432.0/20表示的地址块共有212个地址(因 10000000000000000 为斜线后面的20是网络前缀的比特数,所以主机 1000000000000001 号的比特数是12) 所有地址|00100 这个地址块的起始地址是12814320。 的20bt0000 在不需要指出地址块的起始地址时,也可将这样的 前缀都是 样的」100000000011 ·12814.32.0/20地址块的最小地址:12814320 100000000011001111111111100 12814320/20地址块的最大地址:1281432255 1000000000000111 全0和全1的主机号地址一般不使用 1000000001011 最大地址=10000000011011111
10 划分子网在一定程度上缓解了因特网在发展中遇 到的困难。然而在 1992 年因特网仍然面临三个必 须尽早解决的问题,这就是: l B 类地址在 1992 年已分配了近一半,眼看就 要在 1994 年3 月全部分配完毕! l 因特网主干网上的路由表中的项目数急剧增长 (从几千个增长到几万个)。 l 整个 IPv4 的地址空间最终将全部耗尽。 6.3.3 无分类编址 CIDR 1. 网络前缀 l1987 年,RFC 1009 就指明了在一个划 分子网的网络中可同时使用几个不同的子 网掩码 。 使 用 变长子网掩码 VLSM (Variable Length Subnet Mask)可进一步 提高 IP 地址资源的利用率。 l在 VLSM 的基础上又进一步研究出无分 类编址方法,它的正式名字是无分类域间 路由选择 CIDR (Classless Inter-Domain Routing)。 IP 编址问题的演进 lCIDR 消除了传统的 A 类、B 类和 C 类地 址以及划分子网的概念,因而可以更加有效 地分配 IPv4 的地址空间。 lCIDR使用各种长度的“网络前缀”(networkprefix)来代替分类地址中的网络号和子网 号。 lIP 地址从三级编址(使用子网掩码)又回 到了两级编址。 CIDR 最主要的特点 l 无分类的两级编址的记法是: IP地址 ::= {<网络前缀>, <主机号>} (6-3) l CIDR 还使用“斜线记法”(slash notation),它又称 为CIDR记法,即在IP地址后面加上一个斜线“/”, 然后写上网络前缀所占的比特数(这个数值对应 于三级编址中子网掩码中比特1 的个数)。 l CIDR 将网络前缀都相同的连续的 IP 地址组成 “CIDR地址块”。 无分类的两级编址 CIDR 地址块 l 128.14.32.0/20 表示的地址块共有 212 个地址(因 为斜线后面的 20 是网络前缀的比特数,所以主机 号的比特数是 12)。 l 这个地址块的起始地址是 128.14.32.0。 l 在不需要指出地址块的起始地址时,也可将这样的 地址块简称为“/20 地址块”。 l 128.14.32.0/20 地址块的最小地址:128.14.32.0 l 128.14.32.0/20 地址块的最大地址:128.14.32.255 l 全 0 和全 1 的主机号地址一般不使用。 128.14.32.0/20 表示的地址(212 个地址) 10000000 00001110 00100000 00000000 10000000 00001110 00100000 00000001 10000000 00001110 00100000 00000010 10000000 00001110 00100000 00000011 10000000 00001110 00100000 00000100 10000000 00001110 00100000 00000101 10000000 00001110 00111111 11111011 10000000 00001110 00111111 11111100 10000000 00001110 00111111 11111101 10000000 00001110 00111111 11111110 10000000 00001110 00111111 11111111 ¼ ¼ 所有地址 的 20 bit 前缀都是 一样的 最小地址 最大地址