udp协议范例6篇

前言:中文期刊网精心挑选了udp协议范文供你参考和学习,希望我们的参考范文能激发你的文章创作灵感,欢迎阅读。

udp协议

udp协议范文1

关键词:通信网络;基于样本块的方法;udp协议;Mean-Shift方法

中图分类号:TP311文献标识码:A文章编号:1009-3044(2010)21-5714-02

通信网络为计算机信息的获取、传输、处理、利用和共享提供一个安全可靠的环境和传输通道,但现实中通信网络并非是绝对安全的,传输数据过程中数据包的丢失、泄密和篡改时有发生,且日趋严重。

目前在通信网络中比较常用的两个通信协议是TCP协议和UDP协议。TCP是一种面向连接的协议,采用“三次握手”方式来确保数据的准确接收,其工作机制是首先是建立连接;其次发送端发送数据,接收端接收数据;再次接收端向发送端发送反馈信息,如果发送数据被成功接收,则断开连接,否则必须重传发送失败的数据。而UDP协议是一种无连接的协议,不提供可靠的信息发送机制,因此在数据传输过程当中更容易出现数据包的丢失现象。

TCP协议虽说提供安全的数据传输,但是传输效率不高,因此不适合于实时性较高的应用。UDP协议虽说不提供安全的数据传输,但是其传输效率很高,能实现实时传输,但是容易出现丢失数据包的问题。在实际当中很多实时性很高的珍贵数据是不容有失的,那么如何解决这一问题呢?

在2003年Shantanu D.Rane等提出无线电传输中丢失数据复原的问题,他们结合现有的图像修复技术和纹理合成技术对传输过程中丢失的数据进行填充。在传输过程中,图像被划分为 的块,计算其离散余弦变换,然后量化并进行哈弗曼编码,最后传输图像数据[1]。该文献中对丢失数据填充过程如下:对丢失的块分类,根据周围的块判断丢失块是纹理块还是结构块,如果是纹理块使用纹理合成算法,否则使用结构修复算法。分析发现该方法对于块的分类不够准确,而且丢失数据的填充比较耗时。

本文针对上述缺陷直接使用基于样本块的方法[3]填充UDP协议丢包数据。在目前所有的图像修复方法中,基于样本块的修复方法是非常有效用的一种,它不仅能够填充图像纹理部分,而且能够修复图像简单的结构,对结构的修复主要是受修复的优先权和样本块的大小控制,适合的修复顺序和样本块大小是有利于图像结构的保持。因此本文直接使用基于样本块的方法对丢失的图像数据进行填充,这样不仅能够提高填充的效率,而且能够减轻数据包的丢失造成严重损失。

1 基于样本块的丢失图像数据填充

UDP协议的数据传输过程与无线电数据的传输是相似的,其优点是传输过程中的部分数据丢失不会引起整个图像数据的混乱,这就为数据的恢复提供了一定的可能,否则数据的恢复是非常困难的。在很多文献中提到UDP协议的丢包率与具体网络环境有关,没有一个准确的数值,但是一般来说其平均丢包率总会小于无线电数据的丢包率3.6%[2]。

基于样本块的方法一种非常有效的丢失图像数据的填充方法,它不仅能填充大块的纹理破损,而且能够修复较小的结构破损。UDP协议的丢包率一般来说很小,这也就为图像的结构部分的复原提供了重要的保障。基于样本块的图像修复过程如下:

1) 确定丢失数据包的位置,因为图像数据是经过编码后传输的,因此即使丢包也不会使得整个图像数据混乱,自然其丢失数据的位置容易确定;

2) 寻找破损区域的边缘;

3) 按照优先权计算方法确定当前优先权最高的像素点,优先权P(p)一般为信任度因子C(p)与数据因子D(p)的积。信任度因子和数据因子的计算如式(1)和式(2):

(1)

(2)

信任度因子确保了当前待修复块上有更多的已知像素点来确保找到的最佳匹配块的准确性,而数据因子表示破损区域边界在优先权最高像素点处的法线与该点处等照线的夹角,夹角越大则结构越强,否则结构越弱,结构越强的自然越先修复,这样有利于图像边缘的保持;

4) 根据相似度的度量机制,寻找最佳匹配块;

5) 将最佳匹配块中的数据拷贝到当前待修复块中,注意只拷贝当前块中破损像素点对应的数据;

6) 更新破损区域;

7) 判断破损像素点的个数是否为0,如果为0,则转8),否则返回到2);

8) 修复结束。

基于样本块的修复方法虽说有很好的修复效果,但是也必须注意其修复过程中存在的问题。首先误差的累积问题,这必然导致错误的填充结果。其次是最佳匹配块的选择问题,如何在多个候选最佳匹配块中选出真正最佳的匹配块。

文献[4]提出一种新的方法来解决这误差累积的问题,首先使用Mean-Shift方法[5]对图像进行了粗划分,对最佳匹配块的选择区域作了限制,具体的最佳匹配块的选择原则如下:

1) 如果待修复块属于粗划分Ti,则最佳匹配块仅在Ti中选择;

2) 如果待修复块处于多个划分Ti∪Ti+1∪...∪Ti+k的边缘,则最佳匹配块在Ti∪Ti+1∪...∪Ti+k中选择。

上述方法相当于给匹配块的选择加了一些约束,使选择范围缩小。这样不仅缩短了寻找匹配块的时间,也避免了误差的累积。

