您的位置:首页 > 理论基础 > 数据结构算法

udp详细设计

2012-04-01 09:03 225 查看
项目名称:TCP/IP协议栈
项目编号:

文档编号: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    
术语


11:术语/缩略语
序号
术语/缩略语
说明
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
   
       
                    

 

表 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数据类型一览表

类型名
描述
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层发送
使用注意事项

     
 
 
 

 

 

 
 
 
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息