CN117176640A - 环路检测方法及装置 - Google Patents

环路检测方法及装置 Download PDF

Info

Publication number
CN117176640A
CN117176640A CN202311229024.XA CN202311229024A CN117176640A CN 117176640 A CN117176640 A CN 117176640A CN 202311229024 A CN202311229024 A CN 202311229024A CN 117176640 A CN117176640 A CN 117176640A
Authority
CN
China
Prior art keywords
node
information
source
instruction
received
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.)
Pending
Application number
CN202311229024.XA
Other languages
English (en)
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.)
Shanghai Bilibili Technology Co Ltd
Original Assignee
Shanghai Bilibili 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 Shanghai Bilibili Technology Co Ltd filed Critical Shanghai Bilibili Technology Co Ltd
Priority to CN202311229024.XA priority Critical patent/CN117176640A/zh
Publication of CN117176640A publication Critical patent/CN117176640A/zh
Pending legal-status Critical Current

Links

Classifications

    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/70Reducing energy consumption in communication networks in wireless communication networks

Landscapes

  • Computer And Data Communications (AREA)

Abstract

本申请实施例提供一种环路检测方法,所述方法包括:在发起回源的情况下,获取本节点的ID信息,并将本节点的ID信息记录在目标协议的自定义指令中;将所述自定义指令传递至回源的下一节点;在接收到其余节点传递的自定义指令的情况下,获取本节点的ID信息和接收到的自定义指令中的ID信息;在本节点的ID信息与接收到的自定义指令中的ID信息不同的情况下,将接收到的自定义指令传递至回源的下一节点;在本节点的ID信息与接收到的自定义指令中的ID信息相同的情况下,确定回源过程存在环路。本申请实施例提供的环路检测方法,可以检测回源过程中是否存在环路。

Description