另外一个问题就是最佳匹配块唯一的问题。假设目前找到的匹配块为ψp1, ψp2,…ψpk,那么如何在这之中选择一个真正的最佳匹配块。文献[6]提到了一种选取最佳匹配块的方法,认为与当前待修复块的空间距离越近,其相关程度越高。因此,通过计算待修复块的核与匹配块的核之间的空间距离来最终选定哪个块是真正的最佳匹配块。丢失数据的填充流程图如图1所示。

2 实验结果

本文用VC++实现了该算法,通过大量的实验说明了本文算法的有效性。由于传输图像很容易获得,因此本文采用峰值信噪比的方法对恢复结果进行客观评价。峰值信噪比PSNR的计算如下式:

(3)

PSNR值越大,恢复的效果越好,越接近原图;PSNR值越小,恢复效果越差,与原图差异越大。恢复结果如图2、图3、图4所示。

4 结论

本文分析了通信网络中UDP协议的传输机制,发现UDP协议在传输数据时容易发生数据丢包问题,由此使用基于样本块的方法解决恢复丢失数据包的问题。尽管文献[1]的作者提出了无线传输中图像数据的恢复方法,但是该方法比较复杂,而且存在诸多的不稳定性,诸如块的分类等。本文结合基于样本块修复的优点对丢失数据进行恢复,并通过实验进行了验证,确实取得了令人满意的效果。这样不仅很大程度上提高了UDP协议图像数据传输的安全性,也提高了UDP协议的传输效率。

参考文献:

[1] Shantanu D.Rane,Guilloermo Sapiro and Marcelo Bertalmio. Structure and Texture Filling-in of Missing Image Blocks in Wireless Transmission and Compression Applications[J].IEEE TRANSACTIONS ON IMAGE PROCESSING,VOL.12,NO.3,MARCH 2003,pp.296-303.

[2] E.Chang. An image coding and reconstruction scheme for mobile computing.In proc.5th IDMS,Oslo,Norway,Sept.1998,pp.137-148.

[3] A.Criminisi,P.Perez and K.Toyama. Region Filling and Object Removal by Exemplar-Based Image Inpainting[J].IEEE TRANSACTIONS ON IMAGE PROCESSING,VOL.13,NO.9,SEP 2004.

[4] Feng Tang,Yiting Ying,Jin Wang,and Qunsheng Peng.A Novel Texture Synthesis Based Algorithm for Object Removal in Photographs. MJ Maher (Ed.): ASIAN 2004, LNCS 3321, pp. 248C258, 2004.

[5] Comaniciu D, Meer P.: Mean Shift: A Robust Approach toward Feature Space Analysis[J],IEEE Trans. Pattern Analysis Machine Intell,Vol.24, No.5,603-619,2002.

udp协议范文2

关键词:arm;linux;交叉编译环境;udp协议;重发机制;重发次数

udp协议以其高效性和应用的简单,被广泛运用于嵌入式网络开发中。由于udp协议的应用简单,在嵌入式设备开发过程中,网络资源的利用率并不高。以下将介绍一个udp具体项目实验过程,描述arm-linux环境的软硬件环境构建过程,并对udp协议下一种重发模式中上位机的重发次数的确定提出一种可行的方法。

1 研究背景

随着嵌入式技术的快速发展,嵌入式设备已经在许多领域取代了传统的微型机设备。本文的选题主要来自于实习期间承接的一项改造项目:某院校特长生评分系统的改造。项目改造目的有:1) 保留原上位机。2) 改用手持式客户端进行显示及评分操作。3)保留原有网络设备。针对要求,我们使用s3c2440作为硬件平台,移植linux操作系统,并在arm-linux环境下研究了udp协议的通信过程,进行了上位机与嵌入式系统的udp协议通信实验及分析,并给出一种重发机制中的发送次数求法。

2 硬件平台介绍

s3c2440处理速度达到了400mhz,具有较高的性价比。为了提高开发效率,我们采用公司自行研制开发的et-s3c2440开发板。

2.1 et-s3c2440开发板简介

et-s3c2440是公司自行开发的一款arm9架构的实验开发板,其结构框图如图1。

核心板的主要器件有:32mb×2片sdram,64mb norflash,512mb nandflash。设计了启动方式可选,通过开关选择从nandflash或norflash启动。

2.2 实验相关电路说明

底板电路主要功能是输入输出以及网络通讯功能。按键输入部分采用扫描方式获得输入,用一个单向地址锁存器和一个双向地址锁存器与地址总线相连,可以通过扫描地址来获得按键输入。lcd采用三星的3.5寸tft屏作为显示输出设备。网卡芯片选用的是与原设备匹配的10m 的cs8900a,关于cs8900a与s3c2440的硬件连接,有众多资源可供参考,本文不再赘述。

3 系统软件平台的构建

硬件平台搭建完毕后要将操作系统和应用程序在硬件平台上运行起来。以下是对嵌入式linux操作系统移植的过程。

3.1 交叉编译环境的构建

linux 2.6.29.1版本的内核可以登录到下载。本文选择的是arm-linux-gcc-4.3.2工具链()

在宿主机上进入linux系统,切换当前目录到工具链所在目录,新建一个arm目录保存解压后的文件(mkdir /user/local/arm)并将arm-linux-gcc-4.3.2解压到这个目录中(tar jxvf arm-linux-gcc-4.3.2 –c /user/local/arm)。然后将环境变量$path修改一下,让$path中包含有arm-linux-gcc所在的目录(编辑/etc/profile 添加语句”export path=/user/local/arm/4.3.2/bin:$path”),然后reboot一下,这样交叉编译环境就构建好了。

