CN112910658B - 一种数据包传输方法和提供tcp代理服务的方法、装置 - Google Patents

一种数据包传输方法和提供tcp代理服务的方法、装置 Download PDF

Info

Publication number
CN112910658B
CN112910658B CN202110143820.6A CN202110143820A CN112910658B CN 112910658 B CN112910658 B CN 112910658B CN 202110143820 A CN202110143820 A CN 202110143820A CN 112910658 B CN112910658 B CN 112910658B
Authority
CN
China
Prior art keywords
control word
data packet
receiving end
type
buffer area
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
CN202110143820.6A
Other languages
English (en)
Other versions
CN112910658A (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.)
Individual
Original Assignee
Individual
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 Individual filed Critical Individual
Priority to CN202110143820.6A priority Critical patent/CN112910658B/zh
Publication of CN112910658A publication Critical patent/CN112910658A/zh
Application granted granted Critical
Publication of CN112910658B publication Critical patent/CN112910658B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/321Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority
    • H04L9/3213Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving a third party or a trusted authority using tickets or tokens, e.g. Kerberos
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/141Setup of application sessions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • 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]
    • H04L69/163In-band adaptation of TCP data exchange; In-band control procedures
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/70Reducing energy consumption in communication networks in wireless communication networks

Landscapes

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

Abstract

本发明公开了一种数据包传输方法,方法应用于无线网络,方法包括:接收端根据接收到的当前数据包的第一控制字的类型,对接收端发送缓存区中的数据包进行更新;接收端确定当前数据包的第一控制字的token和上一数据包的第一控制字的token是否相同,以确定是否丢弃当前数据包;接收端根据当前数据包的第二控制字的类型和接收端发送缓冲区中的数据状态,确定接收端是否有数据发送至发送端,以在接收端有数据发送至发送端时,将接收端发送缓冲区中的第一控制字、第二控制字和数据打包并发送给发送端。本发明还提供了一种提供TCP代理服务的方法和装置。本发明可以实现不同低速率、低功耗无线网络中的数据的有效统一和TCP服务。

Description

