第4章网络层ppt课件

上传人:s9****2 文档编号:571271859 上传时间:2024-08-09 格式:PPT 页数:219 大小:3.49MB
返回 下载 相关 举报
第4章网络层ppt课件_第1页
第1页 / 共219页
第4章网络层ppt课件_第2页
第2页 / 共219页
第4章网络层ppt课件_第3页
第3页 / 共219页
第4章网络层ppt课件_第4页
第4页 / 共219页
第4章网络层ppt课件_第5页
第5页 / 共219页
点击查看更多>>
资源描述

《第4章网络层ppt课件》由会员分享,可在线阅读,更多相关《第4章网络层ppt课件(219页珍藏版)》请在金锄头文库上搜索。

1、第4章网络层ppt课件Stillwatersrundeep.流静水深流静水深,人静心深人静心深Wherethereislife,thereishope。有生命必有希望。有生命必有希望4.1 网络层提供的两种服务 n1、虚电路服务n2、数据报服务n在计算机网络领域,网络层应该向运输层(传输层)提供怎样的服务(“面向连接”还是“无连接”)曾引起了长期的争论。n争论焦点的实质就是:在计算机通信中,可靠交付应当由谁来负责?是网络还是端系统? 1、虚电路服务n电信网的成功经验:让网络负责可靠交付n即当两个计算机进行通信时,模仿打电话所使用的面向连接的通信方式,先建立一条虚电路VC(Virtual Cir

2、cuit),以保证双方通信所需的一切网络资源。然后双方就沿着已建立的虚电路发送分组。 n这种通信方式如果再使用可靠传输的网络协议,就可使所发送的分组无差错按序到达终点。 应用层运输层网络层数据链路层物理层应用层运输层网络层数据链路层物理层H1 H2虚电路H1 发送给 H2 的所有分组都沿着同一条虚电路传送虚电路是逻辑连接n虚电路表示这只是一条逻辑上的连接,分组都沿着这条逻辑连接按照存储转发方式传送,而并不是真正建立了一条物理连接。n请注意,电路交换的电话通信是先建立了一条真正的连接。因此分组交换的虚连接和电路交换的连接只是类似,但并不完全一样。 2、数据报服务n因特网采用的设计思路:n网络层向

3、上只提供简单灵活的、无连接的、尽最大努力交付的数据报服务。n网络在发送分组时不需要先建立连接。每一个分组(即 IP 数据报)独立发送,与其前后的分组无关(不进行编号)。n网络层不提供服务质量的承诺。即所传送的分组可能出错、丢失、重复和失序(不按序到达终点),当然也不保证分组传送的时限。 尽最大努力交付的好处n由于传输网络不提供端到端的可靠传输服务,这就使网络中的路由器可以做得比较简单,而且价格低廉(与电信网的交换机相比较)。n如果主机(即端系统)中的进程之间的通信需要是可靠的,那么就由网络的主机中的运输层负责(包括差错处理、流量控制等)。n采用这种设计思路的好处是:网络的造价大大降低,运行方式

4、灵活,能够适应多种应用。n因特网能够发展到今日的规模,充分证明了当初采用这种设计思路的正确性。 应用层运输层网络层数据链路层物理层应用层运输层网络层数据链路层物理层H1 H2IP 数据报丢失H1 发送给 H2 的分组可能沿着不同路径传送虚电路服务与数据报服务的对比对比的方面虚电路服务数据报服务思路可靠通信应当由网络来保证可靠通信应当由用户主机来保证连接的建立必须有不需要终点地址仅在连接建立阶段使用,每个分组使用短的虚电路号每个分组都有终点的完整地址分组的转发属于同一条虚电路的分组均按照同一路由进行转发每个分组独立选择路由进行转发当结点出故障时所有通过出故障的结点的虚电路均不能工作出故障的结点可

5、能会丢失分组,一些路由可能会发生变化分组的顺序总是按发送顺序到达终点到达终点时不一定按发送顺序端到端的差错处理和流量控制可以由网络负责,也可以由用户主机负责由用户主机负责4.2 网际协议IP n网际协议 IP 是 TCP/IP 体系中最主要的协议之一。与 IP 协议配套使用的还有四个协议:n地址解析协议 ARP (Address Resolution Protocol)n逆地址解析协议 RARP (Reverse Address Resolution Protocol)n网际控制报文协议 ICMP (Internet Control Message Protocol)n网际组管理协议 IGMP

6、 (Internet Group Management Protocol)网际层的 IP 协议及配套协议各种应用层协议 网络接口层(HTTP, FTP, SMTP 等)物理硬件运输层TCP, UDP应用层ICMPIPRARPARP与各种网络接口网络层(网际层)IGMPn要在全世界范围内把数以百万计的网络互连在一起进行通信,会遇到许多问题需要解决,如:n不同的寻址方案n不同的最大分组长度n不同的网络接入机制n不同的超时控制n不同的差错恢复方法n不同的状态报告方法n不同的路由选择技术n不同的用户接入控制n不同的服务(面向连接服务和无连接服务)n不同的管理与控制方式 4.2.1 虚拟互连网络 n将各

7、种网络互相连接起来要使用一些中间设备:n中间设备又称为中间系统或中继(relay)系统。n物理层使用的中间设备:转发器(repeater)。n数据链路层使用的中间设备:网桥或桥接器(bridge)。n网络层使用的中间设备:路由器(router)。n网络层以上使用的中间设备:网关(gateway)。 n当中继系统是转发器或网桥时,一般并不称之为网络互连,因为这仅仅是把一个网络扩大了,而这仍然是一个网络。 n网关由于比较复杂,目前使用得较少。n互联网都是指用路由器进行互连的网络。n由于历史的原因,许多有关 TCP/IP 的文献将网络层使用的路由器称为网关。 互连网络与虚拟互连网络 网络网络网络网络

8、网络(a) 实际的互连网络(b) 虚拟互连网络路由器 虚拟互连网络(互联网)虚拟互连网络的意义 n所谓虚拟互连网络也就是逻辑互连网络,它的意思就是互连起来的各种物理网络的异构性本来是客观存在的,但是我们利用 IP 协议就可以使这些性能各异的网络从用户角度看起来好像是一个统一的网络。n使用 IP 协议的虚拟互连网络可简称为 IP 网。n使用虚拟互连网络的好处是:当互联网上的主机进行通信时,就好像在一个网络上通信一样,而看不见互连的各具体的网络异构细节。 举例:n当很多异构网络通过路由器互连起来时,如果所有的网络都使用相同的IP协议,那么,在网络层讨论问题就显得很方便了,n下面用一个例子来说明:源

9、主机H1要把一个IP数据报发送给目的主机H2:主机H1先查找自己的路由表,看目的主机是否在本网络上,如是,则不需要经过任何路由器而是直接交付,如不是,则必须把IP数据报发送给某个路由器(如下图中的R1),R1查找了自己的路由表后,知道应当把数据报转发给R2进行间接交付,这样一直转发下去,最后由R5把数据报直接交付给目的主机H25432154321主机H1 主机 H2 R1 R4 R5 R2 R3 R1 R2 R3H1 R5 H2 R4间接交付间接交付间接交付间接交付间接交付直接交付32 21 132 21 132 21 132 21 132 21 1分组在互联网中的传送 从网络层看 IP 数据

10、报的传送 n如果我们只从网络层考虑问题,那么 IP 数据报就可以想象是在网络层中传送。网络层网络层网络层网络层网络层网络层网络层IP 数据报H1R1R2R3R4R5H24.2.2 分类的 IP 地址1. IP 地址及其表示方法 n我们把整个因特网看成为一个单一的、抽象的网络。IP 地址就是给每个连接在因特网上的主机(或路由器)分配一个在全世界范围是唯一的 32 位的标识符。nIP地址的编址方法共经过了三个历史阶段:(1)分类的IP地址:这是最基本的编址方法(2)子网的划分:1985年通过(3)构成超网:1993年提出后得到推广应用分类 IP 地址 n两级的 IP 地址可以记为:IP 地址 :=

11、 , (4-1)net-id24 位host-id24 位net-id16 位net-id8 位IP 地址中的网络号字段和主机号字段 0A 类地址host-id16 位B 类地址C 类地址01 1host-id8 位D 类地址 1 1 1 0多 播 地 址E 类地址保 留 为 今 后 使 用1 1 1 101net-id24 位host-id24 位net-id16 bitnet-id8 位IP 地址中的网络号字段和主机号字段 0A 类地址host-id16 位B 类地址C 类地址01 1host-id8 位D 类地址 1 1 1 0多 播 地 址E 类地址保 留 为 今 后 使 用1 1 1

12、 101D 类地址是多播地址 net-id24 位host-id24 位net-id16 bitnet-id8 位IP 地址中的网络号字段和主机号字段 0A 类地址host-id16 位B 类地址C 类地址01 1host-id8 位D 类地址 1 1 1 0多 播 地 址E 类地址保 留 为 今 后 使 用1 1 1 101E 类地址保留为今后使用 点分十进制记法 10000000000010110000001100011111 机器中存放的 IP 地址是 32 位 二进制代码10000000 00001011 00000011 00011111 每隔 8 位插入一个空格能够提高可读性采用点

13、分十进制记法则进一步提高可读性128.11.3.31 128 11 3 31 将每 8 位的二进制数转换为十进制数2. 常用的三种类别的 IP 地址 IP 地址的使用范围 网络 最大 第一个 最后一个 每个网络类别 网络数 可用的 可用的 中最大的 网络号 网络号 主机数 A 126 (27 2) 1 126 16,777,214 B 16,383(214 1) 128.1 191.255 65,534 C 2,097,151 (221 1) 192.0.1 223.255.255 254IP 地址的一些重要特点 (1) IP 地址是一种分等级的地址结构。分两个等级的好处是:n第一,IP 地址

14、管理机构在分配 IP 地址时只分配网络号,而剩下的主机号则由得到该网络号的单位自行分配。这样就方便了 IP 地址的管理。n第二,路由器仅根据目的主机所连接的网络号来转发分组(而不考虑目的主机号),这样就可以使路由表中的项目数大幅度减少,从而减小了路由表所占的存储空间。 IP 地址的一些重要特点 (2) 实际上 IP 地址是标志一个主机(或路由器)和一条链路的接口。 n当一个主机同时连接到两个网络上时,该主机就必须同时具有两个相应的 IP 地址,其网络号 net-id 必须是不同的。这种主机称为多归属主机(multihomed host)。n由于一个路由器至少应当连接到两个网络(这样它才能将 I

15、P 数据报从一个网络转发到另一个网络),因此一个路由器至少应当有两个不同的 IP 地址。 IP 地址的一些重要特点 (3) 用转发器或网桥连接起来的若干个局域网仍为一个网络,因此这些局域网都具有同样的网络号 net-id。(4) 所有分配到网络号 net-id 的网络,范围很小的局域网,还是可能覆盖很大地理范围的广域网,都是平等的。 互联网中的 IP 地址 B222.1.1.222.1.1.1222.1.1.2222.1.1.3222.1.1.4R1222.1.2.5222.1.2.2222.1.2.1222.1.2.3222.1.2.4222.1.2.222.1.6.1222.1.5.122

