udp详细设计
2012-04-01 09:03
225 查看
项目名称:TCP/IP协议栈
项目编号:
文档编号:EBD881101PDR004
UDP模块
详细设计
东软集团股份有限公司
修订历史记录
目录
1.
引言...
4
1.1
术语...
4
2.
模块概述...
4
2.1
概要功能...
4
3.
模块的功能点...
4
3.1.1
udp数据接收...
4
3.1.2
udp数据发送...
4
3.1.3
接收数据处理...
4
3.1.4
发送数据处理...
4
4.
模块接口设计...
5
4.1
外部接口设计...
5
4.2
内部接口设计...
5
5.
使用的系统资源...
6
6.
模块详细设计...
6
6.1
文件一览...
6
6.2
函数一览...
6
6.3
函数调用关系...
7
6.4
数据类型定义...
7
6.5
接口函数设计...
8
6.5.1
udp_rec.
8
6.5.2
udp_send.
9
6.6
内部函数设计...
9
6.6.1
udp_input.
9
6.6.2
udp_output.
9
1.
1.1
表
1‑1:术语/缩略语
2.
2.1
该模块主要功能是将上层应用程序发送的数据打包之后交给ip层和将ip层收到的数据解包之后发给对应端口号的应用程序。功能包括下面四个
1.数据接收
2.数据发送
3.接收数据处理
4.发送数据处理
3.
3.1.1
当ip层接收到udp数据报文的时候,ip层调用该函数将数据传给UDP层。
3.1.2
当dhcp层要发送数据的时候调用该函数将dhcp数据报传给udp层发送出去。
3.1.3
当udp层收到ip层的udp数据,将udp数据拆包处理,也就是去掉udp报头。
3.1.4
对将要发送的数据加上udp首部进行打包处理,也就是在原有数据的基础上加上udp报头。
4.
4.1
数据接收:void udp_rec(udp_node *data)
数据发送:u8_t
udp_send (u16_t
*s_port, u16_t *d_port,dhcp_node *data)
4.2
接收数据处理:void udp_input(dhcp_node *data)
发送数据处理:void out_put(udp_node *data)
5.
无
6.
6.1
表
8‑1:文件一览表
6.2
表
8‑2:函数一览表
6.3
表 8‑3:函数调用关系一览
6.4
typedef struct Udp{
u16_t s_port;//源端口号
u16_t d_port;//目的端口号
u16_t length;//UDP长度
u16_t checksum;//校验和
}udp_head;
typedef struct Udp_Node{
udp_head *head;
dhcp_node *data;
}udp_node;
表
8‑7:UDP数据类型一览表
6.5
6.5.1
表
8‑9:udp_rec函数说明
6.5.2
表
8‑10:udp_send函数说明
6.6
6.6.1
表
8‑11:udp_input函数说明
6.6.2
表
8‑12:udp_output函数说明
项目编号:
文档编号:EBD881101PDR004
UDP模块
详细设计
东软集团股份有限公司
总页数 | 12 | 正文 | 9 | 附录 | 3 | 生效日期 | 2012-3-14 |
编制: | 左自强 | 审批: | 阳阳 |
日期 | 版本 | 说明 | 作者 |
2012.03.14 | Ver0.8 | 初始创建 | 左自强 |
| | | |
| | | |
| | | |
目录
1.
引言...
4
1.1
术语...
4
2.
模块概述...
4
2.1
概要功能...
4
3.
模块的功能点...
4
3.1.1
udp数据接收...
4
3.1.2
udp数据发送...
4
3.1.3
接收数据处理...
4
3.1.4
发送数据处理...
4
4.
模块接口设计...
5
4.1
外部接口设计...
5
4.2
内部接口设计...
5
5.
使用的系统资源...
6
6.
模块详细设计...
6
6.1
文件一览...
6
6.2
函数一览...
6
6.3
函数调用关系...
7
6.4
数据类型定义...
7
6.5
接口函数设计...
8
6.5.1
udp_rec.
8
6.5.2
udp_send.
9
6.6
内部函数设计...
9
6.6.1
udp_input.
9
6.6.2
udp_output.
9
1.
引言
1.1
术语
表1‑1:术语/缩略语
序号 | 术语/缩略语 | 说明 |
1 | DHCP | 动态主机配置协议 |
2 | UDP | 用户数据包协议 |
3 | IP | 网络之间互连的协议 |
2.
模块概述
2.1
概要功能
该模块主要功能是将上层应用程序发送的数据打包之后交给ip层和将ip层收到的数据解包之后发给对应端口号的应用程序。功能包括下面四个1.数据接收
2.数据发送
3.接收数据处理
4.发送数据处理
3.
模块的功能点
3.1.1
udp数据接收
当ip层接收到udp数据报文的时候,ip层调用该函数将数据传给UDP层。3.1.2
udp数据发送
当dhcp层要发送数据的时候调用该函数将dhcp数据报传给udp层发送出去。3.1.3
接收数据处理
当udp层收到ip层的udp数据,将udp数据拆包处理,也就是去掉udp报头。3.1.4
发送数据处理
对将要发送的数据加上udp首部进行打包处理,也就是在原有数据的基础上加上udp报头。4.
模块接口设计
4.1
外部接口设计
数据接收:void udp_rec(udp_node *data)数据发送:u8_t
udp_send (u16_t
*s_port, u16_t *d_port,dhcp_node *data)
4.2
内部接口设计
接收数据处理:void udp_input(dhcp_node *data)发送数据处理:void out_put(udp_node *data)
5.
使用的系统资源
无6.
模块详细设计
6.1
文件一览
表8‑1:文件一览表
文件名 | 描述 |
udp.h | 定义udp协议需要的数据结构以及函数申明 |
udp.c | 对udp.h中申明的函数进行具体的实现 |
6.2
函数一览
表8‑2:函数一览表
文件名 | 函数编号 /简称 | 函数名 | 类型 | 概要 |
Udp.c | F2_1 | udp_rec | 外部接口 | 数据接收 |
F2_2 | udp_send | 外部接口 | 数据发送 | |
F2_3 | udp_input | 内部接口 | 对接收数据的处理 | |
F2_4 | udp_output | 内部接口 | 对发送数据的处理 |
6.3
函数调用关系
└─F1_1 ├─F2_1 │ └─F2_3 │ └─F2_2 └─F2_4 |
6.4
数据类型定义
typedef struct Udp{u16_t s_port;//源端口号
u16_t d_port;//目的端口号
u16_t length;//UDP长度
u16_t checksum;//校验和
}udp_head;
typedef struct Udp_Node{
udp_head *head;
dhcp_node *data;
}udp_node;
表
8‑7:UDP数据类型一览表
类型名 | 描述 |
udp_head | UDP数据报首部结构体 |
udp_node | UDP数据报文 |
6.5
接口函数设计
6.5.1
udp_rec
表
8‑9:udp_rec函数说明
函数名 | udp_rec | ||
文件名 | ../udp | ||
功能概要 | 接收udp数据 | ||
记述形式 | void udp_rec(udp_node *data) | ||
参数 | |||
类型 | 变量名 | I/O | 说明 |
udp_node * | -data | - | -指向接收到的UDP报文首地址地址 |
返回值 | 类型 | void | 说明 |
值 | | | |
| | ||
详细说明 | |||
接收从IP层接收到的UDP数据,并交给UDP接收处理模块 | |||
使用注意事项 | |||
当IP层接收到UDP数据的时候调用 |
6.5.2
udp_send
表8‑10:udp_send函数说明
函数名 | udp_send | ||
文件名 | ../udp | ||
功能概要 | 发送UDP报文 | ||
记述形式 | u8_t udp_send (u16_t *s_port, u16_t *d_port,dhcp_node *data) | ||
参数 | |||
类型 | 变量名 | I/O | 说明 |
u16_t * | s_port | | 指向源端口号 |
u16_t * | d_port | | 指向目的端口号 |
dhcp_node * | data | | 指向一个DHCP报文首地址地址 |
返回值 | 类型 | u8_t | 说明 |
| 值 | 1 | 发送成功 |
| 0 | 发送失败 | |
详细说明 | |||
供DHCP调用,发送DHCP报文 | |||
使用注意事项 | |||
DHCP发送DHCP报文时调用 |
6.6
内部函数设计
6.6.1
udp_input
表
8‑11:udp_input函数说明
函数名 | udp_input | |||
文件名 | ../udp | |||
功能概要 | 将收到的数据交给DHCP | |||
记述形式 | void udp_input(dhcp_node *data) | |||
参数 | ||||
类型 | 变量名 | I/O | 说明 | |
dhcp_node * | data | I/O | 指向一个DHCP报文首地址地址 | |
返回值 | 类型 | Void | 说明 | |
详细说明 | ||||
将收到的UDP报文拆包后,把剩下的DHCP数据传给DHCP | ||||
使用注意事项 | ||||
无 | ||||
6.6.2
udp_output
表
8‑12:udp_output函数说明
函数名 | udp_output | |||
文件名 | ../udp | |||
功能概要 | | |||
记述形式 | void out_put(udp_node *data) | |||
参数 | ||||
类型 | 变量名 | I/O | 说明 | |
udp_node * | data | I/O | 指向一个UDP报文的首地址 | |
返回值 | 类型 | Void | 说明 | |
详细说明 | ||||
将打包好的UDP报文交给IP层发送 | ||||
使用注意事项 | ||||
无 | ||||
相关文章推荐
- UML在项目实施中的使用心得(详细设计阶段)
- 撰写详细设计文档后的一些反思
- 使用Micrisoft.net设计方案 第三章Web表示模式 Web模式集群详细介绍
- 概要设计与详细设计的区别
- 软件界面设计守则之安全性的详细细则
- UML项目应用理解--快速了解整个系统架构和详细设计文档
- 日程表详细设计说明
- 如何写模块的详细设计
- 详细设计算是完成了
- 计数器详细设计
- 基于php设计模式中工厂模式详细介绍
- 概要设计与详细设计的区别
- 软件开发文档-详细设计文档
- 软件概要设计与详细设计的区别
- 详细分析Node.js中的UDP模块
- webWMS开发过程记录(五)- 详细设计之系统界面框架设计
- 本文详细介绍Python 设计模式系列之二: 创建型 Simple Factory 模式(转载)
- 单点登录系统(SSO)详细设计说明
- 如何做详细设计之序
- 泛型dao 详细剖析 泛型DAO类设计模式(2)