实验室计算机的IP地址自动设置程序客户端的设计与实现论文.docx

上传人:b****8 文档编号:9535125 上传时间:2023-05-19 格式:DOCX 页数:35 大小:189.37KB
下载 相关 举报
实验室计算机的IP地址自动设置程序客户端的设计与实现论文.docx_第1页
第1页 / 共35页
实验室计算机的IP地址自动设置程序客户端的设计与实现论文.docx_第2页
第2页 / 共35页
实验室计算机的IP地址自动设置程序客户端的设计与实现论文.docx_第3页
第3页 / 共35页
实验室计算机的IP地址自动设置程序客户端的设计与实现论文.docx_第4页
第4页 / 共35页
实验室计算机的IP地址自动设置程序客户端的设计与实现论文.docx_第5页
第5页 / 共35页
实验室计算机的IP地址自动设置程序客户端的设计与实现论文.docx_第6页
第6页 / 共35页
实验室计算机的IP地址自动设置程序客户端的设计与实现论文.docx_第7页
第7页 / 共35页
实验室计算机的IP地址自动设置程序客户端的设计与实现论文.docx_第8页
第8页 / 共35页
实验室计算机的IP地址自动设置程序客户端的设计与实现论文.docx_第9页
第9页 / 共35页
实验室计算机的IP地址自动设置程序客户端的设计与实现论文.docx_第10页
第10页 / 共35页
实验室计算机的IP地址自动设置程序客户端的设计与实现论文.docx_第11页
第11页 / 共35页
实验室计算机的IP地址自动设置程序客户端的设计与实现论文.docx_第12页
第12页 / 共35页
实验室计算机的IP地址自动设置程序客户端的设计与实现论文.docx_第13页
第13页 / 共35页
实验室计算机的IP地址自动设置程序客户端的设计与实现论文.docx_第14页
第14页 / 共35页
实验室计算机的IP地址自动设置程序客户端的设计与实现论文.docx_第15页
第15页 / 共35页
实验室计算机的IP地址自动设置程序客户端的设计与实现论文.docx_第16页
第16页 / 共35页
实验室计算机的IP地址自动设置程序客户端的设计与实现论文.docx_第17页
第17页 / 共35页
实验室计算机的IP地址自动设置程序客户端的设计与实现论文.docx_第18页
第18页 / 共35页
实验室计算机的IP地址自动设置程序客户端的设计与实现论文.docx_第19页
第19页 / 共35页
实验室计算机的IP地址自动设置程序客户端的设计与实现论文.docx_第20页
第20页 / 共35页
亲,该文档总共35页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

实验室计算机的IP地址自动设置程序客户端的设计与实现论文.docx

《实验室计算机的IP地址自动设置程序客户端的设计与实现论文.docx》由会员分享,可在线阅读,更多相关《实验室计算机的IP地址自动设置程序客户端的设计与实现论文.docx(35页珍藏版)》请在冰点文库上搜索。

实验室计算机的IP地址自动设置程序客户端的设计与实现论文.docx

实验室计算机的IP地址自动设置程序客户端的设计与实现论文

实验室计算机的IP地址自动设置程序

——客户端的设计与实现

摘要

随着互联网的普及,我们的工作、学习和生活与网络联系越来越紧密,人们搭建了许多不同的网络,如企业网、校园网和城区网等。

由于采用DHCP技术动态地为主机配置网络参数,可以有效解决目前IP地址资源不足(使用内部IP)和无线网络用户的移动性等问题,并能极大地减轻大型网络管理员的工作量,减少手动配置主机网络参数的错误,有利于我们快速地搭建一个大型网络或修改其网络配置。

因此,网络配置管理中越来越多地使用了DHCP服务器及技术,随着网络应用的普及和深入,其应用范围将会愈来愈广。

但目前国内对DHCP技术的研究大多只限于DHCP服务器的配置问题和DHCP协议本身,很少有更深入的研究。

我们在使用DHCP技术对主机网络参数进行动态地配置与管理的同时,理所当然地认定了其唯一合理性和不可取代性。

我们就实验室计算机网络配置与管理为背景,研究在此特定环境下通过UDP广播分配IP(服务器)、配置IP(客户端)的问题,以此在一定程度上取代DHCP技术,对实验室计算机网络参数进行快捷有效的配置与管理。

具体来讲,主要内容和工作有:

(1)介绍DHCP协议及DHCP工作原理

(2)介绍ARP协议和ARP工作原理

(3)系统的分析、设计、实现与测试

关键词:

DHCP;ARP;IP配置;多线程

 