16、2.1.5.2222.1.6.2222.1.4.1222.1.4.2222.1.3.3222.1.3.2222.1.3.1R3R2222.1.3.LAN3N3N2222.1.4.222.1.5.222.1.6.N1LAN2LAN1互联网在同一个局域网上的主机或路由器的IP 地址中的网络号必须是一样的。图中的网络号就是 IP 地址中的 net-id互联网中的 IP 地址 B222.1.1.222.1.1.1222.1.1.2222.1.1.3222.1.1.4R1222.1.2.5222.1.2.2222.1.2.1222.1.2.3222.1.2.4222.1.2.222.1.6.1222.1

17、.5.1222.1.5.2222.1.6.2222.1.4.1222.1.4.2222.1.3.3222.1.3.2222.1.3.1R3R2222.1.3.LAN3N3N2222.1.4.222.1.5.222.1.6.N1LAN2LAN1互联网在同一个局域网上的主机或路由器的IP 地址中的网络号必须是一样的。图中的网络号就是 IP 地址中的 net-id互联网中的 IP 地址 B222.1.1.222.1.1.1222.1.1.2222.1.1.3222.1.1.4R1222.1.2.5222.1.2.2222.1.2.1222.1.2.3222.1.2.4222.1.2.222.1.6.

18、1222.1.5.1222.1.5.2222.1.6.2222.1.4.1222.1.4.2222.1.3.3222.1.3.2222.1.3.1R3R2222.1.3.LAN3N3N2222.1.4.222.1.5.222.1.6.N1LAN2LAN1互联网在同一个局域网上的主机或路由器的IP 地址中的网络号必须是一样的。图中的网络号就是 IP 地址中的 net-id互联网中的 IP 地址 B222.1.1.222.1.1.1222.1.1.2222.1.1.3222.1.1.4R1222.1.2.5222.1.2.2222.1.2.1222.1.2.3222.1.2.4222.1.2.22

19、2.1.6.1222.1.5.1222.1.5.2222.1.6.2222.1.4.1222.1.4.2222.1.3.3222.1.3.2222.1.3.1R3R2222.1.3.LAN3N3N2222.1.4.222.1.5.222.1.6.N1LAN2LAN1互联网路由器总是具有两个或两个以上的 IP 地址。路由器的每一个接口都有一个不同网络号的 IP 地址。 互联网中的 IP 地址 B222.1.1.222.1.1.1222.1.1.2222.1.1.3222.1.1.4R1222.1.2.5222.1.2.2222.1.2.1222.1.2.3222.1.2.4222.1.2.222

20、.1.6.1222.1.5.1222.1.5.2222.1.6.2222.1.4.1222.1.4.2222.1.3.3222.1.3.2222.1.3.1R3R2222.1.3.LAN3N3N2222.1.4.222.1.5.222.1.6.N1LAN2LAN1互联网路由器总是具有两个或两个以上的 IP 地址。路由器的每一个接口都有一个不同网络号的 IP 地址。 互联网中的 IP 地址 B222.1.1.222.1.1.1222.1.1.2222.1.1.3222.1.1.4R1222.1.2.5222.1.2.2222.1.2.1222.1.2.3222.1.2.4222.1.2.222.

21、1.6.1222.1.5.1222.1.5.2222.1.6.2222.1.4.1222.1.4.2222.1.3.3222.1.3.2222.1.3.1R3R2222.1.3.LAN3N3N2222.1.4.222.1.5.222.1.6.N1LAN2LAN1互联网路由器总是具有两个或两个以上的 IP 地址。路由器的每一个接口都有一个不同网络号的 IP 地址。 互联网中的 IP 地址 B222.1.1.222.1.1.1222.1.1.2222.1.1.3222.1.1.4R1222.1.2.5222.1.2.2222.1.2.1222.1.2.3222.1.2.4222.1.2.222.1

22、.6.1222.1.5.1222.1.5.2222.1.6.2222.1.4.1222.1.4.2222.1.3.3222.1.3.2222.1.3.1R3R2222.1.3.LAN3N3N2222.1.4.222.1.5.222.1.6.N1LAN2LAN1互联网两个路由器直接相连的接口处,可指明也可不指明 IP 地址。如指明 IP 地址,则这一段连线就构成了一种只包含一段线路的特殊“网络” 。现在常不指明 IP 地址。4.2.3 IP 地址与硬件地址 TCP 报文IP 数据报MAC 帧应用层数据首部首部尾部首部链路层及以下使用硬件地址硬件地址网络层及以上 使用 IP 地址IP 地址整个的I

23、P数据报成为MAC帧的数据,因而在数据链路层看不见数据报的IP地址。n如下图所示:三个局域网用两个路由器R1和R2互连起来,主机H1和主机H2通信,这两个主机的IP地址分别是IP1和IP2,而它们的硬件地址是HA1和HA2,通信的路径是:H1经过 R1 转发再经过 R2 转发H2HA1HA5HA4HA3HA6主机 H1主机 H2路由器 R1硬件地址路由器 R2HA2IP1IP2局域网局域网局域网查找路由表查找路由表HA1HA5HA4HA3HA6主机 H1主机 H2路由器 R1硬件地址路由器 R2HA2IP1IP2局域网局域网局域网IP1HA1HA5HA4HA3HA6HA2IP6主机 H1主机

24、H2路由器 R1IP 层上的互联网MAC 帧IP2IP4IP3IP5路由器 R2 IP1 IP2IP1 IP2IP1 IP2从 HA1 到 HA3从 HA4 到 HA5从 HA6 到 HA2MAC 帧MAC 帧IP 数据报从协议栈的层次上看数据的流动HA1HA5HA4HA3HA6主机 H1主机 H2路由器 R1硬件地址路由器 R2HA2IP1IP2局域网局域网局域网IP1HA1HA5HA4HA3HA6HA2IP6主机 H1主机 H2路由器 R1IP 层上的互联网MAC 帧IP2IP4IP3IP5路由器 R2 IP1 IP2IP1 IP2IP1 IP2从 HA1 到 HA3从 HA4 到 HA5

25、从 HA6 到 HA2MAC 帧MAC 帧IP 数据报从虚拟的 IP 层上看 IP 数据报的流动HA1HA5HA4HA3HA6主机 H1主机 H2路由器 R1硬件地址路由器 R2HA2IP1IP2局域网局域网局域网IP1HA1HA5HA4HA3HA6HA2IP6主机 H1主机 H2路由器 R1IP 层上的互联网MAC 帧IP2IP4IP3IP5路由器 R2 IP1 IP2IP1 IP2IP1 IP2从 HA1 到 HA3从 HA4 到 HA5从 HA6 到 HA2MAC 帧MAC 帧IP 数据报在链路上看 MAC 帧的流动IP1HA1HA5HA4HA3HA6HA2IP6主机 H1主机 H2路由

26、器 R1IP 层上的互联网MAC 帧IP2IP4IP3IP5路由器 R2 IP1 IP2IP1 IP2IP1 IP2从 HA1 到 HA3从 HA4 到 HA5从 HA6 到 HA2MAC 帧MAC 帧IP 数据报在 IP 层抽象的互联网上只能看到 IP 数据报图中的 IP1IP2 表示从源地址 IP1 到目的地址 IP2 两个路由器的 IP 地址并不出现在 IP 数据报的首部中 IP1HA1HA5HA4HA3HA6HA2IP6主机 H1主机 H2路由器 R1IP 层上的互联网MAC 帧IP2IP4IP3IP5路由器 R2 IP1 IP2IP1 IP2IP1 IP2从 HA1 到 HA3从 H

27、A4 到 HA5从 HA6 到 HA2MAC 帧MAC 帧IP 数据报路由器只根据目的站的 IP 地址的网络号进行路由选择 IP1HA1HA5HA4HA3HA6HA2IP6主机 H1主机 H2路由器 R1IP 层上的互联网IP2IP4IP3IP5路由器 R2 IP1 IP2IP1 IP2IP1 IP2MAC 帧从 HA1 到 HA3从 HA4 到 HA5从 HA6 到 HA2MAC 帧MAC 帧IP 数据报在具体的物理网络的链路层只能看见 MAC 帧而看不见 IP 数据报 IP1HA1HA5HA4HA3HA6HA2IP6主机 H1主机 H2路由器 R1IP 层上的互联网IP2IP4IP3IP5

28、路由器 R2 IP1 IP2IP1 IP2IP1 IP2MAC 帧从 HA1 到 HA3从 HA4 到 HA5从 HA6 到 HA2MAC 帧MAC 帧IP 数据报IP层抽象的互联网屏蔽了下层很复杂的细节在抽象的网络层上讨论问题,就能够使用统一的、抽象的 IP 地址研究主机和主机或主机和路由器之间的通信 nend4.2.4 地址解析协议 ARP 和逆地址解析协议 RARP IP 地址物理地址ARP物理地址IP 地址RARP地址解析协议 ARPn不管网络层使用的是什么协议,在实际网络的链路上传送数据帧时,最终还是必须使用硬件地址。 n每一个主机都设有一个 ARP 高速缓存(ARP cache),

29、里面有所在的局域网上的各主机和路由器的 IP 地址到硬件地址的映射表。n当主机 A 欲向本局域网上的某个主机 B 发送 IP 数据报时,就先在其 ARP 高速缓存中查看有无主机 B 的 IP 地址。如有,就可查出其对应的硬件地址,再将此硬件地址写入 MAC 帧,然后通过局域网将该 MAC 帧发往此硬件地址。 ARP 响应AYXBZ主机 B 向 A 发送ARP 响应分组 主机 A 广播发送ARP 请求分组 ARP 请求ARP 请求ARP 请求ARP 请求209.0.0.5209.0.0.600-00-C0-15-AD-1808-00-2B-00-EE-0A我是 209.0.0.5,硬件地址是 0

30、0-00-C0-15-AD-18我想知道主机 209.0.0.6 的硬件地址我是 209.0.0.6硬件地址是 08-00-2B-00-EE-0AAYXBZ209.0.0.5209.0.0.600-00-C0-15-AD-18ARP 高速缓存的作用n为了减少网络上的通信量,主机 A 在发送其 ARP 请求分组时,就将自己的 IP 地址到硬件地址的映射写入 ARP 请求分组。n当主机 B 收到 A 的 ARP 请求分组时,就将主机 A 的这一地址映射写入主机 B 自己的 ARP 高速缓存中。这对主机 B 以后向 A 发送数据报时就更方便了。 应当注意的问题nARP 是解决同一个局域网上的主机或路

