发明内容
本发明提供一种数据的传输方法及装置,以提高视频流的传输效率,节约链路的带宽。
为了达到上述目的,本发明提出了一种数据的传输方法,应用于包括VM服务器、EC设备、上层MS设备和至少一个下层MS设备的系统中,所述上层MS设备用于为所述EC设备提供服务且为上层网段内的VC设备提供服务,所述下层MS设备用于为下层网段内的VC设备提供服务;所述方法包括以下步骤:
所述VM服务器接收来自VC设备的请求消息,所述请求消息中携带了点播所述EC设备数据的信息;
所述VM服务器根据所述请求消息获取所述VC设备所属网段;
当所述VC设备所属网段为下层网段时,所述VM服务器向所述上层MS设备发送第一请求报文,并向所述下层MS设备发送第二请求报文;所述第一请求报文中携带了所述下层MS设备的地址信息,所述第二请求报文中携带了所述VC设备的地址信息;
所述上层MS设备根据所述下层MS设备的地址信息将来自所述EC设备的数据发送给所述下层MS设备,并由所述下层MS设备根据所述VC设备的地址信息将所述数据发送给所述VC设备。
所述VM服务器根据所述请求消息获取所述VC设备所属网段之后,还包括;
当所述VC设备所属网段为上层网段时,所述VM服务器向所述上层MS设备发送第三请求报文;所述第三请求报文中携带了所述VC设备的地址信息;
所述上层MS设备根据所述VC设备的地址信息将来自所述EC设备的数据发送给所述VC设备。
所述VM服务器根据所述请求消息获取所述VC设备所属网段之前,还包括:
网管根据网络拓扑和链路情况配置所述上层MS设备与所述上层网段的对应关系,以及所述下层MS设备与所述下层网段的对应关系。
所述VM服务器根据所述请求消息获取所述VC设备所属网段具体包括:
所述VM服务器根据所述请求消息中的EC设备信息得到所述上层MS设备;
所述VM服务器根据所述上层MS设备、所述上层MS设备与所述上层网段的对应关系,以及所述下层MS设备与所述下层网段的对应关系获取所述VC设备所属网段。
当所述VC设备需要释放所述EC设备的数据时,所述方法还包括:
当所述VC设备所属网段为下层网段时,所述VM服务器向所述下层MS设备和所述上层MS设备分别发送释放请求报文,以使所述下层MS设备和所述上层MS设备释放自身与所述EC设备的连接关系;
当所述VC设备所属网段为上层网段时,所述VM服务器向所述上层MS设备发送释放请求报文,以使所述上层MS设备释放自身与所述EC设备的连接关系。
一种数据的传输装置,应用于包括VM服务器、EC设备、上层MS设备和至少一个下层MS设备的系统中,所述上层MS设备用于为所述EC设备提供服务且为上层网段内的VC设备提供服务,所述下层MS设备用于为下层网段内的VC设备提供服务;所述装置作为所述VM服务器,包括:
获取模块,用于根据来自VC设备的请求消息获取所述VC设备的所属网段;所述请求消息中携带了点播所述EC设备数据的信息;
收发模块,与所述获取模块连接,用于接收来自所述VC设备的请求消息,并根据所述获取模块获取的所述VC设备的所属网段对所述EC设备的数据进行处理。
所述收发模块具体用于,当所述VC设备所属网段为下层网段时,向所述上层MS设备发送第一请求报文,并向所述下层MS设备发送第二请求报文;所述第一请求报文中携带了所述下层MS设备的地址信息,所述第二请求报文中携带了所述VC设备的地址信息;由所述上层MS设备根据所述下层MS设备的地址信息将来自所述EC设备的数据发送给所述下层MS设备,并由所述下层MS设备根据所述VC设备的地址信息将所述数据发送给所述VC设备;
当所述VC设备所属网段为上层网段时,向所述上层MS设备发送第三请求报文;所述第三请求报文中携带了所述VC设备的地址信息;并由所述上层MS设备根据所述VC设备的地址信息将来自所述EC设备的数据发送给所述VC设备。
所述获取模块具体用于,根据所述请求消息中的EC设备信息得到所述上层MS设备;并根据预先通过网络拓扑和链路情况配置的所述上层MS设备与所述上层网段的对应关系、所述下层MS设备与所述下层网段的对应关系,以及得到的所述上层MS设备获取所述VC设备所属网段。
当所述VC设备需要释放所述EC设备的数据时,
所述收发模块还用于,当所述VC设备所属网段为下层网段时,向所述下层MS设备和所述上层MS设备分别发送释放请求报文,以使所述下层MS设备和所述上层MS设备释放自身与所述EC设备的连接关系;
当所述VC设备所属网段为上层网段时,向所述上层MS设备发送释放请求报文,以使所述上层MS设备释放自身与所述EC设备的连接关系。
一种数据的传输装置,应用于包括VM服务器、EC设备、上层MS设备和至少一个下层MS设备的系统中,所述上层MS设备用于为所述EC设备提供服务且为上层网段内的VC设备提供服务,所述下层MS设备用于为下层网段内的VC设备提供服务;所述装置包括收发模块和传输模块,所述收发模块和传输模块连接,其中:
当所述装置为所述上层MS设备时,
所述收发模块用于,当所述VC设备所属网段为下层网段时,接收来自所述VM服务器的第一请求报文,所述第一请求报文中携带了所述下层MS设备的地址信息;当所述VC设备所属网段为上层网段时,接收来自所述VM服务器的第三请求报文;所述第三请求报文中携带了所述VC设备的地址信息;
所述传输模块用于,当所述VC设备所属网段为下层网段时,根据所述下层MS设备的地址信息将来自所述EC设备的数据传输给所述下层MS设备;当所述VC设备所属网段为上层网段时,根据所述VC设备的地址信息将来自所述EC设备的数据传输给所述VC设备;
当所述装置为所述下层MS设备时,
所述收发模块用于,当所述VC设备所属网段为下层网段时,接收来自所述VM服务器的第二请求报文,所述第二请求报文中携带了所述VC设备的地址信息;
所述传输模块用于,当所述VC设备所属网段为下层网段时,根据所述VC设备的地址信息将来自所述上层MS设备的数据发送给所述VC设备。
与现有技术相比,本发明具有以下优点:通过将网段与MS设备进行对应,使得网段与MS设备之间的对应关系能够最节省链路带宽,继而根据该网段与MS设备的对应关系传输音视频数据,从而有效的节省了链路带宽。
具体实施方式
本发明的基本思想是通过在VM服务器上配置网段与MS设备的对应关系,当接收到VC设备的请求消息后,可以获知VC设备所属的网段,继而根据网段与MS设备的对应关系查找到对应的MS设备;进一步的,通过请求消息中的EC设备信息,可以获知该网段对应的MS设备是上层MS设备或者下层MS设备。
当VC设备所属网段为下层网段时,VM服务器向上层MS设备发送携带了下层MS设备的地址信息的请求报文,并向下层MS设备发送携带了VC设备的地址信息的请求报文,使得上层MS设备可以根据下层MS设备的地址信息将来自EC设备的数据发送给下层MS设备,并由下层MS设备根据VC设备的地址信息将数据发送给所述VC设备;从而有效的节省了链路带宽。
如图3所示,本发明提出的一种数据的传输方法,应用于包括VM服务器、EC设备、上层MS设备和至少一个下层MS设备的系统中,所述上层MS设备用于为所述EC设备提供服务且为上层网段内的VC设备提供服务,所述下层MS设备用于为下层网段内的VC设备提供服务;所述方法包括以下步骤:
步骤301,所述VM服务器接收来自VC设备的请求消息,所述请求消息中携带了点播所述EC设备数据的信息。
步骤302,所述VM服务器根据所述请求消息获取所述VC设备所属网段。当所述VC设备所属网段为下层网段时,转到步骤303;当所述VC设备所属网段为上层网段时,转到步骤305。
步骤303,所述VM服务器向所述上层MS设备发送第一请求报文,并向所述下层MS设备发送第二请求报文;所述第一请求报文中携带了所述下层MS设备的地址信息,所述第二请求报文中携带了所述VC设备的地址信息。
步骤304,所述上层MS设备根据所述下层MS设备的地址信息将来自所述EC设备的数据发送给所述下层MS设备,并由所述下层MS设备根据所述VC设备的地址信息将所述数据发送给所述VC设备。
步骤305,所述VM服务器向所述上层MS设备发送第三请求报文;所述第三请求报文中携带了所述VC设备的地址信息。
步骤306,所述上层MS设备根据所述VC设备的地址信息将来自所述EC设备的数据发送给所述VC设备。
需要说明的是,本发明中的上层MS设备和下层MS设备是一个相对的概念,同样的,上层网段和下层网段也是一个相对的概念。为了更加清楚的说明该相对过程,下面以一个具体的例子来详细说明。
MS1用于为网段A中的VC设备提供服务,MS2用于为网段B中的VC设备提供服务,MS3用于为网段C和网段D中的VC设备提供服务。
此外,该MS1还用于为EC1提供服务,MS2用于为EC2提供服务,MS3用于为EC3和EC4提供服务。
如果网段B中用户B 1点播EC1的数据,网段C中用户C1也点播EC1的数据时,则此时VM服务器根据EC1与MS 1的对应关系(MS1用于为EC1提供服务),认为MS1为上层MS设备,对应的,网段A为上层网段(MS1用于为网段A中的VC设备提供服务);而网段B和网段C为下层网段(MS1不能直接用于为网段B和网段C中的VC设备提供服务),根据网段B与MS2的对应关系,以及网段C与MS3的对应关系,则MS2和MS3为MS1的下层MS设备。
如果网段A中用户A1点播EC2的数据,则此时VM服务器根据EC2与MS2的对应关系,认为MS2为上层MS设备,对应的,网段B为上层网段;而网段A为下层网段,根据网段A与MS1的对应关系,则MS1为MS2的下层MS设备。
以下结合一种具体的应用场景,对本发明下提出的数据的传输方法进行详细说明,如图4所示,为本应用场景的组网图,在该应用场景中,VC1、VC2和VC3属于网段A,VC4、VC5和VC6属于网段B,MS1属于网段C,MS2属于网段D,三层设备A(例如,路由器、三层交换机等)与VC1、VC2、VC3、MS1、VM服务器和EC1分别连接,三层设备B与VC4、VC5、VC6和MS2分别连接,该三层设备A和三层设备B之间需要经过链路1。如图5所示,该数据的传输方法包括以下步骤:
步骤501,当VC需要点播EC1实况,即点播EC1的多媒体数据时,VC向VM服务器发起请求,该请求消息中携带了需要点播EC1多媒体数据的信息。其中,VC可以通过GMP协议向VM服务器发起请求,本发明中该VC为VC1、VC2、VC3、VC4、VC5、VC6,即上述VC1、VC2、VC3、VC4、VC5、VC6分别向VM服务器发送GMP请求报文。此外,该多媒体数据包括视频流、音频流、音视频数据等,本发明中以视频流为例进行说明。
在实际应用中,在点播EC设备的视频流时,所有EC设备对应的处理方式与点播EC1视频流的处理方式相同,本发明中以点播EC1视频流为例进行说明,对于其他的EC设备对应的处理方式,本发明中不再赘述。
步骤502,VM服务器查找EC对应的MS设备。其中,VM服务器在收到来自VC的GMP请求报文后,可以从GMP请求报文中获取到VC1、VC2、VC3、VC4、VC5、VC6需要点播的都是EC1的视频流,即本步骤中VM服务器需要查找EC1所对应的MS设备。
需要说明的是,在本步骤之前,该VM服务器中已经存储了EC与MS设备之间的对应关系、以及MS设备与网段之间的对应关系,即本步骤中VM服务器可以直接根据VC所属网段和EC查找到MS设备。
具体的,该EC与MS设备之间的对应关系、以及MS设备与网段之间的对应关系可以通过表格的方式进行存储,如表1所示的一种EC与MS设备之间的对应关系、以及表2所示的一种MS设备与网段之间的对应关系;当然,VM服务器还可以通过其他方式存储该对应关系,本发明中不再赘述。
表1
表2
通过表1和表2可以看出,当VM服务器接收到VC1、VC2、VC3、VC4、VC5、VC6的GMP请求报文后,可以判断出VC1、VC2、VC3在网段A中且需要点播EC1的视频流,则对应的MS设备为MS1;并判断出VC4、VC5、VC6在网段B中且需要点播EC1的视频流,则对应的MS设备为MS1和MS2。
具体的,在本发明中,VM服务器存储的MS设备与网段之间的对应关系为网管根据网络拓扑配置MS设备与网段之间的对应关系;其中,网管可以根据实际需要配置MS设备与需要服务网段之间的对应关系,例如,MS可以与需要服务的网段在同一网段,也可以不在同一网段。
进一步的,在配置MS设备与网段之间的对应关系时,可以根据链路情况进行配置,以有效的节省链路带宽。例如,网管根据网络拓扑,当判断出MS1为网段A服务时,能够有效节省链路(例如,链路1)的带宽,则配置MS1与网段A之间的对应关系,即MS1为网段A中的VC提供服务;
当判断出MS2为网段B服务时,能够有效节省链路的带宽,则配置MS2与网段B之间的对应关系,即MS2为网段B中VC提供服务;可以看出,MS1与网段A所属网段并不相同,MS2与网段B所属网段也不相同。
此外,从图4可以看出,EC1与MS1通过三层设备A连接,并位于同一网段内,可以在VM服务器上直接存储EC1与MS1的对应关系,即EC1的视频流都需要通过MS1进行转发,VM服务器存储MS设备与EC之间的对应关系为现有的存储方式,本发明中不再赘述。
综上所述,当VC需要点播EC1的视频流时,该EC1需要将该视频流发送给MS1,对于网段A内的VC,MS1可以直接将EC1的视频流发送给网段A内的VC;而对于网段B内的VC,MS1需要先将EC1的视频流发送给MS2,继而由MS2将EC1的视频流发送给网段B内的VC,该过程将在后续步骤中详细赘述,本步骤中不再详加说明。
本发明中,当查找到EC1对应的MS设备为MS1,则VM服务器可以认为MS1为EC1对应的上层MS设备,其他的MS设备(例如,MS2)为EC1对应的下层MS设备,即对于EC1的视频流,下层MS设备需要接收上层MS设备转发的视频流。
步骤503,VM服务器向上层MS设备(MS1)发送请求报文,其中,该请求报文可以为APPLY报文或者Request报文。该请求报文中携带的内容包括:(1)IE_RECEIVER_ADDRESS信息,即视频流接收端的地址信息,分别为EC1发送端地址和MS1接收端地址;(2)IE_SENDER_ADDRESS信息,即视频流发送端地址信息,分别为MS1发送端地址和VC1、VC2、VC3、MS2接收端地址,此时,VM服务器欺骗MS1,使该MS1认为MS2为VC。
本步骤中,该VM服务器还需要向下层MS设备(MS2)发送请求报文,其中,该请求报文中携带的内容包括:(1)IE_RECEIVER_ADDRESS信息,即视频流接收端的地址信息,分别为MS1发送端地址和MS2接收端地址;此时,VM服务器欺骗MS2,使该MS2认为MS1为EC设备;(2)IE_SENDER_ADDRESS信息,即视频流发送端的地址信息,分别为MS2发送端地址和VC4、VC5、VC6接收端的地址。
本步骤中,该MS1和MS2还需要向VM服务器回应OK报文。
步骤504,当VM服务器收到MS1和MS2的回应后,向EC1以及各个VC发送Setup报文,并建立MS1与EC1、MS2与EC1,以及VC与EC1的监控关系。本步骤中,当接收到Setup报文后,EC1以及各个VC均会向VM服务器回应OK报文。
步骤505,EC1将视频流发送到MS1。其中,当EC1接收到VM服务器的Setup报文后,获知有VC需要视频流,且该EC1的视频流需要由MS1进行转发,即本步骤中EC1将实时视频流发送到MS1。
步骤506,MS1将该视频流发送到VC1、VC2、VC3和MS2上。其中,在上述步骤503中,该MS1接收到了VM服务器向上层MS设备发送的请求报文,且该请求报文中携带了EC1发送端的地址和MS1接收端地址、以及MS1发送端的地址和VC1、VC2、VC3、MS2接收端的地址。
本步骤中,当接收到来自EC1的视频流时,确定视频流的发送端地址为EC1,继而确定自身(MS1)为对应的接收端地址,此时,MS1将自身作为发送端,并将VC1、VC2、VC3、MS2作为接收端,从而将该视频流发送到接收端,即将视频流发送给VC1、VC2、VC3、MS2。
步骤507,MS2将该视频流发送到VC4、VC5、VC6上。其中,在上述步骤503中,该MS2接收到了VM服务器向上层MS设备发送的请求报文,且该请求报文中携带了MS1发送端地址和MS2接收端地址、以及MS2发送端地址和VC4、VC5、VC6接收端的地址。
本步骤中,当接收到来自MS1的视频流时,确定视频流的发送端地址为MS1,且该MS1为认为是EC设备,继而确定自身(MS2)为对应的接收端地址,此时,MS2将自身作为发送端,并将VC4、VC5、VC6作为接收端,从而将该视频流发送到接收端,即将视频流发送给VC4、VC5、VC6。
综上可以看出,通过将网段与MS设备进行对应,使得网段与MS设备之间的对应关系能够最节省链路带宽,继而根据该网段与MS设备的对应关系传输视频流,从而有效的节省了链路带宽,如图4所示,与现有技术相比,通过使用MS2为VC4、VC5、VC6传输视频流,使得经过链路1的视频流由3路变成了1路,从而节省了2路链路带宽。
需要说明的是,上述应用场景是以单域的应用场景为例进行说明的,即使用一个VM服务器进行处理,MS设备很多时,导致不能使用一个VM服务器处理所有的视频流时,还可以使用多个VM服务器进行处理,即可以采用多域的方式来实现视频流的传输过程。
具体的,本域VC需要点播外域EC的视频流时,需要先向本域的VM服务器发送GMP报文,以请求EC(位于外域)的视频流;本域VM将通过SIP(Session Initiation Protocol,会话初始协议)报文将该请求EC视频流的信息发送给对应的外域VM;外域VM服务器向外域EC对应的外域MS设备发送APPLY报文;外域VM服务器向外域EC发送SETUP报文;外域VM服务器向本域VM服务器发送SIP报文;本域VM服务器向本域MS发送APPLY报文;本域VM服务器向本域VC发送SETUP报文;继而使得本域VC可以获取到外域EC的视频流。可以看出,视频流的流向为外域EC至外域MS至本域MS至本域VC。该多台VM服务器进行视频流的传输过程与上述一台VM服务器进行视频流传输的过程类似,本发明中不再详加赘述。
此外,在本发明中,还可以包括视频流的释放过程,即VC不再需要点播EC1实况时,不再将EC1的视频流传输给VC。继续如图5所示,包括以下步骤,
步骤508,当接收到来自VC通过GMP发送的释放请求信息时,VM服务器向MS1和MS2发送DELETE(删除)资源释放请求报文,以使MS1和MS2释放与EC1的连接关系。本步骤中,MS1和MS2需要向VM服务器回应OK报文。
步骤509,当VM服务器收到MS1和MS2的回应后,分别释放MS1与EC1、MS2与EC1,以及VC与EC1的监控关系。需要说明的是,该释放过程与现有技术的释放过程类似,只是需要MS2也进行相应的释放出来,本发明中不再详加赘述。
其中,本发明中各个步骤还可以根据实际需要进行调整。
本发明提出的一种视频数据的传输装置,应用于包括VM服务器、EC设备、上层MS设备和至少一个下层MS设备的系统中,所述上层MS设备用于为所述EC设备提供服务且为上层网段内的VC设备提供服务,所述下层MS设备用于为下层网段内的VC设备提供服务;所述装置作为所述VM服务器,如图6所示,所述装置包括:
获取模块61,用于根据来自VC设备的请求消息获取所述VC设备的所属网段;所述请求消息中携带了点播所述EC设备数据的信息。
其中,所述获取模块61具体用于,根据所述请求消息中的EC设备信息得到所述上层MS设备;并根据预先通过网络拓扑和链路情况配置的所述上层MS设备与所述上层网段的对应关系、所述下层MS设备与所述下层网段的对应关系,以及得到的所述上层MS设备获取所述VC设备所属网段。
收发模块62,与所述获取模块61连接,用于接收来自所述VC设备的请求消息,并根据所述获取模块61获取的所述VC设备的所属网段对所述EC设备的数据进行处理。
当所述VC设备所属网段为下层网段时,所述收发模块62向所述上层MS设备发送第一请求报文,并向所述下层MS设备发送第二请求报文;所述第一请求报文中携带了所述下层MS设备的地址信息,所述第二请求报文中携带了所述VC设备的地址信息;由所述上层MS设备根据所述下层MS设备的地址信息将来自所述EC设备的数据发送给所述下层MS设备,并由所述下层MS设备根据所述VC设备的地址信息将所述数据发送给所述VC设备;
当所述VC设备所属网段为上层网段时,所述收发模块62向所述上层MS设备发送第三请求报文;所述第三请求报文中携带了所述VC设备的地址信息;并由所述上层MS设备根据所述VC设备的地址信息将来自所述EC设备的数据发送给所述VC设备。
当所述VC设备需要释放所述EC设备的数据时,所述收发模块62还用于,当所述VC设备所属网段为下层网段时,向所述下层MS设备和所述上层MS设备分别发送释放请求报文,以使所述下层MS设备和所述上层MS设备释放自身与所述EC设备的连接关系;
当所述VC设备所属网段为上层网段时,向所述上层MS设备发送释放请求报文,以使所述上层MS设备释放自身与所述EC设备的连接关系。
其中,本发明装置的各个模块可以集成于一体,也可以分离部署。上述模块可以合并为一个模块,也可以进一步拆分成多个子模块。
本发明提出的另一种数据的传输装置,应用于包括VM服务器、EC设备、上层MS设备和至少一个下层MS设备的系统中,所述上层MS设备用于为所述EC设备提供服务且为上层网段内的VC设备提供服务,所述下层MS设备用于为下层网段内的VC设备提供服务;如图7所示,所述装置包括收发模块71和传输模块72,所述收发模块71和传输模块连接72,其中:
所述收发模块71用于,当所述装置为所述上层MS设备,
所述VC设备所属网段为下层网段时,接收来自所述VM服务器的第一请求报文,所述第一请求报文中携带了所述下层MS设备的地址信息;
所述VC设备所属网段为上层网段时,接收来自所述VM服务器的第三请求报文;所述第三请求报文中携带了所述VC设备的地址信息;
当所述装置为所述下层MS设备,
所述VC设备所属网段为下层网段时,接收来自所述VM服务器的第二请求报文,所述第二请求报文中携带了所述VC设备的地址信息。
所述传输模块72用于,当所述装置为所述上层MS设备,
当所述VC设备所属网段为下层网段时,根据所述下层MS设备的地址信息将来自所述EC设备的数据传输给所述下层MS设备;
当所述VC设备所属网段为上层网段时,根据所述VC设备的地址信息将来自所述EC设备的数据传输给所述VC设备;
当所述装置为所述下层MS设备,
当所述VC设备所属网段为下层网段时,根据所述VC设备的地址信息将来自所述上层MS设备的数据发送给所述VC设备。
其中,本发明装置的各个模块可以集成于一体,也可以分离部署。上述模块可以合并为一个模块,也可以进一步拆分成多个子模块。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
上述本发明序号仅仅为了描述,不代表实施例的优劣。
以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。