一种多路复用协议及传输方法技术

技术编号:29618249 阅读:12 留言:0更新日期:2021-08-10 18:38
本发明专利技术公开了一种多路复用协议及传输方法。其中,所述协议采用UDP协议作为底层的通讯协议,所述协议的外层协议包括负载协议、可靠传输头和内层协议数据,所述负载协议为TCP或UDP中的一种,若所述负载协议为TCP,则所述可靠传输头生效,若所述负载协议为UDP,则所述可靠传输头不生效;所述可靠传输头包括数据包类型、序号、时间戳以及窗口大小;所述内层协议数据包括命令、连接ID、数据长度以及数据。本实施例提供的一种多路复用协议,对现有技术的多路复用协议内容进行了简化,并且通过数据包类型来区分TCP协议和UDP协议,使得本实施例提供的协议能够同时支持TCP和UDP连接的多路复用。

【技术实现步骤摘要】
一种多路复用协议及传输方法
本专利技术实施例涉及数据传输
,尤其涉及一种多路复用协议及传输方法。
技术介绍
多路复用技术是把多个低速信道组合成一个高速信道的技术,它可以有效的提高数据链路的利用率,从而使得一条高速的主干链路同时为多条低速的接入链路提供服务,也就是使得网络干线可以同时运载大量的语音和数据传输。多路复用技术是为了充分利用传输媒体,人们研究了在一条线路上建立多个通信信道的技术。多路复用技术的实质是,将一个区域的多个用户数据通过发送多路复用器进行汇集,然后将汇集后的数据通过一个线路进行传送,接收多路复用器再对数据进行分离,分发到多个用户。然而,现有的传输控制协议(TransmissionControlProtocol,TCP)和用户数据报协议(UserDatagramProtocol,UDP)多路复用协议的头部字段比较复杂,相较于不复用的情况性能损耗较大,且现有的TCP/UDP多路复用协议仅能支持TCP和UDP协议中的一种。
技术实现思路
本专利技术提供一种多路复用协议及传输方法,以提供一种能够同时支持TCP和UDP协议的简化的多路复用协议。本专利技术的技术方案为:第一方面,本专利技术实施例提供了多路复用协议,所述协议采用UDP协议作为底层的通讯协议,所述协议的外层协议包括负载协议、可靠传输头和内层协议数据,所述负载协议为TCP或UDP中的一种,若所述负载协议为TCP,则所述可靠传输头生效,若所述负载协议为UDP,则所述可靠传输头不生效;所述可靠传输头包括数据包类型、序号、时间戳以及窗口大小;所述内层协议数据包括命令、连接ID、数据长度以及数据。可选的,所述命令包括新建连接控制命令、传输数据控制命令以及关闭连接控制命令。可选的,所述连接ID用于将一条链路上的数据做分流,以区分出不同的连接。第二方面,本专利技术实施例还提供了一种多路复用传输方法,所述方法基于本专利技术上述实施中任一所述的协议,其特征在于,所述方法由客户端执行,包括:步骤1、在服务器建立UDP监听,并维护一张源IP和源端口到连接ID的映射表;步骤2、当接收到新的数据连接请求时,将所述数据连接请求中的源IP和源端口与映射表中存储的源IP与源端口进行匹配,若匹配成功继续执行步骤3,否则执行步骤5;步骤3、使得连接ID自增,并在所述映射表中新建一个所述数据连接请求中的源IP和源端与自增后的连接ID之间的映射;步骤4、向服务器发送新建连接的控制命令;步骤5、基于所述数据连接请求中的源IP和源端口确定对应的连接ID并构造数据命令,所述数据命令包括连接ID、数据长度以及数据本身;步骤6、若所述数据连接请求中的数据包类型为UDP,则直接向服务器发送该数据包,若所述数据连接请求中的数据包类型为TCP,则通过可靠传输头向服务器发送该数据包,以确保该数据包的送达。可选的,所述方法还包括当连接关闭时,向服务器发送关闭连接控制命令,并删除所述映射表中的所述数据连接请求中的源IP和源端口到连接ID的映射。可选的,在步骤6之前,还包括:采用加密算法对数据连接请求中的数据包进行加密。第三方面,本专利技术实施例还提供了一种多路复用传输方法,所述方法基于本专利技术上述实施中任一所述的协议,所述方法由服务器执行,包括:步骤1、对UDP端口进行监听,并维护一张连接ID到连接的映射表;步骤2、接收客户端发送过来的数据包,并对所述数据包进行解密;步骤3、解析数据包类型,若所述数据包类型为TCP,则使用可靠传输协头发送确认字符后继续解析控制命令字段,若所述数据包类型为UDP,则直接解析控制命令字段;步骤4、执行解析控制命令字段得到的命令。本实施例提供的一种多路复用协议,对现有技术的多路复用协议内容进行了简化,并且通过数据包类型来区分TCP协议和UDP协议,使得本实施例提供的协议能够同时支持TCP和UDP连接的多路复用。附图说明图1为本专利技术实施例提供的一种多路复用协议的总架构图。具体实施方式下面结合附图和实施例对本专利技术作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本专利技术,而非对本专利技术的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本专利技术相关的部分而非全部结构。实施例本实施例中讨论的是面向连接的多路复用和多路分解,也就是网络层所提供的主机到主机的交付服务扩展到为主机上运行的应用程序所提供的进程到进程交付服务。为了解决现有技术中多路复用协议中存在的问题,本实施例提供的一种同时支持TCP和UDP的多路复用协议,为了保持UDP的低时延特性,上述多路复用协议采用UDP协议作为底层的通信协议,同时在此多路复用协议上增加可靠性连接的保证措施,以适应TCP连接的需求。具体的,该多路复用协议的外层协议如下表所示:PROTOCOLREL_HEADERDATA负载协议(1字节)可靠传输头(9字节)内层协议数据(可变长度)上述外层协议是基于UDP的可靠传输协议部分,包括负载协议(PROTOCOL)、可靠传输头(REL_HEADER)和内层协议数据(DATA)。其中,负载协议是TCP或UDP中的一种,若所述负载协议为TCP,则所述可靠传输头生效,若所述负载协议为UDP,则所述可靠传输头不生效。可靠传输头部分与TCP协议中的头部相类似,包括SYN,PSH,ACK等包类型来做数据可靠性保证。所述可靠传输头包括数据包类型(MSG_TYPE)、序号(SEQUENCE)、时间戳(TIMESTAMP)以及窗口大小(WND_SIZE),如下表所示:MSG_TYPESEQUENCETIMESTAMPWND_SIZE包类型(1字节)序号(2字节)时间戳(4字节)窗口大小(2字节)内层协议数据对于TCP和UDP通用,包括命令(CMD)、连接ID(CONN_ID)、数据长度(LEN)以及数据(DATA),如下表所示:CMDCONN_IDLENDATA命令(1字节)连接ID(2字节)负载长度(2字节)负载CMD是连接的控制命令,包括三种命令:1.新建连接控制命令OPEN:新建一个连接;2.传输数据控制命令DATA:传输一个数据包;3.关闭连接控制命令CLOSE:关闭本连接。CONN_ID是一个随连接创建自增的2字节数。CONN_ID在同一个连接中保持一致,该多路复用协议通过CONN_ID将一条链路上的数据做分流,区分出不同的连接。LEN是本数据包的本文档来自技高网...

