网络中的IP地址

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

摘 要
随着互联网的普及,我们的工作、学习与生活与网络联系越来越紧密,人们搭建了许多不同的网络,如企业网、校园网与城区网等。由于采用DHCP技术动态地为主机配置网络参数,可以有效解决目前IP地址资源不足(使用内部IP)与无线网络用户的移动性等问题,并能极大地减轻大型网络管理员的工作量,减少手动配置主机网络参数的错误,有利于我们快速地搭建一个大型网络或修改其网络配置。因此,网络配置管理中越来越多地使用了DHCP服务器及技术,随着网络应用的普及与深入,其应用范围将会愈来愈广。但目前国内对DHCP技术的研究大多只限于DHCP服务器的配置问题与DHCP协议本身,很少有更深入的研究。我们在使用DHCP技术对主机网络参数进行动态地配置与管理的同时,理所当然地认定了其唯一合理性与不可取代性。我们就实验室计算机网络配置与管理为背景,研究在此特定环境下通过UDP广播分配IP(服务器)、配置IP(客户端)的问题,以此在一定程度上取代DHCP技术,对实验室计算机网络参数进行快捷有效的配置与管理。具体来讲,主要内容与工作有:
(1)介绍DHCP协议及DHCP工作原理
(2)介绍ARP协议与ARP工作原理
(3)系统的分析、设计、实现与测试

【关键字】:DHCP;ARP;IP配置;多线程
1 引言
1.1 课题背景
TCP/IP网络在Internet与Intranet领域中占据越来越大的比重,人们日常的工作、学习、生活正同网络日益密切地联结在一起,网络如同呼吸一样,正成为许多人赖以生存发展的工具。网络对企业有着更为重要的作用。网络这一高速的信息流动媒体,是企业内部加快物流、资金流,加快信息的流动,实现资源共享、加强企业内部管理的一个重要手段。
但是,TCP/IP网络基本是手动配置的,需要很大的工作量,必须配置的网络参数包括IP地址、子网掩码、网关地址、DNS地址。另一方面,随着笔记本电脑的普及,大量的移动用户入网时需要配置网络参数。企业内部用户因工程、项目的组合与分解,也常会变动用户计算机所在的网络。这些因素使网络具有了很强的动态性,加重了网络配置的难度。据保守的估计,对每个IP的更改都要花费大约5分钟。那么,对于一个有100节点的小网络来说,一个网络管理员要花费8个小时来做这些必要的修改。随着网络的扩展,这种工作将变得越来越难以负担,并极易发生错误。如何成功的配置这些系统,把握好对TCP/IP网络的控制权,是包括拥有企业网、校园网、公众网等的大型企业、院校、网络接入提供商(ISP)的必须认真与严肃对待的问题。
DHCP技术可以解决上述问题。网络管理员可以验

证IP地址与其它配置参数,而不用去检查每个主机;DHCP服务器不会同时租借相同的IP地址给两台主机;DHCP管理员可以约束特定的计算机使用特定的IP地址;可以为每个DHCP作用域设置很多选项;客户机在不同子网间移动时不需要重新设置IP地址。正由于DHCP技术的以上优点,所以在网络中越来越多的采用了DHCP服务器来配置网络。但是,通过查阅大量的相关资料,我们发现DHCP技术在解决配置主机网络参数的问题时,也存在一定的不足。首先,DHCP不能发现网络上非DHCP客户机已经在使用的IP地址;其次,当网络上存在多个DHCP服务器时,一个DHCP服务器不能查出已被其它服务器租出去的IP地址;再次,DHCP服务器不能跨路由器与客户机通信,除非路由器允许BOOTP转发;最后,DHCP服务器的配置相对复杂、繁琐,即使是专门的网络管理人员,在配置DHCP服务器的时候也难免遇见一些难以解决的问题。针对DHCP技术在某些特定环境下的以上几点不足之处,为避免网络管理人员在配置与管理计算机网络参数的时候遇见各式各样的问题,减轻网络管理人员的负担,使其对计算机进行更方便、更快捷、更有效的配置与管理,我们研究开发了实验室计算机的IP地址自动设置程序,用以在某些特定环境下在一定程度取代DCHP技术。
1.2 国内外的研究现状
从有关的文献资料与网络资源来看, 国外许多组织很早便积极开展对DHCP技术的研究工作,IETF对此做了大量的工作。提出了一系列RFC文档,例如:1985年9月提出的RFC951中提出了BOOTSTRAPPROTOCOL,标志着DHCP的前身BOOTP的诞生;1993年10月,Bucknell University的R.Droms在RFC1541中正式提出了DHCP技术,在原来BOOTP的基础上,增加了在TCP/IP网络上自动分配可重用IP地址与可选的网络配置参数的功能;1997年3月,R.Droms在RFC2131中完善了DHCP技术,增加了对中继代理的支持,并增加了网络配置参数的可选项;同期,RFC2132中详细的解释了DHCP协议中的各个选项的格式及意义。自此DHCP技术已经基本成型。
2 系统的分析、设计、实现与测试
2.1 系统的分析
本系统名为《实验室计算机的IP地址自动设置程序——客户端的设计与实现》,所需要完成的功能就是与服务器程序通讯,获取服务器分配过来的IP地址等网络参数信息,然后对本计算机的网络参数进行配置,并且让这些配置立即生效。这里涉及到这样几个问题:
第一章客户端程序如何与服务器程序进行通信,采用什么方式进行交互。
第二章如何有效判断接收到的数据信息就是客户端需要的信息。
第三章如何判断服务器分配给客户端的IP地址信息是否已被其他主机占用。
第四章如