31、由器的 IP 地址和硬件地址的映射问题。n如果所要找的主机和源主机不在同一个局域网上,那么就要通过 ARP 找到一个位于本局域网上的某个路由器的硬件地址,然后把分组发送给这个路由器,让这个路由器把分组转发给下一个网络。剩下的工作就由下一个网络来做。使用 ARP 的四种典型情况 n发送方是主机,要把IP数据报发送到本网络上的另一个主机。这时用 ARP 找到目的主机的硬件地址。 n发送方是主机,要把 IP 数据报发送到另一个网络上的一个主机。这时用 ARP 找到本网络上的一个路由器的硬件地址。剩下的工作由这个路由器来完成。 n发送方是路由器,要把 IP 数据报转发到本网络上的一个主机。这时用 AR

32、P 找到目的主机的硬件地址。 n发送方是路由器,要把 IP 数据报转发到另一个网络上的一个主机。这时用 ARP 找到本网络上的一个路由器的硬件地址。剩下的工作由这个路由器来完成。 我们不直接使用硬件地址进行通信 n由于全世界存在着各式各样的网络,它们使用不同的硬件地址。要使这些异构网络能够互相通信就必须进行非常复杂的硬件地址转换工作,因此几乎是不可能的事。n连接到因特网的主机都拥有统一的 IP 地址,它们之间的通信就像连接在同一个网络上那样简单方便,因为调用 ARP 来寻找某个路由器或主机的硬件地址都是由计算机软件自动进行的,对用户来说是看不见这种调用过程的。 逆地址解析协议 RARP n逆地

33、址解析协议 RARP 使只知道自己硬件地址的主机能够知道其 IP 地址。n这种主机往往是无盘工作站。 因此 RARP协议目前已很少使用。 4.2.5 IP 数据报的格式 n一个 IP 数据报由首部和数据两部分组成。n首部固定部分可变部分n固定长度,共 20 字节,是所有 IP 数据报必须具有的。n如下图所示:固定部分可变部分04816192431版 本标志生 存 时 间协 议标 识区 分 服 务总 长 度片 偏 移填 充首 部 检 验 和源 地 址目 的 地 址可 选 字 段 (长 度 可 变)位首部长度数 据 部 分数 据 部 分首 部IP 数据报首部发送在前可变部分首部0481619243

34、1版 本标志生 存 时 间协 议标 识区 分 服 务总 长 度片 偏 移填 充首 部 检 验 和源 地 址目 的 地 址可 选 字 段 (长 度 可 变)位首部长度数 据 部 分数 据 部 分首 部IP 数据报固定部分发送在前首部04816192431版 本标志生 存 时 间协 议标 识总 长 度片 偏 移填 充首 部 检 验 和源 地 址目 的 地 址可 选 字 段 (长 度 可 变)位首部长度数 据 部 分数 据 部 分首 部IP 数据报固定部分可变部分区 分 服 务发送在前首部04816192431版 本标志生 存 时 间协 议标 识总 长 度片 偏 移填 充首 部 检 验 和源 地 址

35、目 的 地 址可 选 字 段 (长 度 可 变)位首部长度数 据 部 分固定部分可变部分版本占 4 位,指 IP 协议的版本目前的 IP 协议版本号为 4 (即 IPv4)区 分 服 务1. IP 数据报首部的固定部分中的各字段 首部04816192431版 本标志生 存 时 间协 议标 识总 长 度片 偏 移填 充首 部 检 验 和源 地 址目 的 地 址可 选 字 段 (长 度 可 变)位首部长度数 据 部 分固定部分可变部分首部长度占 4 位,可表示的最大数值是 15 个单位(一个单位为 4 字节)因此 IP 的首部长度的最大值是 60 字节。区 分 服 务首部04816192431版

36、本标志生 存 时 间协 议标 识总 长 度片 偏 移填 充首 部 检 验 和源 地 址目 的 地 址可 选 字 段 (长 度 可 变)位首部长度数 据 部 分固定部分可变部分区分服务占 8 位,用来获得更好的服务在旧标准中叫做服务类型,但实际上一直未被使用过。1998 年这个字段改名为区分服务。只有在使用区分服务(DiffServ)时,这个字段才起作用。在一般的情况下都不使用这个字段 区 分 服 务首部04816192431版 本标志生 存 时 间协 议标 识总 长 度片 偏 移填 充首 部 检 验 和源 地 址目 的 地 址可 选 字 段 (长 度 可 变)位首部长度数 据 部 分固定部分可

37、变部分总长度占 16 位,指首部和数据之和的长度,单位为字节,因此数据报的最大长度为 65535 字节。总长度必须不超过最大传送单元 MTU。 区 分 服 务首部04816192431版 本标志生 存 时 间协 议标 识总 长 度片 偏 移填 充首 部 检 验 和源 地 址目 的 地 址可 选 字 段 (长 度 可 变)位首部长度数 据 部 分固定部分可变部分标识(identification) 占 16 位,它是一个计数器,用来产生数据报的标识。 区 分 服 务首部04816192431版 本标志生 存 时 间协 议标 识区 分 服 务总 长 度片 偏 移填 充首 部 检 验 和源 地 址目

38、 的 地 址可 选 字 段 (长 度 可 变)位首部长度数 据 部 分固定部分可变部分标志(flag) 占 3 位,目前只有前两位有意义。标志字段的最低位是 MF (More Fragment)。MF 1 表示后面“还有分片”。MF 0 表示最后一个分片。标志字段中间的一位是 DF (Dont Fragment) 。只有当 DF 0 时才允许分片。 首部04816192431版 本标志生 存 时 间协 议标 识总 长 度片 偏 移填 充首 部 检 验 和源 地 址目 的 地 址可 选 字 段 (长 度 可 变)位首部长度数 据 部 分固定部分可变部分片偏移(12 位)指出:较长的分组在分片后某

39、片在原分组中的相对位置。片偏移以 8 个字节为偏移单位。区 分 服 务偏移 = 0/8 = 0偏移 = 1400/8 = 175偏移 = 2800/8 = 350140028003799279913993799需分片的数据报数据报片 1首部数据部分共 3800 字节首部 1首部 2首部 3字节 0数据报片 2数据报片 314002800字节 0【例4-1】 IP 数据报分片首部04816192431版 本标志生 存 时 间协 议标 识总 长 度片 偏 移填 充首 部 检 验 和源 地 址目 的 地 址可 选 字 段 (长 度 可 变)位首部长度数 据 部 分固定部分可变部分生存时间(8 位)记

40、为 TTL (Time To Live)数据报在网络中可通过的路由器数的最大值。区 分 服 务首部04816192431版 本标志生 存 时 间协 议标 识总 长 度片 偏 移填 充首 部 检 验 和源 地 址目 的 地 址可 选 字 段 (长 度 可 变)位首部长度数 据 部 分固定部分可变部分协议(8 位)字段指出此数据报携带的数据使用何种协议以便目的主机的 IP 层将数据部分上交给哪个处理过程区 分 服 务运输层网络层首部TCPUDPICMPIGMPOSPF数 据 部 分IP 数据报协议字段指出应将数据部分交给哪一个进程首部04816192431版 本标志生 存 时 间协 议标 识总 长

41、 度片 偏 移填 充首 部 检 验 和源 地 址目 的 地 址可 选 字 段 (长 度 可 变)位首部长度数 据 部 分固定部分可变部分首部检验和(16 位)字段只检验数据报的首部不检验数据部分。这里不采用 CRC 检验码而采用简单的计算方法。 区 分 服 务发送端接收端16 位字 116 位字 2置为全 0检验和16 位字 n16 位反码算术运算求和取反码数据报首部IP 数据报16 位检验和16 位字 116 位字 216 位检验和16 位字 n16 位反码算术运算求和16 位结果取反码数据部分若结果为 0, 则保留;否则,丢弃该数据报数据部分不参与检验和的计算首部04816192431版

42、本标志生 存 时 间协 议标 识总 长 度片 偏 移填 充首 部 检 验 和源 地 址目 的 地 址可 选 字 段 (长 度 可 变)位首部长度数 据 部 分固定部分可变部分源地址和目的地址都各占 4 字节区 分 服 务2. IP 数据报首部的可变部分 nIP 首部的可变部分就是一个选项字段,用来支持排错、测量以及安全等措施,内容很丰富。n选项字段的长度可变,从 1 个字节到 40 个字节不等,取决于所选择的项目。n增加首部的可变部分是为了增加 IP 数据报的功能,但这同时也使得 IP 数据报的首部长度成为可变的。这就增加了每一个路由器处理数据报的开销。n实际上这些选项很少被使用。 4.2.6

43、 IP 层转发分组的流程 n有四个 A 类网络通过三个路由器连接在一起。每一个网络上都可能有成千上万个主机。n可以想像,若按目的主机号来制作路由表,则所得出的路由表就会过于庞大。但若按主机所在的网络地址来制作路由表,那么每一个路由器中的路由表就只包含 4 个项目。这样就可使路由表大大简化。 网 110.0.0.0 网 440.0.0.0 网 330.0.0.0 网 220.0.0.010.0.0.440.0.0.430.0.0.220.0.0.920.0.0.7目的主机所在的网络下一跳地址20.0.0.030.0.0.010.0.0.040.0.0.020.0.0.730.0.0.1直接交付,

44、接口 1直接交付,接口 0路由器 R2 的路由表30.0.0.110.0.0.440.0.0.430.0.0.220.0.0.920.0.0.730.0.0.1链路 4链路 3链路 2链路 1R2R3R101R2R3R1在路由表中,对每一条路由,最主要的是(目的网络地址,下一跳地址) 查找路由表根据目的网络地址就能确定下一跳路由器,这样做的结果是:n IP 数据报最终一定可以找到目的主机所在目的网络上的路由器(可能要通过多次的间接交付)。n 只有到达最后一个路由器时,才试图向目的主机进行直接交付。 特定主机路由 n这种路由是为特定的目的主机指明一个路由。n采用特定主机路由可使网络管理人员能更方

45、便地控制网络和测试网络,同时也可在需要考虑某种安全问题时采用这种特定主机路由。 默认路由(default route)n路由器还可采用默认路由以减少路由表所占用的空间和搜索路由表所用的时间。n这种转发方式在一个网络只有很少的对外连接时是很有用的。n如果一个主机连接在一个小网络上,而这个网络只用一个路由器和因特网连接,那么在这种情况下使用默认路由是非常合适的。 N1R1因特网目的网络 下一跳 N1 直接 N2 R2 默认 R1路由表N2R2只要目的网络不是 N1 和 N2,就一律选择默认路由,把数据报先间接交付路由器 R1,让 R1 再转发给下一个路由器。 必须强调指出 nIP 数据报的首部中没

46、有地方可以用来指明“下一跳路由器的 IP 地址”。n当路由器收到待转发的数据报,不是将下一跳路由器的 IP 地址填入 IP 数据报,而是送交下层的网络接口软件。n网络接口软件使用 ARP 负责将下一跳路由器的 IP 地址转换成硬件地址,并将此硬件地址放在链路层的 MAC 帧的首部,然后根据这个硬件地址找到下一跳路由器。 分组转发算法 (1) 从数据报的首部提取目的主机的 IP 地址 D, 得出目的网络地址为 N。(2) 若网络 N 与此路由器直接相连,则把数据报直接交付目的主机 D;否则是间接交付,执行(3)。(3) 若路由表中有目的地址为 D 的特定主机路由,则把数据报传送给路由表中所指明的

