CN105323250B - 一种基于ptt公网集群对讲***的数据传输方法 - Google Patents

一种基于ptt公网集群对讲***的数据传输方法 Download PDF

Info

Publication number
CN105323250B
CN105323250B CN201510754635.5A CN201510754635A CN105323250B CN 105323250 B CN105323250 B CN 105323250B CN 201510754635 A CN201510754635 A CN 201510754635A CN 105323250 B CN105323250 B CN 105323250B
Authority
CN
China
Prior art keywords
packet
data
field
length
terminal
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201510754635.5A
Other languages
English (en)
Other versions
CN105323250A (zh
Inventor
廖伟涛
李玉
余亚
区礼淇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangdong Weiwo Communication Technology Development Co Ltd
Original Assignee
Guangdong Weiwo Communication Technology Development Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Guangdong Weiwo Communication Technology Development Co Ltd filed Critical Guangdong Weiwo Communication Technology Development Co Ltd
Priority to CN201510754635.5A priority Critical patent/CN105323250B/zh
Publication of CN105323250A publication Critical patent/CN105323250A/zh
Application granted granted Critical
Publication of CN105323250B publication Critical patent/CN105323250B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0061Error detection codes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/06Selective distribution of broadcast services, e.g. multimedia broadcast multicast service [MBMS]; Services to user groups; One-way selective calling services
    • H04W4/10Push-to-Talk [PTT] or Push-On-Call services

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Multimedia (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

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

Description

一种基于PTT公网集群对讲***的数据传输方法
技术领域
本发明涉及通信领域,尤其涉及一种基于PTT 公网集群对讲***的数据传输方法。
背景技术
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字段的长度之和,即 10 + 4 = 14 (字节)。因此,本次发送的数据为:0x00,0x00,0x00,0x0E,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数据包,若不一致,则丢弃所述TCP数据包。第二终端根据标示字段进行响应。
图2是本发明基于PTT 公网集群对讲***的数据传输方法的第二实施例流程图,包括:
S201,建立第一终端与第二终端之间的TCP连接。
需要说明的是的,所述第一终端及第二终端可以为客户端也可以为服务器。若第一终端为客户端时,则第二终端为服务器;若第一终端为服务器,则第二终端为客户端。
S202,所述第一终端向所述第二终端发送TCP数据包。
客户端可以主动向服务器发送TCP数据包,服务器也可以主动向客户端发送TCP数据包。
所述TCP数据包的格式为:主长度信息字段、标志字段、可变字段及CRC字段。
其中:所述主长度信息字段的长度为4个字节,用于记录通信长度,可确保每次通信接收到的数据大小一致 ,避免数据传输中的半包、粘包所造成的数据接收异常;具体地,所述通信长度为主长度信息字段的长度、标志字段的长度及可变字段的长度之和。所述标志字段的长度为1个字节,用于标识使用命令类型。所述可变字段用于记录传输数据;可变字段的长度和格式都不固定,可根据实际情况填充,可使用protobuf(protobuf是结构化信息传递的工具)自动生成的数据。所述CRC字段的长度为4个字节,用于校验传输数据是否正确。
S203,所述第二终端响应所述TCP数据包。
S204,所述第一终端向所述第二终端发送UDP数据包。
所述UDP数据包的格式为RTP头及实际数据。所述UDP数据包包括语音数据包、FEC数据包及心跳包。
在客户端通过TCP数据包获取话语权后,PTT通话开始,即可开始传输语音数据包。所述语音数据包的格式为:UDP包头部标示、类型标示、序号、时间戳、用户ID、帧标识、码率及语音数据,其中,“UDP包头部标示、类型标示、序号、时间戳、用户ID、帧标识、码率” 为RTP头,共16字节。
例如:0xC0,0x6F,0x00,0x10,0x01,0x12,0x45,0x00,0x00,0x00,0x00,0x12,0x0A,0xEA,0xAA,0xA0 +语音数据。其中,第1个字节“0xC0”是公共的数据头,用于过滤数据,第1个字节不为0xC0的数据包全部丢掉;第2个字节“0x6F”用来区别是数据包的类型;第3、4个字节“0x00,0x10”是标示数据包的序号,“0x10”表示第16个语音包;第5、6、7、8个字节“0x01,0x12,0x45,0x00”在语音包表示时间戳;第9、10、11、12个字节“0x00,0x00,0x00,0x12” 都表示用户ID,占4个字节;第 13个字节“0x0A”表示带有10帧的语音数据;由于,每帧的语音数据可能会是由不同的编码码率生成的,因此,从第14字节开始用2bit的长度来区分每帧数据的码率,其中10B为半速率, 11B为全速率,将语音包中的14~16字节“0xEA,0xAA,0xA0”转为二进制位“1110 1010 1010 1010 1010 0000”不满1字节的用0补齐,因此可以看出除了第一个帧为全速率其他都为半速率。
在移动网络中,往往存在比较高的丢包率,而实时对讲对语音实时要求很高,因此不可能通过重传来解决丢包的问题,前向纠错(FEC,Forward Error Correction)的使用能很大的缩小随机丢包的丢包率。所述FEC数据包的格式为:UDP包头部标示、类型标示、序号、媒体包长度、用户ID及FEC数据。FEC数据是所用媒体包异或的结果。其中,“UDP包头部标示、类型标示、序号、媒体包长度、用户ID” 为RTP头。
例如:0xC0,0x70,0x00,0x10,0x68,0x68,0x00,0x00,0x00,0x00,0x00,0x12 +FEC数据。其中,第1个字节“0xC0”是公共的数据头,用于过滤数据,第1个字节不为0xC0的数据包全部丢掉;第2个字节“0x70”用来区别是数据包的类型;第3、4个字节“0x00,0x10”是标示数据包的序号;第5、6、7、8个字节“0x68,0x68,0x00,0x00”表示媒体包长度;第9、10、11、12个字节“0x00,0x00,0x00,0x12” 都表示用户ID,占4个字节。
同时,通过向服务器发送心跳包,可让服务器维系链路,并且用来确认客户端是否意外掉电,死机等。所述心跳包的格式为:UDP包头部标示、类型标示、第一标识、第二标识及用户ID。其中,“UDP包头部标示、类型标示、第一标识、第二标识及用户ID”为RTP头。
例如:0xC0,0x58,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x12。其中,第1个字节“0xC0”是公共的数据头,用于过滤数据,第1个字节不为0xC0的数据包全部丢掉;第2个字节“0x58”用来区别是数据包的类型;第3、4个字节“0x00,0x00”无意义;第5、6、7、8个字节“0x00,0x00,0x00,0x00”无意义;第9、10、11、12个字节“0x00,0x00,0x00,0x12”都表示用户ID,占4个字节。
由上可知,本发明采用独特的TCP数据包格式(主长度信息字段、标志字段、可变字段及CRC字段)及UDP数据包格式(RTP头及实际数据),格式简单。同时,采用该格式形成独特的解包方式,提高响应速度。
以上所述是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围。

Claims (6)

1.一种基于PTT公网集群对讲***的数据传输方法,其特征在于,包括:
建立第一终端与第二终端之间的TCP连接;
所述第一终端向所述第二终端发送TCP数据包;
所述第二终端响应所述TCP数据包;
所述TCP数据包的格式为:主长度信息字段、标志字段、可变字段及CRC字段,所述主长度信息字段用于记录通信长度,所述标志字段用于标识使用命令类型,所述可变字段用于记录传输数据,所述CRC字段用于校验传输数据是否正确;所述通信长度为主长度信息字段的长度、标志字段的长度及可变字段的长度之和;
所述第一终端向所述第二终端发送UDP数据包,所述UDP数据包的格式为RTP头及实际数据;
所述第二终端响应TCP数据包的步骤包括:判断所述TCP数据包的主长度信息字段是否接收完毕;若所述主长度信息字段已接收完毕,则根据所述主长度信息字段计算所述TCP数据包的总长度;根据所述总长度判断所述TCP数据包的传输数据是否接收完毕;若所述传输数据已接收完毕,计算CRC值并判断所述CRC值与所述TCP数据包的CRC字段是否一致;若一致,则响应所述TCP数据包,若不一致,则丢弃所述TCP数据包。
2.如权利要求1所述的基于PTT公网集群对讲***的数据传输方法,其特征在于,所述主长度信息字段的长度为4个字节,所述标志字段的长度为1个字节,所述CRC字段的长度为4个字节。
3.如权利要求1所述的基于PTT公网集群对讲***的数据传输方法,其特征在于,所述UDP数据包包括语音数据包、FEC数据包及心跳包。
4.如权利要求3所述的基于PTT公网集群对讲***的数据传输方法,其特征在于,所述语音数据包的格式为:UDP包头部标示、类型标示、序号、时间戳、用户ID、帧标识、码率及语音数据。
5.如权利要求3所述的基于PTT公网集群对讲***的数据传输方法,其特征在于,所述FEC数据包的格式为:UDP包头部标示、类型标示、序号、媒体包长度、用户ID及FEC数据。
6.如权利要求3所述的基于PTT公网集群对讲***的数据传输方法,其特征在于,所述心跳包的格式为:UDP包头部标示、类型标示、第一标识、第二标识及用户ID。
CN201510754635.5A 2015-11-09 2015-11-09 一种基于ptt公网集群对讲***的数据传输方法 Active CN105323250B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510754635.5A CN105323250B (zh) 2015-11-09 2015-11-09 一种基于ptt公网集群对讲***的数据传输方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510754635.5A CN105323250B (zh) 2015-11-09 2015-11-09 一种基于ptt公网集群对讲***的数据传输方法

Publications (2)

Publication Number Publication Date
CN105323250A CN105323250A (zh) 2016-02-10
CN105323250B true CN105323250B (zh) 2019-02-05

Family

ID=55249845

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510754635.5A Active CN105323250B (zh) 2015-11-09 2015-11-09 一种基于ptt公网集群对讲***的数据传输方法

Country Status (1)

Country Link
CN (1) CN105323250B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107026713B (zh) * 2017-03-17 2018-04-10 广东蜂助手网络技术股份有限公司 一种在网络通讯包粘连的情况下提高网络速度的方法
CN111246402B (zh) * 2020-01-06 2021-07-20 四川大学 一种地空无线通话数字身份信息的调制和解调方法及装置
CN112187733A (zh) * 2020-09-09 2021-01-05 青岛海信移动通信技术股份有限公司 一种网络侧设备、终端及对讲方法
EP4373108A1 (en) * 2021-07-16 2024-05-22 Beijing Xiaomi Mobile Software Co., Ltd. Data transmission method, data transmission apparatus and storage medium

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102131187A (zh) * 2010-01-20 2011-07-20 北京迅光达通信技术有限公司 专网数字移动通信***及其通信方法
CN202455421U (zh) * 2011-11-25 2012-09-26 武汉钢铁(集团)公司 一种便携式无线ip对讲装置
CN204090065U (zh) * 2014-03-31 2015-01-07 成都达信通科技有限公司 Ptt传统集群和/或公网集群对讲装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102131187A (zh) * 2010-01-20 2011-07-20 北京迅光达通信技术有限公司 专网数字移动通信***及其通信方法
CN202455421U (zh) * 2011-11-25 2012-09-26 武汉钢铁(集团)公司 一种便携式无线ip对讲装置
CN204090065U (zh) * 2014-03-31 2015-01-07 成都达信通科技有限公司 Ptt传统集群和/或公网集群对讲装置

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
PTT/POC技术综述;徐童,廖建新;《电信工程技术与标准化》;20040531;全文
TCP报文格式;Sean-zhou;《http://blog.csdn.net/a19881029/article/details/29557837》;20140610;第1-2页
基于GP RS的PoC***的设计与实现;凌中华,王纯,李陆,廖建新;《工程与设计》;20070228;全文

Also Published As

Publication number Publication date
CN105323250A (zh) 2016-02-10

Similar Documents

Publication Publication Date Title
CN105323250B (zh) 一种基于ptt公网集群对讲***的数据传输方法
JP5084842B2 (ja) 無線通信ネットワークにおける改良されたヘッダ圧縮
CN101156396B (zh) 一种数据帧的传输处理方法和***
TW200423638A (en) Packet compression system, packet restoration system, packet compression method, and packet restoration method
CN105578491A (zh) 一种4g用户信息与应用数据关联的方法及装置
WO2020078324A1 (zh) 用于测量时延的方法和装置
CN110536415B (zh) 一种nas消息的处理方法、集群终端和集群核心网
CN101778244B (zh) 一种无线视频会议***及加入普通语音用户的方法
CN107241166A (zh) 一种长期演进上的语音Volte数据保障方法和设备
AU2019443141A1 (en) Wireless communication method and apparatus
CN101257456A (zh) 提高压缩报文转发性能的方法及装置
WO2015117297A1 (zh) 协同通信的客服方法及客服***
CN103607264A (zh) 基于3g网络的带内数据传输方法
CN102355713B (zh) 语音通信中的呼叫方法及移动终端
TWI381687B (zh) 在無線通訊系統中有效的支援VoIP所用之裝置及方法
US10389588B2 (en) Method and system for processing uplink and downlink network data, and electronic device
EP3185505B1 (en) Data packet transmission processing method and device
CN102238164A (zh) 面向ip电信网的多协议报文适配方法
CN102118356A (zh) 一种报文发送方法和发送装置
WO2012048540A1 (zh) 传输数据的方法、***及终端
CN101534297A (zh) 一种实现流控制传输协议的动态流创建方法
CN101827333A (zh) 手机浏览器后台服务器数据处理方法
CN109479071A (zh) 一种网络电话的处理方法及相关网络设备
CN106375615A (zh) 一种基于呼叫转移的网络电话
US8331356B2 (en) Method, apparatus and system for transmitting a global text telephone signal

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant