《计算机网络技术基础教程第七讲.ppt》由会员分享,可在线阅读,更多相关《计算机网络技术基础教程第七讲.ppt(92页珍藏版)》请在课桌文档上搜索。
1、第 7 讲 网络层协议,主要内容,7.1 网络层概述7.2 地址解析协议 ARP与逆地址解析协议 RARP 7.2.1 IP 地址与硬件地址 7.2.2 地址解析协议 ARP 与逆地址解析协议 RARP7.3 IP协议7.3.1 IP 数据报的格式 7.3.2 IP 层转发分组的流程,主要内容(续),7.3.3 使用子网掩码的分组转发过程7.4 网际控制报文协议 ICMP 7.4.1 ICMP 报文的种类 7.4.2 ICMP 的应用举例7.5 虚拟专用网 VPN 和网络地址转换 NAT 7.5.1 虚拟专用网 VPN 7.5.2 网络地址转换 NAT,学习要求,(1)理解IP地址与MAC地址
2、的关系,掌握ARP协议的工作原理。(2)掌握IP数据报的格式,理解IP数据报在网络层的转发。(3)掌握ICMP报文的格式和种类。(4)了解虚拟专用网 VPN技术。(5)了解网络地址转换 NAT技术。,7.1 网络层概述,网络层实现各种不同的网络的互联。网络层的主要功能就是将发送端计算机传输层递交的数据分组通过物理网络传输到接收端计算机的传输层。具体来说:(1)路由选择:找到一条从发送端计算机到接受端计算机的数据传输路径。(2)分组转发:通过找到的路径,将数据分组一个节点一个节点地转发到接收端计算机。,网络层提供的两种服务,OSI模型网络层提供了两种数据传输服务:一种是面向连接的可靠的服务,一种
3、是无连接的不可靠的服务。(1)面向连接的服务面向连接的通信方式 建立虚电路(Virtual Circuit),以保证双方通信所需的一切网络资源。如果再使用可靠传输的网络协议,就可使所发送的分组无差错按序到达终点。,应用层运输层网络层数据链路层物理层,应用层运输层网络层数据链路层物理层,虚电路服务,H1,H2,虚电路,H1 发送给 H2 的所有分组都沿着同一条虚电路传送,虚电路是逻辑连接,虚电路表示这只是一条逻辑上的连接,分组都沿着这条逻辑连接按照存储转发方式传送,而并不是真正建立了一条物理连接。请注意,电路交换的电话通信是先建立了一条真正的连接。因此分组交换的虚连接和电路交换的连接只是类似,但
4、并不完全一样。,无连接的服务,(2)无连接的服务网络层向上只提供简单灵活的、无连接的、尽最大努力交付的数据报服务。网络在发送分组时不需要先建立连接。每一个分组(即 IP 数据报)独立发送,与其前后的分组无关(不进行编号)。网络层不提供服务质量的承诺。即所传送的分组可能出错、丢失、重复和失序(不按序到达终点),当然也不保证分组传送的时限。,尽最大努力交付的好处,由于传输网络不提供端到端的可靠传输服务,这就使网络中的路由器可以做得比较简单,而且价格低廉(与电信网的交换机相比较)。如果主机(即端系统)中的进程之间的通信需要是可靠的,那么就由网络的主机中的运输层负责(包括差错处理、流量控制等)。采用这
5、种设计思路的好处是:网络的造价大大降低,运行方式灵活,能够适应多种应用。因特网能够发展到今日的规模,充分证明了当初采用这种设计思路的正确性。,应用层运输层网络层数据链路层物理层,应用层运输层网络层数据链路层物理层,数据报服务,H1,H2,IP 数据报,丢失,H1 发送给 H2 的分组可能沿着不同路径传送,虚电路服务与数据报服务的对比,54321,主机H1,主机 H2,R1,R4,R5,R2,R3,R1,R2,R3,H1,R5,H2,R4,间接交付,间接交付,间接交付,间接交付,间接交付,直接交付,分组在互联网中的传送,从网络层看 IP 数据报的传送,如果我们只从网络层考虑问题,那么 IP 数据
6、报就可以想象是在网络层中传送。,网络层,网络层,网络层,网络层,网络层,网络层,网络层,IP 数据报,H1,R1,R2,R3,R4,R5,H2,网际协议IP,网际协议 IP 是 TCP/IP 体系中两个最主要的协议之一。与 IP 协议配套使用的还有四个协议:地址解析协议 ARP(Address Resolution Protocol)逆地址解析协议 RARP(Reverse Address Resolution Protocol)网际控制报文协议 ICMP(Internet Control Message Protocol)网际组管理协议 IGMP(Internet Group Managem
7、ent Protocol),网际层的 IP 协议及配套协议,各种应用层协议,网络接口层,(HTTP,FTP,SMTP 等),物理硬件,运输层,TCP,UDP,应用层,ICMP,IP,RARP,ARP,与各种网络接口,网络层(网际层),IGMP,7.2地址解析协议 ARP与逆地址解析协议,IP 地址,物理地址,ARP,物理地址,IP 地址,RARP,7.2.1 IP 地址与硬件地址,TCP 报文,IP 数据报,MAC 帧,应用层数据,头部,头部,尾部,头部,HA1,HA5,HA4,HA3,HA6,主机 H1,主机 H2,路由器 R1,硬件地址,路由器 R2,HA2,IP1,IP2,局域网,局域网
8、,局域网,通信的路径H1经过 R1 转发再经过 R2 转发H2,查找路由表,查找路由表,HA1,HA5,HA4,HA3,HA6,主机 H1,主机 H2,路由器 R1,硬件地址,路由器 R2,HA2,IP1,IP2,局域网,局域网,局域网,IP1,HA1,HA5,HA4,HA3,HA6,HA2,IP6,主机 H1,主机 H2,路由器 R1,IP 层上的互联网,MAC 帧,IP2,IP4,IP3,IP5,路由器 R2,MAC 帧,MAC 帧,IP 数据报,从协议栈的层次上看数据的流动,HA1,HA5,HA4,HA3,HA6,主机 H1,主机 H2,路由器 R1,硬件地址,路由器 R2,HA2,IP
9、1,IP2,局域网,局域网,局域网,IP1,HA1,HA5,HA4,HA3,HA6,HA2,IP6,主机 H1,主机 H2,路由器 R1,IP 层上的互联网,MAC 帧,IP2,IP4,IP3,IP5,路由器 R2,MAC 帧,MAC 帧,IP 数据报,从虚拟的 IP 层上看 IP 数据报的流动,HA1,HA5,HA4,HA3,HA6,主机 H1,主机 H2,路由器 R1,硬件地址,路由器 R2,HA2,IP1,IP2,局域网,局域网,局域网,IP1,HA1,HA5,HA4,HA3,HA6,HA2,IP6,主机 H1,主机 H2,路由器 R1,IP 层上的互联网,MAC 帧,IP2,IP4,I
10、P3,IP5,路由器 R2,MAC 帧,MAC 帧,IP 数据报,在链路上看 MAC 帧的流动,IP1,HA1,HA5,HA4,HA3,HA6,HA2,IP6,主机 H1,主机 H2,路由器 R1,IP 层上的互联网,MAC 帧,IP2,IP4,IP3,IP5,路由器 R2,MAC 帧,MAC 帧,IP 数据报,在 IP 层抽象的互联网上只能看到 IP 数据报图中的 IP1IP2 表示从源地址 IP1 到目的地址 IP2 两个路由器的 IP 地址并不出现在 IP 数据报的头部中,IP1,HA1,HA5,HA4,HA3,HA6,HA2,IP6,主机 H1,主机 H2,路由器 R1,IP 层上的互
11、联网,MAC 帧,IP2,IP4,IP3,IP5,路由器 R2,MAC 帧,MAC 帧,IP 数据报,路由器只根据目的站的 IP 地址的网络号进行路由选择,IP1,HA1,HA5,HA4,HA3,HA6,HA2,IP6,主机 H1,主机 H2,路由器 R1,IP 层上的互联网,IP2,IP4,IP3,IP5,路由器 R2,IP 数据报,在具体的物理网络的链路层只能看见 MAC 帧而看不见 IP 数据报,IP1,HA1,HA5,HA4,HA3,HA6,HA2,IP6,主机 H1,主机 H2,路由器 R1,IP 层上的互联网,IP2,IP4,IP3,IP5,路由器 R2,IP 数据报,IP层抽象的
12、互联网屏蔽了下层很复杂的细节在抽象的网络层上讨论问题,就能够使用统一的、抽象的 IP 地址研究主机和主机或主机和路由器之间的通信,7.2.2 地址解析协议 ARP 和逆地址解析协议 RARP,IP 地址,物理地址,ARP,物理地址,IP 地址,RARP,地址解析协议 ARP,不管网络层使用的是什么协议,在实际网络的链路上传送数据帧时,最终还是必须使用硬件地址。每一个主机都设有一个 ARP 高速缓存(ARP cache),里面有所在的局域网上的各主机和路由器的 IP 地址到硬件地址的映射表。当主机 A 欲向本局域网上的某个主机 B 发送 IP 数据报时,就先在其 ARP 高速缓存中查看有无主机
13、B 的 IP 地址。如有,就可查出其对应的硬件地址,再将此硬件地址写入 MAC 帧,然后通过局域网将该 MAC 帧发往此硬件地址。,A,Y,X,B,Z,主机 B 向 A 发送ARP 响应分组,主机 A 广播发送ARP 请求分组,ARP 请求,ARP 请求,ARP 请求,209.0.0.5,209.0.0.6,00-00-C0-15-AD-18,08-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-0A,A,Y,X,B,Z,209.
14、0.0.5,209.0.0.6,00-00-C0-15-AD-18,ARP 高速缓存的作用,为了减少网络上的通信量,主机 A 在发送其 ARP 请求分组时,就将自己的 IP 地址到硬件地址的映射写入 ARP 请求分组。当主机 B 收到 A 的 ARP 请求分组时,就将主机 A 的这一地址映射写入主机 B 自己的 ARP 高速缓存中。这对主机 B 以后向 A 发送数据报时就更方便了。,应当注意的问题,ARP 是解决同一个局域网上的主机或路由器的 IP 地址和硬件地址的映射问题。如果所要找的主机和源主机不在同一个局域网上,那么就要通过 ARP 找到一个位于本局域网上的某个路由器的硬件地址,然后把分
15、组发送给这个路由器,让这个路由器把分组转发给下一个网络。剩下的工作就由下一个网络来做。,应当注意的问题(续),从IP地址到硬件地址的解析是自动进行的,主机的用户对这种地址解析过程是不知道的。只要主机或路由器要和本网络上的另一个已知 IP 地址的主机或路由器进行通信,ARP 协议就会自动地将该 IP 地址解析为链路层所需要的硬件地址。,使用 ARP 的四种典型情况,发送方是主机,要把IP数据报发送到本网络上的另一个主机。这时用 ARP 找到目的主机的硬件地址。发送方是主机,要把 IP 数据报发送到另一个网络上的一个主机。这时用 ARP 找到本网络上的一个路由器的硬件地址。剩下的工作由这个路由器来
16、完成。发送方是路由器,要把 IP 数据报转发到本网络上的一个主机。这时用 ARP 找到目的主机的硬件地址。发送方是路由器,要把 IP 数据报转发到另一个网络上的一个主机。这时用 ARP 找到本网络上的一个路由器的硬件地址。剩下的工作由这个路由器来完成。,为什么我们不直接使用硬件地址进行通信?,由于全世界存在着各式各样的网络,它们使用不同的硬件地址。要使这些异构网络能够互相通信就必须进行非常复杂的硬件地址转换工作,因此几乎是不可能的事。连接到因特网的主机都拥有统一的 IP 地址,它们之间的通信就像连接在同一个网络上那样简单方便,因为调用 ARP 来寻找某个路由器或主机的硬件地址都是由计算机软件自
17、动进行的,对用户来说是看不见这种调用过程的。,逆地址解析协议 RARP,逆地址解析协议 RARP 使只知道自己硬件地址的主机能够知道其 IP 地址。这种主机往往是无盘工作站。因此 RARP协议目前已很少使用。,7.3 IP协议,IP协议是因特网主机到主机的网络层传输协议。IP协议是一个不可靠、无连接的数据报协议。IP协议提供的是一种尽力递交服务。“尽力”意味着IP没有提供差错控制和流量控制控制机制。数据的可靠传输靠高层协议来解决。,7.3.1 IP 数据报的格式,IP层的数据分组称为数据报。一个 IP 数据报由头部和数据两部分组成。头部的前一部分是固定长度,共 20 字节,是所有 IP 数据报
18、必须具有的。在头部的固定部分的后面是一些可选字段,其长度是可变的:从040个字节。,固定部分,可变部分,0,4,8,16,19,24,31,版 本,标志,生 存 时 间,协 议,标 识,区 分 服 务,总 长 度,分 段 偏 移 量,填 充,头 部 检 验 和,源 地 址,目 的 地 址,可 选 字 段(长 度 可 变),位,头部长度,数 据 部 分,数 据 部 分,头 部,IP 数据报,可变部分,首部,0,4,8,16,19,24,31,版 本,标志,生 存 时 间,协 议,标 识,区 分 服 务,总 长 度,分 段 偏 移 量,填 充,头 部 检 验 和,源 地 址,目 的 地 址,可 选
19、 字 段(长 度 可 变),位,头部长度,数 据 部 分,数 据 部 分,首 部,IP 数据报,首部,0,4,8,16,19,24,31,版 本,标志,生 存 时 间,协 议,标 识,总 长 度,分 段 偏 移 量,填 充,头 部 检 验 和,源 地 址,目 的 地 址,可 选 字 段(长 度 可 变),位,头部长度,数 据 部 分,数 据 部 分,首 部,IP 数据报,固定部分,区 分 服 务,首部,0,4,8,16,19,24,31,版 本,标志,生 存 时 间,协 议,标 识,总 长 度,分 段 偏 移 量,填 充,头 部 检 验 和,源 地 址,目 的 地 址,可 选 字 段(长 度
20、可 变),位,头部长度,数 据 部 分,固定部分,可变部分,区 分 服 务,1.IP 数据报头部的固定部分中的各字段,首部,0,4,8,16,19,24,31,版 本,标志,生 存 时 间,协 议,标 识,总 长 度,分 段 偏 移 量,填 充,头 部 检 验 和,源 地 址,目 的 地 址,可 选 字 段(长 度 可 变),位,头部长度,数 据 部 分,固定部分,可变部分,区 分 服 务,首部,0,4,8,16,19,24,31,版 本,标志,生 存 时 间,协 议,标 识,总 长 度,分 段 偏 移 量,填 充,头 部 检 验 和,源 地 址,目 的 地 址,可 选 字 段(长 度 可 变
21、),位,头部长度,数 据 部 分,固定部分,可变部分,区 分 服 务,首部,0,4,8,16,19,24,31,版 本,标志,生 存 时 间,协 议,标 识,总 长 度,分 段 偏 移 量,填 充,头 部 检 验 和,源 地 址,目 的 地 址,可 选 字 段(长 度 可 变),位,头部长度,数 据 部 分,固定部分,可变部分,区 分 服 务,首部,0,4,8,16,19,24,31,版 本,标志,生 存 时 间,协 议,标 识,总 长 度,分 段 偏 移 量,填 充,头 部 检 验 和,源 地 址,目 的 地 址,可 选 字 段(长 度 可 变),位,头部长度,数 据 部 分,固定部分,可变
22、部分,区 分 服 务,首部,0,4,8,16,19,24,31,版 本,标志,生 存 时 间,协 议,标 识,区 分 服 务,总 长 度,分 段 偏 移 量,填 充,头 部 检 验 和,源 地 址,目 的 地 址,可 选 字 段(长 度 可 变),位,头部长度,数 据 部 分,固定部分,可变部分,标志(flag)占 3 位,目前只有前两位有意义。标志字段的最低位是 MF(More Fragment)。MF 1 表示后面“还有分段”。MF 0 表示最后一个分段。标志字段中间的一位是 DF(Dont Fragment)。只有当 DF 0 时才允许分段。,首部,0,4,8,16,19,24,31,版
23、 本,标志,生 存 时 间,协 议,标 识,总 长 度,分 段 偏 移 量,填 充,头 部 检 验 和,源 地 址,目 的 地 址,可 选 字 段(长 度 可 变),位,头部长度,数 据 部 分,固定部分,可变部分,区 分 服 务,偏移=0/8=0,偏移=0/8=0,偏移=1400/8=175,偏移=2800/8=350,1400,2800,3799,2799,1399,3799,需分段的数据报,数据报分段 1,头部,数据部分共 3800 字节,头部 1,头部 2,头部 3,字节 0,数据报分段 2,数据报分段 3,1400,2800,字节 0,【例7-1】IP 数据报分段,首部,0,4,8,
24、16,19,24,31,版 本,标志,生 存 时 间,协 议,标 识,总 长 度,分 段 偏 移,填 充,头 部 检 验 和,源 地 址,目 的 地 址,可 选 字 段(长 度 可 变),位,头部长度,数 据 部 分,固定部分,可变部分,生存时间(8 位)记为 TTL(Time To Live)数据报在网络中可通过的路由器数的最大值。,区 分 服 务,首部,0,4,8,16,19,24,31,版 本,标志,生 存 时 间,协 议,标 识,总 长 度,分 段 偏 移 量,填 充,头 部 检 验 和,源 地 址,目 的 地 址,可 选 字 段(长 度 可 变),位,头部长度,数 据 部 分,固定部
25、分,可变部分,区 分 服 务,运输层,网络层,头部,TCP,UDP,ICMP,IGMP,OSPF,数 据 部 分,IP 数据报,首部,0,4,8,16,19,24,31,版 本,标志,生 存 时 间,协 议,标 识,总 长 度,分 段 偏 移 量,填 充,头 部 检 验 和,源 地 址,目 的 地 址,可 选 字 段(长 度 可 变),位,头部长度,数 据 部 分,固定部分,可变部分,区 分 服 务,发送端,接收端,16 位,字 1,16 位,字 2,16 位,字 n,数据报首部,IP 数据报,16 位,字 1,16 位,字 2,16 位,字 n,数据部分,首部,0,4,8,16,19,24,
26、31,版 本,标志,生 存 时 间,协 议,标 识,总 长 度,分 段 偏 移 量,填 充,头 部 检 验 和,源 地 址,目 的 地 址,可 选 字 段(长 度 可 变),位,头部长度,数 据 部 分,固定部分,可变部分,区 分 服 务,2.IP 数据报头部的可变部分,IP 头部的可变部分就是一个选项字段,用来支持排错、测量以及安全等措施,内容很丰富。选项字段的长度可变,从 1 个字节到 40 个字节不等,取决于所选择的项目。增加头部的可变部分是为了增加 IP 数据报的功能,但这同时也使得 IP 数据报的头部长度成为可变的。这就增加了每一个路由器处理数据报的开销。实际上这些选项很少被使用。,
27、7.3.2 IP 层转发分组的流程,有四个 A 类网络通过三个路由器连接在一起。每一个网络上都可能有成千上万个主机。可以想像,若按目的主机号来制作路由表,则所得出的路由表就会过于庞大。但若按主机所在的网络地址来制作路由表,那么每一个路由器中的路由表就只包含 4 个项目。这样就可使路由表大大简化。,网 110.0.0.0,网 440.0.0.0,网 330.0.0.0,网 220.0.0.0,10.0.0.4,40.0.0.4,30.0.0.2,20.0.0.9,20.0.0.7,目的主机所在的网络,下一跳地址,20.0.0.0,30.0.0.0,10.0.0.0,40.0.0.0,20.0.0
28、.7,30.0.0.1,直接交付,接口 1,直接交付,接口 0,路由器 R2 的路由表,30.0.0.1,10.0.0.4,40.0.0.4,30.0.0.2,20.0.0.9,20.0.0.7,30.0.0.1,链路 4,链路 3,链路 2,链路 1,R2,R3,R1,0,1,R2,R3,R1,在路由表中,对每一条路由,最主要的是(目的网络地址,下一跳地址),查找路由表,根据目的网络地址就能确定下一跳路由器,这样做的结果是:IP 数据报最终一定可以找到目的主机所在目的网络上的路由器(可能要通过多次的间接交付)。只有到达最后一个路由器时,才试图向目的主机进行直接交付。,特定主机路由,这种路由是
29、为特定的目的主机指明一个路由。采用特定主机路由可使网络管理人员能更方便地控制网络和测试网络,同时也可在需要考虑某种安全问题时采用这种特定主机路由。,默认路由(default route),路由器还可采用默认路由以减少路由表所占用的空间和搜索路由表所用的时间。这种转发方式在一个网络只有很少的对外连接时是很有用的。默认路由在主机发送 IP 数据报时往往更能显示出它的好处。如果一个主机连接在一个小网络上,而这个网络只用一个路由器和因特网连接,那么在这种情况下使用默认路由是非常合适的。,N1,R1,因特网,目的网络 下一跳 N1 直接 N2 R2 默认 R1,路由表,N2,R2,只要目的网络不是 N1
30、 和 N2,就一律选择默认路由,把数据报先间接交付路由器 R1,让 R1 再转发给下一个路由器。,必须强调指出,IP 数据报的头部中没有地方可以用来指明“下一跳路由器的 IP 地址”。当路由器收到待转发的数据报,不是将下一跳路由器的 IP 地址填入 IP 数据报,而是送交下层的网络接口软件。网络接口软件使用 ARP 负责将下一跳路由器的 IP 地址转换成硬件地址,并将此硬件地址放在链路层的 MAC 帧的头部,然后根据这个硬件地址找到下一跳路由器。,分组转发算法,(1)从数据报的头部提取目的主机的 IP 地址 D,得出目的网络地址为 N。(2)若网络 N 与此路由器直接相连,则把数据报直接交付目
31、的主机 D;否则是间接交付,执行(3)。(3)若路由表中有目的地址为 D 的特定主机路由,则把数据报传送给路由表中所指明的下一跳路由器;否则,执行(4)。(4)若路由表中有到达网络 N 的路由,则把数据报传送给路由表指明的下一跳路由器;否则,执行(5)。(5)若路由表中有一个默认路由,则把数据报传送给路由表中所指明的默认路由器;否则,执行(6)。(6)报告转发分组出错。,145.13.3.10,145.13.3.11,145.13.3.101,145.13.7.34,145.13.7.35,145.13.7.56,145.13.21.23,145.13.21.9,145.13.21.8,所有到
32、网络 145.13.0.0的分组均到达此路由器,我的网络地址是 145.13.0.0,R1,R3,R2,一个未划分子网的 B 类网络145.13.0.0,划分为三个子网后对外仍是一个网络,145.13.3.10,145.13.3.11,145.13.3.101,145.13.7.34,145.13.7.35,145.13.7.56,145.13.21.23,145.13.21.9,145.13.21.8,子网 145.13.21.0,子网 145.13.3.0,子网 145.13.7.0,所有到达网络 145.13.0.0的分组均到达此路由器,网络145.13.0.0,R1,R3,R2,在不划
33、分子网的两级 IP 地址下,从 IP 地址得出网络地址是个很简单的事。但在划分子网的情况下,从 IP 地址却不能唯一地得出网络地址来,这是因为网络地址取决于那个网络所采用的子网掩码,但数据报的头部并没有提供子网掩码的信息。因此分组转发的算法也必须做相应的改动。,7.3.3 使用子网掩码的分组转发过程,在划分子网的情况下路由器转发分组的算法,(1)从收到的分组的头部提取目的 IP 地址 D。(2)先用各网络的子网掩码和 D 逐位相“与”,看是否和 相应的网络地址匹配。若匹配,则将分组直接交付。否则就是间接交付,执行(3)。(3)若路由表中有目的地址为 D 的特定主机路由,则将 分组传送给指明的下
34、一跳路由器;否则,执行(4)。(4)对路由表中的每一行的子网掩码和 D 逐位相“与”,若其结果与该行的目的网络地址匹配,则将分组传送 给该行指明的下一跳路由器;否则,执行(5)。(5)若路由表中有一个默认路由,则将分组传送给路由表 中所指明的默认路由器;否则,执行(6)。(6)报告转发分组出错。,128.30.33.1,0,128.30.33.13,H1,子网1:网络地址 128.30.33.0 子网掩码 255.255.255.128,128.30.33.130,1,R2,子网2:网络地址 128.30.33.128 子网掩码 255.255.255.128,H2,128.30.33.138
35、,0,1,128.30.33.129,H3,128.30.36.2,子网3:网络地址 128.30.36.0 子网掩码 255.255.255.0,128.30.36.12,【例7-2】已知互联网和路由器 R1 中的路由表。主机 H1 向 H2 发送分组。试讨论 R1 收到 H1 向 H2 发送的分组后查找路由表的过程。,主机 H1 要发送分组给 H2,128.30.33.1,0,R1 的路由表(未给出默认路由器),128.30.33.13,H1,子网1:网络地址 128.30.33.0 子网掩码 255.255.255.128,128.30.33.130,R1,1,R2,子网2:网络地址 1
36、28.30.33.128 子网掩码 255.255.255.128,H2,128.30.33.138,0,1,128.30.33.129,H3,128.30.36.2,子网3:网络地址 128.30.36.0 子网掩码 255.255.255.0,128.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
37、.33.1,0,H1,子网1:网络地址 128.30.33.0 子网掩码 255.255.255.128,128.30.33.130,R1,1,R2,子网2:网络地址 128.30.33.128 子网掩码 255.255.255.128,H2,128.30.33.13,128.30.33.138,0,1,128.30.33.129,H3,128.30.36.2,子网3:网络地址 128.30.36.0 子网掩码 255.255.255.0,128.30.36.12,主机 H1 首先将本子网的子网掩码 255.255.255.128与分组的 IP 地址 128.30.33.138 逐比特相“与”
38、(AND 操作),255.255.255.128 AND 128.30.33.138 的计算,255 就是二进制的全 1,因此 255 AND xyz=xyz,这里只需计算最后的 128 AND 138 即可。,128 10000000138 10001010,逐比特 AND 操作后:10000000 128,H1 的网络地址,因此 H1 必须把分组传送到路由器 R1然后逐项查找路由表,128.30.33.1,0,R1 的路由表(未给出默认路由器),128.30.33.13,H1,子网1:网络地址 128.30.33.0 子网掩码 255.255.255.128,128.30.33.130,R
39、1,1,R2,子网2:网络地址 128.30.33.128 子网掩码 255.255.255.128,H2,128.30.33.138,0,1,128.30.33.129,H3,128.30.36.2,子网3:网络地址 128.30.36.0 子网掩码 255.255.255.0,128.30.36.12,路由器 R1 收到分组后就用路由表中第 1 个项目的子网掩码和 128.30.33.138 逐比特 AND 操作,128.30.33.1,0,R1 的路由表(未给出默认路由器),128.30.33.13,H1,子网1:网络地址 128.30.33.0 子网掩码 255.255.255.128
40、,128.30.33.130,R1,1,R2,子网2:网络地址 128.30.33.128 子网掩码 255.255.255.128,H2,128.30.33.138,0,1,128.30.33.129,H3,128.30.36.2,子网3:网络地址 128.30.36.0 子网掩码 255.255.255.0,128.30.36.12,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,不一致,路由
41、器 R1 再用路由表中第 2 个项目的子网掩码和 128.30.33.138 逐比特 AND 操作,128.30.33.1,0,R1 的路由表(未给出默认路由器),128.30.33.13,H1,子网1:网络地址 128.30.33.0 子网掩码 255.255.255.128,128.30.33.130,R1,1,R2,子网2:网络地址 128.30.33.128 子网掩码 255.255.255.128,H2,128.30.33.138,0,1,128.30.33.129,H3,128.30.36.2,子网3:网络地址 128.30.36.0 子网掩码 255.255.255.0,128.
42、30.36.12,255.255.255.128 AND 128.30.33.138=128.30.33.128匹配!这表明子网 2 就是收到的分组所要寻找的目的网络,R1 收到的分组的目的 IP 地址:128.30.33.138,7.4 网际控制报文协议 ICMP,为了提高 IP 数据报交付成功的机会,在网际层使用了网际控制报文协议 ICMP(Internet Control Message Protocol)。ICMP 允许主机或路由器报告差错情况和提供有关异常情况的报告。ICMP 不是高层协议,而是 IP 层的协议。ICMP 报文作为 IP 层数据报的数据,加上数据报的头部,组成 IP
43、数据报发送出去。,ICMP 报文的格式,首 部,ICMP 报文,0,数 据 部 分,检验和,类型,代码,未使用,8,16,31,IP 数据报,前 4 个字节都是一样的,ICMP 的数据部分(长度取决于类型),7.4.1 ICMP 报文的种类,ICMP 报文的种类有两种,即 ICMP 差错报告报文和 ICMP 询问报文。ICMP 报文的前 4 个字节是统一的格式,共有三个字段:即类型、代码和检验和。接着的 4 个字节的保留字段,供将来使用,其值被设为0。,ICMP 差错报告报文共有 5 种,终点不可达 源点抑制(Source quench)超时 参数问题 改变路由(重定向)(Redirect),
44、ICMP 差错报告报文的数据字段的内容,头部,IP 数据报,ICMP 的前 8 字节,装入 ICMP 报文的 IP 数据报,IP 数据报头部,ICMP 差错报告报文,8字节,收到的 IP 数据报,IP 数据报头部,8字节,ICMP 差错报告报文,IP 数据报的数据字段,不应发送 ICMP 差错报告报文的几种情况,对 ICMP 差错报告报文不再发送 ICMP 差错报告报文。对第一个分段的数据报段的所有后续数据报段都不发送 ICMP 差错报告报文。对具有多播地址的数据报都不发送 ICMP 差错报告报文。对具有特殊地址(如127.0.0.0 或 0.0.0.0)的数据报不发送 ICMP 差错报告报文
45、。,ICMP 询问报文有两种,回送请求和回答报文时间戳请求和回答报文下面的几种 ICMP 报文不再使用信息请求与回答报文掩码地址请求和回答报文路由器询问和通告报文,7.4.2 ICMP的应用举例PING(Packet InterNet Groper),PING 用来测试两个主机之间的连通性。PING 使用了 ICMP 回送请求与回送回答报文。PING 是应用层直接使用网络层 ICMP 的例子,它没有通过运输层的 TCP 或UDP。,PING 的应用举例,Tracert(trace route),Tracert 用来确定至目的地的路由 该诊断实用程序通过向目的地发送具有不同生存时间(TTL)的
46、Internet 控制信息协议(CMP)回应报文,以确定至目的地的路由。,Tracert 的应用举例,7.5 虚拟专用网 VPN 和网络地址转换 NAT7.5.1 虚拟专用网 VPN,本地地址仅在机构内部使用的 IP 地址,可以由本机构自行分配,而不需要向因特网的管理机构申请。全球地址全球唯一的IP地址,必须向因特网的管理机构申请。,RFC 1918 指明的专用地址(private address),10.0.0.0 到 10.255.255.255172.16.0.0 到 172.31.255.255192.168.0.0 到 192.168.255.255这些地址只能用于一个机构的内部通信
47、,而不能用于和因特网上的主机通信。专用地址只能用作本地地址而不能用作全球地址。在因特网中的所有路由器对目的地址是专用地址的数据报一律不进行转发。,用隧道技术实现虚拟专用网,部门 A,因特网,部门 B,R1,R2,隧道,使用隧道技术,本地地址,本地地址,全球地址,网络地址=10.1.0.0(本地地址),网络地址=10.2.0.0(本地地址),用隧道技术实现虚拟专用网,部门 A,因特网,部门 B,R1,R2,隧道,使用隧道技术,加密的从 X 到 Y 的内部数据报,外部数据报的数据部分,源地址:125.1.2.3目的地址:194.4.5.6,数据报头部,内联网 intranet 和外联网 extra
48、net(都是基于 TCP/IP 协议),由部门 A 和 B 的内部网络所构成的虚拟专用网 VPN 又称为内联网(intranet),表示部门 A 和 B 都是在同一个机构的内部。一个机构和某些外部机构共同建立的虚拟专用网 VPN 又称为外联网(extranet)。,远程接入VPN(remote access VPN),有的公司可能没有分布在不同场所的部门,但有很多流动员工在外地工作。公司需要和他们保持联系,远程接入 VPN 可满足这种需求。在外地工作的员工拨号接入因特网,而驻留在员工 PC 机中的 VPN 软件可在员工的 PC 机和公司的主机之间建立 VPN 隧道,因而外地员工与公司通信的内容
49、是保密的,员工们感到好像就是使用公司内部的本地网络。,7.5.2 网络地址转换 NAT(Network Address Translation),网络地址转换 NAT 方法于1994年提出。需要在专用网连接到因特网的路由器上安装 NAT 软件。装有 NAT 软件的路由器叫做 NAT路由器,它至少有一个有效的外部全球地址 IPG。所有使用本地地址的主机在和外界通信时都要在 NAT 路由器上将其本地地址转换成 IPG 才能和因特网连接。,网络地址转换的过程,内部主机 X 用本地地址 IPX 和因特网上主机 Y 通信所发送的数据报必须经过 NAT 路由器。NAT 路由器将数据报的源地址 IPX 转换成全球地址 IPG,但目的地址 IPY 保持不变,然后发送到因特网。NAT 路由器收到主机 Y 发回的数据报时,知道数据报中的源地址是 IPY 而目的地址是 IPG。根据 NAT 转换表,NAT 路由器将目的地址 IPG 转换为 IPX,转发给最终的内部主机 X。,