47、下一跳路由器;否则,执行(4)。(4) 若路由表中有到达网络 N 的路由,则把数据报传送给路由表指明的下一跳路由器;否则,执行(5)。(5) 若路由表中有一个默认路由,则把数据报传送给路由表中所指明的默认路由器;否则,执行(6)。(6) 报告转发分组出错。 nend4.3 划分子网和构造超网4.3.1 划分子网1. 从两级 IP 地址到三级 IP 地址 n在 ARPANET 的早期,IP 地址的设计确实不够合理。nIP 地址空间的利用率有时很低。 n给每一个物理网络分配一个网络号会使路由表变得太大因而使网络性能变坏。 n两级的 IP 地址不够灵活。 n从 1985 年起在 IP 地址中又增加了

48、一个“子网号字段”,使两级的 IP 地址变成为三级的 IP 地址。n这种做法叫作划分子网(subnetting) 。划分子网已成为因特网的正式标准协议。 三级的 IP 地址 n划分子网纯属一个单位内部的事情。单位对外仍然表现为没有划分子网的网络。n从主机号借用若干个位作为子网号 subnet-id,而主机号 host-id 也就相应减少了若干个位。IP地址 := , , (4-2) 划分子网的基本思路 145.13.3.10145.13.3.11145.13.3.101145.13.7.34145.13.7.35145.13.7.56145.13.21.23145.13.21.9145.13.

49、21.8所有到网络 145.13.0.0的分组均到达此路由器我的网络地址是 145.13.0.0R1R3R2网络145.13.0.0一个未划分子网的 B 类网络145.13.0.0划分为三个子网后对外仍是一个网络 145.13.3.10145.13.3.11145.13.3.101145.13.7.34145.13.7.35145.13.7.56145.13.21.23145.13.21.9145.13.21.8子网 145.13.21.0子网 145.13.3.0 子网 145.13.7.0所有到达网络 145.13.0.0的分组均到达此路由器网络145.13.0.0R1R3R2n当没有划分

50、子网时,IP 地址是两级结构。n划分子网后 IP 地址就变成了三级结构。n划分子网只是把 IP 地址的主机号 host-id 这部分进行再划分,而不改变 IP 地址原来的网络号 net-id。 划分子网后变成了三级结构 n从一个 IP 数据报的首部并无法判断源主机或目的主机所连接的网络是否进行了子网划分。n使用子网掩码(subnet mask)可以找出 IP 地址中的子网部分。 2. 子网掩码IP 地址的各字段和子网掩码 145 . 13 .3 . 10两级 IP 地址子网号为 3 的网络的网络号三级 IP 地址主机号子网掩码net-idhost-id子网的网络地址1 1 1 1 1 1 1

51、1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 10 0 0 0 0 0 0 00net-idsubnet-idhost-id145 . 13 .145 . 13 . 33 . 10网络地址=(IP 地址) AND (子网掩码) 网络号 net-id主机号 host-id两级 IP 地址网络号三级 IP 地址主机号net-idhost-idsubnet-id子网号子网掩码子网的网络地址1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 10 0 0 0 0 0 0 0net-idsubnet-id0逐位进行 AND 运算1 1 1 1 1

52、 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 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 01 1 1 1 1 1 1 1 1 1 1 1 1 1 1 11 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 0net-idnet-idhost-id 为全 0net-id网络地址A类地址默认子网掩码255.0.0.0网络地址B类地址默认子网掩码255.255.0.0网络地址C类地址默认子网掩码255.255.255.0host-id 为全 0host

53、-id 为全 0默认子网掩码 子网掩码是一个重要属性n子网掩码是一个网络或一个子网的重要属性。n路由器在和相邻路由器交换路由信息时,必须把自己所在网络(或子网)的子网掩码告诉相邻路由器。n路由器的路由表中的每一个项目,除了要给出目的网络地址外,还必须同时给出该网络的子网掩码。n若一个路由器连接在两个子网上就拥有两个网络地址和两个子网掩码。141 . 14 . 0 1 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0【例4-2】已知 IP 地址是 141.14.72.24,子网掩码是 255.255.192.0。试求网络地址。

54、 (a) 点分十进制表示的 IP 地址(c) 子网掩码是 255.255.192.00 0 0 0 0 0 0 0141 . 14 . 72 . 24141 . 14 .64 . 0. 00 1 0 0 1 0 0 0141 . 14 . 24(b) IP 地址的第 3 字节是二进制(d) IP 地址与子网掩码逐位相与(e) 网络地址(点分十进制表示)141 . 14 . 0 1 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0【例4-3】在上例中,若子网掩码改为255.255.224.0。试求网络地址,讨论所得结果。 (a

55、) 点分十进制表示的 IP 地址(c) 子网掩码是 255.255.224.00 0 0 0 0 0 0 0141 . 14 . 72 . 24141 . 14 .64 . 0. 00 1 0 0 1 0 0 0141 . 14 . 24(b) IP 地址的第 3 字节是二进制(d) IP 地址与子网掩码逐位相与(e) 网络地址(点分十进制表示)不同的子网掩码得出相同的网络地址。但不同的掩码的效果是不同的。 n在不划分子网的两级 IP 地址下,从 IP 地址得出网络地址是个很简单的事。但在划分子网的情况下,从 IP 地址却不能唯一地得出网络地址来,这是因为网络地址取决于那个网络所采用的子网掩码

56、,但数据报的首部并没有提供子网掩码的信息。n因此分组转发的算法也必须做相应的改动。路由表必须包含三项内容:目的网络地址、子网掩码和下一跳地址。 4.3.2 使用子网掩码时分组的转发在划分子网的情况下路由器转发分组的算法 (1) 从收到的分组的首部提取目的 IP 地址 D。(2) 先用各网络的子网掩码和 D 逐位相“与”,看是否和 相应的网络地址匹配。若匹配,则将分组直接交付。 否则就是间接交付,执行(3)。(3) 若路由表中有目的地址为 D 的特定主机路由,则将 分组传送给指明的下一跳路由器;否则,执行(4)。(4) 用路由表中的每一行的子网掩码和 D 逐位相“与”, 其结果为N,若N与该行的

57、目的网络地址匹配,则将分组传送给该行指明的下一跳路由器;否则,执行(5)。(5) 若路由表中有一个默认路由,则将分组传送给路由表 中所指明的默认路由器;否则,执行(6)。(6) 报告转发分组出错。128.30.33.10目的网络地址子网掩码下一跳128.30.33.0128.30.33.128128.30.36.0255.255.255.128255.255.255.128255.255.255.0接口 0接口 1R2128.30.33.13H1子网1: 网络地址 128.30.33.0 子网掩码 255.255.255.128128.30.33.130R1 的路由表(未给出默认路由器)R11

58、R2子网2:网络地址 128.30.33.128 子网掩码 255.255.255.128H2128.30.33.13801128.30.33.129H3128.30.36.2子网3:网络地址 128.30.36.0 子网掩码 255.255.255.0128.30.36.12【例4-4】已知互联网和路由器 R1 中的路由表。主机 H1 向 H2 发送分组。试讨论 R1 收到 H1 向 H2 发送的分组后查找路由表的过程。 主机 H1 要发送分组给 H2 128.30.33.10目的网络地址子网掩码下一跳128.30.33.0128.30.33.128128.30.36.0255.255.25

59、5.128255.255.255.128255.255.255.0接口 0接口 1R2R1 的路由表(未给出默认路由器)128.30.33.13H1子网1: 网络地址 128.30.33.0 子网掩码 255.255.255.128128.30.33.130R11R2子网2:网络地址 128.30.33.128 子网掩码 255.255.255.128H2128.30.33.13801128.30.33.129H3128.30.36.2子网3:网络地址 128.30.36.0 子网掩码 255.255.255.0128.30.36.12要发送的分组的目的 IP 地址:128.30.33.138

60、请注意:H1 并不知道 H2 连接在哪一个网络上。H1 仅仅知道 H2 的 IP 地址是128.30.33.138因此 H1 首先检查主机 128.30.33.138 是否连接在本网络上如果是,则直接交付;否则,就送交路由器 R1,并逐项查找路由表。128.30.33.10目的网络地址子网掩码下一跳128.30.33.0128.30.33.128128.30.36.0255.255.255.128255.255.255.128255.255.255.0接口 0接口 1R2H1子网1: 网络地址 128.30.33.0 子网掩码 255.255.255.128128.30.33.130R11R2

61、子网2:网络地址 128.30.33.128 子网掩码 255.255.255.128H2128.30.33.13128.30.33.13801128.30.33.129H3128.30.36.2子网3:网络地址 128.30.36.0 子网掩码 255.255.255.0128.30.36.12主机 H1 首先将本子网的子网掩码 255.255.255.128与分组的 IP 地址 128.30.33.138 逐比特相“与”(AND 操作) 255.255.255.128 AND 128.30.33.138 的计算255 就是二进制的全 1,因此 255 AND xyz = xyz,这里只需计

62、算最后的 128 AND 138 即可。128 10000000138 10001010逐比特 AND 操作后:10000000 128255.255.255.128128. 30. 33.138128. 30. 33.128逐比特 AND 操作 H1 的网络地址因此 H1 必须把分组传送到路由器 R1然后逐项查找路由表128.30.33.10目的网络地址子网掩码下一跳128.30.33.0128.30.33.128128.30.36.0255.255.255.128255.255.255.128255.255.255.0接口 0接口 1R2R1 的路由表(未给出默认路由器)128.30.33

63、.13H1子网1: 网络地址 128.30.33.0 子网掩码 255.255.255.128128.30.33.130R11R2子网2:网络地址 128.30.33.128 子网掩码 255.255.255.128H2128.30.33.13801128.30.33.129H3128.30.36.2子网3:网络地址 128.30.36.0 子网掩码 255.255.255.0128.30.36.12路由器 R1 收到分组后就用路由表中第 1 个项目的子网掩码和 128.30.33.138 逐比特 AND 操作 128.30.33.10目的网络地址子网掩码下一跳128.30.33.0128.3

64、0.33.128128.30.36.0255.255.255.128255.255.255.128255.255.255.0接口 0接口 1R2R1 的路由表(未给出默认路由器)128.30.33.13H1子网1: 网络地址 128.30.33.0 子网掩码 255.255.255.128128.30.33.130R11R2子网2:网络地址 128.30.33.128 子网掩码 255.255.255.128H2128.30.33.13801128.30.33.129H3128.30.36.2子网3:网络地址 128.30.36.0 子网掩码 255.255.255.0128.30.36.12