3.2 bootloader的移植

vivi是一款相当成熟和相对简单的常用bootloader,我们以vivi为移植原型,将s3c2440所有io端口寄存器定义添加到头文件2440add.inc,删除部分硬件平台使用不到的代码,最后将修改过的vivi制作成镜像烧录到flash中。[1]

3.3 linux内核移植

获取linux-2.6.29.1源代码并解压后,首先修改内核源代码所在目录中的makefile,将系统架构修改为arm(arch ?=arm ),交叉编译工具修改为arm-linux-gcc (cross_compile ?=arm-linux-),修改输入时钟(arch/arm/mach-s3c2440/mach-smdk2440.c中的函数static void __init smdk2440_map_io中,修改s3c24xx_init_clocks(12000000)此处所用晶振为12m)。修改machine名称(在arch/arm/mach-s3c2440/mach-smdk2440.c文件中的函数machine_start( ),修改为machine_start(s3c2440, “自定义机器名”),修改nandflash分区信息(arch/arm/plat-s3c24xx/common-smdk.c结构体static struct mtd_partition smdk_default_nand_part[]中保存的是nandflah的分区信息,将其修改为当前使用的分区信息),然后修改nandflash的匹配时间(3c2410_platform_nand_smdk_nand_info smdk_nand_info ={})。

上述内核源代码修改完成后,还需要对一些设备的驱动进行修改。本文使用的nec 3.5寸 320×240液晶屏,硬件平台使用gpg4脚进行背光控制,需要修改lcd背光(/arch/arm/mach-s3c2440/mach-smdk2440.c中static void __init smdk2440_machine_init(void),将函数中的gpio口配置为gpg4)。关于cs8900a网卡的驱动移植,相关资源很丰富,本文也不再赘述。

本实验中nandflash采用的是yaffs2文件系统,所以打yaffs2文件系统补丁,压缩包为cvs-root.tar.gz。

至此,linux的内核源代码修改工作完成了,下面还需要利用makefile,进行内核配置。

在linux 2.6.29.1内核目录下首先make s3c2410_defconfig使用2410的配置模板来配置2440;然后make menuconfig,这时我们可以在图形化界面中,空格键可改变各个配置选项的被选中状态,根据需要进行配置即可。配置完成后保存好配置,最后进行内核的编译(make dep 建立文件间依赖 make clean 清除编译残留文件make zimage 生成内核压缩镜像文件)。

编译过程完成后会在内核目录arch/arm/boot/下生成zimage内核映像文件,将这个镜像文件烧录到flash中,调试检验,经上述修改后的内核工作运行正常。

3.4 根文件系统的制作

根文件系统是使用busybox-1.13.3来制作完成。下载busybox并解压完成后,修改makefile中的架构为arm架构,编译工具为arm-linux-gcc( arch ?=arm; cross_compile ?=arm-linux-),然后make menuconfig,通过图形界面对busybox进行配置,然后对busybox进行编译(make config_prefix=/opt/studyarm/rootfs install),在目标目录下会生成目录bin、sbin、usr和文件linuxrc的内容。

基本目录结构生成后,应该在目标目录下建立一些未生成的必要的系统目录如dev、etc、lib等,并通过chmod命令改变目录权限为可写。再将一些必要的动态链接库和静态库拷贝到lib下,然后在dev目录下创建设备节点,最后创建该嵌入式linux系统的初始化配置文件(包括设备列表文件、口令、网络分组组名、hostname主机名、etc/inittab初始化表单、etc/profile环境变量配置文件、用于系统初始化的.bash脚本文件等)。由于本实验需对网络编程,要求自动初始化cs8900a网卡芯片的ip地址、网关、子网掩码等,所以在开机自启动脚本中加入ifconfig语句,使得开机时自动配置网卡参数。

根文件系统构建完成后,使用yaffs2文件系统制作工具mkyaffs2image.tgz,通过命令mkyaffs2image rootfs rootfs.img生成根文件系统镜像,然后将镜像烧写入flash中。

4 arm-linux环境下的udp协议通信实验

经过上述硬件设计和操作系统移植过程,本文所使用到的实验环境已经构建完毕,经反复调试修改,嵌入式linux操作系统在平台下运行正常,于是进行udp协议通信实验。

4.1 udp协议套接字编程基础

udp是一个面向数据报和无连接的简单传输层协议,它不像tcp那样通过握手过程建立服务器与客户端的连接才可以工作。在网络通信质量较好的情况下,udp体现出高效率,这适合于传送少量报文的应用。 linux系统是通过套接字结构来进行网络编程的,应用程序通过对套接字的几个函数调用,会返回一个用于通信的套接字描述符,而linux应用程序在进行任何形式的i/o操作时,程序实际上是在读写一个文件描述符。因此linux下的套接字编程,可以看成是对普通文件描述符的操作,这些操作与被使用的硬件平台无关,这是linux设备无关性的优点。udp协议的通信模型如图3所示。

在上述流程中,客户端所收到的报文被存储在缓冲区中,recvfrom()函数返回了报文存储缓冲区的首地址,我们可以很方便地对这个首地址进行数组操作,从而实现对报文的解码。

4.2 上位机报文结构及重发机制分析

根据项目要求,上位机软件依然保留,我们使用协议嗅探工具对上位机发送的报文进行了嗅探,得到了上位机报文的结构如表1所示。

表1 上位机报文结构

上位机发出的每条报文由32个字节组成,第0位为版本信息。第1……12位为比赛信息和运动员教练信息,是报文的关键信息部分,13……22位为服务器端和客户端的ip地址及端口号信息,23位是上位机对客户端的操作指令代码,24位是相关重发机制的代码,30和31两位是checksum,用来保证数据传输的正确。上位机采用的重发机制是一种上位机按照固定重发次数多次发送同一关键内容报文的机制,其第24位重发机制位被分为高4位和低4位两部分,高四位的内容是当前发送的报文的索引号,每次发送一条新内容的报文时索引号自增1,索引号的取值范围在0x00—0xff范围内循环自增。低四位是重发编号,表示同一索引号的报文正在被第几次重发,固定的重发次数由上位机初始化时设定。

4.3 嵌入式客户端的实验程序设计

针对报文结构,我们对接收端编写实验程序代码,代码的主要功能是从上位机接收报文,将计算出的checksum校验和与收到的校验和对比判断报文是否正确,然后从正确报文中取出主要信息并按照报文中的上位机指令码进行输出。其结构流程图如图3所示。

实验程序经编码、调试后在交叉编译环境中交叉编译,生成arm-linux环境下可执行文件,在目标板上执行。经测试试验程序能够正确接收上位机发来的报文,对报文解码,并能根据上位机命令对关键信息做输出处理。

4.4 对上位机重发次数的研究

进行udp协议通信时,发送端和接收端的状态是相对独立的,发送端不与接收端建立连接,而是不停向接收端发送,为了确保不丢失报文,上位机采取了按固定次数重发相同内容报文的机制。然而这种机制虽然可以有效确保报文不丢失,但是大量冗余数据报被发送,网络资源利用率不高。重发次数越多,冗余数据报越多,效率越低。要想有效保证数据报准确发送的同时又不产生过多冗余数据报,那么重复发送的次数的确定就成为问题的关键。以下给出一种确定上位机重发次数的方法。

假设当前网络状况下,每次报文发送被丢失的概率为p,系统允许接收端报文关键内容丢失概率为q,那么如何确定以上重发机制中的重发次数k呢?

特殊情况下若报文重发次数为2,分别在每条报文重发机制位注明一个索引号和一个重发编号,发送端发送报文的次序应形如 1.1 ,1.2 ,2.1 ,2.2 ,3.1 ,3.2……其中索引号相同的报文关键内容相同,重发编号不同代表同一关键内容报文的不同次发送。因此只有出现连续两次丢失数据报的情况下,报文关键内容才可能丢失。出现连续两次丢失的情况有2种,当x.1 , x.2丢失,此时索引号为x的报文关键信息将全部丢失。当x.2,(x+1). 1丢失,丢失报文的索引号不同,此时不会发生报文关键信息丢失,因此报文关键内容丢失的概率q=p2/2。

   当报文重发次数为3,依然在每条报文的重发机制位注明索引号和重发号,发送报文的次序应为1.1 ,1.2 ,1.3 ,2.1 ,2.2 ,2.3 ,3.1 ,3.2……。只有出现连续3次丢失数据报的情况报文关键信息才可能丢失,列出连续3次丢失报文的情况有3种,当x.1 , x.2 , x.3丢失,此时索引号为x的报文信息全部丢失。当x.2 , x.3 ,(x+1).1或x.3 ,(x+1).1 ,(x+1).2丢失时不影响报文的准确传递。因此此时报文关键内容丢失的概率q=p3/3。

推广至一般情况易得当报文重发次数为k时,报文关键内容丢失的概率q=pk/k,移项有kq=pk。于是我们得到求重发次数k的方法

1) 根据网络状况获得报文丢失概率p;

