一种基于ptt公网集群对讲系统的数据传输方法

文档序号:9567144阅读:1996来源:国知局
一种基于ptt公网集群对讲系统的数据传输方法
【技术领域】
[0001]本发明涉及通信领域,尤其涉及一种基于ΡΤΤ公网集群对讲系统的数据传输方法。
【背景技术】
[0002]PTT (Push To Talk)公网集群对讲系统业务本质上是采用中国移动GPRS/EDGE/TD-CDMA通信网络作为服务系统与终端用户业务交互的桥梁,中国电信、移动、联通是国内三大运营商,其GPRS/EDGE网络的稳定性、覆盖率、网络速率、自然延伸至3G、4G环境都已经非常成熟。
[0003]基于2.5G、3G及4G网络的无线IP技术,是将语音信号转换成数据包经过网络传输,最后再将数据包转换成语音传递出来完成一次通话,也就是以数字交换的形式实现语音通信。和传统的移动电话不同的是,公网集群PTT业务使用简单的半双工通信方式工作。也就是说,PTT在通话的时候,双方只占用一个频率,分时借用使用半双工通信方式工作,一个语音通道要么送话要么收话。在同一时间只能有一人说话,主叫方只要按一个键即可向一个人或一组人发起通话请求,无需拨号和等待对方摘机,话路立即接通,迅速建立起谈话群组。由于这个过程是单向的,所以公网集群PTT在同一时间内只能有一人说话,其它人只能听。
[0004]但是,现有的数据包格式复杂,从而使得打包、解包方式繁琐,影响响应速度,同时保密性不佳,不利于实际应用。

【发明内容】