65、255.255.255.128 AND 128.30.33.138 = 128.30.33.128不匹配!(因为128.30.33.128 与路由表中的 128.30.33.0 不一致)R1 收到的分组的目的 IP 地址:128.30.33.138不一致路由器 R1 再用路由表中第 2 个项目的子网掩码和 128.30.33.138 逐比特 AND 操作 128.30.33.10目的网络地址子网掩码下一跳128.30.33.0128.30.33.128128.30.36.0255.255.255.128255.255.255.128255.255.255.0接口 0接口 1R2R1 的路由表(

66、未给出默认路由器)128.30.33.13H1子网1: 网络地址 128.30.33.0 子网掩码 255.255.255.128128.30.33.130R11R2子网2:网络地址 128.30.33.128 子网掩码 255.255.255.128H2128.30.33.13801128.30.33.129H3128.30.36.2子网3:网络地址 128.30.36.0 子网掩码 255.255.255.0128.30.36.12255.255.255.128 AND 128.30.33.138 = 128.30.33.128匹配!这表明子网 2 就是收到的分组所要寻找的目的网络R1 收

67、到的分组的目的 IP 地址:128.30.33.138一致!划分子网在一定程度上缓解了因特网在发展中遇到的困难。然而在 1992 年因特网仍然面临三个必须尽早解决的问题,这就是:nB 类地址在 1992 年已分配了近一半,眼看就要在 1994 年 3 月全部分配完毕!n因特网主干网上的路由表中的项目数急剧增长(从几千个增长到几万个)。n整个 IPv4 的地址空间最终将全部耗尽。4.3.3 无分类编址 CIDR1. 网络前缀 n1987 年,RFC 1009 就指明了在一个划分子网的网络中可同时使用几个不同的子网掩码。使用变长子网掩码 VLSM (Variable Length Subnet M

68、ask)可进一步提高 IP 地址资源的利用率。n在 VLSM 的基础上又进一步研究出无分类编址方法,它的正式名字是无分类域间路 由 选 择 CIDR (Classless Inter-Domain Routing)。 IP 编址问题的演进 nCIDR 消除了传统的 A 类、B 类和 C 类地址以及划分子网的概念,因而可以更加有效地分配 IPv4 的地址空间。nCIDR使 用 各 种 长 度 的 “网 络 前 缀”(network-prefix)来代替分类地址中的网络号和子网号。nIP 地址从三级编址(使用子网掩码)又回到了两级编址。 CIDR 最主要的特点 n无分类的两级编址的记法是: IP地

69、址 := , (4-3) nCIDR 还使用“斜线记法”(slash notation),它又称为CIDR记法,即在 IP 地址后面加上一个斜线“/”,然后写上网络前缀所占的位数(这个数值对应于三级编址中子网掩码中 1 的个数)。nCIDR 把网络前缀都相同的连续的 IP 地址组成“CIDR 地址块”。 无分类的两级编址 CIDR 地址块 n128.14.32.0/20 表示的地址块共有 212 个地址(因为斜线后面的 20 是网络前缀的位数,所以这个地址的主机号是 12 位)。n这个地址块的起始地址是 128.14.32.0。n在不需要指出地址块的起始地址时,也可将这样的地址块简称为“/20

70、 地址块”。n128.14.32.0/20 地址块的最小地址:128.14.32.0n即:10000000 00001110 00100000 00000000n128.14.32.0/20 地址块的最大地址:128.14.47.255n即: 10000000 00001110 00101111 11111111n全 0 和全 1 的主机号地址一般不使用。128.14.32.0/20 表示的地址(212 个地址)10000000 00001110 00100000 0000000010000000 00001110 00100000 0000000110000000 00001110 0010

71、0000 0000001010000000 00001110 00100000 0000001110000000 00001110 00100000 0000010010000000 00001110 00100000 0000010110000000 00001110 00101111 1111101110000000 00001110 00101111 1111110010000000 00001110 00101111 1111110110000000 00001110 00101111 1111111010000000 00001110 00101111 11111111所有地址的 2

72、0 位前缀都是一样的最小地址最大地址n一个 CIDR 地址块可以表示很多地址,这种地址的聚合常称为路由聚合,它使得路由表中的一个项目可以表示很多个(例如上千个)原来传统分类地址的路由。路由聚合也称为构成超网(supernetting)。nCIDR 虽然不使用子网了,但仍然使用“掩码”这一名词(但不叫子网掩码)。n对于 /20 地址块,它的掩码是 20 个连续的 1。 斜线记法中的数字就是掩码中1的个数。 路由聚合(route aggregation) CIDR 记法的其他形式 n10.0.0.0/10 可简写为 10/10,也就是把点分十进制中低位连续的 0 省略。n10.0.0.0/10 隐

73、含地指出 IP 地址 10.0.0.0 的掩码是 255.192.0.0。此掩码可表示为 11111111 11000000 00000000 0000000025519200掩码中有 10 个连续的 1构成超网 n前缀长度不超过 23 位的 CIDR 地址块都包含了多个 C 类地址。n这些 C 类地址合起来就构成了超网。nCIDR 地址块中的地址数一定是 2 的整数次幂。n网络前缀越短,其地址块所包含的地址数就越多。而在三级结构的IP地址中,划分子网是使网络前缀变长。 CIDR 地址块划分举例 因特网206.0.68.0/22206.0.64.0/18ISP大学 X一系二系三系四系206.0

74、.71.128/26206.0.71.192/26206.0.68.0/25206.0.68.128/25206.0.69.0/25206.0.69.128/25206.0.70.0/26206.0.70.64/26206.0.70.128/26206.0.70.192/26206.0.70.0/24206.0.71.0/25206.0.71.0/26206.0.71.64/26206.0.71.128/25206.0.68.0/23 单位 地址块 二进制表示 地址数 ISP 206.0.64.0/18 11001110.00000000.01* 16384 大学 206.0.68.0/22

75、11001110.00000000.010001* 1024 一系 206.0.68.0/23 11001110.00000000.0100010* 512 二系 206.0.70.0/24 11001110.00000000.01000110.* 256 三系 206.0.71.0/25 11001110.00000000.01000111.0* 128 四系 206.0.71.128/25 11001110.00000000.01000111.1* 128CIDR 地址块划分举例 因特网206.0.68.0/22206.0.64.0/18ISP大学 X一系二系三系四系206.0.71.12

76、8/26206.0.71.192/26206.0.68.0/25206.0.68.128/25206.0.69.0/25206.0.69.128/25206.0.70.0/26206.0.70.64/26206.0.70.128/26206.0.70.192/26206.0.70.0/24206.0.71.0/25206.0.71.0/26206.0.71.64/26206.0.71.128/25206.0.68.0/23这个 ISP 共有 64 个 C 类网络。如果不采用 CIDR 技术,则在与该 ISP 的路由器交换路由信息的每一个路由器的路由表中,就需要有 64 个项目。但采用地址聚合后

77、,只需用路由聚合后的 1 个项目 206.0.64.0/18 就能找到该 ISP。 2. 最长前缀匹配n使用 CIDR 时,路由表中的每个项目由“网络前缀”和“下一跳地址”组成。在查找路由表时可能会得到不止一个匹配结果。应当从匹配结果中选择具有最长网络前缀的路由:最长前缀匹配(longest-prefix matching)。n网络前缀越长,其地址块就越小,因而路由就越具体(more specific) 。n最长前缀匹配又称为最长匹配或最佳匹配。 最长前缀匹配举例收到的分组的目的地址 D = 206.0.71.128路由表中的项目:206.0.68.0/22 (ISP) 206.0.71.12

78、8/25 (四系)查找路由表中的第 1 个项目AND D = 206. 0. 01000100. 0第 1 个项目 206.0.68.0/22 的掩码 M 有 22 个连续的 1。M = 11111111 11111111 11111100 00000000因此只需把 D 的第 3 个字节转换成二进制。M = 11111111 11111111 11111100 00000000206. 0. 01000100. 0与 206.0.68.0/22 匹配最长前缀匹配举例收到的分组的目的地址 D = 206.0.71.128路由表中的项目:206.0.68.0/22 (ISP) 206.0.71.

79、128/25 (四系)再查找路由表中的第 2 个项目AND D = 206. 0. 71. 10000000第 2 个项目 206.0.71.128/25 的掩码 M 有 25 个连续的 1。M = 11111111 11111111 11111111 10000000因此只需把 D 的第 4 个字节转换成二进制。M = 11111111 11111111 11111111 10000000206. 0. 71. 10000000与 206.0.71.128/25 匹配最长前缀匹配D AND (11111111 11111111 11111100 00000000) = 206.0.68.0/

80、22 匹配D AND (11111111 11111111 11111111 10000000) = 206.0.71.128/25 匹配n选择两个匹配的地址中更具体的一个,即选择最长前缀的地址。 3. 使用二叉线索查找路由表n当路由表的项目数很大时,怎样设法减小路由表的查找时间就成为一个非常重要的问题。 n为了进行更加有效的查找,通常是将无分类编址的路由表存放在一种层次的数据结构中,然后自上而下地按层次进行查找。这里最常用的就是二叉线索(binary trie)。nIP 地址中从左到右的比特值决定了从根结点逐层向下层延伸的路径,而二叉线索中的各个路径就代表路由表中存放的各个地址。n为了提高二

81、叉线索的查找速度,广泛使用了各种压缩技术。 用 5 个前缀构成的二叉线索 32 位的 IP 地址 唯一前缀01000110 00000000 00000000 00000000 010001010110 00000000 00000000 00000000 010101100001 00000000 00000000 00000000 01110110000 00000010 00000000 00000000 1011010111011 00001010 00000000 00000000 10111000011111110用5个前缀构成的二叉线索4.4 网际控制报文协议 ICMPn为了提高

82、 IP 数据报交付成功的机会,在网际层使用了网际控制报文协议 ICMP (Internet Control Message Protocol)。nICMP 允许主机或路由器报告差错情况和提供有关异常情况的报告。nICMP 不是高层协议,而是 IP 层的协议。nICMP 报文作为 IP 层数据报的数据,加上数据报的首部,组成 IP 数据报发送出去。 ICMP 报文的格式 首 部ICMP 报文0数 据 部 分检验和类型代码(这 4 个字节取决于 ICMP 报文的类型)81631IP 数据报前 4 个字节都是一样的ICMP 的数据部分(长度取决于类型)4.4.1 ICMP 报文的种类nICMP 报文

83、的种类有两种,即 ICMP 差错报告报文和 ICMP 询问报文。 nICMP 报文的前 4 个字节是统一的格式,共有三个字段:即类型、代码和检验和。接着的 4 个字节的内容与 ICMP 的类型有关。 ICMP 差错报告报文共有 5 种 n终点不可达 n源点抑制(Source quench) n时间超过 n参数问题 n改变路由(重定向)(Redirect) 不应发送 ICMP 差错报告报文的几种情况 n对 ICMP 差错报告报文不再发送 ICMP 差错报告报文。n对第一个分片的数据报片的所有后续数据报片都不发送 ICMP 差错报告报文。n对具有多播地址的数据报都不发送 ICMP 差错报告报文。n

