CN112764823B - Nvr系统的启动方法、主机操作系统和数据通信方法 - Google Patents

Nvr系统的启动方法、主机操作系统和数据通信方法 Download PDF

Info

Publication number
CN112764823B
CN112764823B CN201910992215.9A CN201910992215A CN112764823B CN 112764823 B CN112764823 B CN 112764823B CN 201910992215 A CN201910992215 A CN 201910992215A CN 112764823 B CN112764823 B CN 112764823B
Authority
CN
China
Prior art keywords
network card
virtual network
nvr
operating system
host operating
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
CN201910992215.9A
Other languages
English (en)
Other versions
CN112764823A (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.)
Hangzhou Hikvision Digital Technology Co Ltd
Original Assignee
Hangzhou Hikvision Digital Technology Co Ltd
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 Hangzhou Hikvision Digital Technology Co Ltd filed Critical Hangzhou Hikvision Digital Technology Co Ltd
Priority to CN201910992215.9A priority Critical patent/CN112764823B/zh
Publication of CN112764823A publication Critical patent/CN112764823A/zh
Application granted granted Critical
Publication of CN112764823B publication Critical patent/CN112764823B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请实施例提供了一种网络视频录像机NVR系统的启动方法、主机操作系统和数据通信方法,启动方法可以应用于主机单板,主机单板中配置有主机操作系统,启动方法包括:在主机操作系统启动后,创建预设Linux容器,在预设Linux容器中加载NVR系统的应用层数据,在预设Linux容器内部创建第一虚拟网卡,在预设Linux容器外部且在主机操作系统内部,创建与第一虚拟网卡对应的第二虚拟网卡,并将第二虚拟网卡桥接至主机操作系统内部的网桥,启动预设Linux容器和预设Linux容器中加载的NVR应用程序。基于上述处理,能够降低网络视频监控系统的硬件复杂度。

Description