TheAutomaticIPAddressConfigurationSoftwareforLab

——DesignandImplementationofClient

Abstract

WiththeprevalenceofInternet,therelationbetweenpeople’slifeandnetworkbecomescloserandcloser,andvariousnetworks,suchasenterprisenetwork,campusnetworkandpublicnetworketc.arebeingbuilt.DHCPserversandDHCPtechnologyforconfiguringnetworkparameterscansolvetheproblemsoftheshortageofIPaddressesandthemobilityofwirelessnetworkuser,andasaconsequencetheygreatlylightentheworkofnetworkadministrator,andreducemistakesfromthemanualconfiguration.Theyarequiteusefulforthefastset-upofalarge-scalenetworkormodifyingitsparameters.SoDHCPtechnologywillbeappliedmoreandmorefrequentlyinnetworks.NowresearchesonDHCPonlyfocusesontheconfigurationofDHCPserverandDHCPprotocol,andpeopleseldomdoanydeeperresearches.WhenweareusingDHCPtechnologytoconfigureandmanagenetworkparametersofhosts,wethinknaturallythatDHCPtechnologyistheonlywaytosolvetheproblemandthatitcannotbereplaced.Basedontheconfigurationandmanagementofthehostsinthelaboratory,thispaperproposesawaytoassign(serversidesoftware)andconfigure(clientsidesoftware)networkparameters,usingtheUDPbroadcastinsteadoftheDHCPtechnology.Thissoftwarecanmaketheproblemseasiertosolve.Themaincontentincludesfollowingpoints:

(1)IntroducingDHCPprotocolanditstheory

(2)IntroducingARPprotocolanditstheory

(3)Introducingtheanalyse,design,implementationandtestofthissoftware

Keywords:

DHCP;ARP;IPconfiguration;multithread

目录

论文总页数:

25页

1引言1

1.1课题背景1

1.2国内外的研究现状2

1.3本课题的研究意义2

1.4本课题的研究方法2

2DHCP协议与ARP协议及他们的工作原理3

2.1DHCP协议概述3

2.2DHCP工作原理3

2.3ARP协议概述5

2.4ARP工作原理5

3系统的分析、设计、实现与测试6

3.1系统的分析6

3.2系统的设计6

3.3系统的实现11

3.4系统的测试20

结论23

参考文献23

致谢24

声明25

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月,BucknellUniversity的R.Droms在RFC1541中正式提出了DHCP技术,在原来BOOTP的基础上,增加了在TCP/IP网络上自动分配可重用IP地址和可选的网络配置参数的功能;1997年3月,R.Droms在RFC2131中完善了DHCP技术,增加了对中继代理的支持,并增加了网络配置参数的可选项;同期,RFC2132中详细的解释了DHCP协议中的各个选项的格式及意义。

自此DHCP技术已经基本成型。

国外许多公司也积极开展DHCP软件的研究和开发工作。

其中比较有影响力的是国际软件联盟ISC(InternetSoftwareConsortium)开发的基于Linux平台的DHCP服务器;IBM的DHCP服务器只限定在IBMAIX及WindowsNT系统下运行;微软公司开发的DHCP服务只限定在WindowsNT/2000服务器系统下运行。

国内对DHCP方面的研究不多。

只有少数大型企业开发自主的DHCP服务器仅在企业内部使用。

1.3本课题的研究意义

随着网络技术的迅速发展,网络与我们的生活越来越密切相关,如何方便、快捷、有效的对一个网络进行管理,一直是一个让网络管理人员颇为困惑的问题。

DHCP技术的出现、发展与运用,给网络管理人员带来了极大的便利。

由于DHCP技术源自国外,国内对DHCP技术的研究极其的少,而我们国家为解决IP资源严重不足的问题,需要大量使用DHCP技术。

因此,开展对DHCP技术的研究,对促进国产DHCP软件在工程建设中的使用,解决目前非常紧张的国内IP地址空间问题,弥补国产网络管理软件的空白等具有重要的实际意义。

1.4本课题的研究方法

本系统名为《实验室计算机的IP地址自动设置程序》,其应用环境是实验室这样一个特定的环境,其目的是便于网络管理人员对实验室计算机的网络参数进行方便、快捷、有效的配置与管理。

首先,我们分析了DHCP技术的工作原理,掌握了DHCP服务器与客户端交互的过程。

其次,考虑到DHCP技术本身的复杂性,我们提出了使用UDP广播进行通信,并自定义通讯协议这样相对简单的系统解决方案。