84、对具有特殊地址(如127.0.0.0 或 0.0.0.0)的数据报不发送 ICMP 差错报告报文。ICMP 询问报文有两种 n回送请求和回答报文n时间戳请求和回答报文下面的几种 ICMP 报文不再使用n信息请求与回答报文n掩码地址请求和回答报文n路由器询问和通告报文 4.4.2 ICMP的应用举例nICMP的一个重要应用就是分组网间探测PING,用来测试两个主机之间的连通性。nPING 使用了 ICMP 回送请求与回送回答报文。nPING 是应用层直接使用网络层 ICMP 的例子,它没有通过运输层的 TCP 或UDP。 PING 的应用举例nend4.5 因特网的路由选择协议4.5.1 有关路

85、由选择协议的几个基本概念1、理想的路由算法路由选择协议的核心就是路由算法,一个理想的路由算法应具有的特点:n算法必须是正确的和完整的。 n算法在计算上应简单。 n算法应能适应通信量和网络拓扑的变化,这就是说,要有自适应性。 n算法应具有稳定性。 n算法应是公平的。 n算法应是最佳的。 关于“最佳路由” n不存在一种绝对的最佳路由算法。n所谓“最佳”只能是相对于某一种特定要求下得出的较为合理的选择而已。n实际的路由选择算法,应尽可能接近于理想的算法。 n路由选择是个非常复杂的问题n它是网络中的所有结点共同协调工作的结果。n路由选择的环境往往是不断变化的,而这种变化有时无法事先知道。 从路由算法的

86、自适应性考虑n静态路由选择策略即非自适应路由选择,其特点是简单和开销较小,但不能及时适应网络状态的变化。 n动态路由选择策略即自适应路由选择,其特点是能较好地适应网络状态的变化,但实现起来较为复杂,开销也比较大。 2. 分层次的路由选择协议n因特网采用分层次的路由选择协议。原因:1、因特网的规模非常大。如果让所有的路由器知道所有的网络应怎样到达,则这种路由表将非常大,处理起来也太花时间。而所有这些路由器之间交换路由信息所需的带宽就会使因特网的通信链路饱和。2、许多单位不愿意外界了解自己单位网络的布局细节和本部门所采用的路由选择协议(这属于本部门内部的事情),但同时还希望连接到因特网上。因此,因

87、特网将整个互联网划分为许多小的自治系统 自治系统 AS(Autonomous System) 自治系统 AS 的定义:在单一的技术管理下的一组路由器,而这些路由器使用一种 AS 内部的路由选择协议和共同的度量以确定分组在该 AS 内的路由,同时还使用一种 AS 之间的路由选择协议用以确定分组在 AS之间的路由。在目前的因特网中,一个大的ISP就是一个自治系统(AS)路由选择协议的分类n内部网关协议 IGP (Interior Gateway Protocol) 即在一个自治系统内部使用的路由选择协议。目前这类路由选择协议使用得最多,如 RIP 和 OSPF 协议。n外部网关协议EGP (Ext

88、ernal Gateway Protocol) 若源站和目的站处在不同的自治系统中,当数据报传到一个自治系统的边界时,就需要使用一种协议将路由选择信息传递到另一个自治系统中。这样的协议就是外部网关协议 EGP。在外部网关协议中目前使用最多的是 BGP-4。 自治系统和内部网关协议、外部网关协议的关系 用内部网关协议(例如,RIP)自治系统 B自治系统 A用外部网关协议(例如,BGP-4)R1R2 用内部网关协议(例如,OSPF)自治系统之间的路由选择也叫做域间路由选择(interdomain routing),在自治系统内部的路由选择叫做域内路由选择(intradomain routing)

89、这里要指出两点 n因特网的早期 RFC 文档中未使用“路由器”而是使用“网关”这一名词。但是在新的 RFC 文档中又使用了“路由器”这一名词。应当把这两个当作同义词。nIGP 和 EGP 是协议类别的名称。但 RFC 在使用 EGP 这个名词时出现了一点混乱,因为最早的一个外部网关协议的协议名字正好也是 EGP。因此在遇到名词 EGP 时,应弄清它是指旧的协议 EGP 还是指外部网关协议 EGP 这个类别。 4.5.2 内部网关协议 RIP (Routing Information Protocol)1. 工作原理n路由信息协议 RIP 是内部网关协议 IGP中最先得到广泛使用的协议。RIP

90、是一种分布式的基于距离向量的路由选择协议。nRIP 协议要求网络中的每一个路由器都要维护从它自己到其他每一个目的网络的距离记录。 “距离”的定义 n从路由器到直接连接的网络的距离定义为 1(也可定义为0,对实现RIP无影响)n从路由器到非直接连接的网络的距离定义为所经过的路由器数加 1。“距离”也称为“跳数”(hop count),因为每经过一个路由器,跳数就加 1。n这里的“距离”实际上指的是“最短距离”, “距离”的定义 nRIP 认为一个好的路由就是它通过的路由器的数目少,即“距离短”。nRIP 允许一条路径最多只能包含 15 个路由器。“距离”的最大值为16 时即相当于不可达。可见 R

91、IP 只适用于小型互联网。nRIP 不能在两个网络之间同时使用多条路由。RIP 选择一个具有最少路由器的路由(即最短路由),哪怕还存在另一条高速(低时延)但路由器较多的路由。 RIP 协议的三个要点 n仅和相邻路由器交换信息。 n交换的信息是当前本路由器所知道的全部信息,即自己的路由表。 n按固定的时间间隔交换路由信息,例如,每隔 30 秒。 路由表的建立过程n路由器在刚刚开始工作时,只知道到直接连接的网络的距离(此距离定义为1)。n以后,每一个路由器也只和数目非常有限的相邻路由器交换并更新路由信息。n经过若干次更新后,所有的路由器最终都会知道到达本自治系统中任何一个网络的最短距离和下一跳路由

92、器的地址。nRIP 协议的收敛(convergence)过程较快,即在自治系统中所有的结点都得到正确的路由选择信息的过程。 2. 距离向量算法收到相邻路由器(其地址为 X)的一个 RIP 报文:(1) 先修改此 RIP 报文中的所有项目:把“下一跳”字段中的地址都改为 X,并把所有的“距离”字段的值加 1。(2) 对修改后的 RIP 报文中的每一个项目,进行以下步骤:(即和本地路由表比较:)若项目中的目的网络不在路由表中,则把该项目添加到路由表。 否则(即目的网络在路由表中) 若下一跳字段给出的路由器地址是同样的,则把收到的项目替换原路由表中的项目(即更新)。 否则 (即下一跳字段给出的路由器

93、地址是不同样的) 若收到项目中的距离小于路由表中的距离,则进行更新,否则,什么也不做。(3) 若 3 分钟还没有收到相邻路由器的更新路由表,则把此相邻路由器记为不可达路由器,即将距离置为16(距离为16表示不可达)。(4) 返回。例题45(P149)例45:已知路由器R6有表409(a)所示路由表,现收到相邻路由器R4发来的路由更新信息,如表49(b),试更新路由器R6的路由表。目的网络距离下一跳Net23R4Net34R5目的网络距离下一跳Net13R1Net24R2Net31直接交付目的网络距离下一跳Net14R4Net25R4Net32R4ab目的网络距离下一跳Net14R4Net25R

94、4Net32R43. RIP 协议的报文格式现在较新的RIP版本是1998年11月公布的RIP2,RIP2可以支持变长子网掩码和CIDR,此外,RIP2还提供简单的鉴别过程支持多播。下图432是RIP2的报文格式: 4 字节RIP 报文路由信息(20 字节/路由)可重复出现最多 25 个IP 数据报路由标记网络地址地址族标识符距离 (1-16) IP 首部UDP 首部首部路由部分必为 0版本命令 4 字节子网掩码下一跳路由器地址UDP 用户数据报RIP 协议的优缺点 RIP 协议最大的优点就是实现简单,开销较小。nRIP 限制了网络的规模,它能使用的最大距离为 15(16 表示不可达)。nRI

95、P 存在的一个问题是当网络出现故障时,要经过比较长的时间才能将此信息传送到所有的路由器。用图433来说明 R2R1网 1网 3网 2正常情况1 1 1 2 R1R1 说:“我到网 1 的距离是 1,是直接交付。”“1”表示“从本路由器到网 1”“1”表示“距离是 1”“ ”表示“直接交付”R2R1网 1网 3网 2正常情况1 1 1 2 R1R2 说:“我到网 1 的距离是 2,是经过 R1。”“1”表示“从本路由器到网 1”“2”表示“距离是 2”“R1”表示经过 R1R2R1网 1网 3网 2R2R1网 1网 3网 2网 1出了故障正常情况1 1 1 16 1 2 R11 2 R1R1 说

96、:“我到网 1 的距离是 16 (表示无法到达), 是直接交付。”但 R2 在收到 R1 的更新报文之前,还发送原来的报文,因为这时 R2 并不知道 R1 出了故障。R2R1网 1网 3网 2R2R1网 1网 3网 2网 1出了故障正常情况1 1 1 16 1 2 R11 2 R1R1 收到 R2 的更新报文后,误认为可经过 R2 到达网1,于是更新自己的路由表,说:“我到网 1 的距离是 3,下一跳经过 R2”。然后将此更新信息发送给 R2。1 3 R2R2R1网 1网 3网 2R2R1网 1网 3网 2网 1出了故障正常情况1 1 1 16 1 2 R11 2 R1R2 以后又更新自己的路

97、由表为“1, 4, R1”,表明 “我到网 1 距离是 4,下一跳经过 R1”。 1 3 R21 4 R1R2R1网 1网 3网 2R2R1网 1网 3网 2网 1出了故障正常情况1 1 1 16 1 3 R21 5 R21 16 R21 2 R11 2 R11 4 R11 16 R1这样不断更新下去,直到 R1 和 R2 到网 1 的距离都增大到 16 时,R1 和 R2 才知道网 1 是不可达的。 这就是好消息传播得快,而坏消息传播得慢。网络出故障的传播时间往往需要较长的时间(例如数分钟)。这是 RIP 的一个主要缺点。 4.5.3 内部网关协议 OSPF (Open Shortest P

98、ath First)1. OSPF 协议的基本特点:n“开放”表明 OSPF 协议不是受某一家厂商控制,而是公开发表的。n“最短路径优先”是因为使用了 Dijkstra 提出的最短路径算法SPFnOSPF 只是一个协议的名字,它并不表示其他的路由选择协议不是“最短路径优先”。n是分布式的链路状态协议。 三个要点 1、向本自治系统中所有路由器发送信息,这里使用的方法是洪泛法。2、发送的信息就是与本路由器相邻的所有路由器的链路状态,但这只是路由器所知道的部分信息。n“链路状态”就是说明本路由器都和哪些路由器相邻,以及该链路的“度量”(metric)。 3、只有当链路状态发生变化时,路由器才用洪泛法