NVR系统的启动方法、主机操作系统和数据通信方法
技术领域
本申请涉及计算机网络技术领域,特别是涉及一种NVR系统的启动方法、主机操作系统和数据通信方法。
背景技术
NVR(Network Video Recorder,网络视频录像机)系统,是网络视频监控系统的存储转发部分,通常可以与视频编码器或网络摄像机协同工作,完成视频的录像、存储及转发功能。另外,在实际操作中,还可以通过用于视频监控管理的平台管理应用程序与NVR系统的交互,实现监控视频的浏览、回放等功能。
相关技术中,平台管理应用程序可以运行在配置有主机操作系统(例如,可以为Linux系统)的主机单板中,而作为嵌入式系统的NVR系统则单独运行在一块NVR单板中,主机单板与NVR单板之间可以通过物理链路连接,进而,实现平台管理应用程序与NVR系统的交互。
可见,相关技术中,平台管理应用程序和NVR系统分别运行在不同的单板中,进而,会导致网络视频监控系统的硬件复杂度较高。
发明内容
本申请实施例的目的在于提供一种NVR系统的启动方法、主机操作系统和数据通信方法,能够降低网络视频监控系统的硬件复杂度。具体技术方案如下:
第一方面,为了达到上述目的,本申请实施例公开了一种网络视频录像机NVR系统的启动方法,所述方法应用于主机单板,所述主机单板中配置有主机操作系统,所述方法包括:
在所述主机操作系统启动后,创建预设Linux容器;
在所述预设Linux容器中加载需要启动的所述NVR系统的应用层数据,其中,所述应用层数据包括NVR应用程序;
在所述预设Linux容器内部创建第一虚拟网卡;
在所述预设Linux容器外部且在所述主机操作系统内部,创建与所述第一虚拟网卡对应的第二虚拟网卡,并将所述第二虚拟网卡桥接至所述主机操作系统内部的网桥,其中,所述NVR应用程序与所述主机操作系统中安装的应用程序之间通过所述网桥进行数据通信;
启动所述预设Linux容器和所述NVR应用程序。
可选的,在所述启动所述预设Linux容器和所述NVR应用程序之前,所述方法还包括:
加载所述NVR系统需要连接的硬件设备的驱动应用程序;
将所述硬件设备挂载到所述预设Linux容器。
可选的,在所述创建预设Linux容器之后,所述方法还包括:
将共享目录挂载到所述预设Linux容器,其中,所述共享目录用于表示所述主机操作系统需要与所述NVR系统共享的文件的目录。
可选的,在所述将所述第二虚拟网卡桥接至所述主机操作系统内部的网桥之后,所述方法还包括:
生成与所述主机单板中用于与其他网络设备进行数据通信的物理网卡对应的聚合虚拟网卡;
设置对所述网桥转发至所述聚合虚拟网卡的数据报文进行源地址转换;
设置对所述聚合虚拟网卡转发至所述网桥的数据报文进行目标地址转换。
第二方面,为了达到上述目的,本申请实施例公开了一种主机操作系统,所述主机操作系统中运行有预设Linux容器,所述预设Linux容器中运行有NVR系统的NVR应用程序,所述预设Linux容器内部配置有第一虚拟网卡,所述预设Linux容器外部且在所述主机操作系统内部配置有网桥,以及与所述第一虚拟网卡对应的第二虚拟网卡,所述第二虚拟网卡桥接至所述网桥,其中:
所述NVR应用程序,用于向所述第一虚拟网卡发送针对所述主机操作系统中安装的应用程序的第一数据报文;
所述第一虚拟网卡,用于将所述第一数据报文转发至所述网桥;
所述网桥,用于将所述第一数据报文转发至所述主机操作系统中安装的应用程序。
可选的,所述网桥,还用于当接收到所述主机操作系统中安装的应用程序发送的针对所述NVR应用程序的第二数据报文时,将所述第二数据报文转发至所述第一虚拟网卡;
所述第一虚拟网卡,还用于将所述第二数据报文转发至所述NVR应用程序。
可选的,在所述预设Linux容器外部且在所述主机操作系统内部还配置有聚合虚拟网卡,所述聚合虚拟网卡与所述主机操作系统所在的主机单板中用于与其他网络设备进行数据通信的物理网卡对应;
所述NVR应用程序,还用于向所述第一虚拟网卡发送针对所述其他网络设备的第三数据报文;
所述第一虚拟网卡,还用于将所述第三数据报文转发至所述网桥;
所述网桥,还用于向所述聚合虚拟网卡转发所述第三数据报文;
所述聚合虚拟网卡,用于通过所述物理网卡向所述其他网络设备转发从所述网桥接收到数据报文。
可选的,所述聚合虚拟网卡,还用于当接收到所述其他网络设备发送的针对所述NVR应用程序的第四数据报文时,向所述网桥转发所述第四数据报文;
所述网桥,还用于向所述第一虚拟网卡转发从所述聚合虚拟网卡接收到数据报文;
所述第一虚拟网卡,还用于向所述NVR应用程序转发从所述网桥接收到数据报文。
第三方面,为了达到上述目的,本申请实施例公开一种数据通信方法,所述方法应用于主机操作系统,所述主机操作系统中运行有预设Linux容器,所述预设Linux容器中运行有NVR系统的NVR应用程序,所述预设Linux容器内部配置有第一虚拟网卡,所述预设Linux容器外部且在所述主机操作系统内部配置有网桥,以及与所述第一虚拟网卡对应的第二虚拟网卡,所述第二虚拟网卡桥接至所述网桥,所述方法包括:
所述NVR应用程序向所述第一虚拟网卡发送针对所述主机操作系统中安装的应用程序的第一数据报文;
所述第一虚拟网卡将所述第一数据报文转发至所述网桥;
所述网桥将所述第一数据报文转发至所述主机操作系统中安装的应用程序。
可选的,所述方法还包括:
当接收到所述主机操作系统中安装的应用程序发送的针对所述NVR应用程序的第二数据报文时,所述网桥将所述第二数据报文转发至所述第一虚拟网卡;
所述第一虚拟网卡将所述第二数据报文转发至所述NVR应用程序。
可选的,在所述预设Linux容器外部且在所述主机操作系统内部还配置有聚合虚拟网卡,所述聚合虚拟网卡与所述主机操作系统所在的主机单板中用于与其他网络设备进行数据通信的物理网卡对应;
所述方法还包括:
所述NVR应用程序向所述第一虚拟网卡发送针对所述其他网络设备的第三数据报文;
所述第一虚拟网卡将所述第三数据报文转发至所述网桥;
所述网桥向所述聚合虚拟网卡转发所述第三数据报文;
所述聚合虚拟网卡通过所述物理网卡向所述其他网络设备转发从所述网桥接收到数据报文。
可选的,所述方法还包括:
当接收到所述其他网络设备发送的针对所述NVR应用程序的第四数据报文时,所述聚合虚拟网卡向所述网桥转发所述第四数据报文;
所述网桥向所述第一虚拟网卡转发从所述聚合虚拟网卡接收到数据报文;
所述第一虚拟网卡向所述NVR应用程序转发从所述网桥接收到数据报文。
第四方面,为了达到上述目的,本申请实施例公开了一种网络视频录像机NVR系统的启动装置,所述装置应用于主机单板,所述主机单板中配置有主机操作系统,所述装置包括:
第一创建模块,用于在所述主机操作系统启动后,创建预设Linux容器;
加载模块,用于在所述预设Linux容器中加载需要启动的所述NVR系统的应用层数据,其中,所述应用层数据包括NVR应用程序;
第二创建模块,用于在所述预设Linux容器内部创建第一虚拟网卡;
第一处理模块,用于在所述预设Linux容器外部且在所述主机操作系统内部,创建与所述第一虚拟网卡对应的第二虚拟网卡,并将所述第二虚拟网卡桥接至所述主机操作系统内部的网桥,其中,所述NVR应用程序与所述主机操作系统中安装的应用程序之间通过所述网桥进行数据通信;
启动模块,用于启动所述预设Linux容器和所述NVR应用程序。
可选的,所述装置还包括:
第二处理模块,用于加载所述NVR系统需要连接的硬件设备的驱动应用程序;
将所述硬件设备挂载到所述预设Linux容器。
可选的,所述装置还包括:
挂载模块,用于将共享目录挂载到所述预设Linux容器,其中,所述共享目录用于表示所述主机操作系统需要与所述NVR系统共享的文件的目录。
可选的,所述装置还包括:
第三处理模块,用于生成与所述主机单板中用于与其他网络设备进行数据通信的物理网卡对应的聚合虚拟网卡;
设置对所述网桥转发至所述聚合虚拟网卡的数据报文进行源地址转换;
设置对所述聚合虚拟网卡转发至所述网桥的数据报文进行目标地址转换。
第五方面,为了达到上述目的,本申请实施例还公开了一种主机单板,所述主机单板包括处理器、通信接口、存储器和通信总线,其中,所述处理器,所述通信接口,所述存储器通过所述通信总线完成相互间的通信;
所述存储器,用于存放计算机程序;
所述处理器,用于执行所述存储器上所存放的程序时,实现如上述第一方面所述的NVR系统的启动方法。
第六方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,实现如上述第一方面所述的NVR系统的启动方法。
第七方面,本申请实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面所述的NVR系统的启动方法。
本申请实施例提供了一种NVR系统的启动方法,可以应用于主机单板,主机单板中配置有主机操作系统,在主机操作系统启动后,可以创建预设Linux容器,在预设Linux容器中加载NVR系统的应用层数据,在预设Linux容器内部创建第一虚拟网卡,在预设Linux容器外部且在主机操作系统内部,创建与第一虚拟网卡对应的第二虚拟网卡,并将第二虚拟网卡桥接至主机操作系统内部的网桥,启动预设Linux容器和预设Linux容器中加载的NVR应用程序。
基于上述处理,能够生成用于运行NVR系统的容器,并通过创建的第一虚拟网卡、第二虚拟网卡和主机操作系统内部的网桥,实现NVR系统与主机操作系统中安装的应用程序的交互,即,能够将NVR系统和主机操作系统中安装的应用程序集成同一单板中,进而,能够降低网络视频监控系统的硬件复杂度。
当然,实施本申请的任一产品或方法并不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种NVR系统的启动方法的流程图;
图2为本申请实施例提供的一种NVR系统的启动方法示例的流程图;
图3为本申请实施例提供的一种数据通信方法的流程图;
图4为本申请实施例提供的一种组网的架构图;
图5为本申请实施例提供的一种NVR系统的启动装置的结构图;
图6为本申请实施例提供的一种主机单板的结构图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
现有技术中,平台管理应用程序和NVR系统分别运行在不同的单板中,会导致网络视频监控系统的硬件复杂度较高。
为了解决上述问题,本申请实施例提供了一种NVR系统的启动方法,该方法可以应用于主机单板,该主机单板中配置有主机操作系统。
在主机操作系统启动后,可以创建预设Linux容器,并在预设Linux容器中加载NVR系统的应用层数据,应用层数据包括NVR应用程序。
进而,可以在预设Linux容器内部创建第一虚拟网卡,在预设Linux容器外部且在主机操作系统内部,创建与第一虚拟网卡对应的第二虚拟网卡,并将第二虚拟网卡桥接至主机操作系统内部的网桥,其中,NVR应用程序与主机操作系统中安装的应用程序之间通过网桥进行数据通信。
然后,可以启动预设Linux容器和预设Linux容器中的NVR应用程序。
基于上述处理,能够生成用于运行NVR系统的容器,并通过创建的虚拟网卡对(即第一虚拟网卡和第二虚拟网卡)和主机操作系统内部的网桥,实现NVR系统与主机操作系统中安装的应用程序的交互,即,能够将NVR系统和主机操作系统中安装的应用程序集成同一单板中,进而,能够降低网络视频监控系统的硬件复杂度。
参见图1,图1为本申请实施例提供的一种NVR系统的启动方法的流程图,该方法应可以用于主机单板,主机单板中配置有主机操作系统,该方法可以包括以下步骤:
S101:在主机操作系统启动后,创建预设Linux容器。
其中,主机单板中配置的主机操作系统可以为通用Linux发行版系统,例如,可以为ubuntu系统(乌班图系统,一个以桌面应用为主的开源Linux操作系统),或者,也可以为centOS(Community Enterprise Operating System,社区企业操作系统),但并不限于此。
Linux容器能够实现文件系统层的虚拟化隔离,即,Linux容器中运行的系统可以直接使用该系统原因的所有应用层数据。
在本申请实施例中,在启动主机操作系统后,可以在主机操作系统内创建预设Linux容器,用于运行NVR系统。
另外,还可以启动主机操作系统中已安装的应用程序,例如,用于视频监控管理的平台管理应用程序。
S102:在预设Linux容器中加载NVR系统的应用层数据。
其中,应用层数据包括NVR应用程序。应用层数据还可以包括NVR系统启动所需的其他数据,例如,NVR系统的根文件系统、环境变量和C库等。
根文件系统为NVR系统启动时所挂载的第一个文件系统,可以包括NVR系统的代码映像文件,在挂载根文件系统之后,可以运行根文件系统中基本的初始化程序、脚本和服务等。如果挂载根文件系统失败,则NVR系统会出现启动错误而退出启动,如果挂载根文件系统成功,则可以继续挂载其他的文件系统。
环境变量可以包括在NVR系统中用来指定NVR系统的运行环境的一些参数,如:临时文件夹位置和系统文件夹位置等。
由于NVR系统为嵌入式系统环境,为了使预设Linux容器内运行的NVR应用程序不需要基于主机操作系统的版本环境再次对程序代码进行编译,则应用层数据还可以包括嵌入式NVR系统环境的C库,C库用于完成诸如输入/输出处理、字符串处理和许多其他操作系统服务等任务的宏、类型和函数的集合。
因此,为了使NVR系统能够在预设Linux容器中正常运行,可以在预设Linux容器中加载NVR系统运行所需的应用层数据。
S103:在预设Linux容器内部创建第一虚拟网卡。
S104:在预设Linux容器外部且在主机操作系统内部,创建与第一虚拟网卡对应的第二虚拟网卡,并将第二虚拟网卡的网络地址设置为主机操作系统内部的网桥的网络地址。
其中,预设Linux容器中加载的NVR应用程序与主机操作系统中安装的应用程序之间通过网桥进行数据通信。
在本申请实施例中,为了使预设Linux容器中的NVR系统能够与主机操作系统中安装的应用程序进行数据通信,可以在预设Linux容器的内部创建一个虚拟网卡(即本申请实施例中的第一虚拟网卡),并在预设Linux容器的外部创建与第一虚拟网卡对应的一个虚拟网卡(即本申请实施例中的第二虚拟网卡)。
一种实现方式中,可以基于veth pair(Virtual Ethernet Pair,虚拟以太网对),创建上述第一虚拟网卡和第二虚拟网卡。第一虚拟网卡与第二虚拟网卡之间存在虚拟链路,其中一个虚拟网卡发出的数据报文可以直接到达对端的虚拟网卡。
由于第一虚拟网卡与第二虚拟网卡之间存在虚拟链路,且第一虚拟网卡在预设Linux容器内部,因此,可以将第二虚拟网卡桥接至主机操作系统内部的网桥,进而,预设Linux容器内部的NVR系统能够通过第一虚拟网卡、第二虚拟网卡和网桥,与主机操作系统中安装的应用程序进行数据通信。
一种实现方式中,在主机操作系统启动后,可以创建主机操作系统内部的网桥。例如,创建的网桥用br0表示,其IP(Internet Protocol,网际协议)地址为10.0.3.1,netmask(网络掩码)为255.255.255.0。
相应的,第一虚拟网卡可以用lxc-eth0表示,其IP地址为10.0.3.2,netmask为255.255.255.0,gatewayip(网关网际协议)地址为10.0.3.1。第二虚拟网卡可以用lxc-eth0’表示。
S105:启动预设Linux容器和NVR应用程序。
在本申请实施例中,在完成第一虚拟网卡和第二虚拟网卡的配置后,则可以启动预设Linux容器和预设Linux容器中的NVR应用程序,相应的,NVR应用程序则可以在预设Linux容器中运行,且NVR系统中的NVR应用程序能够与主机操作系统中安装的应用程序进行交互。
可见,基于本申请实施例的方法,能够生成用于运行NVR系统的容器,并通过创建的第一虚拟网卡、第二虚拟网卡和主机操作系统内部的网桥,实现NVR系统与主机操作系统中安装的应用程序的交互,即,能够将NVR系统和主机操作系统中安装的应用程序集成同一单板中,进而,能够降低网络视频监控系统的硬件复杂度。
另外,相对于将NVR系统裸移植到主机操作系统,本申请实施例采用在容器中运行NVR系统的方式,移植后的NVR系统仍然可以使用自身原有的应用层数据,降低了系统移植的复杂度、增强了系统跨平台的兼容性和健壮性。
可选的,为了使NVR系统能够访问硬件设备,该方法还可以包括以下步骤:
加载NVR系统需要连接的硬件设备的驱动应用程序,并将硬件设备挂载到预设Linux容器。
其中,硬件设备可以包括显卡、硬盘和其他私有外设。
在本申请实施例中,为了使NVR系统能够正常访问各硬件设备,可以在主机操作系统内加载相应的驱动应用程序,例如,上述显卡的驱动应用程序、硬盘的驱动应用程序。在驱动应用程序加载完成后,可以将NVR系统需要访问的硬件设备挂载到预设Linux容器,相应的,在启动预设Linux容器和预设Linux容器中的NVR应用程序后,NVR应用程序则可以访问上述硬件设备。
可选的,该方法还可以包括以下步骤:将共享目录挂载到预设Linux容器。
其中,共享目录用于表示主机操作系统需要与NVR系统共享的文件的目录。
在本申请实施例中,如果NVR系统需要与主机操作系统共享文件,主机操作系统可以为NVR系统提供需要共享的文件的目录(即本申请实施例中的共享目录),并将共享目录挂载在预设Linux容器,进而,使得NVR系统能够访问该共享目录。
相应的,NVR系统也可以将需要与主机操作系统共享的文件存储在共享目录下,进而,主机操作系统则可以根据共享目录访问NVR系统需要共享的文件。例如,NVR系统可以将运行NVR应用程序所产生日志文件存储在共享目录下,以供主机操作系统访问。
可以理解的是,在向预设Linux容器挂载硬件设备和共享目录时,可以通过统一的配置文件进行挂载,因此,可以在创建容器之前预先加载硬件设备的驱动应用程序,进而,可以通过统一的配置文件,挂载硬件设备和共享目录。
另外,还可以实现NVR系统与除主机单板外的其他网络设备的进行交互,可选的,在将第二虚拟网卡桥接至主机操作系统内部的网桥之后,该方法还可以包括以下步骤:
步骤1,生成与主机单板中用于与其他网络设备进行数据通信的物理网卡对应的聚合虚拟网卡。
在本申请实施例中,主机单板可以通过不同的物理网卡与其他网络设备进行数据通信,相应的,可以生成与各物理网卡对应的聚合虚拟网卡。
一种实现方式中,上述各物理网卡分别为eth-0~eth-n,n可以表示物理网卡的序号,n为正整数,n的数值可以由技术人员根据业务需求进行设置,相应的,可以将eth-0~eth-n绑定成一个聚合虚拟网卡Bond0。
在本申请实施例中,在生成聚合虚拟网卡后,则可以通过第一虚拟网卡、第二虚拟网卡、主机操作系统内部的网桥和聚合虚拟网卡,实现NVR系统与其他网络设备的数据通信。
一种实现方式中,当NVR应用程序通过第一虚拟网卡向其他网络设备发送数据报文时,主机单板可以基于Hash(哈希)算法和该数据报文的报文信息,从聚合虚拟网卡对应的各物理网卡中,确定出一个物理网卡,进而,主机单板可以通过确定出的物理网卡,向其他网络设备转发该数据报文。数据报文的报文信息可以为数据报文的三元组信息,或者,也可以为数据报文的五元组信息。
哈希运算为一种散列运算方式,就是把任意长度的输入(本申请实施例中数据报文的报文信息)变换成固定长度的输出,该输出记为哈希值。例如,主机单板可以基于哈希算法对数据报文的报文信息进行计算,得到对应的哈希值,将该哈希值对应的物理网卡,确定为用于转发数据报文的物理网卡。
可以理解的是,主机单板基于哈希算法的特性,从多个物理网卡中确定出用于转发数据报文的物理网卡,能够均衡各物理网卡的业务流量。
步骤2,设置对网桥转发至聚合虚拟网卡的数据报文进行源地址转换;设置对聚合虚拟网卡转发至网桥的数据报文进行目标地址转换。
为了提高NVR系统的网络安全性,在本申请实施例中,还可以在网桥中使能网络地址转换(NAT,Network Address Translation)功能。
一种实现方式中,可以对NVR系统向其他网络设备发送的数据报文进行源地址转换,当通过聚合虚拟网卡接收到其他网络设备发送的数据报文后,还可以对接收到的数据报文进行目的地址转换,并将转换处理后的数据报文转发至该数据报文转换后的目标地址对应的端口。
可以理解的是,出于安全考虑,Linux系统内默认禁止数据报文转发。因此,当主机操作系统内部存在多个网卡时,为了实现多个网卡之间数据报文的转发,可以配置一个Linux系统的内核参数ip_forward(网际协议_转发),以实现Linux系统的内核转发功能。例如,当该内核参数的值为0时,可以表示禁止转发数据报文;当该内核参数的值为1时,可以表示允许转发数据报文。
可见,基于本申请实施例的方法,能够实现NVR系统与其他网络设备的数据通信,且通过地址转换处理,能够提高NVR系统的网络安全性。
参见图2,图2为本申请实施例提供的一种NVR系统的启动方法示例的流程图,该方法可以应用于主机单板,该主机单板中配置有主机操作系统,该方法可以包括以下步骤:
S201:在主机操作系统启动后,启动主机操作系统中安装的平台管理应用程序,并加载NVR系统需要连接的硬件设备的驱动应用程序。
其中,硬件设备包括显卡和硬盘,平台管理应用程序为用于视频监控管理的应用程序。
S202:创建预设Linux容器。
S203:在预设Linux容器中加载NVR系统的应用层数据。
其中,应用层数据包括根文件系统、环境变量和NVR应用程序。
S204:将硬件设备、共享目录挂载到预设Linux容器。
其中,共享目录用于表示主机操作系统需要与NVR系统共享的文件的目录。
S205:在预设Linux容器内部创建第一虚拟网卡。
S206:在预设Linux容器外部且在主机操作系统内部,创建与第一虚拟网卡对应的第二虚拟网卡,并将第二虚拟网卡桥接至主机操作系统内部的网桥。
其中,NVR应用程序与主机操作系统中安装的应用程序之间通过网桥进行数据通信。
S207:生成与主机单板中用于与其他网络设备进行数据通信的物理网卡对应的聚合虚拟网卡。
S208:设置对网桥转发至聚合虚拟网卡的数据报文进行源地址转换,并设置对聚合虚拟网卡转发至网桥的数据报文进行目标地址转换。
S209:启动预设Linux容器和预设Linux容器中的NVR应用程序。
基于相同的发明构思,参见图3,图3为本申请实施例提供的一种数据通信方法的流程图,该方法可以应用于主机操作系统,主机操作系统中运行有预设Linux容器,预设Linux容器中运行有NVR系统的NVR应用程序,预设Linux容器内部配置有第一虚拟网卡,预设Linux容器外部且在主机操作系统内部配置有网桥,以及与第一虚拟网卡对应的第二虚拟网卡,第二虚拟网卡桥接至网桥,该方法可以包括以下步骤:
S301:NVR应用程序向第一虚拟网卡发送针对主机操作系统中安装的应用程序的第一数据报文。
在本申请实施例中,当NVR应用程序需要与主机操作系统中安装的应用程序进行数据通信时,NVR应用程序可以通过第一虚拟网卡,向主机操作系统中安装的应用程序发送数据报文(即第一数据报文)。
S302:第一虚拟网卡将第一数据报文转发至网桥。
由于第一虚拟网卡与第二虚拟网卡为一对虚拟网卡,因此,第一数据报文通过第一虚拟网卡与第二虚拟网卡之间的虚拟链路,传输至第二虚拟网卡,且由于第二虚拟网卡桥接至网桥,因此,网桥可以直接获取到第一数据报文。
S303:网桥将第一数据报文转发至主机操作系统中安装的应用程序。
可见,通过第一虚拟网卡、第二虚拟网卡和主机操作系统内部的网桥,能够实现NVR系统与主机操作系统中安装的应用程序的交互,即,能够将NVR系统和主机操作系统中安装的应用程序集成同一单板中,进而,能够降低网络视频监控系统的硬件复杂度。
可选的,该方法还可以包括以下步骤:当接收到主机操作系统中安装的应用程序发送的针对NVR应用程序的第二数据报文时,网桥将第二数据报文转发至第一虚拟网卡;第一虚拟网卡将第二数据报文转发至NVR应用程序。
在本申请实施例中,当主机操作系统中安装的应用程序需要与NVR应用程序进行数据通信时,主机操作系统中安装的应用程序可以通过网桥,发送针对NVR应用程序的数据报文(即第二数据报文)。
由于第一虚拟网卡与第二虚拟网卡之间存在虚拟链路,网桥可以通过第二虚拟网卡向第一虚拟网卡发送第二数据报文,相应的,第一虚拟网卡将第二数据报文转发至NVR应用程序。
可选的,在预设Linux容器外部且在主机操作系统内部还配置有聚合虚拟网卡,聚合虚拟网卡与主机操作系统所在的主机单板中用于与其他网络设备进行数据通信的物理网卡对应,该方法还可以包括以下步骤:
NVR应用程序向第一虚拟网卡发送针对其他网络设备的第三数据报文;第一虚拟网卡将第三数据报文转发至网桥;网桥向聚合虚拟网卡转发第三数据报文;聚合虚拟网卡通过物理网卡向其他网络设备转发从网桥接收到数据报文。
在本申请实施例中,主机单板可以通过不同的物理网卡与其他网络设备进行数据通信,相应的,可以生成与各物理网卡对应的聚合虚拟网卡。
一种实现方式中,上述各物理网卡分别为eth-0~eth-n,n可以表示物理网卡的序号,n为正整数,n的数值可以由技术人员根据业务需求进行设置,相应的,可以将eth-0~eth-n绑定成一个聚合虚拟网卡Bond0。
在本申请实施例中,在生成聚合虚拟网卡后,则可以通过第一虚拟网卡、第二虚拟网卡、主机操作系统内部的网桥和聚合虚拟网卡,实现NVR系统与其他网络设备的数据通信。
一种实现方式中,当NVR应用程序通过第一虚拟网卡向其他网络设备发送数据报文(即第三数据报文)时,网桥可以通过第二虚拟网卡获取第三数据报文,并向聚合虚拟网卡转发第三数据报文,相应的,聚合虚拟网卡通过物理网卡向其他网络设备转发从网桥接收到的数据报文,进而,能够提高NVR系统的网络安全性。
可以理解的是,如果配置了对网桥转发至聚合虚拟网卡的数据报文进行源地址转换,则聚合虚拟网卡接收到的数据报文,可以为对第三数据报文进行源地址转换处理后得到的报文。例如,主机操作系统可以通过内核网络协议栈对网桥向聚合虚拟网卡转发的第三数据报文进行源地址转换处理。
可选的,该方法还可以包括以下步骤:当接收到其他网络设备发送的针对NVR应用程序的第四数据报文时,聚合虚拟网卡向网桥发送第四数据报文;网桥向第一虚拟网卡转发从聚合虚拟网卡接收到数据报文;第一虚拟网卡向NVR应用程序转发从网桥接收到数据报文。
一种实现方式中,当其他网络设备需要与NVR应用程序进行数据通信时,可以通过各物理网卡发送针对NVR应用程序的数据报文(即第四数据报文),相应的,聚合虚拟网卡可以接收到第四数据报文,并向网桥发送第四数据报文。网桥则可以向第一虚拟网卡转发从聚合虚拟网卡接收到数据报文,进而,第一虚拟网卡可以向NVR应用程序转发从网桥接收到数据报文。
可以理解的是,如果配置了对聚合虚拟网卡转发至网桥的数据报文进行目标地址转换,则网桥接收到的数据报文,可以为对第四数据报文进行目的地址转换处理后得到的报文。例如,主机操作系统可以通过内核网络协议栈对聚合虚拟网卡向网桥转发的第四数据报文进行目的地址转换处理。
基于相同的发明构思,本申请实施例还提供了一种主机操作系统,主机操作系统中运行有预设Linux容器,所述预设Linux容器中运行有NVR系统的NVR应用程序,所述预设Linux容器内部配置有第一虚拟网卡,所述预设Linux容器外部且在所述主机操作系统内部配置有网桥,以及与所述第一虚拟网卡对应的第二虚拟网卡,所述第二虚拟网卡桥接至所述网桥,其中:
所述NVR应用程序,用于向所述第一虚拟网卡发送针对所述主机操作系统中安装的应用程序的第一数据报文;
所述第一虚拟网卡,用于将所述第一数据报文转发至所述网桥;
所述网桥,用于将所述第一数据报文转发至所述主机操作系统中安装的应用程序。
可选的,所述网桥,还用于当接收到所述主机操作系统中安装的应用程序发送的针对所述NVR应用程序的第二数据报文时,将所述第二数据报文转发至所述第一虚拟网卡;
所述第一虚拟网卡,还用于将所述第二数据报文转发至所述NVR应用程序。
可选的,在所述预设Linux容器外部且在所述主机操作系统内部还配置有聚合虚拟网卡,所述聚合虚拟网卡与所述主机操作系统所在的主机单板中用于与其他网络设备进行数据通信的物理网卡对应;
所述NVR应用程序,还用于向所述第一虚拟网卡发送针对所述其他网络设备的第三数据报文;
所述第一虚拟网卡,还用于将所述第三数据报文转发至所述网桥;
所述网桥,还用于向所述聚合虚拟网卡转发所述第三数据报文;
所述聚合虚拟网卡,用于通过所述物理网卡向所述其他网络设备转发从所述网桥接收到数据报文。
可选的,所述聚合虚拟网卡,还用于当接收到所述其他网络设备发送的针对所述NVR应用程序的第四数据报文时,向所述网桥发送所述第四数据报文;
所述网桥,还用于向所述第一虚拟网卡转发从所述聚合虚拟网卡接收到数据报文;
所述第一虚拟网卡,还用于向所述NVR应用程序转发从所述网桥接收到数据报文。
参见图4,图4为本申请实施例提供的一种组网的架构图。
图4中,容器NVR平台一体机可以理解为本申请实施例中的主机单板,主机单板中配置的主机操作系统可以为通用Linux发行版系统(例如,可以为ubuntu,或者,centOS)。平台软件包括主机操作系统中安装的应用程序(即平台应用程序),平台应用程序可以是基于Java/C++语言的应用程序,图中的各组件表示不同的多个应用程序。
容器-NVR系统表示运行在Linux容器中的NVR系统,NVR系统中也可以包括多个NVR应用程序,即图中的各组件,NVR应用程序可以是基于C/C++语言的应用程序,NVR系统使用自身原有的嵌入式根文件系统。
可以在主机操作系统中加载嵌入式NVR驱动应用程序,进而,可以将各设备节点(即本申请实施例中的硬件设备)挂载到容器,例如,硬件设备可以为显示、硬盘或其他私有外设。
将主机开放的共享目录挂载至容器,实现目录共享,即,NVR系统与主机操作系统通过共享目录实现文件共享。
Linux容器内部的第一虚拟网卡与容器外部的第二虚拟网卡为一对veth-pair,第二虚拟网卡桥接至网桥,使得NVR系统能够通过第一虚拟网卡、第二虚拟网卡和网桥,与平台应用程序进行数据通信。
另外,主机单板中的各物理网卡eth-0、eth-1…eth-n对应一个聚合虚拟网卡。NVR系统或平台应用程序能够通过聚合虚拟网卡,与其他网络设备(例如,相机、电脑)进行数据通信。
基于相同的发明构思,参见图5,图5为本申请实施例提供的一种NVR系统的启动装置的结构图,该装置应用于主机单板,该主机单板中配置有主机操作系统,该装置包括:
第一创建模块501,用于在所述主机操作系统启动后,创建预设Linux容器;
加载模块502,用于在所述预设Linux容器中加载需要启动的所述NVR系统的应用层数据,其中,所述应用层数据包括NVR应用程序;
第二创建模块503,用于在所述预设Linux容器内部创建第一虚拟网卡;
第一处理模块504,用于在所述预设Linux容器外部且在所述主机操作系统内部,创建与所述第一虚拟网卡对应的第二虚拟网卡,并将所述第二虚拟网卡桥接至所述主机操作系统内部的网桥,其中,所述NVR应用程序与所述主机操作系统中安装的应用程序之间通过所述网桥进行数据通信;
启动模块505,用于启动所述预设Linux容器和所述NVR应用程序。
可选的,所述装置还包括:
第二处理模块,用于加载所述NVR系统需要连接的硬件设备的驱动应用程序;
将所述硬件设备挂载到所述预设Linux容器。
可选的,所述装置还包括:
挂载模块,用于将共享目录挂载到所述预设Linux容器,其中,所述共享目录用于表示所述主机操作系统需要与所述NVR系统共享的文件的目录。
可选的,所述装置还包括:
第三处理模块,用于生成与所述主机单板中用于与其他网络设备进行数据通信的物理网卡对应的聚合虚拟网卡;
设置对所述网桥转发至所述聚合虚拟网卡的数据报文进行源地址转换;
设置对所述聚合虚拟网卡转发至所述网桥的数据报文进行目标地址转换。
本申请实施例还提供了一种主机单板,如图6所示,包括处理器601、通信接口602、存储器603和通信总线604,其中,处理器601,通信接口602,存储器603通过通信总线604完成相互间的通信,
存储器603,用于存放计算机程序;
处理器601,用于执行存储器603上所存放的程序时,实现如下步骤:
在所述主机操作系统启动后,创建预设Linux容器;
在所述预设Linux容器中加载需要启动的所述NVR系统的应用层数据,其中,所述应用层数据包括NVR应用程序;
在所述预设Linux容器内部创建第一虚拟网卡;
在所述预设Linux容器外部且在所述主机操作系统内部,创建与所述第一虚拟网卡对应的第二虚拟网卡,并将所述第二虚拟网卡桥接至所述主机操作系统内部的网桥,其中,所述NVR应用程序与所述主机操作系统中安装的应用程序之间通过所述网桥进行数据通信;
启动所述预设Linux容器和所述NVR应用程序。
上述主机单板提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,简称PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,简称EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述主机单板与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
本申请实施例提供的主机单板,能够生成用于运行NVR系统的容器,并通过创建的第一虚拟网卡、第二虚拟网卡和主机操作系统内部的网桥,实现NVR系统与主机操作系统中安装的应用程序的交互,即,能够将NVR系统和主机操作系统中安装的应用程序集成同一单板中,进而,能够降低网络视频监控系统的硬件复杂度。
本申请实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行本申请实施例提供的NVR系统的启动方法。
具体的,上述NVR系统的启动方法,包括:
在所述主机操作系统启动后,创建预设Linux容器;
在所述预设Linux容器中加载需要启动的所述NVR系统的应用层数据,其中,所述应用层数据包括NVR应用程序;
在所述预设Linux容器内部创建第一虚拟网卡;
在所述预设Linux容器外部且在所述主机操作系统内部,创建与所述第一虚拟网卡对应的第二虚拟网卡,并将所述第二虚拟网卡桥接至所述主机操作系统内部的网桥,其中,所述NVR应用程序与所述主机操作系统中安装的应用程序之间通过所述网桥进行数据通信;
启动所述预设Linux容器和所述NVR应用程序。
需要说明的是,上述NVR系统的启动方法的其他实现方式与前述方法实施例部分相同,这里不再赘述。
通过运行本申请实施例提供的计算机可读存储介质中存储的指令,能够生成用于运行NVR系统的容器,并通过创建的第一虚拟网卡、第二虚拟网卡和主机操作系统内部的网桥,实现NVR系统与主机操作系统中安装的应用程序的交互,即,能够将NVR系统和主机操作系统中安装的应用程序集成同一单板中,进而,能够降低网络视频监控系统的硬件复杂度。
本申请实施例还提供了另一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行本申请实施例提供的NVR系统的启动方法。
具体的,上述NVR系统的启动方法,包括:
在所述主机操作系统启动后,创建预设Linux容器;
在所述预设Linux容器中加载需要启动的所述NVR系统的应用层数据,其中,所述应用层数据包括NVR应用程序;
在所述预设Linux容器内部创建第一虚拟网卡;
在所述预设Linux容器外部且在所述主机操作系统内部,创建与所述第一虚拟网卡对应的第二虚拟网卡,并将所述第二虚拟网卡桥接至所述主机操作系统内部的网桥,其中,所述NVR应用程序与所述主机操作系统中安装的应用程序之间通过所述网桥进行数据通信;
启动所述预设Linux容器和所述NVR应用程序。
需要说明的是,上述NVR系统的启动方法的其他实现方式与前述方法实施例部分相同,这里不再赘述。
通过运行本申请实施例提供的计算机程序产品,能够生成用于运行NVR系统的容器,并通过创建的第一虚拟网卡、第二虚拟网卡和主机操作系统内部的网桥,实现NVR系统与主机操作系统中安装的应用程序的交互,即能够将NVR系统和主机操作系统中安装的应用程序集成同一单板中,进而,能够降低网络视频监控系统的硬件复杂度。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、主机操作系统、计算机可读存储介质、计算机程序产品实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本申请的保护范围内。

