通信控制装置及通信控制方法 【技术领域】
本发明涉及一种通信控制装置及通信控制方法,特别涉及一种减轻对多个用户分发数据的服务器的负荷的数据分发控制服务器、数据分发系统。
背景技术
视频点播(VoD)、到达邮件的下载等通信的大部分通过单播进行。单播为了在进行通信的两者间确保单独的通信路径,在多个用户要求同一个数据的下载的情况下,消耗用户数量的通信带宽。组播是向组的同文通信,以在多个用户共享带宽为目的,但对于上述VoD等那样的、用户单独的数据下载的情况则不能应对。
为了对多个用户高效地进行数据分发,例如在公知技术《特开2001-344166》中提出了根据用户的要求来顺序安排内容的分发时间、分发机构的方法。在该公知例中,公开了当多个用户的数据分发请求在某个时间内到达时、将这些分发请求汇总而进行组播的数据分发的技术。
作为通过组播将数据无缺损地分发的技术,有高可靠性的组播技术。这与单播的Transmission Control Protocol(TCP)同样,是在发生了数据的丢失的情况下、通过根据数据接收者的要求、数据发送者进行再送处理、以可靠地发送数据为目的的技术。
特许文献1:特开2002-344166号
用户可利用的网络带宽不断地增加,通过高可靠性组播技术分发达到几GB的大容量的数据在理论上是可能的。但是,在大容量的数据分发中,即使不考虑再送处理而仅在从最初到最后发送就需要相应的时间,进而,因为数据的再送处理,数据发送的所需时间变长。例如,在将某个数据从最初到最后发送需要30分钟的情况下,实际上所有数据接收者结束数据接收所需要的时间为该30分钟加上再送处理的时间(例如10分钟)的时间。该再送处理的时间根据网络及数据接收者的状况而变化。另一方面,在这样的大容量的数据分发服务器中,从数据分发服务器的资源管理的观点来看,需要进行数据分发的时序安排(scheduling),但由于如上述那样数据再送处理所需的时间动态地变化,所以难以进行分发计划或时间表(scheduler)的决定。
【发明内容】
本发明是对多个用户分发数据的装置的负荷分散技术,在将大容量数据通过组播通信分发时,通过将数据用组播仅发送(广播)一次的数据发送服务器、和辅助数据的再送处理的数据发送辅助服务器的负荷进行分散,数据再送处理不会对数据分发的计划产生影响。另外,一般仅进行一次数据的发送对应于数据的广播,所以将数据发送服务器称作数据发送服务器。此外,数据发送辅助服务器的作用主要是数据的再送,所以以后将其称作数据再送服务器。
本发明的数据分发控制服务器,具有:
网络接口,与网络连接,并通过该网络与数据发送服务器、数据发送辅助服务器及客户机进行通信,该数据发送服务器和数据发送辅助服务器根据客户机的要求向客户机发送数据,
控制部,具有数据分发信息数据库,该数据分发信息数据库存储有用于识别分发数据的数据识别符、指定分发数据的地址的数据分发地址、表示数据分发地开始时刻的数据分发开始时刻;
所述控制部根据来自所述客户机的数据分发请求,通过向所述数据发送服务器和所述数据发送辅助服务器发送分发数据会话信息,控制所述数据发送服务器和所述数据发送辅助服务器向所述客户机分发数据。
所述数据发送辅助服务器当所述客户机接收的数据有丢失时,根据所述客户机的再发送请求,向所述客户机再发送数据。
所述客户机的再发送请求直接发送给所述数据发送辅助服务器,或经由所述数据分发控制服务器或所述数据发送服务器发送给所述数据发送辅助服务器。
本发明还提供一种数据发送辅助服务器,具有:
网络接口,与网络连接,并通过该网络与请求数据分发的客户机、控制数据分发处理的数据分发控制服务器、在预定的时刻发送数据的数据发送服务器进行通信;
数据信息数据库,存储有分发数据,该分发数据包括用于识别分发数据的数据识别符、及由唯一的编号确定的数据块的集合;
数据分发信息数据库,该数据分发信息数据库存储有用于识别分发数据的数据识别符、指定分发数据的地址的数据分发地址、表示数据分发的开始时刻的数据分发开始时刻、对请求了数据分发的所述客户机的地址进行管理的数据请求方地址;
控制部,接收来自所述数据分发控制服务器的分发数据会话信息,当所述客户机从所述数据发送服务器接收的数据有丢失而发出再发送请求时,向所述客户机再发送数据。
本发明提供一种数据分发系统,具有:客户机、通过网络与客户机相连的数据分发控制服务器、数据发送服务器、数据发送辅助服务器,
所述数据发送服务器和所述数据发送辅助服务器通过所述数据分发控制服务器的控制,向所述客户机分发数据,
所述数据分发控制服务器具有:
网络接口,与网络连接,并通过该网络与数据发送服务器、数据发送辅助服务器及客户机进行通信,该数据发送服务器和数据发送辅助服务器根据客户机的要求向客户机发送数据,
控制部,具有数据分发信息数据库,该数据分发信息数据库存储有用于识别分发数据的数据识别符、指定分发数据的地址的数据分发地址、表示数据分发的开始时刻的数据分发开始时刻;
所述控制部根据来自所述客户机的数据分发请求,通过发送分发数据会话信息,控制所述数据发送服务器和所述数据发送辅助服务器向所述客户机分发数据。
在本发明中,通过数据再送服务器代理进行数据发送服务器的再送处理,能够使数据发送服务器的数据分发计划不延长而予以确定。因而,用户能够容易地取得数据的分发开始时刻。此外,在系统整体中能够分散数据分发处理的负荷。
【附图说明】
图1是表示本发明的一实施方式的数据分发系统的框图。
图2是表示本发明的一实施方式的数据分发系统的另一形态的框图。
图3是表示数据分发控制服务器的结构的框图。
图4表示数据分发控制服务器的功能框图。
图5是表示数据发送服务器的结构的框图。
图6是表示数据发送服务器的功能框图。
图7是表示数据再送服务器的结构的框图。
图8是表示数据再送服务器的功能框图。
图9是表示客户端的结构的框图。
图10是表示客户端的结构的框图。
图11是表示整个数据分发处理的时序图。
图12是在数据分发处理中、数据发送服务器接收到来自客户端的数据再送请求的情况下的时序图。
图13是在数据分发处理中、数据分发控制服务器接收到来自客户端的数据再送请求的情况下的时序图。
图14是表示数据分发结束处理的时序图。
图15是在数据分发结束处理中、数据再送服务器接收到来自客户端的数据接收结束通知的情况下的时序图。
图16是在数据分发结束处理中、数据分发控制服务器接收到来自客户端的数据接收结束通知的情况下的时序图。
图17是表示数据分发速度调节处理的时序图。
图18是表示数据分发控制服务器的控制的一例的流程图。
图19是表示数据发送服务器的控制的一例的流程图。
图20是表示数据再送服务器的控制的一例的流程图。
图21是表示客户端的控制的一例的流程图。
图22是表示在数据分发系统中使用的包的例子的说明图。
【具体实施方式】
以下,根据附图说明本发明的一实施方式。
图1表示采用本发明的系统的一例,是通过网络5连接、由管理大容量数据分发的分发计划的数据分发控制服务器1、通过高可靠性组播通信仅进行一次向多个用户的数据分发的数据发送服务器2、根据来自用户的数据再送请求而进行数据的再送处理的数据再送服务器3、和将分发的数据储存在硬盘中而提供给用户的多个客户端(4-1~4-N)构成的数据分发系统的结构图。另外,关于各个服务器中数据的配置有多种方式,例如有在图1中数据发送服务器2及数据再送服务器3分别保持数据,及在数据分发时从数据发送服务器2向数据再送服务器3拷贝数据的方式。此外,还有如图2那样使用外部存储器6的方式。
接着,以下对各装置的详细情况进行说明。
图3是数据分发控制服务器1的装置结构。数据分发控制服务器1具有连接在总线18上的CPU12、存储器16、硬盘14、网络接口10,经由网络接口10的包收发部101与网络5进行通信。在硬盘14中,储存有保存数据的分发开始时刻、分发结束时刻、数据分发地址等有关数据分发的信息的数据分发信息数据库(DB)141,通过装载在存储器16上的分发计划管理程序161进行读写。
CPU12通过存取存储在存储器16上的分发计划管理程序161而具备本发明的控制功能。图4表示数据分发控制服务器的功能框图。数据分发控制服务器1包括:网络接口10;存储器;存储数据分发信息及分发计划管理程序;及控制部。控制部具有:数据分发计划安排器1611,管理数据的分发开始、结束的数据分发计划;数据分发信息管理部1613,管理数据分发信息,从数据分发信息DB141取得数据的分发开始时刻、结束时刻,将数据通知给数据发送服务器2、数据再送服务器3;通信监视定时器1615,监视数据分发控制服务器1与数据发送服务器2、数据再送服务器3、客户端4之间的通信会话,检测错误的发生。
数据分发信息DB141包括数据分发信息表1411,数据分发信息表1411的各记录由唯一地确定数据的数据识别码、数据分发开始时刻、数据分发结束时刻、储存在数据分发中使用的组播地址的数据分发地址、和数据请求源的地址列表(数据请求源地址1~数据请求源地址M)构成。这些信息在数据分发控制服务器1控制数据发送服务器2、数据再送服务器3时使用。
接着,图5是数据发送服务器2的装置结构。数据发送服务器2具有连接在总线28上的CPU22、存储器26、硬盘24、网络接口20,经由网络接口20的包收发部201与网络5进行通信。在硬盘24中,储存有有关对应于数据分发控制服务器1的分发计划分发的数据的信息的数据信息DB241、保存从数据分发控制服务器1通知的数据分发计划的数据分发信息DB243,通过装载在存储器26上的数据分发程序261进行读写。
图6表示数据发送服务器2的功能框图。数据发送服务器2包括:网络接口20;存储器;存储上述数据信息和数据分发信息及分发计划管理程序;及控制部。控制部具有:数据分发控制部2611,具有存储器26上的数据分发程序261的主要功能;数据管理部2613,控制数据信息DB241;数据分发信息管理部2615,控制数据分发信息DB243;通信监视定时器2617,监视数据发送服务器2与数据分发控制服务器1、数据再送服务器3、客户端4之间的通信会话,检测错误的发生。数据分发控制部2611与数据管理部2613及数据分发信息管理部2615联动,执行通过组播通信的数据分发处理。
接着,如果对各数据库管理的信息进行说明,则数据信息DB241包括数据信息表2411,数据信息表2411的各记录储存有用来唯一地确定用户的数据识别码、表示数据的种类的数据种类、表示数据的大小的数据尺寸、以及数据。数据在分割的状态下被管理,各个数据块通过块号码确定。在图2中,将数据作为从数据块1到数据块N的N个块管理。数据的种类可以表示例如声音、运动图像、程序那样的有关数据的用途的信息。数据分发信息DB243包括数据分发信息表2431。数据分发信息表2431的构造与数据分发控制服务器1的数据分发信息DB141的数据分发信息表1411同样,所以省略说明。
图7是数据再送服务器3的结构。数据再送服务器3具有连接在总线38上的CPU32、存储器36、硬盘34、网络接口30,经由网络接口30的包收发部301与网络5进行通信。在硬盘34中,储存有保存有关根据数据分发控制服务器1的分发计划分发的数据的信息的数据信息DB341、保存从数据分发控制服务器1通知的数据分发计划的数据分发信息DB343,通过装载到存储器36上的数据分发程序361进行读写。
图8表示数据再送服务器3的功能框图。数据再送服务器3包括:网络接口30;存储器;存储上述数据信息和数据分发信息及分发计划管理程序;及控制部。控制部具有:数据分发控制部3611,具有存储器36上的数据分发程序361的主要功能;数据管理部3613,控制数据信息DB341;数据分发信息管理部3615,控制数据分发信息DB343;通信监视定时器3617,监视数据再送服务器3与数据分发控制服务器1、数据发送服务器2、客户端4之间的通信会话,检测错误的发生。数据分发控制部3611与数据管理部3613及数据分发信息管理部3615联动,执行通过组播通信的数据分发处理。
数据信息DB341包括数据信息表3411,数据分发信息DB343包括数据分发信息表3431。数据信息表3411、数据分发信息表3431的构造与数据信息DB241的数据信息表2411、以及数据分发信息DB243的数据分发信息表2431同样,所以省略说明。
图9是客户端(client)4的装置结构。客户端4具有连接在总线48上的CPU42、存储器46、硬盘44、网络接口40,经由网络接口40的包收发部401与网络5进行通信。
图10表示客户端4的功能框图。客户端4包括:网络接口40;存储器;存储接收的数据及数据接收程序;及控制部。控制部具有:数据接收控制部4611,具有存储器46上的数据接收程序461的主要功能;数据分发信息管理部4613,管理对应于用户的请求的数据分发信息;通信监视定时器4615,监视客户端4与数据分发控制服务器1、数据发送服务器2、数据再送服务器3之间的通信会话,检测错误的发生。数据接收控制部4611与数据分发信息管理部4613联动,执行通过组播通信分发的数据的接收处理。。
接着,参照以下所示的时序图,对本发明公开的数据分发系统的整体的动作进行说明。
首先,利用图11说明客户端4经由数据分发控制服务器1接收数据时的基本动作。数据分发处理通过客户端4对数据分发控制服务器1发送数据分发计划请求而开始(S1-01)。在图22中表示了数据分发计划请求的内容。接收到客户端4发送的数据分发计划请求的数据分发控制服务器1检索数据分发信息DB141,取得所有的数据识别码、数据分发开始时刻、数据分发结束时刻、数据分发地址,从而取得数据分发计划,并对客户端4发送数据分发计划(S1-04)。
接收到数据分发计划的客户端4显示数据分发计划的一览,对用户提示希望接收的数据的选择。如果用户从数据分发计划的一览中选择接收的数据,则客户端4将数据分发请求发送给数据分发控制服务器1(S01-07)。
从客户端4接收到数据分发请求的数据分发控制服务器1从数据分发请求中提取数据识别码、数据请求源地址,将数据识别码作为检索关键字,检索数据分发信息表1411。在存在对应于数据识别码的记录的情况下,数据分发控制服务器1将以前面的顺序提取的数据请求源地址追加到对应的记录的数据请求源地址中。结束了数据分发信息DB141的更新的数据分发控制服务器1对客户端4发送数据分发受理信息(S1-10)。
对客户端4通知完数据分发信息的数据分发控制服务器1,向分发数据的数据发送服务器2、数据再送服务器3发送分发数据会话信息(S1-13,S1-16)。
接收到分发数据会话信息的数据发送服务器2从分发数据会话信息中提取数据识别码、数据分发地址、数据分发开始时刻、数据分发结束时刻、和数据请求源地址列表,将各个信息储存在数据分发信息表2431的对应的字段中。数据再送服务器3也进行同样的处理,更新数据分发信息表3431。但是,由于包含在分发数据会话信息中的数据分发结束时刻是数据发送服务器2结束数据分发的时刻,所以数据再送服务器3将对该时刻加上了服务器作为规定值具有的再送监视定时器的时刻,作为最终的数据分发结束时刻,向数据分发信息表3431储存。经过以上的处理,数据分发处理的准备结束。
如果到了数据分发时刻(S1-19),则数据发送服务器2使用数据分发信息表2411的数据分发地址开始数据的分发,数据再送服务器3开始进行来自客户端4的数据再送请求处理的准备(S1-22)。数据的分发通过高可靠性组播通信进行,如果客户端4检测到数据的丢失,则请求数据的再送。客户端4由于从在步骤S1-10中接收到的数据分发受理信息取得数据再送服务器3的地址,所以将数据再送请求向数据再送服务器3发送(S1-25)。
从客户端4接收到数据再送请求的数据再送服务器3从数据再送请求中提取数据请求源地址、数据块号码,将对应于数据块号码的数据块再送给数据发送源。数据再送服务器3进行的数据再送,在数据发送服务器2结束数据的分发、并在其后过了由服务器具有的再送监视定时器作为规定值所确定的时间的时刻结束。
接着,利用图12说明数据发送服务器受理数据再送请求的情况下的动作。用户通过客户端4进行数据分发要求处理的步骤S2-01到步骤S2-07的顺序与图7中的步骤S1-01到S1-07的处理同样,省略说明。接收到来自用户的数据分发要求的数据分发控制服务器1将数据分发受理信息发送给客户端4。这里,数据分发受理信息在数据发送服务器地址、数据再送服务器地址的哪个中都储存数据发送服务器2的地址。通过该处理,数据再送服务器3的地址从用户来看被隐藏,数据再送请求被从客户端4向数据发送服务器2发送(S2-25)。接收到来自客户端4的数据再送要求的数据发送服务器2将数据再送要求向数据再送服务器3传送(S2-28),自身不进行数据的再送处理。从数据发送服务器2接收到数据再送要求的数据再送服务器3经过与图11的步骤S1-28同样的顺序进行数据再送处理(S2-31)。在图12中省略了说明的步骤S2-13到步骤S2-22的顺序的处理与图11中的步骤S1-13到步骤S1-22的顺序同样。
此外,如图13所示,也考虑数据分发控制服务器1处理数据再送请求的情况。用户通过客户端4进行数据分发请求处理的步骤S3-01到步骤S3-07的顺序与图11中的步骤S1-01到S1-07的处理同样,省略说明。接收到来自用户的数据分发请求的数据分发控制服务器1将数据分发受理信息发送给客户端4。这里,数据分发受理信息在数据发送服务器地址中储存数据发送服务器2的地址,在数据再送服务器地址中储存数据分发控制服务器1的地址。通过该处理,数据再送服务器3的地址从用户来看被隐藏,数据再送请求被从客户端4向数据分发控制服务器1发送(S3-25)。接收到来自客户端4的数据再送请求的数据分发控制服务器1将数据再送请求向数据再送服务器3传送(S3-28),自身不进行数据的再送处理。从数据分发控制服务器1接收到数据再送请求的数据再送服务器3经过与图11的步骤S1-28同样的顺序进行数据再送处理(S3-31)。在图12中省略了说明的步骤S3-13到步骤S3-22的顺序的处理与图11中的步骤S1-13到步骤S1-22的顺序同样。
接着,利用图14说明数据再送处理的结束顺序。经过图11中的步骤S1-01到步骤S1-16的顺序,通过组播通信将指定的数据向多个客户端同时发送(S4-01、04),客户端4将数据依次储存到存储器中,接收完所有的数据后,将数据接收结束通知发送给服务器。这里,作为例子,表示客户端1(4-1)将数据接收结束通知发送给数据再送服务器3的处理(S4-07)。
图22中表示了数据接收结束通知的内容。数据接收结束通知PF-07由发送源地址、目的地地址、包种类、数据识别码和数据请求地址构成。数据接收结束通知的发送对每个客户端进行,结束了数据接收的客户端4每次将结束通知发送给数据再送服务器3(S4-10)。如果从包含在数据分发信息数据库343中的所有的用户接收到数据接收结束通知,则数据再送服务器3停止数据再送处理。数据接收结束通知的发送目的地在数据分发控制服务器1向客户端4发送数据分发受理信息(图11的S1-10、图12的S2-10等)时,根据被指定为数据再送服务器地址的服务器的地址而变化。在图12中,在数据再送服务器地址中指定了数据发送服务器2。因而,来自客户端4的数据接收结束通知被发送给数据发送服务器2(S5-07、13),数据发送服务器2将接收到的消息传送给数据再送服务器3(S5-10、16)。数据发送服务器2进行的消息中继处理以外的处理与图14同样。
在图13中,由于在数据再送服务器地址中指定了数据分发控制服务器1,所以数据接收结束的中继处理如图16所示那样通过数据分发控制服务器执行(S6-10、16)。
有时在数据分发中网络会发生某种故障,出现给客户端的数据接收带来障碍的情况。图17表示来自客户端的数据再送请求集中时的处理。这里,对将消息直接发送给数据再送服务器3的情况进行说明,但对于数据发送服务器2或者数据分发控制服务器1进行消息中继处理的情况,基本动作也同样。
检测到数据的丢失的客户端4-1将数据再送请求发送给数据再送服务器3(S7-01)。数据再送服务器3将被请求的数据再送给客户端4-1(S7-04)。这里,如果假设因故障而同一数据不能由多个客户端接收,则其他客户端
(例如N个客户端)请求同一数据的再送(S7-07)。数据再送服务器3将被请求的数据再送后(S7-10),判断请求数据的再送的客户端的数量是否超过了由系统定义的阈值。这里的阈值被定义为请求数据发送的用户占所有用户的比例。在超过了阈值的情况下,认为因数据分发速度过快而数据没有到达多个客户端,对数据发送服务器2发送数据发送速度变更请求(S7-13)。图22中表示数据发送速度变更请求的内容。数据发送速度变更请求PF-08由发送源地址、目的地地址、包种类、数据识别码和发送速度变更参数构成。发送速度变更参数包含有有关怎样变更发送速度的信息,例如包含有用来使通信速度放慢的加权系数、通信速度的绝对值。对于加权系数来说,取0~1之间的值,接收到加权系数的数据发送服务器2进修速度调节,将当前的发送速度乘以加权系数后的发送速度,作为新的发送速度。对于绝对值的情况,只指定发送速度。例如当指定2Mpbs这样的速度时,数据发送服务器2将发送速度设定为该值。接收到数据发送速度变更请求的数据发送服务器2基于消息中的发送速度变更参数调节数据发送速度,再计算数据分发结束时刻。数据分发结束时刻的再计算例如通过数据尺寸和数据分发速度进行。然后,利用数据分发受理消息,将包括再计算的数据分发结束时刻的数据分发信息通知给数据接收中的所有的客户端(S7-16、19)。此外,将分发数据会话信息发送给数据再送服务器3(S7-22),更新数据再送服务器的信息。经过以上的处理,数据发送速度的变更结束。
接着,参照图18的流程图,对由数据分发控制服务器1进行的控制的一例进行说明。该流程图是以规定的周期执行的。数据分发控制服务器1在启动时(步骤F1-01)时开始消息接收循环(步骤F1-04),接收来自网络5的消息。在步骤F1-07中,判断接收到的消息是否是来自客户端的数据分发计划请求,如果是数据分发计划请求,则前进到步骤F1-25,将数据分发计划向客户端4发送(图11的S1-04等)。另一方面,如果接收到的消息不是数据分发计划请求,则前进到步骤F1-10,判断消息是否是来自客户端4的数据分发请求。如果是数据分发请求,则前进到步骤F1-28,将数据发送受理信息向客户端4发送(图11的S1-10等),接着在步骤F1-31中将分发数据会话信息分别发送给数据发送服务器2、数据再送服务器3(图11的S1-13等)。
如果接收到的消息不是数据分发请求,则前进到F1-13,判断消息是否是来自客户端的数据再送请求。在消息是数据再送请求的情况下前进到步骤F1-34,将接收到的消息向数据再送服务器3传送。如果接收到的消息不是数据再送请求,则前进到步骤F1-16,判断消息是否是来自客户端4的数据接收结束通知。在是数据接收结束通知的情况下,前进到步骤F1-37,将接收到的数据向数据再送服务器3传送。消息接收循环在数据分发控制服务器1的关闭时(步骤F1-22)结束(步骤F1-19)。通过以上的处理,数据分发控制服务器1根据来自客户端4的请求进行数据发送服务器2、数据再送服务器3的控制。
接着,参照图19的流程图对由数据发送服务器2进行的控制的一例进行说明。该流程图是以规定的周期执行的。数据发送服务器2在启动时(步骤F2-01)时开始消息接收循环(步骤F2-04),接收来自网络5的消息。在步骤F2-07中,判断接收到的消息是否是来自数据分发控制服务器1的分发数据会话信息,如果是分发数据会话信息则前进到步骤F2-25,更新数据分发计划(图11的S1-13等)。接着前进到步骤F2-28,确认数据再送服务器3是否具有要分发的数据。该检查在图1中数据再送服务器3总是保有分发数据的拷贝的系统结构、以及如图2那样数据发送服务器2与数据再送服务器3共用外部存储器的结构中是不需要的。在图1中数据再送服务器3仅在数据再送处理时保有分发数据的拷贝的情况下,数据发送服务器2判断是否已经将数据发送给了数据再送服务器3,在没有分发数据的情况下前进到步骤F2-31,对数据再送服务器3发送数据,准备好数据分发。
另一方面,如果接收到的消息不是分发数据会话信息,则前进到步骤F2-10,判断时刻是否到了由某个数据识别码确定的数据的分发时刻。如果到了数据分发时刻,则前进到步骤F2-34,开始由数据识别码确定的数据的分发(图11的S1-22等)。如果时刻没有到数据的分发时刻,则前进到步骤F2-13,判断接收到的消息是否是来自客户端4的数据再送请求。如果消息是数据再送请求,则前进到步骤F2-37,将接收到的数据再送请求向数据再送服务器传送(图12的S2-28)。在步骤F2-13中接收到的消息不是数据再送请求的情况下,前进到步骤F2-16,判断消息是否是来自客户端4的数据接收结束通知。如果消息是数据接收结束通知,则前进到步骤F2-40,将接收到的数据接收结束通知向数据再送服务器传送(图15的S5-16)。在接收到的消息不是数据接收结束通知的情况下,前进到步骤F2-18,判断消息是否是数据发送速度变更请求。在消息是数据发送速度变更请求的情况下,前进到步骤F2-43,再计算数据分发结束时刻。然后在步骤F2-46中向客户端4发送数据分发受理信息,将再计算出的数据分发结束时刻向客户端4通知。进而,前进到步骤F2-49,将分发数据会话信息发送给数据再送服务器3,将再计算出的数据分发结束时刻通知给数据再送服务器3。消息接收循环在数据发送服务器2关闭时(步骤F2-22)结束(步骤F2-19)。通过以上的处理,数据发送服务器2根据来自客户端4的请求及数据分发控制服务器1的控制,进行数据的分发处理。
接着,参照图20的流程图对由数据再送服务器3进行的控制的一例进行说明。该流程图是以规定的周期执行的。数据再送服务器3在启动时(步骤F3-01)时开始消息接收循环(步骤F3-04),接收来自网络5的消息。在步骤F3-07中,判断接收到的消息是否是来自数据分发控制服务器1的分发数据会话信息,如果是分发数据会话信息则前进到步骤F3-25,更新数据分发计划(图11的S1-16等)。另一方面,如果接收到的消息不是分发数据会话信息,则前进到步骤F3-10,判断时刻是否到了由某个数据识别码确定的数据的分发时刻。如果到了数据分发时刻,则前进到步骤F3-28,开始由数据识别码确定的数据的再送准备(图11的S1-19等)。如果时刻未到数据的分发时刻,则前进到步骤F3-13,判断接收到的消息是否是数据再送请求。如果消息是数据再送请求,则前进到步骤F3-31,将指定的数据块向数据发送源再送(图11的S1-28等)。
然后,在步骤F3-34中,判断数据再送请求的接收数是否超过了规定的阈值。在超过了阈值的情况下,对数据发送服务器2发送数据发送速度变更请求(F3-37),进行数据发送速度的调节。如果在步骤F3-13中接收到的消息不是数据再送请求,则前进到步骤F3-16,判断消息是否是数据接收结束通知。在是数据接收结束通知的情况下迁建到步骤F3-40,判断是否所有的用户完成了数据接收。在所有的用户完成了数据接收的情况下前进到步骤F3-43,结束数据再送处理。消息接收循环在数据再送服务器3的关闭时(步骤F3-22)结束(步骤F3-19)。通过以上的处理,数据再送服务器3根据来自客户端4的请求及数据分发控制服务器1的控制,进行数据的再送处理。
接着,参照图21的流程图对由客户端4进行的控制的一例进行说明。该流程图以规定的周期执行。客户端4在启动时(步骤F4-01)开始事件接收循环(步骤F4-04),接收来自网络5的消息、以及通过用户的操作产生的程序内部的事件。在步骤F4-07中,判断用户是否按下了客户端的数据分发计划请求按钮,在数据分发计划请求按钮被按下的情况下,前进到步骤F4-34,向数据分发控制服务器1发送数据分发计划请求(图11的S1-01等)。另一方面,在数据分发计划请求按钮没有被按下的情况下,前进到步骤F4-10,判断是否从数据分发控制服务器接收到了数据分发计划。在接收到了数据分发计划的情况下,前进到步骤F4-37,将数据分发计划的一览显示在画面上(图11的S1-04等)。在没有接收到数据分发计划的情况下前进到步骤F4-13,判断用户是否从显示在画面上的数据分发计划的一览中选择了要接收的数据。在用户选择了要接收的数据的情况下前进到步骤F4-40,将包含指定的数据识别码的数据分发请求向数据分发控制服务器1发送(图11的S1-07等)。在用户没有选择要接收的数据的情况下,前进到步骤F4-16,判断是否要开始对已发送的数据分发请求的数据的接收准备。在需要数据的接收准备的情况下前进到F4-43,进行组播通信的接收等的需要的处理。在不需要数据的接收准备的情况下,前进到步骤F4-19,判断是否接收到了要储存的数据。如果接收到了数据,则前进到步骤F4-46,将接收到的数据向硬盘储存。在要储存的数据没有到达的情况下,前进到步骤F4-22,判断未接收的数据块的有无。在有未接收的数据块的情况下前进到步骤F4-49,将指定了未接收的数据块号码的数据再送请求根据系统的结构发送给数据分发控制服务器1、数据发送服务器2、数据再送服务器3的任一个服务器(图11的S1~25等)。在没有未接收的数据块的情况下前进到步骤F4-52,判断是否接收了再送数据。在接收了再送数据时,将该再送数据作为该数据识别码确定的数据,存储在硬盘中。在未接收到再送数据时,前进到步骤F4-26,判断是否接收了全部的数据。在数据接收结束时前进到步骤F4-55。根据系统的结构将数据接收结束通知发送给数据分发控制服务器1、数据发送服务器2、数据再送服务器3的任一个服务器。事件接收循环在客户端4的关闭时(步骤F4-31)结束(步骤F4-28)。通过以上的处理,客户端4通过对数据分发控制服务器1通知要接收的数据识别码,接收数据而提供给用户。
在图22中表示了数据分发计划请求PF-01的内容。数据分发计划请求PF-01由发送源地址、目的地地址、包种类构成。
图22还表示了数据分发计划的内容PF-02。数据分发计划PF-02由发送源地址、目的地地址、包种类、数据识别码列表、数据分发地址列表、数据分发开始时刻列表、数据分发结束时刻列表构成。
图22还表示了数据分发请求PF-03的内容。数据分发请求PF-03由发送源地址、目的地地址、包种类、数据识别码和数据请求源地址构成。
图22还表示了数据分发受理信息的内容。数据分发受理信息PF-04包括发送源地址、目的地地址、包种类、数据识别码、数据发送服务器地址、数据再送服务器地址、数据分发地址、数据分发开始时刻、数据分发结束时刻。数据发送服务器地址、数据再送服务器地址表示数据分发源的地址。数据分发开始时刻、数据分发结束时刻分别表示仅一次进行数据的分发的数据发送服务器2进行的数据分发的开始时刻、结束时刻。
图22还表示了分发数据会话信息PF-05的内容。分发数据会话信息PF-05由发送源地址、目的地地址、包种类、数据识别码、数据分发地址、数据分发开始时刻、数据分发结束时刻、和数据请求源地址列表构成。数据请求源地址列表包括请求由该数据识别码确定的数据的分发的所有的客户端的地址。
图22中还表示了数据再送请求PF-06的内容。数据再送请求PF-06由发送源地址、目的地地址、包种类、数据识别码、数据请求源地址、和数据块号码构成。数据块号码表示缺失的数据的块号码。
以上,在有关本发明的数据分发系统中,提供了通过数据分发控制服务器、数据发送服务器、数据再送服务器以及客户端、按照预先设定的分发计划、将大容量数据同时对不特定的多个用户通过组播通信高效率地分发的功能,所以能够作为IPTV等的广播型服务的附加服务使用。