99、向所有路由器发送此信息。 链路状态数据库(link-state database) n由于各路由器之间频繁地交换链路状态信息,因此所有的路由器最终都能建立一个链路状态数据库。这个数据库实际上就是全网的拓扑结构图,它在全网范围内是一致的(这称为链路状态数据库的同步)。nOSPF 的链路状态数据库能较快地进行更新,使各个路由器能及时更新其路由表。OSPF 的更新过程收敛得快是其重要优点。 OSPF 的区域(area) n为了使 OSPF 能够用于规模很大的网络,OSPF 将一个自治系统再划分为若干个更小的范围,叫作区域。n每一个区域都有一个 32 位的区域标识符(用点分十进制表示)。n区域也不能太

100、大,在一个区域内的路由器最好不超过 200 个。 自治系统 ASOSPF 划分为两种不同的区域 区域 0.0.0.1区域 0.0.0.3主干区域 0.0.0.0至其他自治系统R9R7R6R5R4R3R2R1网 8网 6网 3网 2网 1网 7区域 0.0.0.2网 4网 5R8划分区域 n划分区域的好处就是将利用洪泛法交换链路状态信息的范围局限于每一个区域而不是整个的自治系统,这就减少了整个网络上的通信量。n在一个区域内部的路由器只知道本区域的完整网络拓扑,而不知道其他区域的网络拓扑的情况。nOSPF 使用层次结构的区域划分。在上层的区域叫作主干区域(backbone area)。主干区域的标

101、识符规定为0.0.0.0。主干区域的作用是用来连通其他在下层的区域。 自治系统 AS主干路由器区域 0.0.0.1区域 0.0.0.3主干区域 0.0.0.0至其他自治系统R9R7R6R5R4R3R2R1网 8网 6网 3网 2网 1网 7区域 0.0.0.2网 4网 5R8自治系统 AS区域边界路由器 区域 0.0.0.1区域 0.0.0.3主干区域 0.0.0.0至其他自治系统R9R7R6R5R4R3R2R1网 8网 6网 3网 2网 1网 7区域 0.0.0.2网 4网 5R8OSPF 直接用 IP 数据报传送 nOSPF 不用 UDP 而是直接用 IP 数据报传送。nOSPF 构成的数

102、据报很短。这样做可减少路由信息的通信量。n数据报很短的另一好处是可以不必将长的数据报分片传送。分片传送的数据报只要丢失一个,就无法组装成原来的数据报,而整个数据报就必须重传。 IP 数据报OSPF 分组 IP数据报首部OSPF 分组OSPF 分组首部类型 1 至类型 5 的 OSPF 分组24 字节081631版 本路 由 器 标 识 符类 型分 组 长 度检 验 和鉴 别位鉴 别区 域 标 识 符鉴 别 类 型2. OSPF 的五种分组类型 n类型1,问候(Hello)分组。n类型2,数据库描述(Database Description)分组。n类型3,链路状态请求(Link State R

103、equest)分组。n类型4,链路状态更新(Link State Update)分组, 用洪泛法对全网更新链路状态。n类型5,链路状态确认(Link State Acknowledgment) 分组。 4.5.4 外部网关协议 BGPn1989年公布了新的外部网关协议边界网关协议BGPnBGP 是不同自治系统的路由器之间交换路由信息的协议。 nBGP 较新版本是 2006 年 1 月发表的 BGP-4(BGP 第 4 个版本),即 RFC 4271 4278。 n可以将 BGP-4 简写为 BGP。 BGP 使用的环境却不同 n因特网的规模太大,使得自治系统之间路由选择非常困难。对于自治系统之

104、间的路由选择,要寻找最佳路由是很不现实的。n当一条路径通过几个不同 AS 时,要想对这样的路径计算出有意义的代价是不太可能的。n比较合理的做法是在 AS 之间交换“可达性”信息。 n自治系统之间的路由选择必须考虑有关策略。n因此,边界网关协议 BGP 只能力求寻找一条能够到达目的网络且比较好的路由(不能兜圈子),而并非要寻找一条最佳路由。 BGP 发言人n在配置BGP时,每一个自治系统的管理员要选择至少一个路由器作为该自治系统的“ BGP 发言人” 。n一般说来,两个 BGP 发言人都是通过一个共享网络连接在一起的,而 BGP 发言人往往就是 BGP 边界路由器,但也可以不是 BGP 边界路由

105、器。 BGP 交换路由信息n一个 BGP 发言人与其他自治系统中的 BGP 发言人要交换路由信息,就要先建立 TCP 连接,然后在此连接上交换 BGP 报文以建立 BGP 会话(session),利用 BGP 会话交换路由信息。n使用 TCP 连接能提供可靠的服务,也简化了路由选择协议。n使用 TCP 连接交换路由信息的两个 BGP 发言人,彼此成为对方的邻站或对等站。BGP 发言人和自治系统 AS 的关系 BGP 发言人BGP发言人BGP 发言人BGP 发言人BGP发言人AS1AS3AS2AS5AS4AS 的连通图举例 nBGP 所交换的网络可达性的信息就是要到达某个网络所要经过的一系列 A

106、S。n当 BGP 发言人互相交换了网络可达性的信息后,各 BGP 发言人就根据所采用的策略从收到的路由信息中找出到达各 AS 的较好路由。 AS1AS2AS3AS4AS5BGP 发言人交换路径向量 主干网(AS1)地区 ISP(AS2)地区 ISP(AS3)本地 ISP(AS4)N1, N2本地 ISP(AS5)N3, N4本地 ISP(AS6)N5本地 ISP(AS7)N6, N7自治系统 AS2 的 BGP 发言人通知主干网的 BGP 发言人:“要到达网络 N1, N2, N3 和 N4 可经过 AS2。” BGP 发言人交换路径向量 主干网(AS1)地区 ISP(AS2)地区 ISP(A

107、S3)本地 ISP(AS4)N1, N2本地 ISP(AS5)N3, N4本地 ISP(AS6)N5本地 ISP(AS7)N6, N7主干网还可发出通知:“要到达网络 N5, N6 和 N7 可沿路径(AS1, AS3)。” BGP 协议的特点nBGP 协议交换路由信息的结点数量级是自治系统数的量级,这要比这些自治系统中的网络数少很多。n每一个自治系统中 BGP 发言人(或边界路由器)的数目是很少的。这样就使得自治系统之间的路由选择不致过分复杂。 BGP 协议的特点nBGP 支持 CIDR,因此 BGP 的路由表也就应当包括目的网络前缀、下一跳路由器,以及到达该目的网络所要经过的各个自治系统序

108、列。n在BGP 刚刚运行时,BGP 的邻站是交换整个 BGP 路由表。但以后只需要在发生变化时更新有变化的部分。这样做对节省网络带宽和减少路由器的处理开销方面都有好处。 BGP-4 共使用四种报文 (1) 打开(OPEN)报文,用来与相邻的另一个BGP发言人建立关系。(2) 更新(UPDATE)报文,用来发送某一路由的信息,以及列出要撤消的多条路由。(3) 保活(KEEPALIVE)报文,用来确认打开报文和周期性地证实邻站关系。(4) 通知(NOTIFICATION)报文,用来发送检测到的差错。n在 RFC 2918 中增加了 ROUTE-REFRESH 报文,用来请求对等端重新通告。 BGP

109、 报文具有通用的首部BGP 报文通用首部字节 16 2 1BGP 报文主体部分类 型长 度标 记TCP首部IP 首部BGP 报文TCP 报文4.5.5 路由器的构成 1. 路由器的结构n路由器是一种具有多个输入端口和多个输出端口的专用计算机,其任务是转发分组。也就是说,将路由器某个输入端口收到的分组,按照分组要去的目的地(即目的网络),把该分组从路由器的某个合适的输出端口转发给下一跳路由器。n下一跳路由器也按照这种方法处理分组,直到该分组到达终点为止。 典型的路由器的结构 路由选择路由选择处理机路由选择协议路由表3输入端口3交换结构输入端口输出端口分组转发转发表分组处理输出端口11133122

110、223网络层2数据链路层1物理层“转发”和“路由选择”的区别 n“转发”(forwarding)就是路由器根据转发表将用户的 IP 数据报从合适的端口转发出去。n“路由选择”(routing)则是按照分布式算法,根据从各相邻路由器得到的关于网络拓扑的变化 情况,动态地改变所选择的路由。n路由表是根据路由选择算法得出的。而转发表是从路由表得出的。n在讨论路由选择的原理时,往往不去区分转发表和路由表的区别, 输入端口对线路上收到的分组的处理 n数据链路层剥去帧首部和尾部后,将分组送到网络层的队列中排队等待处理。这会产生一定的时延。 物理层处理数据链路层处理网络层处理 分组排队 交换结构 输入端口的

111、处理从线路接收分组查表和转发输出端口将交换结构传送来的分组发送到线路 n当交换结构传送过来的分组先进行缓存。数据链路层处理模块将分组加上链路层的首部和尾部,交给物理层后发送到外部线路。 物理层处理数据链路层处理网络层处理 分组排队 输出端口的处理向线路发送分组缓存管理交换结构分组丢弃 n若路由器处理分组的速率赶不上分组进入队列的速率,则队列的存储空间最终必定减少到零,这就使后面再进入队列的分组由于没有存储空间而只能被丢弃。n路由器中的输入或输出队列产生溢出是造成分组丢失的重要原因。 2 交换结构I1I3I2O1O2存储器I1I3I2O1O2I1I3I2O1O2O3(a) 通过存储器(c) 通过

112、互连网络(b) 通过总线总线互连网络O3O3nend4.6 IP 多播4.6.1 IP 多播的基本概念n 1988年steve deering首次在其博士论文中提出IP多播的概念。n 1992年3月IETF在因特网范围内首次试验IETF会议声音的多播,当时有20个网点可同时听到会议的声音。n IP多播指一个源点发送到许多个终点,即一对多的通信。nIP多播把收到的一个分组复制成多个副本,可以大大节省网络资源。共有 90 个主机接收视频节目R1R3R4R2视频服务器 M30 个30 个30 个30 个30个30 个90 个不使用多播时需要发送 90 次单播单播多播1 个1 个多播多播多播可明显地减

113、少网络中资源的消耗多播组成员共有 90 个R1R3R4R2视频服务器 M1 个1 个1 个1 个1 个发送 1 次多播复制IP 多播的一些特点n(1) 多播使用组地址 IP 使用 D 类地址支持多播。D类IP地址的前四位是1110,因此,D类地址范围是224.0.0.0239.255.255.255.n我们用每一个D类地址标志一个多播组。这样,D类地址共可标志228个多播组。多播地址只能用于目的地址,而不能用于源地址。(一对多)(2) 永久组地址D类地址中有一些是不能随意使用的,因为有的地址已经被IANA(国际互联网代理成员管理局(IANA)是在国际互联网中使用的IP 地址、域名和许多其它参数

114、的管理机构。 )指派为永久组地址,如:224.0.0.0基地址;224.0.0.1在本子网上的所有参加多播的主机和路由器;224.0.0.2在本子网上的所有参加多播的路由器;224.0.0.3未指派;224.0.1.0238.255.255.255全球范围都可使用的多播地址;239.0.0.0 239. 255.255.255限制在一个组织的范围(3) IP多播可分为两种:只在本局域网上进行硬件多播这种比较简单但很重要,因为现在大部分主机都是通过局域网接入到因特网的。在因特网范围多播4.6.2 在局域网上进行硬件多播 n因特网号码指派管理局 IANA 拥有的以太网地址块的高 24 位为 00-

