数据报文的传输方法及装置与流程

文档序号:26940508发布日期:2021-10-12 15:57阅读:115来源:国知局
数据报文的传输方法及装置与流程

1.本发明涉及通信技术和区块链技术领域,尤其涉及一种数据报文的传输方法、装置、电子设备及存储介质。


背景技术:

2.相关技术中,路由器在实现服务质量(quality of service,qos)效果时,通常通过数据报文中携带的目的端口号来确定如何进行转发服务,比如当路由器识别到接收的数据报文中携带的五元组信息包括tcp80端口时,则直接确定该数据报文为网页类业务流量,从而采用网页类业务相应的转发服务方式。但是在实际应用中,由于有些客户端的数据报文传输采用私有协议,端口一般为非常规的端口号(即端口号>1024);这种情况下,路由器无法识别接收的数据报文属于哪一类型的业务流量,更无法确定采用何种转发服务以实现路由器上的qos效果。


技术实现要素:

3.本发明实施例提供一种数据报文的传输方法、装置、电子设备及存储介质,能够为各种业务的数据报文均分配合理的网络资源,提高网络传输性能。
4.本发明实施例的技术方案是这样实现的:
5.本发明实施例提供一种数据报文的传输方法,包括:
6.接收客户端发送的数据报文,所述数据报文的报文头部包含有用于指示所述客户端所对应业务的指纹;
7.对所述数据报文的报文头部进行识别,得到所述指纹;
8.将所述指纹分别与指纹库中包含的各指纹进行匹配,得到匹配结果;
9.基于所述匹配结果,确定所述数据报文对应的业务优先级;
10.基于所述数据报文对应的业务优先级,转发所述数据报文。
11.本发明实施例还提供一种数据报文的传输装置,包括:
12.接收模块,用于接收客户端发送的数据报文,所述数据报文的报文头部包含有用于指示所述客户端所对应业务的指纹;
13.识别模块,用于对所述数据报文的报文头部进行识别,得到所述指纹;
14.匹配模块,用于将所述指纹分别与指纹库中包含的各指纹进行匹配,得到匹配结果;
15.确定模块,用于基于所述匹配结果,确定所述数据报文对应的业务优先级;
16.转发模块,用于基于所述数据报文对应的业务优先级,转发所述数据报文。
17.上述方案中,所述识别模块,还用于识别所述数据报文的报文头部;
18.对所述报文头部进行目标偏移位数据读取,以确定所述报文头部中目标字段所携带的内容为所述指纹。
19.上述方案中,所述确定模块,还用于当所述匹配结果表征所述指纹库中存在与所
述客户端所对应业务的指纹相匹配的指纹时,确定所述数据报文对应的业务优先级为高优先级;
20.相应地,所述转发模块,还用于优先转发对应所述高优先级的数据报文。
21.上述方案中,所述确定模块,还用于当所述匹配结果表征所述指纹库中不存在与所述客户端所对应业务的指纹相匹配的指纹时,确定所述数据报文对应的业务优先级为低优先级;
22.相应地,所述转发模块,还用于将所述数据报文加入先入先出的转发缓冲队列;
23.依据所述数据报文所处所述转发缓冲队列中的排序,转发所述数据报文。
24.上述方案中,所述转发模块,还用于获取所述数据报文的五元组信息;
25.提取所述五元组信息中的目的端口号和目的ip地址;
26.基于提取的所述目的端口号和目的ip地址,转发所述数据报文。
27.上述方案中,所述装置还包括:
28.更新模块,用于周期性地从云端服务器获取各业务的指纹;
29.基于获取的所述各业务的指纹,更新所述指纹库。
30.上述方案中,所述匹配模块,还用于发送对应所述数据报文的指纹匹配请求至云端服务器;
31.其中,所述指纹匹配请求,用于所述云端服务器将所述指纹分别与指纹库中包含的各指纹进行匹配,得到匹配结果;
32.接收所述云端服务器返回的所述匹配结果。
33.上述方案中,所述接收模块,还用于接收客户端基于报文协议格式将所述指纹进行协议填充后得到的所述数据报文;
34.其中,所述指纹为所述客户端对所述业务的业务标识、及所述数据报文的目的ip地址中至少之一进行哈希处理得到。
35.上述方案中,所述更新模块,还用于生成并发送用于获取区块链网络中各业务的指纹的交易;
36.接收所述区块链网络基于所述交易返回的各业务的指纹;
37.基于返回的所述各业务的指纹,更新所述指纹库。
38.本发明实施例还提供一种电子设备,包括:
39.存储器,用于存储可执行指令;
40.处理器,用于执行所述存储器中存储的可执行指令时,实现本发明实施例提供的数据报文的传输方法。
41.本发明实施例还提供一种计算机可读存储介质,存储有可执行指令,所述可执行指令被处理器执行时,实现本发明实施例提供的数据报文的传输方法。
42.本发明实施例具有以下有益效果:
43.通过识别接收的数据报文,得到用于指示发送该数据报文的客户端所对应业务的指纹,将数据报文的指纹分别与指纹库中各指纹进行匹配,得到匹配结果,并基于匹配结果确定数据报文对应的业务优先级,进而基于数据报文对应的业务优先级进行数据报文的转发;这里,数据报文的指纹用于指示客户端所对应的业务,在指纹匹配的过程中,能够确定数据报文的业务类型及数据报文对应的业务优先级,从而基于业务优先级进行数据报文转
发,如此能够为各种业务的数据报文均分配合理的网络资源,提高网络传输性能。
附图说明
44.图1是本发明实施例提供的数据报文的传输方法的实施场景示意图;
45.图2是本发明实施例提供的电子设备的结构示意图;
46.图3是本发明实施例提供的数据报文的传输方法的流程示意图;
47.图4是本发明实施例提供的区块链网络的应用架构示意图;
48.图5是本发明实施例提供的区块链网络400中区块链的结构示意图;
49.图6是本发明实施例提供的区块链网络400的功能架构示意图;
50.图7是本发明实施例提供的数据报文的传输方法的流程示意图;
51.图8是本发明实施例提供的数据报文的传输装置的结构示意图。
具体实施方式
52.为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,所描述的实施例不应视为对本发明的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
53.在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
54.在以下的描述中,所涉及的术语“第一\第二\第三”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本发明实施例能够以除了在这里图示或描述的以外的顺序实施。
55.除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本发明实施例的目的,不是旨在限制本发明。
56.对本发明实施例进行进一步详细说明之前,对本发明实施例中涉及的名词和术语进行说明,本发明实施例中涉及的名词和术语适用于如下的解释。
57.1)签名,即数字签名,只有信息的发送者才能产生的、别人无法伪造的一段数字串,同时也是对信息的发送者发送信息真实性的有效证明;数字签名通常定义两种互补的运算,一个用于签名,另一个用于验证,是非对称密钥加密技术与数字摘要技术的应用。
58.2)交易(transaction),等同于计算机术语“事务”,交易包括了需要提交到区块链网络执行的操作,并非单指商业语境中的交易,鉴于在区块链技术中约定俗成地使用了“交易”这一术语,本发明实施例遵循了这一习惯。
59.例如,部署(deploy)交易用于向区块链网络中的节点安装指定的智能合约并准备好被调用;调用(invoke)交易用于通过调用智能合约在区块链中追加交易的记录,并对区块链的状态数据库进行操作,包括更新操作(包括增加、删除和修改状态数据库中的键值对)和查询操作(即查询状态数据库中的键值对)。
60.3)区块链(blockchain),是由区块(block)形成的加密的、链式的交易的存储结
构。
61.4)区块链网络(blockchain network),通过共识的方式将新区块纳入区块链的一系列的节点的集合。
62.5)账本(ledger),是区块链(也称为账本数据)和与区块链同步的状态数据库的统称。其中,区块链是以文件系统中的文件的形式来记录交易;状态数据库是以不同类型的键(key)值(value)对的形式来记录区块链中的交易,用于支持对区块链中交易的快速查询。
63.6)智能合约(smart contracts),也称为链码(chaincode)或应用代码,部署在区块链网络的节点中的程序,节点执行接收的交易中所调用的智能合约,来对状态数据库的键值对数据进行更新或查询的操作。
64.7)共识(consensus),是区块链网络中的一个过程,用于在涉及的多个节点之间对区块中的交易达成一致,达成一致的区块将被追加到区块链的尾部,实现共识的机制包括工作量证明(pow,proof of work)、权益证明(pos,proof of stake)、股份授权证明(dpos,delegated proof-of-stake)、消逝时间量证明(poet,proof of elapsed time)等。
65.8)五元组信息:是一种通信术语,通常是指源ip地址、源端口、目的ip地址、目的端口和传输层协议这五个量组成的一个集合。
66.9)服务质量(quality of service,qos):指一个网络能够利用各种基础技术,为指定的网络通信提供更好的服务能力,是网络的一种安全机制,是用来解决网络延迟和阻塞等问题的一种技术。在正常情况下,如果网络只用于特定的无时间限制的应用系统,并不需要qos,比如web应用,或e-mail设置等。但是对关键应用和多媒体应用就十分必要。当网络过载或拥塞时,qos能确保重要业务量不受延迟或丢弃,同时保证网络的高效运行。
67.10)数据报文,是网络中交换与传输的数据单元,即站点一次性要发送的数据块,主要是协议格式。
68.基于上述对本发明实施例中涉及的名词和术语的解释,下面说明本发明实施例提供的数据报文的传输方法的实施场景,参见图1,图1是本发明实施例提供的数据报文的传输方法的实施场景示意图,为实现支撑一个示例性应用,终端(如终端200-1,设置有客户端)通过路由器300与服务器100(客户端对应的服务器)进行数据报文的传输,路由器300通过从云端服务器400获取各客户端所对应业务的指纹,以更新并维护本地的指纹库。
69.终端(如终端200-1),用于发送包含用于指示客户端所对应业务的指纹的数据报文;
70.路由器300,用于接收客户端发送的数据报文;对数据报文的报文头部进行识别,得到指纹;将指纹分别与指纹库中包含的各指纹进行匹配,得到匹配结果;基于匹配结果,确定数据报文对应的业务优先级;基于数据报文对应的业务优先级,转发数据报文;
71.服务器100,用于接收路由器转发的数据报文。
72.在实际应用中,服务器100既可以为单独配置的支持各种业务的一个服务器,亦可以配置为一个服务器集群;终端(如终端200-1)可以为智能手机、平板电脑、笔记本电脑等各种类型的用户终端,还可以为可穿戴计算设备、个人数字助理(pda)、台式计算机、蜂窝电话、媒体播放器、导航设备、游戏机、电视机、或者这些数据处理设备或其他数据处理设备中任意两个或多个的组合。
73.下面对本发明实施例提供的数据报文的传输方法的电子设备的硬件结构做详细
说明,电子设备包括但不限于服务器或终端。参见图2,图2是本发明实施例提供的电子设备的结构示意图,图2所示的电子设备200包括:至少一个处理器210、存储器250、至少一个网络接口220和用户接口230。电子设备200中的各个组件通过总线系统240耦合在一起。可理解,总线系统240用于实现这些组件之间的连接通信。总线系统240除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图2中将各种总线都标为总线系统240。
74.处理器210可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(dsp,digital signal processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
75.用户接口230包括使得能够呈现媒体内容的一个或多个输出装置231,包括一个或多个扬声器和/或一个或多个视觉显示屏。用户接口230还包括一个或多个输入装置232,包括有助于用户输入的用户接口部件,比如键盘、鼠标、麦克风、触屏显示屏、摄像头、其他输入按钮和控件。
76.存储器250可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。存储器250可选地包括在物理位置上远离处理器210的一个或多个存储设备。
77.存储器250包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(rom,read only memory),易失性存储器可以是随机存取存储器(ram,random access memory)。本发明实施例描述的存储器250旨在包括任意适合类型的存储器。
78.在一些实施例中,存储器250能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
79.操作系统251,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
80.网络通信模块252,用于经由一个或多个(有线或无线)网络接口220到达其他计算设备,示例性的网络接口220包括:蓝牙、无线相容性认证(wifi)、和通用串行总线(usb,universal serial bus)等;
81.呈现模块253,用于经由一个或多个与用户接口230相关联的输出装置231(例如,显示屏、扬声器等)使得能够呈现信息(例如,用于操作外围设备和显示内容和信息的用户接口);
82.输入处理模块254,用于对一个或多个来自一个或多个输入装置232之一的一个或多个用户输入或互动进行检测以及翻译所检测的输入或互动。
83.在一些实施例中,本发明实施例提供的数据报文的传输装置可以采用软件方式实现,图2示出了存储在存储器250中的数据报文的传输装置255,其可以是程序和插件等形式的软件,包括以下软件模块:接收模块2551、识别模块2552、匹配模块2553、确定模块2554和转发模块2555,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分,将在下文中说明各个模块的功能。
84.在另一些实施例中,本发明实施例提供的数据报文的传输装置可以采用软硬件结
合的方式实现,作为示例,本发明实施例提供的数据报文的传输装置可以是采用硬件译码处理器形式的处理器,其被编程以执行本发明实施例提供的数据报文的传输方法,例如,硬件译码处理器形式的处理器可以采用一个或多个应用专用集成电路(asic,application specific integrated circuit)、dsp、可编程逻辑器件(pld,programmable logic device)、复杂可编程逻辑器件(cpld,complex programmable logic device)、现场可编程门阵列(fpga,field-programmable gate array)或其他电子元件。
85.基于上述对本发明实施例的数据报文的传输方法的实施场景及电子设备的说明,下面说明本发明实施例提供的数据报文的传输方法。参见图3,图3是本发明实施例提供的数据报文的传输方法的流程示意图,本发明实施例提供的数据报文的传输方法包括:
86.步骤301:路由器接收客户端发送的数据报文。
87.这里,数据报文的报文头部包含有用于指示客户端所对应业务的指纹。
88.在实际应用中,路由器接收客户端发送的数据报文,该客户端可以手游客户端、即时通讯客户端等。当客户端需要与对应的服务器进行数据传输时,需要先发送数据报文至相应的路由器。这里,客户端对应的服务器指的是为客户端提供数据支持的后台服务器,比如发送数据报文的手游客户端所对应的手游服务器。
89.在实际实施时,路由器接收到客户端基于报文协议格式将指纹进行协议填充后得到的数据报文;其中,该指纹为客户端对业务的业务标识、及数据报文的目的ip地址中至少之一进行哈希处理得到。
90.在实际应用中,不同的业务客户端分配有各自对应的业务标识,该业务标识用于指示相应客户端所支持的业务,比如xx竞技手游的业务标识、xx射击手游的业务标识等。为使客户端发送的数据报文中包含用于指示客户端所对应业务的标识(即指纹),客户端通过哈希算法,对该客户端的业务标识、及数据报文的目的ip地址中至少之一进行哈希处理,得到数据报文对应的指纹。
91.客户端在得到数据报文对应的指纹后,将该指纹基于报文协议格式进行协议填充,以使得发送的数据报文中包含该指纹。具体地,需要针对数据报文的报文协议格式进行设置,可以在报文协议的协议头中预留目标字节(比如4字节或者8字节)的协议头字段,作为保留字段,以用来填充数据报文对应的指纹。当客户端基于哈希算法得到数据报文对应的指纹后,基于设置的报文协议格式,将得到的指纹填充在协议头的保留字段。示例性地,在手游客户端和手游服务器通讯的应用层协议头上,预留8字节的协议头字段作为保留字段,当得到该手游客户端的数据报文的指纹时,将该指纹填充在该8字节的协议头保留字段的位置。
92.客户端在得到包含有指纹的数据报文后,将该数据报文发送至路由器;如此,路由器接收到包含用于指示客户端所对应业务的指纹的数据报文。
93.步骤302:对数据报文的报文头部进行识别,得到指纹。
94.路由器接收到数据报文后,对数据报文的报文头部进行识别。在一些实施例中,可通过如下方式对数据报文的报文头部进行识别:识别数据报文的报文头部;对报文头部进行目标偏移位数据读取,以确定报文头部中目标字段所携带的内容为指纹。
95.在实际应用中,路由器可直接识别接收的数据报文的报文头部;然后对报文头部的目标偏移位的数据进行读取,比如进行8字节偏移位的数据读取,确定报文头部中目标字
段所携带的内容为数据报文的指纹。
96.步骤303:将指纹分别与指纹库中包含的各指纹进行匹配,得到匹配结果。
97.在实际应用中,路由器从云端服务器获取各客户端所对应业务的指纹,以维护本地的指纹库。这里,云端服务器可以是在机房部署的指纹服务器,其本地存储有已支持业务的业务标识、以及已支持业务的客户端对应的服务器的ip地址;示例性地,已支持业务为xx手游业务,那么云端服务器则存储有xx手游业务的业务标识、以及xx手游业务的手游服务器的ip地址。云端服务器采用与客户端相同的哈希算法,对各客户端所对应业务的业务标识、以及该客户端所对应的服务器的ip地址进行哈希处理,得到各客户端所对应业务的指纹并保存,形成云端指纹库。
98.在一些实施例中,可通过如下方式更新指纹库:周期性地从云端服务器获取各业务的指纹;基于获取的各业务的指纹,更新指纹库。
99.在实际应用中,路由器通过定期获取各业务的指纹的方式,更新并维护本地的指纹库,以保证指纹库的完备性与准确性。
100.基于此,路由器识别到数据报文的指纹后,将数据报文的指纹分别与指纹库中包含的各指纹进行匹配,得到匹配结果。
101.在一些实施例中,还可通过如下方式得到匹配结果:发送对应数据报文的指纹匹配请求至云端服务器;接收云端服务器返回的匹配结果。
102.这里,该指纹匹配请求,用于云端服务器将指纹分别与指纹库中包含的各指纹进行匹配,得到匹配结果。
103.在实际应用中,路由器除了可以单独完成指纹匹配得到匹配结果之外,还可以与云端服务器协同完成。具体地,路由器向云端服务器发送对应数据报文的指纹匹配请求;云端服务器接收到该指纹匹配请求后,将数据报文的指纹分别与指纹库中包含的各指纹进行匹配,得到匹配结果,从而将得到的匹配结果返回至路由器;路由器接收云端服务器返回的匹配结果。
104.步骤304:基于匹配结果,确定数据报文对应的业务优先级。
105.步骤305:基于数据报文对应的业务优先级,转发数据报文。
106.在一些实施例中,可通过如下方式确定数据报文对应的业务优先级:当匹配结果表征指纹库中存在与客户端所对应业务的指纹相匹配的指纹时,确定数据报文对应的业务优先级为高优先级;当匹配结果表征指纹库中不存在与客户端所对应业务的指纹相匹配的指纹时,确定数据报文对应的业务优先级为低优先级。
107.这里,高优先级的业务对数据报文的传输时限要求更高,比如手游业务即为高优先级的业务。低优先级的业务指对数据报文的传输无时间限制的业务,比如web应用、e-mail设置等。
108.在一些实施例中,基于数据报文对应的业务优先级,可通过如下方式转发数据报文:当确定数据报文对应的业务优先级为高优先级时,则优先转发对应高优先级的数据报文。当确定数据报文对应的业务优先级为低优先级时,将数据报文加入先入先出的转发缓冲队列;依据数据报文所处转发缓冲队列中的排序,转发数据报文。
109.这里,路由器对高优先级的数据报文进行优先转发,以在网络拥塞时保证高优先级业务的数据报文不受网络延迟的影响。当确定数据报文对应的业务优先级为低优先级
时,则按照常规优先级对数据报文进行转发。具体地是将对应低优先级的数据报文加入先入先出的转发缓冲队列,当确定对应高优先级的数据报文转发完成后,按照低优先级的数据报文在转发缓冲队列的排序,对数据报文进行转发。
110.在一些实施例中,可通过如下方式转发数据报文:获取数据报文的五元组信息;提取五元组信息中的目的端口号和目的ip地址;基于提取的目的端口号和目的ip地址,转发数据报文。
111.在实际应用中,路由器在转发数据报文时,需要获取数据报文对应的五元组信息;根据从五元组信息中提取的目的端口号、目的ip地址,对数据报文进行转发,以实现客户端的数据报文的准确传输。
112.应用本发明上述实施例,通过识别接收的数据报文,得到用于指示发送该数据报文的客户端所对应业务的指纹,将数据报文的指纹分别与指纹库中各指纹进行匹配,得到匹配结果,并基于匹配结果确定数据报文对应的业务优先级,进而基于数据报文对应的业务优先级进行数据报文的转发;这里,数据报文的指纹用于指示客户端所对应的业务,在指纹匹配的过程中,能够确定数据报文的业务类型及数据报文对应的业务优先级,从而基于业务优先级进行数据报文转发,如此能够为各种业务的数据报文均分配合理的网络资源,提高网络传输性能。
113.在一些实施例中,还可以结合区块链技术,将云端服务器针对各客户端的业务生成的指纹,存储至区块链网络,以使在路由器基于获取的各业务的指纹更新指纹库时,能够直接从区块链网络中获取到各业务的指纹。
114.这里,云端服务器针对各客户端的业务生成指纹后,生成用于存储指纹的交易,并发送生成的交易至区块链网络的节点,以使节点对交易共识后将指纹存储至区块链网络;在存储至区块链网络之前,云端服务器还可获取指纹对应的密钥的摘要信息;将得到的密钥的摘要信息存储至区块链网络。
115.接下来对本发明实施例中的区块链网络进行说明。图4为本发明实施例提供的区块链网络的应用架构示意图,包括区块链网络400(示例性示出了共识节点410-1至共识节点410-3)、认证中心500、业务主体600,下面分别说明。
116.区块链网络400的类型是灵活多样的,例如可以为公有链、私有链或联盟链中的任意一种。以公有链为例,任何业务主体的电子设备(例如终端/服务器),都可以在不需要授权的情况下接入区块链网络400;以联盟链为例,业务主体在获得授权后其下辖的电子设备可以接入区块链网络400。如此,成为区块链网络400中的客户端节点。
117.在一些实施例中,客户端节点可以只作为区块链网络400的观察者,即提供支持业务主体发起交易(例如,用于上链存储数据或查询链上数据)功能,对于区块链网络400的共识节点410的功能,例如排序功能、共识服务和账本功能等,客户端节点可以缺省或者有选择性(例如,取决于业务主体的具体业务需求)地实施。从而,可以将业务主体的数据和业务处理逻辑最大程度迁移到区块链网络400中,通过区块链网络400实现数据和业务处理过程的可信和可追溯。
118.区块链网络400中的共识节点接收来自不同业务主体(如业务主体600)的客户端节点(如归属于业务主体600的客户端节点610)提交的交易,执行交易以更新账本或者查询账本,执行交易的各种中间结果或最终结果可以返回至业务主体的客户端节点中显示。
119.下面以业务主体接入区块链网络以实现各业务的指纹的获取为例说明区块链的示例性应用。
120.参见图4,数据报文的传输方法涉及的业务主体600,从认证中心500进行登记注册获得数字证书,数字证书中包括业务主体的公钥、以及认证中心500对业务主体的公钥和身份信息签署的数字签名,用来与业务主体针对交易的数字签名一起附加到交易中,并被发送到区块链网络,以供区块链网络从交易中取出数字证书和签名,验证消息的可靠性(即是否未经篡改)和发送消息的业务主体的身份信息,区块链网络会根据身份进行验证,例如是否具有发起交易的权限。业务主体下辖的电子设备(例如终端或者服务器)运行的客户端都可以向区块链网络400请求接入而成为客户端节点。
121.首先,业务主体600的客户端节点610在获取针对客户端的各业务生成的指纹时,生成用于获取区块链中存储的指纹的交易,在交易中指定了实现各业务的指纹的获取操作需要调用的智能合约、以及向智能合约传递的参数,交易还携带了客户端节点610的数字证书、签署的数字签名(例如,使用客户端节点610的数字证书中的私钥,对交易的摘要进行加密得到),并将交易广播到区块链网络400中的共识节点。
122.然后,区块链网络400的共识节点410接收到交易时,对交易携带的数字证书和数字签名进行验证,验证成功后,根据交易中携带的业务主体600的身份,确认业务主体600是否是具有交易权限,数字签名和权限验证中的任何一个验证判断都将导致交易失败。验证成功后签署共识节点410自己的数字签名(例如,使用节点410-1的私钥对交易的摘要进行加密得到),并继续在区块链网络400中广播。
123.最后,区块链网络400中的共识节点410接收到验证成功的交易后,将交易填充到新的区块中,并进行广播。区块链网络400中的共识节点410在广播新区块时,会对新区块进行共识过程,如果共识成功,则将新区块追加到自身所存储的区块链的尾部,并根据交易的结果更新状态数据库,执行新区块中的交易:对于提交的获取各业务的指纹的交易,从状态数据库中查询各业务的指纹对应的键值对,并返回交易结果。
124.作为区块链的示例,参见图5,图5是本发明实施例提供的区块链网络400中区块链的结构示意图,每个区块的头部既可以包括区块中所有交易的哈希值,同时也包含前一个区块中所有交易的哈希值,新产生的交易的记录被填充到区块并经过区块链网络中节点的共识后,会被追加到区块链的尾部从而形成链式的增长,区块之间基于哈希值的链式结构保证了区块中交易的防篡改和防伪造。
125.下面说明本发明实施例提供的区块链网络的示例性的功能架构,参见图6,图6是本发明实施例提供的区块链网络400的功能架构示意图,包括应用层1、共识层2、网络层3、数据层4和资源层5,下面分别进行说明。
126.资源层5封装了实现区块链网路400中的各个节点410的计算资源、存储资源和通信资源。
127.数据层4封装了实现账本的各种数据结构,包括以文件系统中的文件实现的区块链,键值型的状态数据库和存在性证明(例如区块中交易的哈希树)。
128.网络层3封装了点对点(p2p,point to point)网络协议、数据传播机制和数据验证机制、接入认证机制和业务主体身份管理的功能。
129.其中,p2p网络协议实现区块链网络400中节点410之间的通信,数据传播机制保证
了交易在区块链网络400中的传播,数据验证机制用于基于加密学方法(例如数字证书、数字签名、公/私钥对)实现节点410之间传输数据的可靠性;接入认证机制用于根据实际的业务场景对加入区块链网络400的业务主体的身份进行认证,并在认证通过时赋予业务主体接入区块链网络400的权限;业务主体身份管理用于存储允许接入区块链网络400的业务主体的身份、以及权限(例如能够发起的交易的类型)。
130.共识层2封装了区块链网络400中的节点410对区块达成一致性的机制(即共识机制)、交易管理和账本管理的功能。共识机制包括pos、pow和dpos等共识算法,支持共识算法的可插拔。
131.交易管理用于验证节点410接收的交易中携带的数字签名,验证业务主体的身份信息,并根据身份信息判断确认其是否具有权限进行交易(从业务主体身份管理读取相关信息);对于获得接入区块链网络400的授权的业务主体而言,均拥有认证中心颁发的数字证书,业务主体利用自己的数字证书中的私钥对提交的交易进行签名,从而声明自己的合法身份。
132.账本管理用于维护区块链和状态数据库。对于取得共识的区块,追加到区块链的尾部;执行取得共识的区块中的交易,当交易包括更新操作时更新状态数据库中的键值对,当交易包括查询操作时查询状态数据库中的键值对并向业务主体的客户端节点返回查询结果。支持对状态数据库的多种维度的查询操作,包括:根据区块序列号(例如交易的哈希值)查询区块;根据区块哈希值查询区块;根据交易序列号查询区块;根据交易序列号查询交易;根据业务主体的账号(序列号)查询业务主体的账号数据;根据通道名称查询通道中的区块链。
133.应用层1封装了区块链网络能够实现的各种业务,包括交易的溯源、存证和验证等。
134.接下来以路由器接收手游客户端发送的数据报文并转发为例,继续说明本发明实施例提供的数据报文的传输方法。相关技术中,路由器在实现qos效果时,通常通过数据报文中携带的目的端口号来确定如何进行转发服务,比如当路由器识别到接收的数据报文中携带的五元组信息包括tcp80端口时,则直接确定该数据报文为网页类业务流量,从而采用网页类业务相应的转发服务方式。但是在实际应用中,由于手游等类的客户端的数据报文传输采用私有协议,端口一般为非常规的端口号(即端口号>1024);这种情况下,路由器无法识别接收的数据报文属于哪一类型的业务流量,更无法针对手游等类的客户端实现路由器上的qos效果。
135.基于此,本发明实施例提供一种数据报文的传输方法,参见图7,图7是本发明实施例提供的数据报文的传输方法的流程示意图,本发明实施例提供的数据报文的传输方法包括:
136.步骤701:客户端对业务标识及待发送数据报文的目的ip地址进行哈希处理,得到待发送数据报文对应的指纹。
137.这里,在实际应用中,终端设置有客户端,比如手游客户端。并为不同的业务客户端分配各自对应的业务标识,该业务标识用于指示相应客户端所支持的业务,比如xx竞技手游的业务标识、xx射击手游的业务标识等。该业务标识存储于本地的配置文件中,在客户端初始化的过程中,可以获取到该业务标识。
138.为了使客户端发送的数据报文中携带用于指示该客户端所对应业务的标识,在实际应用中,可通过哈希算法,对该客户端的业务标识、及待发送数据报文的目的ip地址进行哈希处理,得到待发送数据报文对应的指纹。
139.步骤702:基于报文协议格式,将指纹进行协议填充,得到包含有用于指示客户端所对应业务的指纹的数据报文。
140.在实际应用中,需要针对数据报文的报文协议格式进行设置。比如可以在报文协议的协议头中预留目标字节(比如4字节或者8字节)的协议头字段,作为保留字段,以用来填充数据报文对应的指纹。示例性地,在手游客户端和手游服务器通讯的应用层协议头上,设置保留8字节的协议头字段作为保留字段,以用来填充该手游客户端发送的数据报文所对应的指纹。
141.当客户端基于哈希算法得到数据报文对应的指纹后,基于设置的报文协议格式,将得到的指纹填充在预留的保留字段,以得到包含有用于指示客户端所对应业务的指纹的数据报文。示例性地,可以在应用层传输的数据报文的报文头部填充得到的指纹。
142.步骤703:将填充有指纹的数据报文发送至路由器。
143.步骤704:路由器接收到数据报文,识别数据报文的报文头部,对报文头部进行目标偏移位数据读取,以确定报文头部中包含的指纹。
144.在实际应用中,路由器在启动后,进行初始化,周期性地从云端服务器获取各客户端所对应业务的指纹,从而基于获取得到的指纹,维护并更新本地的指纹库。
145.这里,云端服务器可以是在机房部署的指纹服务器,其本地存储有已支持客户端所对应业务的业务标识、以及客户端对应的业务服务器的ip地址;示例性地,已支持业务为xx手游业务,那么云端服务器则存储有xx手游业务的业务标识、以及xx手游业务的手游服务器的ip地址。云端服务器采用与客户端相同的哈希算法,对各客户端所对应业务的业务标识、以及该客户端所对应的业务服务器的ip地址进行哈希处理,得到各客户端所对应业务的指纹并保存,形成云端指纹库。进而在路由器定期获取的逻辑中,直接将各业务的指纹作为配置文件发送给路由器,以使路由器更新并维护本地的指纹库。
146.路由器在接收到客户端发送的数据报文后,识别数据报文的报文头部,对报文头部的目标偏移位的数据进行读取,比如进行8字节偏移位的数据读取,确定该数据报文中包含的指纹。
147.步骤705:将该指纹分别与指纹库中的各指纹进行匹配,得到匹配结果。
148.步骤706:当匹配结果表征指纹库中存在与客户端所对应业务的指纹相匹配的指纹时,确定数据报文对应的业务优先级为高优先级。
149.当数据报文的指纹与指纹库中的指纹匹配成功时,则将该数据报文对应的业务优先级确定为高优先级。这里,高优先级的业务对数据报文的传输时限要求更高,比如手游业务即为高优先级的业务,为保证手游用户的游戏体验不受网络延迟和拥塞的影响,当确定数据报文的指纹与手游业务的指纹相匹配时,则确定该数据报文的业务优先级即为高优先级。
150.步骤707:当数据报文对应的业务优先级为高优先级时,对该数据报文进行优先转发。
151.这里,路由器对高优先级的数据报文进行优先转发,以在网络拥塞时保证高优先
级业务的数据报文不受网络延迟的影响。
152.步骤708:当匹配结果表征指纹库中不存在与客户端所对应业务的指纹相匹配的指纹时,确定数据报文对应的业务优先级为低优先级。
153.当数据报文的指纹与指纹库中的指纹匹配失败时,则将该数据报文对应的业务优先级确定为低优先级。
154.步骤709:当数据报文对应的业务优先级为低优先级时,将数据报文加入先入先出的转发缓冲队列;依据数据报文所处转发缓冲队列中的排序,转发数据报文。
155.这里,当确定数据报文对应的业务优先级为低优先级时,则按照常规优先级对数据报文进行转发。具体地是将对应低优先级的数据报文加入先入先出的转发缓冲队列,当确定对应高优先级的数据报文转发完成后,按照低优先级的数据报文在转发缓冲队列的排序,对数据报文进行转发。
156.在实际应用中,路由器在转发数据报文时,需要获取数据报文对应的五元组信息,根据从该五元组信息中提取的目的端口号、目的ip地址,对数据报文进行转发。
157.步骤710:服务器接收到路由器转发的客户端的数据报文。
158.这里,服务器为发送数据报文的客户端所对应的后台服务器,比如手游客户端发送的数据报文对应的手游服务器。
159.应用上述实施例,通过在数据报文填充协议指纹,以标识发送该数据报文的客户端所对应的业务类型,路由器将该数据报文的指纹、以及指纹库中的指纹进行匹配,在匹配成功时,则将该数据报文进行优先转发。由于数据报文的指纹能够标识其对应的业务类型,因此路由器可以基于指纹库快速确定接收的数据报文的业务类型,进而确定数据报文对应的业务优先级,如此能够保障高优先级业务的数据报文的优先转发,减少网络拥塞对高优先级业务的数据报文传输的影响,从而针对手游等类的业务流量,实现路由器上的qos效果。
160.下面继续说明本发明实施例提供的数据报文的传输装置255,在一些实施例中,数据报文的传输装置可采用软件模块的方式实现。参见图8,图8是本发明实施例提供的数据报文的传输装置255的结构示意图,本发明实施例提供的数据报文的传输装置255包括:
161.接收模块2551,用于接收客户端发送的数据报文,所述数据报文的报文头部包含有用于指示所述客户端所对应业务的指纹;
162.识别模块2552,用于对所述数据报文的报文头部进行识别,得到所述指纹;
163.匹配模块2553,用于将所述指纹分别与指纹库中包含的各指纹进行匹配,得到匹配结果;
164.确定模块2554,用于基于所述匹配结果,确定所述数据报文对应的业务优先级;
165.转发模块2555,用于基于所述数据报文对应的业务优先级,转发所述数据报文。
166.在一些实施例中,所述识别模块2552,还用于识别所述数据报文的报文头部;
167.对所述报文头部进行目标偏移位数据读取,以确定所述报文头部中目标字段所携带的内容为所述指纹。
168.在一些实施例中,所述确定模块2554,还用于当所述匹配结果表征所述指纹库中存在与所述客户端所对应业务的指纹相匹配的指纹时,确定所述数据报文对应的业务优先级为高优先级;
169.相应地,所述转发模块2555,还用于优先转发对应所述高优先级的数据报文。
170.在一些实施例中,所述确定模块2554,还用于当所述匹配结果表征所述指纹库中不存在与所述客户端所对应业务的指纹相匹配的指纹时,确定所述数据报文对应的业务优先级为低优先级;
171.相应地,所述转发模块2555,还用于将所述数据报文加入先入先出的转发缓冲队列;
172.依据所述数据报文所处所述转发缓冲队列中的排序,转发所述数据报文。
173.在一些实施例中,所述转发模块2555,还用于获取所述数据报文的五元组信息;
174.提取所述五元组信息中的目的端口号和目的ip地址;
175.基于提取的所述目的端口号和目的ip地址,转发所述数据报文。
176.在一些实施例中,所述装置还包括:
177.更新模块,用于周期性地从云端服务器获取各业务的指纹;
178.基于获取的所述各业务的指纹,更新所述指纹库。
179.在一些实施例中,所述匹配模块2553,还用于发送对应所述数据报文的指纹匹配请求至云端服务器;
180.其中,所述指纹匹配请求,用于所述云端服务器将所述指纹分别与指纹库中包含的各指纹进行匹配,得到匹配结果;
181.接收所述云端服务器返回的所述匹配结果。
182.在一些实施例中,所述接收模块2551,还用于接收客户端基于报文协议格式将所述指纹进行协议填充后得到的所述数据报文;
183.其中,所述指纹为所述客户端对所述业务的业务标识、及所述数据报文的目的ip地址中至少之一进行哈希处理得到。
184.在一些实施例中,所述更新模块,还用于生成并发送用于获取区块链网络中各业务的指纹的交易;
185.接收所述区块链网络基于所述交易返回的各业务的指纹;
186.基于返回的所述各业务的指纹,更新所述指纹库。
187.本发明实施例还提供一种电子设备,所述电子设备包括:
188.存储器,用于存储可执行指令;
189.处理器,用于执行所述存储器中存储的可执行指令时,实现本发明实施例提供的数据报文的传输方法。
190.本发明实施例还提供一种计算机可读存储介质,存储有可执行指令,所述可执行指令被处理器执行时,实现本发明实施例提供的数据报文的传输方法。
191.在一些实施例中,计算机可读存储介质可以是fram、rom、prom、eprom、eeprom、闪存、磁表面存储器、光盘、或cd-rom等存储器;也可以是包括上述存储器之一或任意组合的各种设备。计算机可以是包括智能终端和服务器在内的各种计算设备。
192.在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
193.作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(html,hyper text markup language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
194.作为示例,可执行指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。
195.以上所述,仅为本发明的实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1