Claims (18)

1.一种网络视频录像机NVR系统的启动方法,其特征在于,所述方法应用于主机单板,所述主机单板中配置有主机操作系统,所述方法包括:
在所述主机操作系统启动后,创建预设Linux容器;其中,所述预设Linux容器用于实现文件系统层的虚拟化隔离;
在所述预设Linux容器中加载需要启动的所述NVR系统的应用层数据,其中,所述应用层数据包括NVR应用程序;
在所述预设Linux容器内部创建第一虚拟网卡;
在所述预设Linux容器外部且在所述主机操作系统内部,创建与所述第一虚拟网卡对应的第二虚拟网卡,并将所述第二虚拟网卡桥接至所述主机操作系统内部的网桥,其中,所述NVR应用程序与所述主机操作系统中安装的应用程序之间通过所述网桥进行数据通信;
启动所述预设Linux容器和所述NVR应用程序。
2.根据权利要求1所述的方法,其特征在于,在所述启动所述预设Linux容器和所述NVR应用程序之前,所述方法还包括:
加载所述NVR系统需要连接的硬件设备的驱动应用程序;
将所述硬件设备挂载到所述预设Linux容器。
3.根据权利要求1所述的方法,其特征在于,在所述创建预设Linux容器之后,所述方法还包括:
将共享目录挂载到所述预设Linux容器,其中,所述共享目录用于表示所述主机操作系统需要与所述NVR系统共享的文件的目录。
4.根据权利要求1-3任一项所述的方法,其特征在于,在所述将所述第二虚拟网卡桥接至所述主机操作系统内部的网桥之后,所述方法还包括:
生成与所述主机单板中用于与其他网络设备进行数据通信的物理网卡对应的聚合虚拟网卡;
设置对所述网桥转发至所述聚合虚拟网卡的数据报文进行源地址转换;
设置对所述聚合虚拟网卡转发至所述网桥的数据报文进行目标地址转换。
5.一种主机操作系统,其特征在于,所述主机操作系统中运行有预设Linux容器,其中,所述预设Linux容器用于实现文件系统层的虚拟化隔离,所述预设Linux容器中运行有NVR系统的NVR应用程序,所述预设Linux容器内部配置有第一虚拟网卡,所述预设Linux容器外部且在所述主机操作系统内部配置有网桥,以及与所述第一虚拟网卡对应的第二虚拟网卡,所述第二虚拟网卡桥接至所述网桥,其中:
所述NVR应用程序,用于向所述第一虚拟网卡发送针对所述主机操作系统中安装的应用程序的第一数据报文;
所述第一虚拟网卡,用于将所述第一数据报文转发至所述网桥;
所述网桥,用于将所述第一数据报文转发至所述主机操作系统中安装的应用程序。
6.根据权利要求5所述的主机操作系统,其特征在于,所述网桥,还用于当接收到所述主机操作系统中安装的应用程序发送的针对所述NVR应用程序的第二数据报文时,将所述第二数据报文转发至所述第一虚拟网卡;
所述第一虚拟网卡,还用于将所述第二数据报文转发至所述NVR应用程序。
7.根据权利要求5所述的主机操作系统,其特征在于,在所述预设Linux容器外部且在所述主机操作系统内部还配置有聚合虚拟网卡,所述聚合虚拟网卡与所述主机操作系统所在的主机单板中用于与其他网络设备进行数据通信的物理网卡对应;
所述NVR应用程序,还用于向所述第一虚拟网卡发送针对所述其他网络设备的第三数据报文;
所述第一虚拟网卡,还用于将所述第三数据报文转发至所述网桥;
所述网桥,还用于向所述聚合虚拟网卡转发所述第三数据报文;
所述聚合虚拟网卡,用于通过所述物理网卡向所述其他网络设备转发从所述网桥接收到数据报文。
8.根据权利要求7所述的主机操作系统,其特征在于,所述聚合虚拟网卡,还用于当接收到所述其他网络设备发送的针对所述NVR应用程序的第四数据报文时,向所述网桥转发所述第四数据报文;
所述网桥,还用于向所述第一虚拟网卡转发从所述聚合虚拟网卡接收到数据报文;
所述第一虚拟网卡,还用于向所述NVR应用程序转发从所述网桥接收到数据报文。
9.一种数据通信方法,其特征在于,所述方法应用于主机操作系统,所述主机操作系统中运行有预设Linux容器,其中,所述预设Linux容器用于实现文件系统层的虚拟化隔离,所述预设Linux容器中运行有NVR系统的NVR应用程序,所述预设Linux容器内部配置有第一虚拟网卡,所述预设Linux容器外部且在所述主机操作系统内部配置有网桥,以及与所述第一虚拟网卡对应的第二虚拟网卡,所述第二虚拟网卡桥接至所述网桥,所述方法包括:
所述NVR应用程序向所述第一虚拟网卡发送针对所述主机操作系统中安装的应用程序的第一数据报文;
所述第一虚拟网卡将所述第一数据报文转发至所述网桥;
所述网桥将所述第一数据报文转发至所述主机操作系统中安装的应用程序。
10.根据权利要求9所述的方法,其特征在于,所述方法还包括:
当接收到所述主机操作系统中安装的应用程序发送的针对所述NVR应用程序的第二数据报文时,所述网桥将所述第二数据报文转发至所述第一虚拟网卡;
所述第一虚拟网卡将所述第二数据报文转发至所述NVR应用程序。
11.根据权利要求9所述的方法,其特征在于,在所述预设Linux容器外部且在所述主机操作系统内部还配置有聚合虚拟网卡,所述聚合虚拟网卡与所述主机操作系统所在的主机单板中用于与其他网络设备进行数据通信的物理网卡对应;
所述方法还包括:
所述NVR应用程序向所述第一虚拟网卡发送针对所述其他网络设备的第三数据报文;
所述第一虚拟网卡将所述第三数据报文转发至所述网桥;
所述网桥向所述聚合虚拟网卡转发所述第三数据报文;
所述聚合虚拟网卡通过所述物理网卡向所述其他网络设备转发从所述网桥接收到数据报文。
12.根据权利要求11所述的方法,其特征在于,所述方法还包括:
当接收到所述其他网络设备发送的针对所述NVR应用程序的第四数据报文时,所述聚合虚拟网卡向所述网桥转发所述第四数据报文;
所述网桥向所述第一虚拟网卡转发从所述聚合虚拟网卡接收到数据报文;
所述第一虚拟网卡向所述NVR应用程序转发从所述网桥接收到数据报文。
13.一种网络视频录像机NVR系统的启动装置,其特征在于,所述装置应用于主机单板,所述主机单板中配置有主机操作系统,所述装置包括:
第一创建模块,用于在所述主机操作系统启动后,创建预设Linux容器;其中,所述预设Linux容器用于实现文件系统层的虚拟化隔离;
加载模块,用于在所述预设Linux容器中加载需要启动的所述NVR系统的应用层数据,其中,所述应用层数据包括NVR应用程序;
第二创建模块,用于在所述预设Linux容器内部创建第一虚拟网卡;
第一处理模块,用于在所述预设Linux容器外部且在所述主机操作系统内部,创建与所述第一虚拟网卡对应的第二虚拟网卡,并将所述第二虚拟网卡桥接至所述主机操作系统内部的网桥,其中,所述NVR应用程序与所述主机操作系统中安装的应用程序之间通过所述网桥进行数据通信;
启动模块,用于启动所述预设Linux容器和所述NVR应用程序。
14.根据权利要求13所述的装置,其特征在于,所述装置还包括:
第二处理模块,用于加载所述NVR系统需要连接的硬件设备的驱动应用程序;
将所述硬件设备挂载到所述预设Linux容器。
15.根据权利要求13所述的装置,其特征在于,所述装置还包括:
挂载模块,用于将共享目录挂载到所述预设Linux容器,其中,所述共享目录用于表示所述主机操作系统需要与所述NVR系统共享的文件的目录。
16.根据权利要求13-15任一项所述的装置,其特征在于,所述装置还包括:
第三处理模块,用于生成与所述主机单板中用于与其他网络设备进行数据通信的物理网卡对应的聚合虚拟网卡;
设置对所述网桥转发至所述聚合虚拟网卡的数据报文进行源地址转换;
设置对所述聚合虚拟网卡转发至所述网桥的数据报文进行目标地址转换。
17.一种主机单板,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,所述处理器,所述通信接口,所述存储器通过所述通信总线完成相互间的通信;
所述存储器,用于存放计算机程序;
所述处理器,用于执行所述存储器上所存放的程序时,实现权利要求1-4任一所述的方法步骤。
18.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-4任一所述的方法步骤。
CN201910992215.9A 2019-10-18 2019-10-18 Nvr系统的启动方法、主机操作系统和数据通信方法 Active CN112764823B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910992215.9A CN112764823B (zh) 2019-10-18 2019-10-18 Nvr系统的启动方法、主机操作系统和数据通信方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910992215.9A CN112764823B (zh) 2019-10-18 2019-10-18 Nvr系统的启动方法、主机操作系统和数据通信方法

