组播流的处理方法及网络设备
技术领域
本发明涉及组播技术,特别是利用组播流写入到存储设备的处理方法及网络设备。
背景技术
IP组播是指在IP网络中将数据包发送到网络中的某个确定节点子集,这个子集称为组播组(Multicast Group),组播组地址使用D类IP地址。在IP组播中,源主机只发送一份数据,这份数据中的目的地址为组播组地址,组播组中的所有接收者都可接收到同样的数据拷贝,但是,只有组播组内的接收者才可以接收该数据,网络中其它主机由于不在组播组内,因而不能接收该数据。
因特网小型计算机系统接口(Internet Small Computer System Interface,ISCSI)协议是使用传输控制协议(Transmission Control Protocol,TCP)/因特网协议(Internet Protocol,IP)传输SCSI协议,ISCSI协议利用用户对现有IP网络的投资,建设和拓展存储局域网(Storage Area Network,SAN),通过利用TCP/IP协议,在主机或者发起设备Initiator、与存储设备或目标设备Target(如存储子系统和磁带设备)之间传输SCSI命令、数据和状态信息。
图1所示为IP组播技术与ISCSI技术结合应用的具有代表性的网络结构示意图。
如图1所示,在该网络中的信号源设备,同时作为组播源和单播源,分配有组播组地址,用于将组播数据编码后,分成组播流(图1中带有箭头标示的细点划线)和单播流(图1中带有箭头标示的粗虚线)两部分进行传送。
其中,组播流通过一个或多个网络设备发送到硬件解码器,由硬件解码器对组播流数据执行解码操作后发送给呈现设备进行呈现,当然,如果呈现设备自身具有解码功能,也可通过网络设备发送给具有解码功能的呈现装置(如电脑)直接呈现。
对于单播流,则通过网络设备发送到存储设备进行存储,具体通过以下动作实现:
信号源设备将编码后的媒体数据封装成ISCSI数据流(以太网帧),利用TCP连接发送到存储设备;
存储设备通过解析ISCSI数据流获取SCSI命令、数据、响应等后进行实际的存储操作。
图1所示的网络结构在现实中有很多的应用,下面以一种实际应用为例进行说明。
现在很多的城市在各个事业单位、交通要道等关键点设立监控系统,并使用海量存储系统存储录制的视频数据。假设一个城市公安局下辖20个分局,每个分局下辖25个派出所,每个派出所设置1K个摄像头;每个摄像头是个组播源,分配一个组播组地址,用于市局、分局、派出所的实时监控;每个摄像头同时也是个单播源,用于将数据存储到存储设备。
然而,图1所示的网络结构中,信号源设备需要同时发送组播流和单播流,对链路的带宽负担比较重,同时对其性能要求也比较高,在上面提到的监控系统的例子中,信号源设备的数量相当庞大,如果将其一部分功能移植到网络设备进行处理,可大幅度降低成本。
发明内容
本发明在于提出一种组播流的处理方法及应用该方法的网络设备,减轻链路的带宽负担,同时降低对信号源设备的要求,降低成本。
为了实现上述目的,本发明提供了一种组播流的处理方法,应用于至少包括组播源,一个网络设备及一个存储设备的网络中,包括如下步骤:
步骤S1,在网络设备上创建其与存储设备的会话;
步骤S2,在网络设备上将所述会话与组播流进行关联;
步骤S3,当网络设备收到来自组播源方向的组播流时,根据上述关联关系,将所述组播流转换为一个单播流发送给所述存储设备。
上述的组播流的处理方法,其中,上述的会话为ISCSI会话。
上述的组播流的处理方法,其中,步骤S2中,网络设备将ISCSI会话与组播流的(S,G)组播转发表项关联。
上述的组播流的处理方法,其中,步骤S3具体包括:
步骤S31,网络设备收到上述来自组播源方向的组播流时,将ISCSI会话作为ISCSI虚接口加入到(S,G)组播转发表项的出接口列表;
步骤S32,网络设备将从ISCSI虚接口转发的组播流的目的地址设置为存储设备的地址后,对组播流进行ISCSI封装,发送到存储设备。
上述的组播流的处理方法,其中,上述网络设备为三层设备。
为了更好的实现上述目的,本发明还提供了一种网络设备,用于连接组播源和存储设备,包括组播流接收模块,还包括:
会话连接建立模块,用于创建网络设备与存储设备的会话;
会话关联模块,用于关联所述会话与组播流;
组播流处理模块,用于根据上述关联关系将来自组播源方向的组播流转换为一个单播流后发送给所述存储设备。
上述的网络设备,其中,上述的会话为ISCSI会话。
上述的网络设备,其中,所述会话关联模块具体用于关联所述ISCSI会话与组播流的(S,G)组播转发表项。
上述的网络设备,其中,所述组播流处理模块具体包括:
(S,G)组播转发表项修改模块,用于在组播流接收模块接收到组播流后,将ISCSI会话作为ISCSI虚接口加入到(S,G)组播转发表项的出接口列表;
组播流转发模块,用于在组播流从ISCSI虚接口转发时,将组播流的目的地址设置为存储设备的地址,并对组播流进行ISCSI封装后,利用传输控制协议连接发送到存储设备。
上述的网络设备,其中,在组播流从(S,G)组播转发表项中的其他出接口转发时,所述组播流转发模块还用于根据目的地址直接利用传输控制协议发送组播流。
上述的网络设备,其中,所述网络设备为三层设备。
本发明的组播流的存储方法、三层设备和组播网,只需要信号源设备发送组播流,显著地减轻了链路的带宽负担,同时,单播存储流的实现由三层设备来集中实现,对信号源设备的要求降低,有效地降低了成本。
附图说明
图1为应用ISCSI的组播网络结构示意图;
图2为本发明中的组播网络的结构示意图;
图3为本发明的三层网络设备的结构示意图;
图4为本发明的组播流的处理方法的流程示意图;
图5为ISCI封装后的以太网帧的结构示意图。
具体实施方式
本发明的组播流的处理方法及应用该方法的网络设备的核心思想为:网络设备关联网络设备与存储设备的会话和组播流,在网络设备在接收到信号源设备的组播流后,根据关联关系将组播流转换为一个单播流发送给所述存储设备进行存储。
在此,信号源设备仅需要作为组播源,而在网络设备上进行存储流的相关处理。
下面,以网络设备为三层设备(如三层交换机、三层路由器等)、网络设备与存储设备的会话为ISCSI会话这种具体的网络结构为例对本发明进行详细的说明。
本发明的涉及到的组播网络如图2所示,包括信号源设备、三层设备和目标设备,其中:
信号源设备,其作为组播源,分配有组播组地址,用于将组播数据编码后以组播流方式发送到三层设备;
三层设备如图3所示,包括:
组播流接收模块,用于接收信号源设备发送的组播流,并创建组播流的(S,G)组播转发表项;
会话连接建立模块,用于创建三层设备与存储设备的相应资源之间的ISCSI会话;
会话关联模块,用于关联ISCSI会话与组播流;在本发明的最佳实施方式中,为关联ISCSI会话与组播流的(S,G)组播转发表项;
组播流处理模块,用于根据上述关联关系将来自组播源方向的组播流转换为一个单播流后发送给所述存储设备。
其中,如图3所示,该组播流处理模块具体包括:
(S,G)组播转发表项修改模块,用于在组播流接收模块接收到来自组播源的组播流后,将ISCSI会话作为ISCSI虚接口加入到(S,G)组播转发表项的出接口列表中;
组播流转发模块,用于根据(S,G)组播转发表项进行组播流的转发,且在组播流从ISCSI虚接口转发时,将组播流的目的地址重新设置为存储设备的单播地址,并对组播流进行ISCSI封装后,利用TCP连接发送到存储设备;
同时组播流从(S,G)组播转发表项中的其他出接口转发时,根据目的地址直接利用TCP将组播流发送到硬件解码器或带有解码功能的呈现装置。
图3所示的三层设备可以是与信号源设备直接相连的三层设备,但事实上这个三层设备的位置并不局限于此,只要是组播流经过节点都可以,而且靠近存储设备的话,那么前面的网络设备不需要转发单播流。
存储设备,用于接收ISCSI封装的组播流,解析该ISCSI封装的组播流后存储其中的数据。
下面结合三层设备对本发明的组播流的处理方法进行详细描述。
本发明的组播流存储方法如图4所示,包括如下步骤:
步骤41,三层设备的会话连接建立模块起ISCSI进程,与存储设备的相应资源建立ISCSI会话连接;
步骤42,三层设备的会话关联模块并将ISCSI会话配置成与(S,G)组播转发表项关联;
步骤43,配置了组播路由协议的三层设备的组播流接收模块接收信号源设备发送的组播流后,为该组播流创建(S,G)组播转发表项;其中,(S,G)组播转发表项中包括组播源地址、组播组地址、入接口和出接口列表等;
步骤44,由于在步骤21中预先将ISCSI会话与(S,G)组播转发表项关联,因此,在生成(S,G)组播转发表项后,(S,G)组播转发表项修改模块将ISCSI会话作为ISCSI虚接口加入到(S,G)组播转发表项的出接口列表中;
步骤45,三层设备的组播流转发模块将组播流从ISCSI虚接口转发时,将组播流的目的地址重新设置为存储设备的单播地址,并对组播流进行ISCSI封装后生成ISCSI流,然后利用TCP连接将ISCSI流发送到存储设备。
同时组播流从(S,G)组播转发表项中的其他出接口转发时,根据目的地址直接利用TCP将组播流发送到硬件解码器或带有解码功能的呈现装置,硬件解码器在接收到组播流后进行解码操作,并将解码后的组播流发送给呈现装置呈现。
其中:
步骤41中提到的存储设备的相应资源包括存储设备的IP地址、端口号,还可包括存储设备名称等。
步骤42中提到的组播路由协议包括:距离矢量组播路由协议(DistanceVector Multicast Routing Protocol)、协议无关组播—密集模式PIM-DM(Protocol Independent Multicast-Dense Mode)、协议无关组播—稀疏模式PIM-SM(Protocol Independent Multicast-Sparse Mode)等。
步骤44中需要对组播流进行ISCSI封装,封装格式如图5所示,把SCSI数据包(ISCSI包头以及SCSI命令、管理函数、命令响应及实际的ISCSI数据等)全部封装在TCP数据包中,而在以太网帧内封装了IP数据包,IP数据包包括IP包头和TCP数据包,其中:
以太网包头、IP包头、TCP包头、ISCSI包头分别为14字节、20字节、20字节和48字节,而以太网包尾为4个字节,ISCSI数据部分长度与实际需要传送的数据有关,但一个ISCSI的协议数据单元可能需要多个以太网帧来进行封装。
同时,对组播流进行ISCSI封装可以利用软件实现,也可以通过三层设备的外接硬件设备来实现,如类似于ISCSI主机总线适配器HBA(Host BusAdapter)的硬件处理设备来进行封装处理。
由于利用硬件设备处理ISCSI封装为本领域普通技术人员所熟知,因此在此不再赘述。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。