[0005]本发明所要解决的技术问题在于,提供一种基于PTT公网集群对讲系统的数据传输方法,格式简单、保密性佳。
[0006]为了解决上述技术问题,本发明提供了一种基于PTT公网集群对讲系统的数据传输方法,包括:建立第一终端与第二终端之间的TCP连接;所述第一终端向所述第二终端发送TCP数据包;所述第二终端响应所述TCP数据包;所述TCP数据包的格式为:主长度信息字段、标志字段、可变字段及CRC字段,所述主长度信息字段用于记录通信长度,所述标志字段用于标识使用命令类型,所述可变字段用于记录传输数据,所述CRC字段用于校验传输数据是否正确。
[0007]所述上述方案的改进,所述通信长度为主长度信息字段的长度、标志字段的长度及可变字段的长度之和。
[0008]所述上述方案的改进,所述主长度信息字段的长度为4个字节,所述标志字段的长度为1个字节,所述CRC字段的长度为4个字节。
[0009]所述上述方案的改进,所述第二终端响应TCP数据包的步骤包括:判断所述TCP数据包的主长度信息字段是否接收完毕;若所述主长度信息字段已接收完毕,则根据所述主长度信息字段计算所述TCP数据包的总长度;根据所述总长度判断所述TCP数据包的传输数据是否接收完毕;若所述传输数据已接收完毕,计算CRC值并判断所述CRC值与所述TCP数据包的CRC字段是否一致;若一致,则响应所述TCP数据包,若不一致,则丢弃所述TCP数据包。
[0010]所述上述方案的改进,所述的基于PTT公网集群对讲系统的数据传输方法,还包括所述第一终端向所述第二终端发送UDP数据包,所述UDP数据包的格式为RTP头及实际数据。
[0011]所述上述方案的改进,所述UDP数据包包括语音数据包、FEC数据包及心跳包。
[0012]所述上述方案的改进,所述语音数据包的格式为:UDP包头部标示、类型标示、序号、时间戳、用户ID、帧标识、码率及语音数据。
[0013]所述上述方案的改进,所述FEC数据包的格式为:UDP包头部标示、类型标示、序号、媒体包长度、用户ID及FEC数据。
[0014]所述上述方案的改进,所述心跳包的格式为:UDP包头部标示、类型标示、第一标识、第二标识及用户ID。
[0015]实施本发明,具有如下有益效果:
本发明采用独特的TCP数据包格式,所述TCP数据包的格式为:主长度信息字段、标志字段、可变字段及CRC字段,格式简单,保密性强。
[0016]同时,采用该格式形成独特的解包方式,提高响应速度,可避免数据传输中的半包、粘包所造成的数据接收异常。
[0017]另外,本发明还采用独特的UDP数据包格式,所述UDP数据包包括语音数据包、FEC数据包及心跳包。其中,语音数据包的格式为:UDP包头部标示、类型标示、序号、时间戳、用户ID、帧标识、码率及语音数据,可实现语音数据的有效传输;FEC数据包的格式为:UDP包头部标示、类型标示、序号、媒体包长度、用户ID及FEC数据,能有效缩小随机丢包的丢包率;心跳包的格式为:UDP包头部标示、类型标示、第一标识、第二标识及用户ID,可让服务器维系链路,并且用来确认客户端是否意外掉电,死机等。
【附图说明】
[0018]图1是本发明基于PTT公网集群对讲系统的数据传输方法的第一实施例流程图;图2是本发明基于PTT公网集群对讲系统的数据传输方法的第二实施例流程图。
【具体实施方式】
[0019]为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述。仅此声明,本发明在文中出现或即将出现的上、下、左、右、前、后、内、外等方位用词,仅以本发明的附图为基准,其并不是对本发明的具体限定。
[0020]图1是本发明基于PTT公网集群对讲系统的数据传输方法的第一实施例流程图,包括:
S101,建立第一终端与第二终端之间的TCP连接。
[0021]需要说明的是的,所述第一终端及第二终端可以为客户端也可以为服务器。若第一终端为客户端时,则第二终端为服务器;若第一终端为服务器,则第二终端为客户端。
[0022]S102,所述第一终端向所述第二终端发送TCP数据包。
[0023]客户端可以主动向服务器发送TCP数据包,服务器也可以主动向客户端发送TCP数据包。
[0024]所述TCP数据包的格式为:主长度信息字段、标志字段、可变字段及CRC字段。
[0025]其中:
所述主长度信息字段的长度为4个字节,用于记录通信长度,可确保每次通信接收到的数据大小一致,避免数据传输中的半包、粘包所造成的数据接收异常;具体地,所述通信长度为主长度信息字段的长度、标志字段的长度及可变字段的长度之和。
[0026]所述标志字段的长度为1个字节,用于标识使用命令类型。
[0027]所述可变字段用于记录传输数据;可变字段的长度和格式都不固定,可根据实际情况填充,可使用protobuf (protobuf是结构化信息传递的工具)自动生成的数据。
[0028]所述CRC字段的长度为4个字节,用于校验传输数据是否正确。
[0029]例如,客户端要向服务器通讯,若实际要发送的数据为“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。
[0030]S103,所述第二终端响应所述TCP数据包。
[0031 ] 具体地,所述第二终端响应TCP数据包的步骤包括:
A1,判断所述TCP数据包的主长度信息字段是否接收完毕,即判断所接收的主长度信息字段是否大于4字节。
[0032]A2,若所述主长度信息字段已接收完毕,则根据所述主长度信息字段计算所述TCP数据包的总长度(主长度信息字段中所记录的通信长度+CRC字段的长度=总长度)。
[0033]A3,根据所述总长度判断所述TCP数据包的传输数据是否接收完毕。
[0034]A4,若所述传输数据已接收完毕,计算CRC值并判断所述CRC值与所述TCP数据包的CRC字段是否一致,若所述传输数据未接收完毕,则继续等待接收。
[0035]A5,若一致,则响应所述TCP数据包,若不一致,则丢弃所述TCP数据包。第二终端根据标示字段进行响应。
[0036]图2是本发明基于PTT公网集群对讲系统的数据传输方法的第二实施例流程图,包括:
S201,建立第一终端与第二终端之间的TCP连接。
[0037]需要说明的是的,所述第一终端及第二终端可以为客户端也可以为服务器。若第一终端为客户端时,则第二终端为服务器;若第一终端为服务器,则第二终端为客户端。
[0038]S202,所述第一终端向所述第二终端发送TCP数据包。
[0039]客
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1