计算机的IP地址的分配和管理(服务器端的设计与实现)
摘 要
IP地址的分配和管理是实验室管理员比较重视的一个问题,而大部分管理员都采用的是DHCP技术来实现,虽然DHCP技术可以为用户接入网络提供方便,但还存在一些弊端,例如:IP地址具有随机性,用户的IP地址是随机分配的,具有不确定性等等。本系统的主要功能就是实现对实验室计算机IP地址的静态分配,从而解决DHCP技术的一些缺陷。主要实现方法为:对有请求的客户端的网卡地址和分配给其的IP地址进行记录,通过网卡地址来标识某一具体主机,当其再有请求到达时,分配给其已经记录的IP地址,以实现分配给客户端固定IP地址的功能。若要手工实现对客户端IP地址的静态分配,可直接在数据库中根据网卡地址修改对应的IP地址即可。IP地址的设置由客户端实现。程序的开发工具为VC++6.0,连接数据库方式为ADO方式,为了优化系统性能和使客户端的请求不阻塞,采用了多线程技术。
[版权所有:http://DOC163.com]
关键词:ADO;多线程;网络广播;网络编程
the Automatic IP Address Configuration Software for Lab
—— the Design and Implementation of the Server-side program
Abstract
More and more laboratory managers care about the IP address allocation and management problem. Most administrators are using DHCP to resolve it. Although DHCP technology can provide users convenient access to network, but there are some drawbacks, such as the random IP address. This causes the user's IP address is distributed randomly, with uncertainty. The main function of the system is to achieve the static IP address allocation of the laboratory computers. It remedies the DHCP technology’s drawbacks. The system uses some network technology. It records the MAC address and the allocated IP address of the client who send the request packet to server by LAN. Through identifying a host by the specific MAC address, when the same request arrived, the same IP addresses shall be allocated again, which achieves the function that the client shall be allocated to the fixed IP addresses. If users need to manually allocate the IP address, they can modify the IP addresses that correspond to MAC address. IP addresses are set by the client system. Program development tools is Visual C + + 6.0, access the database with ADO, to optimize system performance. To avoid the block of client requests, multithread technology is used.
Key words: ADO; multithread; Network Broadcast; Network Programming
[来源:http://www.doc163.com]
课题背景
目前,对学校的实验室来说,IP地址的分配和管理是管理员比较重视的一个问题。而大部分管理员都采用的是DHCP技术来实现,DHCP技术是通过网络内一台服务器提供相应的网络配置服务来实现的,可以为网络终端设备提供临时的IP地址、默认网关、DNS服务器等网络配置。虽然DHCP技术可以为用户接入网络提供方便,但还存在一些弊端,例如: IP地址具有随机性,用户的IP地址是随机分配的,具有不确定性; 访问权限会发生变化,如果用户的访问权限是基于IP地址划分的,则访问权限随IP地址不同而变化;不可被访问,通过DHCP获得的IP地址具有不确定性,用户被访问难度较大。 本系统对访问服务器的客户端网卡地址和分配其的IP地址进行记录,通过网卡地址来标识网内某一具体主机,并分配其固定的IP地址,从而弥补以上的一些不足之处。IP地址的设置由客户端实现。
系统结构设计
系统的主要功能需求为:配置分配的IP地址范围,接收客户端的请求,处理请求为客户端分配IP地址,将应答信息发送给客户端。
根据系统需求可以将系统划分为以下主要模块。
模块名称:配置系统信息
功能描述:配置服务器为客户端分配的IP地址范围,服务器保留的IP地址,网关,子网掩码等信息。
实现方式: 服务器并不是每次启动都需要配置IP信息,配置模块在单独的进程中实现。有对话框界面进行人机交互,将配置信息保存到系统盘的Windows目录下的一个配置文件中,主程序运行时从配置文件中读取配置信息。
[资料来源:www.doc163.com]
模块名称:接收请求
功能描述:接收网络发送来的请求包,验证请求包的正确性和完整性,并将请求信息保存。
实现方式: 功能在单独的线程中实现。虽然客户端与服务器物理上在一个局域网内,但并不能保证逻辑上在一个网段内,所以客户端不知道服务器所在。为了使客户端发出的请求服务器能够正确接收,客户端采用数据链路层广播的方式发送请求。收到客户端请求后,通过验证包头信息判断请求包的正确性,将请求信息写入请求队列,没有请求到达线程在接收请求处阻塞。网络请求的接收采用Windows套接字编程实现。互斥资源的访问采用信号量机制。
模块名称:处理请求
功能描述:从请求队列中读取请求信息,根据请求信息为客户端分配IP地址,将应答信息写入发送队列。
实现方式:功能在单独的线程中实现。从配置文件中读取配置信息,判断管理员是否重新配置过,如果重新配置过则清空数据库记录。从请求队列中读取请求信息,判断是一次请求还是二次请求。一次请求,从数据库中根据网卡地址查找分配给其的IP地址,找到则把分配的IP地址写入发送队列,找不到则将最小的IP地址分配给其并写入数据库和发送队列,最小IP地址向上递增。二次请求,将最大IP地址分配给其但不写入数据库,写入发送队列,最大IP地址递减。互斥资源的访问采用信号量机制。 [资料来源:http://Doc163.com]
模块名称:发送应答
功能描述:从发送队列中读取应答信息,将子网掩码,网关等信息封装为应答包,发送给客户端。
实现方式:功能在单独的线程中实现。从配置文件中读取分配的子网掩码和网关。从发送队列中读取客户端的IP地址和分配给其的IP地址。因为不确定客户端和服务器是否在同一网段,所以还是采用广播的方式发送应答信息包。将子网掩码和网关封装进应答包以广播的形式发送出去。网络应答的发送采用Windows套接字编程实现,互斥资源的访问采用信号量机制。
目 录
1 引言 1
1.1 课题背景 1
1.2 主要采用技术 1
1.2.1 ADO 1
1.2.2 多线程 1
1.2.1 网络广播 2
1.3 系统开发环境 2
1.3.1 系统软件环境 2
1.3.2 工具简介 2
2 系统概述 3
3 系统模块设计与实现 4
3.1 总体设计 4
3.1.1 系统结构设计 4
3.1.2 通信协议 6
3.1.3 数据库设计 6
3.2 编码实现 6
3.2.1配置模块 6
(毕业设计)
3.2.2接收请求模块 9
3.2.3处理请求模块 11
3.2.4发送应答模块 14
4 软件测试 16
结 论 18
参考文献 18
致 谢 19
声 明 20 [来源:http://Doc163.com]