一种数据包传输方法和提供TCP代理服务的方法、装置
技术领域
本发明涉及无线网络技术领域,具体而言,涉及一种数据包传输方法和提供TCP代理服务的方法、装置。
背景技术
相关技术中,在利用Zigbee、Thread、蓝牙、LoRa等低速、低功耗无线技术实现的无线网络中,有些网络无法提供可靠的传输技术,导致不同低速率、低功耗无线网络中的接口和数据的有效性不统一。
发明内容
为解决上述问题,本发明的目的在于提供一种数据包传输方法和提供TCP代理服务的方法、装置,可以实现不同低速率、低功耗无线网络中的数据的有效统一。
本发明提供了一种数据包传输方法,所述方法应用于无线网络,所述方法包括:
接收端根据接收到的当前数据包的第一控制字的类型,对接收端发送缓存区中的数据包进行更新;
所述接收端确定所述当前数据包的第一控制字的token和上一数据包的第一控制字的token是否相同,以确定是否丢弃所述当前数据包;
所述接收端根据所述当前数据包的第二控制字的类型和所述接收端发送缓冲区中的数据状态,确定所述接收端是否有数据发送至发送端,以在所述接收端有数据发送至所述发送端时,将所述接收端发送缓冲区中的第一控制字、第二控制字和数据打包并发送给所述发送端;
其中,所述接收端为网关或节点,所述发送端为节点或网关,所述接收端和所述发送端之间传输的数据包的数据帧结构包括第一控制字和第二控制字,其中,所述第一控制字包括类型和token,所述第二控制字包括类型和token。
作为本发明进一步的改进,所述接收端根据接收到的当前数据包的第一控制字的类型,对接收端发送缓存区中的数据包进行更新,包括:
所述接收端确定所述当前数据包的第一控制字的类型是否为回复类型;
当所述当前数据包的第一控制字的类型为回复类型时,将所述接收端发送缓存区中第一控制字的类型更新为回复类型,并将所述接收端发送缓存区中第一控制字的token更新为所述当前数据包的第一控制字的token;
当所述当前数据包的第一控制字的类型为空类型时,将所述接收端发送缓存区中第一控制字的类型更新为空类型,并将所述接收端发送缓存区中第一控制字的token更新为所述当前数据包的第一控制字的token。
作为本发明进一步的改进,所述接收端确定所述当前数据包的第一控制字的token和上一数据包的第一控制字的token是否相同,以确定是否丢弃所述当前数据包,包括:
所述接收端确定所述当前数据包的第一控制字和上一数据包的第一控制字是否相同;
当所述当前数据包的第一控制字和上一数据包的第一控制字相同时,所述当前数据包为重复数据包,丢弃所述当前数据包;
当所述当前数据包的第一控制字和上一数据包的第一控制字不相同时,将所述当前数据包传递给上层应用。
作为本发明进一步的改进,所述接收端根据所述当前数据包的第二控制字的类型和所述接收端发送缓冲区中的数据状态,确定所述接收端是否有数据发送至发送端,以在所述接收端有数据发送至所述发送端时,将所述接收端发送缓冲区中的第一控制字、第二控制字和数据打包并发送给所述发送端,包括:
所述接收端确定所述当前数据包的第二控制字的类型是否为回复类型且所述发送缓冲区中的数据是否为非空;
当所述当前数据包的第二控制字的类型为回复类型且所述接收端发送缓冲区中的数据非空时,所述接收端将所述接收端发送缓冲区中第二控制字的token加1,并清空所述接收端发送缓冲区中的数据;
当所述当前数据包的第二控制字的类型为空类型且所述发送缓冲区中的数据为非空时,所述接收端确定所述接收端发送缓冲区中有数据发向发送端,所述接收端将所述接收端发送缓冲区中第二控制字的类型设定为回复类型,并将所述接收端发送缓冲区中的第一控制字、第二控制字和数据打包并发送给所述发送端;
当所述当前数据包的第二控制字的类型为空类型且所述接收端发送缓冲区中的数据为空时,所述接收端确定所述接收端发送缓冲区中没有数据发向所述发送端。
作为本发明进一步的改进,所述方法还包括:
在所述接收端确定所述接收端发送缓冲区中没有数据发向所述发送端时,所述接收端确定所述接收端发送缓冲区中第一控制字的类型是否为回复类型;
在所述接收端发送缓冲区中第一控制字的类型为回复类型时,所述接收端将所述接收端发送缓冲区中的数据设定为空,将所述接收端发送缓冲区中第二控制字的类型设定为空类型,并将所述接收端发送缓冲区中的第一控制字、第二控制字和数据打包并发送给所述发送端。
本发明还提供了一种提供TCP代理服务的方法,所述方法包括:
通过网关建立节点和TCP服务器之间的TCP连接;
在TCP连接成功后,所述节点通过所述网关向所述TCP服务器发送数据包;
在所述数据包发送完成后,通过所述网关断开所述节点与所述TCP服务器之间的TCP连接;
其中,所述节点和所述网关之间采用所述的数据包传输方法,实现所述节点和所述网关之间的数据包传输,所述网关和所述TCP服务器之间传输TCP数据包。
作为本发明进一步的改进,所述通过网关建立节点和TCP服务器之间的TCP连接,包括:
所述网关向所述TCP服务器发起TCP连接请求;
所述TCP服务器向所述网关返回TCP连接建立成功;
所述网关通过所述数据包传输方法向所述节点返回TCP连接建立成功事件。
作为本发明进一步的改进,所述在TCP连接成功后,所述节点通过所述网关向所述TCP服务器发送数据包,包括:
所述节点通过所述数据包传输方法向网关发送数据包;
所述网关向所述TCP服务器发送TCP数据包;
所述TCP服务器向所述网关返回TCP数据包;
所述网关通过所述数据包传输方法向所述节点返回数据包。
作为本发明进一步的改进,所述在所述数据包发送完成后,通过所述网关断开所述节点与所述TCP服务器之间的TCP连接,包括:
所述节点通过所述数据包传输方法向所述网关发送TCP断开连接指令;
所述网关向所述TCP服务器断开TCP连接;
所述网关通过所述数据包传输方法所述向节点返回TCP断开连接成功事件。
作为本发明进一步的改进,所述TCP数据包采用HexString格式,所述TCP数据包大小的最大值为无线网络中最大数据包大小的两倍。
本发明还提供了一种提供TCP代理服务的装置,所述装置包括网关、网络接口和无线组网模块,
其中,在所述网关的操作系统上运行所述的提供TCP代理服务的方法。
本发明还提供了一种电子设备,包括存储器和处理器,其特征在于,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被处理器执行以实现所述的数据包传输方法。
本发明还提供了一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行以实现所述的数据包传输方法。
本发明的有益效果为:
本发明所述的数据包传输方法,可应用于多种无线网络(包括不可靠传输的无线网络),例如Zigbee、Thread、蓝牙、LoRa、或其他无线网络中,屏蔽掉不同无线网络中的接口和数据的有效性不统一问题,以在不同无线网络中实现统一接口数据的可靠传输。
本发明所述提供TCP代理服务的方法舍弃了对IP层的原生支持,只使用TCP代理实现在不同无线网络中的TCP/IP协议支持。
本发明所述提供TCP代理服务的装置可以可靠、有效和低成本的为低速率、低功耗的无线网络提供TCP服务。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明一示例性实施例所述的一种数据包传输方法的流程示意图;
图2为本发明一示例性实施例所述的网关收发数据包的流程示意图;
图3为本发明一示例性实施例所述的一种提供TCP代理服务的方法的流程示意图;
图4为本发明一示例性实施例所述的一种提供TCP代理服务的装置的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明,若本发明实施例中有涉及方向性指示(诸如上、下、左、右、前、后……),则该方向性指示仅用于解释在某一特定姿态(如附图所示)下各部件之间的相对位置关系、运动情况等,如果该特定姿态发生改变时,则该方向性指示也相应地随之改变。
另外,在本发明的描述中,所用术语仅用于说明目的,并非旨在限制本发明的范围。术语“包括”和/或“包含”用于指定所述元件、步骤、操作和/或组件的存在,但并不排除存在或添加一个或多个其他元件、步骤、操作和/或组件的情况。术语“第一”、“第二”等可能用于描述各种元件,不代表顺序,且不对这些元件起限定作用。此外,在本发明的描述中,除非另有说明,“多个”的含义是两个及两个以上。这些术语仅用于区分一个元素和另一个元素。结合以下附图,这些和/或其他方面变得显而易见,并且,本领域普通技术人员更容易理解关于本发明所述实施例的说明。附图仅出于说明的目的用来描绘本发明所述实施例。本领域技术人员将很容易地从以下说明中认识到,在不背离本发明所述原理的情况下,可以采用本发明所示结构和方法的替代实施例。
本发明实施例所述的一种数据包传输方法,所述方法应用于无线网络,如图1所示,所述方法包括:
接收端根据接收到的当前数据包的第一控制字的类型,对接收端发送缓存区中的数据包进行更新;
所述接收端确定所述当前数据包的第一控制字的token和上一数据包的第一控制字的token是否相同,以确定是否丢弃所述当前数据包;
所述接收端根据所述当前数据包的第二控制字的类型和所述接收端发送缓冲区中的数据状态,确定所述接收端是否有数据发送至发送端,以在所述接收端有数据发送至所述发送端时,将所述接收端发送缓冲区中的第一控制字、第二控制字和数据打包并发送给所述发送端;
其中,所述接收端为网关或节点,所述发送端为节点或网关,所述接收端和所述发送端之间传输的数据包的数据帧结构包括第一控制字和第二控制字,其中,所述第一控制字包括类型和token,所述第二控制字包括类型和token。
目前,有些无线网络采用的是比如Zigbee、Thread、蓝牙、LoRa等其他低速无线技术,这些网络具有低功耗和低速率的特点,但部分无线网络无法提供可靠的传输技术(无法实现例如TCP协议的可靠传输),导致不同无线网络中的接口和数据的有效性不统一。本发明所述的数据包传输方法,可应用于多种无线网络(包括不可靠传输的无线网络),例如Zigbee、Thread、蓝牙、LoRa、或其他无线网络中,屏蔽掉不同无线网络中的接口和数据的有效性不统一问题,以在不同无线网络中实现统一接口数据的可靠传输。
可以理解的是,本发明所述的数据包传输方法,运行在网关端和节点端中,数据包在网关端和节点端之间传输,例如发送端为网关时,接收端为节点,再如发送端为节点时,接收端为网关。网关发送至节点的数据包,节点发送至网关的数据包使用相同的数据帧结构。对于有中继或路由器或同等作用的装置,只需转数据包即可,无需对数据包进行解析,这里的数据包即为前述使用相同的数据帧结构的数据包。
还可以理解的是,数据包的数据帧结构包括:第一控制字和第二控制字。其中,第一控制字的大小为1byte,用于发送端发向接收端的数据包的发送、确认和去重,第二控制字的大小为1byte,用于接收端向节点发送数据包的发送、确认和去重。其中,第一控制字包括类型和token(令牌),第一控制字的类型的大小为4bits,用于指示token的类型,包括回复类型和空类型,其中回复类型指token需要回复,空类型指token不需要回复;token的大小为4bits,用于数据包的消息确认和去重。第二控制字包括类型和token(令牌),第二控制字的类型的大小为4bits,用于指示token的类型,包括回复类型和空类型,其中回复类型指token需要回复,空类型指token不需要回复;token的大小为4bits,用于数据包的消息确认和去重。本发明定义了数据包的数据帧结构,具有低开销的特点,并可在网关和节点之间进行双向通讯。
一种可选的实施方式中,接收端根据接收到的当前数据包的第一控制字的类型,对接收端发送缓存区中的数据包进行更新,包括:
所述接收端确定所述当前数据包的第一控制字的类型是否为回复类型;
当所述当前数据包的第一控制字的类型为回复类型时,将所述接收端发送缓存区中第一控制字的类型更新为回复类型,并将所述接收端发送缓存区中第一控制字的token更新为所述当前数据包的第一控制字的token;
当所述当前数据包的第一控制字的类型为空类型时,将所述接收端发送缓存区中第一控制字的类型更新为空类型,并将所述接收端发送缓存区中第一控制字的token更新为所述当前数据包的第一控制字的token。
一种可选的实施方式中,所述接收端确定所述当前数据包的第一控制字的token和上一数据包的第一控制字的token是否相同,以确定是否丢弃所述当前数据包,包括:
所述接收端确定所述当前数据包的第一控制字和上一数据包的第一控制字是否相同;
当所述当前数据包的第一控制字和上一数据包的第一控制字相同时,所述当前数据包为重复数据包,丢弃所述当前数据包;
当所述当前数据包的第一控制字和上一数据包的第一控制字不相同时,将所述当前数据包传递给上层应用。
一种可选的实施方式中,所述接收端根据所述当前数据包的第二控制字的类型和所述接收端发送缓冲区中的数据状态,确定所述接收端是否有数据发送至发送端,以在所述接收端有数据发送至所述发送端时,将所述接收端发送缓冲区中的第一控制字、第二控制字和数据打包并发送给所述发送端,包括:
所述接收端确定所述当前数据包的第二控制字的类型是否为回复类型且所述发送缓冲区中的数据是否为非空;
当所述当前数据包的第二控制字的类型为回复类型且所述接收端发送缓冲区中的数据非空时,所述接收端将所述接收端发送缓冲区中第二控制字的token加1,并清空所述接收端发送缓冲区中的数据;
当所述当前数据包的第二控制字的类型为空类型且所述发送缓冲区中的数据为非空时,所述接收端确定所述接收端发送缓冲区中有数据发向发送端,所述接收端将所述接收端发送缓冲区中第二控制字的类型设定为回复类型,并将所述接收端发送缓冲区中的第一控制字、第二控制字和数据打包并发送给所述发送端;
当所述当前数据包的第二控制字的类型为空类型且所述接收端发送缓冲区中的数据为空时,所述接收端确定所述接收端发送缓冲区中没有数据发向所述发送端。
一种可选的实施方式中,所述方法还包括:
在所述接收端确定所述接收端发送缓冲区中没有数据发向所述发送端时,所述接收端确定所述接收端发送缓冲区中第一控制字的类型是否为回复类型;
在所述接收端发送缓冲区中第一控制字的类型为回复类型时,所述接收端将所述接收端发送缓冲区中的数据设定为空,将所述接收端发送缓冲区中第二控制字的类型设定为空类型,并将所述接收端发送缓冲区中的第一控制字、第二控制字和数据打包并发送给所述发送端。
一种可选的实施方式中,所述接收端在没有收到数据包时,检查发送定时器是否超时,如果超时,所述接收端清零发送定时器,并确定所述接收端发送缓冲区中的数据是否为非空,如果没有超时,所述接收端重新确定是否有接收到数据包。
网关和节点是对等实体,网关或节点的数据包传输采用相同的方法,以网关收发数据包为例进行说明,如图2所示,所述数据包传输方法包括:
S1,网关如果收到数据包后,检查收到的数据包的第一控制字(以下用Message控制字表示);
如果Message控制字的类型是回复类型,网关更新接收端发送缓存区的Message控制字的类型为回复类型,网关更新接收端发送缓存区的Message控制字的token为刚收到的Message控制字的token;
如果Message控制字的类型是空类型,网关更新接收端发送缓存区的Message控制字的类型为空类型,网关更新接收端发送缓存区的Message控制字的token为刚收到的Message控制字的token;
其中,网关如果没有收到数据包,网关检查发送定时器是否超时,如果没超时,网关重复步骤S1,如果超时,网关清零发送定时器,并跳转到步骤S4;
S2,网关检查本次收到的数据包的Message控制字的token,和上次收到的数据包的Message控制字的token是否相同,如果相同,则本次收到的数据包为重复数据包,丢弃收到的数据包,如果不同,则确定为收到新数据包,将收到的数据包传递给上层应用;
S3,网关检查收到的数据包的第二控制字(以下用Command控制字表示)的类型是否为回复类型和网关的接收端发送缓存区是否为非空;
如果同时满足,则网关确定上次发送的数据成功,将接收端发送缓存区中的Command控制字的token加1,网关清空接收端发送缓存区数据;
如果同时不满足,则网关检查接收端发送缓存区的数据是否为空,如果为空,则继续步骤S4,如果不为空,则网关打包接收端发送缓存区的Command控制字,Message控制字和数据发送给相应的节点,并回到步骤S1重新开始;
S4,如果网关检查没有数据发向节点,网关检查接收端发送缓存区的Message控制字是回复类型时,网关设定接收端发送缓存区的数据为空,网关设定Command控制字为空类型(不需要回复类型),网关打包接收端发送缓存区的Command控制字,Message控制字和数据发送给相应的节点,并回到步骤S1重新开始;如果网关检查接收端发送缓存区的Message控制字不是回复类型,网关回到步骤S1重新开始;
如果网关检查有数据发向节点,网关设定Command控制字为回复类型,网关打包接收端发送缓存区的Command控制字、Message控制字和数据发送给相应的节点,并回到步骤S1重新开始。
本发明实施方式所述的数据包传输方法可以理解为是一种DL协议,可以将网关向节点发送的数据包定义为Command数据包,节点发向网关的数据包定义为Message数据包,Command数据包和Message数据包使用相同的数据帧结构,具体数据帧结构如下:
Figure BDA0002930229150000101
类型:用于指示token的类型:token类型:需要回复的token,不需要回复的token(空类型token)。
Token:用于Command数据包或Message数据包的消息确认和去重。
Command控制字:用于Command数据包的发送、确认和去重。
Message控制字:用于Message数据包的发送、确认和去重。
本发明实施例所述的一种提供TCP代理服务的方法,所述方法包括:
通过网关建立节点和TCP服务器之间的TCP连接;
在TCP连接成功后,所述节点通过所述网关向所述TCP服务器发送数据包;
在所述数据包发送完成后,通过所述网关断开所述节点与所述TCP服务器之间的TCP连接;
其中,所述节点和所述网关之间采用前述实施方式所述的数据包传输方法,实现所述节点和所述网关之间的数据包传输,所述网关和所述TCP服务器之间传输TCP数据包。
目前,我们常见的无线网络例如为WIFI、3G、4G、5G等无线网络,这些网络提供了原生的TCP/IP支持。这些无线网络具有高传输速率、高功耗的特点,可以支撑TCP/IP网络。然而有些无线网络采用的是比如Zigbee、Thread、蓝牙、LoRa等其他低速无线技术,这些网络具有低功耗和低速率的特点,无法支撑现有的TCP/IP网络。在有些采用Zigbee、Thread类协议的无线网络,使用6LowPAN技术可以支持精简版本的TCP/IPv6协议,但无法同时支持TCP/IPv4和TCP/IPv6。
由于低速率、低功耗的无线网络中,数据包的大小和数据包的收发频次都非常有限。而TCP/IP协议的数据包比较大。为了能在低速、低功耗的无线网络更好的使用TCP/IP协议,本发明舍弃了对IP层的原生支持,只使用TCP代理技术,来支持TCP/IP协议。
可以理解的是,本发明所述提供TCP代理服务的方法可以将低速率、低功耗的无线网络中节点的数据包转换成TCP数据包,通过网关发送给节点指定的TCP服务器,也可以将来自TCP服务器的TCP数据包转换成低速率、低功耗的无线网络中的数据包发送给相应的节点。
一种可选的实施方式,所述通过网关建立节点和TCP服务器之间的TCP连接,包括:
所述网关向所述TCP服务器发起TCP连接请求;
所述TCP服务器向所述网关返回TCP连接建立成功;
所述网关通过所述数据包传输方法向所述节点返回TCP连接建立成功事件。
一种可选的实施方式中,所述在TCP连接成功后,所述节点通过所述网关向所述TCP服务器发送数据包,包括:
所述节点通过所述数据包传输方法向网关发送数据包;
所述网关向所述TCP服务器发送TCP数据包;
所述TCP服务器向所述网关返回TCP数据包;
所述网关通过所述数据包传输方法向所述节点返回数据包。
可以理解的是,节点通过DL协议把无线网络中的数据包发送给网关后,该数据包在网关端被转换成TCP数据包并发送至TCP服务器,TCP服务器返回网关的TCP数据包在网关端被转换成无线网络中的数据包并发送至节点。
一种可选的实施方式中,所述在所述数据包发送完成后,通过所述网关断开所述节点与所述TCP服务器之间的TCP连接,包括:
所述节点通过所述数据包传输方法向所述网关发送TCP断开连接指令;
所述网关向所述TCP服务器断开TCP连接;
所述网关通过所述数据包传输方法所述向节点返回TCP断开连接成功事件。
一种可选的实施方式中,所述TCP数据包采用HexString格式,所述TCP数据包大小的最大值为无线网络中最大数据包大小的两倍。
TCP原本是流格式,而低速率、低功耗的无线网络支持数据包,不支持数据流,本发明在TCP数据流上定义一种TCP数据包。该TCP数据包格式:HexString格式+换行,TCP数据包大小的最大值是低速率、低功耗的无线网络最大数据包大小的2倍。因为TCP中使用HexString数据,而低速率、低功耗的无线网络使用二进制数据,HexString数据正好是进制数据的2倍。对TCP数据包重新定义后,可以在直接使用TCP代理时更好的适用于低速率、低功耗的无线网络。
TCP代理服务是为低速率、低功耗的无线网络中的节点提供TCP的连接能力。本发明中的TCP代理服务,只为节点提供TCP客户端的代理能力,不能提供TCP服务端的代理能力。也就是说低速率、低功耗的无线网络中的节点只能是TCP客户端,不能是TCP服务端。TCP代理服务运行在网关端,将TCP的事件和数据(TCP数据包)通过前述实施方式所述的数据包传输方法(DL协议)传递给节点。节点的数据和事件(TCP数据包)也通过前述实施方式所述的数据包传输方法(DL协议)传输给网关,网关将该节点的数据和事件(TCP数据包)交给TCP服务器处理。本发明所述TCP代理服务器定义了:TCP建立连接、TCP断开连接,TCP发送数据等操作接口,也定义了:TCP连接建立成功、TCP连接建立失败、TCP接收到数据、TCP接收数据异常等事件。
如图3所示,所述提供TCP代理服务的方法的具体实现流程包括:
节点通过DL协议向网关发送TCP建立连接指令,例如TCP连接IP:192.168.1.8,端口8000;
网关向TCP服务器发起TCP连接请求;
TCP服务器向网关返回TCP连接建立成功;
网关通过DL协议向节点返回TCP连接建立成功事件;
节点通过DL协议向网关发送数据包,例如:节点发送hello;
网关向TCP服务器发送TCP数据包,例如:网关发送hello;
TCP服务器向网关返回TCP数据包,例如:TCP服务器返回world;
网关通过DL协议向节点返回数据包,例如:节点收到world;
节点通过DL协议向网关发送TCP断开连接指令;
网关向TCP服务器断开TCP连接;
网关通过DL协议向节点返回TCP断开连接成功事件,例如:节点收到world。
本发明实施方式所述的一种提供TCP代理服务的装置,所述装置包括网关、网络接口和无线组网模块,
其中,在所述网关的操作系统上运行所述的提供TCP代理服务的方法。
如图4所示,所述装置具有MPU(应用处理器),即网关端,该MPU上例如可以运行Linux或Unix等操作系统,在操作系统之上运行所述的一种提供TCP代理服务的方法,包括所述数据包传输方法。所述装置还包括网络接口(网口、WIFI、或4G等蜂窝模块)、无线组网模块(Zigbee、蓝牙、Lora或其他无线组网技术构成的组网模块)。本发明所述装置可以将低速率、低功耗的无线网络中节点的数据包转换成TCP数据包,通过网关发送给节点指定的TCP服务器,也可以将来自TCP服务器的TCP数据包转换成低速率、低功耗的无线网络中的数据包发送给相应的节点。该装置可以为节点提供TCP能力,装置中的网关可以为节点提供非TCP数据的传输能力。
本公开还涉及一种电子设备,包括服务器、终端等。该电子设备包括:至少一个处理器;与至少一个处理器通信连接的存储器;以及与存储介质通信连接的通信组件,所述通信组件在处理器的控制下接收和发送数据;其中,存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行以实现上述实施例中的数据包传输方法。
在一种可选的实施方式中,存储器作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块。处理器通过运行存储在存储器中的非易失性软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现数据包传输方法。
存储器可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储选项列表等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至外接设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
一个或者多个模块存储在存储器中,当被一个或者多个处理器执行时,执行上述任意数据包传输方法实施例中的数据包传输方法。
上述产品可执行本申请实施例所提供的数据包传输方法,具备执行数据包传输方法相应的功能模块和有益效果,未在本实施例中详尽描述的技术细节,可参见本申请实施例所提供的数据包传输方法。
本公开还涉及一种计算机可读存储介质,用于存储计算机可读程序,所述计算机可读程序用于供计算机执行上述部分或全部的数据包传输方法实施例。
即,本领域技术人员可以理解,实现上述实施例数据包传输方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各实施例所述数据包传输方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的数据包传输方法、结构和技术,以便不模糊对本说明书的理解。
此外,本领域普通技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本领域技术人员应理解,尽管已经参考示例性实施例描述了本发明,但是在不脱离本发明的范围的情况下,可进行各种改变并可用等同物替换其元件。另外,在不脱离本发明的实质范围的情况下,可进行许多修改以使特定情况或材料适应本发明的教导。因此,本发明不限于所公开的特定实施例,而是本发明将包括落入所附权利要求范围内的所有实施例。