2) 根据客户需求取得报文关键内容的允许丢失率范围q;

3) 分别作出y=px和y=qx的图像;

4) 求得两图像的交点的x坐标,并将x坐标值取整加一即为所求重发次数k。

本文实验中,需求方允许报文关键信息丢失概率q=0.0001,我们分别对上位机发送端和下位机接收端收发的报文进行了统计,在某一固定时间段内,上位机共发送报文19665条,接收端接收报文18636条,传输过程中丢失的报文19665-18636=1029条,当前网络环境下的报文丢失率为,即p=0.0523。据此数值分别作出y=0.0001x的曲线和y=0.0523 x的曲线,取得两曲线交点x坐标为x≈2.78,最后将x=2.78取整加1得到k=3,即上位机对同一数据报的重发次数应该定为3次就可保证系统丢失报文的概率低于0.0001。

5 结论与展望

本文从硬件平台搭建、linux移植以及udp协议编程几个方面介绍了arm-linux环境下udp协议通信的具体实现,并分析了一种在实际嵌入式项目中常用的上位机数据报重发机制,最后对这种机制中的重发次数的确定方法给出了求解过程,为后续的具体项目实施提供了实践依据,也希望为其他应用这种重发机制的嵌入式产品开发者们提供了借鉴。

参考文献:

[1] 李伟.基于arm9的嵌入式linux手持平台的设计与实现[d].武汉:武汉理工大学硕士学位论文,2009.

范艳开.基于arm的嵌入式linux操作系统移植[d].西安:西北工业大学,2005.

udp协议范文3