环路检测方法及装置
技术领域
本申请涉及计算机技术领域,特别涉及一种环路检测方法、装置、计算机设备及存储介质。
背景技术
RTMP协议(实时信息传输协议)是一种用于低延迟、实时音视频和数据传输的双向互联网通信协议,具有稳定、兼容性强、高穿透的特点,常被应用于流媒体直播、点播等有稳定传输需求的场景。以直播为例,直播用户通过RTMP协议推流至源站服务器,观众用户就近访问边缘CDN节点,边缘CDN节点层层回源,通过RTMP协议从源站服务器拉流到直播内容,再将直播内容返回给观众用户。
CDN节点在回源时,会从回源中心获取回源地址来进行回源。然而,由于CDN服务器集群中有服务器上线、下线、回源中心提供的回源路径成环或者回源失败的降级等原因,CDN回源过程可能会出现环路。例如,对于同一条URL的流(即app和stream相同),CDN节点A到CDN节点B回源,CDN节点B到CDN节点C回源,CDN节点C又到CDN节点A回源,则该流在CDN节点A、CDN节点B、CDN节点C之间形成环路。
由于环路会导致同一段数据流在CDN之间回转,形成流量风暴,打高CDN的CPU、内存和带宽,导致用户无法正常观看直播或点播,因此需要避免环路的产生。然而,目前并没有一种有效的技术手段来检测回源过程是否存在环路。
发明内容
本申请的目的在于提供一种环路检测方法、装置、计算机设备及存储介质,用于解决目前无法检测回源过程是否存在环路的技术问题。
本申请实施例的一个方面提供了一种环路检测方法,包括:在发起回源的情况下,获取本节点的ID信息,并将本节点的ID信息记录在目标协议的自定义指令中;将所述自定义指令传递至回源的下一节点;在接收到其余节点传递的自定义指令的情况下,获取本节点的ID信息和接收到的自定义指令中的ID信息;在本节点的ID信息与接收到的自定义指令中的ID信息不同的情况下,将接收到的自定义指令传递至回源的下一节点;在本节点的ID信息与接收到的自定义指令中的ID信息相同的情况下,确定回源过程存在环路。
可选地,方法还包括:在接收到其余节点传递的自定义指令的情况下,确定本节点是否为推流点;在确定本节点为推流点的情况下,结束接收到的自定义指令的传递过程。
可选地,在所述确定回源过程存在环路之后,还包括:结束环路对应的回源过程并重新获取回源地址。
可选地,所述目标协议为RTMP协议,所述自定义指令为自定义AMF指令。
可选地,在所述将所述自定义指令传递至回源的下一节点之前,或者在将接收到的自定义指令传递至回源的下一节点之前,还包括:接收回源的下一节点返回的响应消息,其中,所述响应消息包括是否支持环路检测的信息;在所述响应消息包括不支持环路检测的信息的情况下,结束所述自定义指令的传递。
可选地,所述响应消息包括自定义属性,所述自定义属性包括用于表示是否支持环路检测的信息。
本申请实施例的一个方面又提供了一种环路检测装置,包括:第一获取模块,用于在发起回源的情况下,获取本节点的ID信息,并将本节点的ID信息记录在目标协议的自定义指令中;发送模块,用于将所述自定义指令传递至回源的下一节点;第二获取模块,用于在接收到其余节点传递的自定义指令的情况下,获取本节点的ID信息和接收到的自定义指令中的ID信息;传递模块,用于在本节点的ID信息与接收到的自定义指令中的ID信息不同的情况下,将接收到的自定义指令传递至回源的下一节点;确定模块,用于在本节点的ID信息与接收到的自定义指令中的ID信息相同的情况下,确定回源过程存在环路。
可选地,所述目标协议为RTMP协议,所述自定义指令为自定义AMF指令。
本申请实施例的一个方面又提供了一种计算机设备,所述计算机设备包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时用于实现上述的环路检测方法的步骤。
本申请实施例的一个方面又提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序可被至少一个处理器所执行,以使所述至少一个处理器执行上述的环路检测方法的步骤。
本申请实施例提供的环路检测方法、装置、计算机设备及存储介质,包括以下优点:
通过在发起回源的情况下,获取本节点的ID信息,并将本节点的ID信息记录在目标协议的自定义指令中,将自定义指令传递至回源的下一节点;在接收到其余节点传递的自定义指令的情况下,获取本节点的ID信息和接收到的自定义指令中的ID信息,在本节点的ID信息与接收到的自定义指令中的ID信息不同的情况下,将接收到的自定义指令传递至回源的下一节点;在本节点的ID信息与接收到的自定义指令中的ID信息相同的情况下,确定回源过程存在环路,可以有效地检测回源过程中是否存在环路,从而可以对环路作进一步处理,以减少环路对CDN的资源占用以及用户正常观看直播或点播的影响。
附图说明
图1示意性示出了本申请实施例的环境架构图;
图2示意性示出了本申请实施例一的环路检测方法的流程图;
图3为图2新增步骤的流程图;
图4为图2另一新增步骤的流程图;
图5示意性示出了本申请实施例二的环路检测装置的框图;
图6示意性示出了本申请实施例三的计算机设备的硬件架构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,在本申请实施例中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本申请要求的保护范围之内。
在本申请的描述中,需要理解的是,步骤前的数字标号并不标识执行步骤的前后顺序,仅用于方便描述本申请及区别每一步骤,因此不能理解为对本申请的限制。
下面为本申请涉及的术语解释:
内容分发网络(Content Delivery Network,CDN):是指一种透过网际网路互相连接的电脑网路系统,利用最靠近每位使用者的伺服器,更快、更可靠地将音乐、图片、影片、应用程式及其他档案传送给使用者,来提供高效能、可扩展性及低成本的网路内容传递给使用者。
回源:指客户端通过CDN访问资源时,若CDN边缘节点未缓存请求的资源,则CDN边缘节点回到源站来获取资源的过程。
推流:采集客户端的音视频数据,经过编码和使用传输协议封装后传输给服务器,此处的服务器为CDN架构中的源站。
拉流:客户端通过指定的回源地址拉取直播媒体流到本地的过程。
实时信息传输协议(Real Time Message Protocol,简称RTMP):是由Adobe公司提出的一种应用层的协议,用来解决多媒体数据传输流的多路复用(Multiplexing)和分包(packetizing)的问题。RTMP是一种基于TCP的协议,可维持持久连接并允许低延迟通信。为了顺利地传递流并传输尽可能多的信息,它将流分成片段,并且片段的大小可以在客户端和服务器之间动态协商。
回源中心:为CDN提供回源的地址的服务,CDN节点在接收到请求时,需要从回源中心获取回源的地址。
集群:某个地区可能会提供多台CDN机器来提供服务,这种同一个地区的多台CDN机器被称为集群。
协程:是计算机程序的一类组件,推广了协作式多任务的子例程,允许执行被挂起与被恢复。相对子例程而言,协程更为一般和灵活,但在实践中使用没有子例程那样广泛。协程更适合于用来实现彼此熟悉的程序组件,如协作式多任务、异常处理、事件循环、迭代器、无限列表和管道。
图1示意性示出了本申请实施例的环境架构图,如图所示:
以直播为例,直播用户通过客户端101将直播内容推送至CDN源站节点201,多个CDN边缘节点203经由CDN中间节点202从CDN源站节点201拉取直播内容,根据客户端102的请求将拉取的直播内容返回给客户端102,供客户端102的用户进行观看。在使用RTMP协议的场景中,客户端101通过RTMP协议将直播内容推送至CDN源站节点201,CDN节点203通过RTMP协议经由中间节点202从CDN源站节点201拉取直播内容。在发起回源的情况下,CDN节点203获取本节点的ID信息,将本节点的ID信息记录在目标协议(RTMP协议)的自定义指令中,将自定义指令发送至回源的下一节点(CDN中间节点202)。在不存在环路的情况下,CDN中间节点202在接收到自定义指令的情况下,获取自身节点的ID信息和自定义指令中的ID信息,将自定义指令中的ID信息与自身的ID信息进行比较,由于CDN中间节点202并不是发起回源的节点,因此可以确定自定义指令中的ID信息与自身的ID信息不同,则将自定义指令发送至回源的下一节点(如图中的CDN源站节点201);其余CDN中间节点(图中未画出)及源站CDN节点201也会重复相同的过程。在存在环路的情况下,自定义指令会回传至CDN边缘节点203,CDN边缘节点203通过比较后可以确定自定义指令中的ID信息就是本节点的ID信息,从而可以确定回源过程中出现环路。
相关技术中,环路会打高CDN的CPU、内存和带宽,导致用户无法正常观看直播或点播,但目前没有一种有效的技术手段来检测回源过程中是否存在环路。
本申请实施例的环路检测方法,可以检测回源过程中是否存在环路,以便及时对出现的环路进行处理,减少对用户正常观看直播或点播的影响。
以下将通过若干个实施例介绍环路检测方案,应当说明的是,本申请实施例的环路检测方法的执行主体可以是CDN中的任一节点及图1中所示的客户端101。
实施例一
图2示意性示出了本申请实施例一的环路检测方法的流程图,如图所示,可以包括步骤S310~步骤S350,具体说明如下:
步骤S310,在发起回源的情况下,获取本节点的ID信息,并将本节点的ID信息记录在目标协议的自定义指令中。
在示例性的实施例中,目标协议为RTMP协议,自定义指令为RTMP协议中自定义AMF指令。更具体地,自定义指令为RTMP协议的AMF0指令。自定义指令和其他AMF0指令一样,RTMP body的第一个字段是command,类型是string,value是loopDetect(环路检测,可以自行定义);第二个字段是transcactionID;第三个字段包含三个属性:app、stream、clientID,其中clientID即本节点的ID信息,是一个能标识自身的信息,例如进程启动之后生成的uuid。
在实际应用中,目标协议也可以是其它推拉流的协议。
应当理解的是,在发起回源时,才会将本节点的ID信息携带在自定义指令中发送至下一节点,而在回源路径上的其余中间节点则不会将自身节点的ID信息加入至自定义指令中。
步骤S320,将自定义指令传递至回源的下一节点。
具体地,当前节点可以先从回源中心获取到回源路径,根据回源路径将回源请求发送至回源路径上的下一节点,同时将自定义指令发送至回源路径上的下一节点。
步骤S330,在接收到其余节点传递的自定义指令的情况下,获取本节点的ID信息和接收到的自定义指令中的ID信息。
应当理解的是,由于本申请实施例的环路检测方法的执行主体为CDN中的任一节点及图1中所示的客户端101,因此,本节点可以不是发起回源的节点,而是图1所示的CDN中间节点202,也可以图1所示的CDN源站节点201,还可以是图1所示的客户端101。相应地,在本节点是发起回源的节点时,可以是重新获取一次本节点的ID信息,也可以从发起回源时获取的信息中获取。在本节点不是发起回源的节点时,则可以是第一次获取本节点的ID信息。
步骤S340,在本节点的ID信息与接收到的自定义指令中的ID信息不同的情况下,将接收到的自定义指令传递至回源的下一节点。
在本节点的ID信息与接收到的自定义指令中的ID信息不同的情况下,表示本节点并不是发起回源的节点,亦即表示未检测到环路,则正常将当前接收到的自定义指令传递至回源路径的下一节点。例如,图1中CDN中间节点202将本节点的ID与接收到的自定义指令中的ID进行比较,比较的结果为本节点的ID与自定义指令中的ID不同,则将接收到的自定义指令传递至回源路径的下一个节点(例如是CDN中间节点或CDN源站节点201)。
步骤S350,在本节点的ID信息与接收到的自定义指令中的ID信息相同的情况下,确定回源过程存在环路。
在本节点的ID信息与接收到的自定义指令中的ID信息相同的情况下,表示本节点为发起回源的节点,则可以确定当前接收到的自定义指令为本节点发出的自定义指令,从而可以确定回源过程存在环路。
以下通过一个示例进行说明:
以下为一个回源路径:
X→Y→A→Z。
其中,A→B表示A去B回源。
在上面的回源路径中,Z为推流点,在正常回源的情况下,每个节点在判断本节点的ID信息与自定义指令中的ID信息时,均可以发现本节点的ID信息与自定义指令中的ID信息不同,则自定义指令在X→Y→A→Z一级一级传递。
假设由于某些原因,A→Z突然断开,而A拿到的新回源地址是X,则回源会包括以下过程:
1、节点A发起回源,发送loopDectect(即自定义指令)给节点X;
2、节点X收到loopDectect后,通过比较本节点的ID信息与loopDectect中的ID信息,发现loopDectect中clientID不是自己,则将loopDetect传递给节点Y;
3、节点Y收到loopDectect后,通过比较本节点的ID信息与loopDectect中的ID信息,发现loopDectect中的clientID不是自己,则将loopDetect传递给节点A;
4、节点A收到loopDectect后,通过比较本节点的ID信息与loopDectect中的ID信息,发现loopDectect中的clientID是自己,则可以确定该流出现了环路。
本申请实施例提供的环路检测方法,通过在发起回源的情况下,获取本节点的ID信息,并将本节点的ID信息记录在目标协议的自定义指令中,将自定义指令传递至回源的下一节点;在接收到其余节点传递的自定义指令的情况下,获取本节点的ID信息和接收到的自定义指令中的ID信息,在本节点的ID信息与接收到的自定义指令中的ID信息不同的情况下,将接收到的自定义指令传递至回源的下一节点;在本节点的ID信息与接收到的自定义指令中的ID信息相同的情况下,确定回源过程存在环路,可以有效地检测回源过程中是否存在环路,从而可以对环路作进一步处理,以减少环路对CDN的资源占用以及用户正常观看直播或点播的影响。
在示例性的实施例中,如图3所示,本申请实施例的环路检测方法还可以包括步骤S410~步骤S420,具体如下:
步骤S410,在接收到其余节点传递的自定义指令的情况下,确定本节点是否为推流点。
在接收到其余节点传递的自定义指令的情况下,本节点可以通过app以及stream的信息进行判断来确定本节点是否为推流点。具体地,可以通过上行链路和下行链路来判断,若本节点为推流点,则对应的流只有上行链路没有对应的下行链路,因此在判断对应的流只有上行链路没有对应的下行链路的情况下,可以确定本节点为推流点。
步骤S420,在确定本节点为推流点的情况下,结束接收到的自定义指令的传递过程。
在确定本节点为推流点的情况下,由于推流点不会存在回源的下一节点,则可以结束自定义指令的传递过程,同时也可以表明回源过程中不存在环路。
以下通过一个具体示例来说明:
以下为一个的回源路径:
A→X→Y→Z。
其中Z为推流点,回源会包括以下过程:
1、节点A发起回源,发送loopDectect(即自定义指令)给节点X;
2、节点X收到loopDectect后,通过比较本节点的ID信息与loopDectect中的ID信息,发现loopDectect中clientID不是自己,则将loopDetect传递给节点Y;
3、节点Y收到loopDectect后,通过比较本节点的ID信息与loopDectect中的ID信息,发现loopDectect中的clientID不是自己,则将loopDetect传递给节点Z;
4、节点Z收到loopDectect后,根据app和stream发现自身是推流点,则结束loopDectect的传递。
本实施例中,通过在接收到其余节点传递的自定义指令的情况下,确定本节点是否为推流点,在确定本节点为推流点的情况下,结束接收到的自定义指令的传递过程,可以在不存在环路的情况下,主动结束接收到的自定义指令的传递过程。
在示例性的实施例中,在步骤S350之后,即在确定回源过程存在环路之后,还可以包括:结束环路对应的回源过程并重新获取回源地址。
应当理解的是,在CDN的节点中,会存在多个回源过程,而每个回源过程都是由一个协程来单独处理的,因此,在结束环路对应的回源过程时,可以是结束出现环路对应的协程。例如,协程1对应的回源出现了环路,则结束协程1。另外,由于是比较本节点的ID信息与自定义指令中的ID信息来确定是否存在环路的,因此确定存在环路的节点为发起回源的节点,相应地,结束环路对应的回源过程并重新获取回源地址的节点也为发起回源的节点。在重新获取回源地址,节点可以从回源中心处重新获取回源地址。由于重新获取的回源地址可能会与原来的回源地址不同,因此根据重新获取的回源地址重新发起回源,可以避免原来回源路径存在的环路问题。实际应用中,可以将重新获取的回源地址与当前的回源地址进行比较,在不同的情况下,再重新发起回源,否则停止回源操作,避免再次出现环路。
本实施例中,通过在确定回源过程存在环路之后,结束环路对应的回源过程,可以对检测到的环路进行及时断开,避免环路过高占用CDN的资源,减少环路对CDN的影响;而重新获取回源地址,则可以获取到与原来不同的回源地址,实现相应流的回源操作。
在示例性的实施例中,在步骤S320或步骤S340之前,即在将自定义指令传递至回源的下一节点之前,或者在将接收到的自定义指令传递至回源的下一节点之前,如图4所示,可以包括步骤S510~步骤S520,具体如下:
步骤S510,接收回源的下一节点返回的响应消息,其中,响应消息包括是否支持环路检测的信息。
在示例性的实施例中,响应消息包括自定义属性,自定义属性包括用于表示是否支持环路检测的信息。具体地,节点可以是在_result的info(即响应消息)中增加一个属性loopDetect(即自定义属性),keytype为string,value为“enable”,表示该节点支持环路检测,其中,_result为在前一节点amf0的connect后返回给前一节点的消息。
步骤S520,在响应消息包括不支持环路检测的信息的情况下,结束自定义指令的传递。
可选地,若是在步骤S320之前,则在响应消息包括支持环路检测的信息的情况下,将自定义指令传递至回源的下一节点;若是在步骤S340之前,则在响应消息包括支持环路检测的信息的情况下,将接收到的自定义指令传递至回源的下一节点。
应当说明的是,在响应消息包括不支持环路检测的信息的情况下,表明回源的下一节点不会进行自定义指令的传递,则可以结束自定义指令的传递。
实际应用中,由于部署的先后顺序导致已部署的节点支持环路检测,未部署的节点不支持环路检测,若将自定义指令传递至不支持环路检测的节点,则不能顺利地进行环路检测以及相关验证;而在确定下一节点支持环路检测的情况下,再进行自定义指令的传递,可以顺利地进行环路检测以及相关验证,也保证了RTMP协议的兼容性。
本实施例中,通过接收回源的下一节点返回的响应消息,在响应消息包括不支持环路检测的信息的情况下,结束自定义指令的传递,可以在回源下一节点不支持环路检测的情况下,主动结束自定义指令的传递,保证协议的兼容性。
实施例二
图5示意性示出了根据本申请实施例二的环路检测装置600的框图,该环路检测装置600可以被分割成一个或多个程序模块,一个或者多个程序模块被存储于存储介质中,并由一个或多个处理器所执行,以完成本申请实施例。本申请实施例所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,以下描述将具体介绍本实施例中各程序模块的功能。
如图5所示,该环路检测装置600可以包括第一获取模块610、发送模块620、第二获取模块630、传递模块640和确定模块650。
第一获取模块610,用于在发起回源的情况下,获取本节点的ID信息,并将本节点的ID信息记录在目标协议的自定义指令中;
发送模块620,用于将所述自定义指令传递至回源的下一节点;
第二获取模块630,用于在接收到其余节点传递的自定义指令的情况下,获取本节点的ID信息和接收到的自定义指令中的ID信息;
传递模块640,用于在本节点的ID信息与接收到的自定义指令中的ID信息不同的情况下,将接收到的自定义指令传递至回源的下一节点;
确定模块650,用于在本节点的ID信息与接收到的自定义指令中的ID信息相同的情况下,确定回源过程存在环路。
在示例性的实施例中,该环路检测装置600还用于:在接收到其余节点传递的自定义指令的情况下,确定本节点是否为推流点;在确定本节点为推流点的情况下,结束接收到的自定义指令的传递过程。
在示例性的实施例中,在确定回源过程存在环路之后,该环路检测装置600还用于:结束环路对应的回源过程并重新获取回源地址。
在示例性的实施例中,目标协议为RTMP协议,自定义指令为自定义AMF指令。
在示例性的实施例中,在将自定义指令传递至回源的下一节点之前,或者在将接收到的自定义指令传递至回源的下一节点之前,该环路检测装置600还用于:接收回源的下一节点返回的响应消息,其中,响应消息包括是否支持环路检测的信息;在响应消息包括不支持环路检测的信息的情况下,结束自定义指令的传递。
在示例性的实施例中,响应消息包括自定义属性,自定义属性包括用于表示是否支持环路检测的信息。
实施例三
图6示意性示出了根据本申请实施例三的适于环路检测方法的计算机设备700的硬件架构图。计算机设备700可以是一种能够按照事先设定或者存储的指令,自动进行数值计算和/或数据处理的设备。例如,可以是机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)、网关等。如图6所示,计算机设备700至少包括但不限于:可通过系统总线相互通信链接存储器710、处理器720、网络接口730。其中:
存储器710至少包括一种类型的计算机可读存储介质,可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器710可以是计算机设备700的内部存储模块,例如该计算机设备700的硬盘或内存。在另一些实施例中,存储器710也可以是计算机设备700的外部存储设备,例如该计算机设备700上配备的插接式硬盘,智能存储卡(Smart Media Card,简称为SMC),安全数字(Secure Digital,简称为SD)卡,闪存卡(Flash Card)等。当然,存储器710还可以既包括计算机设备700的内部存储模块也包括其外部存储设备。本实施例中,存储器710通常用于存储安装于计算机设备700的操作系统和各类应用软件,例如环路检测方法的程序代码等。此外,存储器710还可以用于暂时地存储已经输出或者将要输出的各类数据。
处理器720在一些实施例中可以是中央处理器(Central Processing Unit,简称为CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器720通常用于控制计算机设备700的总体操作,例如执行与计算机设备700进行数据交互或者通信相关的控制和处理等。本实施例中,处理器720用于运行存储器710中存储的程序代码或者处理数据。
网络接口730可包括无线网络接口或有线网络接口,该网络接口730通常用于在计算机设备700与其他计算机设备之间建立通信链接。例如,网络接口730用于通过网络将计算机设备700与外部终端相连,在计算机设备700与外部终端之间的建立数据传输通道和通信链接等。网络可以是企业内部网(Intranet)、互联网(Internet)、全球移动通信系统(Global System of Mobile communication,简称为GSM)、宽带码分多址(Wideband CodeDivision Multiple Access,简称为WCDMA)、4G网络、5G网络、蓝牙(Bluetooth)、Wi-Fi等无线或有线网络。
需要指出的是,图6仅示出了具有部件710-730的计算机设备,但是应理解的是,并不要求实施所有示出的部件,可以替代的实施更多或者更少的部件。
在本实施例中,存储于存储器710中的环路检测方法还可以被分割为一个或者多个程序模块,并由一个或多个处理器(本实施例为处理器720)所执行,以完成本申请实施例。
实施例四
本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质其上存储有计算机程序,计算机程序被处理器执行时实现实施例中的环路检测方法的步骤。
本实施例中,计算机可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,计算机可读存储介质可以是计算机设备的内部存储单元,例如该计算机设备的硬盘或内存。在另一些实施例中,计算机可读存储介质也可以是计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(Smart Media Card,简称为SMC),安全数字(Secure Digital,简称为SD)卡,闪存卡(Flash Card)等。当然,计算机可读存储介质还可以既包括计算机设备的内部存储单元也包括其外部存储设备。本实施例中,计算机可读存储介质通常用于存储安装于计算机设备的操作系统和各类应用软件,例如实施例中环路检测方法的程序代码等。此外,计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的各类数据。
显然,本领域的技术人员应该明白,上述的本申请实施例的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请实施例不限制于任何特定的硬件和软件结合。
以上仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。

Claims (10)

1.一种环路检测方法,其特征在于,包括:
在发起回源的情况下,获取本节点的ID信息,并将本节点的ID信息记录在目标协议的自定义指令中;
将所述自定义指令传递至回源的下一节点;
在接收到其余节点传递的自定义指令的情况下,获取本节点的ID信息和接收到的自定义指令中的ID信息;
在本节点的ID信息与接收到的自定义指令中的ID信息不同的情况下,将接收到的自定义指令传递至回源的下一节点;
在本节点的ID信息与接收到的自定义指令中的ID信息相同的情况下,确定回源过程存在环路。
2.根据权利要求1所述的环路检测方法,其特征在于,还包括:
在接收到其余节点传递的自定义指令的情况下,确定本节点是否为推流点;
在确定本节点为推流点的情况下,结束接收到的自定义指令的传递过程。
3.根据权利要求2所述的环路检测方法,其特征在于,在所述确定回源过程存在环路之后,还包括:
结束环路对应的回源过程并重新获取回源地址。
4.根据权利要求1-3任一项所述的环路检测方法,其特征在于,所述目标协议为RTMP协议,所述自定义指令为自定义AMF指令。
5.根据权利要求4所述的环路检测方法,其特征在于,在所述将所述自定义指令传递至回源的下一节点之前,或者在将接收到的自定义指令传递至回源的下一节点之前,还包括:
接收回源的下一节点返回的响应消息,其中,所述响应消息包括是否支持环路检测的信息;
在所述响应消息包括不支持环路检测的信息的情况下,结束所述自定义指令的传递。
6.根据权利要求5所述的环路检测方法,其特征在于,所述响应消息包括自定义属性,所述自定义属性包括用于表示是否支持环路检测的信息。
7.一种环路检测装置,其特征在于,包括:
第一获取模块,用于在发起回源的情况下,获取本节点的ID信息,并将本节点的ID信息记录在目标协议的自定义指令中;
发送模块,用于将所述自定义指令传递至回源的下一节点;
第二获取模块,用于在接收到其余节点传递的自定义指令的情况下,获取本节点的ID信息和接收到的自定义指令中的ID信息;
传递模块,用于在本节点的ID信息与接收到的自定义指令中的ID信息不同的情况下,将接收到的自定义指令传递至回源的下一节点;
确定模块,用于在本节点的ID信息与接收到的自定义指令中的ID信息相同的情况下,确定回源过程存在环路。
8.根据权利要求7所述的环路检测装置,其特征在于,所述目标协议为RTMP协议,所述自定义指令为自定义AMF指令。
9.一种计算机设备,所述计算机设备包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时用于实现权利要求1至6中任一项所述的环路检测方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序可被至少一个处理器所执行,以使所述至少一个处理器执行权利要求1至6中任一项所述的环路检测方法的步骤。
CN202311229024.XA 2023-09-21 2023-09-21 环路检测方法及装置 Pending CN117176640A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311229024.XA CN117176640A (zh) 2023-09-21 2023-09-21 环路检测方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311229024.XA CN117176640A (zh) 2023-09-21 2023-09-21 环路检测方法及装置

Publications (1)

Publication Number Publication Date
CN117176640A true CN117176640A (zh) 2023-12-05

Family

ID=88944936

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311229024.XA Pending CN117176640A (zh) 2023-09-21 2023-09-21 环路检测方法及装置

Country Status (1)

Country Link
CN (1) CN117176640A (zh)

Similar Documents

Publication Publication Date Title
JP6698755B2 (ja) セグメント化コンテンツのストリーミング
US20130198341A1 (en) System and method for delivering segmented content
US9356985B2 (en) Streaming video to cellular phones
US20210250631A1 (en) Adaptive Bitrate Streaming Of Live Content with Manifest Update Push Notification or Long Poll
CN107920258B (zh) 一种数据处理方法及装置
CN110324405B (zh) 消息发送方法、装置、系统及计算机可读存储介质
WO2018127010A1 (zh) 一种传输节点的调度方法和装置
US20090172130A1 (en) Method of and apparatus for downloading data
CN112188454B (zh) 基于NB-IoT网络的短距通信方法、系统、设备及存储介质
CN113453047A (zh) 资源请求的处理方法、装置、电子设备及存储介质
US20240205284A1 (en) Multimedia content transmission method and apparatus, device, and storage medium
US20240163322A1 (en) Methods, systems, and media for delivering manifestless streaming media content
KR102460356B1 (ko) 수신 장치, 송신 장치 및 데이터 처리 방법
EP3579526B1 (en) Resource file feedback method and apparatus
CN111835801B (zh) 文件下载方法、装置、服务器、边缘设备、终端及介质
CN112243136B (zh) 内容播放方法、视频存储方法和设备
CN117176640A (zh) 环路检测方法及装置
CN107707590A (zh) 数据传输的系统、方法及装置
KR20140092337A (ko) 대상을 획득하는 방법, 장치, 및 시스템
CN113285920B (zh) 业务访问方法、装置、设备及存储介质
WO2022028189A1 (zh) 投屏方法及装置、电子设备和计算机可读存储介质
CN105592143B (zh) 一种文件加载方法及装置
CN113301100A (zh) 基于内容分发网络的数据容灾方法、装置、设备及介质
KR100835528B1 (ko) 구간정보를 이용한 멀티미디어 콘텐츠의 스트리밍 방법 및그 스트리밍 단말기
US10193949B2 (en) Communication apparatus, communication method, and storage medium

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