《第2章IP协议 - Read》由会员分享,可在线阅读,更多相关《第2章IP协议 - Read(123页珍藏版)》请在金锄头文库上搜索。
1、第第2章章 IP协议协议 第第2章章 IP协议协议 2.1 2.1 IPIP协议如何进行网络互联协议如何进行网络互联2.2 2.2 IPIP地址地址2.3 2.3 IPIP数据报格式数据报格式 2.4 2.4 InternetInternet控制报文协议控制报文协议( (ICMP)ICMP)2.5 2.5 地址解析地址解析2.6 2.6 IP数据报的路由选择数据报的路由选择习题习题第第2章章 IP协议协议 2.1 IP协议如何进行网络互联协议如何进行网络互联 2.1.1网络互联方式面对一个由很多网络连接而成的互联网,在进行数据通信时,数据是如何从源端传输到目标端的呢?我们可以举一个日常生活中的
2、例子来说明这个问题,如有图2-1所示的一个城市交通图。第第2章章 IP协议协议 图2-1城市交通图示例第第2章章 IP协议协议 在图2-1中有六个城市,它们之间通过图中所示的公路相连,为了便于说明问题,我们对图中的公路进行了编号。图2-1中所示的城市交通图与多个网络连接而成的互联网是非常相似的,图2-1中的一个城市相当于互联网中的一个网络,连接城市的公路相当于连接网络的介质,每条路上都有一个负责选路的路由器(在图2-2中用表示),这样我们可以把图2-1所示的交通图对应成图2-2所示的网络互联图。第第2章章 IP协议协议 图2-2网络互联网第第2章章 IP协议协议 前面在交通图中所述的两种不同送
3、信(通信)过程,正好与网络互联的两种解决方案相对应。这两种网络互联方案 是 : 面 向 连 接 的 (Connect-oriented)和 无 连 接 的(Connectionless)。面向连接的解决方案要求在通信的源端和目标端之间建立一条逻辑通路,一般称为虚电路(VirtualCircuit),源端和目标端之间通信时的所有信息都通过该通路传输,这与交通图中送信过程的第一种方式类似。这种方式看似简单,易于实现,但其最大的缺点是如果不能保证虚电路中沿途经过的节点都能可靠地发送数据,就可能使网络崩溃。由于互联网所连网络的复杂性和多样性,因而很难保证所有节点都能可靠地发送数据。第第2章章 IP协议
4、协议 无连接的互联网解决方案与交通图中送信过程的第二种方式类似,它在源端和目标端之间不建立一条逻辑通路,而送到网络中的每个分组带有完整的目标主机地址,收到分组的节点(主要是路由器)根据目标地址和当前网络状况(如通信量等),选择一条合适的线路把分组发送到接近目标端的下一个节点,通过多个节点的转发,最终把分组送达目标节点。使用这种方式时,由源端顺序送出的各分组,由于每个分组在网络中可能经过不同的路径到达目标端,所以先发出的分组不一定就先到达目标端,另外,也不能保证每个分组都能可靠地到达目标端。第第2章章 IP协议协议 无连接方式的优点是显而易见的,源端和目标端之间的通信可以通过多条通路进行,而不依
5、赖于某一条通路,因此可靠性和通信效率高。另外,这种方式实现起来也比较简单,适合于异构网络的互联,因此被很多网络厂商所使用。Internet使用的就是这种无连接的方式,由IP协议来实现。第第2章章 IP协议协议 2.1.2IP互联网原理利用信息隐蔽原理,在互联网中把不同网络的实现细节通过IP层隐藏起来,达到在网络层逻辑上一致的目的,如图2-3所示。第第2章章 IP协议协议 图2-3IP对不同数据帧的统一第第2章章 IP协议协议 2.1.3IP协议的地位与IP互联网的特点互联网上的所有数据报都要经过IP协议进行传输,它是通信网络与高层协议的分界,如图2-4所示。第第2章章 IP协议协议 图2-4I
6、P协议在TCP/IP协议族中的地位第第2章章 IP协议协议 使用IP协议的互联网具有以下重要特点:(1)IP协议是一种无连接(Connectionless)不可靠(Unreliable)的数据报传输协议。(2)IP互联网中的计算机没有主次之分,所有主机地位平等(因为惟一标识它们的是IP地址),当然从逻辑上来说,所有网络(不管规模大小)也没有主次之分。(3)IP互联网没有确定的拓扑结构,就像图2-2所示的那样。第第2章章 IP协议协议 (4)在IP互联网中的任何一台主机,都至少有一个独一无二的IP地址,有多个网络接口卡的计算机每个接口可以有一个IP地址,这样一台主机可能就有多个IP地址。有多个I
7、P地址的主机叫多宿主机(Multi-homeHost)。(5)在互联网中有IP地址的设备不一定就是一台计算机,如IP路由器、网关等,因为与互联网有独立连接的设备都要有IP地址。第第2章章 IP协议协议 2.2 IP地址2.2.1IP地址的结构互联网是由很多网络连接而成的,互联网中的数据报有些是在本网内主机之间传输的,有些是要送到互联网中其他网络中的主机中去的,因此,IP地址不但要标识在本网内的主机号,还要标识在互联网中的网络号,如图2-5所示。第第2章章 IP协议协议 图2-5IP地址结构第第2章章 IP协议协议 2.2.2IP地址的表示格式Internet现在使用的IP协议是IPv4(第四版
8、),它使用32位二进制数(即4个字节)表示一个IP地址,在进行程序设计时一般用长整型。用二进制数表示IP地址适合于机器使用,但对用户来说难写,难记,易出错,因此人们常把IP地址按字节分成4个部分,并把每一部分写成等价的十进制数,数之间用“.”分隔,这就是人们最常用的“点分十进制”表示法。IP地址的各种表示法如表2-1所示。第第2章章 IP协议协议 表2-1IP地址的不同表示法第第2章章 IP协议协议 表中后三种地址表示方法只是为了人们书写方便而使用的,计算机内部使用IP地址时都要将其转化为二进制数。IP地址用32位二进制数表示,从数学上计算,应该一共有4294967296个IP地址。在点分十进
9、制数表示法中,每个位组用0255之间的一个十进制数表示,因此最小的IP地址值为0.0.0.0,最大的地址值为255.255.255.255。然而由于有相当一部分IP地址有特殊用途,因而实际主机可用的IP地址要比这个范围小很多。第第2章章 IP协议协议 2.2.3IP地址的分类根据前面学过的内容可知,IP地址由网络号和主机号两部分组成。在Internet发展的初期,人们用IP地址的前8位来定义所在的网络,后24位用来定义该主机在当地网络中的地址。这样互联网中最多只能有255(应该有256个,但全1的IP地址用于广播)个网络。后来由于这种方案可以表示的网络数太少,而每个网络中可以连入的主机又非常多
10、,于是人们设计了一种新的编码方案,该方案中用IP地址高位字节的若干位来表示不同类型的网络,以适应大型、中型、小型网络对IP地址的需求。这种IP地址分类法把IP地址分为A、B、C、D和E共五类,用IP地址的高位来区分,如图2-6所示。第第2章章 IP协议协议 图2-6IP地址的分类第第2章章 IP协议协议 这五类IP地址的特点见表2-2。表2-2各类IP地址的特点第第2章章 IP协议协议 2.2.4一些有特殊用途的IP地址IP地址用来标识互联网中的主机,但少数IP地址有特殊用途,不能分配给主机,这些IP地址共有如下六种(以下用Netid表示网络号,用Hostid表示主机号)。1网络地址(Neti
11、d=特定网络号,Hostid=0)在互联网中经常要使用某个网络的网络地址。在IP地址编码方案中,网络地址由一个有效的网络号和全“0”的主机地址组成。 第第2章章 IP协议协议 2直接广播地址(Netid=特定网络号,Hostid=全1)当IP地址由一个有效的网络号和全“1”的主机地址组成时,这样的IP地址用于广播通信,即同时向指定网络中的所有主机发送数据报,叫直接广播(DirectedBroadcast),具有这种特点的IP地址叫直接广播地址。3有限广播地址(Netid=全1,Hostid=全1)有限广播(LimitedBroadcast)地址也称为本网广播地址。如果IP地址的32位二进制数全
12、为“1”,则这样的地址用于对本网广播通信。也就是说,如果一台主机发送的数据报,其目标IP地址为255.255.255.255,则该数据报被送到本网中的每一台主机。第第2章章 IP协议协议 4本网特定主机地址(Netid=全0,Hostid=特定主机号)在本网内部主机之间通信时,可以用网络地址全为“0”的IP地址。这包括两种情况:一是可能主机想进行本网内主机之间的通信,但又不知道本网的网络地址;二是为了简单起见,在本网络内通信时只给出目标主机的主机号。5. 回送地址(Netid=127,Hostid=任意值)A类地址中,网络地址为127的地址是一个保留地址,用于网络软件测试或本机进程间通信。发送
13、到这种地址的数据报不输出到线路上,而是立即被返回,又当作输入数据报在本机内部进行处理,所以将这种地址称为回送(LookBack)地址。在任何网络上不可能出现网络地址为127的数据报在传输,它一般只用来对本机协议的正确性进行测试。第第2章章 IP协议协议 6. 本网络本主机(Netid=全0,Hostid=全0)全“0”的IP地址表示本网络上的本主机。这些地址范围是:A类地址:10.0.0.110.255.255.254;B类地址:172.13.0.1172.32.255.254;C类地址:192.168.0.1192.168.255.254。第第2章章 IP协议协议 2.2.5子网与子网掩码1
14、. 子网与子网地址IP地址最初使用两层地址结构(包括网络地址和主机地址),在这种结构中A类和B类网络所能容纳的主机数非常庞大,但使用C类IP地址的网络只能接入254台主机,见表2-2。因此,人们提出了三层结构的IP地址,把每个网络可以进一步划分成若干个子网(Subnet),子网内主机的IP地址由三部分组成,如图2-7所示,把两级IP地址结构中的主机地址分割成子网地址和主机地址两部分。第第2章章 IP协议协议 图2-7子网IP地址结构第第2章章 IP协议协议 2子网掩码对于划分了子网的网络,子网地址是由两级地址结构中主机地址的若干位组成的,具体子网所占位数的多少,要根据子网的规模来决定。如果一个
15、网络内的子网数较少,而子网内主机数较多,就应该把两级地址结构中主机地址的大部分位分配给子网内的主机,少量位用来表示子网号。那么,究竟在一个IP地址中哪些位用来表示网络号,哪些位用来表示子网号,以及哪些位用来表示主机号呢,这就要使用子网掩码(SubnetMask)来标识。第第2章章 IP协议协议 子网掩码用32位二进制数表示,常用点分十进制数格式来书写,掩码中用于标识网络号和子网号的位置为1,主机位为0。举例来说,一个C类地址取主机号的两位为子网号,则掩码为11111111.11111111.11111111.11000000(255.255.255.192),子网可以产生64个可能的主机地址,
16、但实际上只有62个地址是可用的,另外两个地址,一个用于识别子网自身,另一个用于子网的广播,因此得到子网内最大可用的主机数时总要减去2。如两位的子网号数学上的组合为00、01、10和11共四种,第一种和最后一种组合有特殊用处,只剩下01和10可用于识别子网,得到两个可用的子网地址。第第2章章 IP协议协议 3. 子网划分实例如果用户申请到一个C类网络地址193.168.125.0,需要在该网络内划分出6个子网,那么至少需要用8位主机地址中的3位来表示子网号,用图2-8表示。第第2章章 IP协议协议 图2-8子网IP地址位数分配第第2章章 IP协议协议 这样可用的子网地址是001、010、011、
17、100、101和110(注意000和111除外)。主机地址中剩下的5位用于识别主机,共有32个主机号,可用的主机号有30个,也就是说每个子网最多有30台主机,则:子网掩码:11111111.11111111.11111111.111000001号子网地址:11000001.10101000.01111101.00100000(193.168.125.32),主机号为33622号子网地址:11000001.10101000.01111101.01000000(193.168.125.64),主机号为6594第第2章章 IP协议协议 3号子网地址:11000001.10101000.0111110
18、1.01100000(193.168.125.96),主机号为971264号子网地址:11000001.10101000.01111101.10000000(193.168.125.128), 主机号为1291585号子网地址:11000001.10101000.01111101.10100000(193.168.125.160), 主机号为1611906号子网地址:11000001.10101000.01111101.11000000(193.168.125.192), 主机号为193222第第2章章 IP协议协议 2.3 IP数据报格式数据报格式 IP数据报的格式如图2-9所示。第第2章章
19、 IP协议协议 图2-9IP数据报格式第第2章章 IP协议协议 2.3.1IP数据报各字段的功能IP数据报中的每一个域包含了IP报文所携带的一些信息,正是用这些信息来完成IP协议功能的,现说明如下。1版本号2头长度3服务类型(TOS,Type Of Service)服务类型用8位二进制数表示,规定对本数据报的处理方式。服务类型字段的8位分成了5个子域,如图2-10所示。(1) 优先权:占02位,这3位二进制数表示的数据范围为000111(07)。 第第2章章 IP协议协议 图2-10服务类型子域结构第第2章章 IP协议协议 (2)短延迟位D(Delay):该位被置1时,数据报请求以短延时信道传
20、输,0表示正常延时。(3)高吞吐量位T(Throughput):该位被置1时,数据报请求以高吞吐量信道传输,0表示普通。(4)高可靠性位R(Reliability):该位被置1时,数据报请求以高可靠性信道传输,0表示普通。(5)保留位:第6和第7位,目前未用,但需置0。应注意在有些实现中,可以使用第6位表示低成本。对不同应用,TOS的建议数据值列于表2-3中。第第2章章 IP协议协议 表2-3TOS建议使用数值第第2章章 IP协议协议 4总长度总长度用16位二进制数表示,总长度字段是指整个IP数据报的长度,以字节为单位。5生存时间(TTL,Time To Live)生存时间用8位二进制数表示,
21、它指定了数据报可以在网络中传输的最长时间。在实际应用中为了简化处理过程,把生存时间字段设置成了数据报可以经过的最大路由器数。TTL的初始值由源主机设置(通常为32、64、128或者256),一旦经过一个处理它的路由器,它的值就减去1。当该字段的值减为0时,数据报就被丢弃,并发送ICMP报文(2.4节介绍)通知源主机,这样可以防止进入一个循环回路时,数据报无休止地传输。第第2章章 IP协议协议 6上层协议标识上层协议标识用8位二进制数表示,从图2-4可知,IP协议可以承载多种上层协议,目标端根据协议标识,就可以把收到的IP数据报送至TCP或UDP等处理此报文的上层协议。表2-4给出了常用的网际协
22、议编号。第第2章章 IP协议协议 表2-4常用网际协议编号第第2章章 IP协议协议 7校验和校验和用16位二进制数表示,这个域用于协议头数据有效性的校验,可以保证IP报头区在传输时的正确性和完整性。8源地址源地址是用32位二进制数表示的发送端IP地址。9目的地址目的地址是用32位二进制数表示的目的端IP地址。第第2章章 IP协议协议 2.3.2IP数据报分片与重组1. 最大传输单元MTU表2-5列出了几种常用网络的MTU值。 第第2章章 IP协议协议 表2-5几种常用网络的MTU值第第2章章 IP协议协议 2.分片如图2-11所示的一个IP数据报(假设数据区长度为1500字节)被分成了三个IP
23、数据报。第第2章章 IP协议协议 图2-11IP数据报的分片过程第第2章章 IP协议协议 分片后的IP数据报,其数据区(如图2-11所示)是原IP数据报数据区的一个连续部分(一段),头部是原IP数据报头部的复制,但与原来未分片的IP数据报头部有两点主要不同:标志和片偏移。Donotfragment(1)标志:在IP数据报的头部,有一个叫标志的字段,用3位二进制数表示,如图2-12所示。图2-12IP数据报头标志位morefragment第第2章章 IP协议协议 (2)片偏移:在图2-11中,IP数据报被分成3片之后,各片数据区在原来IP数据区中的位置用13位片偏移表示。(0,75,150)3重
24、组当分了片的IP数据报被传输到最终目标主机时,目标主机要对收到的各分片重新进行组装,以恢复成源主机发送时的IP数据报,这个过程叫IP数据报的重组。在IP数据报头部中,标识用16位二进制数表示,它惟一地标识主机发送的每一份数据报。目标端主机重组数据报的原理是:根据标识可以确定收到的分片属于原来哪个IP数据报;根据标志字段的片未完MF子字段可以确定分片是不是最后一个分片;根据偏移量就可以确定分片在原数据报中的位置。第第2章章 IP协议协议 2.3.3IP数据报选项IP数据报选项主要有两大功能:一是可以用来实现对数据报传输过程的控制,如规定数据报要经过的路由;二是进行网络测试,如一个数据报传输过程中
25、经过了哪些路由器。IP选项域共分为四大类,如表2-6所示。第第2章章 IP协议协议 表2-6IP数据报选项第第2章章 IP协议协议 IP数据报选项由三个部分组成:选项码、选项长度和选项数据,如图2-13所示。图2-13IP数据报头标志位第第2章章 IP协议协议 (1)复制:占1位,用来控制一个带有选项的IP数据报被分片后对选项的处理方式。如果该位被置1,将选项复制到所有分片中;被置0,将选项仅复制到第一个分片中。(2)选项类和选项号:选项类占2位,选项号占5位,用于确定该选项是哪类选项中的哪个选项,其实就是用于确定该选项的功能,可参见表2-6。第第2章章 IP协议协议 1源路由选择所谓源路由选
26、择(Source Routing),是指IP数据报在互联网中传输时,所经过的路由是由发出IP数据报的源主机指定的,以区别于数据报在互联网中传输时由路由器的IP层自动寻径所得到的路由。通过设置源路由选择选项,可以测试网络中指定路由的连通性,以使数据报绕开出错的网络,也可用于测试特定网络的吞吐量。源路由选择分为两类,一类是严格源路由选择(StrictSourceRouting),另一类是宽松源路由选择(LooseSourceRouting)。第第2章章 IP协议协议 (1)严格源路由选择。严格源路由选择选项格式如图2-14所示。(2)宽松源路由选择。第第2章章 IP协议协议 图2-14IP数据报头
27、中严格源路由选择选项格式第第2章章 IP协议协议 2记录路由3记录时间戳时间戳选项的格式与源路由选择选项类似,如图2-15所示。第第2章章 IP协议协议 图2-15IP数据报头中时间戳选项格式第第2章章 IP协议协议 时间戳选项的选项码为0x44。选项长度表示选项的总长度(一般为36或40),指针指向下一个可用空间的指针(值为5、9、13等)。接下来的两个字段各占4位:溢出字段OF(OverFlow)表示因时间戳选项数据区空间不够而未能记录下来的时间戳个数;标志字段FL用于控制时间戳选项的格式,其值的含义如表2-7所示。第第2章章 IP协议协议 表2-7时间戳选项标志字段含义第第2章章 IP协
28、议协议 时间戳选项提供了IP数据报传输中的时域参数,可用于分析网络吞吐量、拥塞情况和负载情况等。在ping网络命令中提供了对严格源路由选择、宽松源路由选择和记录时间戳的支持,读者可以使用ping的帮助信息来查看这些参数。使用ping命令的这些功能,可以帮助读者理解IP数据报头选项。最后要说明,并非所有的主机和路由器都支持这些选项。另外,如果一个选项字段不是以32位二进制数为界限的,则要在最后插入值为0的填充字符。这样就保证了IP头部始终是32位二进制的整数倍,这是因为头部长度是以32位二进制数为计数单位的。第第2章章 IP协议协议 2.4 Internet控制报文协议(ICMP)2.4.1IC
29、MP报文的封装与格式1ICMP报文的封装ICMP报文和其他协议的报文一样,也是由ICMP报文头区和数据区两部分组成的。ICMP报文是封装在IP数据报中通过链路层在网络中进行传输的,如图2-16所示。 第第2章章 IP协议协议 图2-16ICMP报文及封装第第2章章 IP协议协议 2ICMP报文的格式ICMP报文的格式如图2-17所示,其中报文头分为三部分:类型、代码和校验和。图2-17ICMP报文的格式第第2章章 IP协议协议 类型字段占一个字节,每个取值描述特定类型的ICMP报文,如表2-8所示。第第2章章 IP协议协议 表2-8ICMP报文类型第第2章章 IP协议协议 表2-8ICMP报文
30、类型第第2章章 IP协议协议 表2-8ICMP报文类型第第2章章 IP协议协议 表2-8ICMP报文类型第第2章章 IP协议协议 2.4.2ICMP差错报文1ICMP差错报文的特点报告IP数据报在传输中的差错是ICMP报文最基本的功能,ICMP差错报文有如下特点:(1)ICMP差错报文都是由路由器发送到源主机的,因为IP数据报中含有源主机的IP地址,报告给源主机是最可行的方案,另外,发出IP数据报的源主机最需要知道数据是否到达目标主机。(2)ICMP差错报文只提供IP数据报在传输过程中的差错报告,并不规定对各类差错应采取什么样的处理措施。具体对差错的处理,由收到ICMP差错报文的源主机将相应的
31、差错与应用程序联系起来才能进行相应的差错处理。第第2章章 IP协议协议 (3)ICMP差错报文不享受任何优先权,也没有特别的可靠性保证措施,与普通的IP数据报一样进行传输,传输过程中可能被丢失、损坏,甚至被抛弃。(4)ICMP差错报文是伴随着抛弃出错的IP数据报而产生的。(5)当路由器发送一份ICMP差错报文时,ICMP报文数据区始终包含产生ICMP差错报文的IP数据报的头部和其数据区的前8个字节(64位)。第第2章章 IP协议协议 (6)在有些情况下,为了防止在网络中产生大量的ICMP差错报文(广播风暴),影响网络的正常工作,即使发生差错,也不会产生ICMP差错报文,这些情况包括:ICMP报
32、文发生差错。这是为了避免差错报文无休止产生而规定的(但ICMP查询报文可能会产生ICMP差错报文)。目的地址是广播地址或多播地址(D类地址)的IP数据报。作为链路层广播的数据报。不是IP分片的第一片。源地址不是单个主机的数据报。这就是说,源地址不能为零地址、回送地址、广播地址或多播地址。第第2章章 IP协议协议 2. 目标不可达ICMP报文目标不可达是指当一个路由器检测出一个IP数据报不能发往它的目的地时,路由器发出一个目标不可达的ICMP差错报文。其报文格式如图2-18所示。第第2章章 IP协议协议 图2-18目标不可达ICMP报文第第2章章 IP协议协议 3. IP数据报超时ICMP报文4
33、. 参数错误ICMP报文如图2-19所示 第第2章章 IP协议协议 图2-19IP数据报报头错误ICMP报文格式第第2章章 IP协议协议 2.4.3ICMP控制报文1拥塞控制与源站抑制报文当一个路由器接收IP数据报的速度比其处理IP数据报的速度快,或一个路由器传入数据报的速率大于传出数据报的速率时,就会产生拥塞(Congestion)现象。这时路由器可以通过发送源站抑制(SourceQuench)报文来抑制源主机发送IP数据报的速率,避免可能产生的差错。第第2章章 IP协议协议 源站抑制报文的格式与图2-18所示的不可达ICMP报文格式完全一样。其类型字段为4,代码字段只能为0。源站抑制技术进
34、行拥塞控制的方法如下:(1)当路由器发生拥塞时,便发出ICMP源站抑制报文。拥塞的判别可以用三种方法:一是检查路由器缓存区是否已满;二是给缓存区输出队列设置一个阈值,判断队列中数据报的个数是否超过阈值;三是检测某输入线路的传输率是否过高。(2)源主机收到抑制报文后,按一定的速率降低发往目标主机的数据报传输率。(3)如果在一定的时间间隔内源主机没有收到抑制报文,便认为拥塞已解除,源主机可以逐渐恢复到原来数据报的流量。第第2章章 IP协议协议 2. 路由控制与重定向报文在图2-20所示的例子中,假如源主机要向目标主机发送IP数据报,源主机的默认路由是路由器1,则源主机先把IP数据报送到路由器1,再
35、由路由器1进行路由选择。路由器1经过选路后,把IP数据报送到路由器2,同时路由器1也发现源主机要发送到目标主机的IP数据报以后可以直接发送到路由器2(因为路由器1和路由器2同在一个网络中),则路由器1向源主机发送一个ICMP重定向报文,告诉它可以直接把IP数据报送到路由器2。这样,就使源主机始终保持着一个动态的、既小且优的路径表。第第2章章 IP协议协议 图2-20ICMP重定向例子第第2章章 IP协议协议 ICMP重定向报文的格式如图2-21所示,它的类型字段为5,代码字段为03,见表2-8。路由器IP地址为源主机向目标主机发送IP数据报时的优化路由。第第2章章 IP协议协议 图2-21IC
36、MP重定向报文格式第第2章章 IP协议协议 2.4.4ICMP请求与应答报文1. 回送请求与应答报文回送请求报文由源主机发出,目标主机应答,用于测试另一台主机或路由器是否可达。其报文格式如图2-22所示。Pingcommandtotestitsreachability第第2章章 IP协议协议 图2-22回送请求与应答ICMP报文格式第第2章章 IP协议协议 2. 地址掩码请求与应答报文 4bytes address mask type =17, type-reply=183时间戳请求与应答报文时间戳请求与应答的报文格式如图2-23所示。第第2章章 IP协议协议 图2-23ICMP时间戳请求与应
37、答报文格式第第2章章 IP协议协议 2.5 地址解析TCP/IP协议族专门设计了用于地址解析的协议ARP(AddressResolutionProtocol),它可以把一个IP地址映射成对应的物理地址。另外,对于无法保存IP地址的主机(如无盘工作站),TCP/IP协议族中也提供了从 物 理 地 址 到 IP地 址 映 射 的 反 向 地 址 解 析 协 议RARP(ReverseAddressResolutionProtocol),如图2-24所示。第第2章章 IP协议协议 图2-24ARP和RARP第第2章章 IP协议协议 2.5.1ARP协议1ARP报文格式在常用的以太网中,ARP报文被封
38、装成如图2-25所示的以太网数据帧,然后以广播方式发送到物理网络。ARP报文格式如图2-26所示。第第2章章 IP协议协议 图2-25ARP报文的以太网封装格式第第2章章 IP协议协议 图2-26ARP报文格式第第2章章 IP协议协议 (1)硬件类型。硬件类型字段占2个字节,表示发送者硬件地址的类型。它的值为1即表示以太网地址。(2)协议类型。协议类型字段占2个字节,表示发送方要映射的协议地址类型,该字段的常用值如表2-9所示。第第2章章 IP协议协议 表2-9协议类型字段常用值(即以太网协议类型字段)第第2章章 IP协议协议 (3)硬件地址长度和协议地址长度。Request6reply4(4
39、)操作代码。ARP1234(rarp)(5)发送方硬件地址和发送方协议地址。(6)目标方硬件地址和目标方协议地址。2ARP工作原理 (IP ADDRESS AND PHYSICAL ADDRESS)3ARP高速缓存第第2章章 IP协议协议 在网络中,每台主机上都有一个ARP高速缓存,这个高速缓存存放了最近IP地址到硬件地址之间的映射记录。高速缓存区中表项建立的方法是:(1) 请求主机收到ARP应答后,主机就把获得的IP地址与物理地址的映射关系存入ARP表中。(2) 由于ARP请求报文是广播发送的,所有收到ARP请求报文的主机都可以把其中发送方的物理地址和IP地址映射存入自己的高速缓存中,以备将
40、来使用。(3) 网络中的主机在启动时,可以主动广播自己的IP地址和物理地址的映射关系,以免其他主机对它提出ARP请求(这也使一台主机在启动时,就可以知道自己的IP地址与网络中其他主机的IP地址有没有冲突)。 第第2章章 IP协议协议 2.5.2RARP协议在对主机进行配置时,IP地址一般保存在本机的磁盘上,因此,系统引导时从磁盘上的配置文件中读取本机的IP地址。但是对互联网中的无盘工作站或X终端等无法在本机保存IP地址的主机,又该如何获得IP地址呢?设计RARP就是为了解决这个问题。在互联网中,一台主机的标识是IP地址;在一个局域网中,主机的标识是硬件地址,它保存在网络接口卡中,可以惟一标识一
41、个网络中的一台主机。无盘工作站在启动时,利用从网络接口卡上读取的硬件地址做标识,发送一个RARP请求报文,它和RAP正好相反,是用来获取主机的IP地址的。第第2章章 IP协议协议 主服务器,备份服务器RARP报文的格式与ARP报文格式基本一致(见图2-26)。它们之间主要的差别是RARP请求或应答的帧类型代码为0x8035,见表2-9,而且RARP请求的操作代码为3,应答操作代码为4。第第2章章 IP协议协议 2.6 IP数据报的路由选择2.6.1路由表图2-27是由6个路由器互联的5个网络,每个网络在图中用一条粗线表示,下面标有网络地址。每个路由器在端口处标有其IP地址,现在网络10.0.0
42、.0中的主机1要发送数据给网络50.0.0.0中的主机2,它们之间有多条路径相连。第第2章章 IP协议协议 图2-27由6个路由器互联的5个网络第第2章章 IP协议协议 网络层进行路由选择的依据是保存在路由器中的路由表。设路由器1和路由器5的路由表如表2-10所示(为节省篇幅,其他路由器的路由表未列出)。第第2章章 IP协议协议 表2-10路由器1和路由器5的路由表第第2章章 IP协议协议 路由表保存了通过该路由器可能到达的目标网络以及如何到达该目标网络的信息。路由表的目标地址主要是目标网络地址,但也可以包含两种特殊的路由表项。一种是默认路由,它可以进一步简化路由表,当路由表中没有表项能与目标
43、网络相匹配时,就把数据报发送到默认路由。第第2章章 IP协议协议 2.6.2路由选择算法路由选择算法(RoutingAlgorithm)工作在网络层,它负责确定对所收到的IP数据报应通过哪条传输线传出(转发)。下面给出路由选择的一般算法:(1)路由器从收到的IP数据报中取出目标IP地址。(2)搜索路由表,寻找能与目的IP地址完全匹配的表目(网络号和主机号都要匹配)。如果找到,则把报文发送给该表目指定的下一站路由器或直接连接的网络接口,路由选择过程结束;如果找不到,则执行下一步。第第2章章 IP协议协议 (3)搜索路由表,把目标IP地址与子网掩码逐位求“与”后,寻找能与目的网络号相匹配的表目。如
44、果找到,则把报文发送给该表目指定的下一站路由器或直接连接的网络接口,路由选择过程结束;如果找不到,则执行下一步。(4)搜索路由表,寻找标为“默认(Default)”的表目。如果找到,则把报文发送给该表目指定的下一站路由器;如果找不到,则本次选路失败,发送一个“目标不可达”的ICMP报文给源主机。第第2章章 IP协议协议 2.6.3路由表的建立与刷新1. 静态路由静态路由是由互联网网络管理员根据网络的拓扑结构和连接方式人工建立的。静态路由的优点是可以使网络更安全,因为只有一条流进和流出网络的路径(除非定义多条静态路由)。另一个优点是静态路由配置简单,系统开销少,因为它不使用路由器上的CPU来计算
45、路由,需要很少的存储器就可以保存静态路由。2动态路由动态路由指互联网中的路由器可以通过自身的学习,自动修改和刷新路由表。 第第2章章 IP协议协议 路由守护程序选择最佳路由是根据一定的选路策略(RoutingPolicy)来进行的。动态路由的刷新要通过执行路由选择协议来实现,在互联网中,目前采用了许多不同的选路协议。2.6.4路由选择协议1. 距离-向量路由算法和路由信息协议RIP距离-向量算法有时也称为Bellman-Ford算法,该算法的基本思想是路由器会周期性地把自己的路由表拷贝传送给与其直接相连网络的各个路由器。第第2章章 IP协议协议 距离-向量算法的具体内容可描述如下:(1)在初始
46、启动路由器时,各路由器的路由表只包含了与本路由器直接相连网络的路由,因为各路由器还不知道去其他网络的信息,并把距离设为0(与本路由器直接相连)。(2)各路由器周期性地向相邻的路由器广播自己的路由表信息,收到广播路由信息的其他路由器根据这些信息对自己的路由表进行刷新。如果路由器A收到了发自路由器B的路由信息(以下用A和B表示),则路由器A路由表的刷新可以分为以下几种情况:第第2章章 IP协议协议 添加表项。目标网络NEXTROUTER距离修改表项。删除表项。距离-向量路由选择算法在网络中的具体使用是通过RIP协议来实现的,该协议规定了路由器之间广播发送路由信息(报文)的时间间隔(一般为30秒)、
47、信息格式、错误处理等内容。(180s)距离-向量路由算法的优点是算法简单,易于实现;缺点是当网络失败或发生其他变化时,路由器需要较长的时间才能收敛到对网络拓扑的正确认识。第第2章章 IP协议协议 RIP协议要求路由器每隔30秒无向地广播其路由表,在具有许多节点的大型网络中,这会消耗掉相当数量的带宽;它采用先入为主的原则,缺乏负载均衡的能力;最大距离规定为15,等于或超过16的距离视为不可达路由,限制了网络规模;路由度量值以跳数代替,并且默认跳数使用1(相邻路由之间),没有考虑其他因素。2链路-状态路由算法和开放式最短路径优先OSPF协议链路-状态路由算法也叫最短路径优先算法,它的基本思想是每个
48、路由器主动测试与其相连链路的状态,并将这些信息发送给其他相邻的路由器,这样利用扩散,每个路由器可以告诉它所在区域的其他路由器与它相邻的路由器及其开销,每个路由器接收这些链路状态信息并保存在一个数据库中。第第2章章 IP协议协议 开放式最短路径优先OSPF协议是基于链路-状态路由算法的,它的收敛速度比距离-向量协议更快,也就是说,在路由发生变化后(如路由器关闭或链路出故障),它可以较快稳定下来。它还可以根据吞吐率、往返时间、可靠性或其他性能来生成路由。另外,当同一个目的地址存在着多个相同费用的路由时,OSPF在这些路由上可以平均分配流量(流量平衡)。综上所述,OSPF是一个真正意义上的动态路由协
49、议,现在,由于大部分厂商提供的路由器支持OSPF协议,因此使用OSPF的网络越来越多。第第2章章 IP协议协议 习题习题 1简述IP协议在整个TCP/IP协议族中的作用和地位。2试述IP地址的结构、格式和分类。3IP协议报文有哪些主要字段?4IP数据报是如何从一台主机传输到相距甚远的另一台主机上的?5在网上查找并阅读RFC791。6在连入Internet的一台主机上,实验下列网络命令的用法和功能,并总结该网络命令分别与哪些协议有关,可以修改协议中的哪些字段值。(1)ping(2)arp(3)route第第2章章 IP协议协议 使网络中的不同设备能进行数据通信而预先制定一整套通信双方相互了解和共
50、同遵守的格式和约定。OSI/RM的七层结构:应用层、表示层、对话层、传输层、网络层、数据链路层、物理层TCP/IP四层结构:应用层、传输层、网际层、网络接口层TCP/IP的重要协议:ICMP、ARP/RARP、UDP、FTP、HTTP、SMTP等TCP/IP协议(TransferControlnProtocol/InternetProtocol)叫做传输控制/网际协议,又叫网络通讯协议,这个协议是Internet国际互联网络的基础。TCP/IP是网络中使用的基本的通信协议。虽然从名字上看TCP/IP包括两个协议,传输控制协议(TCP)和网际协议(IP),但TCP/IP实际上是一组协议,它包括上
51、百个各种功能的协议,如:远程登录、文件传输和电子邮件等,而TCP协议和IP协议是保证数据完整传输的两个基本的重要协议。通常说TCP/IP是Internet协议族,而不单单是TCP和IP。第第2章章 IP协议协议 TCP/IP协议族中包括上百个互为关联的协议,不同功能的协议分布在不同的协议层,下面介绍几个常用协议:Telnet(RemoteLogin):提供远程登录功能,一台计算机用户可以登录到远程的另一台计算机上,如同在远程主机上直接操作一样;FTP(FileTransferProtocol):远程文件传输协议,允许用户将远程主机上的文件拷贝到自己的计算机上;SMTP(SimpleMailtr
52、ansferProtocol):简单邮政传输协议,用于传输电子邮件;UDP(UserDatagramProtocol):用户数据包协议,它和TCP一样位于传输层,和IP协议配合使用,在传输数据时省去包头,但它不能提供数据包的重传,所以适合传输较短的文件。物理层协议:RS-232-c数据链路层协议:ppp网络层协议:IP、ICMP、ARP/RARP传送层协议:UDP、TCP应用层协议:HTTP、SMTP、SNMPInternet路由协议:RIP、OSPF第第2章章 IP协议协议 验证与远程计算机的连接。该命令只有在安装了TCP/IP协议后才可以使用。ping-t-a-ncount-llength
53、-f-ittl-vtos-rcount-scount-jcomputer-list|-kcomputer-list-wtimeoutdestination-list参数-tPing指定的计算机直到中断。-a将地址解析为计算机名。第第2章章 IP协议协议 -ncount发送count指定的ECHO数据包数。默认值为4。-llength发送包含由length指定的数据量的ECHO数据包。默认为32字节;最大值是65,527。-f在数据包中发送“不要分段”标志。数据包就不会被路由上的网关分段。-ittl将“生存时间”字段设置为ttl指定的值。-vtos将“服务类型”字段设置为tos指定的值。-rco
54、unt在“记录路由”字段中记录传出和返回数据包的路由。count可以指定最少1台,最多9台计算机。第第2章章 IP协议协议 -scount指定count指定的跃点数的时间戳。-jcomputer-list利用computer-list指定的计算机列表路由数据包。连续计算机可以被中间网关分隔(路由稀疏源)IP允许的最大数量为9。-kcomputer-list利用computer-list指定的计算机列表路由数据包。连续计算机不能被中间网关分隔(路由严格源)IP允许的最大数量为9。-wtimeout指定超时间隔,单位为毫秒。destination-list指定要ping的远程计算机第第2章章 IP
55、协议协议 Router(路由器)处理的就是IP地址。如何知道你的机器上的IP地址和MAC地址进入命令行方式,键入“IPCONFIG/ALL”第第2章章 IP协议协议 Route控制网络路由表。该命令只有在安装了TCP/IP协议后才可以使用。route-f-pcommanddestinationmasksubnetmaskgatewaymetriccostmetric参数-f清除所有网关入口的路由表。如果该参数与某个命令组合使用,路由表将在运行命令前清除。-p该参数与add命令一起使用时,将使路由在系统引导程序之间持久存在。默认情况下,系统重新启动时不保留路由。与print命令一起使用时,显示已
56、注册的持久路由列表。忽略其他所有总是影响相应持久路由的命令。command指定下列的一个命令。命令目的第第2章章 IP协议协议 print打印路由add添加路由delete删除路由change更改现存路由destination指定发送command的计算机。masksubnetmask指定与该路由条目关联的子网掩码。如果没有指定,将使用255.255.255.255。gateway指定网关。名为Networks的网络数据库文件和名为Hosts的计算机名数据库文件中均引用全部destination或gateway使用的符号名称。如果命令是print或delete,目标和网关还可以使用通配符,也可以省略网关参数。metriccostmetric指派整数跃点数(从1到9999)在计算最快速、最可靠和(或)最便宜的路由时使用第第2章章 IP协议协议 第第2章章 IP协议协议 第第2章章 IP协议协议