【关键词】 卫星应急通信 维护台 UDP 可靠通信

一、引言

当突发灾害发生的时候,常规的地面通信设备或者系统就会遭到严重破坏,卫星应急通信系统将能够确保关键信息的传输,使上级能够根据灾情进行有效的指挥,从而拯救更多的生命和财产。卫星应急通信的特点是:具有开通时间短、传输距离远、通信容量较大、网络部署快、组网方式灵活、可以实现数据的双向传输。卫星应急通信系统如图1所示。

二、基于UDP协议的卫星用户地面站维护平台的设计

2.1 需求分析

本课题主要针对卫星应急通信的特点来设计维护平台。当地震导致常规地面通信遭到严重破坏时,可以把卫星用户地面站拿过来,作为与卫星通信的交换机,这里就需要一个维护台来配置这个卫星用户地面站,让其快速的进入工作状态,例如对槽号、话路号的优先级、卫星呼出权、CO中继权、会议召集权等参数的快速配置,从而确保关键信息的及时传输。

2.2 接口要求

卫星用户地面站和维护台之间通过TCP/IP协议通信,物理层采用以太网接口。UDP协议作为传输协议,消息数据作为UDP的净荷。

2.3 基本功能

配置管理功能:完成用户属性、会议和卫星模块的配置功能,并具备配置数据单独文件生成和加载功能;状态监控:监视用户站的各种工作状态,并能完成对用户站的自检和自检结果处理功能;计费功能:完成呼叫记录的获取、存储、检索和计费功能;配置数据导出功能:完成从用户站配置获取数据,并具有配置数据单独生成配置文件功能;多用户站管理:维护台能够管理多个用户站,根据用户站ID选择对应的数据,但同一时刻只管理一个用户站。

2.4 通信协议的格式

消息的组成如表1所示,每条消息以数据帧的格式采用FLAG封装,每一条消息以标志字符(FLAG)开始和结束,A字段为链路层净荷的长度,C字段为一个序号,用于完成消息的可靠传输。CRC字段是一个循环冗余的检验码,以检测数据帧中的错误。

三、卫星用户地面站与维护台的可靠通信流程

3.1 识别

因为UDP协议本身是面向无连接的,而本协议中加入的识别机制则解决了这一不可靠因素,使连接更快速,更有目的性。本过程完成通信双方之间的识别,获得双方的IP地址。通信采用广播(广播地址为255.255.255.255)形式。目的地址均为广播地址,源地址为发送方的IP地址。识别过程如下图2。

3.2 双线程

维护平台后台启用两个线程,分为控制线程与数据线程。采用双线程机制,即两个线程采用不同的容错策略。控制线程在成功进行握手后便由数据线程来接手数据的传输,中间还需要数据端口发送链路保活消息,直至数据传输结束,整个过程中的所有检测消息和数据传输均采用表1所描述的消息结构。

3.3 链路通断检测

使用Keep-Alive保活消息,用于链路的通断检测。保活信息及数据消息收发所用端口为:初始化收发序号均为0,状态均为DOWN,KEEP_ALIVE的周期为3秒,连续3次KEEP_ALIVE发送后,对方无响应认为链路DOWN,并且清除队列,暂停保活定时、等待新的连接,否则发送新的保活报文。

3.4 停等待机制

链路在UP状态下,采用改进的停等待机制。此机制能保证消息传送的有序、不重复、防丢包,使接收方收到准确无误的消息。发送时在没有收到响应消息前,不能进行下一条消息发送,。接收时对于相同序号的消息只处理第一次条,其它的只进行确认响应。通信双方各自维护自己的序号C字段,范围为0~127循环,接收到消息并确认正确后,将序号C字段的第7位置为1,组成响应帧发送给对方,并记录当前接收的对端序号C字段的值,如果再次收到同样序号C字段的消息只进行响应而不处理。

四、维护台界面的测试

4.1 识别

维护平台上加入识别连接界面,进行与卫星用户地面站的数据通信,能达到快速识别,以便于对其进行快速配置。利用本维护平台目前能达到快速识别和连接到卫星用户地面站。点击搜索按钮,客户端会发出广播消息,用户站收到此消息后会给出响应消息,然后客户端通过对收到的响应消息进行分析,得到用户站的IP地址和设备ID号,并显示在窗体中。如图3所示。

4.2 保活

点击连接按钮,则线程回归到主窗体中,主窗体上的信息栏会显示“连接到用户站:121.193.211.138”。如果连接中间出现断开情况,则信息栏会给出“失去与用户站(121.193.211.138)的联系,请重新进行设备识别”的提示,客户机应进行设备的重新识别和通信连接的建立。

4.3 维护台功能模块的实现

维护台通过以太网连接于用户站连接,通过发送广播包搜索设备,等1秒后,确认是否有连接的用户站,如果有多个用户站响应,选择一个作为当前设备,根据汇报的设备ID,选择其对应的数据库进行工作。

五、结论

对于卫星用户地面站和维护台之间的可靠通信,本文加入了一些机制,使可靠性得到了保证。对于维护台的设计以简单、实用为原则,实现其要求的基本功能,能够实现快速投入使用、快速配置卫星用户地面站。随着问题研究的深入,在数据传输过程中,速率和可靠性之间存在的矛盾将是接下来要解决的问题。

参 考 文 献

udp协议范文4

关键词:MODBUS/UDP协议;实时性;智能控制;数据传输

前言

