[发明专利]一种基于UDP协议传输大量数据的方法有效
申请号: | 200810239793.7 | 申请日: | 2008-12-17 |
公开(公告)号: | CN101436922A | 公开(公告)日: | 2009-05-20 |
发明(设计)人: | 夏冉 | 申请(专利权)人: | 烽火通信科技股份有限公司 |
主分类号: | H04L1/00 | 分类号: | H04L1/00;H04L29/06;H04L12/28 |
代理公司: | 北京宇生知识产权代理事务所 | 代理人: | 倪 骏 |
地址: | 430074湖北*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 udp 协议 传输 大量 数据 方法 | ||
技术领域
本发明涉及以太网通信领域,特别涉及一种基于UDP协议采用压缩算法的大量数据传输方法。
背景技术
UDP协议是英文User Datagram Protocol的缩写,即用户数据报协议,是ISO参考模型中一种无连接的传输层协议,提供面向操作的简单不可靠信息传送服务,主要用来支持那些需要在计算机之间传输数据的网络应用。
UDP并不提供对IP协议的可靠机制、流控制以及错误恢复功能等。UDP是一个无连接协议,传输数据之前发送端和接收端不建立连接,当发送端想传送时就简单地去抓取来自应用程序的数据,并尽可能快地把它扔到网络上。在发送端,UDP传送数据的速度仅仅是受应用程序生成数据的速度、计算机的能力和传输带宽的限制;在接收端,UDP把每个消息段放在队列中,应用程序每次从队列中读一个消息段。
UDP适用于不需要TCP可靠机制的情形,比如,当高层协议或应用程序提供错误和流控制功能的时候。UDP是传输层协议,服务于很多知名应用层协议,包括网络文件系统(NFS)、简单网络管理协议(SNMP)、域名系统(DNS)以及简单文件传输系统(TFTP)。
理论上,IP数据报的最大长度是65535字节,这是由IP首部中16比特总长度字段所限制的。去除20字节的IP首部和8个字节的UDP首部,UDP数据报中用户数据的最长长度为65507字节。但是,大多数实现所提供的长度比这个最大值小,限制主要来自以下两个方面:
1.以上理论数据长度是在假设IP支持分片的情况下计算出来的,如果IP不支持分片,则最大的IP报文受MTU限制,例如以太网上是1500字节。
2.应用程序可能会受到其程序接口的限制。socket API提供了一个可供应用程序调用的函数,以设置接收和发送缓存的长度。对于UDP socket,这个长度与应用程序可以读写的最大UDP数据报的长度直接相关。现在的大部分系统都默认提供了可读写大于8192字节的UDP数据报。
由于以太网的数据传输有包大小限制,因此,便会出现数据量过大而使得一个数据包不适合传输甚至无法传输的情况。
对于传输过长数据包,通常的解决方法有两种:
1.采用压缩算法:选择合适的压缩算法将原本大量的数据进行压缩,以降低网络传输数据量。这种方法需要接收端运行相应的解压缩算法以正确解析接收到的数据。
2.采用拆包的方法:采用某种策略将原本大量的数据拆分成多个小量数据包,通过多次网络传输完成一份大数据。这种方法需要接收端将所有拆分之后的数据包拼接起来之后才能正确解析接收到的数据。
方法1在大多数情况下是可以满足需要的,而且避免了拆分多个数据包导致网络传输过程中不可靠性的累加。但是这种方法会增大算法的复杂度,需要接收端运行相应的解压缩算法以正确解析接收到的数据,并且还需要考虑到压缩/解压缩所需要的空间开销,以及压缩之后的数据长度仍然超过一个数据包的长度限制的情况。
方法2的优点是算法简单,且适用于所有情况。但是这种方法会导致网络传输不可靠性的倍数增长:在拆分的多个数据包中只要一个出现错误,则所有数据传输都是无效的。
发明内容
本发明的目的在于克服现有技术中两种方法的缺陷,将两种解决方法结合使用,各取所长。
本发明提供了一种基于UDP协议传输大量数据的方法,适用于基于不可靠协议——UDP协议传输大量数据的情况,其包括发送方法和接收方法。
其中发送大量数据的方法包括以下步骤:
1、将一个超大数据包按照一定预定大小进行拆分,拆分成n个数据包,其中第1个数据包至第n-1个数据包大小都等于所述预定大小,第n个数据包的大小则小于等于所述预定大小;
2、将拆分之后的前n-1个数据包进行压缩;
3、第n个数据包则根据数据包长度判断是否需要压缩:如果长度小于一个数据包长度限制值,则不需要压缩,直接进入步骤D;否则需要压缩,压缩后进入步骤D;
4、根据压缩之后数据包的长度不同进行不同的处理:
4.1、如果压缩包长度大于一个数据包长度限制值,则该压缩包将拆分成m个小数据包,其中第1个小数据包至第m-1个小数据包的大小都等于所述数据包长度限制值,第m个数据包的大小则小于等于所述数据包长度限制值;
4.2、如果压缩包长度小于等于一个数据包长度限制值,则该压缩包独立成一个数据包,不需要拆分;
5、将步骤D输出的数据包按照私有协议格式依次发送给接收方;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于烽火通信科技股份有限公司,未经烽火通信科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200810239793.7/2.html,转载请声明来源钻瓜专利网。
- 上一篇:发光二极管多功能舞台灯
- 下一篇:渔塘防盗探照灯的转动装置