Claims (7)

1.一种数据包传输方法,其特征在于,所述方法应用于无线网络,所述方法包括:
接收端根据接收到的当前数据包的第一控制字的类型,对接收端发送缓存区中的数据包进行更新;包括:
所述接收端确定所述当前数据包的第一控制字的类型是否为回复类型;
当所述当前数据包的第一控制字的类型为回复类型时,将所述接收端发送缓存区中第一控制字的类型更新为回复类型,并将所述接收端发送缓存区中第一控制字的token更新为所述当前数据包的第一控制字的token;
当所述当前数据包的第一控制字的类型为空类型时,将所述接收端发送缓存区中第一控制字的类型更新为空类型,并将所述接收端发送缓存区中第一控制字的token更新为所述当前数据包的第一控制字的token;
所述接收端确定所述当前数据包的第一控制字的token和上一数据包的第一控制字的token是否相同,以确定是否丢弃所述当前数据包;
所述接收端根据所述当前数据包的第二控制字的类型和所述接收端发送缓冲区中的数据状态,确定所述接收端是否有数据发送至发送端,以在所述接收端有数据发送至所述发送端时,将所述接收端发送缓冲区中的第一控制字、第二控制字和数据打包并发送给所述发送端;包括:
所述接收端确定所述当前数据包的第二控制字的类型是否为回复类型且所述发送缓冲区中的数据是否为非空;
当所述当前数据包的第二控制字的类型为回复类型且所述接收端发送缓冲区中的数据非空时,所述接收端将所述接收端发送缓冲区中第二控制字的token加1,并清空所述接收端发送缓冲区中的数据;
当所述当前数据包的第二控制字的类型为空类型且所述发送缓冲区中的数据为非空时,所述接收端确定所述接收端发送缓冲区中有数据发向发送端,所述接收端将所述接收端发送缓冲区中第二控制字的类型设定为回复类型,并将所述接收端发送缓冲区中的第一控制字、第二控制字和数据打包并发送给所述发送端;
当所述当前数据包的第二控制字的类型为空类型且所述接收端发送缓冲区中的数据为空时,所述接收端确定所述接收端发送缓冲区中没有数据发向所述发送端,所述接收端确定所述接收端发送缓冲区中第一控制字的类型是否为回复类型;在所述接收端发送缓冲区中第一控制字的类型为回复类型时,所述接收端将所述接收端发送缓冲区中的数据设定为空,将所述接收端发送缓冲区中第二控制字的类型设定为空类型,并将所述接收端发送缓冲区中的第一控制字、第二控制字和数据打包并发送给所述发送端;
其中,所述接收端为网关或节点,所述发送端为节点或网关,所述接收端和所述发送端之间传输的数据包的数据帧结构包括第一控制字和第二控制字,其中,所述第一控制字包括类型和token,所述第二控制字包括类型和token。
2.如权利要求1所述的方法,其中,所述接收端确定所述当前数据包的第一控制字的token和上一数据包的第一控制字的token是否相同,以确定是否丢弃所述当前数据包,包括:
所述接收端确定所述当前数据包的第一控制字和上一数据包的第一控制字是否相同;
当所述当前数据包的第一控制字和上一数据包的第一控制字相同时,所述当前数据包为重复数据包,丢弃所述当前数据包;
当所述当前数据包的第一控制字和上一数据包的第一控制字不相同时,将所述当前数据包传递给上层应用。
3.一种提供TCP代理服务的方法,其特征在于,所述方法包括:
通过网关建立节点和TCP服务器之间的TCP连接;
在TCP连接成功后,所述节点通过所述网关向所述TCP服务器发送数据包;
在所述数据包发送完成后,通过所述网关断开所述节点与所述TCP服务器之间的TCP连接;
其中,所述节点和所述网关之间采用如权利要求1-2中任意一项所述的方法,实现所述节点和所述网关之间的数据包传输,所述网关和所述TCP服务器之间传输TCP数据包。
4.如权利要求3所述的方法,其中,所述TCP数据包采用HexString格式,所述TCP数据包大小的最大值为无线网络中最大数据包大小的两倍。
5.一种提供TCP代理服务的装置,其特征在于,所述装置包括网关、网络接口和无线组网模块,
其中,在所述网关的操作系统上运行如权利要求3或4中任意一项所述的提供TCP代理服务的方法。
6.一种电子设备,包括存储器和处理器,其特征在于,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被处理器执行以实现如权利要求1-2中任一项所述的方法。
7.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行以实现如权利要求1-2中任一项所述的方法。
CN202110143820.6A 2021-02-02 2021-02-02 一种数据包传输方法和提供tcp代理服务的方法、装置 Active CN112910658B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110143820.6A CN112910658B (zh) 2021-02-02 2021-02-02 一种数据包传输方法和提供tcp代理服务的方法、装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110143820.6A CN112910658B (zh) 2021-02-02 2021-02-02 一种数据包传输方法和提供tcp代理服务的方法、装置