目前,从工业控制的发展趋势来看、不难发现以太网将会成为通信领域的主流技术,因其在性能和速度方面都有很大的提高,并且在全球范围内得到了广泛的应用。虽然它在工控领域得到了迅猛发展,但现有的以太网技术不能完全满足对数据确定实时的要求,因此,现场总线基金会和一些从事工控方面的公司都采用了多种方法来改进以太网。人们设想直接修改以太网MAC协议方式,但它却有着自身的不足一一成本太高。另外,还有的研究人员想通过在数据链路层增加实时调度层的方式来提高实时性,再有就是采用以太网与TCP/IP相结合的方法,在本文中主要是采用MODBUS/UDp协议来减少网络时延的方式来达到对数据实时性的要求。

在智能建筑行业中有很多监控方面的智能仪表,来达到对监控对象的实时监控,由于各种智能仪表的型号、通讯接口、通讯协议不同,无法直接进行网联。随着信息化网络化的需求不断提升,对监控对象数据的实时采集、精确控制和远程协调提出了更高的要求。本文介绍了(1)在已有的以太网络技术基础上实现现场智能仪表的联网,(2)利用MODBUS/UDP协议来进行对数据的准确可靠的实时传输和控制。如何将检测到的数据上传到检测中心,检测中心又如何将各种控制命令下发到各现场机,有多种方法,如利用GSM或CDMA等无线传输方法、DDNTM等数据专线、IP网络。在这些传输方案中,利用IP网络无疑是理想的方法。

监测系统的组成

该系统基于互联网技术,并采用B/S软件构架,即Browser/Server(浏览器/服务器)结构,是随着Luternet技术的兴起,对c/s结构的一种变化后改进的结构,在这种结构下,用户界面完全通过WWW浏览器实现,一部分事物在前端实现,但是主要事物逻辑在服务器端实现,随着Windows 98/Windows 2000将浏览器技术植入操作系统内部,这种结构更成为当今应用软件的首选体系结构。

设计出了一个基于以太网构架的建筑监测系统。如图1所示。

系统由监控中心(服务器PC机)、TCP/IP传输网络、传输设备(机顶盒、多串口设备等)、现场机等组成。监控中心有权通过传输网络与各监控设备连接,采集其检测数据,或者发出控制指令。同时还可以分析、处理、查询、存储相关数据、是检测系统的核心。

现场机安装在需要监测的控制点,用于监控、监测电能使用情况,并完成与上位机的数据通讯。在图1中所应用的就是一种集RS485总线接口、MODBUS通讯接口和存储于一体的智能仪表。根据RS485标准,数据传输率在100kbit/s时通信距离可达1200米,选择带有RS485接口的另一原因就是在目前市场中这种智能仪表的成本较低,而且它完全能满足在工控中对监测和数据传输的要求。

机顶盒通过嵌入式网络监控编码器实现本地数据压缩并将监测数据通过网络传送到监控中心,提供各种接口与PC机相连,能将RS485口转换成10/100M口,实现数据的网络化并上传监控,采用lO/100M接口实现TCP/IP网络管理和监控,更有利于监控的IP网络化管理。

MODBUS/UDP协议

在目前的建筑控制系统中使用最广泛的是MODBUS/TCP通讯协议,但在实际的应用中我们会发现MODBUS/TCP协议确实达到了数据传输的可靠性要求,在建立网络连接时首先要进行三次握手,对数据进行封装、传输,当监控中心收到信息时再返回一个确认信息,在这一系列过程中,MODBUS/TCP协议花费了大量的时间,因此也无法达到人们对数据的实时性传输的要求。针对建筑环境通信的特点和以上问题,本文中采用MoDBUS/UDP协议。MODBUS/UDP协议,是将MODBUS协议与以太网UDP协议结合形成的,UDP协议是面向非连接的,其实时性高,通信效果好。UDP的实时性主要是在一个完整的周期通讯中,报文总的传输延迟减小,网络的利用率提高,节点的响应速度也就随之得到了提升,因此能完成数据的实时传输。对于协议的可靠性、虽然不能从协议本身进行改进,但通过编写好上层软件,依然可以弥补MODBUS/UDP协议的不足。UDP具有TCP所望尘莫及的速度优势,尽管TCP协议中有各种安全保障功能,但是在实际执行的过程中占用了大量的系统资源,从而对传输速度产生严重影响。

将一组数据从传感器传输到控制器或从控制器传输到执行器,导致数据延时的因素主要有数据的封装等待时延Twsit,从传感器到控制器的网络时延Tsc,控制器到执行器的网络时延Tca。也就是总时延T=Twsit+Tsc+Tca,假若在网络不拥堵的情况下,对比UDP和TCP的数据传输时延,我们会发现TCP所用的时间要比UDP的长,主要是因为在封装数据时TCP协议要在数据中添加以太网帧头和以太网帧尾,这就延长了Twsit的时间。在MODBUS协议中具有读写线圈、读写寄存器、读写异常等功能,因此我们就可以省去诊断、读取记录、编程等设备控制码,节省了时间,使得传输过程的总时延减小,提高了控制中对实时性的要求。

MODBUS协议定义了一个与基础通信层无关的PDU(协议数据单元)。特定总线或网络上的MODBUS协议映射能够在ADU(应用数据单元)上引入附加域。