115、00-5E。n因此 TCP/IP 协议使用的以太网多播地址块的范围是:从 00-00-5E-00-00-00 到 00-00-5E-FF-FF-FF nD 类 IP 地址可供分配的有 28 位,在这 28 位中的前 5 位不能用来构成以太网硬件地址。 D 类 IP 地址与以太网多播地址的映射关系 0000000000000001010111100111008162431D 类 IP 地址这 5 位不使用48 位以太网地址0 1 0 0 5 E表示多播最低 23 位来自 D 类 IP 地址4.6.3 网际组管理协议 IGMP 和多播路由选择协议 1. IP多播需要两种协议n为了使路由器知道多播组

116、成员的信息,需 要 利 用 网 际 组 管 理 协 议 IGMP (Internet Group Management Protocol)。n连接在局域网上的多播路由器还必须和因特网上的其他多播路由器协同工作,以便把多播数据报用最小代价传送给所有的组成员。这就需要使用多播路由选择协议。 IGMP 使多播路由器知道多播组成员信息 128.56.24.34135.27.74.52130.12.14.56130.12.14.43多播组226.15.37.123IGMPIGMPIGMPIGMPR1R4R3R2IGMP 的本地使用范围 nIGMP 并非在因特网范围内对所有多播组成员进行管理的协议。nIG

117、MP 不知道 IP 多播组包含的成员数,也不知道这些成员都分布在哪些网络上。nIGMP 协议是让连接在本地局域网上的多播路由器知道本局域网上是否有主机(严格讲,是主机上的某个进程)参加或退出了某个多播组。 多播路由选择协议比单播路由选择协议复杂得多n多播转发必须动态地适应多播组成员的变化(这时网络拓扑并未发生变化)。请注意,单播路由选择通常是在网络拓扑发生变化时才需要更新路由。n多播路由器在转发多播数据报时,不能仅仅根据多播数据报中的目的地址,而是还要考虑这个多播数据报从什么地方来和要到什么地方去。 n多播数据报可以由没有加入多播组的主机发出,也可以通过没有组成员接入的网络。 2. 网际组管理

118、协议 IGMP n1989 年公布的 RFC 1112(IGMPv1)早已成为了因特网的标准协议。n1997 年公布的 RFC 2236(IGMPv2,建议标准)对 IGMPv1 进行了更新。n2002 年 10 月公布了 RFC 3376(IGMPv3,建议标准),宣布 RFC 2236(IGMPv2)是陈旧的。IGMP 是整个网际协议 IP 的一个组成部分n和 ICMP 相似,IGMP 使用 IP 数据报传递其报文(即 IGMP 报文加上 IP 首部构成 IP 数据报),但它也向 IP 提供服务。n因此,我们不把 IGMP 看成是一个单独的协议,而是属于整个网际协议 IP 的一个组成部分。

119、 IGMP 的工作可分为两个阶段 n第一阶段:当某个主机加入新的多播组时,该主机应向多播组的多播地址发送IGMP 报文,声明自己要成为该组的成员。本地的多播路由器收到 IGMP 报文后,将组成员关系转发给因特网上的其他多播路由器。IGMP 可分为两个阶段 n第二阶段:因为组成员关系是动态的,因此本地多播路由器要周期性地探询本地局域网上的主机,以便知道这些主机是否还继续是组的成员。n只要对某个组有一个主机响应,那么多播路由器就认为这个组是活跃的。n但一个组在经过几次的探询后仍然没有一个主机响应,则不再将该组的成员关系转发给其他的多播路由器。IGMP 采用的一些具体措施 n在主机和多播路由器之间的

120、所有通信都是使用 IP 多播。n多播路由器在探询组成员关系时,只需要对所有的组发送一个请求信息的询问报文,而不需要对每一个组发送一个询问报文。默认的询问速率是每 125 秒发送一次。n当同一个网络上连接有几个多播路由器时,它们能够迅速和有效地选择其中的一个来探询主机的成员关系。 IGMP 采用的一些具体措施(续)n在 IGMP 的询问报文中有一个数值 N,它指明一个最长响应时间(默认值为 10秒)。当收到询问时,主机在 0 到 N 之间随机选择发送响应所需经过的时延。对应于最小时延的响应最先发送。n同一个组内的每一个主机都要监听响应,只要有本组的其他主机先发送了响应,自己就可以不再发送响应了。

121、 3. 多播路由选择协议n多播路由选择协议尚未标准化。n一个多播组中的成员是动态变化的,随时会有主机加入或离开这个多播组。n多播路由选择实际上就是要找出以源主机为根结点的多播转发树。n在多播转发树上的路由器不会收到重复的多播数据报。n对不同的多播组对应于不同的多播转发树。同一个多播组,对不同的源点也会有不同的多播转发树。转发多播数据报使用的方法:(1) 洪泛与剪除n这种方法适合于较小的多播组,而所有的组成员接入的局域网也是相邻接的。n一开始,路由器转发多播数据报使用洪泛的方法(这就是广播)。为了避免兜圈子,采用了叫做反向路径广播 RPB (Reverse Path Broadcasting)的

122、策略。 RPB 的要点 n路由器收到多播数据报时,先检查是否从源点经最短路径传送来的。n若是,就向所有其他方向转发刚才收到的多播数据报(但进入的方向除外),否则就丢弃而不转发。n如果存在几条同样长度的最短路径,那么只能选择一条最短路径,选择的准则就是看这几条最短路径中的相邻路由器谁的 IP 地址最小。 剪除没有组成员的树枝源点R3R4R6R7R8R1R5R2转发多播数据报收到后即丢弃反向路径广播 RPB 和剪除 (2) 隧道技术(tunneling)n隧道技术适用于多播组的位置在地理上很分散的情况。n路由器R1对多播数据报进行再次封装,使之成为单播数据报,然后通过“隧道”发送,如下图所示:不支

123、持多播 的网络隧道多播数据报单播 IP 数据报首部数 据首部数 据网 1 和网 2 中的多播数据报隧道中通行的单播 IP 数据报R2R1网 1(支持多播)网 2(支持多播)(3) 基于核心的发现技术 n这种方法对于多播组的大小在较大范围内变化时都适合。n这种方法是对每一个多播组 G 指定一个核心(core)路由器,给出它的 IP 单播地址。n核心路由器按照前面讲过的方法创建出对应于多播组 G 的转发树。 几种多播路由选择协议 目前,还没有在整个因特网范围使用的多播路由选择协议,下面列出一些建议使用的协议:n距离向量多播路由选择协议 DVMRP (Distance Vector Multicas

124、t Routing Protocol)n基于核心的转发树 CBT (Core Based Tree) n开放最短通路优先的多播扩展 MOSPF (Multicast Extensions to OSPF) n协议无关多播-稀疏方式 PIM-SM (Protocol Independent Multicast-Sparse Mode) n协议无关多播-密集方式 PIM-DM (Protocol Independent Multicast-Dense Mode) 4.7 虚拟专用网 VPN 和网络地址转换 NAT4.7.1 虚拟专用网 VPNn本地地址仅在机构内部使用的 IP 地址,可以由本机构自

125、行分配,而不需要向因特网的管理机构申请。n全球地址全球唯一的IP地址,必须向因特网的管理机构申请。 RFC 1918 指明的专用地址(private address) n10.0.0.0 到 10.255.255.255n172.16.0.0 到 172.31.255.255n192.168.0.0 到 192.168.255.255n这些地址只能用于一个机构的内部通信,而不能用于和因特网上的主机通信。n专用地址只能用作本地地址而不能用作全球地址。在因特网中的所有路由器对目的地址是专用地址的数据报一律不进行转发。 X10.1.0.1用隧道技术实现虚拟专用网 部门 A因特网部门 BR1R2隧道1

126、25.1.2.3194.4.5.6Y10.2.0.3使用隧道技术本地地址本地地址全球地址网络地址 = 10.1.0.0(本地地址)网络地址 = 10.2.0.0(本地地址)X10.1.0.1用隧道技术实现虚拟专用网 部门 A因特网部门 BR1R2隧道125.1.2.3194.4.5.6Y10.2.0.3使用隧道技术加密的从 X 到 Y 的内部数据报外部数据报的数据部分源地址:125.1.2.3目的地址:194.4.5.6数据报首部部门 A部门 BXYR1R2125.1.2.3194.4.5.610.1.0.110.2.0.3虚拟专用网 VPN内联网 intranet 和外联网 extranet

127、(都是基于 TCP/IP 协议) n由部门 A 和 B 的内部网络所构成的虚拟专用网 VPN 又称为内联网(intranet),表示部门 A 和 B 都是在同一个机构的内部。n一个机构和某些外部机构共同建立的虚拟专用网 VPN 又称为外联网(extranet)。 部门 A部门 BXYR1R2125.1.2.3194.4.5.610.1.0.110.2.0.3虚拟专用网 VPN远程接入VPN(remote access VPN) n有的公司可能没有分布在不同场所的部门,但有很多流动员工在外地工作。公司需要和他们保持联系,远程接入 VPN 可满足这种需求。n在外地工作的员工拨号接入因特网,而驻留在

128、员工 PC 机中的 VPN 软件可在员工的 PC 机和公司的主机之间建立 VPN 隧道,因而外地员工与公司通信的内容是保密的,员工们感到好像就是使用公司内部的本地网络。 4.7.2 网络地址转换 NAT (Network Address Translation)n网络地址转换 NAT 方法于1994年提出。n需要在专用网连接到因特网的路由器上安装 NAT 软件。装有 NAT 软件的路由器叫做 NAT路由器,它至少有一个有效的外部全球地址 IPG。n所有使用本地地址的主机在和外界通信时都要在 NAT 路由器上将其本地地址转换成 IPG 才能和因特网连接。 网络地址转换的过程n内部主机 X 用本地地址 IPX 和因特网上主机 Y 通信所发送的数据报必须经过 NAT 路由器。nNAT 路由器将数据报的源地址 IPX 转换成全球地址 IPG,但目的地址 IPY 保持不变,然后发送到因特网。nNAT 路由器收到主机 Y 发回的数据报时,知道数据报中的源地址是 IPY 而目的地址是 IPG。n根据 NAT 转换表,NAT 路由器将目的地址 IPG 转换为 IPX,转发给最终的内部主机 X。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号