Publications (2)

Publication Number Publication Date
CN112910658A CN112910658A (zh) 2021-06-04
CN112910658B true CN112910658B (zh) 2022-07-12

Family

ID=76121454

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110143820.6A Active CN112910658B (zh) 2021-02-02 2021-02-02 一种数据包传输方法和提供tcp代理服务的方法、装置

Country Status (1)

Country Link
CN (1) CN112910658B (zh)

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1549539A (zh) * 1998-12-28 2004-11-24 ��ʽ����NTT�ſ�Ī 通信控制方法、通信方法、服务器设备、终端装置、中继设备和通信系统
CN1889529A (zh) * 2006-07-28 2007-01-03 华为技术有限公司 一种数据的传输方法和装置
WO2012162968A1 (zh) * 2011-08-30 2012-12-06 华为技术有限公司 控制数据传输的方法、装置和系统
CN103929681A (zh) * 2014-04-09 2014-07-16 安徽超远信息技术有限公司 一种提升低速网络中rtp视频流处理效率的方法
CN106936730A (zh) * 2015-12-30 2017-07-07 华为技术有限公司 一种报文发送方法、tcp代理以及tcp客户端
CN107508907A (zh) * 2017-09-13 2017-12-22 北京明朝万达科技股份有限公司 一种数据传输方法及装置
CN109039551A (zh) * 2018-08-22 2018-12-18 苏州凌犀物联网技术有限公司 一种Lora报文重装异常处理方法、发送端及接收端
CN109587733A (zh) * 2019-01-18 2019-04-05 苏州德姆斯信息技术有限公司 低功耗无线通讯传输方法
CN110035112A (zh) * 2019-01-15 2019-07-19 广东交通职业技术学院 一种无线网络环境中的tcp协议双端代理加速系统与方法
CN111277580A (zh) * 2020-01-15 2020-06-12 北京航空航天大学 节点数据发送方法、接收方法以及传输方法

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1549539A (zh) * 1998-12-28 2004-11-24 ��ʽ����NTT�ſ�Ī 通信控制方法、通信方法、服务器设备、终端装置、中继设备和通信系统
CN1889529A (zh) * 2006-07-28 2007-01-03 华为技术有限公司 一种数据的传输方法和装置
WO2012162968A1 (zh) * 2011-08-30 2012-12-06 华为技术有限公司 控制数据传输的方法、装置和系统
CN103929681A (zh) * 2014-04-09 2014-07-16 安徽超远信息技术有限公司 一种提升低速网络中rtp视频流处理效率的方法
CN106936730A (zh) * 2015-12-30 2017-07-07 华为技术有限公司 一种报文发送方法、tcp代理以及tcp客户端
CN107508907A (zh) * 2017-09-13 2017-12-22 北京明朝万达科技股份有限公司 一种数据传输方法及装置
CN109039551A (zh) * 2018-08-22 2018-12-18 苏州凌犀物联网技术有限公司 一种Lora报文重装异常处理方法、发送端及接收端
CN110035112A (zh) * 2019-01-15 2019-07-19 广东交通职业技术学院 一种无线网络环境中的tcp协议双端代理加速系统与方法
CN109587733A (zh) * 2019-01-18 2019-04-05 苏州德姆斯信息技术有限公司 低功耗无线通讯传输方法
CN111277580A (zh) * 2020-01-15 2020-06-12 北京航空航天大学 节点数据发送方法、接收方法以及传输方法