标准的MODBUS报文协议帧的地址域为1字节大小,为了能在网络控制总线上采用令牌总线的方式来使得每个站点都有均等的机会来发送数据,采用隐性令牌的方式来避免介质访问引发的冲突,将1字节的地址域扩大为2字节,地址域分为1字节的目的地址和1字节的源地址,1字节的功能码变为2字节。改进后的帧格式如图3所示。

目的地址是该帧的接受地址:源地址是发送帧的地址:状态位则用来表示发送的帧是否被接收。网络管理者给每个节点分配一个眭一的地址。每个站点监视收到的每个报文帧的源地址,并为接收到的源地址设置一个 隐h生令牌寄存器,让隐性令牌寄存器的值为收到的源地址加1、若隐性令牌寄存器的值与哪个站点的介质访问控制MAC地址相同时、该站点则发送数据,若没有数据可发送则发送一个空帧,在网络中没有真正的令牌帧在网络中传输,而是将令牌隐含在普通的数据中。UDP上的MODBUS的请求/响应格式如图4所示。

另外,报文中要加上专业的MAPH头(Modbus Application ProtocolHeader),以达到识别MODBUS应用数据单元ADU的目的。报文头为7个字节长度、包括:事务处理标识符(Transaction Identifier)、协议标识符(Protocol Identifier)、长度(Length Field)、单元标识符(UnitIdentifier)。

事务处理标识符:用于事务处理配对。在响应中、MODBUS服务器复制请求的事务处理标识符。

协议标识符:用于系统内的多路复用。通过值0识别MODBUS协议。

长度:长度域是下一个域的字节数,包括单元标识符和数据域。

单元标识符:专门用于以太网TCP/IP网络和MODBUS串行链路之间的网关对MODBUS或MODBUS+串行链路从站的通信。

实验结果分析

在LABVEIW软件平台上进行了模拟实验,对MODBUS/UDP传输数据流进行检测,MODBUS/UDP协议进行数据传输时的数据流量在242Kbps到250Kbps之间。其原理图与结果如图5和图6所示。

当发送端的连接建立起来后,将正弦信号输入数据类型转换器,将转换后的数据发送到UDP端口,UDPwrite根据所设置的传输端口对数据进行传输。在接收端UDP read根据主机端口号读取数据、在读取数据过程中为能监控到数据的传输流量,在接收处的传输末端使用框图来显示对数据的监控情况。

为了进行比较,对同一组随机数据的传输也使用了MODBUS/TCP协议。流量监控数据在236Kbps在245Kbps之间,我们不难发现MODBUS/TCP的传输速率明显要比MODBUS/UDP低。导致这种现象的原因在第三部分已经给出了分析,在LABVEIW上进行模拟仿真不存在现实中Tsc和Tca时延的问题,因此进一步证明了MODBUS/UDP在封装部分时间短,占用网络资源少,能快速对采集到的数据进行传输。

结果表明,上位机使用MODBUS/UDP协议对测控终端进行查询并读取终端的数据,MODBUS/UDP具有更好的实时性,因此对于有大量数据进行传输时会减少堵塞问题的出现,因此使用MODBUS/UDP能实现数据高效和实时的传输。

udp协议范文5

【关键词】HTTP2Sock,Sock2HTTP,隧道

1 引言

基于SIP协议的即时通信系统在企事业单位使用较多,而随着单位保密意识的提高,对数据安全和网络安全的重视,人们对防火墙访问规则等安全策略的要求越来越严格,同时也限制了其基于计算机的各种应用,阻碍了其业务的发展。本文采用HTTP Tunnel实现对防火墙的穿越,将TCP、UDP等非HTTP数据类型进行HTTP伪装和加密,在不改变单位的防火墙等安全策略的前提下,以隐蔽通信的方式完成应用程序的数据传输。

本文重点探讨了HTTP Tunnel技术在以SIP协议为基础的即时通信系统中的应用,并提出相应解决方案和参考应用框架。旨在提升HTTP Tunnel技术的应用范围,加强应用业务的数据安全与网络安全。

2 应用系统框架

HTTP Tunnel被称之为HTTP暗道,原理是将数据伪装成 HTTP的数据形式来穿过防火墙。

基于SIP协议的即时通信系统是以SIP为信令交互协议的即时通信系统,其应用包括HTTP访问、即时消息、语音通信、视频通信等。该系统通过HTTP Tunnel可以不用改变防火前的安全策略,即可实现自由通信。其框架基本包括四个主要方面:

1) 基于SIP协议的即时通信系统,该系统实现基于TCP、UDP、HTTP等协议的即时通信功能;

2) Sock2HTTP服务器,该服务器实现非HTTP协议数据包的HTTP格式转换,通信端口映射,拥塞控制等功能;

3) HTTP Tunnel系统,该系统实现基于HTTP协议的双向的虚拟数据连接,从而穿越防火墙;

4) HTTP2Sock服务器,该服务器实现需要转换为其他格式的HTTP数据,通信端口的映射,拥塞控制等。

其拓扑图如图1:

图1.基于SIP协议的即时通信系统的HTTP Tunnel应用

3应用系统设计

3.1基于SIP协议的即时通信系统

基于SIP协议的即时通信系统主要有两部分组成。OpenSIPS服务器和oSIP客户端。

3.1.1 OpenSIPS

OpenSIPS是成熟的开源SIP服务器,结构非常灵活,其核心路由功能完全通过脚本来实现,可灵活定制各种路由策略,可灵活应用于语音、视频通信、IM以及Presence等多种应用。

