数据传输方法、装置及存储介质与流程



1.本技术涉及通信技术领域,尤其涉及一种数据传输方法、装置及存储介质。


背景技术:



2.服务器管理有两种途径:通过带外管理设备管理,或者通过带内管理设备管理。其中,带外管理设备中运行有服务器带外管理软件,负责整体服务器的智能管理;带内管理设备中运行有带内管理软件,在服务器带内操作系统上工作,负责服务器硬件信息采集,性能数据采集,驱动管理,软件管理等功能。
3.相关技术中,如图1所示,服务器10的带外管理设备12与带内管理设备14之间通常通过快速外设互联标准(peripheral component interconnect express,pcie)设备16进行数据通信。其中,pcie设备16可以是网络设备。
4.但是在上述的通信机制中,pcie设备不支持热插拔,需要安装相应的驱动才可以工作,且在安装驱动的过程中极有可能带来设备安全问题和监控告警问题。


技术实现要素:



5.有鉴于此,本技术实施例提出了一种数据传输方法、装置及存储介质。本技术实施例提供了一种带内外字符设备的通信机制,避免了相关技术中pcie设备不支持热插拔,需要安装驱动才可工作的问题,解决了网络设备带来的设备安全问题和监控告警问题,提高了带内外管理设备之间数据传输的及时性和可靠性。
6.第一方面,本技术的实施例提供了一种数据传输方法,用于包括第一管理设备和第二管理设备的服务器中,所述方法包括:
7.所述第一管理设备获取报文数据,所述报文数据用于请求所述第二管理设备的指定服务;
8.所述第一管理设备通过自身的第一字符设备将所述报文数据发送至所述第二管理设备;
9.所述第二管理设备通过自身的第二字符设备接收所述报文数据;
10.其中,所述第一管理设备为带外管理设备和带内管理设备中的一种,所述第二管理设备为所述带外管理设备和所述带内管理设备中的另一种。
11.在该实现方式中,带外管理设备和带内管理设备可以通过各自的字符设备进行报文数据的传输,实现了带内外字符设备的通信机制,避免了相关技术中pcie设备不支持热插拔,需要安装驱动才可工作的问题,提高了带内外管理设备之间的数据传输效率;并且,解决了网络设备带来的设备安全问题和监控告警问题,保证了带内外管理设备之间数据传输的可靠性。
12.在一种可能的实现方式中,所述第一管理设备获取报文数据,包括:
13.所述第一管理设备通过第一网络端口监听本地应用程序的报文请求,所述报文请求用于请求所述第二管理设备的第二服务端口的指定服务;
14.所述第一管理设备将监听到的所述报文请求进行封装得到所述报文数据。
15.在该实现方式中,第一管理设备可以通过第一网络端口监听本地应用程序的报文请求,将监听到的报文请求进行封装得到报文数据,以便后续将该报文数据发送至第二管理设备,从而请求第二管理设备的第二服务端口的指定服务。
16.在另一种可能的实现方式中,所述方法还包括:
17.所述第一管理设备预先建立并存储所述第一网络端口与所述第二服务端口之间的绑定关系。
18.在该实现方式中,第一管理设备预先建立并存储第一网络端口与第二服务端口之间的绑定关系,借助第一网络端口监听对端的服务端口,实现直接访问对端服务端口的方式。
19.在另一种可能的实现方式中,所述第一管理设备包括第一用户态程序和第二用户态程序,所述第一管理设备通过第一网络端口监听本地应用程序的报文请求,包括:
20.所述第一用户态程序通过所述第一网络端口监听所述本地应用程序的报文请求;
21.所述第一管理设备将监听到的所述报文请求进行封装得到所述报文数据,包括:
22.所述第一用户态程序将监听到的所述报文请求发送至所述第二用户态程序;
23.所述第二用户态程序将所述报文请求进行封装得到所述报文数据。
24.在该实现方式中,第一用户态程序通过第一网络端口监听本地应用程序的报文请求,第一用户态程序将监听到的报文请求发送至第二用户态程序,第二用户态程序将报文请求进行封装得到报文数据,实现了第一管理设备中用户态程序之间的数据交互机制。
25.在另一种可能的实现方式中,所述第一管理设备通过自身的第一字符设备将所述报文数据发送至所述第二管理设备之前,还包括:
26.所述第二用户态程序将所述报文数据写入所述第一字符设备。
27.在该实现方式中,第二用户态程序将报文数据写入第一字符设备,以便后续第一字符设备通过指定传输通道将报文数据发送至第二管理设备,从而实现带内外字符设备的通信机制。
28.在另一种可能的实现方式中,所述第二管理设备通过自身的第二字符设备接收所述报文数据之后,还包括:
29.所述第二管理设备对接收到的所述报文数据进行解封装得到所述报文请求;
30.所述第二管理设备通过第二网络端口将所述报文请求发送至所述第二服务端口。
31.在该实现方式中,第二管理设备对接收到的报文数据进行解封装得到报文请求,第二管理设备通过第二网络端口将报文请求发送至第二服务端口,以便后续第二服务端口对报文请求进行处理,保证了带内外管理设备之间数据传输的可靠性。
32.在另一种可能的实现方式中,所述第二管理设备包括第三用户态程序和第四用户态程序,所述第二管理设备对接收到的所述报文数据进行解封装得到所述报文请求,包括:
33.所述第三用户态程序从所述第二字符设备中获取所述报文数据;
34.所述第三用户态程序对所述报文数据进行解封装得到所述报文请求;
35.所述第二管理设备通过第二网络端口将所述报文请求发送至所述第二服务端口,包括:
36.所述第三用户态程序将所述报文请求发送至所述第四用户态程序;
37.所述第四用户态程序通过所述第二网络端口将所述报文请求发送至所述第二服务端口。
38.在该实现方式中,第三用户态程序从第二字符设备中获取报文数据,第三用户态程序对报文数据进行解封装得到报文请求,第三用户态程序将报文请求发送至第四用户态程序,第四用户态程序通过第二网络端口将报文请求发送至第二服务端口,实现了第二管理设备中用户态程序之间的数据交互机制。
39.在另一种可能的实现方式中,所述方法还包括:
40.所述第二管理设备通过所述第二网络端口接收所述第二服务端口发送的响应信息;
41.所述第二管理设备通过自身的所述第二字符设备将所述响应信息发送至所述第一管理设备;
42.所述第一管理设备通过自身的所述第一字符设备接收所述响应信息。
43.在该实现方式中,第二管理设备通过第二网络端口接收第二服务端口发送的响应信息,第二管理设备通过自身的第二字符设备将响应信息发送至第一管理设备,第一管理设备通过自身的第一字符设备接收响应信息,即带外管理设备和带内管理设备可以通过各自的字符设备进行响应信息的传输,实现了带内外字符设备的通信机制,进一步提高了带内外管理设备之间数据传输的及时性和可靠性。
44.在另一种可能的实现方式中,所述第一字符设备为所述第一管理设备的第一内核态程序创建的usb字符设备,所述第二字符设备为所述第二管理设备的第二内核态程序创建的usb字符设备。
45.在该实现方式中,外管理设备和带内管理设备可以通过各自的usb字符设备进行通信,一方面,usb设备支持热插拔,在需要时使能,使用完成后,可以禁用;另一方面,操作系统自带驱动,不需要用户额外编译安装驱动;另一方面,内核版本升级时,也不会出现兼容性问题;另一方面,windows系统下不会出现未知设备,从而在提高了带内外管理设备之间的数据传输效率的同时,保证了带内外管理设备之间数据传输的安全性和可靠性。
46.第二方面,本技术的实施例提供了一种数据传输方法,用于第一管理设备中,所述方法包括:
47.所述第一管理设备获取报文数据,所述报文数据用于请求第二管理设备的指定服务;
48.所述第一管理设备通过自身的第一字符设备将所述报文数据发送至所述第二管理设备的第二字符设备;
49.其中,所述第一管理设备为带外管理设备和带内管理设备中的一种,所述第二管理设备为所述带外管理设备和所述带内管理设备中的另一种。
50.在一种可能的实现方式中,所述第一管理设备获取报文数据,包括:
51.所述第一管理设备通过第一网络端口监听本地应用程序的报文请求,所述报文请求用于请求所述第二管理设备的第二服务端口的指定服务;
52.所述第一管理设备将监听到的所述报文请求进行封装得到所述报文数据。
53.在另一种可能的实现方式中,所述方法还包括:
54.所述第一管理设备预先建立并存储所述第一网络端口与所述第二服务端口之间
的绑定关系。
55.在另一种可能的实现方式中,所述第一管理设备包括第一用户态程序和第二用户态程序,所述第一管理设备通过第一网络端口监听本地应用程序的报文请求,包括:
56.所述第一用户态程序通过所述第一网络端口监听所述本地应用程序的报文请求;
57.所述第一管理设备将监听到的所述报文请求进行封装得到所述报文数据,包括:
58.所述第一用户态程序将监听到的所述报文请求发送至所述第二用户态程序;
59.所述第二用户态程序将所述报文请求进行封装得到所述报文数据。
60.在另一种可能的实现方式中,所述第一管理设备通过自身的第一字符设备将所述报文数据发送至所述第二管理设备的第二字符设备之前,还包括:
61.所述第二用户态程序将所述报文数据写入所述第一字符设备。
62.在另一种可能的实现方式中,所述方法还包括:
63.所述第一管理设备通过自身的所述第一字符设备接收所述第二管理设备的所述第二字符设备发送的响应信息。
64.在另一种可能的实现方式中,所述第一字符设备为所述第一管理设备的第一内核态程序创建的usb字符设备,所述第二字符设备为所述第二管理设备的第二内核态程序创建的usb字符设备。
65.第三方面,本技术的实施例提供了一种数据传输方法,用于第二管理设备中,所述方法包括:
66.所述第二管理设备通过自身的第二字符设备接收第一管理设备的第一字符设备发送的报文数据,所述报文数据用于请求所述第二管理设备的指定服务;
67.其中,所述第一管理设备为带外管理设备和带内管理设备中的一种,所述第二管理设备为所述带外管理设备和所述带内管理设备中的另一种。
68.在一种可能的实现方式中,所述方法还包括:
69.所述第二管理设备对接收到的所述报文数据进行解封装得到所述报文请求;
70.所述第二管理设备通过第二网络端口将所述报文请求发送至所述第二服务端口。
71.在另一种可能的实现方式中,所述第二管理设备包括第三用户态程序和第四用户态程序,所述第二管理设备对接收到的所述报文数据进行解封装得到所述报文请求,包括:
72.所述第三用户态程序从所述第二字符设备中获取所述报文数据;
73.所述第三用户态程序对所述报文数据进行解封装得到所述报文请求;
74.所述第二管理设备通过第二网络端口将所述报文请求发送至所述第二服务端口,包括:
75.所述第三用户态程序将所述报文请求发送至所述第四用户态程序;
76.所述第四用户态程序通过所述第二网络端口将所述报文请求发送至所述第二服务端口。
77.在另一种可能的实现方式中,所述方法还包括:
78.所述第二管理设备通过所述第二网络端口接收所述第二服务端口发送的响应信息;
79.所述第二管理设备通过自身的所述第二字符设备将所述响应信息发送至所述第一管理设备的所述第一字符设备。
80.在另一种可能的实现方式中,所述第一字符设备为所述第一管理设备的第一内核态程序创建的usb字符设备,所述第二字符设备为所述第二管理设备的第二内核态程序创建的usb字符设备。
81.第四方面,提供了一种数据传输装置,该装置包括至少一个单元,至少一个单元用于实现上述第一方面或第一方面中的任意一种可能的实现方式所提供的数据传输方法。
82.第五方面,提供了一种数据传输装置,该装置包括至少一个单元,至少一个单元用于实现上述第二方面或第二方面中的任意一种可能的实现方式所提供的数据传输方法。
83.第六方面,提供了一种数据传输装置,该装置包括至少一个单元,至少一个单元用于实现上述第三方面或第三方面中的任意一种可能的实现方式所提供的数据传输方法。
84.第七方面,本技术的实施例提供了一种数据传输装置,所述装置包括:
85.处理器;
86.用于存储处理器可执行指令的存储器;
87.其中,所述处理器被配置为执行所述指令时实现上述第一方面或第一方面中的任意一种可能的实现方式所提供的数据传输方法。
88.第八方面,本技术的实施例提供了一种数据传输装置,所述装置包括:
89.处理器;
90.用于存储处理器可执行指令的存储器;
91.其中,所述处理器被配置为执行所述指令时实现上述第二方面或第二方面中的任意一种可能的实现方式所提供的数据传输方法。
92.第九方面,本技术的实施例提供了一种数据传输装置,所述装置包括:
93.处理器;
94.用于存储处理器可执行指令的存储器;
95.其中,所述处理器被配置为执行所述指令时实现上述第三方面或第三方面中的任意一种可能的实现方式所提供的数据传输方法。
96.第十方面,本技术的实施例提供了一种计算机程序产品,包括计算机可读代码,或者承载有计算机可读代码的非易失性计算机可读存储介质,当所述计算机可读代码在电子设备中运行时,所述电子设备中的处理器执行上述第一方面或第一方面中的任意一种可能的实现方式所提供的数据传输方法。
97.第十一方面,本技术的实施例提供了一种计算机程序产品,包括计算机可读代码,或者承载有计算机可读代码的非易失性计算机可读存储介质,当所述计算机可读代码在电子设备中运行时,所述电子设备中的处理器执行上述第二方面或第二方面中的任意一种可能的实现方式所提供的数据传输方法。
98.第十二方面,本技术的实施例提供了一种计算机程序产品,包括计算机可读代码,或者承载有计算机可读代码的非易失性计算机可读存储介质,当所述计算机可读代码在电子设备中运行时,所述电子设备中的处理器执行上述第三方面或第三方面中的任意一种可能的实现方式所提供的数据传输方法。
99.第十三方面,本技术的实施例提供了一种非易失性计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现上述第一方面或第一方面中的任意一种可能的实现方式所提供的数据传输方法。
100.第十四方面,本技术的实施例提供了一种非易失性计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现上述第二方面或第二方面中的任意一种可能的实现方式所提供的数据传输方法。
101.第十五方面,本技术的实施例提供了一种非易失性计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令被处理器执行时实现上述第三方面或第三方面中的任意一种可能的实现方式所提供的数据传输方法。
附图说明
102.包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本技术的示例性实施例、特征和方面,并且用于解释本技术的原理。
103.图1示出相关技术中提供的服务器的结构示意图。
104.图2是本技术一个示例性实施例提供的服务器的结构示意图。
105.图3示出了本技术一个示例性实施例提供的数据传输方法的流程图。
106.图4示出了本技术一个示例性实施例提供的数据传输方法的应用场景的示意图。
107.图5示出了本技术另一个示例性实施例提供的bma向bmc发送报文请求的方法流程图。
108.图6示出了本技术另一个示例性实施例提供的bmc向bma发送报文请求的方法流程图。
109.图7示出了本技术一个示例性实施例提供的数据传输装置的框图。
具体实施方式
110.以下将参考附图详细说明本技术的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
111.在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
112.另外,为了更好的说明本技术,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本技术同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本技术的主旨。
113.首先,对本技术实施例涉及的一些名词进行介绍。
114.1、带外管理设备是通过不同物理通道传输管理控制信息和数据信息的设备。带外管理设备负责整体服务器的智能管理。示例性的,带外管理设备可以称为智能单板管理控制器(intelligent baseboard management controller,ibmc)或者bmc。
115.2、带内管理设备是通过同一物理通道传输管理控制信息和数据信息的设备。带内管理设备在服务器带内操作系统上工作,负责服务器硬件信息采集,性能数据采集,驱动管理,软件管理等功能。示例性的,带内管理设备可以运行有代理(agent)用户端,带内管理设备通过代理用户端与带外管理设备进行交互。带内管理设备可以称为智能单板管理代理(intelligent baseboard management agent,ibma)或者bma。
116.3、字符设备:提供连续的数据流,应用程序可以顺序读取,通常不支持随机存取。
字符设备支持按字节/字符来读写数据。比如,字符设备是usb设备的虚拟化可用设备(下面简称usb字符设备)。本技术实施例对此不加以限定。
117.相关技术中,以带外管理设备为bmc,带内管理设备为bma为例,bmc与bma通信所需要的pcie设备,存在如下问题:1、pcie设备不支持热插拔,使能或禁用后需要重启系统生效,影响用户业务,不被用户接受;2、linux系统内核版本众多,需要用户自己搭建编译环境,编译驱动后安装ibma,系统内核升级后,需要再次编译安装驱动,且内核版本不同所需驱动不同,有些用户处于安全及可维护性考虑,不接受自己编译安装驱动方案;3、windows操作系统安装后,会出现pcie未知设备信息,需要安装驱动才可以显示为已知设备;4、pcie设备可以是网络设备,驱动安装后在操作系统上会看到对应的虚拟网口,有些用户不接受该方案(比如多出一个虚拟网口,管理软件无法识别,可能会上报未知网口的告警信息)。
118.本技术实施例提供了一种带内外字符设备的通信机制,避免了相关技术中pcie设备不支持热插拔,需要安装驱动才可工作的问题,解决了网络设备带来的设备安全问题和监控告警问题,提高了带内外管理设备之间数据传输的及时性和可靠性。
119.本技术实施例提供了一种数据传输方法,执行主体为服务器。请参见图2,图2是本技术一个示例性实施例提供的服务器20的结构示意图,该服务器20包括带外管理设备22和带内管理设备24,带外管理设备22和带内管理设备24之间可以进行数据传输。
120.其中,带外管理设备22和带内管理设备24为实体设备。可选的,带外管理设备22是具有芯片的实体设备,带内管理设备24是具有中央处理器(central processing unit,cpu)的实体设备。
121.在本技术实施例中,带外管理设备22和带内管理设备24通过各自的字符设备进行数据传输。其中,带外管理设备22的字符设备26是在带外管理设备22的基础上虚拟化的设备,带内管理设备24的字符设备28是在带内管理设备24的基础上虚拟化的设备。
122.可选的,带外管理设备22和带内管理设备24之间存在usb传输通道,带外管理设备22的字符设备26为带外管理设备22的内核态程序创建的usb字符设备,带内管理设备24的字符设备28为带内管理设备24的内核态程序创建的usb字符设备。
123.可选的,带外管理设备22的字符设备26和带内管理设备24的字符设备28之间通过连通设备提供的硬件接口相连。示例性的,连通设备可以为1710设备、1711设备、1711设备的演进版本或者可以连通带外带内的设备等。
124.下面,采用几个示例性实施例对本技术实施例提供的数据传输方法的进行介绍。
125.请参考图3,其示出了本技术一个示例性实施例提供的数据传输方法的流程图,本实施例以该方法用于图2所示的服务器中来举例说明。该方法包括以下几个步骤。
126.步骤301,第一管理设备获取报文数据,报文数据用于请求第二管理设备的指定服务。
127.可选的,第一管理设备为请求服务的客户端,第二管理设备为提供服务的服务端。
128.其中,第一管理设备为带外管理设备和带内管理设备中的一种,第二管理设备为带外管理设备和带内管理设备中的另一种。对带外管理设备和带内管理设备的介绍可参考上述实施例中的相关描述,在此不再赘述。
129.可选的,第二管理设备预先建立并存储第二网络端口与第二服务端口之间的绑定关系。其中,第二网络端口用于监听第二管理设备的本地应用程序的报文请求,第二服务端
口用于提供指定服务。比如,第二网络端口为localhost端口,第二服务端口为redfish端口或者ssh端口。本技术实施例对此不加以限定。
130.可选的,第一管理设备预先建立并存储第一网络端口与第二服务端口之间的绑定关系。其中,第一网络端口用于监听第一管理设备的本地应用程序的报文请求,第二服务端口用提供指定服务。比如,第一网络端口为localhost端口,第二服务端口为redfish端口或者ssh端口。本技术实施例对此不加以限定。
131.可选的,第一管理设备通过第一网络端口监听本地应用程序的报文请求,报文请求用于请求第二管理设备的第二服务端口的指定服务;第一管理设备将监听到的报文请求进行封装得到报文数据。即报文数据为报文请求封装后的数据。
132.在一种可能的实现方式中,第一管理设备包括第一用户态程序和第二用户态程序。第一用户态程序通过第一网络端口监听本地应用程序的报文请求;第一用户态程序将监听到的报文请求发送至第二用户态程序;第二用户态程序将报文请求进行封装得到报文数据。
133.可选的,第一管理设备的用户态程序之间通过socket通讯方式进行数据传输。即第一用户态程序通过socket通讯方式将监听到的报文请求发送至第二用户态程序。
134.其中,第一用户态程序和第二用户态程序可以合并实现成为一个用户态程序,即第一管理设备的用户态程序通过第一网络端口监听本地应用程序的报文请求,该用户态程序将监听到的报文请求进行封装得到报文数据。
135.可选的,第一用户态程序包括一个或者多个第一用户态程序,第二用户态程序为一个第二用户态程序,第二用户态程序与第一字符设备存在预设对应关系,第二用户态程序用于对第一字符设备进行读写。
136.示意性的,第一管理设备包括两个第一用户态程序(用户态程序a和用户态程序b)和一个第二用户态程序(用户态程序c)。用户态程序a或用户态程序b通过第一网络端口监听本地应用程序的报文请求,用户态程序a或用户态程序b将监听到的报文请求发送至用户态程序c,用户态程序c将报文请求进行封装得到报文数据。
137.步骤302,第一管理设备通过自身的第一字符设备将报文数据发送至第二管理设备。
138.可选的,第二用户态程序将报文数据写入第一字符设备,第一字符设备通过指定传输通道将报文数据发送至第二管理设备。
139.其中,指定传输通道为第一字符设备与第二字符设备之间的数据传输通道。可选的,第一字符设备为第一管理设备的第一内核态程序创建的usb字符设备,第二字符设备为第二管理设备的第二内核态程序创建的usb字符设备,指定传输通道为usb传输通道。
140.步骤303,第二管理设备通过自身的第二字符设备接收报文数据。
141.可选的,第二管理设备通过自身的第二字符设备接收报文数据,第二管理设备对接收到的报文数据进行解封装得到报文请求;第二管理设备通过第二网络端口将报文请求发送至第二服务端口。
142.在一种可能的实现方式中,第二管理设备包括第三用户态程序和第四用户态程序。第二字符设备接收报文数据,第三用户态程序从第二字符设备中获取报文数据,第三用户态程序对报文数据进行解封装得到报文请求;第三用户态程序将报文请求发送至第四用
户态程序;第四用户态程序通过第二网络端口将报文请求发送至第二服务端口。
143.可选的,第二管理设备的用户态程序之间通过socket通讯方式进行数据传输。即第三用户态程序通过socket通讯方式将报文请求发送至第四用户态程序。
144.其中,第三用户态程序和第四用户态程序可以合并实现成为一个用户态程序,即第二字符设备接收报文数据,将报文数据发送至第二管理设备的用户态程序,该用户态程序对接收到的报文数据进行解封装得到报文请求,该用户态程序通过第二网络端口将报文请求发送至第二服务端口。
145.可选的,第三用户态程序包括一个用户态程序,第四用户态程序包括一个或者多个第四用户态程序,第三用户态程序与第二字符设备存在预设对应关系,第三用户态程序用于对第二字符设备进行读写。
146.示意性的,第二管理设备包括一个第三用户态程序(用户态程序a)和两个第四用户态程序(用户态程序b和用户态程序c)。第二字符设备接收报文数据,用户态程序a从第二字符设备中获取报文数据,对报文数据进行解封装得到报文请求。用户态程序a将报文请求发送至用户态程序b或用户态程序c,用户态程序b或用户态程序c通过第二网络端口将报文请求发送至第二服务端口。
147.可选的,第二服务端口接收报文请求,对报文请求进行处理得到处理结果,向第二网络端口返回响应信息,响应信息包括处理结果。比如,报文请求用于请求目标网页,则响应信息包括目标网页的网页内容。
148.可选的,第二管理设备通过第二网络端口接收第二服务端口发送的响应信息;第二管理设备通过自身的第二字符设备将响应信息发送至第一管理设备;第一管理设备通过自身的第一字符设备接收响应信息。
149.在一种可能的实现方式,第一管理设备包括第一用户态程序和第二用户态程序,第二管理设备包括第三用户态程序和第四用户态程序。第四用户态程序通过第二网络端口接收第二服务端口发送的响应信息,第四用户态程序将响应信息发送至第三用户态程序,第三用户态程序将响应信息进行封装,将封装后的响应信息写入第二字符设备,第二字符设备通过指定传输通道将封装后的响应信息发送至第一管理设备。第一管理设备的第一字符设备接收封装后的响应信息,第二用户态程序从第一字符设备中获取封装后的响应信息,第二用户态程序将封装后的响应信息进行解封装得到响应信息,将响应信息发送至第一用户态程序,第一用户态程序通过第一网络端口将响应信息发送至本地应用程序,该本地应用程序为上述请求指定服务的应用程序。
150.需要说明的是,第二管理设备通过自身的第二字符设备将响应信息发送至第一管理设备的路径与上述报文数据的发送路径相反,可以借鉴参考第一管理设备通过自身的第一字符设备将报文数据发送至第二管理设备的相关描述,在此不再赘述。
151.综上所述,本技术实施例中,带外管理设备和带内管理设备可以通过各自的字符设备进行报文数据的传输,实现了带内外字符设备的通信机制,一方面,usb设备支持热插拔,在需要时使能,使用完成后,可以禁用;另一方面,操作系统自带驱动,不需要用户额外编译安装驱动;另一方面,内核版本升级时,也不会出现兼容性问题;另一方面,windows系统下不会出现未知设备,从而在提高了带内外管理设备之间的数据传输效率的同时,保证了带内外管理设备之间数据传输的安全性和可靠性。
152.本技术实施例还通过第一管理设备预先建立并存储第一网络端口与第二服务端口之间的绑定关系,借助第一网络端口监听对端的服务端口,实现直接访问对端服务端口的方式。
153.本技术实施例还通过第一用户态程序和第二用户态程序可以合并实现成为一个用户态程序,第三用户态程序和第四用户态程序可以合并实现成为一个用户态程序,而无需通过socket通讯方式进行数据交互,提高了带内外管理设备中的数据交互效率。
154.在一种可能的实现方式中,本技术实施例提供的数据传输方法应用于如图4所示的应用场景中。图4中,带外管理设备为bmc,bmc通过内核态程序a创建自身的usb字符设备s1,bmc包括用户态程序a和用户态程序b,用户态程序b用于对该usb字符设备s1进行读写,用户态程序a和用户态程序b之间通过socket通讯方式进行数据传输;带内管理设备为bma,bma通过内核态程序b创建自身的usb字符设备s2,bma包括用户态程序c和用户态程序d,用户态程序d用于对该usb字符设备s2进行读写,用户态程序c和用户态程序d之间通过socket通讯方式进行数据传输。其中,bmc和bma通过各自的usb字符设备进行数据传输。
155.基于图4提供的应用场景,在一个示意性的例子中,bmc为服务端即上述的第二管理设备,bma为客户端即上述的第一管理设备。其中,bmc预先建立并存储自身的localhost端口与自身的服务端口x1之间的绑定关系。bma的用户态程序c用于预先建立并存储自身的localhost端口与bmc的服务端口x1之间的绑定关系。bma向bmc发送报文请求的过程包括但不限于如下几个步骤,如图5所示:
156.步骤501,用户态程序c通过自身的localhost端口监听本地应用程序的报文请求,将监听到的报文请求发送至用户态程序d。
157.步骤502,用户态程序d将报文请求进行封装得到报文数据,将报文数据写入usb字符设备s2。
158.步骤503,usb字符设备s2通过usb传输通道将报文数据发送至bmc。
159.步骤504,bmc的usb字符设备s1接收报文数据。
160.步骤505,用户态程序b从usb字符设备s1中获取报文数据。
161.步骤506,用户态程序b对报文数据进行解封装得到报文请求,将报文请求发送至用户态程序a。
162.步骤507,用户态程序a通过自身的localhost端口将报文请求发送至服务端口x1。
163.步骤508,用户态程序a接收到服务端口x1发送的响应信息后,将响应信息反馈至bma的本地应用程序。
164.用户态程序a接收到服务端口x1发送的响应信息后,将响应信息发送至用户态程序b,用户态程序b对响应信息进行封装,将封装后的响应信息写入usb字符设备s1,usb字符设备s1通过usb传输通道将封装后的响应信息发送至bma。bma的usb字符设备s2接收封装后的响应信息,用户态程序d从usb字符设备s2中获取封装后的响应信息,用户态程序d将封装后的响应信息进行解封装得到响应信息,将响应信息发送至用户态程序c,用户态程序c通过localhost端口将响应信息发送至本地应用程序。需要说明的是,本实施例中各个步骤的介绍可类比参考上述实施例中的相关描述,在此不再赘述。
165.基于图4提供的应用场景,在另一个示意性的例子中,bmc为客户端即上述的第一管理设备,bma为服务端即上述的第二管理设备。其中,bma预先建立并存储自身的
localhost端口与自身的服务端口x2之间的绑定关系。bmc的用户态程序a用于建立并存储自身的localhost端口与bma的服务端口x2之间的绑定关系。bmc向bma发送报文请求的过程包括但不限于如下几个步骤,如图6所示:
166.步骤601,用户态程序a通过自身的localhost端口监听本地应用程序的报文请求,将监听到的报文请求发送至用户态程序b。
167.步骤602,用户态程序b将报文请求进行封装得到报文数据,将报文数据写入usb字符设备s1。
168.步骤603,usb字符设备s1通过usb传输通道将报文数据发送至bma。
169.步骤604,bma的usb字符设备s2接收报文数据。
170.步骤605,用户态程序d从usb字符设备s2中获取报文数据。
171.步骤606,用户态程序d对报文数据进行解封装得到报文请求,将报文请求发送至用户态程序c。
172.步骤607,用户态程序c通过自身的localhost端口将报文请求发送至服务端口x2。
173.步骤608,用户态程序c接收到服务端口x2发送的响应信息后,将响应信息反馈至bmc的本地应用程序。
174.用户态程序c接收到服务端口x2发送的响应信息后,将响应信息发送至用户态程序d,用户态程序d对响应信息进行封装,将封装后的响应信息写入usb字符设备s2,usb字符设备s2通过usb传输通道将封装后的响应信息发送至bmc。bmc的usb字符设备s1接收封装后的响应信息,用户态程序b从usb字符设备s1中获取封装后的响应信息,用户态程序b将封装后的响应信息进行解封装得到响应信息,将响应信息发送至用户态程序a,用户态程序a通过localhost端口将响应信息发送至本地应用程序。
175.需要说明的是,本实施例中各个步骤的介绍可类比参考上述实施例中的相关描述,在此不再赘述。
176.下述为本技术装置实施例,可以用于执行本技术方法实施例。对于本技术装置实施例中未披露的细节,请参照本技术方法实施例。
177.请参考图7,其示出了本技术一个示例性实施例提供的数据传输装置的框图。该装置可以通过软件、硬件或者两者的结合实现成为图2提供的服务器的全部或者一部分。该装置可以包括:第一管理设备710和第二管理设备720,该装置包括:
178.第一管理设备710,用于获取报文数据,报文数据用于请求第二管理设备720的指定服务;
179.第一管理设备710,还用于通过自身的第一字符设备将报文数据发送至第二管理设备720;
180.第二管理设备720,用于通过自身的第二字符设备接收报文数据;
181.其中,第一管理设备710为带外管理设备和带内管理设备中的一种,第二管理设备720为带外管理设备和带内管理设备中的另一种。
182.在一种可能的实现方式中,第一管理设备710,还用于通过第一网络端口监听本地应用程序的报文请求,报文请求用于请求第二管理设备720的第二服务端口的指定服务;
183.第一管理设备710,还用于将监听到的报文请求进行封装得到报文数据。
184.在另一种可能的实现方式中,第一管理设备710,还用于预先建立并存储第一网络
端口与第二服务端口之间的绑定关系。
185.在另一种可能的实现方式中,第一管理设备710包括第一用户态程序和第二用户态程序,第一管理设备710,还用于:
186.通过第一用户态程序通过第一网络端口监听本地应用程序的报文请求;
187.通过第一用户态程序将监听到的报文请求发送至第二用户态程序;
188.通过第二用户态程序将报文请求进行封装得到报文数据。
189.在另一种可能的实现方式中,第一管理设备710,还用于:
190.通过第二用户态程序将报文数据写入第一字符设备。
191.在另一种可能的实现方式中,第二管理设备720,还用于:
192.对接收到的报文数据进行解封装得到报文请求;
193.通过第二网络端口将报文请求发送至第二服务端口。
194.在另一种可能的实现方式中,第二管理设备720包括第三用户态程序和第四用户态程序,第二管理设备720,还用于:
195.通过第三用户态程序从第二字符设备中获取报文数据;
196.通过第三用户态程序对报文数据进行解封装得到报文请求;
197.通过第三用户态程序将报文请求发送至第四用户态程序;
198.通过第四用户态程序通过第二网络端口将报文请求发送至第二服务端口。
199.在另一种可能的实现方式中,
200.第二管理设备720,还用于通过第二网络端口接收第二服务端口发送的响应信息;
201.第二管理设备720,还用于通过自身的第二字符设备将响应信息发送至第一管理设备710;
202.第一管理设备710,还用于通过自身的第一字符设备接收响应信息。
203.在另一种可能的实现方式中,第一字符设备为第一管理设备710的第一内核态程序创建的usb字符设备,第二字符设备为第二管理设备720的第二内核态程序创建的usb字符设备。
204.需要说明的是,上述实施例提供的装置,在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
205.本技术实施例提供了一种服务器,该服务器包括第一管理设备和第二管理设备,第一管理设备执行上述实施例中由第一管理设备执行的方法,第二管理设备执行上述实施例中由第二管理设备执行的方法。
206.本技术实施例提供了一种实体设备,该实体设备包括:处理器;用于存储处理器可执行指令的存储器;其中,处理器被配置为执行指令时实现上述实施例中由第一管理设备或第二管理设备执行的方法。
207.本技术实施例提供了一种计算机程序产品,包括计算机可读代码,或者承载有计算机可读代码的非易失性计算机可读存储介质,当计算机可读代码在电子设备的处理器中运行时,电子设备中的处理器执行上述实施例中由第一管理设备和/或第二管理设备执行
的方法。
208.本技术实施例提供了一种非易失性计算机可读存储介质,其上存储有计算机程序指令,计算机程序指令被处理器执行时实现上述实施例中由第一管理设备和/或第二管理设备执行的方法。
209.计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(random access memory,ram)、只读存储器(read only memory,rom)、可擦式可编程只读存储器(electrically programmable read-only-memory,eprom或闪存)、静态随机存取存储器(static random-access memory,sram)、便携式压缩盘只读存储器(compact disc read-only memory,cd-rom)、数字多功能盘(digital video disc,dvd)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。
210.这里所描述的计算机可读程序指令或代码可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
211.用于执行本技术操作的计算机程序指令可以是汇编指令、指令集架构(instruction set architecture,isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如smalltalk、c++等,以及常规的过程式编程语言—诸如“c”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(local area network,lan)或广域网(wide area network,wan)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(field-programmable gate array,fpga)或可编程逻辑阵列(programmable logic array,pla),该电子电路可以执行计算机可读程序指令,从而实现本技术的各个方面。
212.这里参照根据本技术实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本技术的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
213.这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指
令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
214.也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
215.附图中的流程图和框图显示了根据本技术的多个实施例的装置、系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。
216.也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行相应的功能或动作的硬件(例如电路或asic(application specific integrated circuit,专用集成电路))来实现,或者可以用硬件和软件的组合,如固件等来实现。
217.尽管在此结合各实施例对本技术进行了描述,然而,在实施所要求保护的本技术过程中,本领域技术人员通过查看所述附图、公开内容、以及所附权利要求书,可理解并实现所述公开实施例的其它变化。在权利要求中,“包括”(comprising)一词不排除其他组成部分或步骤,“一”或“一个”不排除多个的情况。单个处理器或其它单元可以实现权利要求中列举的若干项功能。相互不同的从属权利要求中记载了某些措施,但这并不表示这些措施不能组合起来产生良好的效果。
218.以上已经描述了本技术的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。

技术特征:


1.一种数据传输方法,其特征在于,用于包括第一管理设备和第二管理设备的服务器中,所述方法包括:所述第一管理设备获取报文数据,所述报文数据用于请求所述第二管理设备的指定服务;所述第一管理设备通过自身的第一字符设备将所述报文数据发送至所述第二管理设备;所述第二管理设备通过自身的第二字符设备接收所述报文数据;其中,所述第一管理设备为带外管理设备和带内管理设备中的一种,所述第二管理设备为所述带外管理设备和所述带内管理设备中的另一种。2.根据权利要求1所述的方法,其特征在于,所述第一管理设备获取报文数据,包括:所述第一管理设备通过第一网络端口监听本地应用程序的报文请求,所述报文请求用于请求所述第二管理设备的第二服务端口的指定服务;所述第一管理设备将监听到的所述报文请求进行封装得到所述报文数据。3.根据权利要求2所述的方法,其特征在于,所述方法还包括:所述第一管理设备预先建立并存储所述第一网络端口与所述第二服务端口之间的绑定关系。4.根据权利要求2所述的方法,其特征在于,所述第一管理设备包括第一用户态程序和第二用户态程序,所述第一管理设备通过第一网络端口监听本地应用程序的报文请求,包括:所述第一用户态程序通过所述第一网络端口监听所述本地应用程序的报文请求;所述第一管理设备将监听到的所述报文请求进行封装得到所述报文数据,包括:所述第一用户态程序将监听到的所述报文请求发送至所述第二用户态程序;所述第二用户态程序将所述报文请求进行封装得到所述报文数据。5.根据权利要求4所述的方法,其特征在于,所述第一管理设备通过自身的第一字符设备将所述报文数据发送至所述第二管理设备之前,还包括:所述第二用户态程序将所述报文数据写入所述第一字符设备。6.根据权利要求2所述的方法,其特征在于,所述第二管理设备通过自身的第二字符设备接收所述报文数据之后,还包括:所述第二管理设备对接收到的所述报文数据进行解封装得到所述报文请求;所述第二管理设备通过第二网络端口将所述报文请求发送至所述第二服务端口。7.根据权利要求6所述的方法,其特征在于,所述第二管理设备包括第三用户态程序和第四用户态程序,所述第二管理设备对接收到的所述报文数据进行解封装得到所述报文请求,包括:所述第三用户态程序从所述第二字符设备中获取所述报文数据;所述第三用户态程序对所述报文数据进行解封装得到所述报文请求;所述第二管理设备通过第二网络端口将所述报文请求发送至所述第二服务端口,包括:所述第三用户态程序将所述报文请求发送至所述第四用户态程序;所述第四用户态程序通过所述第二网络端口将所述报文请求发送至所述第二服务端
口。8.根据权利要求1至7任一所述的方法,其特征在于,所述方法还包括:所述第二管理设备通过所述第二网络端口接收所述第二服务端口发送的响应信息;所述第二管理设备通过自身的所述第二字符设备将所述响应信息发送至所述第一管理设备;所述第一管理设备通过自身的所述第一字符设备接收所述响应信息。9.根据权利要求1至7任一所述的方法,其特征在于,所述第一字符设备为所述第一管理设备的第一内核态程序创建的usb字符设备,所述第二字符设备为所述第二管理设备的第二内核态程序创建的usb字符设备。10.一种数据传输方法,其特征在于,用于第一管理设备中,所述方法包括:所述第一管理设备获取报文数据,所述报文数据用于请求第二管理设备的指定服务;所述第一管理设备通过自身的第一字符设备将所述报文数据发送至所述第二管理设备的第二字符设备;其中,所述第一管理设备为带外管理设备和带内管理设备中的一种,所述第二管理设备为所述带外管理设备和所述带内管理设备中的另一种。11.一种数据传输方法,其特征在于,用于第二管理设备中,所述方法包括:所述第二管理设备通过自身的第二字符设备接收第一管理设备的第一字符设备发送的报文数据,所述报文数据用于请求所述第二管理设备的指定服务;其中,所述第一管理设备为带外管理设备和带内管理设备中的一种,所述第二管理设备为所述带外管理设备和所述带内管理设备中的另一种。12.一种数据传输装置,其特征在于,所述装置包括:处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为执行所述指令时实现权利要求1-9任意一项所述的方法,或者实现权利要求10所述的方法,或者实现权利要求11所述的方法。13.一种非易失性计算机可读存储介质,其上存储有计算机程序指令,其特征在于,所述计算机程序指令被处理器执行时实现权利要求1-9中任意一项所述的方法,或者实现权利要求10所述的方法,或者实现权利要求11所述的方法。

技术总结


本申请涉及通信技术领域,尤其涉及一种数据传输方法、装置及存储介质。所述方法包括:第一管理设备获取报文数据,报文数据用于请求第二管理设备的指定服务;第一管理设备通过自身的第一字符设备将报文数据发送至第二管理设备;第二管理设备通过自身的第二字符设备接收报文数据;其中,第一管理设备为带外管理设备和带内管理设备中的一种,第二管理设备为带外管理设备和带内管理设备中的另一种。本申请实施例提供了一种带内外字符设备的通信机制,避免了相关技术中PCIe设备不支持热插拔,需要安装驱动才可工作的问题,解决了网络设备带来的设备安全问题和监控告警问题,提高了带内外管理设备之间数据传输的及时性和可靠性。理设备之间数据传输的及时性和可靠性。理设备之间数据传输的及时性和可靠性。


技术研发人员:

王钦东

受保护的技术使用者:

超聚变数字技术有限公司

技术研发日:

2021.06.24

技术公布日:

2022/12/26

本文发布于:2024-09-23 02:13:15,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/1/48814.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:设备   所述   报文   程序
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议