CN113383531B - 转发设备、网卡及报文转发方法 - Google Patents

转发设备、网卡及报文转发方法 Download PDF

Info

Publication number
CN113383531B
CN113383531B CN201980072205.1A CN201980072205A CN113383531B CN 113383531 B CN113383531 B CN 113383531B CN 201980072205 A CN201980072205 A CN 201980072205A CN 113383531 B CN113383531 B CN 113383531B
Authority
CN
China
Prior art keywords
forwarding
network card
message
protocol
data source
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
CN201980072205.1A
Other languages
English (en)
Other versions
CN113383531A (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN113383531A publication Critical patent/CN113383531A/zh
Application granted granted Critical
Publication of CN113383531B publication Critical patent/CN113383531B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Abstract

本申请提供了一种转发设备、网卡及报文转发方法,属于通信技术领域。本申请通过主控处理器通过系统总线将转发规则下发至网卡,在转发报文的过程中,可以将转发处理流程从主控处理器卸载至网卡上,由于免去了主控处理器对报文的转发处理过程,而通过网卡转发报文,因此节省了主控处理器转发报文带来的CPU开销,节约了主控处理器的算力,因此可以实现转发加速的功能,提升单机的转发能力。尤其是,可以通过网卡处理器协助主控处理器处理网络负载,由于网卡处理器能够代替主控处理器去执行报文转发处理的操作,因此可以将网络负载从主控处理器卸载至网卡上,令主控处理器可以为网络转发之外的任务留出更多算力。

Description

转发设备、网卡及报文转发方法
技术领域
本申请涉及通信技术领域,特别涉及一种转发设备、网卡及报文转发方法。
背景技术
报文转发是指接收到一个设备发送的报文后,将报文发送给另一个设备。随着通信技术的发展,报文转发技术的应用场景越来越多。以安防领域为例,例如,在视频订阅场景中,摄像机系统以及至少一个终端均会与转发设备连接,当摄像机系统中的一路或多路摄像机拍摄视频流后,会将视频流发送至转发设备,转发设备会根据视频流的订阅情况,向订阅了视频流的每个终端发送视频流。
目前,报文的转发流程均是由转发设备的中央处理器(central processingunit,CPU)执行的。具体而言,转发设备通常包括CPU以及与CPU相连的内存,内存中存储有路由表,路由表指明了报文的转发规则。当转发设备接收到报文后,CPU会访问内存中存储的路由表,根据路由表指示的转发规则,向报文的目的设备发送报文。
采用上述方法时,报文的转发流程会占用CPU大量的算力,造成CPU的开销过大,导致转发流程耗费的时间过长。尤其是,应用在视频订阅场景中,由于转发设备的CPU的算力有限,使得转发设备可接入的摄像机的总路数会由于CPU算力的不足而受到限制,导致转发设备可接入的摄像机的总路数过少,随着用户订阅的视频流的路数越来越多,经常无法满足时下转发多路视频流的需求。
发明内容
本申请实施例提供了一种转发设备、网卡及报文转发方法,能够实现转发加速的功能。所述技术方案如下:
第一方面,提供了一种转发设备,包括主控处理器、网卡以及系统总线,所述主控处理器以及所述网卡之间通过所述系统总线相连;所述主控处理器,用于从数据源接收接入信息,从目标设备接收订阅信息,根据所述接入信息以及所述订阅信息,确定转发规则,将所述转发规则通过所述系统总线发送至所述网卡,所述订阅信息用于请求订阅所述数据源提供的数据;所述网卡,用于通过所述系统总线接收所述转发规则;所述网卡,包括网卡处理器以及物理接口;所述物理接口,用于从所述数据源接收第一报文,将所述第一报文发送给所述网卡处理器,所述第一报文包括所述数据源提供的数据;所述网卡处理器,用于根据所述转发规则对所述第一报文进行处理,得到第二报文,将所述第二报文发送给所述物理接口,所述第二报文包括所述数据源提供的数据;所述物理接口,还用于向所述目标设备发送所述第二报文。
通过上述转发设备,由于主控处理器通过系统总线将转发规则下发至网卡,在转发报文的过程中,可以将转发处理流程从主控处理器卸载至网卡上,由于免去了主控处理器对报文的转发处理过程,而通过网卡转发报文,因此节省了主控处理器转发报文带来的CPU开销,节约了主控处理器的算力,因此可以实现转发加速的功能,提升单机的转发能力。尤其是,可以通过网卡处理器协助主控处理器处理网络负载,由于网卡处理器能够代替主控处理器去执行报文转发处理的操作,因此可以将网络负载从主控处理器卸载至网卡上,令转发设备的主控处理器可以为网络转发之外的任务留出更多算力。
可选地,所述网卡处理器,用于根据所述转发规则对所述第一报文的目的地址进行修改,得到所述第二报文,所述第一报文的目的地址为所述转发设备的地址,所述第二报文的目的地址为所述目标设备的地址;所述物理接口,用于根据所述第二报文的目的地址,向所述目标设备发送所述第二报文。
通过上述实施方式,达到的效果至少可以包括:一方面,通过修改目的地址,能够将报文从转发设备重定向至目标设备,实现报文转发的功能。另一方面,通过由网卡来修改报文的目的地址,而CPU在转发报文中可以不参与修改目的地址的流程,因此减少了CPU的处理开销,实现了报文转发的加速。
可选地,所述网卡处理器,用于根据所述转发规则,识别所述第一报文的协议类型,根据所述协议类型,对所述第一报文进行协议解析。
通过上述实施方式,达到的效果至少可以包括:通过在转发报文的过程中,将协议解析的流程从CPU卸载至网卡上,因此实现了协议加速卸载的功能,由于免去了CPU进行协议解析带来的CPU开销,而是由网卡来进行协议解析,减少了CPU的处理开销,节约了CPU的算力,因此实现了视频流的转发加速,节省了CPU的算力,并提升单机的转发能力。
可选地,所述网卡处理器,用于根据所述转发规则,识别所述第一报文的协议类型为实时传输协议RTP,对所述第一报文进行RTP协议解析。
通过在转发报文的过程中,将RTP协议解析的流程从CPU卸载至网卡上,因此实现了RTP协议卸载的功能,例如,可以将RTP解析、排序、组帧等数据面业务均卸载至网卡上,可以将RTP协议头、系统头的解析任务等全卸载至网卡上,因此转发数据面可以不经过CPU,减少了CPU的处理开销,从而大大加速了报文转发的过程,提升了单机的转发能力。
可选地,所述网卡处理器,用于根据所述转发规则,识别所述第一报文的协议类型为用户数据报协议UDP,对所述第一报文进行UDP协议解析。
通过在转发报文的过程中,将UDP协议解析的流程从CPU卸载至网卡上,因此实现了UDP协议卸载的功能,例如,可以将UDP解析、排序、组帧等数据面业务均卸载至网卡上,可以将UDP协议头、系统头的解析任务等全卸载至网卡上,因此协议解析过程可以不经过CPU,从而大大减少了CPU的开销,加速了报文转发的过程,提升了单机的转发能力。
可选地,所述网卡处理器,用于根据所述转发规则,识别所述第一报文的协议类型为传输控制协议TCP,对所述第一报文进行TCP协议解析。
通过在转发报文的过程中,将TCP协议解析的流程从CPU卸载至网卡上,因此实现了TCP协议卸载的功能,例如,可以将TCP解析、排序、组帧等数据面业务均卸载至网卡上,可以将TCP协议头、系统头的解析任务等全卸载至网卡上,因此转发数据面可以不经过CPU,从而减少了CPU的开销,加速了报文转发的过程,提升了单机的转发能力。
可选地,所述转发规则包括第一编码格式与第二编码格式之间的对应关系;所述网卡处理器,用于根据所述转发规则,对所述第一编码格式的第一报文进行处理,得到所述第二编码格式的第二报文。
通过上述实施方式,达到的效果至少可以包括:一方面,如果源端设定的编码格式和目标端设定的编码格式不一致,网卡通过对报文的编码格式进行转换,可以保证目标端收到的报文与目标端设定的编码格式一致,从而满足目标端的需求,保证接收端能够对收到的视频格式正常处理,例如正常播放视频。另一方面,通过将编码格式的转换过程从CPU卸载至网卡上,因此编码格式的转换过程可以不经过CPU,从而大大减少了CPU的开销,提升了单机的转发能力。
可选地,所述转发规则包括第一传输层协议与第二传输层协议之间的对应关系;所述网卡处理器,用于根据所述转发规则,对基于所述第一传输层协议的第一报文进行处理,得到基于所述第二传输层协议的第二报文。
通过上述实施方式,达到的效果至少可以包括:一方面,如果源端对应的传输层协议和目标端对应的传输层协议不一致,网卡通过对报文的传输层协议进行转换,可以保证目标端收到的报文与目标端对应的传输层协议一致,从而满足目标端的需求。另一方面,通过将传输层协议的转换过程从CPU卸载至网卡上,因此传输层协议的转换过程可以不经过CPU,从而大大减少了CPU的开销,提升了单机的转发能力。
可选地,所述主控处理器,还用于当所述转发设备接入所述数据源时,生成协商请求,向所述数据源发送所述协商请求,从来自所述数据源的协商响应获取所述接入信息;或者,所述主控处理器,还用于从所述数据源的协商请求获取所述接入信息。
通过上述实施方式,达到的效果至少可以包括:转发设备与数据源通过针对接入协议进行协商配置,转发设备可以在转发报文之前,基于协商流程提前得到数据源的接入信息,根据接入信息确定网卡的转发规则,那么后续网卡在根据转发规则转发数据源的报文时,执行的转发处理动作能够和数据源的接入信息相匹配,例如,网卡可以根据转发规则,基于数据源的接入协议,对报文执行该接入协议对应的协议解析操作。
可选地,所述数据源包括第一摄像机,所述目标设备包括第一终端,所述数据源提供的数据包括所述第一摄像机拍摄的视频数据、所述第一摄像机抓拍的图像数据或者所述第一摄像机录制的音频数据中的一种或多种;或者,所述数据源包括第二摄像机,所述目标设备包括第一存储设备,所述数据源提供的数据包括所述第二摄像机拍摄的视频数据、所述第二摄像机抓拍的图像数据或者所述第二摄像机录制的音频数据中的一种或多种;或者,所述数据源包括第二存储设备,所述目标设备包括第二终端,所述数据源提供的数据包括所述第二存储设备存储的数据。
第二方面,提供了一种网卡,网卡用于通过系统总线从主控处理器接收转发规则,所述网卡包括网卡处理器以及物理接口;所述物理接口,用于从数据源接收第一报文,发送给所述网卡处理器,所述第一报文包括所述数据源提供的数据;所述网卡处理器,用于根据转发规则对所述第一报文进行处理,得到第二报文,发送给所述物理接口,所述转发规则根据所述数据源的接入信息以及目标设备的订阅信息确定,所述订阅信息用于请求订阅所述数据源提供的数据,所述第二报文包括所述数据源提供的数据;所述物理接口,还用于向所述目标设备发送所述第二报文。
可选地,所述网卡处理器,用于根据所述转发规则对所述第一报文的目的地址进行修改,得到所述第二报文,所述第一报文的目的地址为所述网卡的地址,所述第二报文的目的地址为所述目标设备的地址;所述物理接口,用于根据所述第二报文的目的地址,向所述目标设备发送所述第二报文。
可选地,所述网卡处理器,用于根据所述转发规则,识别所述第一报文的协议类型,根据所述协议类型,对所述第一报文进行协议解析。
可选地,所述网卡处理器,用于根据所述转发规则,识别所述第一报文的协议类型为实时传输协议RTP,对所述第一报文进行RTP协议解析;或者,所述网卡处理器,用于根据所述转发规则,识别所述第一报文的协议类型为用户数据报协议UDP,对所述第一报文进行UDP协议解析;或者,所述网卡处理器,用于根据所述转发规则,识别所述第一报文的协议类型为传输控制协议TCP,对所述第一报文进行TCP协议解析。
可选地,所述转发规则包括第一编码格式与第二编码格式之间的对应关系;所述网卡处理器,用于根据所述转发规则,对所述第一编码格式的第一报文进行处理,得到所述第二编码格式的第二报文。
可选地,所述转发规则包括第一传输层协议与第二传输层协议之间的对应关系;所述网卡处理器,用于根据所述转发规则,对基于所述第一传输层协议的第一报文进行处理,得到基于所述第二传输层协议的第二报文。
可选地,所述数据源包括第一摄像机,所述目标设备包括第一终端,所述数据源提供的数据包括所述第一摄像机拍摄的视频数据、所述第一摄像机抓拍的图像数据或者所述第一摄像机录制的音频数据中的一种或多种;或者,所述数据源包括第二摄像机,所述目标设备包括第一存储设备,所述数据源提供的数据包括所述第二摄像机拍摄的视频数据、所述第二摄像机抓拍的图像数据或者所述第二摄像机录制的音频数据中的一种或多种;或者,所述数据源包括第二存储设备,所述目标设备包括第二终端,所述数据源提供的数据包括所述第二存储设备存储的数据。
第三方面,提供了一种报文转发方法,该方法应用于转发设备中,该方法用于实现第一方面或第一方面任意一种实现方式所提供的功能。
第四方面,提供了一种计算机可读存储介质,该存储介质中存储有至少一条指令,该指令由转发设备执行以使转发设备实现第一方面或第一方面任意一种实现方式所提供的功能。
第五方面,提供了一种计算机程序产品,当该计算机程序产品在转发设备上运行时,使得转发设备实现第一方面或第一方面任意一种实现方式所提供的功能。
第六方面,提供了一种报文转发系统,包括数据源、转发设备以及目标设备,该转发设备用于实现第一方面或第一方面任意一种实现方式所提供的功能。
第七方面,提供了一种报文转发方法,该方法应用于网卡中,该方法用于实现第二方面或第二方面任意一种实现方式所提供的功能。
第四方面,提供了一种计算机可读存储介质,该存储介质中存储有至少一条指令,该指令由网卡执行以使网卡实现第二方面或第二方面任意一种实现方式所提供的功能。
第五方面,提供了一种计算机程序产品,当该计算机程序产品在网卡上运行时,使得网卡实现第二方面或第二方面任意一种实现方式所提供的功能。
附图说明
图1是本申请实施例提供的一种报文转发系统的架构图;
图2是本申请实施例提供的一种视频转发系统的架构图;
图3是本申请实施例提供的一种视频转发系统的架构图;
图4是本申请实施例提供的一种视频转发系统的架构图;
图5是本申请实施例提供的一种转发设备的结构示意图;
图6是本申请实施例提供的一种网卡的结构示意图;
图7是本申请实施例提供的一种智能网卡的结构示意图;
图8是本申请实施例提供的一种视频转发加速装置的结构示意图;
图9是本申请实施例提供的一种报文转发方法的流程图;
图10是本申请实施例提供的一种报文转发方法的流程图;
图11是本申请实施例提供的一种报文转发方法的流程图;
图12是本申请实施例提供的一种报文转发方法的流程图;
图13是本申请实施例提供的一种报文转发方法的流程图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
本申请中术语“至少一个”的含义是指一个或多个,本申请中术语“多个”的含义是指两个或两个以上,例如,多个第二报文是指两个或两个以上的第二报文。本文中术语“系统”和“网络”经常可互换使用。
本申请中术语“第一”“第二”等字样用于对作用和功能基本相同的相同项或相似项进行区分,应理解,“第一”、“第二”、“第n”之间不具有逻辑或时序上的依赖关系,也不对数量和执行顺序进行限定。
应理解,在本申请的各个实施例中,各个过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
应理解,根据A确定B并不意味着仅仅根据A确定B,还可以根据A和/或其它信息确定B。
应理解,本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。
以下,示例性介绍本申请的系统架构。
参见图1,图1是本申请实施例提供的一种报文转发系统的架构图。该报文转发系统包括:数据源10、转发设备20以及目标设备30。
数据源10用于提供数据。数据源10可以和转发设备20建立网络连接,数据源10可以将数据携带在报文中,通过网络连接,将报文发送至转发设备20,从而将数据传输至转发设备20。
数据源10提供的数据可以是任意形式。例如,数据源10提供的数据可以是多媒体数据。该多媒体数据可以包括视频数据、图像数据或者音频数据中的一种或多种的组合。
数据源10的形态可以包括多种情况,以下结合(1.1)至(1.3),对数据源10的设备形态举例说明。
(1.1)数据源10可以为数据采集设备,数据源10可以通过配置的一种或多种传感器采集数据。例如,数据源10可以是摄像机、相机、智能手机、麦克风等等。
其中,数据源10可以是单个数据采集设备,也可以是多个数据采集设备组成的集群。例如,数据源10可以是单路摄像机,也可以是多路摄像机。
(1.2)数据源10可以为存储设备,数据源10可以包括非易失性存储器(non-volatile memory),例如快闪存储器(flash memory),硬盘(hard disk drive,缩写:HDD)或固态硬盘(英文:solid-state drive,缩写:SSD),或其任意组合,也可以是易失性存储器(英文:volatile memory),例如随机存取存储器(random-access memory,RAM)。在一些实施例中,数据源10可以为音视频存储设备,例如,数据源10可以是数字视频录像机(DigitalVideo Recorder,DVR,通常被称为硬盘录像机)、存储服务器、网络硬盘录像机(NetworkVideo Recorder,NVR)、盒式磁带录像机(Video Cassette Recorder,VCR)、家用录像系统(Video Home System,VHS)等等。
其中,数据源10可以是单个存储设备,也可以是多个存储设备组成的集群。例如,数据源10可以是存储阵列、分布式存储系统等。
(1.3)数据源10可以为计算设备,例如,数据源10可以是主机、服务器或个人计算机等。
应理解,上述(1.1)至(1.3)仅是对数据源10的形态的举例说明,本实施例对数据源10的具体类型不做限定。
数据源10可以而不限于运行在云环境、边缘环境或终端环境,本实施例对数据源10的运行环境不做限定。
转发设备20用于将数据源10的数据转发至目标设备30。具体地,转发设备20可以和数据源10建立网络连接,并和目标设备30建立网络连接。转发设备20可以通过网络连接接收来自数据源10的报文,对报文经过处理后,通过网络连接发送至目标设备30,从而将数据传输至目标设备30。
转发设备20的内部结构请参见下述图5实施例,在此不做赘述。
转发设备20的设备形态可以包括多种情况,以下结合(2.1)至(2.2),对数据源10的设备形态举例说明。
(2.1)转发设备20可以为计算设备,例如,转发设备20可以是服务器、主机或个人计算机等。例如,转发设备20可以是流媒体服务器、网关服务器等等。其中,转发设备20可以为一个单独的计算设备,也可以是多个计算设备组成的集群。例如,转发设备20可以提供为云计算平台或虚拟化中心。在一些实施例中,转发设备20可以用于提供订阅服务,能够将数据源10推送给订阅服务的使用者。例如,转发设备20可以为应用程序提供后台服务,该应用程序至少用于订阅数据源10的数据,比如,该应用程序为视频监控客户端,能够订阅某一路或多路摄像机拍摄的视频,转发设备20可以为视频监控客户端对应的后台服务器,可以将摄像机拍摄的视频推送给视频监控客户端。
(2.2)若转发设备20实现为网络设备,转发设备20可以是路由器、交换机,当然也可以是其他支持报文转发功能的设备。其中,转发设备20可以为一个单独的网络设备,也可以是多个网络设备组成的集群。
转发设备20可以而不限于运行在云环境、边缘环境或终端环境。转发设备20可以是物理设备,也可以是虚拟化设备。例如,转发设备20是运行有用于发送报文功能的程序的虚拟机(英文:Virtual Machine,VM),虚拟机部署在硬件设备上(例如,物理服务器)。例如,可以基于通用的物理服务器结合网络功能虚拟化(Network Functions Virtualization,NFV)技术来实现转发设备20,则转发设备20为虚拟主机、虚拟路由器或虚拟交换机。又如,转发设备20是容器或者其他类型的虚拟化设备。
目标设备30用于从转发设备20接收报文,从报文中得到数据源10提供的数据。目标设备30的设备形态可以包括多种情况,以下结合(3.1)至(3.3),对数据源10的设备形态举例说明。
(3.1)目标设备30可以为终端。目标设备30可以配置有屏幕,可以在屏幕中显示数据源10提供的数据,比如播放数据源10拍摄的视频或显示数据源10拍摄的图像。此外,目标设备30可以配置有扬声器,可以通过扬声器播放数据源10采集的音频。举例来说,目标设备30可以是监控设备、智能手机、电视、台式计算机、平板电脑、电视墙、音箱、电子书阅读器、MP3(Moving Picture Experts Group Audio Layer III,动态影像专家压缩标准音频层面3)播放器或MP4(Moving Picture Experts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器和膝上型便携计算机、游戏主机中的至少一种。目标设备30可以安装和运行应用程序,该应用程序用于订阅数据源10的数据,此外,还可以向用户提供数据源10的数据,比如播放视频、显示图像、播放音频等。该应用程序可以是客户端应用,也可以是浏览器应用,该应用程序内可以登录有用户账号。
(3.3)目标设备30可以为存储设备。具体地,目标设备30可以包括非易失性存储器,例如快闪存储器,HDD或SSD,或其任意组合,也可以是易失性存储器(英文:volatilememory),例如RAM。在一些实施例中,目标设备30可以为音视频存储设备,例如,目标设备30可以是DVR、存储服务器、NVR、VCR、VHS等。其中,目标设备30可以是单个存储设备,也可以是多个存储设备组成的集群。例如,目标设备30可以是存储阵列、分布式存储系统等。
图1所示的报文转发系统可以应用在多种场景下,例如可以应用在流媒体数据传输的场景,包括而不限于转发视频的场景、转发图像的场景、转发音频的场景等等。
以应用在视频监控及安防领域为例,上述报文转发系统可以为视频转发系统,以下对视频转发系统具体说明。
在一些实施例中,视频转发系统可以用于将一路或多路摄像机拍摄的视频流、抓拍的图像或录制的音频转发至终端,以便终端播放视频、显示图像或播放视频。在这种场景下,数据源10可以为第一摄像机101、转发设备20可以为视频转发平台201,目标设备30可以为第一终端301。例如,参见图2,图2是本申请实施例提供的一种视频转发系统的架构图,该视频转发系统包括:一路或多路第一摄像机101、视频转发平台201以及一个或多个第一终端301。其中,该第一摄像机101可以是网络摄像机(IP Camera,IPC),例如,第一摄像机101可以是云台摄像机、球机、枪式摄像机、人像卡口摄像机、车辆微卡口摄像机、机非人全结构化摄像机、电警卡口摄像机、态势感知摄像机等等。第一摄像机101可以基于接入协议,接入至转发设备20,该接入协议可以包括IPC软件开发工具包(Software Development Kit,SDK)接入、ONVIF(Open Network Video Interface Forum,开放型网络视频接口论坛)接入协议、GB/T28181接入协议等等。
在图2所示的架构中,一路或多路摄像机接入到视频转发平台201,视频转发平台201通过执行下述实施例,可以根据用户订阅的情况,将一路或多路视频流转发至终端。其中,图2所示的架构可以应用在一路多看场景下,即,视频转发平台201可以将一路视频流转发至多个终端,每个终端均可以播放该视频流。例如,视频转发平台201可以应用在视频直播场景,比如,第一摄像机101为主播的摄像机,第一终端301为观众的终端,视频转发平台201可以从主播的摄像机接收视频流,对视频流经过处理后,将视频流转发给订阅了该主播的直播的每个观众的终端。
在一些实施例中,视频转发系统可以用于将一路或多路摄像机拍摄的视频流、抓拍的图像或录制的音频转发至存储设备,以便存储设备存储视频、图像或音频。在这种场景下,数据源10可以为第二摄像机102、转发设备可以为视频转发平台201,目标设备30可以为第一存储设备302。例如,参见图3,图3是根据一示例性实施例示出的一种视频转发系统的架构图,该视频转发系统也可以作为视频存储系统,该视频转发系统包括:一路或多路第二摄像机102、视频转发平台201以及一个或多个第一存储设备302。其中,第二摄像机102的形态可以和第一摄像机101的形态相同,在此不做赘述。第一存储设备302可以是任意支持视频存储功能的设备,比如硬盘、存储服务器、存储阵列、云存储系统或录像机等。
在一些实施例中,视频转发系统可以用于将存储设备存储的数据转发至终端,以便终端读取存储设备存储的数据。在这种场景下,数据源10可以为第二存储设备103、转发设备可以为视频转发平台201,目标设备30可以为第二终端303。例如,参见图4,图4是根据一示例性实施例示出的一种视频转发系统的架构图,该视频转发系统也可以作为视频读取系统,该视频转发系统包括:一个或多个第二存储设备103、视频转发平台201以及一个或多个第二终端303。其中,第二终端303可以预先将数据存储至第二存储设备103,当要查询第二存储设备103存储的数据时,视频转发平台201可以将第二存储设备103存储的数据转发至第二终端303。
以上介绍了一些报文转发的系统架构以及示例性应用场景。相关技术中,报文转发的过程是在CPU上实现的,由CPU执行对报文的各种转发处理操作,例如协议栈解析、编码格式转换等等。因此,转发处理过程会占用大量的CPU开销,导致转发设备对数据流处理的路数受到限制。而下述实施例提供的转发设备及报文转发方法,可以直接在网络接入侧对报文进行转发处理,即,将原本由CPU执行的转发处理动作改进为由网卡执行,而CPU可以不参与转发报文的过程,因此实现了报文的转发加速,提升单机的转发能力。
以下通过图5实施例,示例性介绍本申请实施例提供的转发设备。图5实施例提供的转发设备500可以是上述系统架构中的转发设备20,例如可以是视频转发平台201。
参见图5,图5示出了本申请一个示例性实施例提供的转发设备500的结构示意图。该转发设备500包括主控处理器501、网卡502以及系统总线503。
主控处理器501和网卡502之间通过系统总线503相连,基于系统总线503通信。其中,系统总线503用于在主控处理器501和网卡502之间传输信息。该系统总线503可以是高速串行计算机扩展总线标准(peripheral component interconnect express,简称:PCIe)总线。主控处理器501可以通过驱动程序或者其他软件,将转发规则通过系统总线503发送至网卡502。在一些实施例中,主控处理器501可以通过系统总线503将流表写入至网卡502中,网卡502可以存储流表。主控处理器501通过系统总线503下发转发规则的时机可以包括多种情况。例如,当接收到客户端的订阅请求时,主控处理器501通过系统总线503将转发规则发送至网卡502。应理解,为便于表示,图5中仅用一条粗线表示系统总线503,但并不表示系统总线503仅有一根总线或一种类型的总线。
主控处理器501与网卡502的连接方式,例如可以是:转发设备500包括北桥,主控处理器501与北桥通信,北桥通过PCIe总线与网卡502通信,网卡处理器通过网卡502的对外接口与PCIe总线连接。或者是:主控处理器501通过PCIe总线直接与网卡502通信,网卡处理器通过网卡502的对外接口与PCIe总线连接。
PCIe总线是指在外设部件互连标准(peripheral component interconnect,简称:PCI)总线的基础上发展的一种局部总线,用于将处理器与至少一个外部设备连接。符合PCIe总线标准的外部设备称为PCIe设备。PCIe总线上具有至少一个PCIe接口,每个PCIe接口的物理形态可以是一个插糟。每个PCIe接口用于连接一个PCIe设备。PCIe总线上的各个PCIe设备采用了串行互联方式,PCIe总线上的不同PCIe设备之间可以通过点对点的形式进行业务数据传输。PCIe协议中通常会兼容PCI协议相关的技术以及PCI设备。如果系统总线503是PCIE总线,网卡502以及主控处理器501可以视为PCIE总线上连接的两个PCIE设备,主控处理器501可以基于PCIe协议,向网卡502发送转发规则。
应理解,上述仅是以系统总线503为PCIe总线为例进行描述,系统总线503也可以是PCIe总线之外的其他类型的系统总线,例如PCI总线、紧凑型PCI(Compact PCI)总线、视频电子标准协会(video electronics standard association,VESA)总线。如果网卡502与存储器110之间通过PCIE总线之外的其他系统总线连接和通信,可以相应地基于其他系统总线对应的通信协议来发送转发规则,本实施例对系统总线503的具体类型不做限定。
主控处理器501,用于从数据源接收接入信息,从目标设备接收订阅信息,根据接入信息以及订阅信息,确定转发规则,将转发规则通过系统总线发送至网卡502。
主控处理器501可以是转发设备500的通用中央处理器(central processingunit,CPU)。主控处理器501可以是单核CPU(single-CPU),也可以是多核CPU(multi-CPU)。主控处理器501也可以是集成电路,该集成电路用于实现主控处理器501执行的步骤。例如,主控处理器501可以是专用集成电路(application-specific integrated circuit,ASIC),可编程逻辑器件(programmable logic device,PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(complex programmable logic device,CPLD),现场可编程逻辑门阵列(field-programmable gate array,FPGA),通用阵列逻辑(generic array logic,GAL)或其任意组合。主控处理器501的数量可以是一个,也可以是多个。
数据源以及目标设备的描述还请参见上述图1实施例至图4实施例的介绍,为描述简洁,本实施例在此不做赘述。
接入信息可以包括数据源的网络地址,该网络地址可以包括数据源的媒体存取控制位址(Media Access Control Address,MAC地址,也称为局域网地址,MAC住址,以太网地址或物理地址)、互联网协议(Internet Protocol,IP)地址、端口号等。接入信息可以由数据源在接入至转发设备500时发送至转发设备500。接入信息可以指明数据源与转发设备500之间的接入协议。例如,接入信息可以包括数据源设定的协议类型,该协议类型包括传输层协议类型或者数据编码协议类型,接入信息中的协议类型可以通过协议标识进行表示。其中,接入信息中的数据编码协议类型可以指明数据源设定的数据编码格式,比如数据源进行编码时采用的数据格式。接入信息中的传输层协议类型可以指明数据源发送报文所基于的传输层协议。例如,传输层协议类型可以包括传输控制协议(Transmission ControlProtocol,TCP)或用户数据报协议(User Datagram Protocol,UDP),若接入信息中包含TCP,可以指明数据源将通过TCP协议向转发设备500发送报文,若接入信息中包含UDP,可以指明数据源将通过UDP协议向转发设备500发送报文。
例如,应用在视频转发的场景下,接入信息可以是摄像机接入转发设备500时向转发设备500提供的信息。接入信息可以包括摄像机的MAC地址、IP地址、端口号等。此外,接入信息还可以包括摄像机设定的视频协议类型,其中,该视频协议类型可以是视频编解码协议的的标识,也可以是传输层协议类型。该视频编解码协议可以而不限于是ONVIF协议、IPC软件开发工具包(Software Development Kit,SDK)接入协议、GB/T28181协议,当然也可以是其他协议。若接入信息包括该视频协议类型,接入信息可以通过该视频协议类型指明摄像机的视频编码格式。例如,若接入信息包括ONVIF,可以指明摄像机的视频编码格式为原始流(Elementary Streams,ES)格式或节目流(Program Stream,PS)格式。
接收接入信息的实现方式可以包括多种。在一些可能的实施例中,在数据源接入转发设备500时,数据源可以与转发设备500协商接入协议,此时转发设备500获取转发信息。例如,在视频监控场景下,当摄像机接入转发设备500时,摄像机可以与转发设备500协商接入协议,将接入信息发送至转发设备500。其中,协商具体可以包括多种方式,以下通过协商方式一至协商方式二举例说明。
协商方式一、转发设备500发起协商流程。
例如,主控处理器501,可以还用于当转发设备500接入数据源时,生成协商请求,向数据源发送协商请求。数据源接收转发请求后,可以生成携带接入信息的协商响应,将协商响应发送至转发设备500。转发设备500可以接收来自数据源的协商响应,从协商响应获取接入信息,从而得到数据源的MAC地址、IP地址、端口号等。其中,协商请求用于请求协商转发设备500与数据源之间的接入协议,协商响应用于对协商请求进行回复。
协商方式二、数据源发起协商流程。
例如,数据源可以当接入转发设备500时,生成协商请求,向转发设备500发送协商请求。转发设备500可以接收来自数据源的协商请求。主控处理器501,还用于从数据源的协商请求获取接入信息。
通过上述实施方式,达到的效果至少可以包括:转发设备500与数据源通过针对接入协议进行协商配置,转发设备500可以在转发报文之前,基于协商流程提前得到数据源的接入信息,根据接入信息确定网卡502的转发规则,那么后续网卡502在根据转发规则转发数据源的报文时,执行的转发处理动作能够和数据源的接入信息相匹配,例如,网卡502可以根据转发规则,基于数据源的接入协议,对报文执行该接入协议对应的协议解析操作。
订阅信息用于请求订阅数据源提供的数据,订阅信息可以指示目标设备的订阅情况。订阅信息可以包括目标设备的网络地址,例如,订阅信息可以包括目标设备的MAC地址、IP地址、端口号等。此外,订阅信息可以包括数据源的标识,以指明要订阅该标识对应的数据源的数据。例如,应用在视频转发的场景下,订阅信息可以包括摄像机的标识,从而通过摄像机的标识指明目标设备要订阅哪一路摄像机的视频。此外,订阅信息还可以包括目标设备设定的协议类型,订阅信息中的协议类型可以通过协议的标识进行表示。其中,该协议类型包括传输层协议类型、数据编码协议类型等。其中,订阅信息中的传输层协议类型可以指明目标设备接收报文所基于的传输层协议。例如,传输层协议类型可以包括TCP或UDP。若订阅信息包含TCP,可以指明目标设备将通过TCP协议接收报文;若订阅信息中包含UDP,可以指明目标设备将通过UDP协议接收报文。订阅信息中的数据编码协议类型可以指明目标设备设定的数据编码格式,比如目标设备进行视频解码时采用的数据格式。此外,接入信息还可以包括目标设备设定的视频协议类型,其中,该视频协议类型可以是视频编解码协议的类型,也可以是传输层协议的类型。该视频编解码协议可以而不限于是ONVIF协议、IPCSDK接入协议、GB/T28181协议,当然也可以是其他协议。
接收订阅信息的实现方式可以包括多种。例如,主控处理器501可以解析订阅请求,得到订阅请求携带的订阅信息。其中,订阅请求用于请求为目标设备订阅数据源的数据。在一些可能的实施例中,订阅请求可以由目标设备发送至转发设备500。例如,目标设备可以检测用户的订阅操作,生成订阅请求,向转发设备500发送订阅请求。在另一些可能的实施例中,订阅信息也可以由目标设备之外的其他设备发送至转发设备500。例如,用户可以在终端上输入目标设备的地址以及数据源的标识,在终端上触发订阅操作,终端可以检测用户的订阅操作,生成订阅请求,向转发设备500发送订阅请求,从而指示转发设备500将数据源的数据转发至目标设备。
转发规则用于指示网卡502的转发处理动作。具体地,转发规则可以包括源网络地址与目的网络地址之间的对应关系。例如,转发规则可以包括源MAC地址、源IP地址、源端口号与目的MAC地址、目的IP地址以及目的端口号之间的对应关系。也即是,转发规则可以包括五元组,五元组是指源IP地址,源端口号,目的IP地址,目的端口号和传输层协议。其中,转发规则中的源网络地址可以是数据源的网络地址。转发规则中的目的网络地址可以是目标设备的网络地址。转发规则由于包含网络地址之间的对应关系,能够向网卡502指明,当接收到来自源网络地址的报文时,应当发送至目的网络地址。此外,转发规则还可以包括源网络地址与动作标识之间的对应关系,该动作标识用于标识对应的处理动作,比如协议解析、编码格式转换等,从而向网卡502指明,当接收到来自源网络地址的报文时,应当执行该动作标识对应的处理动作。
在一些实施例中,转发规则还可以包括第一编码格式与第二编码格式之间的对应关系。第一编码格式是指数据源对应的编码格式,第二编码格式是指目标设备对应的编码格式,转发规则通过包括编码格式之间的对应关系,可以指示网卡502执行编码格式转换的动作,将数据源发来的第一编码格式的报文转换为第二编码格式的报文,以便将第二编码格式的报文转发至目标设备。
在一些实施例中,转发规则包括第一传输层协议与第二传输层协议之间的对应关系。第一传输层协议是指数据源对应的传输层协议,第二编码格式是指目标设备对应的传输层协议。转发规则通过包括该对应关系,可以指示网卡502执行传输层协议转换的动作,将数据源发来的基于第一传输层协议的报文转换为基于第二传输层协议的报文,以便将基于第二传输层协议的报文转发至目标设备。
转发规则的数据形式可以包括多种。在一些实施例中,转发规则可以是流表的形式,该流表包括一个或多个流表项,每个流表项可以指示将某一个IP地址和端口号对应的报文转发至另一个IP地址以及端口号,从而描述一个设备与另一个设备之间的转发规则。转发规则中第一编码格式与第二编码格式之间的对应关系可以位于同一流表项中。转发规则中第一传输层协议与第二传输层协议之间的对应关系可以位于同一流表项中。流表的具体格式,例如流表项中每个字段的位置以及不同字段的顺序可以是自定义配置的,也可以是默认的。
例如,参见下表1,流表可以包括源端网络地址、源端协议类型、源端传输层协议类型、目标端网络地址、目标端协议类型、目标端传输层协议类型等多个字段。其中,源端可以是数据源,源端网络地址中的MAC为数据源的MAC地址,源端网络地址中的IP为数据源的IP地址,源端网络地址中的PORT为数据源的端口号。源端协议类型中的ONVIF表示数据源的数据编码协议类型为ONVIF。源端传输层协议类型中的UDP表示数据源设定的传输层协议类型为UDP。目标端可以是目标设备,目标端网络地址中的MAC为目标设备的MAC地址,目标端网络地址中的IP为目标设备的IP地址,目标端网络地址中的PORT为目标设备的端口号,目标端协议类型中的ONVIF表示目标设备设定的数据编码协议类型为ONVIF,目标端传输层协议类型中的UDP表示目标设备设定的传输层协议类型为UDP。
表1
Figure GWB0000003344010000141
通过依据接入信息以及订阅信息,确定待转发的五元组,组织为流表下发到网卡502,网卡502在接收到报文时,能够按流表直接转发报文,因此实现了流表转发加速卸载的功能。此外,本实施例提供的流表与传统的路由表或流表不同,可以包括视频协议的成分,例如可以通过包括视频编码协议类型,指明源端设定的视频编码格式以及目标端设定的视频编码格式。
网卡502,用于通过系统总线接收转发规则,还用于从数据源接收第一报文,根据转发规则对第一报文进行处理,得到第二报文,向目标设备发送第二报文。
第一报文是指数据源发送的报文,第一报文包括数据源提供的数据。第一报文可以包括源网络地址以及目的网络地址。第一报文的源网络地址为数据源的网络地址,第一报文的目的地址为转发设备500的网络地址。例如,在视频转发场景下,第一报文的源IP地址可以是摄像机的IP地址,第一报文的源端口号可以是摄像机的端口号,第一报文的目的IP地址可以是转发设备500的IP地址,第一报文的目的端口号可以是转发设备500的端口号。
网卡502在根据转发规则处理的过程中,可以解析第一报文,得到第一报文携带的源网络地址,根据第一报文的源网络地址查询流表,确定源网络地址在流表命中的流表项,根据该流表项对应的转发规则对第一报文进行处理,得到第二报文,根据该流表项对应的转发规则向目标设备发送第二报文。在一种可能的实现中,确定命中的流表项的过程可以包括:根据第一报文的源IP地址、源MAC地址以及源端口号查询流表,对第一报文的源IP地址、源MAC地址以及源端口号与流表中每个流表项包含的源IP地址、源MAC地址以及源端口号分别进行匹配,若任一流表项中的源IP地址与第一报文的源IP地址匹配、且该流表项中的源IP地址与第一报文的源IP地址匹配、且该流表项中的源端口号与第一报文的源端口号匹配,则确定命中该流表项。
第二报文是指转发设备500向目标设备发送的报文。第二报文的目的地址可以为目标设备的地址。第二报文包括数据源提供的数据。
通过上述实施方式,达到的效果至少可以包括:通过上述转发设备500,由于主控处理器501将转发规则下发至网卡502,在转发报文的过程中,可以将转发处理流程从主控处理器501卸载至网卡502上,由于免去了主控处理器501对报文的转发处理过程,而通过网卡502转发报文,因此节省了主控处理器501转发报文带来的CPU开销,节约了主控处理器501的算力,因此可以实现转发加速的功能,提升单机的转发能力。尤其是,在转发设备500转发多路数据的场景下,如果由CPU进行转发处理,会占用大量的CPU资源,而单个CPU处理的路数有限,导致转发设备500无法满足转发多路数据的需求。而通过上述方法,可以利用网卡502的处理能力来转发报文,从而提高转发路数。
网卡502根据转发规则的处理方式可以包括多种。例如,处理方式包括而不限于修改目的地址、协议解析、编码格式转换、传输层协议类型转换等等。以下对网卡502的各种处理方式进行具体介绍。
在一些可能的实施例中,网卡502,用于根据转发规则对第一报文的目的地址进行修改,得到第二报文,根据第二报文的目的地址,向目标设备发送第二报文。
具体地,网卡502可以将第一报文的目的地址修改为转发规则中的目的地址,使得最终发送的第二报文的目的地址不是第一报文的目的地址,而是转发规则中的目的地址。例如,网卡502确定第一报文的源网络地址在流表命中的流表项之后,可以读取该命中的流表项中的目的地址,将第一报文的目的地址修改为流表项中的目的地址。在转发报文时,可以根据修改后的目的地址进行路由转发。
在一个示例性场景中,摄像机发送的报文原本的目的地址是转发设备500的地址,而转发设备500将报文的目的地址修改为终端的地址,那么对修改后的报文进行转发时,由于转发设备500发送的报文的目的地址已经变为终端的地址,从而指明报文要传输至终端,保证数据源的报文能够到达终端。
通过上述实施方式,达到的效果至少可以包括:一方面,通过修改目的地址,能够将报文从转发设备500重定向至目标设备,实现报文转发的功能。另一方面,通过由网卡502来修改报文的目的地址,而CPU在转发报文中可以不参与修改目的地址的流程,因此减少了CPU的处理开销,实现了报文转发的加速。
在一些可能的实施例中,网卡502,用于根据转发规则,识别第一报文的协议类型,根据协议类型,对第一报文进行协议解析。其中,识别协议类型的过程可以包括:网卡502确定第一报文的源网络地址在流表命中的流表项之后,可以读取该命中的流表项中的协议类型,作为第一报文的协议类型。
相关技术中,各种网络协议栈均需要由CPU进行协议解析,因此CPU的开销过大,导致报文转发耗时过长,并使得CPU的算力不足。而通过上述实施方式,达到的效果至少可以包括:通过在转发报文的过程中,将协议解析的流程从CPU卸载至网卡502上,因此实现了协议加速卸载的功能,由于免去了CPU进行协议解析带来的CPU开销,而是由网卡502来进行协议解析,减少了CPU的处理开销,节约了CPU的算力,因此实现了视频流的转发加速,节省了CPU的算力,并提升单机的转发能力。
协议卸载的功能具体可以包括多种。以下通过方式一至方式三进行举例说明:
方式一、RTP协议卸载。
具体地,网卡502用于根据转发规则,识别第一报文的协议类型为实时传输协议(Real-time Transport Protocol,RTP),对第一报文进行RTP协议解析。具体地,网卡502在进行RTP协议解析的过程中,可以按照RTP标准,执行解析RTP包头信息、排序、组帧等步骤。
在一些可能的实施例中,RTP协议加速卸载可以包括接收方向和发送方向这两个方向。在接收方向,可以对第一报文包含的RTP头解析,例如,根据RFC3550标准定义的RTP头结构,将RTP头中各个字段的信息进行解析和保存;其中,对于程序流(Program Stream,PS,也称节目流)协议头的解析,可以根据国际标准化组织(International Organization forStandardization,ISO)/国际电工委员会(International Electro technicalCommission,简称IEC)13818-1标准中规定的PS码流中的PS包头(PS Header)、系统包头(System Header)、分组的原始流(Packetized Elementary Streams,PES)包头(PESheader)的结构,对其中的各个字段信息进行解析和保存。在发送方向,可以根据ISO/IEC13818-1标准中规定的PS码流中的PS Header、System Header、PES header的结构,进行头的组装,以及对RTP头的组装,并将这些头按照标准定义的格式与数据进行组装,最终通过TCP/UDP协议发送出去。
相关技术中,RTP协议需要由CPU进行协议解析,因此CPU的开销过大,导致报文转发耗时过长,并使得CPU的算力不足。而通过上述实施方式,达到的效果至少可以包括:通过在转发报文的过程中,将RTP协议解析的流程从CPU卸载至网卡502上,因此实现了RTP协议卸载的功能,例如,可以将RTP解析、排序、组帧等数据面业务均卸载至网卡502上,可以将RTP协议头、系统头的解析任务等全卸载至网卡502上,因此转发数据面可以不经过CPU,减少了CPU的处理开销,从而大大加速了报文转发的过程,提升了单机的转发能力。
方式二、UDP协议卸载。
具体地,网卡502用于根据转发规则,识别第一报文的协议类型为用户数据报协议UDP,按照UDP标准,对第一报文进行UDP协议解析。
在一些实施例中,UDP协议加速卸载的方式和RTP协议加速卸载的方式可以结合。具体地,第一报文可以是RTP over UDP(RTP使用UDP协议传输)的模式,第一报文的载荷包括UDP报文,而UDP报文的载荷又包括RTP报文,即,RTP报文可以通过UDP协议承载。
通过上述实施方式,达到的效果至少可以包括:通过在转发报文的过程中,将UDP协议解析的流程从CPU卸载至网卡502上,因此实现了UDP协议卸载的功能,例如,可以将UDP解析、排序、组帧等数据面业务均卸载至网卡502上,可以将UDP协议头、系统头的解析任务等全卸载至网卡502上,因此协议解析过程可以不经过CPU,从而大大减少了CPU的开销,加速了报文转发的过程,提升了单机的转发能力。
方式三、TCP协议加速卸载。
具体地,网卡502用于根据转发规则,识别第一报文的协议类型为用户数据报协议TCP,按照TCP标准,对第一报文进行TCP协议解析。
在一些实施例中,TCP协议加速卸载的方式和RTP协议加速卸载的方式可以结合。具体地,第一报文可以是RTP over TCP(RTP使用TCP协议传输)的模式,第一报文的载荷包括TCP报文,而TCP报文的载荷又包括RTP报文,即,RTP报文可以通过TCP协议承载。
通过上述实施方式,达到的效果至少可以包括:通过在转发报文的过程中,将TCP协议解析的流程从CPU卸载至网卡502上,因此实现了TCP协议卸载的功能,例如,可以将TCP解析、排序、组帧等数据面业务均卸载至网卡502上,可以将TCP协议头、系统头的解析任务等全卸载至网卡502上,因此转发数据面可以不经过CPU,从而减少了CPU的开销,加速了报文转发的过程,提升了单机的转发能力。
在一些可能的实施例中,转发规则包括第一编码格式与第二编码格式之间的对应关系。网卡502,用于根据转发规则,对第一编码格式的第一报文进行处理,得到第二编码格式的第二报文。
以视频转发场景为例,如果摄像机设定的编码格式是原始流(ElementaryStreams,ES)格式,终端设定的编码格式是PS格式,则转发规则可以包括PS格式与ES格式之间的对应关系,网卡502接收到PS格式的第一报文时,根据转发规则,对PS格式的第一报文进行处理,得到ES格式的第二报文,从而将摄像机的报文从PS格式转换为ES格式,将ES格式的报文发送至终端。又如,如果摄像机设定的编码格式是PS格式,终端设定的编码格式是ES,则转发规则可以包括ES格式与PS格式之间的对应关系,网卡502接收到ES格式的第一报文时,根据转发规则,对ES格式的第一报文进行处理,得到PS格式的第二报文,从而将摄像机的报文从ES格式转换为PS格式,将PS格式的报文发送至终端。
通过上述实施方式,达到的效果至少可以包括:一方面,如果源端设定的编码格式和目标端设定的编码格式不一致,网卡502通过对报文的编码格式进行转换,可以保证目标端收到的报文与目标端设定的编码格式一致,从而满足目标端的需求,保证接收端能够对收到的视频格式正常处理,例如正常播放视频。另一方面,通过将编码格式的转换过程从CPU卸载至网卡502上,因此编码格式的转换过程可以不经过CPU,从而大大减少了CPU的开销,提升了单机的转发能力。
在一些可能的实施例中,网卡502,用于根据转发规则,对基于第一传输层协议的第一报文进行处理,得到基于第二传输层协议的第二报文。
以视频转发场景为例,如果摄像机基于UDP发送报文,终端基于TCP接收报文,则转发规则可以包括UDP与TCP之间的对应关系,网卡502接收到基于UDP的第一报文时,根据转发规则,对基于UDP的第一报文进行处理,得到基于TCP的第二报文,从而将摄像机的报文进行传输层协议的转换,将基于TCP报文发送至终端。
通过上述实施方式,达到的效果至少可以包括:一方面,如果源端对应的传输层协议和目标端对应的传输层协议不一致,网卡502通过对报文的传输层协议进行转换,可以保证目标端收到的报文与目标端对应的传输层协议一致,从而满足目标端的需求。另一方面,通过将传输层协议的转换过程从CPU卸载至网卡502上,因此传输层协议的转换过程可以不经过CPU,从而大大减少了CPU的开销,提升了单机的转发能力。
在一些实施例中,报文的转发处理过程中还可以包括其他步骤,而这些其他步骤也均可以从CPU卸载至网卡502执行,从而实现数据面的业务全卸载。例如,网卡502还可以用于更新报文的校验和(checksum),从而免去CPU更新checksum的开销。
在一些可能的实施例中,网卡502可以实现转发规则的老化机制,对转发规则自动进行老化处理,使得转发规则失效。其中,老化处理可以包括清除流表项、设置流表项的状态为不可达等等。老化机制的具体情况可以包括多种,以下通过方式一至方式二举例说明:
方式一、网卡502,还用于若转发设备500与数据源之间的连接断开,对转发规则进行老化处理。在一种可能的实现中,网卡502可以当检测到入接口处于关闭(down)状态,对流表中入接口对应的流表项进行老化处理。其中,该入接口用于接收来自数据源的报文,入接口对应的流表项用于指示从该入接口接收的报文的转发规则,当检测到入接口处于关闭状态,可以确定转发设备500与数据源之间的连接断开。
方式二、网卡502,还用于若转发设备500与目标设备之间的连接断开,对转发规则进行老化处理。在一种可能的实现中,网卡502可以当检测到出接口处于关闭状态,对流表中出接口对应的流表项进行老化处理。其中,该出接口用于向目标设备发送报文,出接口对应的流表项用于指示待向该出接口发送的报文的转发规则,当检测到出接口处于关闭状态,可以确定转发设备500与目标设备之间的连接断开。
例如,参见下表2,当转发设备500与目标设备之间的连接断开时,网卡502可以对流表中的以下流表项进行老化处理,使得流表项失效。其中,表2中的横线表示流表项已失效,例如,
Figure GWB0000003344010000181
表示流表中GB/T28181已经失效。
表2
Figure GWB0000003344010000182
通过上述实施方式,达到的效果至少可以包括:网卡502通过感知到断开与源端或目标端之间的连接时,自发地对转发规则进行老化,从而实现了转发规则的老化机制,能够将暂时不再需要的转发规则及时清除,从而释放转发规则占用的存储空间。
以上描述的转发设备500可以应用在多种场景下,例如,可以应用在转发视频的场景、转发图像的场景、转发音频的场景。
例如,应用在视频订阅的场景,数据源包括第一摄像机,目标设备包括第一终端,第一报文中数据源提供的数据具体可以包括第一摄像机拍摄的视频数据、第一摄像机抓拍的图像数据或者第一摄像机录制的音频数据中的一种或多种。其中,该第一摄像机可以是图2所示系统架构中的第一摄像机101,目标设备可以是图2所示系统架构中的第一终端301。如此,能够将摄像机拍摄的视频转发至终端,以便终端对摄像机拍摄的视频进行播放,能够将摄像机拍摄的图像转发至终端,以便终端对摄像机拍摄的图像进行显示,能够将摄像机录制的音频转发至终端,以便终端对摄像机拍摄的音频进行播放。
例如,应用在数据存储的场景,数据源包括第二摄像机,目标设备包括第一存储设备,第一报文中数据源提供的数据具体可以包括第二摄像机拍摄的视频数据、第二摄像机抓拍的图像数据或者第二摄像机录制的音频数据中的一种或多种。其中,该第二摄像机可以是图3所示系统架构中的第二摄像机102,目标设备可以是图3所示系统架构中的第一存储设备302。如此,能够将摄像机拍摄的视频、抓拍的图像或者制的音频存储至存储设备,以便存储设备对视频、图像或音频进行持久化存储。其中,该存储设备可以是硬盘。
例如,应用在数据读取的场景,数据源包括第二存储设备,目标设备包括第二终端,第一报文中数据源提供的数据具体可以包括第二存储设备存储的数据。其中,该第二存储设备可以是图4所示系统架构中的第二存储设备103,目标设备可以是图4所示系统架构中的第二终端303。如此,能够将存储设备存储的数据转发至终端。
通过上述实施方式,达到的效果至少可以包括:通过在视频订阅场景实现转发加速,节省视频、图像或音频等数据从摄像机传输至终端的时延,有助于终端更快地得到视频、图像或音频等数据。通过在数据存储场景实现转发加速,节省视频从摄像机传输至存储设备的时延,有助于存储设备更快地存储视频、图像或音频等数据。通过在数据读取场景实现转发加速,节省数据从存储设备传输至终端的时延,有助于终端更快地访问预先存储的视频、图像或音频等数据。
在一些实施例中,转发设备500还可以包括主控处理器501以及网卡502之外的其他部件。
例如,转发设备500可以包括主存储器504,主存储器504可以包括内存以及外存中的至少一种,主存储器504可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其它类型的静态存储设备,也可以是随机存取存储器(random access memory,RAM)或者可存储信息和指令的其它类型的动态存储设备,也可以是电可擦可编程只读存储器(electrically erasable programmable read-only Memory,EEPROM)、只读光盘(compact disc read-only memory,CD-ROM)或其它光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其它磁存储设备,或者是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其它介质,但不限于此。主存储器504可以是独立存在,并通过系统总线503与主控处理器501相连接。主存储器504也可以和主控处理器501集成在一起。
在一些实施例中,主存储器504用于存储执行本申请方案的程序代码510,主控处理器501可以执行主存储器504中存储的程序代码510,来实现方法实施例提供主控处理器501执行的全部或部分步骤。
以上描述了转发设备500,以下对该转发设备500中的网卡502进行示例性描述。
参见图6,图6示出了本申请一个示例性实施例提供的网卡502的结构示意图,该网卡502包括网卡处理器5021以及物理接口5022。
物理接口5022,用于从数据源接收第一报文,发送给网卡处理器5021。
网卡处理器5021,用于根据转发规则对第一报文进行处理,得到第二报文,发送给物理接口5022。其中,转发规则根据数据源的接入信息以及目标设备的订阅信息确定。
物理接口5022,还用于向目标设备发送第二报文。
网卡处理器5021的形态可以是芯片,网卡处理器5021可以通过集成电路实现。例如,网卡处理器5021可以是ASIC,PLD或其组合。PLD可以是CPLD,FPGA,GAL或其任意组合。网卡处理器5021的数量可以是一个,也可以是多个。此外,网卡处理器5021可以是通用处理器,例如CPU,或者网络处理器(network processer,NP),或者CPU和NP的组合。网卡处理器5021可以包括一个或多个处理核心。
物理接口5022用于与其它设备或通信网络通信。物理接口5022包括有线通信接口,还可以包括无线通信接口。其中,有线通信接口例如可以为以太网接口。以太网接口可以是光接口,电接口或其组合。无线通信接口可以为无线局域网(wireless local areanetworks,WLAN)接口,蜂窝网络通信接口或其组合等。
网卡502中的网卡处理器5021以及物理接口5022等可以分别实现上述实施例中的网卡502所具有的功能和/或所实施的各种步骤和方法,具体细节还请参见图5实施例,为了简洁,本实施例不再赘述。网卡处理器5021与物理接口5022之间可以通过先进微控制器总线架构(Advanced Microcontroller Bus Architecture,AMBA)总线通信,或者通过hccs总线(一种总线)通信。
在一些可能的实施例中,参见图7,网卡502可以是智能网卡5020。
网卡处理器5021可以是智能网卡5020中的可编程处理单元50211。智能网卡5020通过可编程处理单元50211实现可编程的功能,例如,可编程处理单元从报文接收单元接收第一报文之后,可以对第一报文进行自定义操作,该操作的过程可以通过软件编程进行自定义。在一些可能的实施例中,可以将各网络协议栈的处理逻辑(比如RTP协议解析、UDP协议解析、TCP协议解析等操作)固化成专用的ASIC芯片,而将其余随场景变化的处理逻辑通过可编程处理单元的定制化功能实现。
物理接口5022可以包括智能网卡5020中的以太接口、报文接收单元、报文发送单元PCIe接口。该以太接口连接物理接口与内部处理逻辑,报文接收单元用于接收从以太接口传输过来的第一报文。例如,网卡处理器5021处理得到第二报文后,可以将第二报文发送至PCIe接口,PCIe接口可以将第二报文发送到PCIe物理链路上。或者,网卡处理器5021处理得到第二报文后,可以将第二报文发送至报文发送单元,报文发送单元可以将第二报文发送至以太接口,以太接口可以通过物理链路将第二报文发送出去。
本实施例提供的网卡,可以通过网卡处理器5021协助转发设备的CPU处理网络负载,由于网卡处理器5021能够代替转发设备的CPU去执行报文转发处理的操作,因此可以将网络负载从CPU卸载至网卡502上,令转发设备的CPU可以为网络转发之外的任务留出更多算力。例如,可以通过网卡处理器5021代替转发设备的CPU执行各类协议解析的操作,从而实现协议栈的卸载,从而加速了网络转发的流程,减少了网络转发的时延,节省了转发设备的CPU的计算资源,提高包转发率,从而提升转发设备的性能。此外,该网卡处理器5021可以具备可编程能力,用户可以根据对转发面的需求,编制对应的程序,从而实现转发功能的可定制化,提高灵活性。
在一些可能的实施例中,网卡502还可以包括网卡存储器5023,网卡存储器5023可以是网卡502的动态随机存取存储器(Dynamic Random Access Memory,DRAM)。流表可以存储在网卡502的网卡存储器5023中,网卡处理器5021可以访问网卡存储器5023,得到网卡存储器5023存储的流表。其中,网卡存储器5023可以是独立存在,并通过系统总线与网卡处理器5021相连接。网卡存储器5023也可以和网卡处理器5021集成在一起。
在一些可能的实施例中,网卡处理器5021,用于根据转发规则对第一报文的目的地址进行修改,得到第二报文,第一报文的目的地址为网卡502的地址,第二报文的目的地址为目标设备的地址。
物理接口5022,用于根据第二报文的目的地址,向目标设备发送第二报文。
在一些可能的实施例中,网卡处理器5021,用于根据转发规则,识别第一报文的协议类型,根据协议类型,对第一报文进行协议解析。
在一些可能的实施例中,网卡处理器5021用于根据转发规则,识别第一报文的协议类型为RTP,对第一报文进行RTP协议解析;或者,网卡处理器5021用于根据转发规则,识别第一报文的协议类型为UDP,对第一报文进行UDP协议解析;或者,网卡处理器5021用于根据转发规则,识别第一报文的协议类型为TCP,对第一报文进行TCP协议解析。
在一些可能的实施例中,转发规则包括第一编码格式与第二编码格式之间的对应关系;网卡处理器5021,用于根据转发规则,对第一编码格式的第一报文进行处理,得到第二编码格式的第二报文。
在一些可能的实施例中,转发规则包括第一传输层协议与第二传输层协议之间的对应关系;网卡处理器5021,用于根据转发规则,对基于第一传输层协议的第一报文进行处理,得到基于第二传输层协议的第二报文。
在一些可能的实施例中,网卡处理器5021,还用于若网卡502与数据源之间的连接断开,对转发规则进行老化处理;或者,网卡处理器5021,还用于若网卡502与目标设备之间的连接断开,对转发规则进行老化处理。
在一些可能的实施例中,数据源包括第一摄像机,目标设备包括第一终端,数据源提供的数据包括第一摄像机拍摄的视频数据、第一摄像机抓拍的图像数据或者第一摄像机录制的音频数据中的一种或多种;或者,
数据源包括第二摄像机,目标设备包括第一存储设备,数据源提供的数据包括第二摄像机拍摄的视频数据、第二摄像机抓拍的图像数据或者第二摄像机录制的音频数据中的一种或多种;或者,
数据源包括第二存储设备,目标设备包括第二终端,数据源提供的数据包括第二存储设备存储的数据。
以上示例性介绍了本申请的硬件架构,以下通过图8,示例性介绍本申请提供的逻辑功能架构。
以视频转发场景为例,参见图8,本申请实施例提供了一种视频转发加速装置800。视频转发加速装置800可以包括摄像机接入管理单元801以及转发加速单元802。
摄像机接入管理单元801可以通过主控处理器501实现。摄像机接入管理单元801用于管理摄像机的接入,比如可以与摄像机协商接入协议。另外,摄像机接入管理单元801可以根据用户订阅情况,确定转发规则,例如源地址与目的地址之间的对应关系、源端协议类型与目的端协议类型之间的对应关系。摄像机接入管理单元801可以确定转发的五元组,通过驱动或其他软件将其组织为流表下发到转发加速单元802。
转发加速单元802可以通过网卡502实现。转发加速单元802可以根据摄像机接入管理单元801下发的转发规则,对接收到的原始报文进行重新组织,例如将原始报文的目的地址修改为下发的地址,将原始报文的端口号修改为下发的端口号,另外还可以进行checksum等各种计算。转发加速单元802对报文处理完成后,可以按照路由表转发报文。
转发加速单元802可以包括RTP协议加速单元8021、UDP加速单元8022、TCP加速单元8023以及流表加速单元8024。
RTP协议加速单元8021用于进行RTP协议解析,例如进行RTP协议头解析、系统头解析、排序、组帧,或者其他RTP协议中的数据面业务,从而免去转发设备的CPU执行RTP协议解析带来的开销,实现RTP协议卸载的功能。
UDP加速单元8022用于进行UDP协议解析,从而免去转发设备的CPU执行UDP协议解析带来的开销,实现UDP协议卸载的功能。
TCP加速单元8023用于进行TCP协议解析,从而免去转发设备的CPU执行TCP协议解析带来的开销,实现TCP协议卸载的功能。
流表加速单元8024用于根据流表对报文进行转发,从而将路由转发的流程从转发设备的CPU卸载。此外,转发加速单元802可以实现转发规则老化机制。
应理解,图8示出了视频转发加速装置内部的示意性处理流程或单元,在一些实施例中,可以根据需要部署其他模块或者处理流程。本申请实施例对此不做限制。
以上介绍了转发设备以及网卡的硬件结构以及逻辑功能架构,以下示例性介绍基于该转发设备进行报文转发的方法流程。
参见图9,图9是本申请实施例提供的一种报文转发方法的流程图,如图9所示,该方法应用于转发设备中。其中,该转发设备可以为图5实施例中的转发设备500、上述各个系统架构中的转发设备20,例如可以是视频转发平台201,该方法可以包括以下步骤:
S901、主控处理器从数据源接收接入信息,从目标设备接收订阅信息,订阅信息用于请求订阅数据源提供的数据。
S902、主控处理器根据接入信息以及订阅信息,确定转发规则。
S903、主控处理器将转发规则通过系统总线发送至网卡。
S904、网卡通过系统总线接收转发规则。
S905、网卡处理器从数据源接收第一报文,将第一报文发送给网卡处理器,第一报文包括数据源提供的数据。
S906、网卡处理器根据转发规则对第一报文进行处理,得到第二报文,将第二报文发送给物理接口,第二报文包括数据源提供的数据。
S907、物理接口向目标设备发送第二报文。
在一些实施例中,网卡处理器根据转发规则对第一报文进行处理,包括:网卡处理器根据转发规则对第一报文的目的地址进行修改,得到第二报文,第一报文的目的地址为转发设备的地址,第二报文的目的地址为目标设备的地址;向目标设备发送第二报文,包括:物理接口根据第二报文的目的地址,向目标设备发送第二报文。
在一些实施例中,网卡处理器根据转发规则对第一报文进行处理,包括:网卡处理器根据转发规则,识别第一报文的协议类型,根据协议类型,对第一报文进行协议解析。
在一些实施例中,网卡处理器根据转发规则,识别第一报文的协议类型,根据协议类型,对第一报文进行协议解析,包括:网卡处理器根据转发规则,识别第一报文的协议类型为实时传输协议RTP,对第一报文进行RTP协议解析;或者,网卡处理器根据转发规则,识别第一报文的协议类型为用户数据报协议UDP,对第一报文进行UDP协议解析;或者,网卡处理器根据转发规则,识别第一报文的协议类型为传输控制协议TCP,对第一报文进行TCP协议解析。
在一些实施例中,转发规则包括第一编码格式与第二编码格式之间的对应关系;网卡处理器根据转发规则对第一报文进行处理,包括:网卡处理器根据转发规则,对第一编码格式的第一报文进行处理,得到第二编码格式的第二报文。
在一些实施例中,转发规则包括第一传输层协议与第二传输层协议之间的对应关系;网卡处理器根据转发规则对第一报文进行处理,包括:网卡处理器根据转发规则,对基于第一传输层协议的第一报文进行处理,得到基于第二传输层协议的第二报文。
在一些实施例中,主控处理器根据数据源的接入信息以及目标设备的订阅信息,确定转发规则之前,方法还包括:当转发设备接入数据源时,主控处理器生成协商请求,向数据源发送协商请求,主控处理器从来自数据源的协商响应获取接入信息;或者,主控处理器从数据源的协商请求获取接入信息。
在一些实施例中,数据源包括第一摄像机,目标设备包括第一终端,数据源提供的数据包括第一摄像机拍摄的视频数据、第一摄像机抓拍的图像数据或者第一摄像机录制的音频数据中的一种或多种;或者,数据源包括第二摄像机,目标设备包括第一存储设备,数据源提供的数据包括第二摄像机拍摄的视频数据、第二摄像机抓拍的图像数据或者第二摄像机录制的音频数据中的一种或多种;或者,数据源包括第二存储设备,目标设备包括第二终端,数据源提供的数据包括第二存储设备存储的数据。
在一些实施例中,处理第二报文的过程可以包括以下步骤一至步骤四:
步骤一、根据转发规则,识别第一报文的协议类型为UDP,对第一报文进行UDP协议解析。其中,第一报文可以不会上传到内核做UDP协议解析。
步骤二、根据转发规则对第一报文的目的地址进行修改,得到第二报文。
步骤三、更新第二报文的checksum。
步骤四、根据第二报文的目的地址,向目标设备发送第二报文。
在一些可能的实施例中,该方法还包括:
若转发设备与数据源之间的连接断开,网卡对转发规则进行老化处理;或者,
若转发设备与目标设备之间的连接断开,网卡对转发规则进行老化处理。
应理解,图9提供的方法实施例与图5提供的设备实施例属于同一构思,图9实施例中描述的各个功能和/或所实施的各种步骤和方法的具体实现过程,还请参见图5实施例,为了简洁,这里不再赘述。
图9实施例从转发设备单侧的角度描述了报文转发的流程,以下从多侧交互的角度,对报文转发的流程进行介绍。
参见图10,图10是本申请实施例提供的一种报文转发方法的流程图,如图10所示,该方法的交互主体包括数据源、转发设备以及目标设备。其中,数据源可以是数据源10,该转发设备可以为图5实施例中的转发设备500,目标设备可以是目标设备30,该方法可以包括以下步骤:
S1001、数据源向转发设备发送接入信息。
S1002、目标设备向转发设备发送订阅信息。
应理解,本实施例对步骤S1001与步骤S1002的时序不做限定。在一些实施例中,步骤S1001与步骤S1002可以顺序执行。例如,可以先执行步骤S1001,再执行步骤S1002;也可以先执行步骤S1002,再执行步骤S1001。在另一些实施例中,步骤S1001与步骤S1002也可以并行执行,即,可以同时执行步骤S1001以及步骤S1002。
S1003、转发设备中的主控处理器从数据源接收接入信息,从目标设备接收订阅信息,根据数据源的接入信息以及目标设备的订阅信息,确定转发规则,订阅信息用于请求订阅数据源提供的数据。
S1004、转发设备中的主控处理器通过系统总线将转发规则发送至转发设备中的网卡,网卡通过系统总线接收转发规则。
S1005、数据源向转发设备发送第一报文。
S1006、转发设备中的网卡的物理接口从数据源接收第一报文,将第一报文发送给网卡处理器。
S1007、转发设备中的网卡的网卡处理器根据转发规则对第一报文进行处理,得到第二报文,将第二报文发送给物理接口。
S1008、转发设备中的网卡的物理接口向目标设备发送第二报文。
S1009、目标设备从转发设备接收第二报文,对第二报文进行处理。
应理解,图10提供的方法实施例与图5提供的设备实施例属于同一构思,图10实施例中描述的各个功能和/或所实施的各种步骤和方法的具体实现过程,还请参见图5实施例,为了简洁,这里不再赘述。
以应用在视频监控及安防领域为例,对上述多侧交互的流程具体说明。
图10实施例提供的多侧交互的流程可以应用在图2系统架构所示的视频订阅场景中。例如,参见图11,图11是本申请实施例提供的一种报文转发方法的流程图,如图11所示,该方法的交互主体包括第一摄像机、转发设备以及第一终端。其中,图11实施例中的第一摄像机可以为图2中的第一摄像机101,图11实施例中的转发设备可以为图2中的视频转发平台201,图11实施例中的第一终端可以为图2中的第一终端301,该方法可以包括以下步骤:
S1101、第一摄像机向转发设备发送接入信息。
S1102、第一终端向转发设备发送订阅信息,订阅信息用于请求订阅第一摄像机采集的数据。
应理解,本实施例对步骤S1101与步骤S1102的时序不做限定。在一些实施例中,步骤S1101与步骤S1102可以顺序执行。例如,可以先执行步骤S1101,再执行步骤S1102;也可以先执行步骤S1102,再执行步骤S1101。在另一些实施例中,步骤S1101与步骤S1102也可以并行执行,即,可以同时执行步骤S1101以及步骤S1102。
S1103、转发设备中的主控处理器从第一摄像机接收接入信息,从第一终端接收订阅信息,根据第一摄像机的接入信息以及第一终端的订阅信息,确定转发规则。
S1104、转发设备中的主控处理器通过系统总线将转发规则发送至转发设备中的网卡,网卡通过系统总线接收转发规则。
S1105、第一摄像机向转发设备发送第一报文,第一报文包括第一摄像机拍摄的视频数据、第一摄像机抓拍的图像数据或者第一摄像机录制的音频数据中的一种或多种;
S1106、转发设备中的网卡的物理接口从第一摄像机接收第一报文,将第一报文发送给网卡处理器;
S1107、转发设备中的网卡的网卡处理器根据转发规则对第一报文进行处理,得到第二报文,将第二报文发送给网卡的物理接口,第二报文包括第一摄像机拍摄的视频数据、第一摄像机抓拍的图像数据或者第一摄像机录制的音频数据中的一种或多种。
S1108、转发设备中的网卡的物理接口向第一终端发送第二报文。
S1109、第一终端从转发设备接收第二报文,对第一摄像机拍摄的视频数据进行播放、对第一摄像机抓拍的图像数据进行显示或者对第一摄像机录制的音频数据进行播放。
应理解,图11提供的方法实施例与图5提供的设备实施例属于同一构思,图11实施例中描述的各个功能和/或所实施的各种步骤和方法的具体实现过程,还请参见图5实施例,为了简洁,这里不再赘述。
图10实施例提供的多侧交互的流程可以应用在图3系统架构所示的视频存储场景中。例如,参见图12,图12是本申请实施例提供的一种报文转发方法的流程图,如图12所示,该方法的交互主体包括第二摄像机、转发设备以及第一存储设备。其中,图12实施例中的第二摄像机可以为图3中的第二摄像机102,图12实施例中的转发设备可以为图3中的视频转发平台201,图12实施例中的第一存储设备可以为图3中的第一存储设备302,该方法可以包括以下步骤:
S1201、第二摄像机向转发设备发送接入信息。
S1202、第一存储设备向转发设备发送订阅信息,订阅信息用于请求订阅第一存储设备存储的数据。
应理解,本实施例对步骤S1201与步骤S1202的时序不做限定。在一些实施例中,步骤S1201与步骤S1202可以顺序执行。例如,可以先执行步骤S1201,再执行步骤S1202;也可以先执行步骤S1202,再执行步骤S1201。在另一些实施例中,步骤S1201与步骤S1202也可以并行执行,即,可以同时执行步骤S1201以及步骤S1202。
S1203、转发设备中的主控处理器从第二摄像机接收接入信息,从第一存储设备接收订阅信息,根据第二摄像机的接入信息以及第一存储设备的订阅信息,确定转发规则;
S1204、转发设备中的主控处理器通过系统总线将转发规则发送至转发设备中的网卡,网卡通过系统总线接收转发规则;
S1205、第二摄像机向转发设备发送第一报文,第一报文包括第二摄像机拍摄的视频数据、第二摄像机抓拍的图像数据或者第二摄像机录制的音频数据中的一种或多种;
S1206、转发设备中的网卡的物理接口从第二摄像机接收第一报文,将第一报文发送至网卡处理器;
S1207、转发设备中的网卡的网卡处理器根据转发规则对第一报文进行处理,得到第二报文,将第二报文发送给物理接口,第二报文包括第二摄像机拍摄的视频数据、第二摄像机抓拍的图像数据或者第二摄像机录制的音频数据中的一种或多种。
S1208、转发设备中的网卡的物理接口向第一存储设备发送第二报文。
S1209、第一存储设备从转发设备接收第二报文,对第二摄像机拍摄的视频数据、第二摄像机抓拍的图像数据或者第二摄像机录制的音频数据进行存储。
应理解,图12提供的方法实施例与图5提供的设备实施例属于同一构思,图12实施例中描述的各个功能和/或所实施的各种步骤和方法的具体实现过程,还请参见图5实施例,为了简洁,这里不再赘述。
图10实施例提供的多侧交互的流程可以应用在图4系统架构所示的视频读取场景中。例如,参见图13,图13是本申请实施例提供的一种报文转发方法的流程图,如图13所示,该方法的交互主体包括第二存储设备、转发设备以及第二终端。其中,图13实施例中的第二存储设备可以为图4中的第二存储设备103,图13实施例中的转发设备可以为图4中的视频转发平台201,图13实施例中的第二终端可以为图4中的第二终端303,该方法可以包括以下步骤:
S1301、第二存储设备向转发设备发送接入信息。
S1302、第二终端向转发设备发送订阅信息,订阅信息用于请求订阅第二存储设备存储的数据。
应理解,本实施例对步骤S1301与步骤S1302的时序不做限定。在一些实施例中,步骤S1301与步骤S1302可以顺序执行。例如,可以先执行步骤S1301,再执行步骤S1302;也可以先执行步骤S1302,再执行步骤S1301。在另一些实施例中,步骤S1301与步骤S1302也可以并行执行,即,可以同时执行步骤S1301以及步骤S1302。
S1303、转发设备中的主控处理器从第二存储设备接收接入信息,从第二终端接收订阅信息,根据第二存储设备的接入信息以及第二终端的订阅信息,确定转发规则。
S1304、转发设备中的主控处理器通过系统总线将转发规则发送至转发设备中的网卡,网卡通过系统总线接收转发规则。
S1305、第二存储设备向转发设备发送第一报文,第一报文包括第二存储设备存储的数据。
S1306、转发设备中的网卡的物理接口从第二存储设备接收第一报文,将第一报文发送至网卡处理器。
S1307、转发设备中的网卡的网卡处理器根据转发规则对第一报文进行处理,得到第二报文,第二报文包括第二存储设备存储的数据。
S1308、转发设备中的网卡的物理接口向第二终端发送第二报文。
S1309、第二终端从转发设备接收第二报文,解析第二报文,得到第二存储设备存储的数据。
应理解,图13提供的方法实施例与图5提供的设备实施例属于同一构思,图13实施例中描述的各个功能和/或所实施的各种步骤和方法的具体实现过程,还请参见图5实施例,为了简洁,这里不再赘述。
本申请实施例提供了一种计算机程序产品,当该计算机程序产品在转发设备上运行时,使得转发设备执行上述方法实施例中的报文转发方法。
本领域普通技术人员可以意识到,结合本文中所公开的实施例中描述的各方法步骤和单元,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各实施例的步骤及组成。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。本领域普通技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参见前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,该单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
该作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本申请实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
该集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例中方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上描述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机程序指令。在计算机上加载和执行该计算机程序指令时,全部或部分地产生按照本申请实施例中的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,该计算机程序指令可以从一个网站站点、计算机、服务器或数据中心通过有线或无线方式向另一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质(例如软盘、硬盘、磁带)、光介质(例如,数字视频光盘(digitalvideo disc,DVD)、或者半导体介质(例如固态硬盘)等。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,该程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上描述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (17)

1.一种转发设备,其特征在于,包括主控处理器、网卡以及系统总线,所述主控处理器以及所述网卡之间通过所述系统总线相连;
所述主控处理器,用于从数据源接收接入信息,从目标设备接收订阅信息,根据所述接入信息以及所述订阅信息,确定所述数据源和所述目标设备之间的转发规则,将所述转发规则通过所述系统总线发送至所述网卡,所述订阅信息用于请求订阅所述数据源提供的数据;
所述网卡,用于通过所述系统总线接收所述转发规则;
所述网卡,包括网卡处理器以及物理接口;
所述物理接口,用于从所述数据源接收第一报文,将所述第一报文发送给所述网卡处理器,所述第一报文包括所述数据源提供的数据;
所述网卡处理器,用于根据所述转发规则对所述第一报文进行处理,得到第二报文,将所述第二报文发送给所述物理接口,所述第二报文包括所述数据源提供的数据;
所述物理接口,还用于向所述目标设备发送所述第二报文。
2.根据权利要求1所述的转发设备,其特征在于,所述网卡处理器,用于根据所述转发规则,识别所述第一报文的协议类型,根据所述协议类型,对所述第一报文进行协议解析。
3.根据权利要求2所述的转发设备,其特征在于,
所述网卡处理器,用于根据所述转发规则,识别所述第一报文的协议类型为实时传输协议RTP,对所述第一报文进行RTP协议解析;或者,
所述网卡处理器,用于根据所述转发规则,识别所述第一报文的协议类型为用户数据报协议UDP,对所述第一报文进行UDP协议解析;或者,
所述网卡处理器,用于根据所述转发规则,识别所述第一报文的协议类型为传输控制协议TCP,对所述第一报文进行TCP协议解析。
4.根据权利要求1至3中任一项所述的转发设备,其特征在于,所述转发规则包括第一编码格式与第二编码格式之间的对应关系;
所述网卡处理器,用于根据所述转发规则,对所述第一编码格式的第一报文进行处理,得到所述第二编码格式的第二报文。
5.根据权利要求1至3中任一项所述的转发设备,其特征在于,所述转发规则包括第一传输层协议与第二传输层协议之间的对应关系;
所述网卡处理器,用于根据所述转发规则,对基于所述第一传输层协议的第一报文进行处理,得到基于所述第二传输层协议的第二报文。
6.根据权利要求1至3中任一项所述的转发设备,其特征在于,
所述主控处理器,还用于当所述转发设备接入所述数据源时,生成协商请求,向所述数据源发送所述协商请求,从来自所述数据源的协商响应获取所述接入信息;或者,
所述主控处理器,还用于从所述数据源的协商请求获取所述接入信息。
7.一种网卡,其特征在于,所述网卡用于通过系统总线从主控处理器接收数据源和目标设备之间的转发规则,所述网卡包括网卡处理器以及物理接口;
所述物理接口,用于从所述数据源接收第一报文,发送给所述网卡处理器,所述第一报文包括所述数据源提供的数据;
所述网卡处理器,用于根据转发规则对所述第一报文进行处理,得到第二报文,发送给所述物理接口,所述转发规则根据所述数据源的接入信息以及所述目标设备的订阅信息确定,所述订阅信息用于请求订阅所述数据源提供的数据,所述第二报文包括所述数据源提供的数据;
所述物理接口,还用于向所述目标设备发送所述第二报文。
8.根据权利要求7所述的网卡,其特征在于,所述网卡处理器,用于根据所述转发规则,识别所述第一报文的协议类型,根据所述协议类型,对所述第一报文进行协议解析。
9.根据权利要求8所述的网卡,其特征在于,
所述网卡处理器,用于根据所述转发规则,识别所述第一报文的协议类型为实时传输协议RTP,对所述第一报文进行RTP协议解析;或者,
所述网卡处理器,用于根据所述转发规则,识别所述第一报文的协议类型为用户数据报协议UDP,对所述第一报文进行UDP协议解析;或者,
所述网卡处理器,用于根据所述转发规则,识别所述第一报文的协议类型为传输控制协议TCP,对所述第一报文进行TCP协议解析。
10.根据权利要求7至9中任一项所述的网卡,其特征在于,所述转发规则包括第一编码格式与第二编码格式之间的对应关系;所述网卡处理器,用于根据所述转发规则,对所述第一编码格式的第一报文进行处理,得到所述第二编码格式的第二报文。
11.根据权利要求7至9中任一项所述的网卡,其特征在于,所述转发规则包括第一传输层协议与第二传输层协议之间的对应关系;
所述网卡处理器,用于根据所述转发规则,对基于所述第一传输层协议的第一报文进行处理,得到基于所述第二传输层协议的第二报文。
12.一种报文转发方法,其特征在于,所述方法应用于转发设备中,所述转发设备包括主控处理器、网卡以及系统总线,所述主控处理器以及所述网卡之间通过所述系统总线相连,所述网卡包括网卡处理器以及物理接口;
所述主控处理器从数据源接收接入信息,从目标设备接收订阅信息,所述订阅信息用于请求订阅所述数据源提供的数据;
所述主控处理器根据所述接入信息以及所述订阅信息,确定所述数据源和所述目标设备之间的转发规则;
所述主控处理器将所述转发规则通过所述系统总线发送至所述网卡;
所述网卡通过所述系统总线接收所述转发规则;
所述网卡处理器从所述数据源接收第一报文,将所述第一报文发送给所述网卡处理器,所述第一报文包括所述数据源提供的数据;
所述网卡处理器根据所述转发规则对所述第一报文进行处理,得到第二报文,将所述第二报文发送给所述物理接口,所述第二报文包括所述数据源提供的数据;
所述物理接口向所述目标设备发送所述第二报文。
13.根据权利要求12所述的方法,其特征在于,所述网卡处理器根据所述转发规则对所述第一报文进行处理,包括:
所述网卡处理器根据所述转发规则,识别所述第一报文的协议类型,根据所述协议类型,对所述第一报文进行协议解析。
14.根据权利要求13所述的方法,其特征在于,所述网卡处理器根据所述转发规则,识别所述第一报文的协议类型,根据所述协议类型,对所述第一报文进行协议解析,包括:
所述网卡处理器根据所述转发规则,识别所述第一报文的协议类型为实时传输协议RTP,对所述第一报文进行RTP协议解析;或者,
所述网卡处理器根据所述转发规则,识别所述第一报文的协议类型为用户数据报协议UDP,对所述第一报文进行UDP协议解析;或者,
所述网卡处理器根据所述转发规则,识别所述第一报文的协议类型为传输控制协议TCP,对所述第一报文进行TCP协议解析。
15.根据权利要求12至14中任一项所述的方法,其特征在于,所述转发规则包括第一编码格式与第二编码格式之间的对应关系;
所述网卡处理器根据所述转发规则对所述第一报文进行处理,包括:
所述网卡处理器根据所述转发规则,对所述第一编码格式的第一报文进行处理,得到所述第二编码格式的第二报文。
16.根据权利要求12至14中任一项所述的方法,其特征在于,所述转发规则包括第一传输层协议与第二传输层协议之间的对应关系;
所述网卡处理器根据所述转发规则对所述第一报文进行处理,包括:
所述网卡处理器根据所述转发规则,对基于所述第一传输层协议的第一报文进行处理,得到基于所述第二传输层协议的第二报文。
17.根据权利要求12至14中任一项所述的方法,其特征在于,所述主控处理器根据数据源的接入信息以及目标设备的订阅信息,确定转发规则之前,所述方法还包括:
当所述转发设备接入所述数据源时,所述主控处理器生成协商请求,向所述数据源发送所述协商请求,所述主控处理器从来自所述数据源的协商响应获取所述接入信息;或者,
所述主控处理器从所述数据源的协商请求获取所述接入信息。
CN201980072205.1A 2019-12-25 2019-12-25 转发设备、网卡及报文转发方法 Active CN113383531B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2019/128424 WO2021128089A1 (zh) 2019-12-25 2019-12-25 转发设备、网卡及报文转发方法

Publications (2)

Publication Number Publication Date
CN113383531A CN113383531A (zh) 2021-09-10
CN113383531B true CN113383531B (zh) 2022-10-11

Family

ID=76575086

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980072205.1A Active CN113383531B (zh) 2019-12-25 2019-12-25 转发设备、网卡及报文转发方法

Country Status (2)

Country Link
CN (1) CN113383531B (zh)
WO (1) WO2021128089A1 (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113746919B (zh) * 2021-09-03 2024-04-30 中化信息技术有限公司 基于mqtt协议的多报文数据采集方法、采集系统
CN115842873A (zh) * 2021-09-18 2023-03-24 华为技术有限公司 一种报文处理方法、网卡及服务器
CN113890789B (zh) * 2021-09-29 2023-03-21 华云数据控股集团有限公司 适用于数据中心的udp隧道流量的分流方法、流量转发方法
CN114285676B (zh) * 2021-11-24 2023-10-20 中科驭数(北京)科技有限公司 智能网卡、智能网卡的网络存储方法和介质
CN114338515B (zh) * 2021-12-09 2023-08-22 中汽创智科技有限公司 一种数据传输方法、装置、设备及存储介质
CN114679296A (zh) * 2022-02-09 2022-06-28 浙江远望信息股份有限公司 一种基于特定视频协议的多网卡设备发现的方法
CN115022217A (zh) * 2022-06-14 2022-09-06 深信服科技股份有限公司 一种网卡检测方法、装置及电子设备和存储介质
CN115567446A (zh) * 2022-07-07 2023-01-03 华为技术有限公司 报文转发方法、装置、计算设备及卸载卡
CN115412308A (zh) * 2022-08-09 2022-11-29 北京天融信网络安全技术有限公司 报文处理方法、装置及电子设备
CN116055577B (zh) * 2023-01-28 2023-07-14 东方合智数据科技(广东)有限责任公司 协议转换方法、装置、设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102763367A (zh) * 2010-02-18 2012-10-31 阿尔卡特朗讯公司 用于策略和计费规则节点的生成的到期消息处理
EP3021534A1 (en) * 2014-11-14 2016-05-18 Telefonica S.A. A network controller and a computer implemented method for automatically define forwarding rules to configure a computer networking device
CN106254235A (zh) * 2016-07-27 2016-12-21 上海华为技术有限公司 一种负荷分担的方法及其设备
CN108337535A (zh) * 2018-03-21 2018-07-27 广州视源电子科技股份有限公司 客户端视频的转发方法、装置、设备和存储介质
CN110391993A (zh) * 2019-07-12 2019-10-29 苏州浪潮智能科技有限公司 一种数据处理方法及系统

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102647625B (zh) * 2012-05-03 2014-02-26 重庆邮电大学 基于端口号和ip地址的多视频转发方法
CN103916314A (zh) * 2013-12-26 2014-07-09 杭州华为数字技术有限公司 报文转发控制方法和相关装置及物理主机
CN113504984A (zh) * 2016-07-29 2021-10-15 华为技术有限公司 一种任务处理方法以及网络设备
CN109962859A (zh) * 2017-12-26 2019-07-02 北京华为数字技术有限公司 一种报文调度方法及设备
US11522805B2 (en) * 2018-12-29 2022-12-06 Intel Corporation Technologies for protocol-agnostic network packet segmentation

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102763367A (zh) * 2010-02-18 2012-10-31 阿尔卡特朗讯公司 用于策略和计费规则节点的生成的到期消息处理
EP3021534A1 (en) * 2014-11-14 2016-05-18 Telefonica S.A. A network controller and a computer implemented method for automatically define forwarding rules to configure a computer networking device
CN106254235A (zh) * 2016-07-27 2016-12-21 上海华为技术有限公司 一种负荷分担的方法及其设备
CN108337535A (zh) * 2018-03-21 2018-07-27 广州视源电子科技股份有限公司 客户端视频的转发方法、装置、设备和存储介质
CN110391993A (zh) * 2019-07-12 2019-10-29 苏州浪潮智能科技有限公司 一种数据处理方法及系统

Also Published As

Publication number Publication date
CN113383531A (zh) 2021-09-10
WO2021128089A1 (zh) 2021-07-01

Similar Documents

Publication Publication Date Title
CN113383531B (zh) 转发设备、网卡及报文转发方法
US20210337217A1 (en) Video analytics encoding for improved efficiency of video processing and compression
CN109640116B (zh) 云手机网络视频编码方法与服务器
CN107835979B (zh) 智能音频路由管理
US11348307B2 (en) Method and device for processing content
CN107770564B (zh) 远程采集音视频数据的方法及装置
CN112533014B (zh) 视频直播中目标物品信息处理和显示方法、装置及设备
Salehe et al. Videopipe: Building video stream processing pipelines at the edge
WO2019149066A1 (zh) 视频播放方法、终端设备及存储介质
CN111356023B (zh) 播放方式确定方法及装置
KR20220038176A (ko) 원격 단말을 위한 몰입형 원격 회의 및 텔레프레즌스를 위한 오버레이 처리용 파라미터
EP3399713B1 (en) Device, system, and method to perform real-time communication
US11546556B2 (en) Redundant array of inexpensive cameras
US20240064385A1 (en) Systems & methods for smart content streaming
CN113422669A (zh) 数据传输方法、装置和系统、电子设备以及计算机可读存储介质
US20160381094A1 (en) Communication terminal, communication system, communication control method, and recording medium
WO2022116822A1 (zh) 沉浸式媒体的数据处理方法、装置和计算机可读存储介质
US20070002860A1 (en) Method and system for a digital home network trace and debug tool
CN110958461B (zh) 一种视联网服务器连接状态的检测方法及装置
US10298885B1 (en) Redundant array of inexpensive cameras
CN108989905B (zh) 媒体流控制方法、装置、计算设备及存储介质
KR102137433B1 (ko) 영상 관리 장치 및 방법
US8933950B2 (en) Image processing device
JP6404915B2 (ja) データの自動圧縮
WO2024109317A1 (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