Also Published As

Publication number Publication date
CN112910658A (zh) 2021-06-04

Similar Documents

Publication Publication Date Title
US11522790B2 (en) Multipath data transmission processing method and network device
US10715282B2 (en) Method and related device for improving TCP transmission efficiency using delayed ACK
US10237153B2 (en) Packet retransmission method and apparatus
KR102136563B1 (ko) 패킷 전송 방법 및 사용자 장비
CN112713970B (zh) 一种发送报文的方法、装置、芯片及终端
US11477130B2 (en) Transmission control method and apparatus
US9967193B2 (en) Method and system for increasing data flow transmission
CN112436994B (zh) 一种数据传输方法及电子设备
US9369392B2 (en) SCTP bundling
CN102820915B (zh) 改善tcp传输性能的卫星链路系统及其使用方法
US10594844B2 (en) Method and system for wireless network bilateral accelerated transmission
CN111988212B (zh) 一种报文传输方法以及相关装置
EP3525421B1 (en) Data transmission method and apparatus
WO2011100911A2 (zh) 探测处理方法、数据发送端、数据接收端以及通信系统
CN102769520B (zh) 基于sctp协议的无线网络拥塞控制方法
WO2017107148A1 (zh) 一种数据传输方法及网络侧设备
CN114979839A (zh) 一种传输控制协议代理方法及通信装置
US10645184B2 (en) Information transmission method, gateway, and controller
CN112910658B (zh) 一种数据包传输方法和提供tcp代理服务的方法、装置
CN107431965B (zh) 一种实现传输控制协议tcp传输的方法及装置
JP2005136684A (ja) データ転送方法とtcpプロキシ装置およびそれを用いたネットワークシステム
CN113424578A (zh) 一种传输控制协议加速方法和装置
Shah IP header compression in the SGSN

Legal Events

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