其主要功能如下:

 SIP注册服务器/服务器/重定向服务器

 SIP presence agent

 SIP IM Server

3.1.2 oSIP

oSIP是使用标准c编写的SIP协议栈。

主要包括两部分的内容:状态机模块、解析器模块。

 状态机模块的功能:完成对某个事务(注册过程,呼叫过程等等)状态记录,并在特定状态下触发相应的事件或回调函数。

 解析器模块的功能:该模块主要完成对SIP消息结构剖析、SDP消息的结构剖析以及URI结构的剖析;

图2.oSIP结构

oSIP为SIP协议的客户端,OpenSIPS为SIP协议的服务器,二者共同搭建基于SIP协议的即时通信系统。

3.2 Sock2HTTP服务器和HTTP2Sock服务器

当位于内网的SIP终端访问外网,则终端建立连接的端口不一定被防火墙开放,尤其是UDP端口,若使TCP与UDP等消息穿越防火墙则需要相应的协议转换服务器,即Sock2HTTP和HTTP2Sock。

图3.Sock2HTTP与HTTP2Sock

3.2.1功能描述

主要负责分配对应的UDP端口;接收HTTP消息、解码、以UDP的形式发送至目的地址;接收UDP消息、编码、接收终端分配UDP端口的HTTP消息,返回生成的UDP端口;UDP端口与终端的对应管理机制。

3.2.2设计说明

a.建立TCP套接字,与某端口绑定(可配置),监听该端口;

b.接收到请求后,fork子进程处理该请求,请求包括要求分配端口的请求和其他请求两类;

c.处理要求分配端口的请求,将分配的端口返回给终端,保持该TCP链接不断开,直至通话结束或者终端注销。

4结论

基于SIP协议的即时通信系统使用HTTP Tunnel技术,在企事业单位网内外实现自由通信。该应用不仅提升HTTP Tunnel技术的应用范围,更加强应用业务的数据安全与网络安全。系统采用分布式设计,为系统升级和集成提供很好的构架基础,是企事业单位业务和数据穿越防火墙的一种安全和高效的应用。

参考文献

[1] RFC 2543 3261SIP: Session Initiation Protocol.

[2] RFC 2616Hypertext Transfer Protocol -- HTTP/1.1.

udp协议范文6

关键词:NAT;UDP Hole Punching;完全P2P;FSN

0 引言

网络地址转换协议(NAT:Network Address Translation),通过将局域网上的主机地址映射为Internet上的合法IP地址,从而实现网络地址复用。NAT对解决当前IP地址短缺问题、构建防火墙、保证网络安全等都发挥了重要作用。但是随着基于Internet的P2P网络技术的广泛应用,更多的内网主机需要参与到P2P中来。NAT协议下的主机IP地址(私网IP地址)在Internet上是不可见的,Internet上的主机不能主动访问这些NAT协议下的主机,而位于不同NAT协议下的主机间更是无法相互识别而不能直接交换信息。但是P2P网络要求任何主机之间都能够直接对等交换信息,因此P2P网络应用必须解决穿越NAT实现双向对等通信的问题。

本文将重点围绕着Cone NAT穿越的完全P2P通信方法展开研究。

1 网络地址转换(NAT)的类型划分

按照端口号转换与否,NAT可以分为以下两种:

(1)Basic NAT:将私网主机的私有IP地址转换成公网IP地址,但并不转换TCP/UDP端口信息。

(2)Network Address Port Translation(NAPT):NAPT将单独的公网IP地址和内部多台主机进行绑定,当不同的内部主机和外部通信时,NAT不仅将内部主机的私有IP转换为公网IP,而且连端口号一起转换。

按照端口号的分配情况,NAPT又可以分为以下两种:

(1)Symmetric NAT:当同一个内部主机向不同的外网主机发起多个会话时,Symmetric NAT为这些会话分配不同的端口,Symmetric NAT能够区别多个不同的会话并进行地址转换。

(2)Cone NAT:与Symmetric NAT不同,当同一个内部主机向不同的外网主机发起多个会话时,Cone NAT为这些会话分配同一个端口,并通过判断数据包的来源(即反馈数据包中的IP地址和端口)来维持会话。所分配的同一个端口在所有会话结束后才收回。

由于当前的NAT几乎都是Cone NAT,所以本文只是基于Cone NAT进行了研究,后面出现的NAT要是不特别说明,指的是Cone NAT。

2 P2P节点穿越Cone NAT方法

UDP是简单的传输协议,几乎不提供可靠性措施,是无连接的协议,但是效率非常高。不像TCP协议,传输数据之前要建立一种虚拟的连接关系,它只要知道对方的IP地址和UDP端口,就可以进行数据传输。在P2P网络中,采用UDP方式进行数据传输,所以能够获得主机的Internet合法IP地址就可以进行数据交换。

P2P的两个节点分布有以下几种情况:

(1)两个节点都有自己的公网地址。

(2)两个节点都使用同一个Cone NAT。

(3)一个节点有公网地址,另外一个节点使用一个ConeNAT协议。

(4)两个节点使用不同的Cone NAT。

下面就对两个P2P节点在不同内网下,穿越NAT的User Datagram Protocol(UDP)Hole Punching方法进行介绍。

如图1所示,假设两台主机A和B处于不同的Cone NAT协议下。它们穿越NAT进行直接通信的过程如下:

上一篇购房协议书

下一篇合伙人协议

相关精选