《路由原理与协议》PPT课件.ppt

上传人:za****8 文档编号:14687286 上传时间:2020-07-28 格式:PPT 页数:96 大小:932KB
返回 下载 相关 举报
《路由原理与协议》PPT课件.ppt_第1页
第1页 / 共96页
《路由原理与协议》PPT课件.ppt_第2页
第2页 / 共96页
《路由原理与协议》PPT课件.ppt_第3页
第3页 / 共96页
点击查看更多>>
资源描述
TCP/IP基本原理第三章 网络互连层,本章学习要求: 掌握:IPv4、ICMP、IPv6协议原理及报文格式 掌握:路由器工作原理 掌握:IP地址分类、掩码、子网与超网、CIDR概念 掌握:路由表的构造及各项意义 了解:ICMP的功能,3.1 Internet层的任务与功能,任务:Internet层负责在源计算机和目的计算机间传输数据。发送方主机从高层接收数据,然后递交给网络接口层传输到远方节点;接收方节点从网络接口层接收数据,然后递交给高层。 功能: 选定恰当的路由,将数据传到目的节点。 处理传输中出现的错误和分段,并负责分段后的重组。 涉及的协议:工作在该层的协议有Internet协议(IP)、Internet报文控制协议(ICMP)和Internet组管理协议(IGMP)。本章只介绍前两个常用协议。,因特网的通信工作方式,传输层从上层应用程序获取数据流并其分成最大长度为64KB的数据报。每个数据报经过一个或者多个同构或者异构网络的传输,其间可能会被分为更小的分段。当所有的分段都到达目的地的时候,由Internet层把它们重组为原来的数据报。数据报完整地传到传输层后,被插入传输层进程的输入流中。 所以在Internet层,因特网可以被看作一组相互连接的子网或自治系统。将因特网连接在一起的是网络互连协议(IP)。IP服务是不可靠的,即它不能保证数据无差错地到达目的端,也不保证顺序到达,由传输层负责恢复各种可能的错误。,ARP协议位于哪一层?,ARP协议被描述成Internet层的协议。但实际上,ARP协议横跨网络接口层和Internet层。ARP协议使用广播机制找到目的主机的物理地址。因为大多数路由器并不转发广播分组,所以ARP协议的作用仅限于本地网段。,3.2 Internet协议(IPv4),3.2.1 引言 IP是TCP/IP协议族中最为核心的协议。 该协议族中所有的其它协议,如TCP、UDP、ICMP和IGMP的数据都以IP数据报格式传输。 IP提供不可靠、无连接的数据报传送服务,使得各种各样的物理网络只要能够提供数据报传输,就能够互联。这是因特网在短时间内风靡全球的主要原因。,IP提供的三个重要定义,定义了在整个TCP/IP互联网上传输数据所用的基本单元,因此规定了互联网上传输数据的确切格式; 完成路由选择的功能,在网状通路中选择一条传递数据的路径; 包括一组不可靠分组投递思想的规则,这些规则指明了主机和路由器应该如何如何处理分组、如何发出错误信息以及在什么情况下可以放弃分组。,3.2.2 IP地址,IP地址:给每一个连接在Internet上的主机分配一个在全世界范围唯一的32比特长的地址。IP地址的寻址过程是这样的:先按IP地址中的网络号net-id把网络找到,再按主机号host-id把主机找到。IP地址指出了连接到某个网络上的某个计算机。 表示方式:一般常用32bit的IP地址中的每8 个比特的等效十进制表示IP地址,产并且在这些数字之间加上一个点,即点分十进制数。地址127.11.3.30 表示地址: 10000000 00001011 00000011 00011110。,地址分类:IP地址分为A、B、C、D、E五类。常用的A类、B类和C类地址都由两个字段组成,即:网络号字段net-id。A类、B类和C类地址的网络号字段分别为1,2和3字节长,在网络号字段的最前面有13bit的类别比特,其数值规定为0、10和110。主机号字段host-id。A类、B类和C类地址的主机号字段分别为3,2和1字节长。D类地址是多播地址,E类地址预留。,IP地址分类方法,A类地址最高位为0,其后是7位网络号,24位主机号,A类地址有126个网络,用于少数主机数量众多的大型网,主机数量可达224-2=16777214。 B类地址最高2位为10,其后是14位网络号,16位主机号,B类地址有16384个网络,用于中等规模网网络,主机数量可达216-2=65534。 B类地址最高3位为110,其后是21位网络号,8位主机号,C类地址有2097152个网络,用于小型网网络,主机数量可达28-2=254。 D类地址最高4位为1110,为组播地址。它用一个地址代表一组主机。主机组是由0个或多个用同一D类IP目的地址表示的主机集合。,IPv4 地址指标,特殊的IP地址,内联网络的IP地址,企业联网所使用的IP地址必须经过专门申请才能获得,不能随意使用。如果企业局域网不与外部网络连通,可使用内联网的专用IP地址。它们是: 10.0.0.010.255.255.255 (1个A类地址) 172.16.0.0172.31.255.255 ( 16个B类地址) 192.168.0.0192.168.255.255 (256个C类地址),3.2.3 子网与子网掩码,子网(subnet):IP地址的实际应用中,一个A类网可以有16777214台主机,一个B类网可以有65534台主机,一个C类网可以有254台。事实上,很少碰上这么大的 网,可以对它们进一步分层,将 一个网络分成多个小的子网。可 以将IP地址中的主机地址的高几 位拿出来作为子网地址。这样可 以充分利用紧缺的IP地址资源。 我们以一个C类网为例来进行子 网划分:,子网划分实例:设企业经申请获得一个C类网IP地址:210.8.2.0,但企业建有两个网络LAN A、LAN B,经路由器互联为一体。且A网联有10台主机,B网联有8台主机。我们可以将IP地址主机号的高2位作为子网号:A网的子网号为01,B网的子网号为10。则A、B网络的网络号为:,子网掩码(subnet mask),子网掩码的作用:对于网络管理员来说,由于参与了子网的划分与主机IP地址的配置,他会知道网内任何一台主机IP地址中的网络号和主机号。比如说,上例中子网A中1#主机的IP地址为:210.8.2.65,用二进制数字表示为: 因而网管员知道实际的网络号为26位,实际的主机号为6位。但对于计算机来说,并不知道网管员是如何划分子网的。这就要依靠每个网络的子网掩码。通过子网掩码与一个IP地址的“逻辑与”,计算机就可以将一个IP地址的网络地址和主机地址分别提取出来,从而判断该IP地址所在的网络是本地子网还是外部子网。,子网掩码的构成:子网掩码是一个32位数字,形式上也是点分十进制数,与IP地址一样。构成方法是:对于一个网络来说,我们将该网个主机的IP地址中实际网络地址比特用“1”填写,而实际主机地址比特用“0”填写,所得的32位二进制数就是子网掩码。仍然以上例来说明: IP地址:11010010 00001000 00000010 10000001 AND 子网掩码:11111111 11111111 11111111 11000000 子网地址: 11010010 00001000 00000010 10000000 如何使用子网掩码:将本网络的掩码与IP地址作一个逻辑说与的操作,就将IP地址的网络地址提取了出来,从而判断该主机是否位于本地子网;将掩码的反码与IP地址作一个逻辑于操作,可以将主机IP号中的主机地址提取出来。,标准网络的掩码:如果网络没有作进一步的子网划分,是标准的A类或B类或C类网,则其子网掩码就非常容易构造:,子网掩码的作用:确定目的主机是本地的还是远程的。 主机中的IP逻辑遵循以下准则: 如果目的主机是本地的,在ARP协议的配合下传输分组; 如果目的主机是远程的,在ARP的配合下将分组传给默认网关; 如果分组是发给远程主机,但是未配置默认网关,就要丢弃该分组。,IP主机将分组传递给本地目的主机的步骤,分组由更高层的协议传递给IP协议,其中包含着目的主机IP地址。IP协议比较目的主机和本地主机的网络ID,确定它们的数值是相同的。 由于目的主机网络ID与本地主机的网络ID相同,该分组是发送给本地网络中的一台主机的。 使用ARP广播机制从目的主机处获得它的以太网地址。 分组传递给数据链路层,以传递给目的主机。,IP主机将分组传递给远程主机的步骤,分组由更高层的协议传递给IP协议,其中包含着目的主机IP地址。IP协议比较目的主机和本地主机的网络ID,确定它们的数值是不同的。 由于目的主机网络ID与本地主机网络的ID不同,该分组是发送给远程网络中的一台主机。 IP协议检查路由表中的表项,而没有发现任何相关内容,所以要用到默认路由。 使用ARP广播机制与本地主机的默认网关交换IP和以太网地址信息。默认网关是在默认路由表中查出的。 使用数据链路层协议将分组传递给默认网关,从那里分组进人路由器网络。 路由器网络完成分组的传递。最后一个路由器拥有一条抵达目的主机的本地路由,可使用ARP协议把分组传递给目的主机。,子网划分的规律,假设将一个网络的主机号拿出n位作为子网号。则: 可将原来的网络划分为2n个子网; 在使用连续子网掩码时,如果n8,子网地址部分对应的掩码为十进制数28-28-n; 每一个子网的子网地址字节都能够被28-n整除。,3.2.4 超网与CIDR,超网(supernet):将多个小的网络地址合并为一个大的网络地址。超网同样采用掩码方式来识别,不过是将部分网络号的最低几位用作主机号。 超网实例:某大学的IP地址范围是由16个C类地址聚集而成:IP地址范围:210.8.96.1210.8.111.254,将它们的IP地址中的网络号的低4位作为主机号,就形成了一个超网: IP地址范围:210.8.96.1210.8.111.254 超 网 掩 码:255.255.240.0 (将网络号的低4位作为主机号) 广 播 地 址:210.8.111.255 这样,原本不在同一个网络,分散在16个网络中的地址,就归纳在了同一个超网中了。,子网编址的发明,节省了大量闲置的IP地址空间。 超网编址的出现,解决了大、中型网络紧缺的矛盾。,无类域间路由选择CIDR,CIDR产生的原因:随着网络应用的普及,世界上网络的安装量迅猛增加,使得边缘路由器的路由表中表项暴涨,严重降低路由器的工作效率。 在人们提出的解决方案中,CIDR(Classless Inter-domain Routing,无类域间路由选择) 是一个较好的可行办法。它使得路由表的项目可以大大减少,提高路由器工作效率。 CIDR原理: CIDR是一种IP编址方案,它是在分类(A、B、C、D、E类)编址方案以后开发出来的。CIDR编址仍使用传统的点分十进制数来表示IP地址,但后面紧接一个斜线和数字,来规定IP地址中网络号的位数。比如: 192.168.3.15/26 202.10.68.52/19 斜线后面的数字表示IP地址的网络号使用的位数。,CIDR的优点:按照CIDR策略,将C类地址划分成16个区,每个区有232-3/16=225,约3200万个地址,也将世界划分成4个区,每个区分配一块连续的C类地址,见下表: 好处很明显。比如,亚洲以外的路由器发送目的地为202.xxx.yyy.zzz或203.xxx.yyy.zzz,只需要将它送到亚洲网关路由器就可以了。边缘路由器的路由表长度大大减短。路由器工作效率大大提高。,CIDR实例:设南京大学的IP地址范围为:202.24.0.0202.24.7.255,掩码为255.255.248.0;北京大学的IP地址范围为:202.24.16.0 202.24.31.255,掩码为255.255.240.0;兰州大学的IP地址范围为202.24.8.0202.24.11.25,掩码为255.255.252.0。于是,亚洲、太平洋地区内的路由器的路由选择表都增加了3个表项,每个表项包括1个分配的最低地址号(也称基地址),和1个掩码,列表于下: 设一个分组到达此路由器,其目的地址为202.24.17.4,协议首先将它与南京大学的掩码做“与”操作,结果与南京大学的基地址不匹配,接着再与北京大学的掩码做“与”操作,结果与北京大学的基地址匹配,说明该分组应该发送到北京大学的路由器。采用CIDR,原来的A、B、C、D、E类网络分类已无必要,所以叫“无类域间路由选择。,3.3 IP数据报,IP的主要功能是在互联网上将数据以数据报的形式从一台主机传到另一台主机; 中间可能要穿越若干个物理网络。在不同的网络之间通过路由器来传递。,3.3.1 IP数据报格式,IP数据报头各字段意义,版本(4位):本数据报所属的IP版本号,对于IP v4,此字段值为4。 报头长度(4位):本数据报头(包括选项)的长度,长度以32比特为单位。 服务类型(8位):3位优先权,4位TOS(最小时延,最大吞吐量,最高可靠性,最小费用,全0为一般服务),1位未用但必须置0。 总长度(16位):数据报的长度,以字节为单位,最大为65535字节,但它在传送时可能会对它分片,而主机也会对数据报长度加以限制。 标识(16位):唯一地标识每一个数据报,主机每发一个数据报,该值加1。 DF(1位):=1,表示数据报禁止分片。 MF(1位):=1,表示不是最后一个分片;=0,表示最后一个分片。 分片偏移(13位):分片在原始报文中的偏移量,生存时间(Time to Live,8位):数据报可经过的最多路由器数,每经过一台路由器,该值减1,当该值为0时,数据报被丢弃。 协议(8位):指明接收数据报数据部分的上层协议。 报头检验和(16位):根据报头计算的检验和,不对数据部分作检验。 源IP地址(32位):数据报源主机IP地址。 目的IP地址(32位):数据报目的主机IP地址。 选项的组成:选项码、长度、数据项 选项码 自由源路径 严格源路径 记录路径 Internet时戳 选项表结束,数据报头的C描述,struct iphdr BYTE versionihl; BYTE tos; WORD tot_len; WORD id; WORD frag_off; BYTE ttl; BYTE protocol; WORD check; DWORD saddr; DWORD daddr; /* Put options here. */ ;,3.3.2 报头校验方法,IP 协议校验编码:设校验和初值为0,然后对数据每16位求异或,结果取反,便得校验和。 IP协议校验解码:校验时将数据(含校验和)按同样的算法求和,结果为0则数据正确,不为0表示通讯出错,需要丢弃该数据包。,IP校验和编码与解码程序,typedef unsigned int _u16; typedef unsigned long _u32; _u16 checksum( _u16 xdata *dp, _u16 length) _u32 sum = 0; _u16 len = length 1; while(len- 0) sum += *dp+; if (length 所有TCP/IP协议校验和计算和数据包的校验均由上面的子程序完成。不过要注意的是TCP和UDP的校验需要加上伪头标,不然得不到正确的结果,伪头标违背了协议的分层原则,但这种违背是出于实际需要的,也正体现了TCP/IP协议设计的灵活性,3.3.3 分片与重组,IP分片(Fragmentation):IP数据报封装在帧中传输时,大小超过节点路由器最大传输单位MTU(Maximum Transmission Unit)时,需要将数据帧划分成更小的分片才能通该过路由器传输到下一节点。比如,在以太网(Ethernet)环境中可传输最大IP报文大小(MTU)为1518字节。如果要传输的报文大小超过1518字节,则需要分片之后进行传输。 分片影响的报头字段:包括MF标志、分片位移、报头长、总长度及报头校验和。个分片报头的这些字段要重新计算,其他字段从原报头复制即可。分片后的数据报在转发过程中可能需要进一步分成更小的片段。,数据报分片示意图路由器在对数据报分片时,把报头中的大部分字段都拷贝到每个分片的报头中,其主要目的是为了让目的主机知道每个到达的数据片段属于哪个数据报。目的主机通过片段的片段的标识字段、源IP地址、目的IP地址来识别数据报。,重组:数据报的重组有两种方法:一是在通过一个网络后就将分片的数据报重组,二是在到达目的主机后重组。IP重组采用的后一种方法。这种方法允许对每一数据片段独立地进行路由选择,而且不要求路由器存储和重组分片。 数据报头中的标识、标志和分片位移字段用做控制分片和重组。 目的主机要缓存数据片段,等分片到齐后进行重组。如果某些片段在传输中丢失,协议规定了缓存片段的最长时间,它从数据报最先到达的分片开始计时,若逾期分片未到齐,则丢弃已经到达的分片。,3.3.4 IP数据报选项,选项字段主要用于网络测试和调试。IP选项字段的长度是可变的,长度依赖于所选的项。选项有两种格式: 1: 单独一个选项码字节 2: 一个选项码字节,一个选项长度字节和实际选项数据字节 选项码的构成: 拷贝标志:控制路由器分片时对选项的处理:置1,说明该选项应该拷贝到所有片段中去;若置0,则只拷贝到第一个片段中去。 选项类和选项号指明选项的类型,并给定该类中的一个特殊选项。下表显示了选项类如何分配。,3.4 IP数据报的路由选择,3.4.1 直接传送与间接传送 路由(Routing):是指选择一条路径发送分组的过程。路由器(Router)则是指做这种工作的计算机。 直接传送(direct delivery):指在一个物理网络上,数据报从一台计算机直接传送到另一台计算机。仅当两台计算机同时连到同一底层物理传输系统(例如以太网)时,才能进行直接传送。 直接传送方法:直接传送不设计路由器。发送方将IP数据报封装在物理帧中,将目的IP地址和一个物理硬件地址绑定在一起,然后将产生的帧直接传送到目的站点。 判断两台计算机位于同一物理网的方法:IP地址分为网络地址和主机地址,如果两台计算机的网络地址相同,就认为它们位于同一个物理网络中。,间接传送(indirect delivery):当源计算机和目的计算机不在同一个底层物理网时,数据报必须经过路由器转发,才能传送到目的计算机上。 间接传送方法:发方计算机通过网络将数据报封装成帧直接传送到直连的路由器,该路由器接到该帧后从中取出数据报,在通往目的主机的路径上选择下一个路由器,然后又封装成帧通过下一个物理网络传送到下一个路由器。如此接力转发到与目的网络相连的最后一个路由器,由它将数据报在目的网络中直接传送到目的主机。,3.4.2 IP路由表,每台主机或路由器上都有一张路由表,该表存储各个目的站点以及如何到达目的站点的信息。主机或路由器根据自己的路由表转发数据报。 IP路由表包含多个(N,R)信息对,其中N是目的网络的IP地址,R是到目的网络N的路径上的“下一个”路由器的IP地址。由于路由器中的路由表只指定了到达目的网络的路径上的一步,因而它并不知道到目的网络的完整路径。 在路由器M的路由表中列出的所有路由器都必须在与M直接相连的网络上。当数据报准备离开M时,协议找到目的IP地址,并抽取出其中的网络号,然后根据路由表选取一个可以之间到达的路由器将报文转发过去。,网络 40.0.0.0,网络 10.0.0.0,网络 20.0.0.0,网络 30.0.0.0,Q,R,S,10.0.0.5 , 20.0.0.5, 20.0.0.6, 30.0.0.6, 30.0.0.7,30.0.0.7 ,3.4.3 IP路由算法,从数据报中抽取目的IP地址D,计算出它的网络地址N IF (N与任何直连网络地址匹配) 找到D的物理地址,封装成帧,从该网直接传送数据报到D ELSE IF (路由表中包含了一个到D的路由) 将数据报转发到指定的下一个路由器 ELSE IF (路由表中包含了一个到N的路由) 将数据报转发到指定的下一个路由器 ELSE IF (表中包含了一个默认路由) 将数据报转发到默认的路由器 ELSE 宣布出错 ENDIF,目的主机收到IP数据报后,判断数据报的目的地址是否与自己的IP地址相符,若一致,则接收下来并传给高层软件处理;若不匹配,就丢弃该错投的数据报。 路由器收到数据报后,要判断它的目的地址是否是自己的IP地址,若一致,则交给路由器的高层协议处理,若不匹配,则要根据路由表继续转发该数据报。,3.4.4 如何阅读路由表,某路由器的路由表如下: = Network Destination Netmask Gateway Interface Metric 0.0.0.0 0.0.0.0 192.168.123.254 192.168.123.68 1 缺省路由 127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1 本地环路 192.168.123.0 255.255.255.0 192.168.123.68 192.168.123.68 1 直连网络 192.168.123.68 255.255.255.255 127.0.0.1 127.0.0.1 1 给自己的 192.168.123.255 255.255.255.255 192.168.123.68 192.168.123.68 1 本地广播 224.0.0.0 224.0.0.0 192.168.123.68 192.168.123.68 1 组播 255.255.255.255 255.255.255.255 192.168.123.68 192.168.123.68 1 全局广播 = 原理:通过目标IP地址和网络掩码,可计算出目标的网络号。如果求出的网络号与表中的网络目标IP一致,就找到了一条路由。然后通过表中同一记录指定的路由器接口(Interface)地址将数据发送到Gateway字段列出的地址上去。 路由表是倒着读的(由底往上)。,其中 Network destination:目的网段 mask:子网掩码 interface:到达该目的地的本路由器的出口ip gateway:下一跳路由器入口的IP,路由器通过interface和gateway定义到下一个路由器的链路,通常情况下,interface和gateway是同一网段。 metric:跳数,该条路由记录的质量,一般情况下,如果有多条到达相同目的地的路由记录,路由器会采用metric值小的那条路由。 第一条:缺省路由。当一个数据包的目的网段不在路由表记录中,路由器把数据包发送到那里。缺省路由的网关是由连接的default gateway决定的。该路由记录的意思是:当收到数据包的目的网段不在路由记录中,将该数据包通过192.168.123.68接口发送到192.168.123.254路由器。这样数据包就可以交付给下一个路由器处理。该路由记录的跳数 为1 。,第二条 :本地环路:127.0.0.0这个网段内所有地址都指向自己机器,如果收到这样一个数据,应该发向本机。该路由记录的跳数1。 第三条:直联网段的路由记录:当路由器收到发往直联网段的数据包时该如何处理,这种情况,路由记录的interface和gateway是同一个。当收到一个数据包的目的网段是192.168.123.0时,将该数据包通过192.168.123.68这个接口直接发送出去,因为这个端口直接连接着192.168.123.0这个网段。该路由记录的跳数 1 。 第四条:本地主机路由:当路由器收到发送给自己的数据包时将如何处理。当收到一个数据包的目的网段是192.168.123.68时,将该数据包收下,因为这个数据包是发送给路由器自己的,该路由记录的跳数 1 。 第五条 :本地广播路由:当路由器收到发送给直联网段的本地广播时如何处理。当收到广播数据包的目的网段是192.168.123.255时,将该数据从192.168.123.68接口以广播的形势发送出去,该路由记录的跳数1。,第六条:组播路由:当路由器收到一个组播数据包时该如何处理。当收到组播数据包时,将该数据从192.168.123.68接口以组播的形势发送出去,该路由记录的跳数 1。 第七条 :广播路由:当路由器收到一个绝对广播时该如何处理。当收到绝对广播数据包时,将该数据包丢弃掉,3.5 Internet控制报文协议(ICMP),3.5.1 ICMP简介 ICMP的全称是Internet Control Message Protocol(网间报文控制协议):它是一个工作在主机和路由器之间的消息控制和差错报告协议。它可以使互联网中的路由器或主机报告差错或提供有关意外情况的信息。 在IP网络这样的传输系统中,网络层设备自动地完成寻径和报文传输工作,无需源主机的参与。在传输过程中,可能发生各种错误,而IP协议本身并没有差错控制的内在机制。为了减少分组的丢失,就要使用ICMP。ICMP允许主机或路由器报告差错情况和提供有关异常情况的报告。但ICMP不是高层协议,它仍是IP层中的协议。ICMP报文作为IP数据报的数据部分,加上数据报的首部,组成IP数据报发送出去。,3.5.2 ICMP的功能 主机探测 路由维护 路由选择 流量控制,主机探测 使用一个ICMPECHO数据包来探测主机地址是否存活(当然在主机没有被配置为过滤ICMP形式),通过简单的发送一个ICMP ECHO (Type 8)数据包到目标主机,如果ICMP ECHO Reply(type0)数据包接收到,说明主机是存活状态。如果没有就可以初步判断主机没有在线或者使用了某些过滤设备过滤了ICMP的REPLY。这种机制就是我们通常所用的ping命令来检测目标主机是否可以ping到。 若要形成一个回送响应消息,应该将源和目的地址交换,将类型代码更改为0,重新计算机校验码。 如果网关在处理数据报时发现生存周期域为零,此数据报必须抛弃,然后通知源主机。如果主机在组装分段的数据报时因为丢失段未能在规定时间内组装数据,此数据报必须抛弃。网关发送超时信息。,路由维护 计算机初始化时,路由表通常只包含几个项。其中的一个项指定默认网关。如果数据报目标 IP 地址在路由表中没有较好的匹配,则它被发送到默认网关。但是,因为路由器共享有关网络拓扑的信息,因此默认网关可能知道到给定地址的更好路由。在这种情况下,当收到可采取更佳路径的数据报时,此路由器通常就会转发数据报。然后,它使用 ICMP Redirect 消息向发送者建议一条更好的路由。这些消息可以为一个主机、子网或整个网络指定重定向。当计算机接收到 ICMP 重定向时,就会执行有效性检查,确保它是否来自当前路由的第一个跃点网关,以及此网关是否在直接连接的网络上。如果是,则将一个主机路由添加到该目标 IP 地址的路由表中。如果 ICMP 重定向不是来自当前路由的第一个跃点网关,或者该网关不在直接连接的网络上,则忽略 ICMP 重定向。,路由选择 假设Router1现在有下面所给的六个表项的路由表,分组目的地址为201.66.43.33,看看路由表,除了缺省路由外,这并不能匹配任何路由。静态路由将其通过路由器201.66.39.254发送(trip 1),但是,该路由器知道所有发向子网201.66.43.0的分组应该通过201.66.39.253,因此,它把分组转发到适当的路由器(trip 2)。但是如果主机直接把分组发到201.66.39.253就会提高效率(trip 3)。,因为路由器把分组从同一接口发回了分组,所以它知道有更好的路由,路由器可以通过ICMP重定向指示主机使用新的路由。虽然路由器知道所有发向201.66.43.0子网的分组应该通过201.66.39.253,它通常只发送特定的主机的ICMP重定向(此例中是201.66.43.33)。主机将在路由表中创建一个新的表项:,表中标志: U:表示“激活”; G:表示此项将分组转向外部网关; H:通过网关到达特定主机的路由; D:由ICMP重定向创建的路由。,流量控制 当TCP/IP主机发送数据到另一主机时,如果速度达到路由器或者链路的饱和状态,路由器发出一个ICMP源抑制消息。也就是说,一个路由器临时用光了缓冲区,因为必须丢弃后来的数据包,因此在丢弃一个数据包时,路由器就会向创建该数据包的主机发送一个源抑制报文,当一台主机收到源抑制报文,就需要降低传送速度。,路由器的工作原理,如果网络阻塞,包在路由器中停滞,TTL至少减1或更多。要是它降到0的话,包就会被抛弃。 如果对于下一网络来说包太大的话,IP将它分割成若干个小包。 如果包被分解,IP为每个新小包制造一个新头,其中包括:一个标志,用来显示其它小包在其后;一个小包ID,用来确定所有小包是一起的;一个小包偏移,用来告诉接收机怎么重组它们。 IP计算一个新的检验和。 IP获取一个路由的目标硬件地址。 IP转发包。 在下一主机,包被发送到TCP或UDP。每个路由器都要重复该过程。直到包到达最终目的地。当包到达最终目的地后,IP将小包组装成原来的包。,3.5.3 ICMP报文,ICMP报文为两级封装,ICMP报文放在IP数据报的数据部分,IP数据报则放在帧的数据中进行网络传输(如下图所示)。ICMP报文与其他普通报文一样,具有相同的路由选择,并没有特殊的优先权和增加可靠性。,ICMP报文格式,ICMP报文分为头标和数据区两大部分,其中头标包含三个字段: 一个长度为8bit的类型字段,用来标识报文,可以有15个不同的值; 一个长度为8bit的代码字段提供有关报文类型的进一步信息; 一个长度为16bit的校验和字段。检验和字段只覆盖ICMP报文。使用的算法与IP首部检验和算法相同。ICMP的检验和是必需的。 ICMP报文的数据区包含引起错误的数据报报头及该数据报前64bit的数据,提供这些信息的目的在于帮助源主机确定出错的数据报。,ICMP类型字段定义了报文的格式及意义:,3.5.4 Ping 命令,工作原理:Ping命令通过向计算机发送ICMP消息,回应报文且监听回应报文的返回,用以校验与远程计算机或本地计算机的连接情况。对于每个发送的报文,Ping最多等待1秒并显示发送和接收报文的数量,并比较每个接收报文和发送报文,校验其有效性。默认情况发送四个回应报文,每个报文包含32字节的数据。 Ping命令 用法:ping只有在安装TCP/IP协议后才可使用,其格式如下所述: Ping -t -a -n count -l size -f -i TTL -v TOS -r count -s count -j host-list | -k host-list -w timeout destination-list Ping命令常用参数如下所述:(1)-t:不断向指定的计算机发送报文,按Ctrl+Break可查看统计信息或继续运行,直至用户按Ctrl+C键中断。(2)-a:将IP地址解析为计算机名。(3)-n count :发送由count指定数量的回应报文。(4)-l size:发送由size指定数据大小的回应报文。例如获取中科大主页地址,可在MS-DOS方式下输入: ping ,命令执行的显示信息如下:,Ping命令的作用 :Ping命令常用于对TCP/IP网络进行诊断。通过向目的计算机发送报文,让其将该报文返送,如果返回的报文和发送的报文一致,即代表Ping命令执行成功。如果在指定时间内未收到应答报文,则Ping认为该计算机不可到达,显示“Request time out”信息。通过对Ping的数据进行分析,可判断计算机是否开机,网络是否存在配置和物理故障,或该报文从发送至返回所需的时间。另外,也可使用Ping测试计算机名和IP地址。当然报文返回时间越短,“Request time out”字样出现的次数越少,代表与此计算机的连接稳定和速度快,用ping命令解析计算机NetBios名:可使用ping -a命令来实现解析计算机NetBios名的目的。如在MS-DOS方式下输入ping -a 202.38.64.2,显示的结果中会包含如下所示的文字: Pinging 202.38.64.31 with 32 bytes of data: 从中可获取IP为202.38.64.3的计算机NetBios名为。 用ping命令指定Echo数据包的数量和大小:可使用ping -n count 命令来实现发送指定数量的Echo数据包的目的。其中count参数指定Echo数据包数。 默认情况一般发送四个数据包,通过该命令可自定义发送的个数,对测量网络速度很有帮助。可使用ping -l size命令来实现定义Echo数据包大小的目的。其中size 参数定义Echo数据包的大小。 默认情况ping发送的数据包大小为32b,可自定义其大小,但存在限制,即最大发送字节数为65500。,用ping命令在数据包中发送“不要分段”标志:可使用ping -f 命令来实现在数据包中发送“不要分段”标志的目的。一般发送的数据包均会通过路由分段再发送,使用该参数后路由即不会分段处理。 用ping命令指定TTL值在系统停留的时间:可使用ping-i命令来实现指定TTL值在系统停留时间的目的。此参数可检查网络的运转情况。 用ping命令在“记录路由”字段中记录传出和返回数据包的路由:可使用ping -r count命令来实现在“记录路由”字段中记录传出和返回数据包的路由的目的 ping命令的其他技巧:在一般情况下还可以通过ping对方让对方返回给你的TTL值大小,粗略的判断目标主机的系统类型是Windows系列还是UNIX/Linux系列,一般情况下Windows系列的系统返回的TTL值在100-130之间,而UNIX/Linux系列的系统返回的TTL值在240-255之间,当然TTL的值在对方的主机里是可以修改的。,3.5.5 Tracert命令,命令功能:Tracert通过向目的地发送具有不同生存时间的ICMP回应报文,来确定至目的地的路由。即Tracert命令可用于跟踪一个报文从一台计算机至另一台计算机所经过的路径。 示例:试显示从作者机器到科大Web服务器之间的路由器的IP地址:,3.6 IPv6简介,在开发IPv4时,32位的IP地址似乎足够用Internet的需要,但随着Internet的发展,32位的IPv4地址将很快被用完。1994年IETF的下一代IP工作组提出了IP ng (IP next generation),它就是为了克服地址不足而设计的。正式名称为IPv6。 特点 显著增大了地址空间;全球唯一的等级编址,基于前缀而不是基于地址类,这样路由表极小而且骨干选路效率高;为网络接口自动配置提供了机制;支持自身封装和其他协议封装;使用了服务类别来区分数据类型;增强了组播选路支持(优先于广播);内置认证和加密;提供了从IPv4移植的过渡方法;提供了与IPv4共存和通信的兼容方法。,3.6.1 IPv6报头格式,下面对IPv6数据报头的各项进行简单介绍: 优先级:在IPv6优先级域中首先要区分二大业务量(traffic): 受拥塞控制(congestion-controlled)业务量; 不受拥塞控制的(noncongestion-controlled)业务量。 在IPv6规范中07级的优先级为受拥塞控制的业务量保留,这种业务量的最低优先级为1,Internet控制用的业务量的优先级为7。不受拥塞控制的业务量是指当网络拥塞时不能进行速率调整的业务量。对时延要求很严的实时话音即是这类业务量的一个示例。在IPv6中将其值为815的优先级分配给这种类型的业务量。如下页表格所示,流标号 一个流由其源地址,目的地址和流序号来命名。在IPv6规范中规定“流”是指从某个源点向(单目或组播的)信宿发送的分组群中,源点要求中间路由器作特殊处理的那些分组。也就是说,流是指源点、信宿和流标记三者分别相同的分组的集合。任何的流标记都不得在此路由器中保持6秒以上。此路由器在6秒之后必须删除高速缓存(cache)中登录项,当该流的下一个分组出现时,此登录项被重新学习。并非所有的分组都属于流。实际上从IPv4向IPv6的过渡期间大部分的分组不属于特定的流。例如,SMTP、FTP以及WWW浏览器等传统的应用均可生成分组。这些程序原本是为了IPv4而设计的,在过渡期为使IPv4地址和IPv6地址都能处理而进行了改进,但不能处理在IPv4中不存在的流。在这分组中应置入由24位0组成的空流标记。,净负荷长度 净负荷荷长度域指示IP基本头标以后的IP数据报剩余部分的长度,单位是字节。此域占16位,因而IP数据报通常应在65535字节以内。但如果使用Hop By Hop 选项扩展头标的特大净荷选项,就能传送更大的数据报。利用此选项时净荷长度置0 。 下一跳首部 来标识数据报中的基本IP头标的下一个头标。在此头标中,指示选项的IP头标和上层协议。 跳数限度 决定能将分组传送到多远。主机在生成数据报时,在站段限度域中设置某一初值,数据报送到网上的路由器时该值减1。如果为0,则丢弃该数据报。使用站段限制有二个目的:一是防止寻路发生闭环(loop),另外是为了让主机利用它在网内进行检索。PC要向其中一个服务器发送数据报,无论发向哪个都行。为了减轻网络负荷,PC希望搜索到离它最近的服务器。,3.6.2 IPv6地址,地址格式 IPv6共有128位地址,是Ipv4的整整四倍。地址的每个字段由16比特组成,因此,IPv6有8个字段。每个字段的最大值为16384,但在书写时用四位的十六进制数字表示,字段之间用“:”隔开。而且字段中前面为零的数值可以省略,如果整个字段为零也可以省略,即: x:x:x:x:x:x:x:x 128位的地址空间在可预见的很长时期内,它能够为所有可以想象出的网络设备提供一个全球唯一的地址。128位地址空间包含的准确的地址数总共是340,282,366,920,938,463,463,374,607,431,768,211,456,形象地说,世界上每一粒沙子都可以有一个IP地址。,IPv6的地址,地址分类 从传送类型来分类,IPv6地址分为三种地址类型: 单播地址(Unicast Address); 多播地址(Multicast Address); 任播地址(Anycast Address)。 所有类型的IPv6地址都是属于接口(Interface)而不是节点(node)。一个IPv6单点传送地址被赋给某一个接口,而一个接口又只能属于某一个特定的节点,因此一个节点的任意一个接口的单点传送地址都可以用来标识该节点。,从地域来分类,IPv6又可以把主机接口类型分为: 全球地址(Globally); 全球单播地址(unicast); 区域地址(on-site); 链路本地地址(link local address); 场所本地地址(site local address); 广播地址(Broadcast); 多播群地址(multicast group address); 任播地址(anycast address); 移动地址(Mobility); 家乡地址(home address); 转交地址(care-of address)。,可集成的全局单播地址 用于全球通信,其地址格式充分考虑了路由项的有效集成: 其中: FP:地址前缀(也称为“格式前缀”),值为001。 TLA ID:顶级集成ID。顶级集成是因特网的顶级机构,是因特网的服务提供者。本字段表示服务提供者的网络号。 RES:保留位,以备将来TLA或NLA扩充之用; NLA ID:次级集成ID。由顶级机构指定,该字段可以细分为两个部分,前一部分表示网络的一层或多层编号,后一部分表示用户场所编号。 SLA ID:场所级ID,用于用户分层构建网络; Interface ID:用户的链路接口ID。 TLA、NLA、SLA三者构成了自顶向下排列的三个网络层次,并且依次向上一级申请ID号。分层结构的最底层是网络主机的链路接口ID。,局部使用的单播地址 局部使用的单播地址(local-use uncast address)用于内部网络,不能连到因特网。它又细分为本链路使用(link-local)和本场所使用(site-local)两类。前者用于单一链路,其用途是自动地址配置、邻居发现或其它没有路由器的场合。若数据报的目的地址是此类地址,路由器不转发该数据报;本场所使用的单播地址用在不需要全局前缀的场所内部使用。如果数据包的目的地址属于此类型,路由器不把它转发到场所以外的地方。 一个场所可以使用路由器连接的多个以太网链路。,任播地址 任播地址也是一个标识符对应多个接口的情况。如果一个报文要求被传送到一个任播地址,它将被传送到由该地址标识的一组接口中的最近一个(根据路由选择协议距离度量方式决定)。 任播地址是从单播地址空间中划分出来的,因此它可以使用表示单播地址的任何形式。从语法上来看,它与单播地址间没有差别。当一个单播地址被指向多于一个接口时,该地址就成为任播地址,并且被明确指明。当用户发送一个数据包到这个任播地址时,离用户最近的一个服务器将响应用户。任播地址不能作为IPv6数据报的源地址,也不能分配给IPv6主机。,组播地址 IPv6多播地址用于表示一组节点。一个节点可能会属于几个多点传送地址。RFC-2373对于多点传送地址进行了更为详细的说明,并给出了一系列预先定义的多点传送地址。 其中: 标记(flags):高3位保留,须置0,第4位T置0表示永久性的周知(well-known)组播地址,由因特网权威机构指定;T置1表示临时性的组播地址。 范围(scope):限制组播组的范围。其值为 =0、F,保留; =1,本节点范围(node-loacl scope) =2,本链路范围(link-loacl scope) =5,本场所范围(site-local scope) =8,本机构范围(organization-local scope) =E,全局范围(global scope),IPv6的地址,嵌入IPv4地址的IPv6地址,有两种方法将IPv4地址嵌入IPv6地址中: 与IPv4兼容的IPv6地址(IPv4-compatible IPv6 address),它的高96位为0,低32位为IPv4地址。这类地址用于实施双IP层隧道技术的节点。即在IPv4路由拓扑的基础上,将IPv6的数据报外加在IPv4报头转发。 映射IPv4的IPv6地址(IPv4-mapped IPv6address),它的高80位为0,随后的4位为1,然后是32位IPv4地址。这类地址用于只实现IPv4而不支持IPv6的节点。,3.6.3 IPv6扩展项,目前,IPv6协议建议定了如下可选的扩展项: 逐项选项头(Hop-by-Hop Option Header):定义了途经路由器所需检验的信息。 目的选项头:含目的站点处理的可选信息。 路由选项头(Routing):提供到达宿点所必须经过的中间路由器。 分段(Fragmentation)头:类似于IPv4,包括数据报标识符、段号以及是否终止标识符。 认证(Authentication)头:目的端对源端的身份验证。 加载安全负载(Security encrypted payload)头:对负载进行加密,以防止数据在传输过程中发生信息泄露。,3.7 IPv6的域名系统,IPv6的DNS与IPv4的DNS在体系结构上是一致的,都采用树型结构的域名空间。IPv4和IPv6共同拥有统一的域名空间。在IPv4到IPv6的过渡阶段,域名可以同时对应于多个IPv4和IPv6的地址。随着IPv6网络的普及,IPv6地址将逐渐取代IPv4地址。 可聚集全局单播地址是目前主要应用的IPv6地址,因IPv6可聚集全局单播地址是在全局范围内使用的地址,必须进行层次划分及地址聚集。 IPv6全局单播地址的分配方式如下:顶级地址集成机构TLA获得大块地址,负责给次级地址集成机构NLA(中小规模ISP)分配地址,NLA给站点级地址集成机构SLA(子网)和网络用户分配地址。IPv6地址的层次性在DNS中通过地址链技术可以得到很好的支持。,3.7.1 正向解析,IPv4的地址正向解析的资源记录是“A”,而IPv6地址的正向解析目前有两种资源记录,即“AAAA”和“A6”记录。其中“AAAA”较早提出,它是对IPv4协议“A”记录的简单扩展,由于IP地址由32位扩展到128位,扩大了4倍,所以资源记录由“A”扩大成4个“A”。但“AAAA”用来表示域名和IPv6地址的对应关系,并不支持地址的层次性。 AAAA资源记录类型用来将一个合法域名解析为IPv6地址,与IPv4所用的A资源记录类型相兼容。之所以给这新资源记录类型取名为AAAA,是因为128位的IPv6地址正好是32位IPv4地址的四倍,下面是一条AAAA资源记录实例: IN AAAA FEC0:2AA:FF:FE3F:2A1C,“A6” 是把一个IPv6地址与多个“A6”记录建立联系,每个“A6”记录都只包含了IPv6地址的一部分,结合后拼装成一个完整的IPv6地址。“A6”记录支持一些“AAAA”所不具备的新特性,如地址聚集,地址更改(Renumber)等。“A6”记录根据可聚集全局单播地址中的TLA、NLA和SLA项目的分配层次把128位的IPv6的地址分解成为若干级的地址前缀和地址后缀,构成了一个地址链。每个地址前缀和地址后缀都是地址链上的一环,一个完整的地址链就组成一个IPv6地址。这种思想符合IPv6地址的层次结构,从而支持地址聚集。 同时,用户在改变ISP时,其拥有的IPv6地址也要改变。在用“A6”记录表示的地址链中,只要改变地址前缀对应的ISP名字即可,可以大大减少DNS中资源记录的修改。并且在地址分配层次中越靠近底层,所需要改动的越少。,3.7.2 反向解析,IPv6反向解析的记录和IPv4一样,是“PTR”,但地址表示形式有两种。一种是用“.”分隔的半字节16进制数字格式(Nibble Format),低位地址在前,高位地址在后,域后缀是“IP6.INT.”。另一种是二进制串(Bit-string)格式,以“”开头,16进制地址(无分隔符,高位在前,低位在后)居中,地址后加“”,域后缀是“IP6.ARPA.”。半字节16进制数字格式与“AAAA”对应,是对IPv4的简单扩展。二进制串格式与“A6”记录对应,地址也象“A6”一样,可以分成多级地址链表示,每一级的授权用“DNAME”记录。和“A6”一样,二进制串格式也支持地址层次特性。 IP6.INT域用于为IPv6提供逆向地址到主机名解析服务。逆向检索也称为指针检索,根据IP地址来确定主机名。为了给逆向检索创建名字空间,在IP6.INT域中,IPv6地址中所有的32位十六进制数字都逆序分隔表示。例如,为地址FEC0:2AA:FF:FE3F:2A1C(完全表达式为:FEC0:0000:0000:0000:02AA:00FF:FE3F:2A1C)查找域名时,在IP6.INT域中是:C.1.A.2.F.3.E.F.F.F.0.0.A.A.2.0.0.0.0.0.0.0.0.0.0.0.0.0.0.C.E.F.IP6.INT,3.7.3 IPv4与IPv6对比表,CERNET,中国教育科研网CERNET2 概略图,本章习题,参见教师网页:,
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!