CN105323250B - 一种基于ptt公网集群对讲***的数据传输方法 - Google Patents
一种基于ptt公网集群对讲***的数据传输方法 Download PDFInfo
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0056—Systems characterized by the type of code used
- H04L1/0061—Error detection codes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/06—Selective distribution of broadcast services, e.g. multimedia broadcast multicast service [MBMS]; Services to user groups; One-way selective calling services
- H04W4/10—Push-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(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。
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)
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)
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传统集群和/或公网集群对讲装置 |
-
2015
- 2015-11-09 CN CN201510754635.5A patent/CN105323250B/zh active Active
Patent Citations (3)
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)
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 |