接着,我查阅了Windows系统判断IP地址冲突的机制,Windows系统配置IP等网络参数的原理,并进一步研究分析了UDP广播通讯、ARP地址解析协议、Windows平台下Socket网络编程等相关问题。

最后,我设计了本系统客户端程序,并在VisualC++6.0开发环境下实现了全部功能。

2DHCP协议与ARP协议及他们的工作原理

2.1DHCP协议概述

DHCP是DynamicHostConfigurationProtocol(动态主机分配协议)的缩写,代表动态主机配置协议。

DHCP是对允许无盘工作站连接到网络并且自动获取一个IP地址的BOOTP协议的一个扩展。

DHCP向网络主机提供配置参数,它由两个基本部分组成:

一部分是向网络主机传送专用的配置信息,另一部分是给主机分配网络地址。

DHCP可以向每一个网络客户提供一个IP地址,子网掩码,缺省网关,一个WINS服务器的工P地址,以及一个DNS服务器的IP地址等等。

DHCP是基于客户/服务器模式的,这种模式下,专门指定的主机分配网络地址,传送网络配置参数给需要的网络主机,被指定的主机称为服务器。

我们以后将提供DHCP服务的主机称为服务器,把接收信息的主机称为客户。

DHCP支持三种IP地址分配方法。

第一种是自动分配,DHCP给用户分配一个永久的IP地址。

第二种是动态分配,在这种情况下,用户可以取得一个IP地址,但有时间限制。

第三种是手工分配,在这种方法下,用户的IP地址是由管理员手工指定的,在这种情况下,DHCP服务器只需要将这个指定的IP地址传送给用户即可。

至于用什么样的分配方法,不同的网络各不相同。

动态分配是唯一的一种允许自动重用地址的机制。

因此,这种方法对于有临时上网用户,并且网络的IP地址资源比较紧缺情况下特别有用。

而手工指定方法对于管理不希望使用动态IP地址的用户十分方便,不会因为手工指定而和DHCP冲突或和别的已经分配的地址冲突。

DHCP是一种相对集中式的管理方式。

2.2DHCP工作原理

当客户使用DHCP服务器获取IP时,它处于六个状态之一,如图2-1所示。

图2-1DHCP状态转移图

DHCP的工作过程如图2-2所示。

图2-2DHCP的工作过程

1.发现阶段,即DHCP客户主机寻找DHCP服务器的阶段。

DHCP客户机以广播方式(因为DHCP服务器的IP地址对于客户机来说是未知的)发送DHCPDISCOVER发现信息来寻找DHCP服务器,即向地址255.255.255.255发送特定的广播信息。

网络上每一台安装了TCP/IP协议的主机都会接收到这种广播信息,但只有DHCP服务器才会做出响应。

2.提供阶段,即DHCP服务器提供IP地址的阶段。

在网络中接收到DHCPDISCOVER发现信息的DHCP服务器都会做出响应,它从尚未出租的IP地址中挑选一个分配给DHCP客户机,向DHCP客户机发送一个包含出租的IP地址和其他设置的DHCPOFFER提供信息。

3.选择阶段,即DHCP客户机选择某台DHCP服务器提供的IP地址的阶段。

如果有多台DHCP服务器向DHCP客户机发来的DHCPOFFER提供信息,则DHCP客户机只接受第一个收到的DHCPOFFER提供信息,然后它就以广播方式回答一个DHCPREQUEST请求信息,该信息中包含向它所选定的DHCP服务器请求IP地址的内容。

之所以要以广播方式回答,是为了通知所有的DHCP服务器,他将选择某台DHCP服务器所提供的IP地址。

4.确认阶段,即DHCP服务器确认所提供的IP地址的阶段。

当DHCP服务器收到DHCP客户机回答的DHCPREQUEST请求信息之后,它便向DHCP客户机发送一个包含它所提供的IP地址和其他设置的DHCPACK确认信息,告诉DHCP客户机可以使用它所提供的IP地址。

然后DHCP客户机便将其TCP/IP协议与网卡绑定,另外,除DHCP客户机选中的服务器外,其他的DHCP服务器都将收回曾经提供的IP地址。

5.重新登录。

以后DHCP客户机每次重新登录网络时,就不需要再发送DHCPDISCOVER发现信息了,而是直接发送包含前一次所分配的IP地址的DHCPREQUEST请求信息。

当DHCP服务器收到这一信息后,它会尝试让DHCP客户机继续使用原来的IP地址,并回答一个DHCPACK确认信息。

如果此IP地址已无法再分配给原来的DHCP客户机使用时(比如此IP地址已分配给其它DHCP客户机使用),则DHCP服务器给DHCP客户机回答一个DHCPNAK否认信息。

当原来的DHCP客户机收到此DHCPNAK否认信息后,它就必须重新发送DHCPDISCOVER发现信息来请求新的IP地址。

6.更新租约。

DHCP服务器向DHCP客户机出租的IP地址一般都有一个租借期限,期满后DHCP服务器便会收回出租的IP地址。

如果DHCP客户机要延长其IP租约,则必须更新其IP租约。

DHCP客户机启动时和IP租约期限过一半时,DHCP客户机都会自动向DHCP服务器发送更新其IP租约的信息。

2.3ARP协议概述

ARP,全称AddressResolutionProtocol,中文名为地址解析协议,它工作在数据链路层,在本层和硬件接口联系,同时对上层提供服务。

IP数据包常通过以太网发送,以太网设备并不识别32位IP地址,它们是以48位以太网地址传输以太网数据包。

因此,必须把IP目的地址转换成以太网目的地址。

在以太网中,一个主机要和另一个主机进行直接通信,必须要知道目标主机的MAC地址。

但这个目标MAC地址是如何获得的呢?

它就是通过地址解析协议获得的。

ARP协议用于将网络中的IP地址解析为的硬件地址(MAC地址),以保证通信的顺利进行。

2.4ARP工作原理

1.首先,每台主机都会在自己的ARP缓冲区(ARPCache)中建立一个ARP列表,以表示IP地址和MAC地址的对应关系。

2.当源主机需要将一个数据包要发送到目的主机时,会首先检查自己ARP列表中是否存在该IP地址对应的MAC地址,如果有就直接将数据包发送到这个MAC地址;如果没有,就向本地网段发起一个ARP请求的广播包,查询此目的主机对应的MAC地址。

此ARP请求数据包里包括源主机的IP地址、硬件地址、以及目的主机的IP地址。

3.网络中所有的主机收到这个ARP请求后,会检查数据包中的目的IP是否和自己的IP地址一致。

如果不相同就忽略此数据包;如果相同,该主机首先将发送端的MAC地址和IP地址添加到自己的ARP列表中,如果ARP表中已经存在该IP的信息,则将其覆盖,然后向源主机发送一个ARP响应数据包,告诉对方自己是它需要查找的MAC地址;

4.源主机收到这个ARP响应数据包后,将得到的目的主机的IP地址和MAC地址添加到自己的ARP列表中,并利用此信息开始数据的传输。

如果源主机一直没有收到ARP响应数据包,表示ARP查询失败。

3系统的分析、设计、实现与测试

3.1系统的分析

本系统名为《实验室计算机的IP地址自动设置程序——客户端的设计与实现》,所需要完成的功能就是与服务器程序通讯,获取服务器分配过来的IP地址等网络参数信息,然后对本计算机的网络参数进行配置,并且让这些配置立即生效。

这里涉及到这样几个问题:

一、客户端程序如何与服务器程序进行通信,采用什么方式进行交互。

二、如何有效判断接收到的数据信息就是客户端需要的信息。

三、如何判断服务器分配给客户端的IP地址信息是否已被其他主机占用。

四、如果IP已被占用后客户端与服务器如何处理。

五、如何快速有效的配置IP地址等网络参数信息。

六、如何使配置好的网络参数立即生效。

七、如何保证客户端主机一启动,本客户端程序就随之启动。

八、如何保证用户界面的有好性,防止本客户端程序假死。

九、如何保证本客户端程序在完成预期功能后,自动退出。

3.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写入本程序的键值来实现开机自启动的功能。

八、考虑到用户界面的友好性,以及对本程序速度方面的要求,本程序采用多线程机制实现系统预期的功能。

本程序运行以后,首先创建一个工作者线程InitThread用以做一些初始化的工作,如初始化本机IP地址信息、初始化本客户端套接字信息等。

在完成了所有的初始化工作以后,InitThread创建了另外三个工作者线程用以完成其他的功能,在创建好另外三个线程以后,InitThread线程结束。

另外三个线程分别是RecvThread、SendThread和SetThread。

RecvThread线程专门负责接收服务器发送来的消息,并在判断消息的有效性后提取网络参数的相关信息。

SendThread专门负责发送请求消息到服务器,根据是否由于IP地址被占用的标志的不同取值,发送的请求消息有所不同。

SetThread负责在接收到服务器分配的IP地址后,对该IP地址是否已经被占用进行判断,如果没有被占用则设置本计算机IP地址等网络参数信息。

由于本客户端程序采用了多线程的机制,线程之间如何实现同步也是必须很好地解决的问题。

如果线程之间同

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2