模板

来源:互联网 发布:澳洲人工智能 编辑:程序博客网 时间:2024/05/17 08:11
 

密级:秘密

文档编号:D0000-PPA-EBD00001-SD-2010-00014-01

 

 

 

 

 

 

 

DHCP模块概要设计报告

版本:1.0.0-0.0.0

2009-12-8

 

 

 

 

 

 

 

 

 

 

 

 

东软集团股份有限公司 人才实训中心

(版权所有,翻版必究)

文件修改控制

 

修改编号

版本

修改条款及内容

修改日期

1

1.0.0-0.0.0

创建

2009-12-8

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


 

目  录

1     文档概述... 4

1.1      文档目的和范围... 4

1.2      术语/缩略语... 4

1.3      参考文档... 4

2     模块概述... 4

2.1      模块功能定义... 4

2.2      模块结构... 5

2.3      模块动作时序... 5

3     接口说明... 6

3.1      数据结构定义... 6

3.2      函数... 6

3.2.1       模块间接口函数... 6

3.2.2       模块内接口函数... 8

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1       文档概述

1.1    文档目的和范围

主要用于实现动态IP地址

 

1.2    术语/缩略语

列出文档中使用的术语和缩略语,可以采用下面的表格形式:

序号

术语/缩略语

说明

1

DHCP

动态主机配置协议

2

UDP

用户数据包协议

 

1.3    参考文档

列出所参考的式样或者文档等

序号

文档名

作者

时间

版本

1

需求分析矩阵

 

 

 

2

 

 

 

 

 

2       模块概述

模块主要功能是从DHCP服务器动态获取IP地址,从而为使用TCP/IP协议进行数据传输奠定前提

 

2.1    模块功能定义

记述本模块的功能点

      

 

序号

功能点

功能点详细内容

1

形成、发送报文

按照DHCP协议的规定产生结构体类型的报文,调用UDP提供的函数发送报文给服务器

2

解析报文

                根据报文类型,解析报文并进行相应的处理

3

报文类型转换

将接受到的数组类型的报文转换成结构体类型的数据,并将要发送的结构体类型的报文转换成数组类型

 

 

 

 

 

2.2    模块结构

以本模块为中心,画出模块间结构及模块内结构图。对于模块内细分的小模块也最好列表说明各小模块的功能。

 

模块名称

模块类型

概要说明

Aba1

接口

XXXX

Aba2

接口

XXXXXX

Aba3

内部模块

XXXXXXXXXXXXX

 

 

 

2.3    模块动作时序

主要描述模块间动作时序图,可以直接在VISIO文件中记述(如果直接在VISIO中记述,这里说明「参考XXXXXX.vsd」)。

 

3       接口说明

3.1    数据结构定义

#define MESSAGE_LENGTH  300      dhcp报文长度

#define ALL_MESSAGE_NUM 4     收发报文的数量

#define DHCP_DISCOVER 0        dhcpDiscover 发送报文

#define DHCP_OFFER  1          dhcpOffer 接收报文

#define DHCP_REQUEST  2        dhcpRequest发送报文

#define DHCP_ACK  3             dhcpAck接受报文

DHCPMessage                     DHCP协议结构体

DHCPFlageInfo                    DHCP协议信息标志

3.2    函数

给出模块所有对外接口的函数声明及说明。

函数说明的方式可以参见下面的形式。

3.2.1   模块间接口函数

3.2.1.1              getDynamicIP


函数名

getDynamicIP

文件名

../DHCP

功能概要

动态获取IP地址

记述形式

int getDynamicIP ()

参数

类型

变量名

I/O

说明

void

-

-

-

返回值

类型

int

说明

1

成功获得IP

0

失败

详细说明

获得IP地址,供主模块初始化时使用

使用注意事项

主模块初始化时首先调用的函数

 

3.2.1.2              parseMessage


函数名

parseMessage

文件名

../DHCP

功能概要

解析从服务器得到的响应报文

记述形式

int parseMessage(INT8U *p , INT16U len)

参数

类型

变量名

I/O

说明

INT8U *

p

I

指向服务器响应报文的头部

INT16U

len

I

解析报文的长度

返回值

类型

int

说明

1

成功解析数据

0

解析数据失败

详细说明

供UDP调用,处理从服务器传来的响应报文信息

使用注意事项

UDP收到DHCP报文后调用

 

3.2.2   模块内接口函数

3.2.2.1              DHCP_init


函数名

DHCP_init

文件名

../DHCP

功能概要

初始化一个报文

记述形式

Void DHCP_init(DHCPMessage* message)

参数

类型

变量名

I/O

说明

DHCPMessage*

Message

I

指向一个报文的首地址

返回值

类型

Void

说明

详细说明

根据DHCP协议对报文格式的规定,初始化一个报文,存放在message所指的结构体内

使用注意事项

报文的类型为DHCPMessage

 

3.2.2.2              from_dhcp_data


函数名

From_dhcp_data

文件名

../DHCP

功能概要

根据传递的参数形成一个discover报文或request报文

记述形式

Void from_dhcp_data(DHCPMessage* message,INT8U op)

参数

类型

变量名

I/O

说明

DHCPMessage*

Message

I/O

指向一个报文的首地址

INT8U

op

I

将要形成的报文的类型

返回值

类型

Void

说明

详细说明

根据传递的op参数,产生一个报文存放在message所指的结构体内

使用注意事项

 

3.2.2.3              sendData


函数名

sendData

文件名

../DHCP

功能概要

发送一个请求报文给服务器

记述形式

Void sendData(INT8U op)

参数

类型

变量名

I/O

说明

INT8U

op

I

发送报文的类型

返回值

类型

Void

说明

详细说明

根据传递的op参数,发送一个discover或request报文给DHCP服务器

使用注意事项

只能指定两种报文的类型