Publications (2)

Publication Number Publication Date
CN112764823A CN112764823A (zh) 2021-05-07
CN112764823B true CN112764823B (zh) 2023-03-10

Family

ID=75691479

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910992215.9A Active CN112764823B (zh) 2019-10-18 2019-10-18 Nvr系统的启动方法、主机操作系统和数据通信方法

Country Status (1)

Country Link
CN (1) CN112764823B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113791864B (zh) * 2021-09-08 2024-03-26 国电南瑞科技股份有限公司 一种基于容器和微服务化功能的监控系统及其构建方法
CN114640627B (zh) * 2022-03-10 2024-02-20 网宿科技股份有限公司 报文转发方法及装置、非易失性存储介质、处理器
CN116049896A (zh) * 2023-03-29 2023-05-02 中孚安全技术有限公司 一种linux系统下实现数据隔离的方法、系统、设备及介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103259735A (zh) * 2013-05-15 2013-08-21 重庆邮电大学 一种基于NetFPGA的可编程虚拟化路由器的通信方法
CN106020942A (zh) * 2016-05-05 2016-10-12 四川安嵌科技有限公司 一种基于多系统的WiFi设备复用方法及装置
CN106506314A (zh) * 2016-09-30 2017-03-15 北京赢点科技有限公司 基于docker的网络高可用方法及装置
CN107491391A (zh) * 2017-08-21 2017-12-19 深圳市天视通电子科技有限公司 一种软件测试系统及方法
CN107666446A (zh) * 2017-09-14 2018-02-06 北京京东尚科信息技术有限公司 下行流量、上行流量、双向流量限制方法和装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170199770A1 (en) * 2014-06-23 2017-07-13 Getclouder Ltd. Cloud hosting systems featuring scaling and load balancing with containers
CN108282376B (zh) * 2018-04-20 2021-06-08 江南大学 一种基于轻量级虚拟化的LDDoS仿真方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103259735A (zh) * 2013-05-15 2013-08-21 重庆邮电大学 一种基于NetFPGA的可编程虚拟化路由器的通信方法
CN106020942A (zh) * 2016-05-05 2016-10-12 四川安嵌科技有限公司 一种基于多系统的WiFi设备复用方法及装置
CN106506314A (zh) * 2016-09-30 2017-03-15 北京赢点科技有限公司 基于docker的网络高可用方法及装置
CN107491391A (zh) * 2017-08-21 2017-12-19 深圳市天视通电子科技有限公司 一种软件测试系统及方法
CN107666446A (zh) * 2017-09-14 2018-02-06 北京京东尚科信息技术有限公司 下行流量、上行流量、双向流量限制方法和装置

