IP路由机制及其在WIN95下的应用

作者:何阳 蒋斌斌

  摘要 本文以WINDOWS95下的TCP/IP应用环境为例,用具体的网络配置实例对IP分组的路由机制进行了具体的分析。

  关键词TCP/IP IP路由

   1 局域网的发展及Windows95的应用

  在局域网布线和介质访问控制的三种标准协议(以太网、令牌环网、ARCnet)中,以太网是应用最为广泛的一种局域网标准。很多年以来,以太网一直是发展得最快的网络系统,是很多数据管理人员和系统集成人员的首选网络系统。在今天的企业内部网、校园网中大多也采用了这种标准。以企业内部网来说,很多采用了IEEE的10Mb无屏蔽双绞线的802.3标准10BaseT,它提供了在无屏蔽双绞线上采用以太网类型信号的传输方法。10BastT最大的潜大优点是它的星形布线方案(双绞线和集线器),既可提供高可靠性,又可提供集中控制。

  以典型的企业内部网为例,通常采用10BaseT标准安装其局域网系统,并通过防火墙主机经DDN或X.25来连接INTERNET。在局域网内的计算机上广泛安装了Windows95操作系统,这些基于PC平台的个人计算机系统同网络内部的其它Netware的文件服务器、WindowsNT、UNIX工作站等一起构成了企业的内部网。

  Windows95相对Windows3.x系列的一个重要区别是它所增加的网络功能,利用其控制面板的网络选项可以很方便地添加各种网络通讯协议及服务,从而访问在Netware、NT、UNIX上的网络资源。例如:要访问Netware服务器上的文件资源,可以安装Novell的IPX/SPX协议,而

  NetBEUI协议则提供了名字服务、会话服务、数据报服务等功能。TCP/IP协议作为访问INTERNET的“通用语言”已经成为Windows95访问更广阔网络资源的一项重要工具,通过它可以访问UNIX、NT、甚至Novell提供的FTP、TELNET、NFS、FTTP、NEWS、GOPHER等IP资源。

  以下将主要通过Windows95下的TCP/IP协议为例,在对TCP/IP的一些基本知识(如IP地址、子网)有一定了解的前提下,具体对IP路由、子网等一些TCP/IP协议的相关知识及其在WIN95下的应用进行分析。

   2 Windows95的TCP/IP协议及其工具

  Windows95的TCP/IP协议可以用控制面板中的网络选项来安装。除协议本身外,它还提供了一引进TCP/IP下的实用工具。当然在internet我们可以下载许多类似的工具,它们提供了更方便快捷的服务,用鼠标操作替代了键盘的命令行,但是这些处在Windows95目录下的简单命令行工具却为用户提供了最基本的TCP/IP服务。

  ARR.EXE 地址解析程序

  FTP.EXE 文件传输程序

  NBTSTAT.EXE 用TCP/IP上的Netbios显示当前的协议统计数字和TCP/IP网络连接

  NTESTAT.EXE 显示当前的协议统计数字和TCP/IP网络连接

  PING.EXE 测试TCP/IP配置、诊断连接问题的诊断工具

  ROUTE.EXE 网络路由表管理程序

  ETLNET.EXE 远程登录程序

  TRACERT.EXE 路由跟踪程序

  WINIPCFG.EXE 查看本机的TCP/IP配置

  要进行Windows95的IP设置,可以打开控制面板中网络选项,在已安装的网络组件中查看TCP/IP协议的属性,其中有两栏同IP路由是密切相关的,这就是IP地址设置和网关设置:

  在IP地址这一栏中可以通过两种方法来设置计算机的IP地址,一是设置为自动获得一个IP地址,如果该计算机所在网络中有配置奶动态主机配置协议(DHCP)的服务器,那么在Windows95启动时,就可以从DHCP服务器上自动获得一个IP地址。第二种方法是指定一个固定的IP地址,你需要从网络管理员那里获知相关的信息设定。

   3 IP分组路由操作

  需要发送IP分组到一个网络(非直接连接的网络)的主机都有一个本地维护的路由表,主机通过网络上的路由器和本地路由表来了解网络。例如:当Windows95配置了TCP/IP协议后,它 为了一个IP主机,同样在其内部也维护着一个主机路由表。ROUTE命令可以查看这一路由表:

  C:\WIN PRINT ROUTE

  Active Rourtes:

  Network Address Netmask Gateway Address Interface Metric

  0.0.0.0 0.0.0.0 128.8.1.1 128.1.1.20. 1

  127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1

  128.1.0.0 255.255.0.0 128.1.1.20 128.1.1.20 1

  129.1.0.0 255.255.0.0 128.1.1.7 128.1.1.20 1

  255.255.255.255 255.255.255.255 128.1.1.20 128.1.1.20 1

  从表中我们可以得知,该主机的缺省由器为128.1.1.1,通用网络129.1.0.0的路由器为128.1.1.7,发往网络128.0.0上主机的IP分组可以直接发送。以下将作重介绍IP的路由制,当主机送一个IP分组时,它完成下面的操作:

  1)如果分组的网络地址(netid)与直接连接网络的网络地址相同,则分组将被接送给目标。在此情况下,不要求路由。

  例如:本机的IP的地址为128.1.1.20,要发送IP分组到128.1.1.30,主机完成的操作是:根据子网屏蔽255.255.0.0对比128.1.1.20和128.1.1.30的网络地址,由于没有子网划分,它们同属网络128.1.0.0 ,因此分组将直接送往128.8.1.30。用命令PING可以查看分组的正确发送。

  C:\WIN>PING 128.1.130

  Pinging 128.1.1.30 with 32 bytes of data:

  Reply fron 128.1.130:bytes=32 time=2ms TTL=64

  2)如果分组的网络地址(netid)与直接连接网络的网络地址不同,则分组被送给路由器。路由器端口的IP地址通过查询主机的路由表来获得。

  例如:本机的IP地址为128.1.1.20要发送IP分组到129.1.1.20,主机完成的操作是:根据子网屏蔽255.255.0.0对比128.1.1.20和129.1.1.30的网络地址,一个属网络128.1.0.0,另一个在网络129.1.0.0,分组无法直接发送,必须通过路由器来转发。查询主机路由表可知,IP分组要发往网络129.9.0.0须通过路由器128.1.1.7转发,利用命令TRACERT可能跟踪IP分组的路由途径:

  C:\WIN>TRACERT-d 129.1.1.20

  Tracing route to 1291120 over a maximum of 30 hops

  1 19ms 2ms 1ms 128.1.1.7

  2 5ms 2ms 2ms 129.1.1.20

  可以看出发往129.9.1.20的IP分组首先通过了路由器128.1.1.7再转发至129.9.1.20。

  3)如果目的地网络在主机的主机路由表中没有输入,则使用缺省的路由器转发。缺省路由器的IP地址为该路由器同本地网络(128.1.0.0)相连的端口的IP地址。如果在用于目的地网络或主机上的路由表中说明的输入。如果没有缺省路由器输入,则分组不能选择路由,且一个差错被报告给主机。

  例如:本机的IP地址为128.1.1.20,要发送IP分组到140.1.1.20,由于两个主机分属于不同的网络,分组无法直接发送,必须通过路由器来转发。查询主机路由表,表中没有到网络140.1.0.0的路由表项,则IP分组使用缺省路由器128.1.1.1(缺省路由器由网络地址为0.0.0.0的表项表示)转发。利用命令TRACERT可以跟踪IP分组的路由途径:

  C:\WIN>RTACERT-d 140.1.1.20

  Tracing route to 140.1.120 over a maximum of 30 hops

  1 19ms 2ms 1ms 128.1.1.1

  2 13ms 7ms 4ms 140.1.1.20

  在Windows95中,缺省路由器(也即默认网关)可以在TCP/IP的网关表项中设定。其中所设定的第一个网关为默认网关,如果不设定缺省路由器,在主机的路由表中无法查到发往网络140.1.0.0的途径,此时IP分组无法选择路由,将返回错误。例:

  C:\WIN>PING 140.1.1.20

  Pinging 140.1.1.20 with 32 bytes of data:

  Request timed out

   4、动态路由、静态路由

  当没有在TCP/IP配置中设定默认网关(缺省路由器)时,发往网络140.1.0.0的IP无法正确路由,当然我们可以设置该置该值并重新启动计算机来生成缺省路由表项,同样我们还可以通过ROUTE命令在不重新启动计算机的情况下来添加路由表项。

  C:\WIN>ROUTE ADD 0.0.0.0 MASK 0.0.0.0 128.1.1.1

  再次查看路由表时可以发现增加了的缺省路由器表项,此时分组也通过它可以正确转发了。这种方式增加的路由表项称为动态路由表项。而在TCP/IP配置表中设定的路由器IP地址的开机后自动成生静态路由表项。

  动态路由表项可以由人为输入来添加,也可以由TCP/IP软件自动增加。在一个物理网段内存在多个路由器的情况下,当一个路由器收到一个IP分组后,发现到达该分组的目的地还存在更好的通路,它还应该能够使用ICMP(Internet Control Message Protocol)协议发送一个重导向分组,该分组告诉主机“以后如果要发送分组到地址XXX请使用网关YYY”。例如:你所在主机的路由表开始如下所示:

  Active Rortes:

  Network Address Netmask GatewayAddress Interface Metric

  0.0.0.0 0.0.0.0 128.8.1.1 128.1.1.20 1

  128.1.0.0 255.255.0.0 128.1.1.20 128.1.1.20 1

  129.1.0.0 255.255.0.0 128.1.1.7 128.1.1.20 1

  假定网络中还有一个路由器128.1.1.3,它是通向网络141.1.0.0的最好途径;此时你有一些分组要发给141.1.1.2。第一个分组将通过缺省路由器128.1.1.1,因为根据路由表中的信息那是唯一可行的通路。然而缺省路由器从它的更新了的路由表得知128.1.1.3是更好的路由,因此缺省路由器发回一个重导向分组,告诉你的主机前往141.1.1.2的分组应使用128.1.1.3发送。在你的路由表中,TCP/IP将自动增加下列路由登录项:

  ROUTE ADD 141100 MASK 255.255.0.0 128.1.1.3

  以后的分组将使用该路由器转发。

  通信地址:深圳科技工业园科发路华为技术有限公司中试A型机研究部(518057)何阳