一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种报文处理的方法、设备以及存储介质与流程

2022-03-08 22:06:02 来源:中国专利 TAG:


1.本技术实施例涉及通信技术领域,具体涉及一种报文处理的方法、设备以及存储介质。


背景技术:

2.随着智能手机、平板等终端设备、家庭物联网(internet of things,iot)设备的逐渐丰富,上述提及的设备都可以通过无线保真(wireless fidelity,wi-fi)路由器等方式接入到互联网中。
3.目前,在物联网设备之间,要通过wi-fi无线路由器实现一个基本的客户端/服务器(client/server,c/s)通信报文的交互流程,需要经过传输控制协议/网际协议(transmission control protocol/internet protocol,tcp/ip)协议栈对数据报文进行封装、解封装等操作后,才能够基于wi-fi路由器将数据报文转发至对端的物联网设备。
4.显然,数据报文要在第一物联网设备与第二物联网设备之间进行流转,基于内核tcp/ip协议栈要依次经过tcp/udp协议等传输层协议、ip协议等网络层协议、以太网协议等链路层协议进行多层协议的报文头的封装、解封装,并且在用户空间、内核空间、内核协议栈内多次调度,多次内存复制、缓存数据报文,也由于内核tcp/ip协议栈相对厚重,导致数据报文的处理时延较长,处理效率较低,而且容易消耗中央处理器(central processing unit,cpu)的处理资源。而且还由于内核tcp/ip协议栈吞吐率较低,使得在当前局域网(local area network,lan)内基于wi-fi通信的物联网设备之间的数据传输难以充分利用物理带宽资源。


技术实现要素:

5.本技术实施例提供了一种报文处理的方法、设备以及存储介质,绕过厚重的内核tcp/ip协议栈,有效地降低报文在物联网设备间的转发时延,并且减少cpu处理资源的消耗,给其他应用提供了更多的cpu处理资源,使得处理响应更为流畅。
6.第一方面,本技术实施例提供了一种报文处理的方法,该方法可以包括:第一物联网设备获取第一报文;当所述第一报文为直通报文时,所述第一物联网设备根据以太网协议将所述第一报文封装为第二报文,所述第二报文包括目标媒体存储控制mac地址和第一报文;所述第一物联网设备向网络设备发送所述第二报文,以使得所述网络设备按照所述目标mac地址将所述第二报文转发至第二物联网设备,所述目标mac地址与所述第二物联网设备对应,所述第一物联网设备、所述网络设备以及所述第二物联网设备之间通过无线通信进行通信。通过上述方式,第一物联网设备在第一报文为直通报文时,直接基于以太网协议封装第一报文为第二报文,并通过无线通信将该第二报文发送至网络设备。这样,使得第一物联网设备不需要经过复杂的内核tcp/ip协议栈来处理第一报文,避免内核tcp/ip协议栈中各层协议栈调度、队列、缓存、报文复制等过程,降低了第一报文在第一物联网设备中的传输时延,节省了cpu处理资源。
7.可选地,结合上述第一方面,在第一种可能的实现方式中,当所述第一报文为直通报文时,所述第一物联网设备根据直通协议将所述第一报文封装为第二报文之前,所述方法还包括:所述第一物联网设备根据所述第一报文中的协议类型字段确定所述第一报文为直通报文。通过上述方式,基于第一报文中的协议类型字段能够灵活地明确出第一报文是否为直通报文,以便于在第一报文为直通报文时,能够绕过tcp/ip协议栈的通信能力,节省tcp/ip消息报文头长度,提高了物理带宽利用率。
8.可选地,结合上述第一方面或第一种可能的实现方式,在第二种可能的实现方式中,所述第一物联网设备将所述第一报文缓存至发送队列。
9.第二方面,本技术实施例提供了一种报文处理的方法,该方法可以包括:网络设备接收第一物联网设备发送的第二报文,所述第二报文由所述第一物联网设备在所述第一报文为直通报文时封装所述第一报文得到;所述网络设备解析所述第二报文,以得到目标媒体存储控制mac地址和所述第一报文;所述网络设备基于所述目标mac地址向第二物联网设备发送所述第二报文,所述第一物联网设备、所述网络设备以及所述第二物联网设备之间通过无线通信进行通信。通过上述方式,网络设备在解析第二报文后,能够在第一报文为直通报文时基于目标mac地址直接通过无线通信将第二报文转发至第二物联网设备,使得网络设备也无须经过复杂的内核tcp/ip协议栈来处理第一报文,同样避免内核tcp/ip协议栈中各层协议栈调度、队列、缓存、报文复制等过程,降低了第一报文在网络设备中的传输时延。
10.可选地,结合上述第二方面,在第一种可能的实现方式中,所述网络设备基于所述目标mac地址向第二物联网设备发送所述第二报文之前,所述方法还包括:所述网络设备基于所述第一报文中的协议类型字段判断所述第一报文是否为直通报文;对应地,所述网络设备基于所述目标mac地址向第二物联网设备发送所述第二报文,包括:当所述第一报文中的协议类型字段反映出所述第一报文为直通报文时,所述网络设备基于所述目标mac地址向第二物联网设备发送所述第二报文。通过上述方式,网络设备也无须经过复杂的内核tcp/ip协议栈来处理第一报文,同样避免内核tcp/ip协议栈中各层协议栈调度、队列、缓存、报文复制等过程,降低了第一报文在网络设备中的传输时延。
11.可选地,结合上述第二方面或第一种可能的实现方式,在第二种可能的实现方式中,所述网络设备从预设mac转发关系表中查询与所述目标mac地址对应的第二物联网设备。通过上述方式,基于预设mac转发关系表能够精准地寻找到与目标mac地址对应的第二物联网设备,避免了第二报文的误转发。
12.第三方面,本技术实施例提供了一种报文处理的方法,该方法可以包括:第二物联网设备接收网络设备发送的第二报文;所述第二物联网设备解析所述第二报文,以得到第一报文;当所述第一报文为直通报文时,所述第二物联网设备将所述第一报文缓存至接收队列中。通过上述方式,第二物联网设备也无须经过复杂的内核tcp/ip协议栈来处理第一报文,同样避免内核tcp/ip协议栈中各层协议栈调度、队列、缓存、报文复制等过程,降低了第一报文在第二物联网设备中的传输时延。
13.可选地,结合上述第三方面,在第一种可能的实现方式中,在所述第二物联网设备将所述第一报文缓存至接收队列中之前,所述方法还包括:所述第二物联网设备基于所述第一报文中的协议类型字段判断所述第一报文是否为直通报文。
14.第四方面,本技术实施例提供了一种第一物联网设备,该第一物联网设备可以包括:
15.获取单元,用于获取第一报文;
16.封装单元,用于在所述第一报文为直通报文时,根据以太网协议将所述第一报文封装为第二报文,所述第二报文包括目标媒体存储控制mac地址和第一报文;
17.发送单元,用于向网络设备发送所述第二报文,以使得所述网络设备按照所述目标mac地址将所述第二报文转发至第二物联网设备,所述目标mac地址与所述第二物联网设备对应,所述第一物联网设备、所述网络设备以及所述第二物联网设备之间通过无线通信进行通信。
18.可选地,结合上述第四方面,在第一种可能的实现方式中,所述第一物联网设备还包括:
19.确定单元,用于在所述第一报文为直通报文时,所述第一物联网设备根据直通协议将所述第一报文封装为第二报文之前,根据所述第一报文中的协议类型字段确定所述第一报文为直通报文。
20.可选地,结合上述第四方面或第一种可能的实现方式,在第二种可能的实现方式中,所述第一物联网设备还包括:
21.缓存单元,用于将所述第一报文缓存至发送队列。
22.第五方面,本技术实施例提供了一种网络设备,该网络设备可以包括:
23.接收模块,用于接收第一物联网设备发送的第二报文,所述第二报文由所述第一物联网设备在所述第一报文为直通报文时封装所述第一报文得到;
24.解析模块,用于解析所述第二报文,以得到目标媒体存储控制mac地址和所述第一报文;
25.发送模块,用于基于所述目标mac地址向第二物联网设备发送所述第二报文所述第一物联网设备、所述网络设备以及所述第二物联网设备之间通过无线通信进行通信。
26.可选地,结合上述第五方面,在第一种可能的实现方式中,所述网络设备还包括:
27.判断模块,用于在基于所述目标mac地址向第二物联网设备发送所述第二报文之前,基于所述第一报文中的协议类型字段判断所述第一报文是否为直通报文;
28.对应地,所述发送模块还用于:在所述第一报文中的协议类型字段反映出所述第一报文为直通报文时,基于所述目标mac地址向第二物联网设备发送所述第二报文。
29.可选地,结合上述第五方面第一种可能的实现方式,在第二种可能的实现方式中,所述网络设备还包括:查询模块,用于从预设mac转发关系表中查询与所述目标mac地址对应的第二物联网设备。
30.第六方面,本技术实施例提供了一种第二物联网设备,该第二物联网设备可以包括:
31.接收单元,用于接收网络设备发送的第二报文;
32.解析单元,用于解析所述第二报文,以得到第一报文;
33.缓存单元,用于在所述第一报文为直通报文时,将所述第一报文缓存至接收队列中。
34.可选地,结合上述第六方面,在第一种可能的实现方式中,所述第二物联网设备还
包括:
35.判断单元,用于在将所述第一报文缓存至接收队列中之前,基于所述第一报文中的协议类型字段判断所述第一报文是否为直通报文。
36.第七方面,本技术实施例提供了一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行如第一方面或第一方面任意一种可能实现方式的方法。
37.第八方面,本技术实施例提供了一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行如第二方面或第二方面任意一种可能实现方式的方法。
38.第九方面,本技术实施例提供了一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行如第三方面或第三方面任意一种可能实现方式的方法。
39.第十方面,本技术实施例提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行如第一方面或第一方面任意一种、第二方面或第二方面任意一种、以及第三方面或第三方面任意一种可能实现方式的方法。
40.第十一方面,本技术实施例提供了一种芯片系统,该芯片系统包括处理器,用于支持第一物联网设备实现上述第一方面或第一方面任意一种可能的实现方式中所涉及的功能。在一种可能的设计中,芯片系统还包括存储器,存储器,用于保存信息生成设备必要的程序指令和数据。该芯片系统,可以由芯片构成,也可以包含芯片和其他分立器件。
41.第十二方面,本技术实施例提供了一种芯片系统,该芯片系统包括处理器,用于支持网络设备实现上述第二方面或第二方面任意一种可能的实现方式中所涉及的功能。在一种可能的设计中,芯片系统还包括存储器,存储器,用于保存信息生成设备必要的程序指令和数据。该芯片系统,可以由芯片构成,也可以包含芯片和其他分立器件。
42.第十三方面,本技术实施例提供了一种芯片系统,该芯片系统包括处理器,用于支持第二物联网设备实现上述第三方面或第三方面任意一种可能的实现方式中所涉及的功能。在一种可能的设计中,芯片系统还包括存储器,存储器,用于保存信息生成设备必要的程序指令和数据。该芯片系统,可以由芯片构成,也可以包含芯片和其他分立器件。
43.从以上技术方案可以看出,本技术实施例具有以下优点:
44.本技术实施例中,通过自定义直通报文,使得第一物联网设备在判断出第一报文为直通报文时,能够直接基于以太网协议封装该第一报文为第二报文,然后通过无线通信将第二报文发送至网络设备,进一步使网络设备能够按照目标mac地址将第二报文转发至第二物联网设备。通过上述方式,使得报文在物联网设备的之间收发流程,不需要经过复杂的内核tcp/ip协议栈的处理,避免内核tcp/ip协议栈中各层协议栈调度、队列、缓存、报文复制等过程,能够有效地降低报文转发时延,提升用户体验;以及,减少了cpu资源消耗,给其他应用提供了更多的cpu处理资源,使得处理响应更为流畅提供。另外,绕过厚重的内核tcp/ip协议栈的通信能力,节省tcp/ip消息报文头长度,提高了物理带宽利用率。
附图说明
45.为了更清楚地说明本技术实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例。
46.图1是传统方案中提供的一种基于内核tcp/ip协议栈的通信流程图;
47.图2是本技术实施例的一种可能的系统框架示意图;
48.图3是本技术实施例中提供的一种自定义直通报文的示意图;
49.图4是本技术实施例提供的报文处理的方法的一个实施例示意图;
50.图5是本技术实施例中提供的在第一物联网设备中增加第一直通模块的示意图;
51.图6是本技术实施例中提供的在网络设备中增加第二直通模块的示意图;
52.图7是本技术实施例提供的通信设备的硬件结构示意图;
53.图8是本技术实施例提供的一种第一物联网设备的结构示意图;
54.图9是本技术实施例提供的一种网络设备的结构示意图;
55.图10是本技术实施例提供的一种第二物理网设备的结构示意图。
具体实施方式
56.本技术实施例提供了一种报文处理的方法、设备以及存储介质,绕过厚重的内核tcp/ip协议栈,有效地降低报文在物联网设备间的转发时延,并且减少cpu处理资源的消耗,给其他应用提供了更多的cpu处理资源,使得处理响应更为流畅提供。
57.本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本技术的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
58.下面将结合附图,对本技术中的技术方案进行描述。
59.目前,在lan内,要通过wi-fi路由器实现一个物联网设备到另外一个物联网设备之间的c/s通信报文的交互流程,需要经过设备中的内核tcp/ip协议栈、路由器中的内核tcp/ip协议栈等对数据报文进行封装、解封装等操作后,才能够基于wi-fi路由器将数据报文转发至对端的物联网设备。例如,请参阅图1,为传统方案中提供的一种基于内核tcp/ip协议栈的通信流程图。从图1可以看出,第一物联网设备若想要上报数据报文至处于不同网段中的第二物联网设备,则需要第一物联网设备中的应用层将数据报文发送到该第一物联网设备中的内核tcp/ip协议栈,使得能够对该数据报文进行封装,然后再通过网卡驱动将该封装后的数据报文发送至路由器。路由器在接收到第一物联网设备发送的封装后的数据报文后,从网卡驱动转送至路由器的内核协议栈,从而经过解封装、再封装成能够被第二物联网设备识别的数据报文后,通过路由转发规则将数据报文转发至对应的网卡驱动上,由网卡驱动转发至第二物联网设备中。这样,第二物联网设备中的网卡驱动接收到数据报文时,也需要经过第二物联网设备内的内核tcp/ip协议栈后,才能够发送至相应的应用层。很明显,基于内核tcp/ip协议栈实现数据报文的收发、转发,由于协议层次较多、交互流程较为复杂,导致报文转发使用的时延较长、以及消耗大量的cpu处理资源;而且内核tcp/ip协议栈吞吐率较低,无法充分利用物理带宽传输基于wi-fi传输的物联网设备间的大数据。
60.因此,为了解决上述的技术问题,本技术实施例中提供了一种报文处理的方法,该报文处理的方法能够应用在lan内基于无线通信的物联网场景中。例如:智能冰箱、扫地机、空调、音箱和/或电视机等家庭物联网设备组成的智能家居物联网场景,或者由智能手机、
平板等终端设备组成的物联网场景。在实际应用中,还可以是其他的物联网场景,具体在本技术实施例中将不做限定说明。应理解的是,上述提及的无线通信可以包含但不限于wi-fi、蓝牙等,在本技术实施例中不限定上述的无线通信的类型。本技术实施例中仅以wi-fi为例进行说明。
61.应理解的是,上述所描述的第一物联网设备和第二物联网设备可以包括但不限于:智能冰箱、扫地机、空调、音箱、电视机、智能手机或平板等,具体不做限定说明。
62.图2示出了本技术实施例的一种可能的系统框架示意图。从图2可知,本技术实施例中报文处理的流程并不需要经过内核tcp/ip协议栈,而是在第一物联网设备、网络设备、第二物联网设备中分别增加直通模块,例如:在第一物联网设备中增加第一直通模块、在网络设备中增加第二直通模块、以及第二物联网设备中增加第三直通模块。这样,第一物联网设备在从应用层中获取到的第一报文为直通报文时,在新增的第一直通模块内仅通过以太网协议封装该第一报文,并将封装后得到的第二报文通过网卡驱动发送至网络设备。而网络设备在基于与第一物联网设备对应的网卡驱动接收到第二报文并解封装第二报文后,在判断出第二报文中所包括的第一报文为直通报文时,也只需要通过在第二直通模块中按照mac地址转发该第二报文,并且通过与第二物联网设备对应的网卡驱动转发该第二报文至第二物联网设备。第二物联网设备在通过网卡驱动接收到第二报文时,也能够通过第三直通模块将该第二报文上传至相应的应用层中。
63.应理解,上述的第一物联网设备、第二物联网设备可以包括但不限于智能冰箱、空调、扫地机、智能手机等设备。网络设备可以包括但不限于路由器等。此外,在实际应用中,上述图2中所描述的系统框架应当还可以应用在包括第三物联网设备、第四物联网设备等多个物联网设备、以及多个相应的网络设备在内的物联网场景中,对于物联网设备、网络设备的数目本技术将不做限定。为了便于理解,在本技术实施例仅仅从第一物联网设备、网络设备以及第二物联网设备这三个设备的交互角度来描述。
64.需要说明的是,上述所提及的直通报文可以是用户根据需求自定义得到的,即可以使用ethertype预留类型等自有定义类型来标识出直通报文。
65.例如,请参阅图3,为本技术实施例中提供的一种自定义直通报文的示意图。如图3所示,该直通报文可以包括6字节的目标媒体存储控制(media access control,mac)地址、6字节的源mac地址以及2字节的协议类型等。其中,该目标mac地址主要用于标识接收直通报文的物联网设备,如上述提及的第二物联网设备;而2字节的协议类型主要用于反映出该所要收发或转发的报文为直通报文,即用户自定义的报文。该协议类型中的字段值可以根据ieee802.3协议标准中来定义,只要该字段值与目前的ip协议、tcp协议、地址解析协议(address resolution protocol,arp)等已有协议中的字段值不冲突、且该字段值小于1536即可,具体在本技术实施例中将不做限定说明。
66.下面将从交互的角度描述本技术中报文处理的方法。请参阅图4所示,为本技术实施例提供的报文处理的方法的一个实施例示意图,该方法可以包括:
67.401、第一物联网设备获取第一报文。
68.第一物联网设备可以在应用层上获取到第一报文。
69.402、当第一报文为直通报文时,第一物联网设备根据以太网协议将第一报文封装为第二报文,第二报文包括目标mac地址和第一报文。
70.实施例中,第一物联网设备在得到第一报文时,可以先确定该第一报文是否为用户自定义的直通报文。若该第一报文为直通报文,则第一物联网设备可以直接根据以太网协议将第一报文封装为第二报文。具体地,第一物联网设备在第一报文的报文头部添加上以太网首部,这样封装后得到的第二报文便可以通过相应的网络接口发送至网络设备了。可以理解的是,第二报文包括了目标mac地址和第一报文。
71.示意性的,在第一报文为直通报文时,第一物联网设备根据以太网协议将第一报文封装为第二报文之前,还可以包括:第一物联网设备根据第一报文中的协议类型字段确定第一报文为直通报文。
72.由于第一报文携带了相应的协议类型字段,因此第一物联网设备可以基于该第一报文中的协议类型字段来确定该第一报文是否为直通报文。直通报文可以理解成用户自定义的报文,且该直通报文中协议类型字段的字段值可以根据ieee 802.3协议标准中来定义,只要该字段值与目前的ip协议、tcp协议、arp协议等已有协议中的字段值不冲突、且该字段值小于1536即可。例如:第一物联网设备可以判断该第一报文中的协议类型字段的字段值是否为“0
×
0800(ip协议的字段值)”、“0
×
86dd(网际协议第6版(internet protocol version 6,ipv6)协议的字段值)”等等已有协议中的字段值。若该第一报文中的协议类型字段的字段值并非是已有协议中的字段值,那么就可以确定出该第一报文为直通报文。
73.具体地,结合图5对第一物联网设备处理报文的流程做进一步地描述。参阅图5,为本技术实施例中提供的在第一物联网设备中增加第一直通模块的示意图。上述提及的第一直通模块至少具有如下功能:对应用层上的应用程序提供应用程序收发接口(application programming interface,api);能够支持直通报文的收发队列、配置队列缓冲大小以及支持收发队列的收发调度;支持直通报文的封装和解封装;支持与网卡驱动交互等。
74.因此,在上述第一直通模块所具备相应功能的基础上,如图5所示,从应用层上的应用程序中获取到第一报文,然后在判断出第一报文为直通报文的时候,再基于api收发接口将第一报文缓存至新增的第一直通模块中的发送队列。进一步地利用该第一直通模块支持的报文封装和解封装等功能,使第一直通模块基于以太网协议将第一报文封装为第二报文。最后,第一直通模块再将该第二报文发送至网卡驱动。
75.需要说明的是,上述的第一物联网设备主要从发送报文的角度进行了描述,在实际应用中,该第一物联网设备也可以接收来自第二物联网设备的报文。因此,在图5中还示出了经过第一直通模块处理接收来自第二物联网设备的报文的流程(虚线部分)。例如,假设第一物联网设备中的网卡驱动从网络设备中接收到封装后的第二报文后,将该第二报文发送至第一直通模块。这样,第一直通模块通过对第二报文进行解析之后,判断出该第二报文中所包括的第一报文是否为自定义的直通报文。若为直通报文,第一直通模块则直接将该第一报文缓存至接收队列中,并通过api收发接口将从第二物联网设备中接收到的该第一报文发送至应用层的应用程序中,这样便完成了第一物联网设备与第二物联网设备之间的报文流转。
76.可理解的是,若第一直通模块判断出第一报文不是直通报文时,则直接发送至内核tcp/ip协议栈,通过内核tcp/ip协议栈对该第一报文进行处理。
77.403、第一物联网设备向网络设备发送第二报文。
78.第一物联网设备可以通过wi-fi等无线通信将该第二报文发送至网络设备。
79.404、网络设备解析第二报文,以得到目标mac地址和第一报文。
80.405、网络设备基于第一报文中的协议类型字段判断第一报文是否为直通报文。
81.实施例中,网络设备在解析出第二报文中所包括的第一报文和目标mac地址后,也可以进一步地基于该第一报文中的协议类型字段判断第一报文是否为直通报文。例如:网络设备可以判断该第一报文中的协议类型字段的字段值是否为“0
×
0806(arp协议的字段值)”、“0
×
86dd(ipv6协议的字段值)”等等已有协议中的字段值。若该第一报文中的协议类型字段的字段值并非是已有协议中的字段值,那么网络设备就可以确定出该第一报文为直通报文。
82.406、当第一报文中的协议类型字段反映出第一报文为直通报文时,网络设备基于目标mac地址向第二物联网设备发送第二报文。
83.当网络设备确定出第一报文为直通报文时,则不需要经过复杂的内核tcp/ip协议栈对该第一报文进行处理,而是由网络设备基于该目标mac地址将该第二报文转发至第二物联网设备即可。
84.在一些实施例中,方法还可以包括:网络设备从预设mac转发关系表中查询与目标mac地址对应的第二物联网设备。可以理解的是,网络设备可以预先在mac转发关系表中,记录下在该lan内各个接入的物联网设备所对应的mac地址。这样,在网络设备解析得到第二报文中的mac地址时,便可以基于该预设mac转发关系表确定出相应的第二物联网设备。
85.结合图6对网络设备处理报文的流程做进一步地描述,参阅图6,为本技术实施例中提供的在网络设备中增加第二直通模块的示意图。上述提及的第二直通模块也可以称为路由器直通模块,至少具有如下功能:记录lan内各个接入设备的mac地址;支持按照mac地址转发直通报文;支持与网卡驱动交互等。
86.在上述第二直通模块所具备相应功能的基础上,如图6所示,从入接口的网卡驱动中接收来自第一物联网设备发送的第二报文后,基于第二直通模块将该第二报文进行解析,以及对解析得到第一报文做判断。在第二直通模块判断出第一报文为直通报文时,便可以根据目标mac地址将第二报文转发至出接口的网卡驱动,由出接口的网卡驱动通过wi-fi等无线通信将第二报文发送至与该目标mac地址对应的第二物联网设备。
87.可以理解的是,若第二直通模块判断出第一报文不是直通报文时,则直接发送至内核tcp/ip协议栈,通过内核tcp/ip协议栈对该第一报文进行处理。
88.407、第二物联网设备解析第二报文,以得到第一报文。
89.408、第二物联网设备基于第一报文中的协议类型字段判断第一报文是否为直通报文。
90.实施例中,第二物联网设备在通过wi-fi等无线通信接收到网络设备发送的第二报文后,通过对该第二报文进行解析,能够得到所包含的第一报文。此时,需要第二物联网设备对第一报文做进一步地判断处理,主要是为了避免直通报文经过复杂的内核tcp/ip协议栈的处理,导致报文传输的时延较长、消耗较多的cpu资源等。例如:第二物联网设备可以判断该第一报文中的协议类型字段的字段值是否为“0
×
0806(arp协议的字段值)”、“0
×
0800(ip协议的字段值)”等等已有协议中的字段值。若该第一报文中的协议类型字段的字段值并非是已有协议中的字段值,那么第二物联网设备就可以确定出该第一报文为直通报文。
91.409、当第一报文为直通报文时,第二物联网设备将第一报文缓存至接收队列中。
92.实施例中,在第二物联网设备确定出第一报文为直通报文时,则可以不经过内核tcp/ip协议栈的处理,而是直接将该第一报文缓存至接收队列中,后续便可以到达应用层上的应用程序中。
93.需要说明的一点是,也可以在第二物联网设备中增加一个第三直通模块,该第三直通模块所具备的功能可以参照图5中所描述的第一直通模块进行理解,此处将不做赘述。具体地,参照图5中虚线描述的部分进行理解,在第二物联网设备中的网卡驱动接收到第二报文时,由网卡驱动发送至第三直通模块;第三直通模块通过对第二报文进行解析之后,判断出该第二报文中所包括的第一报文是否为自定义的直通报文。若为直通报文,第三直通模块则直接将该第一报文缓存至接收队列中,并通过api收发接口将从第二物联网设备中接收到的该第一报文发送至应用层的应用程序中,这样便完成了与第一物联网设备之间的报文流转。
94.可以理解的是,若第三直通模块判断出第一报文不是直通报文时,则直接发送至内核tcp/ip协议栈,通过内核tcp/ip协议栈对该第一报文进行处理。
95.本技术实施例中,通过自定义直通报文,使得第一物联网设备在判断出第一报文为直通报文时,能够直接基于以太网协议封装该第一报文为第二报文,然后通过无线通信将第二报文发送至网络设备。网络设备在接收到第二报文后,解析出相应的目标mac地址和第一报文,并且基于目标mac地址转发第二报文至第二物联网设备中。由第二物联网设备对第二报文解析,并判断该第二报文中所包括的第一包括是否为直通报文,在第一报文为直通报文时,第二物联网设备直接将第一报文缓存至接收队列。通过上述方式,使得报文在物联网设备的之间收发流程,不需要经过复杂的内核tcp/ip协议栈的处理,避免内核tcp/ip协议栈中各层协议栈调度、队列、缓存、报文复制等过程,能够有效地降低报文转发时延,提升用户体验;以及,减少了cpu资源消耗,给其他应用提供了更多的cpu处理资源,使得处理响应更为流畅提供。另外,绕过厚重的内核tcp/ip协议栈的通信能力,节省tcp/ip消息报文头长度,提高了物理带宽利用率。
96.上述主要从方法的角度对本技术实施例提供的方案进行了介绍。可以理解的是,上述的第一物联网设备、网络设备、第二物联网设备为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的功能,本技术能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
97.从实体设备角度来描述,上述第一物联网设备、网络设备和/或第二物联网设备可以由一个实体设备实现,也可以由多个实体设备共同实现,还可以是一个实体设备内的一个逻辑功能单元,本技术实施例对此不做具体限定。
98.例如,上述第一物联网设备、网络设备和/或第二物联网设备可以由图7中的通信设备来实现。图7为本技术实施例提供的通信设备的硬件结构示意图。该通信设备包括至少一个处理器701、存储器702、通信线路703以及收发器704。
99.处理器701可以是一个通用中央处理器cpu,微处理器,特定应用集成电路
(application-specific integrated circuit,服务器ic),或一个或多个用于控制本技术方案程序执行的集成电路。
100.通信线路703可包括一通路,在上述组件之间传送信息。
101.收发器704,使用任何收发器一类的装置,用于与其他设备或通信网络通信,如以太网,无线接入网(radio access network,ran),无线局域网(wireless local area networks,wlan),有线局域网,有线接入网等。该收发器704也可以是收发电路或者收发信机。该通信设备也可以包括通信接口706。
102.存储器702可以是只读存储器(read-only memory,rom)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,ram)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electrically erable programmable read-only memory,eeprom)、只读光盘(compact disc read-only memory,cd-rom)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器可以是独立存在,通过通信线路703与处理器701相连接。存储器702也可以和处理器701集成在一起。
103.其中,存储器702用于存储执行本技术方案的计算机执行指令,并由处理器701来控制执行。处理器701用于执行存储器702中存储的计算机执行指令,从而实现本技术上述方法实施例提供的报文处理的方法。
104.一种可能的实现方式,本技术实施例中的计算机执行指令也可以称之为应用程序代码,本技术实施例对此不做具体限定。
105.在具体实现中,作为一种实施例,处理器701可以包括一个或多个cpu,例如图7中的cpu0和cpu1。
106.在具体实现中,作为一种实施例,通信设备可以包括多个处理器,例如图7中的处理器701和处理器705。这些处理器中的每一个可以是一个单核(single-cpu)处理器,也可以是一个多核(multi-cpu)处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机执行指令)的处理核。
107.从功能单元的角度,本技术可以根据上述方法实施例对第一物联网设备、网络设备和/或第二物联网设备进行功能单元的划分,例如,可以对应各个功能划分各个功能单元,也可以将两个或两个以上的功能集成在一个功能单元中。上述集成的功能单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
108.比如,以采用集成的方式划分各个功能单元的情况下,图8示出了本技术实施例提供的一种第一物联网设备的结构示意图。如图8所示,本技术的第一物联网设备的一个实施例可以包括:
109.获取单元801,用于获取第一报文;
110.封装单元802,用于在所述第一报文为直通报文时,根据以太网协议将所述第一报文封装为第二报文,所述第二报文包括目标mac地址和第一报文;
111.发送单元803,用于向网络设备发送所述第二报文,以使得所述网络设备按照所述目标mac地址将所述第二报文转发至第二物联网设备,所述目标mac地址与所述第二物联网
设备对应,所述第一物联网设备、所述网络设备以及所述第二物联网设备之间通过无线通信进行通信。
112.在本技术的一些实施例中,所述第一物联网设备还包括:确定单元,用于在所述第一报文为直通报文时,所述第一物联网设备根据直通协议将所述第一报文封装为第二报文之前,根据所述第一报文中的协议类型字段确定所述第一报文为直通报文。
113.在本技术的一些实施例中,所述第一物联网设备还包括:缓存单元,用于将所述第一报文缓存至发送队列。
114.上述主要从功能模块的角度介绍了第一物联网设备,下面将从功能模块的角度介绍网络设备。比如,以采用集成的方式划分各个功能单元的情况下,图9示出了本技术实施例提供的一种网络设备的结构示意图。如图9所示,本技术的网络设备的一个实施例可以包括:
115.接收模块901,用于接收第一物联网设备发送的第二报文,所述第二报文由所述第一物联网设备在所述第一报文为直通报文时封装所述第一报文得到;
116.解析模块902,用于解析所述第二报文,以得到目标mac地址和所述第一报文;
117.发送模块903,用于基于所述目标mac地址向第二物联网设备发送所述第二报文所述第一物联网设备、所述网络设备以及所述第二物联网设备之间通过无线通信进行通信。
118.在本技术的一些实施例中,所述网络设备还包括:
119.判断模块,用于在基于所述目标mac地址向第二物联网设备发送所述第二报文之前,基于所述第一报文中的协议类型字段判断所述第一报文是否为直通报文;
120.对应地,所述发送模块903还用于:在所述第一报文中的协议类型字段反映出所述第一报文为直通报文时,基于所述目标mac地址向第二物联网设备发送所述第二报文。
121.在本技术的一些实施例中,所述网络设备还包括:查询模块,用于从预设mac转发关系表中查询与所述目标mac地址对应的第二物联网设备。
122.上述主要从功能模块的角度介绍了第一物联网设备和网络设备,下面将从功能模块的角度介绍第二物联网设备。比如,以采用集成的方式划分各个功能单元的情况下,图10示出了本技术实施例提供的一种第二物联网设备的结构示意图。如图10所示,本技术的第二物联网设备的一个实施例可以包括:
123.接收单元1001,用于接收网络设备发送的第二报文;
124.解析单元1002,用于解析所述第二报文,以得到第一报文;
125.缓存单元1003,用于在所述第一报文为直通报文时,将所述第一报文缓存至接收队列中。
126.在本技术的一些实施例中,所述第二物联网设备还包括:判断单元,用于在将所述第一报文缓存至接收队列中之前,基于所述第一报文中的协议类型字段判断所述第一报文是否为直通报文。
127.本技术实施例提供的第一物联网设备、网络设备和/或第二物联网设备用于执行图4中对应的方法实施例中的方法,故本技术实施例可以参考图4对应的方法实施例中的相关部分进行理解。
128.本技术实施例中,第一物联网设备、网络设备和/或第二物联网设备以采用集成的方式划分各个功能单元的形式来呈现。这里的“功能单元”可以指特定应用集成电路
(application-specific integrated circuit,asic),执行一个或多个软件或固件程序的处理器和存储器,集成逻辑电路,和/或其他可以提供上述功能的器件。在一个简单的实施例中,本领域的技术人员可以想到第一物联网设备、网络设备和/或第二物联网设备可以采用图7所示的形式。
129.比如,图7的处理器701可以通过调用存储器702中存储的计算机执行指令,使得第一物联网设备、网络设备和/或第二物联网设备执行图4中对应的方法实施例中第一物联网设备、网络设备和/或第二物联网设备所执行的方法。
130.具体的,图8中的封装单元802,确定单元、缓存单元,以及图9中的解析模块902,判断模块、查询模块,以及图10中的解析单元1002、缓存单元1003、判断单元的功能/实现过程可以通过图7中的处理器701调动存储器702中存储的计算机执行指令来实现。
131.图8中的获取单元801、发送单元803,图9中的接收模块901、发送模块903、以及图10中的接收单元1001的功能/实现过程可以通过图7中的收发器704来实现。
132.在本技术图7的设备中各个组件通信连接,即处理单元(或者处理器)、存储单元(或者存储器)和收发单元(收发器)之间通过内部连接通路互相通信,传递控制和/或数据信号。本技术上述方法实施例可以应用于处理器中,或者由处理器实现上述方法实施例的步骤。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法实施例的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是中央处理器(central processing unit,cpu),网络处理器(network processor,np)或者cpu和np的组合、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现成可编程门阵列(field programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本技术中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本技术所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。虽然图中仅仅示出了一个处理器,该装置可以包括多个处理器或者处理器包括多个处理单元。具体的,处理器可以是一个单核(single-cpu)处理器,也可以是一个多核(multi-cpu)处理器。
133.存储器用于存储处理器执行的计算机指令。存储器可以是存储电路也可以是存储器。存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器、可编程只读存储器、可擦除可编程只读存储器、电可擦除可编程只读存储器或闪存。易失性存储器可以是随机存取存储器,其用作外部高速缓存。存储器可以独立于处理器,也可以是处理器中的存储单元,在此不做限定。虽然图中仅仅示出了一个存储器,该装置也可以包括多个存储器或者存储器包括多个存储单元。
134.收发器用于实现处理器与其他单元或者网元的内容交互。具体的,收发器可以是该装置的通信接口,也可以是收发电路或者通信单元,还可以是收发信机。收发器还可以是处理器的通信接口或者收发电路。可选的,收发器可以是一个收发芯片。该收发器还可以包
括发送单元和/或接收单元。在一种可能的实现方式中,该收发器可以包括至少一个通信接口。在另一种可能的实现方式中,该收发器也可以是以软件形式实现的单元。在本技术的各实施例中,处理器可以通过收发器与其他单元或者网元进行交互。例如:处理器通过该收发器获取或者接收来自其他网元的内容。若处理器与收发器是物理上分离的两个部件,处理器可以不经过收发器与该装置的其他单元进行内容交互。
135.一种可能的实现方式中,处理器、存储器以及收发器可以通过总线相互连接。总线可以是外设部件互连标准(peripheral component interconnect,pci)总线或扩展工业标准结构(extended industry standard architecture,eisa)总线等。总线可以分为地址总线、数据总线、控制总线等。
136.本技术实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本技术实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其他实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
137.在本技术的各实施例中,为了方便理解,进行了多种举例说明。然而,这些例子仅仅是一些举例,并不意味着是实现本技术的最佳实现方式。
138.上述实施例,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现,当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
139.计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机执行指令时,全部或部分地产生按照本技术实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solid state disk(ssd))等。
140.以上对本技术所提供的技术方案进行了详细介绍,本技术中应用了具体个例对本技术的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本技术的方法及其核心思想;同时,对于本领域的一般技术人员,依据本技术的思想,在具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本技术的限制。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献