Also Published As

Publication number Publication date
CN112764823A (zh) 2021-05-07

Similar Documents

Publication Publication Date Title
US10009317B2 (en) Security policy generation using container metadata
CN112764823B (zh) Nvr系统的启动方法、主机操作系统和数据通信方法
US11243792B2 (en) Image file conversion method and apparatus
US10218790B2 (en) Providing access to a resource for a computer from within a restricted network
CN107222326B (zh) 用于设备间服务的访问方法、配置方法及装置
US11748113B2 (en) Operating system installation mechanism
CN113141405B (zh) 服务访问方法、中间件系统、电子设备和存储介质
CN115378735B (zh) 一种数据处理方法、装置、存储介质及电子设备
CN112799688A (zh) 容器应用内软件包安装方法、装置、计算机设备及介质
WO2020063607A1 (zh) 一种应用客户端启动方法,业务服务器和客户端设备
CN111800490A (zh) 获取网络行为数据的方法、装置及终端设备
CN113595927A (zh) 一种旁路模式下镜像流量的处理方法和装置
US20140173263A1 (en) Booting from a trusted network image
CN112231045A (zh) 对安全容器的健康检测方法、电子设备及介质
CN115913778A (zh) 一种基于边车模式的网络策略更新方法、系统及存储介质
US11604670B2 (en) Virtual machine live migration method, apparatus, and system
CN112383617B (zh) 进行长连接的方法、装置、终端设备以及介质
US9912783B2 (en) Securing internal services in a distributed environment
CN114422358A (zh) Api网关配置更新方法及设备
US11604877B1 (en) Nested courses of action to support incident response in an information technology environment
KR20180054112A (ko) 네트워크 기능 가상화 시스템을 운용하는 방법, 장치 및 컴퓨터 프로그램
CN117560285B (zh) 一种智控物联整机ota升级方法、客户端及服务端
US11762995B2 (en) Antivirus scanning architecture for uploaded files
US11196832B2 (en) System and method for providing UEFI protocol access control
CN113014411B (zh) 管理网络设备的方法、设备和系统

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