果IP已被占用后客户端与服务器如何处理。
第五章如何快速有效的配置IP地址等网络参数信息。
第六章如何使配置好的网络参数立即生效。
第七章如何保证客户端主机一启动,本客户端程序就随之启动。
第八章如何保证用户界面的有好性,防止本客户端程序假死。
第九章如何保证本客户端程序在完成预期功能后,自动退出。
2.2 系统的设计
针对系统分析时列出的几个问题,我查阅大量有关资料,认真分析了DHCP技术的实现机制,并考虑到本系统的实际应用环境。决定采用以下方案来解决上述问题,以完成本系统客户端的全部功能。
第一章考虑到服务器逻辑位置的不可预知性,本系统的客户端与服务器均采用UDP广播进行通信。并且采用只需一次请求,一次应答的交互方式,摒弃了DHCP技术的发现服务器、服务器应答、选择服务器、服务器确认提供信息这样四个步骤的相对繁琐的机制。
第二章我们自行定义了客户端与服务器通信的格式,客户端与服务器分别在特定端口上接收到数据以后,都将对数据的有效性进行判断,如果不是预期的通信数据,那么这些数据将被立即丢弃。只有符合我们自定义格式的有效数据,才会被进一步处理。
第三章在分析Windows系统检测IP地址是否冲突的时候,发现Windows系统是以广播的方式向局域网内发送针对特定IP地址的ARP请求,以此来判断IP地址是否冲突的。此方法快速、准确、有效。本客户端程序也采用同样的机制来检测IP地址是否被占用。客户端在接收到服务器分配的IP地址等网络参数信息以后,将以广播的方式向整个局域网络发送针对服务器分配的IP地址的ARP请求,以此可以判断该IP地址是否已经被局域网内其他主机占用。
第四章如果客户端得到的服务器分配的IP地址已经被其他主机占用,那么客户端将向服务器再次发送分配IP的请求,此时的请求消息与正常情况下发送的请求消息将有所不同。以此告诉服务器该IP地址已经被占用,便于服务器做相应的处理。
第五章配置本机IP地址等网络参数信息的方式有很多种,比如可以使用Windows自带的工具NETSH,还可以通过某些API函数向Windows系统维护的地址结构体中添加新的IP地址等信息。本程序为了更快速、更有效的配置IP地址等网络参数信息,首先获取本机网络适配卡的相关信息,然后据此修改注册表中与其对应的IP地址等网络参数信息。
第六章一般情况下,由于Windows系统要求更改网络参数后,必须重启计算机才能使更改后的网络参数信息生效。但是我们注意到我们使用电脑的时候,以图形界面的方式更改网络连接的参数后,新配置的网络参数

会立即生效。同样的,在使用DHCP技术配置客户端计算机的网络参数的时候,客户端配置好IP地址等网络参数信息后,并没有重启计算机就能立即生效。通过查阅有关资料,我们发现在使用DHCP技术进行计算机网络参数的配置时,在更改了网络参数以后,系统调用了一个微软并没有公布的API用以通告网络参数的改变,此API名为:DhcpNotifyConfigChange,位于dhcpcsvc.dll中。我们的程序在配置好网络参数以后,也调用该API函数,通告网络参数的改变,以使新配置的网络参数立即生效。
第七章由于本程序的特殊性,要求本程序像DHCP的客户端服务一样,在计算机启动以后,本程序也随之立即启动运行,而不是用户每次来点击运行,用户只要在某计算机上运行一次本程序,以后不需再做任何的操作,本程序将随计算机开机运行,对本计算机的网络参数进行配置。考虑到在每台电脑上,本程序的所在的逻辑位置很可能不相同,导致开机自启动的功能没法预期实现。本程序借鉴了木马程序中常用的两个技术来保障开机自启动的功能按照预期的完成。首先,本程序每次执行的时候,都将自身文件拷贝到系统的System32
目 录下,以保证本程序不被一般用户随意或不小心删除。然后,通过向注册表中HKEY_LOCAL_MACHINE/Software/Microsoft/Windows/CurrentVersion/Run写入本程序的键值来实现开机自启动的功能。

相关文档
最新文档