一种基于PTT公网集群对讲系统的数据传输方法技术方案

技术编号:12863668 阅读:106 留言:0更新日期:2016-02-13 12:05
本发明专利技术公开了一种基于PTT公网集群对讲系统的数据传输方法,包括:建立第一终端与第二终端之间的TCP连接;所述第一终端向所述第二终端发送TCP数据包;所述第二终端响应所述TCP数据包;所述TCP数据包的格式为:主长度信息字段、标志字段、可变字段及CRC字段,所述主长度信息字段用于记录通信长度,所述标志字段用于标识使用命令类型,所述可变字段用于记录传输数据,所述CRC字段用于校验传输数据是否正确。采用本发明专利技术,利用独特的TCP数据包格式及UDP数据包格式,格式简单,保密性强;同时,通过独特的解包方式,提高响应速度,可避免数据传输中的半包、粘包所造成的数据接收异常。

【技术实现步骤摘要】

本专利技术涉及通信领域,尤其涉及一种基于ΡΤΤ公网集群对讲系统的数据传输方法。
技术介绍
PTT (Push To Talk)公网集群对讲系统业务本质上是采用中国移动GPRS/EDGE/TD-CDMA通信网络作为服务系统与终端用户业务交互的桥梁,中国电信、移动、联通是国内三大运营商,其GPRS/EDGE网络的稳定性、覆盖率、网络速率、自然延伸至3G、4G环境都已经非常成熟。基于2.5G、3G及4G网络的无线IP技术,是将语音信号转换成数据包经过网络传输,最后再将数据包转换成语音传递出来完成一次通话,也就是以数字交换的形式实现语音通信。和传统的移动电话不同的是,公网集群PTT业务使用简单的半双工通信方式工作。也就是说,PTT在通话的时候,双方只占用一个频率,分时借用使用半双工通信方式工作,一个语音通道要么送话要么收话。在同一时间只能有一人说话,主叫方只要按一个键即可向一个人或一组人发起通话请求,无需拨号和等待对方摘机,话路立即接通,迅速建立起谈话群组。由于这个过程是单向的,所以公网集群PTT在同一时间内只能有一人说话,其它人只能听。但是,现有的数据包格式复杂,从而使得打包、解包方式繁琐,影响响应速度,同时保密性不佳,不利于实际应用。
技术实现思路
本专利技术所要解决的技术问题在于,提供一种基于PTT公网集群对讲系统的数据传输方法,格式简单、保密性佳。为了解决上述技术问题,本专利技术提供了一种基于PTT公网集群对讲系统的数据传输方法,包括:建立第一终端与第二终端之间的TCP连接;所述第一终端向所述第二终端发送TCP数据包;所述第二终端响应所述TCP数据包;所述TCP数据包的格式为:主长度信息字段、标志字段、可变字段及CRC字段,所述主长度信息字段用于记录通信长度,所述标志字段用于标识使用命令类型,所述可变字段用于记录传输数据,所述CRC字段用于校验传输数据是否正确。所述上述方案的改进,所述通信长度为主长度信息字段的长度、标志字段的长度及可变字段的长度之和。所述上述方案的改进,所述主长度信息字段的长度为4个字节,所述标志字段的长度为1个字节,所述CRC字段的长度为4个字节。所述上述方案的改进,所述第二终端响应TCP数据包的步骤包括:判断所述TCP数据包的主长度信息字段是否接收完毕;若所述主长度信息字段已接收完毕,则根据所述主长度信息字段计算所述TCP数据包的总长度;根据所述总长度判断所述TCP数据包的传输数据是否接收完毕;若所述传输数据已接收完毕,计算CRC值并判断所述CRC值与所述TCP数据包的CRC字段是否一致;若一致,则响应所述TCP数据包,若不一致,则丢弃所述TCP数据包。所述上述方案的改进,所述的基于PTT公网集群对讲系统的数据传输方法,还包括所述第一终端向所述第二终端发送UDP数据包,所述UDP数据包的格式为RTP头及实际数据。所述上述方案的改进,所述UDP数据包包括语音数据包、FEC数据包及心跳包。所述上述方案的改进,所述语音数据包的格式为:UDP包头部标示、类型标示、序号、时间戳、用户ID、帧标识、码率及语音数据。所述上述方案的改进,所述FEC数据包的格式为:UDP包头部标示、类型标示、序号、媒体包长度、用户ID及FEC数据。所述上述方案的改进,所述心跳包的格式为:UDP包头部标示、类型标示、第一标识、第二标识及用户ID。实施本专利技术,具有如下有益效果: 本专利技术采用独特的TCP数据包格式,所述TCP数据包的格式为:主长度信息字段、标志字段、可变字段及CRC字段,格式简单,保密性强。同时,采用该格式形成独特的解包方式,提高响应速度,可避免数据传输中的半包、粘包所造成的数据接收异常。另外,本专利技术还采用独特的UDP数据包格式,所述UDP数据包包括语音数据包、FEC数据包及心跳包。其中,语音数据包的格式为:UDP包头部标示、类型标示、序号、时间戳、用户ID、帧标识、码率及语音数据,可实现语音数据的有效传输;FEC数据包的格式为:UDP包头部标示、类型标示、序号、媒体包长度、用户ID及FEC数据,能有效缩小随机丢包的丢包率;心跳包的格式为:UDP包头部标示、类型标示、第一标识、第二标识及用户ID,可让服务器维系链路,并且用来确认客户端是否意外掉电,死机等。【附图说明】图1是本专利技术基于PTT公网集群对讲系统的数据传输方法的第一实施例流程图;图2是本专利技术基于PTT公网集群对讲系统的数据传输方法的第二实施例流程图。【具体实施方式】为使本专利技术的目的、技术方案和优点更加清楚,下面将结合附图对本专利技术作进一步地详细描述。仅此声明,本专利技术在文中出现或即将出现的上、下、左、右、前、后、内、外等方位用词,仅以本专利技术的附图为基准,其并不是对本专利技术的具体限定。图1是本专利技术基于PTT公网集群对讲系统的数据传输方法的第一实施例流程图,包括: S101,建立第一终端与第二终端之间的TCP连接。需要说明的是的,所述第一终端及第二终端可以为客户端也可以为服务器。若第一终端为客户端时,则第二终端为服务器;若第一终端为服务器,则第二终端为客户端。S102,所述第一终端向所述第二终端发送TCP数据包。客户端可以主动向服务器发送TCP数据包,服务器也可以主动向客户端发送TCP数据包。所述TCP数据包的格式为:主长度信息字段、标志字段、可变字段及CRC字段。其中: 所述主长度信息字段的长度为4个字节,用于记录通信长度,可确保每次通信接收到的数据大小一致,避免数据传输中的半包、粘包所造成的数据接收异常;具体地,所述通信长度为主长度信息字段的长度、标志字段的长度及可变字段的长度之和。所述标志字段的长度为1个字节,用于标识使用命令类型。所述可变字段用于记录传输数据;可变字段的长度和格式都不固定,可根据实际情况填充,可使用protobuf (protobuf是结构化信息传递的工具)自动生成的数据。所述CRC字段的长度为4个字节,用于校验传输数据是否正确。例如,客户端要向服务器通讯,若实际要发送的数据为“Hello”,假设其命令字段为0x21,CRC校验码为0x12345。那么本次通讯的通信长度为4 + 1 + 5 = 10 (字节),其中4为主长度信息字段的长度,1为标志字段的长度,5为可变字段“Hello”的长度。总长度为:通信长度与CRC字段的长度之和,S卩10 + 4 = 14 (字节)。因此,本次发送的数据为:0x00,0x00,0x00,OxOE,0x21,0x48,0x65,0x6C,0x6C,0x6F,0x00,0x01,0x23,0x45。S103,所述第二终端响应所述TCP数据包。 具体地,所述第二终端响应TCP数据包的步骤包括: A1,判断所述TCP数据包的主长度信息字段是否接收完毕,即判断所接收的主长度信息字段是否大于4字节。A2,若所述主长度信息字段已接收完毕,则根据所述主长度信息字段计算所述TCP数据包的总长度(主长度信息字段中所记录的通信长度+CRC字段的长度=总长度)。A3,根据所述总长度判断所述TCP数据包的传输数据是否接收完毕。A4,若所述传输数据已接收完毕,计算CRC值并判断所述CRC值与所述TCP数据包的CRC字段是否一致,若所述传输数据未接收完毕,则继续等待接收。A5,若一致,则响应所述TCP数本文档来自技高网...

【技术保护点】
一种基于PTT 公网集群对讲系统的数据传输方法,其特征在于,包括:建立第一终端与第二终端之间的TCP连接;所述第一终端向所述第二终端发送TCP数据包;所述第二终端响应所述TCP数据包;所述TCP数据包的格式为:主长度信息字段、标志字段、可变字段及CRC字段,所述主长度信息字段用于记录通信长度,所述标志字段用于标识使用命令类型,所述可变字段用于记录传输数据,所述CRC字段用于校验传输数据是否正确。

【技术特征摘要】

【专利技术属性】
技术研发人员:廖伟涛李玉余亚区礼淇
申请(专利权)人:广东微沃通讯科技发展有限公司
类型:发明
国别省市:广东;44

相关技术
    暂无相关专利
网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1