资源描述
课件制作人:谢钧 谢希仁计算机网络教程(第 4 版)第 4 章 网络层与网络互连课件制作人:谢钧 谢希仁第 4 章 网络层与网络互连 4.1 网络层概述4.1.1 分组转发和路由选择4.1.2 网络层提供的两种服务4.1.3 虚电路网络4.2 网际协议IP4.2.1 异构网络互连4.2.2 IP地址及编址方式4.2.3 IP地址与物理地址4.2.4 地址解析协议ARP4.2.5 IP数据报的格式4.2.6 IP数据报的转发课件制作人:谢钧 谢希仁第 4 章 网络层(续)4.3 网际控制报文协议ICMP4.3.1 ICMP报文的种类4.3.2 ICMP的应用举例4.4 因特网的路由选择协议4.4.1 有关路由选择协议的几个基本概念4.4.2 内部网关协议RIP4.4.3 内部网关协议OSPF4.4.4 外部网关协议BGP课件制作人:谢钧 谢希仁第 4 章 网络层(续)4.9 下一代的网际协议IPv64.9.1 解决IP地址耗尽的根本措施4.9.2 IPv6的基本首部4.9.3 IPv6的编址4.9.4 从IPv4向IPv6过渡4.9.5 ICMPv64.10 多协议标签交换MPLS课件制作人:谢钧 谢希仁本章最重要的内容(1)虚拟互连网络的概念(2)IP 地址与物理地址的关系(3)传统的分类的 IP 地址(包括子网掩码)和无分类域间路由选择 CIDR(4)路由选择协议的工作原理课件制作人:谢钧 谢希仁4.1 网络层概述4.1.1 分组转发和路由选择课件制作人:谢钧 谢希仁4.1.2 网络层提供的两种服务 n在计算机网络领域,网络层应该向运输层提供怎样的服务(“面向连接”还是“无连接”)曾引起了长期的争论。n争论焦点的实质就是:在计算机通信中,可靠交付应当由谁来负责?是网络还是端系统?课件制作人:谢钧 谢希仁电信网的成功经验让网络负责可靠交付 n面向连接的通信方式 n建立虚电路(Virtual Circuit),以保证双方通信所需的一切网络资源。n如果再使用可靠传输的网络协议,就可使所发送的分组无差错按序到达终点。课件制作人:谢钧 谢希仁应用层运输层网络层数据链路层物理层应用层运输层网络层数据链路层物理层虚电路服务H1 H2虚电路H1 发送给 H2 的所有分组都沿着同一条虚电路传送课件制作人:谢钧 谢希仁虚电路是逻辑连接n虚电路表示这只是一条逻辑上的连接,分组都沿着这条逻辑连接按照存储转发方式传送,而并不是真正建立了一条物理连接。n请注意,电路交换的电话通信是先建立了一条真正的连接。因此分组交换的虚连接和电路交换的连接只是类似,但并不完全一样。课件制作人:谢钧 谢希仁因特网采用的设计思路n网络层向上只提供简单灵活的、无连接的、尽最大努力交付的数据报服务。n网络在发送分组时不需要先建立连接。每一个分组(即 IP 数据报)独立发送,与其前后的分组无关(不进行编号)。n网络层不提供服务质量的承诺。即所传送的分组可能出错、丢失、重复和失序(不按序到达终点),当然也不保证分组传送的时限。课件制作人:谢钧 谢希仁尽最大努力交付的好处n由于传输网络不提供端到端的可靠传输服务,这就使网络中的路由器可以做得比较简单,而且价格低廉(与电信网的交换机相比较)。n如果主机(即端系统)中的进程之间的通信需要是可靠的,那么就由网络的主机中的运输层负责(包括差错处理、流量控制等)。n采用这种设计思路的好处是:网络的造价大大降低,运行方式灵活,能够适应多种应用。n因特网能够发展到今日的规模,充分证明了当初采用这种设计思路的正确性。课件制作人:谢钧 谢希仁应用层运输层网络层数据链路层物理层应用层运输层网络层数据链路层物理层数据报服务H1 H2IP 数据报丢失H1 发送给 H2 的分组可能沿着不同路径传送虚电路服务与数据报服务的对比对比的方面虚电路服务数据报服务思路可靠通信应当由网络来保证可靠通信应当由用户主机来保证连接的建立必须有不需要终点地址仅在连接建立阶段使用,每个分组使用短的虚电路号每个分组都有终点的完整地址分组的转发属于同一条虚电路的分组均按照同一路由进行转发每个分组独立选择路由进行转发当结点出故障时所有通过出故障的结点的虚电路均不能工作出故障的结点可能会丢失分组,一些路由可能会发生变化分组的顺序总是按发送顺序到达终点到达终点时不一定按发送顺序端到端的差错处理和流量控制可以由网络负责,也可以由用户主机负责由用户主机负责课件制作人:谢钧 谢希仁课件制作人:谢钧 谢希仁4.1.3 虚电路网络n一条虚电路的组成如下:n源和目的主机之间的路径(即一系列链路和路由器);nVC号,沿着该路径的每段链路一个号码;n沿着该路径的每台路由器(即虚电路交换机,这里我们统一使用路由器这一名称)中的转发表表项。n属于一条虚电路的分组将在它的首部携带一个VC号。课件制作人:谢钧 谢希仁4.1.3 虚电路网络n一条虚电路在每段链路上可能具有不同的VC号课件制作人:谢钧 谢希仁虚电路转发表n每台中间路由器在转发分组时必须用一个新的VC号替代原来的VC号入接口入接口入入VC出接口出接口出出VC122312110221课件制作人:谢钧 谢希仁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 (Internet Group Management Protocol)课件制作人:谢钧 谢希仁网际层的 IP 协议及配套协议各种应用层协议 网络接口层(HTTP,FTP,SMTP 等)物理硬件运输层TCP,UDP应用层ICMPIPRARPARP与各种网络接口网络层(网际层)IGMP课件制作人:谢钧 谢希仁n互连在一起的网络要进行通信,会遇到许多问题需要解决,如:n不同的寻址方案n不同的最大分组长度n不同的网络接入机制n不同的超时控制n不同的差错恢复方法n不同的状态报告方法n不同的路由选择技术n不同的用户接入控制n不同的服务(面向连接服务和无连接服务)n不同的管理与控制方式 4.2.1 异构网络互连课件制作人:谢钧 谢希仁n中间设备又称为中间系统或中继(relay)系统。n物理层中继系统:转发器(repeater)。n数据链路层中继系统:网桥或桥接器(bridge)。n网络层中继系统:路由器(router)。n网络层以上的中继系统:网关(gateway)。网络互相连接起来要使用一些中间设备 课件制作人:谢钧 谢希仁n当中继系统是转发器或网桥时,一般并不称之为网络互连,因为这仅仅是把一个网络扩大了,而这仍然是一个网络。n网关由于比较复杂,目前使用得较少。n互联网都是指用路由器进行互连的网络。n由于历史的原因,许多有关 TCP/IP 的文献将网络层使用的路由器称为网关。网络互连使用路由器 课件制作人:谢钧 谢希仁互连网络与虚拟互连网络 网络网络网络网络网络(a)互连网络(b)虚拟互连网络路由器 虚拟互连网络(互联网)课件制作人:谢钧 谢希仁虚拟互连网络的意义 n所谓虚拟互连网络也就是逻辑互连网络,它的意思就是互连起来的各种物理网络的异构性本来是客观存在的,但是我们利用 IP 协议就可以使这些性能各异的网络从用户看起来好像是一个统一的网络。n使用 IP 协议的虚拟互连网络可简称为 IP 网。n使用虚拟互连网络的好处是:当互联网上的主机进行通信时,就好像在一个网络上通信一样,而看不见互连的各具体的网络异构细节。5432154321主机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 数据报的传送 n如果我们只从网络层考虑问题,那么 IP 数据报就可以想象是在网络层中传送。网络层网络层网络层网络层网络层网络层网络层IP 数据报H1R1R2R3R4R5H2课件制作人:谢钧 谢希仁4.2.2 IP地址及编址方式n我们把整个因特网看成为一个单一的、抽象的网络。IP 地址就是给每个连接在因特网上的主机(或路由器)分配一个在全世界范围是唯一的 32 位的标识符。nIP 地址现在由因特网名字与号码指派公司ICANN(Internet Corporation for Assigned Names and Numbers)进行分配 课件制作人:谢钧 谢希仁点分十进制记法 10000000000010110000001100011111 机器中存放的 IP 地址是 32 位 二进制代码10000000 00001011 00000011 00011111 每隔 8 位插入一个空格能够提高可读性采用点分十进制记法则进一步提高可读性128.11.3.31 128 11 3 31 将每 8 位的二进制数转换为十进制数课件制作人:谢钧 谢希仁IP 地址的编址方法 n分类编址。这是最基本的编址方法,在 1981 年就通过了相应的标准协议。n划分子网。这是对最基本的编址方法的改进,其标准RFC 950在 1985 年通过。n无分类编址。这是目前因特网所使用的编址方法。1993 年提出后很快就得到推广应用。课件制作人:谢钧 谢希仁1.分类 IP 地址 n每一类地址都由两个固定长度的字段组成,其中一个字段是网络号 net-id,它标志主机(或路由器)所连接到的网络,而另一个字段则是主机号 host-id,它标志该主机(或路由器)。n两级的 IP 地址可以记为:IP 地址:=,(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 101课件制作人:谢钧 谢希仁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 101A 类地址的网络号字段 net-id 为 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 1 01B 类地址的网络号字段 net-id 为 2 字节课件制作人:谢钧 谢希仁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 101C 类地址的网络号字段 net-id 为 3 字节课件制作人:谢钧 谢希仁net-id24 bithost-id24 位net-id16 位net-id8 位IP 地址中的网络号字段和主机号字段 0A 类地址host-id16 位B 类地址C 类地址01 1host-id8 位D 类地址 1 1 1 0多 播 地 址E 类地址保 留 为 今 后 使 用1 1 1 101A 类地址的主机号字段 host-id 为 3 字节课件制作人:谢钧 谢希仁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 101B 类地址的主机号字段 host-id 为 2 字节课件制作人:谢钧 谢希仁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 101C 类地址的主机号字段 host-id 为 1 字节课件制作人:谢钧 谢希仁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 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 类地址保留为今后使用 课件制作人:谢钧 谢希仁课件制作人:谢钧 谢希仁常用的三种类别的 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 254课件制作人:谢钧 谢希仁2.划分子网n分类编址方式表面上看起来非常合理,但实际上并不够合理。nIP 地址空间的利用率有时很低。n给每一个物理网络分配一个网络号会使路由表变得太大因而使网络性能变坏。n两级的 IP 地址不够灵活。课件制作人:谢钧 谢希仁n从 1985 年起在 IP 地址中又增加了一个“子网号字段”,使两级的 IP 地址变成为三级的 IP 地址。n这种做法叫作划分子网(subnetting)。划分子网已成为因特网的正式标准协议。三级的 IP 地址 课件制作人:谢钧 谢希仁n划分子网纯属一个单位内部的事情。单位对外仍然表现为没有划分子网的网络。n从主机号借用若干个位作为子网号 subnet-id,而主机号 host-id 也就相应减少了若干个位。IP地址:=,(4-2)划分子网的基本思路 课件制作人:谢钧 谢希仁划分子网在一定程度上缓解了因特网在发展中遇到的困难。然而在 1992 年因特网仍然面临三个必须尽早解决的问题,这就是:nB 类地址在 1992 年已分配了近一半,眼看就要在 1994 年 3 月全部分配完毕!n因特网主干网上的路由表中的项目数急剧增长(从几千个增长到几万个)。n整个 IPv4 的地址空间最终将全部耗尽。3.无分类编址 CIDR课件制作人:谢钧 谢希仁n1987 年,RFC 1009 就指明了在一个划分子网的网络中可同时使用几个不同的子网掩码。使用变长子网掩码 VLSM(Variable Length Subnet Mask)可进一步提高 IP 地址资源的利用率。n在 VLSM 的基础上又进一步研究出无分类编址方法,它的正式名字是无分类域间路由选择 CIDR(Classless Inter-Domain Routing)。IP 编址问题的演进 课件制作人:谢钧 谢希仁nCIDR 消除了传统的 A 类、B 类和 C 类地址以及划分子网的概念,因而可以更加有效地分配 IPv4 的地址空间。nCIDR使 用 各 种 长 度 的“网 络 前 缀”(network-prefix)来代替分类地址中的网络号和子网号。nIP 地址从三级编址(使用子网掩码)又回到了两级编址。CIDR 最主要的特点 课件制作人:谢钧 谢希仁n无分类的两级编址的记法是:IP地址:=,(4-3)nCIDR 把网络前缀都相同的连续的 IP 地址组成“CIDR 地址块”,每块中的地址个数是2的乘方。n将“CIDR 地址块”分配给一个组织,该组织还可以将该地址块划分为多个更小的地址块(前缀更长)分配给组织内的小单位。n用不定长的网络前缀来替代原来分类IP地址中的网络号,路由器按目的地址块进行选路和转发。无分类的两级编址 n在分类编址中,给定一个IP地址,就确定了它的网络号和主机号。但在无分类编址中,由于网络前缀是不定长,IP地址本身并不能确定其网络前缀和主机号。n使用子网掩码(subnet mask)可以找出 IP 地址中的网络部分(网络前缀)。nCIDR 虽然不使用子网了,但仍然使用“掩码”或“子网掩码”这一名词。子网掩码课件制作人:谢钧 谢希仁n用32位的子网掩码来表示网络前缀的长度nCIDR 还使用“斜线记法”,它又称为CIDR记法,即在 IP 地址面加上一个斜线“/”,然后写上网络前缀所占的位数。子网掩码200.23.16.3/2311001000000101110001000000000011网络前缀网络前缀主机号主机号11111111111111111111111000000000255.255.254.0子网掩码:子网掩码与IP地址进行按按位与位与操作得到该IP地址网络前缀(网络号)!课件制作人:谢钧 谢希仁课件制作人:谢钧 谢希仁CIDR 记法的其他形式 n10.0.0.0/10 可简写为 10/10,也就是把点分十进制中低位连续的 0 省略。n10.0.0.0/10 隐含地指出 IP 地址 10.0.0.0 的掩码是 255.192.0.0。此掩码可表示为 11111111 11000000 00000000 0000000025519200掩码中有 10 个连续的 1课件制作人:谢钧 谢希仁CIDR 记法的其他形式 n10.0.0.0/10 可简写为 10/10,也就是将点分十进制中低位连续的 0 省略。n10.0.0.0/10 相当于指出 IP 地址 10.0.0.0 的掩码是 255.192.0.0,即 11111111 11000000 00000000 00000000n网络前缀的后面加一个星号*的表示方法 如 00001010 00*,在星号*之前是网络前缀,而星号*表示 IP 地址中的主机号,可以是任意值。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 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-id 为全 0默认子网掩码 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-1】已知 IP 地址是 141.14.72.24,子网掩码是 255.255.192.0。试求网络地址。(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-2】在上例中,若子网掩码改为255.255.224.0。试求网络地址,讨论所得结果。(a)点分十进制表示的 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)网络地址(点分十进制表示)不同的子网掩码得出相同的网络地址。但不同的掩码的效果是不同的。课件制作人:谢钧 谢希仁课件制作人:谢钧 谢希仁CIDR 地址块 n128.14.32.0/20 表示的地址块共有 212 个地址(因为斜线后面的 20 是网络前缀的位数,所以这个地址的主机号是 12 位)。n这个地址块的起始地址是 128.14.32.0。n在不需要指出地址块的起始地址时,也可将这样的地址块简称为“/20 地址块”。n128.14.32.0/20 地址块的最小地址:128.14.32.0n128.14.32.0/20 地址块的最大地址:128.14.47.255n全 0 和全 1 的主机号地址一般不使用。128.14.32.0/20 表示的地址(212 个地址)10000000 00001110 00100000 0000000010000000 00001110 00100000 0000000110000000 00001110 00100000 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所有地址的 20 位前缀都是一样的最小地址最大地址课件制作人:谢钧 谢希仁课件制作人:谢钧 谢希仁构成超网 n前缀长度不超过 23 位的 CIDR 地址块都包含了多个 C 类地址。n这些 C 类地址合起来就构成了超网。nCIDR 地址块中的地址数一定是 2 的整数次幂。n网络前缀越短,其地址块所包含的地址数就越多。CIDR 地址块划分举例 因特网206.0.68.0/22206.0.64.0/18ISP大学 X一系二系三系四系206.0.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 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*128课件制作人:谢钧 谢希仁课件制作人:谢钧 谢希仁4.特殊的IP地址网络前缀主机号源地址使用目的地址使用代表的意思全0全0可以不可在本网络上的本主机(见6.7节DHCP协议)全0host-id可以不可在本网络上的某个主机host-id全1全1不可可以只在本网络上进行广播(各路由器均不转发)net-id全1不可可以对net-id上的所有主机进行广播net-id全0不可不可网络地址,用于标识网络前缀为net-id的网络127非全0全1可以可以用作本地软件环回测试之用互联网中的 IP 地址 课件制作人:谢钧 谢希仁由路由器互连起来的每个网络有一个唯一的网络前缀(由IP地址和子网掩码共同确定)。主机号为全0的IP地址常表示该网络的网络地址。互联网中的 IP 地址 课件制作人:谢钧 谢希仁各网络的子网掩码可以不同,即网络前缀的长度可以不同,因此各自的地址空间大小也不相同。互联网中的 IP 地址 课件制作人:谢钧 谢希仁连接在同一个网络上的主机或路由器的IP地址的网络前缀必须与该网络的网络前缀一样。互联网中的 IP 地址 课件制作人:谢钧 谢希仁用网桥(它只在链路层工作)互连的网段仍然是一个网络,只能有一个网络地址或网络前缀。互联网中的 IP 地址 课件制作人:谢钧 谢希仁主机号全为0和全为1的IP地址有特殊用途(后面将要介绍),不能分配给主机或路由器使用。互联网中的 IP 地址 课件制作人:谢钧 谢希仁当两个路由器直接相连时(例如通过一条租用线路),在连线两端的接口处,可以分配也可以不分配IP地址。课件制作人:谢钧 谢希仁4.2.3 IP 地址与物理地址 TCP 报文IP 数据报MAC 帧应用层数据首部首部尾部首部链路层及以下使用硬件地址硬件地址网络层及以上 使用 IP 地址IP 地址物理地址(也称为硬件地址)HA1HA5HA4HA3HA6主机 H1主机 H2路由器 R1硬件地址路由器 R2HA2IP1IP2局域网局域网局域网通信的路径H1经过 R1 转发再经过 R2 转发H2查找路由表查找路由表课件制作人:谢钧 谢希仁HA1HA5HA4HA3HA6主机 H1主机 H2路由器 R1硬件地址路由器 R2HA2IP1IP2局域网局域网局域网IP1HA1HA5HA4HA3HA6HA2IP6主机 H1主机 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从 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路由器 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从 HA4 到 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路由器 R2 IP1 IP2IP1 IP2IP1 IP2MAC 帧从 HA1 到 HA3从 HA4 到 HA5从 HA6 到 HA2MAC 帧MAC 帧IP 数据报IP层抽象的互联网屏蔽了下层很复杂的细节在抽象的网络层上讨论问题,就能够使用统一的、抽象的 IP 地址研究主机和主机或主机和路由器之间的通信 课件制作人:谢钧 谢希仁课件制作人:谢钧 谢希仁4.2.4 地址解析协议 ARPIP 地址物理地址ARP物理地址IP 地址RARP课件制作人:谢钧 谢希仁地址解析协议 ARPn不管网络层使用的是什么协议,在实际网络的链路上传送数据帧时,最终还是必须使用硬件地址。n每一个主机都设有一个 ARP 高速缓存(ARP cache),里面有所在的局域网上的各主机和路由器的 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,硬件地址是 00-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-18课件制作人:谢钧 谢希仁课件制作人:谢钧 谢希仁ARP 高速缓存的作用n为了减少网络上的通信量,主机 A 在发送其 ARP 请求分组时,就将自己的 IP 地址到硬件地址的映射写入 ARP 请求分组。n当主机 B 收到 A 的 ARP 请求分组时,就将主机 A 的这一地址映射写入主机 B 自己的 ARP 高速缓存中。这对主机 B 以后向 A 发送数据报时就更方便了。课件制作人:谢钧 谢希仁地址映射项目的生存时间nARP把保存在高速缓存中的每一个映射地址项目都设置生存时间(例如,10 20分钟)。凡超过生存时间的项目就从高速缓存中删除掉。n设置这种地址映射项目的生存时间是为了保证高速缓存中信息的新鲜性。课件制作人:谢钧 谢希仁应当注意的问题nARP 是解决同一个局域网上的主机或路由器的 IP 地址和硬件地址的映射问题。n如果所要找的主机和源主机不在同一个局域网上,那么就要通过 ARP 找到一个位于本局域网上的某个路由器的硬件地址,然后把分组发送给这个路由器,让这个路由器把分组转发给下一个网络。剩下的工作就由下一个网络来做。课件制作人:谢钧 谢希仁应当注意的问题(续)n从IP地址到硬件地址的解析是自动进行的,主机的用户对这种地址解析过程是不知道的。n只要主机或路由器要和本网络上的另一个已知 IP 地址的主机或路由器进行通信,ARP 协议就会自动地将该 IP 地址解析为链路层所需要的硬件地址。课件制作人:谢钧 谢希仁使用 ARP 的四种典型情况 n发送方是主机,要把IP数据报发送到本网络上的另一个主机。这时用 ARP 找到目的主机的硬件地址。n发送方是主机,要把 IP 数据报发送到另一个网络上的一个主机。这时用 ARP 找到本网络上的一个路由器的硬件地址。剩下的工作由这个路由器来完成。n发送方是路由器,要把 IP 数据报转发到本网络上的一个主机。这时用 ARP 找到目的主机的硬件地址。n发送方是路由器,要把 IP 数据报转发到另一个网络上的一个主机。这时用 ARP 找到本网络上的一个路由器的硬件地址。剩下的工作由这个路由器来完成。课件制作人:谢钧 谢希仁什么我们不直接使用硬件地址进行通信?n由于全世界存在着各式各样的网络,它们使用不同的硬件地址。要使这些异构网络能够互相通信就必须进行非常复杂的硬件地址转换工作,因此几乎是不可能的事。n连接到因特网的主机都拥有统一的 IP 地址,它们之间的通信就像连接在同一个网络上那样简单方便,因为调用 ARP 来寻找某个路由器或主机的硬件地址都是由计算机软件自动进行的,对用户来说是看不见这种调用过程的。课件制作人:谢钧 谢希仁4.2.5 IP 数据报的格式 n一个 IP 数据报由首部和数据两部分组成。n首部的前一部分是固定长度,共 20 字节,是所有 IP 数据报必须具有的。n在首部的固定部分的后面是一些可选字段,其长度是可变的。固定部分可变部分04816192431版 本标志生 存 时 间协 议标 识区 分 服 务总 长 度片 偏 移填 充首 部 检 验 和源 地 址目 的 地 址可 选 字 段 (长 度 可 变)位首部长度数 据 部 分数 据 部 分首 部IP 数据报首部发送在前课件制作人:谢钧 谢希仁可变部分首部04816192431版 本标志生 存 时 间协 议标 识区 分 服 务总 长 度片 偏 移填 充首 部 检 验 和源 地 址目 的 地 址可 选 字 段 (长 度 可 变)位首部长度数 据 部 分数 据 部 分首 部IP 数据报固定部分发送在前课件制作人:谢钧 谢希仁首部04816192431版 本标志生 存 时 间协 议标 识总 长 度片 偏 移填 充首 部 检 验 和源 地 址目 的 地 址可 选 字 段 (长 度 可 变)位首部长度数 据 部 分数 据 部 分首 部IP 数据报固定部分可变部分区 分 服 务发送在前课件制作人:谢钧 谢希仁首部04816192431版 本标志生 存 时 间协 议标 识总 长 度片 偏 移填 充首 部 检 验 和源 地 址目 的 地 址可 选 字 段 (长 度 可 变)位首部长度数 据 部 分固定部分可变部分版本占 4 位,指 IP 协议的版本目前的 IP 协议版本号为 4(即 IPv4)区 分 服 务1.IP 数据报首部的固定部分中的各字段 课件制作人:谢钧 谢希仁首部04816192431版 本标志生 存 时 间协 议标 识总 长 度片 偏 移填 充首 部 检 验 和源 地 址目 的 地 址可 选 字 段 (长 度 可 变)位首部长度数 据 部 分固定部分可变部分首部长度占 4 位,可表示的最大数值是 15 个单位(一个单位为 4 字节)因此 IP 的首部长度的最大值是 60 字节。区 分 服 务课件制作人:谢钧 谢希仁首部04816192431版 本标志生 存 时 间协 议标 识总 长 度片 偏 移填 充首 部 检 验 和源 地 址目 的 地 址可 选 字 段 (长 度 可 变)位首部长度数 据 部 分固定部分可变部分区分服务占 8 位,用来获得更好的服务在旧标准中叫做服务类型,但实际上一直未被使用过。1998 年这个字段改名为区分服务。只有在使用区分服务(DiffServ)时,这个字段才起作用。在一般的情况下都不使用这个字段 区 分 服 务课件制作人:谢钧 谢希仁首部04816192431版 本标志生 存 时 间协 议标 识总 长 度片 偏 移填 充首 部 检 验 和源 地 址目 的 地 址可 选 字 段 (长 度 可 变)位首部长度数 据 部 分固定部分可变部分总长度占 16 位,指首部和数据之和的长度,单位为字节,因此数据报的最大长度为 65535 字节。总长度必须不超过最大传送单元 MTU。区 分 服 务课件制作人:谢钧 谢希仁首部04816192431版 本标志生 存 时 间协 议标 识总 长 度片 偏 移填 充首 部 检 验 和源 地 址目 的 地 址可 选 字 段 (长 度 可 变)位首部长度数 据 部 分固定部分可变部分标识(identification)占 16 位,它是一个计数器,用来产生数据报的标识。区 分 服 务课件制作人:谢钧 谢希仁首部04816192431版 本标志生 存 时 间协 议标 识区 分 服 务总 长 度片 偏 移填 充首 部 检 验 和源 地 址目 的 地 址可 选 字 段 (长 度 可 变)位首部长度数 据 部 分固定部分可变部分标志(flag)占 3 位,目前只有前两位有意义。标志字段的最低位是 MF(More Fragment)。MF 1 表示后面“还有分片”。MF 0 表示最后一个分片。标志字段中间的一位是 DF(Dont Fragment)。只有当 DF 0 时才允许分片。课件制作人:谢钧 谢希仁首部04816192431版 本标志生 存 时 间协 议标 识总 长 度片 偏 移填 充首 部 检 验 和源 地 址目 的 地 址可 选 字 段 (长 度 可 变)位首部长度数 据 部 分固定部分可变部分片偏移(12 位)指出:较长的分组在分片后某片在原分组中的相对位置。片偏移以 8 个字节为偏移单位。区 分 服 务课件制作人:谢钧 谢希仁偏移=0/8=0偏移=0/8=0偏移=1400/8=175偏移=2800/8=350140028003799279913993799需分片的数据报数据报片 1首部数据部分共 3800 字节首部 1首部 2首部 3字节 0数据报片 2数据报片 314002800字节 0【例4-3】IP 数据报分片课件制作人:谢钧 谢希仁首部04816192431版 本标志生 存 时 间协 议标 识总 长 度片 偏 移填 充首 部 检 验 和源 地 址目 的 地 址可 选 字 段 (长 度 可 变)位首部长度数 据 部 分固定部分可变部分生存时间(8 位)记为 TTL(Time To Live)数据报在网络中可通过的路由器数的最大值。区 分 服 务课件制作人:谢钧 谢希仁首部04816192431版 本标志生 存 时 间协 议标 识总 长 度片 偏 移填 充首 部 检 验 和源 地 址目 的 地 址可 选 字 段 (长 度 可 变)位首部长度数 据 部 分固定部分可变部分协议(8 位)字段指出此数据报携带的数据使用何种协议以便目的主机的 IP 层将数据部分上交给哪个处理过程区 分 服 务课件制作人:谢钧 谢希仁运输层网络层首部TCPUDPICMPIGMPOSPF数 据 部 分IP 数据报协议字段指出应将数据部分交给哪一个进程课件制作人:谢钧 谢希仁首部04816192431版 本标志生 存 时 间协 议标 识总 长 度片 偏 移填 充首 部 检 验 和源 地 址目 的 地 址可 选 字 段 (长 度 可 变)位首部长度数 据 部 分固定部分可变部分首部检验和(16 位)字段只检验数据报的首部不检验数据部分。这里不采用 CRC 检验码而采用简单的计算方法。区 分 服 务课件制作人:谢钧 谢希仁发送端接收端16 位字 116 位字 2置为全 0检验和16 位字 n16 位反码算术运算求和取反码数据报首部IP 数据报16 位检验和16 位字 116 位字 216 位检验和16 位字 n16 位反码算术运算求和16 位结果取反码数据部分若结果为 0,则保留;否则,丢弃该数据报数据部分不参与检验和的计算课件制作人:谢钧 谢希仁首部04816192431版 本标志生 存 时 间协 议标 识总 长 度片 偏 移填 充首 部 检 验 和源 地 址目 的 地 址可 选 字 段 (长 度 可 变)位首部长度数 据 部 分固定部分可变部分源地址和目的地址都各占 4 字节区 分 服 务课件制作人:谢钧 谢希仁课件制作人:谢钧 谢希仁2.IP 数据报首部的可变部分 nIP 首部的可变部分就是一个选项字段,用来支持排错、测量以及安全等措施,内容很丰富。n选项字段的长度可变,从 1 个字节到 40 个字节不等,取决于所选择的项目。n增加首部的可变部分是为了增加 IP 数据报的功能,但这同时也使得 IP 数据报的首部长度成为可变的。这就增加了每一个路由器处理数据报的开销。n实际上这些选项很少被使用。课件制作人:谢钧 谢希仁4.2.6 IP 数据报的转发n有四个 A 类网络通过三个路由器连接在一起。每一个网络上都可能有成千上万个主机。n可以想像,若按目的主机号来制作路由表,则所得出的路由表就会过于庞大。n但若按主机所在的网络地址来制作路由表,那么每一个路由器中的路由表就只包含 4 个项目。这样就可使路由表大大简化。网 110.0.0.0/8 网 440.0.0.0/8 网 330.0.0.0/8 网 220.0.0.0/810.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直接交付直接交付路由器 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课件制作人:谢钧 谢希仁1.路由表在路由表中,对每一条路由,最主要的是(目的网络地址,掩码,下一跳地址)掩码/8/8/8/8接口0101课件制作人:谢钧 谢希仁查找路由表根据目的网络地址就能确定下一跳路由器,这样做的结果是:n IP 数据报最终一定可以找到目的主机所在目的网络上的路由器(可能要通过多次的间接交付)。n 只有到达最后一个路由器时,才试图向目的主机进行直接交付。N1R1因特网目的网络 下一跳 N1 直接 N2 R2 默认 R1路由表N2R2只要目的网络不是 N1 和 N2,就一律选择默认路由,把数据报先间接交付路由器 R1,让 R1 再转发给下一个路由器。默认路由(default route)课件制作人:谢钧 谢希仁默认路由用网络前缀0.0.0.0/0来表示课件制作人:谢钧 谢希仁默认路由(default route)n路由器还可采用默认路由以减少路由表所占用的空间和搜索路由表所用的时间。n这种转发方式在一个网络只有很少的对外连接时是很有用的。n默认路由在主机发送 IP 数据报时往往更能显示出它的好处。n如果一个主机连接在一个小网络上,而这个网络只用一个路由器和因特网连接,那么在这种情况下使用默认路由是非常合适的。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 的路由表(未给出默认路由器)R11R2子网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.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要发送的分组的目的 IP 地址:128.30.33.138请注意: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子网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,这里只需计算最后的 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.3
展开阅读全文