【技术保护点】
1.一种多路复用协议,其特征在于,所述协议采用UDP协议作为底层的通讯协议,所述协议的外层协议包括负载协议、可靠传输头和内层协议数据,所述负载协议为TCP或UDP中的一种,若所述负载协议为TCP,则所述可靠传输头生效,若所述负载协议为UDP,则所述可靠传输头不生效;/n所述可靠传输头包括数据包类型、序号、时间戳以及窗口大小;/n所述内层协议数据包括命令、连接ID、数据长度以及数据。/n

【技术特征摘要】
1.一种多路复用协议,其特征在于,所述协议采用UDP协议作为底层的通讯协议,所述协议的外层协议包括负载协议、可靠传输头和内层协议数据,所述负载协议为TCP或UDP中的一种,若所述负载协议为TCP,则所述可靠传输头生效,若所述负载协议为UDP,则所述可靠传输头不生效;
所述可靠传输头包括数据包类型、序号、时间戳以及窗口大小;
所述内层协议数据包括命令、连接ID、数据长度以及数据。


2.根据权利要求1所述的协议,其特征在于,所述命令包括新建连接控制命令、传输数据控制命令以及关闭连接控制命令。


3.根据权利要求1所述的协议,其特征在于,所述连接ID用于将一条链路上的数据做分流,以区分出不同的连接。


4.一种多路复用传输方法,所述方法基于权利要求1-3中任一所述的协议,其特征在于,所述方法由客户端执行,包括:
步骤1、在服务器建立UDP监听,并维护一张源IP和源端口到连接ID的映射表;
步骤2、当接收到新的数据连接请求时,将所述数据连接请求中的源IP和源端口与映射表中存储的源IP与源端口进行匹配,若匹配成功继续执行步骤3,否则执行步骤5;
步骤3、使得连接ID自增,并在所述映射表中新建一个所述数据连接请求中的源IP和源端与自增后的连接ID之间的映射;
步骤4、向...

【专利技术属性】
技术研发人员:冯杰李嘉伟周谊成
申请(专利权)人:苏州瑞立思科技有限公司
类型:发明
国别省市:江苏;32

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

1