WO2005013568A1 - コンテンツ配信システム - Google Patents

コンテンツ配信システム Download PDF

Info

Publication number
WO2005013568A1
WO2005013568A1 PCT/JP2003/009948 JP0309948W WO2005013568A1 WO 2005013568 A1 WO2005013568 A1 WO 2005013568A1 JP 0309948 W JP0309948 W JP 0309948W WO 2005013568 A1 WO2005013568 A1 WO 2005013568A1
Authority
WO
WIPO (PCT)
Prior art keywords
transmission request
time
relay
server
client
Prior art date
Application number
PCT/JP2003/009948
Other languages
English (en)
French (fr)
Inventor
Masaharu Kako
Original Assignee
Fujitsu Limited
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 Fujitsu Limited filed Critical Fujitsu Limited
Priority to PCT/JP2003/009948 priority Critical patent/WO2005013568A1/ja
Publication of WO2005013568A1 publication Critical patent/WO2005013568A1/ja

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast

Definitions

  • the present invention relates to a system that distributes content such as a program file from a server to a client.
  • a client downloads content such as a program file from a server, in a network configuration as shown in Fig. 38, the server sends an FTP (File A method of distributing information by unicast based on the HTTP (HyperText Transfer Protocol) or HTTP (HyperText Transfer Protocol) is widely used.
  • FTP File A method of distributing information by unicast based on the HTTP (HyperText Transfer Protocol) or HTTP (HyperText Transfer Protocol) is widely used.
  • a method of installing a cache server between a server and a client (first conventional method, see FIG. 39, for example, see Patent Document 1).
  • the cache server caches the content and distributes the cached content to the client, so that download requests from the client are concentrated on the server. To prevent.
  • Patent Document 1
  • Patent Document 2
  • the relay server and the cache server need to be rearranged or expanded according to the client allocation. Therefore, costs rise.
  • the relay server (cache server) downloads content from the original server and downloads the content. If the download fails, the content is delivered to the client. I can't do that.
  • the reach of the multicast bucket is predetermined in order to prevent network disturbance due to the multicast transmitted bucket. For this reason, to distribute content to all distribution destination clients, a relay server is required for each multicast coverage area.
  • the content packet reaches the entire distribution destination regardless of the necessity of reception on the client side. Disclosure of the invention
  • Another object of the present invention is to provide a content distribution technology capable of suppressing a large number of transmission requests from being concentrated on a server.
  • the content while receiving a transmission request for content periodically transmitted from a client at a predetermined time interval from any of a plurality of clients, the content is divided by dividing the content.
  • a server that continuously transmits, in a predetermined order, the divided data of a plurality of contents generated in advance and to which a sequence number is assigned, in a predetermined order;
  • First relay control means for performing control to relay the transmission request received from each second communication interface for communicating with a plurality of clients to a first communication interface for communicating with the server;
  • Relay condition setting means for setting in the storage means relay condition information of the content including the identification information of the second communication interface that has received the transmission request; and the divided data received from the first communication interface,
  • a relay device including: a second relay control unit that performs control to perform multicast transmission only to the second communication interface whose identification information is stored in the storage unit; and
  • the relay device transmits the divided data only from the second communication interface that has received the transmission request. Is multicast. Therefore, it is possible to prevent the divided data from being multicast to a range where the divided data is not required. This can prevent an increase in network load and congestion.
  • the relay device is, for example, a line concentrator (switch) such as a router or a layer 3 switch, and communicates with a client such as a relay server or a cache server in the related art. This is different from the device that exchanges requests and responses.
  • the relay condition setting means includes the identification information of the second communication interface that has received the transmission request, and the scheduled end time of the transmission of the divided data to the second communication interface.
  • the relay condition information of the content including
  • the second relay control means controls the relay of the divided data so that the divided data is not transmitted to the second communication interface whose scheduled end time has passed.
  • the relay condition setting means in the first aspect sets the scheduled end time by adding a time at least twice the predetermined time to the current time every time a transmission request is received.
  • the divided data can be transmitted to the client that continues to transmit the transmission request via the corresponding second communication interface, and the client can transmit all the divided data.
  • the client stops transmitting the transmission request, so that the scheduled end time expires, and subsequent transmission of the divided data can be prevented.
  • the server in the first aspect updates the distribution deadline of the content by adding a time at least twice the predetermined time to the current time every time a transmission request is received, and the distribution deadline is If the next transmission request is not received before expiration, the multicast transmission of the divided data is stopped.
  • the relay device is obtained by adding information for identifying the transmission request and twice the predetermined time to the current time every time the transmission request is received.
  • the first relay control means When relaying the transmission request, refers to the relay condition information of the transmission request having the same content as the transmission request, and the time obtained by adding the predetermined time to the current time is the relay condition. If the scheduled end time included in the information is not exceeded, the relay of the transmission request is stopped, and if not, the transmission request is relayed.
  • the relay device can aggregate a plurality of transmission requests. That is, for example, transmission requests from a certain client can be aggregated into transmission requests from other clients. For this reason, unnecessary transmission requests can be suppressed from being transmitted to the server. As a result, an increase in network load and congestion can be suppressed. In addition, it is possible to suppress concentration of a plurality of transmission requests on the server.
  • time information indicating a time that is at least twice the predetermined time is set in the client
  • the relay condition setting means when a transmission request is received, the scheduled end time obtained by adding a time indicated by time information set in the transmission request to a current time;
  • the content relay condition information including the identification information of the second communication interface having received the information and the information is stored in the storage means.
  • the client can control the scheduled end time of the transmission of the divided data from the client side.
  • time information indicating a time that is at least twice the predetermined time is set in the client
  • the server updates the content delivery time limit by adding the time indicated by the time information set in the transmission request to the current time every time the transmission request is received. If no transmission request is received, the multicast transmission of the divided data is stopped.
  • the client can control the delivery deadline of the content. can do.
  • the second relay condition setting means in the first aspect includes information for identifying the transmission request and the time information set in the transmission request.
  • Setting relay condition information of a transmission request including the expected end time obtained by adding a time twice as long as the predetermined time indicated to the current time to the storage means;
  • the first relay control unit When relaying the transmission request, the first relay control unit refers to the relay condition information of the transmission request having the same content as the transmission request, and adds half of the time specified by the time information to the current time. If the time does not exceed the scheduled end time included in the relay condition information, the relay of the transmission request is stopped; otherwise, the transmission request is relayed.
  • the aggregation of transmission requests received by the relay device can be controlled from the client side.
  • the server according to the first aspect includes, in response to a request for download of the content from the client, address information for the client to download the content, and the time. Sends a download response containing the information to the requesting client,
  • the relay device and the server receive a transmission request that is periodically transmitted from a client at a time interval equal to or less than half of the time indicated by the time information, and in which the address information and the time information are set. I do.
  • the server can control time information and the like set in the transmission request by the client.
  • the server according to the first aspect transmits the divided data of the plurality of contents in sequence number order,
  • each client can start distribution from the split data in the middle. Can receive. This makes it possible to prevent unnecessary (received) divided data from being multicast to any of the clients requesting transmission. Therefore, an increase in network load and occurrence of congestion can be suppressed.
  • a second aspect of the present invention provides a storage unit that stores divided data of a plurality of contents generated by dividing a content to be distributed,
  • Transmitting means for continuously transmitting the divided data of the plurality of contents to the client in a predetermined order while receiving the transmission request from at least one client;
  • the second aspect is that a sequence number is assigned to each divided data
  • the transmitting means transmits the divided data of the plurality of contents in sequence number order,
  • the receiving means receives a transmission request in which a sequence number is designated by a client,
  • the transmitting means may start retransmission of the divided data from the smallest sequence number among the sequence numbers specified in the transmission request after the transmission of the divided data to which the last sequence number has been added. It is configured as follows.
  • every time a transmission request is received a time at least twice as long as the predetermined time is added to the current time to update the distribution deadline of the content, and the distribution deadline expires If the next transmission request has not been received before, the multicast transmission of the divided data is stopped.
  • time information indicating a time that is at least twice the predetermined time is set in the client,
  • Each time a transmission request is received it is indicated by the time information set in the transmission request. Time is added to the current time, and the distribution deadline of the content is updated.If the next transmission request is not received before the distribution deadline expires, multicast transmission of the divided data is stopped. It is configured to further include transmission control means for performing the above.
  • the second aspect is a download response including, in response to a request for a content download address from the client, address information for the client to download the content, and the time information.
  • a download response including, in response to a request for a content download address from the client, address information for the client to download the content, and the time information.
  • the receiving means receives a transmission request that is periodically transmitted from the client at a time interval equal to or less than half the time indicated by the time information, and in which the address information and the time information are set.
  • a third aspect of the present invention provides a server that multicasts content while receiving a content transmission request from any of a plurality of clients,
  • Content relay condition setting means for storing content relay condition information including identification information of the second communication interface having received the transmission request in a storage means
  • a second relay control for controlling to transmit the content received from the server via the first communication interface from only the second communication interface in which the identification information is stored in the storage means.
  • Means, and a relay device comprising:
  • a fourth aspect of the present invention while receiving a transmission request for content periodically transmitted from a client at a predetermined time interval from any of a plurality of clients, the content is divided.
  • a first communication interface for communicating with a server that continuously transmits the divided data of a plurality of contents assigned with a single can number in a predetermined order, and a plurality of communication interfaces for communicating with a plurality of clients.
  • a communication control unit connected to the second communication interface;
  • First relay control means for controlling relay of the transmission request received from each second communication interface to the first communication interface
  • Relay condition setting means for setting, in the storage means, relay condition information of the content including the identification information of the second communication interface that has received the transmission request, and the split data received from the first communication interface.
  • a second relay control unit that controls to perform multicast transmission only to a second communication interface whose identification information is stored in the storage unit;
  • the relay condition setting means includes the identification information of the second communication interface that has received the transmission request and the scheduled end of the transmission of the divided data to the second communication interface.
  • the relay condition information of the content including the time is set in the storage means,
  • the second relay control means controls the relay of the divided data so that the divided data is not transmitted to the second communication interface whose scheduled end time has passed.
  • the relay condition setting means in the fourth aspect sets the scheduled end time by adding a time at least twice the predetermined time to the current time every time a transmission request is received.
  • a second relay condition setting unit configured to set, in the storage unit, relay condition information of a transmission request including a scheduled end time of transmission of the divided data to the second communication interface that has received the request,
  • the first relay control unit When relaying a transmission request, refers to relay condition information of the transmission request having the same content as the transmission request, and determines the predetermined time. If the time added to the current time does not exceed the scheduled end time included in the relay condition information, the relay of the transmission request is stopped, and if not, the transmission request is relayed. You.
  • time information indicating a time that is at least twice the predetermined time is set by the client,
  • the relay condition setting means when a transmission request is received, the scheduled end time obtained by adding a time indicated by time information set in the transmission request to a current time;
  • the content relay condition information including the identification information of the second communication interface that has received the information is stored in the storage means.
  • Second relay condition setting means for setting relay condition information of a transmission request including the scheduled end time obtained by adding twice the time to the current time in the storage means,
  • the first relay control unit When relaying the transmission request, refers to the relay condition information of the transmission request having the same content as the transmission request, and adds half of the time specified by the time information to the current time. If the scheduled time does not exceed the scheduled end time included in the relay condition information, the relay of the transmission request is stopped, and if not, the transmission request is relayed.
  • the receiving means in the fourth aspect includes address information for the client to download the content notified from the server and the time information, and a half of the time indicated by the time information. Receives transmission requests periodically transmitted from clients at the following time intervals.
  • FIG. 1 is a diagram showing an example of the overall configuration of a content distribution system according to the present invention.
  • FIG. 7 is a sequence diagram showing an example of a loading procedure
  • Fig. 3 is a block diagram showing a configuration example of the server.
  • FIG. 4 is a block diagram showing a configuration example of a router (relay device).
  • FIG. 5 is a diagram showing a configuration example of a network interface of a router.
  • FIG. 6 is a diagram showing an example of the field configuration of the program packet distribution table.
  • FIG. 7 is a block diagram showing a configuration example of the client.
  • FIG. 8 is a diagram showing an example of a field configuration of a transmission request.
  • FIG. 9 is a diagram showing an example of a field configuration of a program bucket
  • FIG. 10 is a diagram showing a method of dividing and reconstructing a program file
  • FIG. FIG. 9 is a diagram showing a sequence in a case where distribution conditions are automatically obtained from a server.
  • FIG. 12 is a diagram showing an example of a field configuration of a download and an address request.
  • FIG. 13 is a diagram showing an example of a field configuration of a download and an end-response response.
  • FIG. 14 is a flowchart showing an example of a process of transmitting a program bucket by the server.
  • FIG. 15 is a flowchart showing an example of a program packet relay process performed by a router.
  • FIG. 16 is a flowchart showing an example of a program bucket receiving process by a client.
  • FIG. 17 is a flowchart showing an example of transmission processing of a transmission request by a client.
  • FIG. 18 is a flowchart showing an example of a relay process of a transmission request by a router.
  • FIG. 19 is a flowchart showing an example of reception processing of a transmission request by the server.
  • FIG. 20 is a flowchart showing an example of processing for stopping transmission of a program packet by the server.
  • Figure 21 is a flowchart showing an example of the process of stopping the relay of a program packet by the router.
  • FIG. 22 is a diagram showing a content distribution sequence such as a television (TV) broadcast.
  • FIG. 23 is a flowchart showing a process of receiving content such as a TV broadcast.
  • FIG. 24 is a flowchart showing a process of transmitting content such as a TV broadcast.
  • Figure 25 is a block diagram showing a configuration example of a router that aggregates transmission requests.
  • FIG. 26 is a diagram showing an example of the field configuration of the transmission request aggregation table
  • FIGS. 27 and 28 are flow charts showing an example of transmission request aggregation relay processing by the router.
  • Figure 29 is a block diagram showing an example of the configuration of a server in a system that specifies the retransmission start position.
  • Fig. 30 is a block diagram showing an example of the configuration of a router that aggregates transmission requests in the method that specifies the retransmission start position.
  • Fig. 31 is a diagram showing an example of the field configuration of the transmission request aggregation table applied in the method for specifying the retransmission start position.
  • FIG. 32 is a diagram showing an example of a field configuration of a transmission request applied by a method of designating a retransmission start position.
  • FIG. 33 is a flowchart showing an example of a process of transmitting a program bucket by the server in a method of specifying a retransmission start position.
  • FIG. 34 is a flowchart showing an example of a transmission process of a client transmission request in a method of designating a retransmission start position.
  • FIG. 35 is a flowchart showing an example of the server's transmission request reception processing in the method of specifying the retransmission start position.
  • FIGS. 36 and 37 are flowcharts showing an example of the aggregation relay processing of the transmission request of the router in the method of designating the retransmission start position.
  • FIG. 38 is an explanatory diagram of the prior art.
  • FIG. 39 is an explanatory diagram of the conventional technology
  • FIG. 40 is an explanatory diagram of the conventional technology.
  • FIG. 1 is a diagram showing an example of an overall configuration of an embodiment of an information distribution system according to the present invention.
  • FIG. 1 shows a server (SERVER) 10 corresponding to the server of the present invention, a plurality of clients (CLIENT) 20 corresponding to the client of the present invention, and a relay device of the present invention.
  • a plurality of routers (ROUTER) 30 including the IP (Internet Protocol) network power S are shown.
  • the server 10 and at least one router 30 are arranged in an IP network so as to form a tree-like network topology with Sano 10 as a root.
  • the server 10 and the router 30 are configured to be able to transmit buckets by IP multicast / recast or broadcast (hereinafter simply referred to as “manolechicast”).
  • each client 20 is arranged in a multicast 'domain of the server 10 or one of the routers 30 (a range where a bucket reaches by communication by IP multicast).
  • each client 20 receives information (also referred to as “content”) distributed by multicast or broadcast from server 30. be able to.
  • Each client 20 located in the multicast domain of server 10 is multicast from server 30 either directly from server 10 or via a conventional router 40.
  • Server 10, client 20, and router 30 are connected between server 10-router 30, router 30, and router 30-client 20. , It is configured to be able to communicate in both directions between the server 10 and the client 20.
  • the server 10 can store content to be distributed to each client 20 such as a program file, or manage the content by another device.
  • the server 10 multicasts a bucket storing the content in response to a distribution request (transmission request) from at least one client 20.
  • Each client 20 desires to provide the content.
  • a content distribution request is transmitted to the server 10.
  • Each client 20 can receive the content distributed from the server 10 and use the content to provide a service to the client 20 user.
  • the router 30 relays the distribution request from the client 20 to the server 10 and relays the bucket storing the content from the server 10.
  • Such a system distributes, for example, a program as content (eg, a basic program of a VoIP modem) stored in the server 10 in response to a distribution request from the client 20. (Each client 20 downloads content from the server 10).
  • a program as content eg, a basic program of a VoIP modem
  • FIG. 2 is a diagram showing an example of a download sequence executed in the information distribution system as shown in FIG.
  • distribution of a bucket (referred to as a “program bucket”) storing a program as content from the server 10 to the client #A corresponding to the client 20 is started.
  • An example of the sequence from the end to the end is shown.
  • client #A is connected to server 10 via router # 2 and router # 1 corresponding to router 30.
  • a program as content is divided into a plurality of segments, and a plurality of program packets for storing each segment are prepared.
  • a serial number (sequence number) is assigned to each program packet.
  • a plurality of program buckets such as the above are continuously and periodically cast in sequence number order.
  • each client eg, client #A
  • it will continue to send transmission requests periodically during that time.
  • the transmission request sent from the client #A reaches the server 10 via the router # 2 and the router # 1.
  • routers # 2 and # 1 store the communication interface that has received the transmission request from client #A, and routers # 1 and # 2 store the When a gram packet is received, it sends out a program packet from the stored communication interface.
  • client #A This allows client #A to receive program packets from server 10. Then, when the client #A receives the divided data of all the divided programs, the client #A ends the request for transmitting the program bucket.
  • the client sends a send request to the server.
  • the router Upon receiving the transmission request, the router sends the transmission request to the server and sends a program bucket destined to the server address in the transmission request and destined to the program distribution destination address. Set filtering so that transmission can be performed from the interface that received the transmission request.
  • the server Upon receiving the transmission request, the server divides the program into a predetermined number and divides the program into a plurality of pieces of divided data each having a continuous sequence number. Transmit cyclically and repeatedly in a program bucket.
  • the router When the router receives the program bucket, it sends the program bucket downstream of its own device according to the filtering.
  • the client When the client receives the program bucket, it rebuilds the program based on the sequence number. '
  • the client sends a transmission request to the server at the first predetermined time "T O" interval until the restructuring of the program is completed.
  • the server stops transmitting the program packet.
  • the router stops transmitting the program bucket to that interface. Set the filtering to work.
  • T 0 ⁇ T 1/2 and T O ⁇ T 2/2 it is preferable that T 0 ⁇ T 1/2 and T O ⁇ T 2/2.
  • T1 is the transmission time of one cycle of the program
  • the first to third predetermined times are determined in advance, and the server sends a download response to the client. It is preferable to specify T0 for the client and T2 in the transmission request from the client to the router.
  • FIG. 3 is a block diagram showing a configuration example of the server 10.
  • the server 10 is configured using a general-purpose computer such as a personal computer (PC) or a workstation (WS), or a dedicated computer such as a dedicated server machine.
  • PC personal computer
  • WS workstation
  • dedicated computer such as a dedicated server machine.
  • the server 10 includes an input unit 102, an output unit 103, and a program file centered on the control unit 101.
  • the gram file name storage unit 109, the division size storage unit 110, the total number of divisions storage unit 111, the stop flag storage unit 112, and the distribution term storage unit 113 are respectively connected. It is configured as a device.
  • the input unit 102 is connected to an input device such as a keyboard or a pointing device (mouse or the like), and has a function of receiving an operator's request or data and giving it to the control unit 101.
  • an input device such as a keyboard or a pointing device (mouse or the like)
  • a pointing device mouse or the like
  • the output unit 103 is connected to an output device such as a display or a printer, and supplies data to be output to the output device.
  • an output device such as a display or a printer
  • the control unit 101 executes various applications of the server 10 and controls the entire server.
  • the control unit 101 is, for example, a processor such as a CPU, a main memory (RAM, etc., for example, used as a work area), an auxiliary storage (a ROM, a hard disk, etc., a storage area for programs and data). And the like, and executes various programs (OS, application programs) stored in the auxiliary memory to control the entire server 10.
  • the communication control unit 105 controls communication with the client 20 and the router 30.
  • the communication control unit 105 is configured using, for example, a network interface device.
  • the program file storage unit 104 has a function of storing “contents” to be distributed.
  • the program file storage unit 104 can be configured using various nonvolatile recording media such as a hard disk.
  • FIG. 4 is a block diagram showing a configuration example of the router (relay device) 30.
  • the router 30 is provided with an input unit 302, an output unit 303, a routing information storage unit 304, and a control unit 301, centering on the control unit 301. It is configured as a device to which the communication control unit 300 and the program packet delivery table storage unit 303 are connected.
  • the input unit 302 is connected to an input device such as a keyboard / pointing device, and receives a request from an operator.
  • the output unit 303 is connected to an output device such as a display or a printer, and presents the status of the router 30 to the operator.
  • the control unit 301 executes various applications (programs) stored in the storage device of the router 30 and controls the entire router.
  • the control unit 201 is composed of a processor such as a CPU, a main memory (used as a work area), an auxiliary memory (used as a program storage area, etc.), and the like.
  • the communication control unit 305 controls communication with the client 20, another router 30, and the server 10.
  • the routing information storage unit 304 stores routing information for transmitting a packet to the server 10 or another device.
  • the program packet distribution table storage unit 303 stores the program packet distribution table 303A (FIG. 6).
  • FIG. 5 is a diagram illustrating a configuration example of a network interface included in the router 30.
  • FIG. 5 illustrates a configuration example of a network interface of a router #i (i is a natural number) corresponding to the router 30. .
  • the communication control unit of the router #i (30) is directed to the server 10, the first communication interface, and at least one of the first communication interface to the client 20. It is connected to the second communication interface.
  • the router #i includes a first communication interface "I # S" toward the server 10 and each client #A, #X, and # corresponding to the client 20. It is connected to the second communication interfaces "I # Ca", "I # Cx", and "I # Cy", each of which goes to Y.
  • FIG. 6 is a diagram showing an example (field configuration example) of the data structure of the program bucket distribution table 306A stored in the program bucket distribution table storage unit 306 of the router 30.
  • the program bucket distribution table 306 A includes “interface ID,” “server address”, “program distribution address”, and “transparent period” as elements.
  • server address included in the received transmission request is stored (stored).
  • program distribution address In the field of “program distribution address”, the program distribution address (multicast address) included in the received transmission request is stored (stored).
  • the time at which the transmission of the program packet directed to the client is stopped (scheduled end time) is stored (stored) as the transmission period.
  • Each record of the program bucket rooster self-confidence table 300A is stored so as to be unique by "interface ID” + "server address” + "program distribution address”.
  • the server address and the program distribution address are used as information for identifying a transmission request or a program file.
  • FIG. 7 is a block diagram showing a configuration example of the client 20.
  • the client 20 is, for example, a terminal device on a network such as a Vo IP modem, a general-purpose computer such as a PC or WS, or a mobile phone applied as an IP terminal. It is configured using various computers, such as PCs and PDA (Personal Digital Assistants).
  • the client 20 has the control unit 201 as a center, with the control unit 201 as the center.
  • the unit 2 12 and the file name storage unit 2 13 are configured as a connected device.
  • the input unit 202 is connected to an input device such as a keyboard pointing device, receives an operator's request, and passes it to the control unit 201.
  • the output unit 203 is connected to an output device such as a display or a printer, and outputs various data and information from the control unit 201 to the output device. As a result, the status of the client can be presented to the operator.
  • the control unit 201 executes various applications and controls the entire client.
  • the control unit 201 serves as a storage area for programs and data such as a processor such as a CPU, a main memory (RAM or the like, for example, used as a work area), and an auxiliary memory (ROM, a hard disk or the like).
  • the processor executes various programs (OS and application programs) stored in the auxiliary storage to realize control of the entire client.
  • the communication control unit 205 controls communication with the router 30 and the server 10.
  • the communication control unit 205 is configured using various network interface devices according to the connection form with the network.
  • the program file storage unit 204 stores a program file as reconstructed content.
  • the program file is configured using a non-volatile recording medium such as a hard disk.
  • the program file assembly area storage unit 206 stores the received “program packet” and is used as a work area for rebuilding.
  • the storage unit 206 has an assembling area 206A for storing the divided data of the program file in the order of the sequence numbers, as shown in FIG.
  • the received table storage unit 207 is used as an area for storing a received table 207A for storing information indicating a reception status of a program packet for reconstructing a program file. .
  • the program file assembling area storage unit 206 and the received tapes 206A can be constructed on a memory used as a work area of a processor such as a RAM, for example.
  • each client 20 transmits and receives the contents (program file) from the server 10 to obtain the contents (program file). If necessary, the transmission request relayed by the router 30 and the configuration of the program packet are performed. Will be described.
  • FIG. 8 is a diagram illustrating an example of a field configuration (format configuration example) of a “transmission request” transmitted from the client 20 to the server 10.
  • the message (packet) of the transmission request stores “server address”, “program distribution address”, and “delivery time” as parameters. Has a plurality of fields.
  • the address of the server 10 that stores the program file / file is set in the finano red of “Serno address”.
  • a destination address (multicast address) when the server 10 distributes a program packet is set.
  • the time indicating the transmission duration of the program bucket in the server 10 and the router 30 after receiving the transmission request is set as the “delivery time”.
  • Figure 9 shows an example of the field configuration of a “program packet” that is multicast from the server 10 to the client 20 and multicast as needed by the router 30 (format configuration example).
  • FIG. 9 shows an example of the field configuration of a “program packet” that is multicast from the server 10 to the client 20 and multicast as needed by the router 30 (format configuration example).
  • the program packet has a parameter " -No address, "Program Rooster 3 Shin address”, “Fai / re name”, “Sequence number”, “Total number of divisions”, and "Program file division data”. It has multiple fields.
  • the address of the server 10 storing the program finale is set in the final address of "server address”.
  • a destination address (multicast address) when the server 10 distributes the program bucket is set.
  • the "file name” can include information indicating the version (version) of the program file.
  • serial number one of the serial numbers indicating the position of the divided data in the program file is set.
  • Total number of divisions the total number of divisions of the program file is set.
  • FIG. 10 is a diagram showing an example of a method for dividing and reconfiguring a program file in the server 10 and the client 20.
  • the server 10 divides the program file to be distributed into n (n is a natural number) in a predetermined bucket size (for example, determined by the program installer). Then, the server 10 expands the divided data (segment) of each program file into each program packet.
  • the server 10 stores the divided data (segment) of the program file divided into ⁇ (0, ⁇ , ⁇ -1).
  • FIG. 11 is a sequence diagram showing an example in which the client #A corresponding to the client 20 automatically obtains the distribution conditions of the program as content from the server 10.
  • client #A when client #A wishes to deliver a program from server 10, client #A requests server 10 to request a down-door address of the program (a request for the content). Sends a message (packet) for (delivery condition request).
  • the server 10 When receiving the download address request, the server 10 sends a message (bucket) of the download address response to the request # 2 to the client #A of the request source.
  • client #A creates a transmission request based on the distribution conditions (program distribution address, etc.) set in the response to the received door address and sends it to server 10. Can be transmitted.
  • Fig. 12 shows a field configuration example (format configuration example) of a message (bucket) of a download door address request transmitted from the client to the server in the sequence shown in Fig. 11.
  • FIG. 12 shows a field configuration example (format configuration example) of a message (bucket) of a download door address request transmitted from the client to the server in the sequence shown in Fig. 11.
  • FIG. 12 shows a field configuration example (format configuration example) of a message (bucket) of a download door address request transmitted from the client to the server in the sequence shown in Fig. 11.
  • the download address request has a field for storing the "file name" as a parameter.
  • This "file name” field In, the name of a program file managed as a distribution target by the server 10 is set.
  • the content distribution condition request such as the download address request described above may be configured so that the identification information of the content desired to be distributed is set instead of the file name. .
  • FIG. 13 is a diagram illustrating an example of a field configuration (example of a format configuration) of a download address response transmitted from the server to the client in the sequence illustrated in FIG. 11.
  • the bucket (message) of the download door address response consists of “server address”, “program distribution address”, “delivery time”, and “parameter” as parameters in response to the download address request. It has fields to store “file name”, “total number of divisions”, and “division size” respectively.
  • the content of the distribution target that is, the address of the server 10 storing the program file is set in the field of “server address”.
  • a destination address (multicast address) when the server 10 distributes a program packet is set.
  • the transmission duration of the program packet from the server 10 is set.
  • the total number of divided program files is set in the "Division total" field.
  • the size of each divided data when the program file is divided is set.
  • FIG. 14 is a flowchart illustrating an example of a program packet transmission process executed by the server 10.
  • the control unit 101 of the server 10 (FIG. 3) executes the program.
  • the processing may be configured to be realized by a hardware logic circuit.This processing is performed when the server 10 receives a transmission request. Triggered by
  • control unit 101 sets the transmission processing stop flag stored in the stop flag storage unit 113 to off (step S01).
  • control unit 101 sets the value of the storage area [SQN] of the sequence number on the work area of the control unit 101 to zero (step S02).
  • control unit 101 determines whether or not the stop flag is off (step S03), and repeats the following steps S04 to S06 while the stop flag is off.
  • step S04 the control unit 101 creates a program bucket (FIG. 9) corresponding to the sequence number specified by the value of the work area [SQN].
  • the control unit 101 divides the program file stored in the storage unit 104 into n pieces according to the total number of divisions set in the total division number storage unit 111, and sets the sequence Get the divided data corresponding to the number ([SQN]). Further, the control unit 101 stores a preset address (server address) and program distribution address from each of the storage units 106, 108, 109, and 111. The address, file name, and total number of divisions are obtained. Then, the control unit 101 creates a program packet in which the acquired information and the current [SQN] are respectively set.
  • step S05 the control unit 101 transmits a program packet by multicast using a program distribution address.
  • FIG. 15 is a flowchart showing an example of a program packet relay process in the router 30.
  • This relay processing is executed by the control unit 301 of the router 30 (FIG. 4).
  • This processing can be realized by executing a program by a processor or by signal processing by a hardware logic circuit.
  • step S101 the control unit 301 enters a state of waiting for reception of the program bucket (FIG. 9) in the communication control unit 301 (step S101). Then, when the program bucket is received, the processing proceeds to step S102.
  • step S102 the control unit 301 extracts a server address from the received program packet, and stores it in the work area [server address] of the control unit 301.
  • control unit 301 extracts the program distribution address from the program packet, and stores it in the work area [program distribution address] of the control unit 301 (step S1). 0 3).
  • control unit 301 determines from the program packet delivery address table 300 A (FIG. 6) that the server address matches the value set in the work area [server address], and that the program A record whose delivery address matches the value set in the work area [program delivery address] is extracted (step S104).
  • control unit 301 ends the process, and if a record can be extracted, the control unit 301 performs the process of step S106 for each record (step S106). Step S105).
  • step S106 the control unit 301 multicast-transmits the program bucket from the communication interface specified by the interface ID in the record.
  • FIG. 16 is a flowchart showing an example of a program packet reception process in the client 20.
  • This processing is realized, for example, by the control unit 201 (FIG. 7) of the client 20 executing a program.
  • the processing may be configured to be realized by a hardware logic circuit.
  • control unit 201 sends a download address request (FIG. 12) to the server 10 (step S201).
  • control unit 201 enters a state of waiting for reception of a download address response (FIG. 13) from the server 10 (step S202).
  • download address response the process proceeds to step S203.
  • step S203 the control unit 201 initializes the program file assembling area 206A upon receipt of the download address response.
  • control unit 201 initializes the received table 207A (step S204).
  • control unit 201 extracts the delivery time included in the down-to-door address response from the response, and stores it in the delivery time storage unit 210 (step S205). At this time, the control unit 201 stores the other parameters (server address, program delivery address, total number of divisions, division size, etc.) in the response in the corresponding storage unit (storage unit 208, 209, 211, 211, etc.).
  • control unit 201 performs activation registration of the transmission process of the transmission request at a cycle of one half of the time specified by the distribution time (step S206).
  • control unit 201 determines whether the reception of the divided data of all the program files is completed (step S207). Until the reception of all the divided data is completed, the following steps S208 to S211 are repeated.
  • step S208 the control unit 201 enters a program packet reception waiting state. Processing proceeds to
  • step S209 the control unit 201 extracts a sequence number from the program bucket, and stores the sequence number in the work area [SQN] of the control unit 201.
  • step S210 the control unit 201 converts the divided data of the program file included in the program packet into the corresponding sequence number (work area [SQN]) of the program file assembly area 206A. Value).
  • step S 211 the control unit 201 notifies the received table (received table storage unit 2) that the divided data of the program file corresponding to the sequence number stored in the work area [SQN] has been received. 0 7). Then, when the reception of all the divided data is completed, the control unit 2 1 releases the activation registration of the transmission process of the transmission request (step S2122) and ends the process.
  • FIG. 17 is a flowchart showing an example of transmission processing of a transmission request in the client 20.
  • This processing is realized, for example, by the control unit 201 (FIG. 7) of the client 20 executing the program. However, the processing may be configured to be realized by a hardware logic circuit.
  • This process is periodically activated at predetermined time intervals when the activation registration is performed.
  • the predetermined time is a half of the delivery time specified by the download door address response, and corresponds to a first predetermined time “T 0”.
  • the control unit 201 When starting the transmission request transmission process, the control unit 201 generates a transmission request (FIG. 8) and transmits it to the server 10 (step S213). That is, the control unit 201 reads out the storage addresses 208, 209, 210, the server address, the program delivery address, and the delivery time, and these are set. A transmission request is created and transmitted from the communication control unit 201. Then, the process ends.
  • FIG. 18 is a flowchart showing an example of the relay process of the transmission request in the router 30. This processing is executed by the control unit 301 of the router 30. This processing is realized by executing a program of a processor or by signal processing of a hardware logic circuit.
  • control unit 301 enters a reception waiting state for the transmission request (FIG. 8) (step S301), and upon receiving the transmission request, advances the processing to step S302.
  • step S302 the control unit 301 stores the identifier (interface ID) of the communication interface that has received the transmission request in the work area [C-ID] of the control unit 301. .
  • control unit 301 retrieves the server address from the transmission request and stores it in the work area [server address] of the control unit 301 (step S303). 01 extracts the program delivery address from the transmission request and stores it in the work area [program delivery address] of the control unit 301 (step S304).
  • control unit 301 calculates the transmission interface (interface I # S) to the server 10 from the work area [server address] (server address and interface ID "I #"). Is stored in the work area [S-ID] (step S305).
  • step S306 the control unit 301 transmits a transmission request to the server 10 (step S307).
  • control unit 301 extracts the distribution time from the transmission request, (The communication time) (step S308).
  • control unit 301 adds the value of the work area [delivery time] to the current time (obtained, for example, from a clock generated by using a clock generated by an operation circuit of the CPU operation clock). Is stored in the work area [transmission period] (step S309).
  • control unit 301 determines from the program bucket distribution table 300 A (FIG. 6) that the interface ID is the same as the work area [C-ID] and that the server address is the work area [server address]. , And the record whose program distribution address is the same as the work area [program distribution address] is extracted (step S310).
  • control unit 301 determines whether or not the record extracted in step S309 is present (step S311).
  • control unit 301 sends the record extracted from the program distribution table 300A in step S312. Set the value of [Transmission period] in the work area in the field of the transmission period of, and end the process.
  • the control unit 301 sets the value stored in the work area [C-ID] in step S313 to "1".
  • the value stored in the work area [server address] is set as the server ID
  • the value stored in the work area [program distribution address] is set as the server ID.
  • a record that is set as a dress and the value stored in the work area [Transparent period] is set to the transparent period is added to the program distribution table 306A, and the processing ends. .
  • FIG. 19 is a flowchart showing an example of a process of receiving a transmission request in the server 10.
  • This processing is realized, for example, by the control unit 101 (FIG. 3) of the server 10 executing a program. However, the processing may be realized by a hardware logic circuit.
  • control unit 101 waits for reception of a transmission request from the client 20.
  • the transmission request is received via the communication control unit 105 (step S401)
  • the process proceeds to step S402.
  • step S402 the 'control unit 101 stores the value obtained by adding the distribution time to the current time in the distribution period storage unit 113.
  • control unit 101 determines whether or not the transmission process of the program packet is being started (step S403). At this time, the control unit 101 terminates the transmission process if the transmission process is being started (S 403; starting), and if not, (S 403; stops) Medium), the program bucket transmission process is started (step S404), and the reception process ends.
  • FIG. 20 is a flowchart illustrating an example of a process of stopping transmission of a program bucket in the server 10.
  • This processing is realized, for example, by the control unit 101 (FIG. 3) of the server 10 executing a program. However, the processing may be configured to be realized by a hardware logic circuit. This process starts periodically.
  • control unit 101 determines whether or not the current time has reached the delivery deadline.
  • the delivery deadline stored in the storage unit 113 (current time ⁇ delivery deadline ?: step S550) 1).
  • the control unit 101 ends the processing.
  • the control unit 101 sets the distribution processing stop flag to ON (step S501). S502), the process ends.
  • FIG. 21 is a flowchart showing an example of processing for stopping relaying of program packets at the router 30 (FIG. 4). This processing is realized by program execution of a processor or signal processing of a hardware logic circuit. In addition, the process is started periodically.
  • the control unit 301 sets the program bucket distribution table 300A (Fig. 6) Then, a record whose current time has reached the transparent period (transparent period ⁇ current time) is searched, and the record is deleted (step S601). Then, the control unit 301 ends the process.
  • each client 20 receives an operation from the client operator and the like (the control unit 201 changes from the input unit 202 to the operation). Then, a transmission request (FIG. 8) is transmitted to the server 10.
  • the distribution conditions such as the server address and the program distribution address may be set in advance by the operator of the client 20 to the client 20.
  • the request is automatically obtained from the server 10.
  • FIG. 12 By downloading a download address request (FIG. 12) to the server 10 prior to the start of the download, the request is automatically obtained from the server 10.
  • FIG. 12 Such a configuration may be adopted.
  • the router 30 Upon receiving the transmission request, the router 30 (FIG. 4) executes the transmission request relay process (FIG. 18). As a result, the router 30 sends the transmission request to the server 10 and, in the program bucket distribution table 300A (FIG. 6), displays the relay information at the time of receiving the program bucket. (Interface ID, server address, program distribution address, transmission time) are set.
  • the server 10 Upon receiving the transmission request, the server 10 (FIG. 1) starts the transmission request reception processing (FIG. 19) and the program bucket transmission processing (FIG. 14). The server 10 continues to transmit the program packet (FIG. 9) by multicasting by transmitting the program bucket.
  • the router 30 Upon receiving the program packet, the router 30 executes the program bucket relay process (FIG. 15). Thus, the router 30 determines the destination interface of the program bucket according to the information stored in the program bucket distribution table 300A (FIG. 6), and sends the program packet to the client. To 20. At this time, the multicast of the program packet by the router 30 is performed by the second communication interface that has received the transmission request. This is performed only for the interface, and no program bucket is transmitted from the second communication interface that does not apply.
  • the program bucket from the server 10 reaches the client 20 which needs the program file.
  • the program bucket is not distributed to the network portion where the client 20 requiring the program file does not exist (downstream of the second communication interface).
  • the router 30 Upon receiving the transmission request, the router 30 executes the transmission request relay process (FIG. 18), relays the transmission request to the server 10, and executes the program packet distribution table 300 A. Set the relay information (record) at the time of receiving the program bucket in (Fig. 6).
  • the client 20 receives all the program buckets (divided data) through the program bucket reception process (Fig. 16), and sends a transmission request when it completes the assembly of the program file. Stop processing. If the router 30 does not receive the transmission request, the relay processing of the transmission request (Fig. 18) will not be executed. Therefore, the transmission period for the client in the program packet distribution table 306A is not updated. Therefore, the record for the client is deleted from the program distribution table 300A by the process of stopping the relay of the program bucket that starts periodically (FIG. 21).
  • the program packet is deleted from the program distribution table 300A earlier.
  • the program bucket is not relayed to client 20 corresponding to the record. This can prevent unnecessary program packets from being relayed and imposing a load on the network.
  • FIG. 22 is a diagram showing an example of a distribution sequence in a case where the above-described information distribution system is applied to distribution of content such as television broadcasting.
  • FIG. 23 is a diagram showing a TV in client 20.
  • FIG. 24 is a flowchart showing an example of a process of receiving content such as a broadcast.
  • FIG. 24 shows transmission of content such as a TV broadcast by the server 10. It is an example of processing.
  • contents such as TV broadcasts are applied as distribution targets instead of program files.
  • the number of content divisions is set to infinity.
  • a content receiving process (FIG. 23) obtained by modifying the receiving process shown in FIG. 16 is executed.
  • the server 10 executes a content transmission process (FIG. 24) obtained by modifying the transmission process of FIG. 14.
  • the viewer (the user of the client 20) starts watching and ends viewing (when finishing viewing, the transmission request is not sent).
  • View content based on content buckets (packets storing divided data into which content is divided) received by client 20 (#A) until transmission processing is stopped) can do.
  • the router (router 30A) in the second embodiment aggregates transmission requests received from the client 20 and does not relay all the transmission requests received from the client 20 to the server 10 It is configured as follows. Hereinafter, a configuration relating to such aggregation of transmission requests will be described.
  • FIG. 25 is a block diagram illustrating a configuration example of the router 3 OA that aggregates transmission requests.
  • the router 3 OA differs from the router 30 (FIG. 4) of the first embodiment in having a transmission request aggregation table storage unit 307.
  • the configuration excluding the transmission request aggregation table storage unit 307 of the router 30 A is as follows. Same as router 30.
  • Transmission request aggregation table storing unit 3 0 7 stores the transmission request aggregate table 3 0 7 A.
  • FIG. 26 is a diagram illustrating an example (data structure example) of a field configuration of the transmission request aggregation table 307 A of the router 3OA.
  • the transmission request aggregation table 307 A stores at least one record including “server address”, “program distribution address”, and “transparent period” as elements. I do.
  • the "server address” field stores the server address set in the relayed transmission request.
  • program distribution address In the field of "program distribution address", the program distribution address set in the relayed transmission request is stored.
  • the record stored in the transmission request aggregation table 307A is uniquely stored as “server address” + “program distribution address”.
  • FIGS. 27 and 28 are flowcharts showing an example of the aggregation relay processing of the transmission request in the router 30A.
  • the aggregation relay processing is executed by the control unit 301 (FIG. 25) of the router 30A.
  • the aggregation relay processing is performed between steps S306 and S307 in the transmission request relay processing (FIG. 18) described in the first embodiment. This is the same as the relay processing described above, except that 106 i is inserted.
  • step S306 if the values of [CID] and [S-ID] do not match, the process proceeds to step S306a. No.
  • step S306a the control unit 301 sets the server address in the work area [server address] according to the transmission request aggregation table 300A (Fig. 26). A record that matches the value and the value of the program delivery destination address matches the work area [program delivery address] is extracted.
  • control unit 301 determines whether there is an extracted record (step S306b). At this time, if there is no extracted record (S306b; none), the process proceeds to step S306g.
  • Step S306c the control unit 301 extracts the delivery time from the transmission request and stores it in the work area [delivery time].
  • control unit 301 determines that the transmission period defined in the extracted record satisfies the condition of “the transmission period of the corresponding record> (current time + [delivery time] Z 2)”. It is determined whether or not (step S306d).
  • step S306d if the transmission period satisfies the condition (S306d; transmission period of the record> (current time + [delivery time] Z2)), the process proceeds to step S308.
  • the control unit 301 sets the current time to The value obtained by adding the value of the work area [delivery time] is stored in the work area [transparent period] (step S306 e).
  • control unit 301 sends the transmission request aggregation table 300 A with the value of the server address matching the value of the work area [server address] and the address of the program delivery destination address. Set the value of the work area [Transmission period] in the field of the record transmission period whose value matches the work area [Program distribution address] (step S306f). Thereafter, the processing proceeds to step S307.
  • step S306g the control unit 301 extracts the delivery time from the transmission request and sets the work area [delivery time]. Time].
  • control unit 301 stores the value obtained by adding the value of the work area [delivery time] to the current time in the work area [transparent period] (step S306 h).
  • control unit 301 sets the value of the work area [server address] in the serverless field in the transmission request aggregation table 300A, In addition, the value of the work area [Program distribution address] is set in the field of the program distribution destination address, and the value of the work area [Transmission period] is set in the field of the transmission period. (Step S306i). Thereafter, the processing proceeds to step S307. In step S307, the control unit 301 transmits the transmission request to the server.
  • the remaining time until the end of the transmission period set in the transmission request aggregation table 307A is larger than a predetermined threshold (for example, (current time + [delivery time] / 2)).
  • a predetermined threshold for example, (current time + [delivery time] / 2).
  • Router 30A can coexist with router 30 (Fig. 4), which does not have the function to aggregate transmission requests.
  • the operations of the server 10, the client 20, and the router 30 are the same as those in the first embodiment, and a description thereof will be omitted.
  • the router 3OA executes the aggregation relay processing of the transmission request (FIGS. 27 and 28). In this aggregation relay processing, the router 3OA determines the relay of the transmission request to the server 10 based on the transmission period of the transmission request aggregation table 307A. If the relay of the transmission request can be aggregated into the relay of the previous transmission request, the relay of the transmission request is not performed. If the aggregation of the transmission request cannot be performed, the relay of the transmission request is performed.
  • the router 30A stores the relay status (server address, program distribution address, transmission period) in the transmission request aggregation table 300A (Fig. 26), and The relay information (interface ID, server address, program distribution address, transmission period) at the time of receiving the program bucket is set in the gram packet distribution table 300A (Fig. 6).
  • Router 30A upon receiving the program bucket from server 10 Execute the program packet relay process (Fig. 15). At this time, the router 30A determines the destination interface of the program packet according to the information set in the program packet distribution table 300A, and sends the program bucket to the client 20. Relay.
  • the client 20 When the client 20 completes the assembly of the program file through the reception process of the program bucket (Fig. 16), the client 20 transmits the transmission request (Fig. 16).
  • the router 30A If the router 30A does not receive the transmission request, it relays the transmission request (Fig.
  • the relay processing (FIG. 15) triggered by the reception of the program packet causes the client corresponding to the deleted record to perform the relay process. No relay of the program bucket to 20 is performed.
  • a client specifies a retransmission start position of a program packet
  • the server is configured to transmit a program packet from the specified retransmission start position.
  • a retransmission start position specification method is based on This can be added to the configuration of the first embodiment. Further, it can be implemented in combination with the transmission request aggregation relay processing described in the second embodiment. Hereinafter, a configuration related to such designation of the retransmission start position will be described.
  • FIG. 29 is a block diagram illustrating a configuration example of a server (server 10A) when a retransmission start position is specified.
  • the server 1OA includes a retransmission start position storage unit 114 in addition to the configuration of the server 10 (FIG. 3).
  • the retransmission start position storage section 114 is used to store the retransmission start position specified by the client.
  • the other configuration of the server 10A is the same as the configuration of the server 10 shown in FIG.
  • FIG. 30 is a block diagram illustrating a configuration example of a router (router 30B) that aggregates transmission requests when a retransmission start position is specified.
  • the router 30 B further includes a transmission request aggregation table (retransmission start position) storage unit 308 in addition to the configuration of the router 30 shown in FIG. 4.
  • the transmission request aggregation table (retransmission start position) storage unit 308 is used to store the transmission request aggregation table 308A (FIG. 31).
  • Other configurations of the router 30B are the same as those of the router 30.
  • FIG. 31 is a diagram illustrating an example (data structure example) of the field configuration of the transmission request aggregation table 308 A of the router 30 B.
  • the transmission request aggregation table 308A includes at least one record including, as elements, “server address”, “program distribution address”, “transparent period”, and “retransmission start position”. Store.
  • the server address set in the relayed transmission request is stored (stored) in the field where the "server address" is set.
  • the program distribution address set in the relayed transmission request is stored (stored).
  • the scheduled time at which the transmission of the program bucket from the server 10A due to the relay of the transmission request is terminated is stored (stored).
  • the retransmission start position set in the relayed transmission request is stored (stored).
  • Each record of the transmission request aggregation table 308 A is stored so as to be unique by “server address” + “program distribution address”.
  • FIG. 32 is a diagram illustrating an example (format configuration) of a field configuration of a transmission request applied in the retransmission position designation method.
  • the transmission request includes the "retransmission start position”. Provide additional fields for storage.
  • the sequence number of the smallest number that has not been received by the client is set in the “Retransmission start position” field. Except for the retransmission start position, each field is the same as the transmission request shown in FIG.
  • the client in the third embodiment is different from the client 20 described in the first and second embodiments except that the client has a configuration in which the retransmission start position is stored and the retransmission start position is set in the transmission request. It has a similar configuration.
  • FIG. 33 is a flowchart illustrating an example of a process of transmitting a program bucket in the server 10A according to the third embodiment.
  • the transmission process shown in FIG. 33 is the same as the transmission process shown in FIG. 14 except that steps SO 3 a to S 03 c are added to the transmission process (FIG. 14) described in the first embodiment. Is the same as The added steps are as follows.
  • step S03a the stop flag is turned off in step S03. It is performed when it is determined.
  • the control unit 101 determines whether or not the sequence number set in the work area [SQN] is smaller than the value of "n" indicating the total number of divided program files ([ SQN] ⁇ n?). At this time, if the value of [SQN] is smaller than the value of n (S03a; [SQN] ⁇ n), the process proceeds to step S04.
  • control unit 101 sets the value of [SQN] to "Start retransmission It is set to the value of the sequence number set as "position” (step S03b).
  • control unit 101 sets the value of the "retransmission start position" to n (step S03c), and returns the processing to step S03.
  • FIG. 34 is a flowchart illustrating an example of transmission processing of a transmission request of the client 20 according to the third embodiment.
  • the processing shown in FIG. 34 is performed instead of the processing shown in FIG. 17 as the transmission processing of the client transmission request.
  • the transmission process shown in FIG. 34 starts periodically.
  • the control unit 201 (FIG. 7) extracts, from the received table 200A, the records for which reception has been set to “not yet”, and among the extracted records, The sequence number is set in the work area [SQN] (step S2114).
  • control unit 201 determines whether or not there is a record in the table 207A for which reception is set to “not yet” (step S215). At this time, if there is no corresponding record (S215: none), the control unit 101 ends the processing (since all the divided data have been received).
  • control unit 101 sends a transmission request (Fig. 31) in which the value of the work area [SQN] is set as the retransmission start position to the server. It transmits to 10 (step S2 16).
  • FIG. 35 is a flowchart showing an example of the reception process of the transmission request of the server 1 OA.
  • the reception processing shown in FIG. 35 is the reception processing in the first embodiment. Steps S402a, S402b, and S402c are inserted between step S402 and step S403 in FIG. 19. Except for this point, the receiving process shown in FIG. 35 is the same as the receiving process shown in FIG.
  • step S402a the control unit 101 stores the retransmission start position set in the transmission request (FIG. 32) in the work area [R-SQN].
  • the control unit 101 determines whether the preset retransmission start position is larger than the value of [R-SQN] (retransmission start position> [R-SQN]?) (Step S402b). At this time, if the retransmission start position is equal to or less than [R-SQN] (S402b; retransmission start position ⁇ [R-SQN] :), the process proceeds to step S403. On the other hand, when the retransmission start position is larger than [R-SQN] (S402b; retransmission start position> [R-SQN]), the control unit 101 sets the work area [R-SQN] to [R-SQN]. The value (sequence number) set in [SQN] is stored as the retransmission start position (step S402c;). Thereafter, the process proceeds to step S403.
  • server 10A If the retransmission start position (sequence number) specified in the transmission request is smaller than the retransmission start position (sequence number) held in server 10A, server 10A The held retransmission start position is updated to the retransmission start position specified in the transmission request.
  • the server 1 OA when receiving a transmission request specifying a retransmission start position from a plurality of clients 20, the server 1 OA always sets the youngest sequence number as the retransmission start position. To remember.
  • FIGS. 36 and 37 are flowcharts showing an example of the aggregation relay processing of the transmission request in the router 30B in the third embodiment.
  • the aggregation relay processing shown in FIGS. 36 and 37 is similar to the steps S304 and S305 in the aggregation relay processing (FIGS. 27 and 28) of the second embodiment. 27 and FIG. 2 except that step S304a is inserted and step S306j is inserted between step S306d and step S308. This is the same as the process shown in Fig. 8.
  • step S 304 a the control unit 310 Extracts the retransmission start position set in the transmission request (Fig. 32) and sets it in the work area [SQN]. Thereafter, the process proceeds to step S305.
  • step S306j is executed when the condition of the transmission period of the record> (current time + [delivery time] / 2) is satisfied in step S306d.
  • the control unit 301 determines whether the retransmission start position of the record is larger than the value of the work area [SQN].
  • control unit 301 sets the processing to Proceed to step S308.
  • control unit 301 sets step S3 Proceed to 0 6 e.
  • the client 20 executes transmission request transmission processing (FIG. 34) triggered by the operation of the client operator, and the server 10A.
  • a transmission request (Fig. 32) specifying the retransmission start position is sent to the server.
  • the router 30 Upon receiving the transmission request, the router 30 (FIG. 4) relays the transmission request to the server 10A by relaying the transmission request (FIG. 18), and the program bucket distribution table 30 6 Set the relay information for receiving the program bucket in A.
  • the server 1 OA Upon receiving the transmission request, the server 1 OA (FIG. 29) starts the program packet transmission process (FIG. 33) by the transmission request reception process (FIG. 35). The retransmission start position specified in the transmission request is stored. Then, the 'server 10A transmits the program packets (FIG. 9) in sequence number order until the stop flag is turned on by the program packet transmission processing. to continue.
  • the server 1 ⁇ A when the server 1 ⁇ A has finished transmitting the program packet to which the last sequence number has been assigned, it then proceeds to the sequence number (specified in the transmission request) stored as the retransmission start position. Starts retransmission of the program packet from the smallest sequence number among the sequence numbers that have been assigned). As a result, it is possible to prevent the retransmitted program packet received by all clients transmitting the transmission request.
  • the router 30 When the router 30 receives the program packet, the router 30 relays the program packet (FIG. 15), and according to the information in the program packet distribution table 300A (FIG. 6), relays the program packet. Determines the destination interface of the program, and relays the program packet to client 20.
  • the client 20 periodically performs a transmission request transmission process (FIG. 34) until the assembly of the program file is completed, and continuously transmits the transmission request to the server 10.
  • the router 30 When receiving the transmission request, the router 30 relays the transmission request to the server 10A, and sets the relay information at the time of receiving the program bucket in the program bucket distribution table 300A.
  • the client 20 completes the assembly of the program file by the reception processing of the program packet, the client 20 stops the transmission processing of the transmission request. If the router 30 does not receive the transmission request, the relay processing of the transmission request is not executed. Therefore, the transmission period for the client in the program packet distribution table 306A is not updated. As a result, the corresponding record is deleted from the program bucket distribution table 300A by the process of stopping the relay of the program bucket.
  • the client 20 deleted from the program packet distribution table 300A is sent to the client 20 deleted from the program packet distribution table 300A based on the program packet relay processing.
  • the joint is not performed.
  • the router 30B can be installed in a state where it coexists with the router 30 and the router 3OA.
  • the operations of the server 1OA, the client 20 and the router 30 are as described above.
  • the router 30B determines whether or not to relay the transmission request to the server 10A by performing the aggregation process of the transmission request (FIGS. 36 and 37). Judgment (whether or not relaying can be aggregated) is determined based on the corresponding transmission period (transmission request aggregation table 307A), and if aggregation can be performed, the transmission request is not relayed. Also, in the aggregation relay processing, the router 30B stores the relay status in the transmission request aggregation table 300A and sets the relay information at the time of receiving the program packet in the program packet distribution table 306A.
  • the router 30B When the router 30B receives the program packet, it determines the interface to which the program packet is to be transmitted according to the information in the program packet distribution table 300A by relaying the program packet. Then, the program packet is relayed to the client 20 existing at the end of the determined interface.
  • the client 20 stops the transmission process of the transmission request.
  • the router 30 does not execute the relay processing of the transmission request unless receiving the transmission request. For this reason, the transmission period for the client in the program packet distribution table .306A is not updated. Therefore, the corresponding record is deleted from the program bucket distribution table 300A by the process of stopping the relay of the program packet. As a result, even when the router 30B receives the program bucket, the router 30B does not relay the program bucket to the client 20 corresponding to the deleted record.
  • the server 10 (1 OA) receives the transmission request from at least one client 20 (stop flag). (While is off), it continues to send program buckets.
  • the router 30 (30A, 30B) When the router 30 (30A, 30B) receives the program packet, the router 30 (30A, 30B) receives one of the client-side communication interfaces (second communication interface) of its own device.
  • the second communication interface (recorded in the program packet distribution table 300 A) within a predetermined period after receiving the transmission request Multicast the program bucket only from the set communication interface).
  • the control of the relay processing of the program bucket by the router 30 (30A, 30B) described above is performed while each client 20 wants to receive (distribute) the program packet from its own device. Only by transmitting a transmission request to the server 10 (10A), it can be realized.
  • the distribution range of the program packet (the broadcast range of the content) can be dynamically changed.
  • router 30A or router 30B is applied, relaying of transmission requests to the server can be aggregated, and virtually meaningless transmission requests are directed to the server. It can be prevented from being transferred. As a result, it is possible to suppress an increase in network load and the occurrence of congestion due to this.
  • the client 20A sends a transmission request specifying the retransmission start position, and the server 10A It becomes possible to start retransmission of the program bucket from the specified retransmission start position. This can prevent the server 1OA from transmitting a program bucket that does not require retransmission. Therefore, an increase in network load and the occurrence of congestion can be suppressed. Also, it is possible to shorten the download time of the client who participated in the middle of the download sequence.
  • the number of clients that can simultaneously download program files (contents) can be made infinite without increasing the number of servers and network resources.
  • the use of server resources, network resources, and router resources can be automatically and dynamically optimized according to the request status of an unspecified number of clients 20.
  • signal transmission (multicast transmission) to a route that does not require distribution does not occur.
  • the contents include various information or data including text, still images (images), moving images (videos), sounds, and combinations thereof, in addition to the program files described above.
  • the present invention is applicable to the technical field of distributing information from a server to a plurality of clients via a network.
  • a server for storing the content
  • a relay device for example, a router
  • a content is used. Applicable to receiving clients.

Landscapes

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

Abstract

サーバはコンテンツの送信要求を複数のクライアントのいずれかから受信している間、複数のコンテンツの分割データを所定の順序でマルチキャスト送信する。中継装置は、複数のクライアントと通信するための複数の第2通信インタフェースから受信される送信要求を、サーバと通信するための第1通信インタフェースへ中継する。中継装置は、第1通信インタフェースから受信される分割データを、送信要求を受信した第2通信インタフェースのみへマルチキャスト送信する。

Description

明 細 書 コンテンツ配信システム 技術分野
本発明は、 サーバからクライアン トへ例えばプログラムファイルのよ うなコンテンツを配信するシステムに関する。 背景技術
従来、 ク ライアン トがプログラムファイルのよ うなコ ンテンツをサー バからダウンロー ドする場合には、 図 3 8 に示すよ う なネッ トワーク構 成において、 サーバが、 各クライアン トに対し、 F T P (File Transfer Protocol)や H T T P (HyperText Transfer Protocol)に基づく ュニキヤ ス トによ り情報を配信する方式が広く利用されている。
ュニキャス トによる配信方式では、 多数のクライアン トが同時にダウ ンロ一 ド要求をサーバに対して行う と、 サーバやその周辺のネッ ト フ一 ク設備が輻輳する。 この問題を解消する方法と して、 次のよ う な方法が め 。
( 1 )サーバと ク ライアン ト との間にキヤ ッシュサーバを設置する方法 (第 1 の従来方法、 図 3 9参照、 また、 例えば特許文献 1参照)。 第 1 の 従来方法では、 キャッシュサーバがコンテンツをキャッシュ し、 ク ライ アン トに対してキヤ ッシュされたコンテンツを配信するこ とで、 ク ライ アン トからのダウンロー ド要求がサーバに集中するのを防止する。
( 2 ) I Pマルチキャス トによる配信方法(第 2の従来方法、 図 4 0参照)。 第 2の従来方法では、 サーバがコンテンツをマルチキャス ト し、 このコ ンテンッを中継サーバが受信する。 中継サーバは自装置のマルチキャス トの到達範囲に情報をマルチキャス トする。 これによつて、 多数のクラ イアン トからのダウンロー ド要求がサーバに集中するこ とが防止される また、 本願発明に関連する先行技術文献情報と して、 特許文献 2 に開 示された技術がある。
特許文献 1
特開 2 0 0 1 — 2 0 2 3 3 0号公報
特許文献 2
特開 2 0 0 0— 1 2 5 2 7 7号公報
しかしながら、 上述した第 1及び第 2の従来方法には次の問題点があ つに。
第 1及び第 2の従来方法が適用された場合には、 中継サーバやキヤッ シュサーバが必要となる。 この場合には、 中継サーバやキャ ッシュサー バ間で配信対象のコンテンツが同一であるこ とを保証する機能が必要と なる。 このため、 コス トが上昇する。
また、 第 1及ぴ第 2の従来方法では、 クライアン トの配置に応じて、 中継サーバやキヤッシュサーバの配置替えや増設が必要となる。 従って、 コス トが上昇する。
また、 第 1及び第 2の従来方法では、 中継サーバ(キャッシュサーノ ) がオリ ジナルのサーバからコンテンツをー且ダウンロー ドするので、 こ のダウンロー ドが失敗する と、 クライアン トへコ ンテンツを配信するこ とができない。
また、 第 2の従来方法では、 マルチキャス ト送信されたバケツ トによ るネッ トワークの擾乱を防止するため、 マルチキャス トバケツ トの到達 範囲は予め決められている。 このため、 全ての配信先のクライアン トに コンテンツを配信するには、 マルチキャス ト到達範囲毎に中継サーバが 必要となる。
また、第 2の従来方法では、 クライアン ト側の受信の要否に係わらず、 配信先全域へコンテンッバケツ トが到達する。 発明の開示
本発明の目的の一つは、 上述したよ うなキヤッシュサーバや中継サー バを必要と しないコンテンツ配信技術を提供するこ とである。 また、 本発明の目的の一つは、 不要なデータがネッ トワークに送信さ れるのを抑えるこ とができるコンテンツ配信技術を提供するこ とである。
また、 本発明の目的の一つは、 サーバに多数の送信要求が集中するの を抑えるこ とができるコンテンツ配信技術を提供するこ とである。
本発明の第 1 の態様は、 クライアン トから所定の時間間隔で周期的に 送信されるコンテンツの送信要求を、 複数のクライアン トのいずれかか ら受信している間、 前記コンテンツの分割によ り生成され且つ夫々にシ 一ケンス番号が付与された複数のコンテンツの分割データを所定の順序 でマルチキャス ト送信し続けるサーバと、
複数のク ライアン ト と通信するための各第 2通信イ ンタフェースから 受信される前記送信要求を前記サーバと通信するための第 1通信イ ンタ フエースへ中継する制御を行う 第 1 中継制御手段と、
前記送信要求を受信した第 2通信イ ンタフェースの識別情報を含むコ ンテンッの中継条件情報を記憶手段に設定する中継条件設定手段と、 前記第 1通信イ ンタフェースから受信される前記分割データを、 前記 記憶手段に識別情報が格納されている第 2通信イ ンタ フェースのみへマ ルチキャス ト送信する制御を行う第 2中継制御手段と、 を含む中継装置 と
を備えるコンテンツ配信システムである。
第 1 の態様によれば、 サーバと各クライアン ト との間でコンテンツ(分 割データ)と送信要求との中継処理を行う 中継装置において、 送信要求を 受信した第 2通信イ ンタフェースのみから分割データがマルチキャス ト される。 このため、 分割データを必要と しない範囲に分割データがマル チキャス ト されるこ とを抑えることができる。 これによつて、 ネッ トヮ ークの負荷上昇や輻輳を防止することができる。
本発明における中継装置は、 例えば、 ルータやレイヤ 3 スィ ッチのよ う な集線装置(スィ ッチ)であり 、 従来技術における中継サーバやキヤッ シュサーバのよ う な、 ク ライアン ト との間で要求と応答とのやり と り を 行う装置と異なる。 好ま しく は、 第 1 の態様における中継条件設定手段は、 送信要求を受 信した第 2通信イ ンタフェースの識別情報と、 この第 2通信イ ンタ フエ ースへの分割データの送信の終了予定時刻とを含むコンテンツの中継条 件情報を前記記憶手段に設定し、
前記第 2 中継制御手段は、 前記終了予定時刻が過ぎている第 2通信ィ ンタ フエースへ分割データが送信されないよ う に、 分割データの中継を 制御する。
このよ う にすれば、 クライアン トが分割データの全てを受信し終わつ た後でも、 当該第 2通信インタフェースから分割データがマルチキャス ト されるこ とを防止することができる。
好ま しく は、 第 1 の態様における中継条件設定手段は、 送信要求が受 信される毎に、 前記所定の時間の 2倍以上の時間を現在時刻に加えて前 記終了予定時刻を設定する。
このよ う にすれば、 送信要求を送信し続けているクライアン トに対し、 対応する第 2通信イ ンタフェースを介して分割データを送信するこ とが でき、 このク ライアン トが全ての分割データを受信した後には、 このク ライアン トが送信要求の送信を停止するこ とで、 終了予定時刻が満了し、 その後の分割データの送信を防止することができる。
好ま しく は、 第 1 の態様におけるサーバは、 送信要求が受信される毎 に、 前記所定の時間の 2倍以上の時間を現在時刻に加えてコ ンテンツの 配信期限を更新し、 この配信期限が満了する前に次の送信要求を受信し なかつた場合には、 分割データのマルチキャス ト送信を停止する。
このよ う にすれば、 配信期限が過ぎた場合には、 サーバの分割データ のマノレチキャス トが停止するので、 不要な分割データのマルチキャス ト によるネッ トワークの負荷上昇や輻輳の発生を抑えることができる。 好ま しく は、 第 1 の態様における中継装置は、 送信要求が受信される 毎に、 この送信要求を識別するための情報と、 前記所定の時間の 2倍の 時間を現在時刻に加えて得られる当該送信要求を受信した第 2通信イ ン タフエースに対する分割データの送信の終了予定時刻とを含む送信要求 の中継条件情報を前記記憶手段に設定する第 2中継条件設定手段をさ ら に含み、
前記第 1 中継制御手段は、 送信要求を中継する場合に、 この送信要求 と同じ内容を持つ送信要求の中継条件情報を参照.し、 前記所定の時間を 現在時刻に加えた時刻が前記中継条件情報に含まれる前記終了予定時刻 を超えない場合には、 当該送信要求の中継を停止し、 そうでない場合に は、 当該送信要求を中継する。
このよ う にすれば、 中継装置が複数の送信要求を集約することができ る。 即ち、 例えば、 或るクライアン トからの送信要求を他のクライアン トからの送信要求に集約することができる。 このため、 必要のない送信 要求がサーバへ向けて送信されるのを抑えることができる。 これによつ て、 ネッ トワーク の負荷上昇や輻輳を抑えるこ とができる。 また、 複数 の送信要求がサーバに集中するのを抑えるこ とができる。
好ましく は、 第 1 の態様における送信要求には、 前記所定の時間の 2 倍以上の時間を示す時間情報がクライアン トで設定され、
前記中継条件設定手段は、 送信要求が受信された場合に、 この送信要 求内に設定されている時間情報で示される時間を現在時刻に加えて得ら れる前記終了予定時刻と、 当該送信要求を受信した第 2通信インタフエ ースの識別情報と を含むコンテンッ中継条件情報を前記記憶手段に記憶 する。
このよ う にすれば、 分割データの送信の終了予定時刻をク ライ アン ト 側から制御するこ とができる。
好ましく は、 第 1 の態様における送信要求には、 前記所定の時間の 2 倍以上の時間を示す時間情報がクライアン トで設定され、
前記サーバは、 送信要求が受信される毎に、 送信要求に設定されてい る時間情報で示される時間を現在時刻に加えてコ ンテンツの配信期限を 更新し、 この配信期限が満了する前に次の送信要求を受信しなかった場 合には、 分割データのマルチキャス ト送信を停止する。
このよ う にすれば、 コンテンツの配信期限をクライアン ト側から制御 することができる。
好ま しく は、 第 1 の態様における第 2中継条件設定手段は、 送信要求 が受信される毎に、 この送信要求を識別するための情報と、 この送信要 求内に設定された前記時間情報で示される前記所定の時間の 2倍の時間 を現在時刻に加えて得られる前記終了予定時刻とを含む送信要求の中継 条件情報を前記記憶手段に設定し、
前記第 1 中継制御手段は、 送信要求を中継する場合に、 この送信要求 と同じ内容を持つ送信要求の中継条件情報を参照し、 前記時間情報で特 定される時間の半分を現在時刻に加えた時刻が前記中継条件情報に含ま れる前記終了予定時刻を超えない場合には、 当該送信要求の中継を停止 し、 そうでない場合には、 当該送信要求を中継する。
このよ う にすれば、 中継装置で受信'される送信要求の集約をク ライア ン ト側から制御するこ とができる。
好ま しく は、 第 1 の態様におけるサーバは、 ク ライアン トからのコン テンッのダウンロ ー ドア ドレス要求に応じて、 ク ライアン トがコ ンテン ッをダウンロー ドするためのァ ド レス情報と、 前記時間情報とを含むダ ゥンロ ー ドア ド レス応答を要求元のクライアン トに送信し、
前記中継装置及び前記サーバは、 前記時間情報で示される時間の半分 以下の時間間隔で周期的にクライアン トから送信され、 前記ア ド レス情 報と前記時間情報とが設定された送信要求を受信する。
このよ う にすれば、 ク ライアン トによって送信要求に設定される時間 情報等をサーバ側で制御することができる。
好ま しく は、 第 1 の態様におけるサーバは、 前記複数のコンテンツの 分割データをシーケンス番号順で送信し、
各クライアン トから、 シーケンス番号が指定された送信要求を受信し、 最後のシーケンス番号が付与された分割データを送信し終わった後に、 前記送信要求で指定されたシーケンス番号のう ち最も若いシーケンス番 号から、 分割データの再送を開始する。
このよ う にすれば、 各クライアン トは、 途中の分割データから配信を 受けるこ とができる。 これによつて、 送信を要求しているク ライ アン ト のいずれにも不要な(受信済みの)分割データがマルチキャス ト されるこ とを抑えるこ とができる。 従って、 ネッ ト ワークの負荷上昇や輻輳の発 生を抑えるこ とができる。
本発明の第 2の態様は、 配信対象のコンテンツの分割によ り生成され た複数のコンテンツの分割データを記憶する記憶手段と、
クライアン トから所定の時間間隔で周期的に送信されるコンテンツの 送信要求を受信する受信手段と、
送信要求を少なく と も一つのクライアン トから受信している間、 前記 複数のコンテンツの分割データを所定の順序でクライアン トへ向けてマ ルチキャス ト送信し続ける送信手段と
を含むコンテンツ配信サーバである。
好ま しく は、 第 2 の態様は、 各分割データには、 シーケンス番号が付 与され、
前記送信手段は、 複数のコンテンツの分割データをシーケンス番号順 で送信し、
前記受信手段は、 クライアン トでシーケンス番号が指定された送信要 求を受信し、
前記送信手段は、 最後のシーケンス番号が付与された分割データを送 信し終わった後に、 前記送信要求で指定されたシーケンス番号の う ち、 最も若いシーケンス番号から、 分割データの再送を開始するよ う に構成 される。
好ま しく は、 第 2の態様は、 送信要求が受信される毎に、 前記所定の 時間の 2倍以上の時間を現在時刻に加えてコ ンテンツの配信期限を更新 し、 この配信期限が満了する前に次の送信要求を受信しなかった場合に は、 分割データのマルチキャス ト送信を停止する。
好ま しく は、 第 2の態様は、 前記送信要求には、 前記所定の時間の 2 倍以上の時間を示す時間情報がクライアン トで設定され、
送信要求が受信される毎に、 送信要求に設定されている時間情報で示 される時間を現在時刻に加えてコンテンツの配信期限を更新し、 この配 信期限が満了する前に次の送信要求を受信しなかった場合には、 分割デ ータのマルチキャス ト送信を停止する送信制御手段をさ らに含むよ う に 構成される。
好ま しく は、 第 2の態様は、 クライアン トからのコンテンツのダウン ロー ドア ドレス要求に応じて、 クライアン トがコ ンテンツをダウンロー ドするためのア ドレス情報と、 前記時間情報と を含むダウンロー ド応答 を要求元のクライアン トに送信する手段をさ らに含み、
前記受信手段は、 前記時間情報で示される時間の半分以下の時間間隔 で周期的にク ライアン トから送信され、 前記ア ドレス情報と前記時間情 報とが設定された送信要求を受信する。
本発明の第 3の態様は、 複数のクライアン トのいずれかからコンテン ッの送信要求を受信している間、 コンテンツをマルチキャス ト送信する サーバと、
複数のクライアン ト と通信するための各第 2通信イ ンタフェースで受 信されるク ライアン トからの送信要求を前記サーバと通信するための第 1通信イ ンタ フェースから前記サーバへ向けて中継する制御を行う第 1 中継制御手段と、
前記送信要求を受信した第 2通信イ ンタフェースの識別情報を含むコ ンテンッの中継条件情報を記憶手段に格納するコ ンテンツ中継条件設定 手段と、
前記第 1通信イ ンタフェースで受信される前記サーバからのコンテン ッを、 前記記憶手段に識別情報が格納されている第 2通信イ ンタフニ一 スのみからマルチキャス ト送信する制御を行う第 2中継制御手段と、 を 含む中継装置と
を備えるコンテンツ配信システムである。
本発明の第 4の態様は、 クライアン トから所定の時間間隔で周期的に 送信されるコンテンツの送信要求を、 複数のクライアン トのいずれかか ら受信している間、 前記コンテンツの分割によ り生成され且つ夫々にシ 一ケンス番号が付与された複数のコ ンテンツの分割データを所定の順序 でマルチキャス ト送信し続けるサーバと通信するための第 1通信ィ ンタ フェースと、 複数のクライアン ト と通信するための複数の第 2通信イ ン タ フエース とに接続される通信制御部と、
各第 2通信イ ンタ フェースから受信される前記送信要求を前記第 1通 信イ ンタ フェースへ中継する制御を行う第 1 中継制御手段と、
前記送信要求を受信した第 2通信イ ンタ フェースの識別情報を含むコ ンテンッの中継条件情報を記憶手段に設定する中継条件設定手段と、 前記第 1通信イ ンタ フェースから受信される前記分割データを、 前記 記憶手段に識別情報が格納されている第 2通信イ ンタ フェースのみにマ ルチキャス ト送信する制御を行う第 2 中継制御手段と、
を含む中継装置である。
好ま しく は、 第 4の態様における中継条件設定手段は、 送信要求を受 信した第 2通信イ ンタ フェースの識別情報と、 この第 2通 イ ンタ フエ ースへの分割データの送信の終了予定時刻とを含むコンテンツの中継条 件情報を前記記憶手段に設定し、
前記第 2 中継制御手段は、 前記終了予定時刻が過ぎている第 2通信ィ ンタ フェースへ分割データが送信されないよ う に、 分割データの中継を 制御する。
好ま しく は、 第 4の態様における中継条件設定手段は、 送信要求が受 信される毎に、 前記所定の時間の 2倍以上の時間を現在時刻に加えて前 記終了予定時刻を設定する。
好ま しく は、 第 4 の態様は、 送信要求が受信される毎に、 この送信要 求を識別するための情報と、 前記所定の時間の 2倍の時間を現在時刻に 加えて得られる当該送信要求を受信した第 2通信イ ンタ フ ェース に対す る分割データの送信の終了予定時刻とを含む送信要求の中継条件情報を 前記記憶手段に設定する第 2 中継条件設定手段をさ らに含み、
前記第 1 中継制御手段は、 送信要求を中継する場合に、 こ の送信要求 と同じ内容を持つ送信要求の中継条件情報を参照し、 前記所定の時間を 現在時刻に加えた時刻が前記中継条件情報に含まれる前記終了予定時刻 を超えない場合には、 当該送信要求の中継を停止し、 そうでない場合に は、 当該送信要求を中継するよ うに構成される。
好ま しく は、 第 4の態様は、 送信要求には、 前記所定の時間の 2倍以 上の時間を示す時間情報がク ライアン トで設定され、
前記中継条件設定手段は、 送信要求が受信された場合に、 この送信要 求内に設定されている時間情報で示される時間を現在時刻に加えて得ら れる前記終了予定時刻と、 当該送信要求を受信した第 2通信インタフエ ースの識別情報とを含むコ ンテンッ中継条件情報を前記記憶手段に記憶 するよ うに構成される。
好ま しく は、 第 4 の態様は、 送信要求が受信される毎に、 この送信要 求を識別するための情報と、 この送信要求内に設定された前記時間情報 で示される前記所定の時間の 2倍の時間を現在時刻に加えて得られる前 記終了予定時刻とを含む送信要求の中継条件情報を前記記憶手段に設定 する第 2中継条件設定手段をさ らに含み、
前記第 1 中継制御手段は、 送信要求を中継する場合に、 この送信要求 と同じ内容を持つ送信要求の中継条件情報を参照し、 前記時間情報で特 定される時間の半分を現在時刻に加えた時刻が前記中継条件情報に含ま れる前記終了予定時刻を超えない場合には、 当該送信要求の中継を停止 し、 そうでない場合には、 当該送信要求を中継するよ う に構成される。 好ま しく は、 第 4の態様における受信手段は、 クライアン トがサーバ から通知されたコンテンツをダウンロー ドするためのァ ドレス情報と前 記時間情報とを含み、 且つ前記時間情報で示される時間の半分以下の時 間間隔で周期的にクライアン トから送信される送信要求を受信する。 図面の簡単な説明
図 1 は、 本発明によるコンテンツ配信システムの全体構成の例を示す 図であり、
図 2 は、 クライアン トによるコンテンツ(例えばプログラム)のダウン ロー ドの手順の例を示すシーケンス図であり 、
図 3 は、 サーバの構成例を示すブロ ック図であ り 、
図 4 は、 ルータ (中継装置)の構成例を示すブロ ック図であ り 、
図 5 は、 ルータのネッ ト ワークイ ンタフェースの構成例を示す図であ り 、
図 6 は、 プログラムパケッ ト配信テーブルのフィール ド構成例を示す 図であ り 、
図 7 は、 ク ライ アン ト の構成例を示すブロ ック図であ り 、
図 8 は、 送信要求のフィール ド構成例を示す図であ り 、
図 9 は、 プロ グラムバケツ トのフィール ド構成例を示す図であ り 、 図 1 0 は、 プロ グラムフ ァイルの分割及び再構成方法を示す図であ り 、 図 1 1 は、 ク ライアン トが配信条件をサーバから 自動的に入手する場 合のシーケンスを示す図であ り 、
図 1 2は 、 ダウンロー ド、ァ ド レス要求のフ ィ ール ド構成例を示す図で あ り 、
図 1 3 は 、 ダウンロー ド、了 ド レス応答のフ ィ ール ド構成例を示す図で あ り 、
図 1 4は 、 サーバによるプロ グラムバケツ トの送信処理の例を示すフ ローチャ一トであ り 、
図 1 5 は 、 ルータによ るプロ グラムパケッ トの中継処理の例を示すフ ローチャ一トであ り 、
図 1 6 は 、 ク ライアン 卜によるプロ グラムバケツ トの受信処理の例を 示すフ 一チヤ一トであ り
図 1 7 は 、 ク ライ アン 卜による送信要求の送信処理の例を示すフロー チヤ一卜であ り 、
図 1 8 は 、 ルータによる送信要求の中継処理の例を示すフローチヤ一 トであ りヽ
図 1 9 は 、 サーバによる送信要求の受信処理の例を示すフローチヤ一 トであ り 、 図 2 0は、 サーバによるプログラムパケッ トの送信停止処理の例を示 すフロ ―チャー トであり、
図 2 1 は、 ルータによるプログラムパケッ トの中継停止処理の例を示 すフロ チャー トであり、
図 2 2は、 テレビ(T V )放送のよ う なコンテンツの配信シーケンスを 示す図でありヽ
図 2 3は、 T V放送のよ う なコ ンテンツの受信処理を示すフローチヤ ー トであり 、
図 2 4は、 T V放送のよ う なコ ンテンツの送信処理を示すフローチヤ ー トでめり 、
図 2 5は、 送信要求を集約するルータ の構成例を示すブロ ック図であ り、
図 2 6は、 送信要求集約テーブルのフィ ール ド構成例を示す図であり 、 図 2 7及ぴ図 2 8は、 ルータによる送信要求の集約中継処理の例を示 すフローチヤ一トであり、
図 2 9 は、 再送開始位置を指.定する方式におけるサーバの構成例を示 すブロ ック図であり、
図 3 0は、 再送開始位置を指定する方式において送信要求を集約する ルータの構成例を示すブロ ック図であり、
図 3 1 は、 再送開始位置を指定する方式において適用される送信要求 集約テーブルのフ ィ ール ド構成例を示す図であり、
図 3 2は、 再送開始位置を指定する方式で適用される送信要求のフィ 一ルド構成例を示す図であり 、
図 3 3は、 再送開始位置を指定する方式でのサーバによるプログラム バケツ トの送信処理の例を示すフローチャー トであり 、
図 3 4は、 再送開始位置を指定する方式でのク ライ ア ン ト の送信要求 の送信処理の例を示すフローチヤ一トであり、
図 3 5は、 再送開始位置を指定する方式でのサーバの送信要求の受信 処理の例を示すフローチヤ一トであり、 図 3 6及ぴ図 3 7は、 再送開始位置を指定する方式でのルータの送信 要求の集約中継処理の例を示すフローチヤ一 トであり 、
図 3 8は、 従来技術の説明図であり 、
図 3 9は、 従来技術の説明図であり、 ' 図 4 0は、 従来技術の説明図である。 発明を実施するための最良の形態
以下、 図面を参照して本発明の好適な実施の形態について説明する。 実施の形態における構成は例示であり 、 本発明は実施の形態の構成に限 定されない。
〔第 1実施形態〕
以下、 本発明による情報配信システムの第 1実施形態について説明す る。
〈全体構成〉
図 1 は、 本発明による情報配信システムの実施形態の全体構成の例を 示す図である。 図 1 には、 本発明のサーバに相当するサーバ(SERVER) 1 0 と、 本発明のクライア ン トに相当する複数のク ライアン ト (CL I ENT) 2 0 と、 本発明の中継装置に相当する複数のルータ (ROUTER) 3 0 とを含む I P ( I nt ernet Prot o co l )ネッ 卜ワーク力 S示されてレヽる。
サーバ 1 0及ぴ少なく と も一つのルータ 3 0は、 I Pネッ ト ワークに おいて、 サーノ 1 0をルー ト と したツ リ ー状のネッ トワーク · トポロジ を構成するよ う に配置される。 サーバ 1 0及びルータ 3 0は、 バケツ ト を I Pマ/レチキャス ト又はブロー ドキャス ト (以下、 単に 「マノレチキャス ト」 と表記)で送信可能に構成されている。 そして、 各クライアン ト 2 0 は、 サーバ 1 0又はいずれかのルータ 3 0のマルチキャス ト ' ドメイン ( I Pマルチキャス トによる通信でバケツ トが到達する範囲)内に配置さ れる。 以上のよ う なネッ トワーク ' トポロジによ り 、 各クライアン ト 2 0は、 サーバ 3 0力 らマルチキャス ト又はブロー ドキャス トによ り配信 される情報( 「コンテンツ」 とも表記)を、 受信することができる。 なお、 サーバ 1 0 のマルチキャス ト · ドメイ ン内に位置する各ク ライアン ト 2 0は、 サーバ 1 0から直接、 或いは、 従来型のルータ 4 0 を介して、 サ ーバ 3 0からマルチキャス ト されるコンテンツを受信するこ とができる また、 サーバ 1 0, クライアン ト 2 0, 及ぴルータ 3 0は、 サーバ 1 0 —ルータ 3 0間, ルータ 3 0間, ルータ 3 0 —クライアン ト 2 0間, サーバ 1 0—クライアン ト 2 0間の夫々において、 双方向で通信可能に 構成される。
サーバ 1 0は、 プログラムファイルのよ う な、 各ク ライアン ト 2 0へ 配信すべきコ ンテンツを蓄積、 又は他の装置で管理するこ とができる。 サーバ 1 0は、 少なく とも一つのクライアン ト 2 0からの配信要求(送信 要求)に対して、 コンテンツが格納されたバケツ トをマルチキャス トする 各クライアン ト 2 0は、 コ ンテンツの提供を望む場合には、 サーバ 1 0宛に、 コンテンツの配信要求を送信する。 各ク ライアン ト 2 0は、 サ ーパ 1 0から配信されるコンテンツを受信し、 それを利用してクライア ン ト 2 0 のユーザに対し、 サービスを提供するこ とができる。
ルータ 3 0 は、 クライアン ト 2 0からの配信要求をサーバ 1 0へ向け て中継し、 サーバ 1 0からのコンテンツを格納したバケツ トを中継する。
以上のよ う なシステムは、 例えば、 サーバ 1 0 に蓄積されたコンテン ッと してのプログラム(例えば、 V o I Pモデムの基本プログラム)を、 ク ライアン ト 2 0 からの配信要求に対して配信する (各ク ライアン ト 2 0がサーバ 1 0力、らコンテンツをダウンロー ドする)ために適用する こ とができる。
〈ダウンロー ドシーケンス〉
図 2は、 図 1 に示したよ う な情報配信システムにおいて実行されるダ ゥンロー ドシーケンスの例を示す図である。 図 2には、サーバ 1 0から、 クライアン ト 2 0 に相当するクライアン ト # Aへコンテンツと してのプ ログラムが格納されたバケツ ト ( 「プログラムバケツ ト」 と称する)の配 信が開始されてから終了するまでにおけるシーケンスの例が示されてい る。 図 2 において、 ク ライアン ト # Aは、 ルータ 3 0 に相当するルータ # 2及びルータ # 1 を介してサーバ 1 0 に接続されている。
コ ンテンツ と してのプロ グラムは、 複数個のセグメ ン トに分割され、 各セグメ ン ト を格納する複数のプロ グラムパケッ トが用意される。 各プ ロ グラ ムパケッ トには、 連続番号(シーケンス番号)が付与される。
サーバ 1 0 は、 少なく と も一つのク ライアン ト 2 0 (図 2では、 各ク ラ ィ ァン ト # , # 8, # 〇, # )から送信要求を受信してぃる間は、 こ の よ う な複数のプロ グラムバケツ トをシーケンス番号順で且つ周期的にマ ノレチキャス ト し続ける。
各ク ライアン ト (例えば、 ク ライ アン ト # A )は、 プロ グラムパケッ ト の配信(プロ グラムのダウンロー ド)を希望する場合には、 その間、 送信 要求を周期的に送信し続ける。 ク ライアン ト # Aから送信される送信要 求は、 ルータ # 2及びルータ # 1 を経て、 サーバ 1 0 に到達する。
このと き、 ルータ # 2及ぴ # 1 では、 ク ライアン ト # Aからの送信要 求を受信した通信イ ンタ フ ェースが記憶され、 ルータ # 1 及ぴ # 2 は、 サーバ 1 0 からのプロ グラムバケツ トを受信した場合に、 記憶している 通信イ ンタフェースからプロ グラムパケッ トを送出する。
これによつて、 ク ライアン ト # Aは、 サーバ 1 0からのプログラムパ ケッ ト を受信する こ とができ る。 そして、 ク ライアン ト # Aは、 分割さ れたすべてのプロ グラムの分割データを受信した場合には、 プロ グラム バケツ トの送信要求を終了する。
さ らに詳細に説明する と、 ク ライ アン トは、 サーバに対して送信要求 を送る。
送信要求を受信したルータは、 送信要求をサーバに送る と と もに、 送 信要求内のサーバア ド レスを送信元と し、 且つプロ グラム配信先ァ ドレ スを宛先とするプロ グラムバケツ トを、 送信要求を受信したイ ンタフエ ースから送信でき る よ う に、 フィルタ リ ングを設定する。
サーバは、 送信要求を受信する と、 プロ グラムが所定数で分割され、 夫々に連続するシーケンス番号が付与された複数の分割データの夫々 を プログラムバケツ トで、 サイク リ ックに繰り返しマルチキャス トで送信 する。
ルータは、プログラムバケツ トを受信すると、 フィルタ リ ングに従い、 自装置の下流へプログラムバケツ トを送信する。
ク ライアン トは、 プログラムバケツ トを受信する と、 そのシーケンス 番号を元にプログラムを再構築する。 '
クライアン トは、 プログラムの再構築が完了するまで、 第 1 の所定時 間 "T O " 間隔で、 送信要求をサーバに送る。
サーバは、 送信要求を第 2 の所定時間 " T 1 " が経過するまでの間に 受信しない場合には、 プログラムパケッ トの送信を停止する。
ルータは、 次の送信要求を第 3の所定時間 " T 2 " が経過するまでの 間に受信しなかったイ ンタフェースがある場合には、 そのイ ンタフエ一 スへのプログラムバケツ トの送信を停止するよ う にフィルタ リ ングを設 定する。
このとき、 T 0 ≤ T 1 / 2 , T O ≤ T 2 / 2 とするのが好ましい。
特に、 T 1 をプログラムの 1 サイ クルの送信時間と し、 T 1 = T 2 = T 0 * 2で第 1〜第 3の所定時間を予め決定し、 サーバからクライアン- トに対するダウンロー ド応答でクライアン トに T 0 を指定し、 ク ライア ン トからルータへ送信要求で T 2を指定するのが好ま しい。
〈構成〉
次に、 上述したサーバ 1 0, ルータ 3 0及ぴクライアン ト 2 0 の夫々 の構成について説明する。
《サーバの構成》
図 3は、サーバ 1 0 の構成例を示すブロ ック図である。サーバ 1 0は、 例えば、 パーソナルコ ンピュータ (P C )やワークステーショ ン(W S )の よ う な汎用のコンピュータ, 或いは専用のサーバマシンのよ うな専用の コンピュータを用いて構成される。
図 3 に示すよ う に、 サーバ 1 0は、 制御部 1 0 1 を中心と して、 この 制御部 1 0 1 に入力部 1 0 2 と、 出力部 1 0 3 と、 プログラムファイル 格納部 1 0 4 と、 通信制御部 1 0 5 と、 自ア ド レス記憶部 1 0 6 と、 配 信時間記憶部 1 0 7 と、 プロ グラム配信ア ド レス記憶部 1 0 8 と、 プロ グラムフアイル名記憶部 1 0 9 と、 分割サイズ記憶部 1 1 0 と、 分割総 数記憶部 1 1 1 と、 停止フラグ記憶部 1 1 2 と、 配信期限記憶部 1 1 3 とが夫々接続された装置と して構成される。
入力部 1 0 2は、 キーボー ドやポインティ ングデバイス(マウス等)の よ う な入力装置と接続され、 操作者の要求やデータを受け付けて、 制御 部 1 0 1 に与える機能を持つ。
出力部 1 0 3 は、 ディ スプレイやプリ ンタのよ う な出力装置と接続さ れ、 出力装置に対して出力対象のデータを与える。 これによつて、 操作 者へサーバ 1 0 の状況を提示するこ とができる。
制御部 1 0 1 は、 サーバ 1 0が有する様々なアプリ ケーショ ンを実行 し、 当該サーバ全体を制御する。 制御部 1 0 1 は、 例えば、 C P U等の プロセッ.サ, メインメモリ ( R A M等 : 例えば、 作業領域と して利用され る), 補助記憶( R O M, ハー ドディ スク等、 プログラムやデータの格納 領域と して使用される)等を備え、 補助記憶に記憶された様々なプログラ ム(O S , アプリ ケーショ ンプロ グラム)を実行するこ と によって、 サ一 バ 1 0全体の制御を行う。
通信制御部 1 0 5は、 クライアン ト 2 0およびルータ 3 0 との通信を 制御する。 通信制御部 1 0 5 は、 例えばネッ トワークイ ンタ フェース装 置を用いて構成される。
プロ グラムファイル格納部 1 0 4 は、 配信対象の 「コンテンツ」 を格 納する機能である。 プログラムフ ァ イ ル格納部 1 0 4は、 ハー ドデイ ス ク等の様々な不揮発性の記録媒体を用いて構成するこ とができる。
《ルータ (中継装置)の構成》
図 4は、 ルータ (中継装置) 3 0 の構成例を示すブロ ック図である。 ル ータ 3 0 と して、 ルータ装置やレイヤ 3 スィ ッチを適用するこ とができ る。 ルータ 3 0は、 制御部 3 0 1 を中心と して、 この制御部 3 0 1 に、 入力部 3 0 2 と、 出力部 3 0 3 と、 ルーティ ング情報記憶部 3 0 4 と、 通信制御部 3 0 5 と、 プログラムパケッ ト配信テープル記憶部 3 0 6が 接続された装置と して構成される。
入力部 3 0 2は、 キーボー ドゃポインティ ングデバイスのよ う な入力 装置と接続され、 操作者の要求を受け付ける。
出力部 3 0 3は、 ディ スプレイやプリ ンタのよ う な出力装置と接続さ れ、 操作者へルータ 3 0 の状況を提示する。
制御部 3 0 1 は、 ルータ 3 0がもつ記憶装置に記憶された様々なァプ リ ケーシヨ ン(プログラム)を実行し、 当該ルータ全体を制御する。 制御 部 2 0 1 は、 例えば C P Uのよ うなプロセッサ, 主記憶(作業領域と して 使用される),補助記憶(プロ グラムの格納領域等と して使用される)等か ら構成される。
通信制御部 3 0 5は、 クライアン ト 2 0、 他のルータ 3 0、 及ぴサー バ 1 0 との通信を制御する。
ルーティ ング情報記憶部 3 0 4は、 サーバ 1 0やその他の装置へのパ ケッ トを送信する場合のルーティ ング情報を記憶する。
プログラムバケツ ト配信テーブル記憶部 3 0 6 は、 プログラムパケッ ト配信テーブル 3 0 6 A (図 6 )を記憶する。
図 5 は、 ルータ 3 0が備えるネッ トワークイ ンタフェースの構成例を 示す図であり 、 ルータ 3 0に相当するルータ # i ( i は自然数)のネッ ト ワークイ ンタフェースの構成例が示されている。 .
図 5 に示すよ う に、 ルータ # i ( 3 0 )の通信制御部は、 サーバ 1 0へ 向力、う第 1 の通信イ ンタフェース と、 ク ライアン ト 2 0へ向かう少なく と も一つの第 2 の通信イ ンタフェースとに接続される。 具体的には、 ル 一タ # i は、 サーバ 1 0へ向かう第 1 の通信イ ンタフェース " I # S " と、 クライアン ト 2 0 に相当する各ク ライアン ト # A, # X , 及ぴ # Y へそれぞれ向かう第 2 の通信イ ンタフェース " I # C a ", " I # C x ", 及ぴ " I # C y " に接続される。
ルータ # i は、 例えば、 クライアン ト # Aからの送信要求をサーバ 1 0へ向けて送信する場合には、 イ ンタフェース I # C aで受信した送信 要求をインタフェース I # Sからサーバ 1 0へ向けて送信する。 図 6 は、 ルータ 3 0のプログラムバケツ ト配信テーブル記憶部 3 0 6 に記憶されるプログラムバケツ ト配信テーブル 3 0 6 Aのデータ構造の 例(フィールド構成例)を示す図である。
図 6 に示すよ う に、 プログラムバケツ ト配信テーブル 3 0 6 Aは、 "ィ ンタフェース I D,,, "サーバア ド レス ", "プロ グラム配信ア ド レス ", "透過期間" を要素と して含む少なく とも 1つの レコー ドを格納する。 ここに、 "インタフェース I D " のフィールドには、 送信要求を受信し た通信イ ンタ フェースの識別子が格納(記憶)される。
また、 "サーバア ドレス" のフィールドには、 受信された送信要求内に 含まれたサーバァ ド レスが格納(記憶)される。
また、 "プログラム配信ア ド レス" のフ ィ ール ドには、 受信された送信 要求内に含まれたプログラム配信ァ ド レス(マルチキャス トァ ド レス)が 格納(記憶)される。
また、 "透過期間" のフ ィ ール ドには、 クライアン トへ向けられたプロ グラムパケッ トの送信を打ち切る時刻(終了予定時刻)が、 透過期間と し て格納(記憶)される。
プログラムバケツ ト酉己信テーブル 3 0 6 Aの各レコー ドは、 「イ ンタ フ ェース I D」 + 「サーバア ド レス」 + 「プログラム配信ア ドレス」 で 一意となるよ うに記憶される。
サーバァ ド レス及ぴプログラム配信ァ ド レスは、 送信要求又はプログ ラムフ ァイルを識別するための情報と して利用される。
《ク ライ アン ト の構成》
図 7は、 クライアン ト 2 0の構成例を示すブロ ック図である。 クライ アン ト 2 0は、 例えば、 V o I Pモデムのよ う なネッ トワーク上での端 末装置や、 P Cや W Sのよ う な汎用のコ ンピュータや、 I P端末と して 適用 される携帯電話や P D A (Personal Digital Assistants)のよ う な 様々なコ ンピュータ, を用いて構成される。
ク ライアン ト 2 0は、 制御部 2 0 1 を中心と して、 この制御部 2 0 1 に入力部 2 0 2 と、 出力部 2 0 3 と、 プロ グラムフ ァイル格納部 2 0 4 と、 通信制御部 2 0 5 と、 プログラムフ ァイル組み立てエ リ ア記憶部 2 0 6 と、 受信済みテーブル記憶部 2 0 7 と、 サーバア ド レス記憶部 2 0 8 と、 プログラム配信ァ ド レス記憶部 2 0 9 と、 配信時間記憶部 2 1 0 と、 分割総数記憶部 2 1 1 と、 分割サイズ記憶部 2 1 2 と、 ファイル名 記憶部 2 1 3 とが接続された装置と して構成される。
入力部 2 0 2は、 キーボー ドゃポインティ ングデバイスのよ う な入力 装置と接続され、 操作者の要求を受け付けて制御部 2 0 1 に渡す。
出力部 2 0 3は、 ディスプレイやプリ ンタのよ う な出力装置と接続さ れ、 出力装置に制御部 2 0 1 からの様々なデータや情報を出力させる。 これによつて、 操作者へクライアン トの状況を提示するこ とができる。 制御部 2 0 1 は、 様々なアプリ ケーショ ンを実行し、 当該クライアン ト全体を制御する。制御部 2 0 1 は、例えば C P Uのよ う なプロセッサ, 主記憶(R A M等、例えば作業領域と して使用される), 補助記憶(R O M , ハー ドディスク等、 プログラムやデータの格納領域と して使用される)等 から構成され、 プロセッサが補助記憶に記憶された様々なプログラム( O Sやアプリ ケーショ ンプログラム)を実行するこ とによって、 クライアン ト全体の制御を実現する。
通信制御部 2 0 5 は、 ルータ 3 0やサーバ 1 0 との通信を制御する。 通信制御部 2 0 5は、 ネッ トワーク との接続形態に応じた様々なネ ッ ト ワークイ ンタフェース装置を用いて構成される。
プログラムファイル格納部 2 0 4は、 再構成の完了したコンテンッと してのプロ グラムファイルを格納する。 プロ グラムファイルは、 ハー ド ディスク等の不揮発性の記録媒体を用いて構成される。
プロ グラムファイル組み立てエリ ア記憶部 2 0 6は、 受信した 「プロ グラムパケッ ト」 を記憶し、 再構築するための作業領域と して使用され る。 当該記憶部 2 0 6 は、 図 7に示すよ う な、 プログラムフ ァイルの各 分割データをシーケンス番号順で格納するための組み立てエリ ア 2 0 6 Aを有している。 受信済みテーブル記憶部 2 0 7は、 プログラムフ ァイルの再構成のた めにプロ グラムパケッ ト の受信状況を示す情報を格納する受信済みテー ブル 2 0 7 Aを記憶する領域と して使用される。
プログラムファイル組み立てエリ ア記憶部 2 0 6及び受信済みテープ ル 2 0 7 Aは、 例えば、 R A Mのよ う なプロセッサの作業領域と して使 用されるメモリ上に構築することができる。
〈メ ッセージ(バケツ ト)の構成〉
次に、 各クライアン ト 2 0がサーバ 1 0からコンテンツ(プロ グラムフ アイル)を得るために両者間で送受信され、 必要に応じてルータ 3 0で中 継される送信要求, 及びプロ グラムパケッ トの構成について説明する。
《送信要求》
図 8は、 クライアン ト 2 0からサーバ 1 0 へ向けて送信される 「送信 要求」 のフ ィ ール ド構成の例(フォーマツ ト構成例)を示す図である。
図 8 に示すよ う に、 送信要求のメ ッセージ(パケッ ト)は、 パラメータ と しての、 "サーバア ド レス ", "プログラム配信ア ド レス ", 及ぴ "配信 時間" を夫々格納するための複数のフィールドを有している。
こ こに、 "サーノ ア ドレス " のフィーノレ ドには、 プロ グラムフアイ /レを 格納しているサーバ 1 0のァ ドレスが設定される。
また、 "プログラム配信ア ドレス " のフィールドには、 サーバ 1 0がプ ロ グラムパケッ トを配信する と きの宛先ァ ド レス (マルチキャ ス トァ ド レス)が設定される。
また、 "配信時間" のフィールドには、 送信要求を受信した後における サーバ 1 0およびルータ 3 0 でのプロ グラムバケツ トの送信継続時間を 示す時間が、 "配信時間" と して設定される。
《プロ グラムパケッ ト》 '
図 9は、 サーバ 1 0からクライアン ト 2 0へ向けてマルチキャス ト さ れ、 必要に応じてルータ 3 0でマルチキャス ト される 「プログラムパケ ッ ト」 のフィール ド構成例(フォーマツ ト構成例)を示す図である。
図 9に示すよ う に、 プログラムパケッ トは、 パラメータ と しての、 "サ ー ノ ア ド レス ", "プロ グラム酉 3信ア ドレス ", "フアイ /レ名 ", "シーケン ス番号", "分割総数", 及び "プロ グラムファイル分割データ " を夫々格 納するための複数のフィール ドを有している。
ここに、 "サー ノ ア ドレス " のフィーノレ ドには、 プログラムフアイノレを 格納しているサーバ 1 0のァ ドレスが設定される。
また、 "プロ グラム配信ア ドレス " のフィール ドには、 サーバ 1 0 がプ ロ グラムバケツ ト を配信する と きの宛先ァ ド レス (マルチキャ ス ト ァ ド レス)が設定される。
また、 "ファイル名 " のフ ィ ール ドには、 サーバ 1 0 で管理されている 配信対象のプロ グラムフ ァイルの名称が設定される。 "フ ァイル名 " には、 プロ グラムフ ァイルのバージョ ン(版)を示す情報を含むこ とができる。
また、 "シーケンス番号" のフィール ドには、 プロ グラムファイル内で の分割データの位置を示す連続番号のいずれか一つが設定される。
また、 "分割総数" のフィール ドには、 プログラムファイルの分割総数 が設定される。
また、 "プロ グラムフ ァイル分割データ " のフィーノレ ドには、 シ一ケン ス番号に対応するプロ グラムファイルの分割データの内容が設定される。
,《プロ グラムフアイルの分割及び再構成方法》
図 1 0 は、 サー ノ 1 0及ぴク ライアン ト 2 0 における、 プロ グラムフ アイルの分割及び再構成方法の例を示す図である。
サーバ 1 0 は、 配信対象のプロ グラムファイルを、 所定の(例えばプロ グラムの設置者によ り 決定された)バケツ トサイ ズで n個( n は自然数) に分割する。 そ して、 サーバ 1 0 は、 各プロ グラムフ ァイルの分割デー タ (セグメ ン ト)を各プログラムパケッ トへ展開する。
即ち、 サーバ 1 0 は、 プロ グラムフ ァイルの分割数が n個になった場 合において、 プロ グラムファイルの i ( i は自然数)の分割データ (セグメ ン ト)をシーケンス番号 = i のプロ グラムパケッ ト と して編集し、 ク ライ アン ト 2 0へ向けて送信する。言い換えれば、サーバ 1 0 は、 η ( 0 , · · · , η — 1 )個に分割されたプロ グラムフ ァ イ ルの分割データ (セグメ ン ト) のそれぞれに対し、 連続番号(シーケンス番号 = # 0〜# i〜# n— l ) を付与し、 クライアン ト 2 0 へ向けて送信する。
クライアン ト 2 0 は、 シーケンス番号 = ' i のプログラムパケッ トを受 信する と、 組み立てエリ ア 2 0 6 A (図 7 )において、 プログラムフアイ ルの i 番目の.分割データの格納位置へ当該分割データを格納する。 この よ う に、 ク ライアン ト 2 0は、 サーバ 1 0から受信する各分割データを 組み立てエリ 了 2 0 6 A上でシーケンス番号順に並べるこ とで、 プログ ラムフ ァイルを再構成する。
〈配信条件の自動入手〉
上述した各クライアン ト 2 0は、 コンテンツの配信条件をサーバ 1 0 から 自動入手するよ う に構成するこ とができる。 図 1 1 はヽ クライアン ト 2 0に相当するク ライアン ト # Aがコンテンツと してのプログラムの 配信条件をサーバ 1 0から自動入手する場合の例を示すシ一ケンス図で
3D 。
図 1 1 に示すよ う に、 クライアン ト # Aは、 サーバ 1 0からのプロ グ ラムの配信を望む場合には、 サーバ 1 0 に対し、 プログラムのダウン口 一ドア ド レス要求(コ ンテンツの配信条件要求)のメ ッセ一ジ (パケッ ト) を送信する。
サーバ 1 0 は、 ダウンロー ドア ド レス要求を受信する と 、 これに対す るダウンロ ー ドア ド レス応答のメ ッセージ(バケツ ト)をヽ 要求元のク ラ イ アン ト # Aに送信する。
これによつて、 クライアン ト # Aは、 自身が受信するダクンロ— ドア ド レス応答に設定された配信条件(プログラム配信ァ ド レス等)に基づい て、送信要求を作成し、サーバ 1 0 へ向けて送信するこ とが可能となる。
図 1 2は、 図 1 1 に示したシーケンスにおいて、 クライアン トからサ ーバへ送信されるダウンロー ドア ドレス要求のメ ッセージ(バケツ ト)の フ ィ ール ド構成例(フォーマ ッ ト構成例)を示す図である。
ダウンロー ドア ド レス要求は、 ノ ラメータ と しての "ファイル名 " を 格納するためのフ ィ ール ドを有する。 この "フ ァイル名 " のフ ィ ール ド には、 サーバ 1 0で配信対象と して管理されているプログラムフ ァ イ ル の名称が設定される。
なお、 上述したダウンロー ドア ド レス要求のよ うなコ ンテンツの配信 条件要求には、 フ ァイル名の代わり に、 配信を所望するコ ンテンツの識 別情報が設定されるよ うに構成されていれば良い。
図 1 3は、 図 1 1 に示したシーケンスにおいて、 サーバからク ライア ン トへ送信されるダウンロー ドア ド レス応答のフ ィール ド構成の例(フ ォーマツ ト構成例)を示す図である。
ダウンロー ドア ドレス応答のバケツ ト (メ ッセージ)は、 ダウンロー ド ア ド レス要求に応じた、 ノ ラメータ と しての、 "サーバア ド レス ", "プロ グラム配信ア ド レス ", "配信時間 ", "フ ァ イ ル名 ", "分割総数", 及ぴ "分割サイズ" を夫々格納するためのフィールドを有する。
こ こ に、 "サーバァ ド レス " のフ ィ ール ドには、配信対象のコ ンテンツ、 即ちプログラムフ ァイ ルを格納しているサーバ 1 0 のァ ド レスが設定さ れる。
また、 "プログラム配信ァ ド レス " のフ ィ ール ドには、 サーバ 1 0がプ ログラムパケッ トを配信する ときの宛先ァ ドレス(マルチキャス トァ ド レス)が設定される。
また、 "配信時間" のフィールドには、 サーバ 1 0からのプログラムパ ケッ トの送信継続時間が設定される。
また、 "フ ァイル名 " のフィ ール ドには、 サーバ 1 0 で管理されている プログラムフ ァ イ ルの名称が設定される。
また、 "分割総数 " のフ ィ ール ドには、 プロ グラ ムフ ァイルが分割され た総数が設定される。
また、 "分割サイズ " のフィールドには、 プログラムファイルが分割さ れたときの 1つ当たり の分割データのサイズが設定される。
〈処理の例〉
次に、 サーバ 1 0, ルータ 3 0及びクライアン ト 2 0の夫々において 実行される各処理について説明する。 《サーバによるプログラムバケツ トの送信処理》
図 1 4は、 サーバ 1 0で実行される、 プログラムパケッ トの送信処理 の例を示すフローチヤ " トである。 当該処理は、 例えば、 サーバ 1 0の 制御部 1 0 1 (図 3 )がプログラムを実行するこ とによつて実現される。 但し、 当該処理がハ ー ドウエアロジック回路によって実現されるよ う に 構成しても良い。 当該処理は、 サーバ 1 0が送信要求を受信するこ とに よって開始する。
図 1 4において、 最初に、 制御部 1 0 1 は、 停止フラグ記憶部 1 1 3 に格納されている送信処理の停止フラグをオフに設定する (ステップ S 0 1 )。
次に、 制御部 1 0 1 は、 制御部 1 0 1 の作業領域上のシーケンス番号 の格納領域 [SQN]の値を零に設定する(ステップ S 0 2 )。
次に、 制御部 1 0 1 は、 停止フラグがオフか否かを判定し(ステップ S 0 3 )、 停止フラグがオフの間、 以下のステップ S 0 4 〜 S 0 6 の処理を 繰り返し行う。
ステ ップ S 0 4 では、 制御部 1 0 1 は、 作業領域 [SQN]の値で特定され るシーケンス番号に対応するプログラムバケツ ト (図 9 )を作成する。
このとき、 制御部 1 0 1 は、 格納部 1 0 4に格納されたプログラムフ アイルを、 分割総数記憶部 1 1 1 に予め設定されている分割総数に従つ て n個に分割し、 シーケンス番号( [SQN] )に対応する分割データを取得す る。 さ らに、 制御部 1 0 1 は、 各記憶部 1 0 6 , 1 0 8 , 1 0 9 , 1 1 1か ら、 予め設定されている 自 ァ ド レス(サーバァ ド レス), プログラム配信 ア ド レス, フアイル名, 分割総数をそれぞれ取得する。 そして、 制御部 1 0 1 は、 取得された情報と、 現在の [SQN]とが夫々設定されたプログラ ムパケッ トを作成する。
ステップ S 0 5では、 制御部 1 0 1 は、 プログラムパケッ トをプログ ラム配信ァ ドレスでマルチキャス ト送信する。
そして、 ステップ S O 6で、 制御部 1 0 1 は、 現在のシーケンス番号 に 1 を加え([SQN] = [SQN] +1 (mo d n : 但し、 nはプログラムフ ァイルの分 割総数を示す自然数))、 処理をステップ S 0 3 に戻す。
《ルータ (中継装置)によるプロ グラムパケッ トの中継処理》
図 1 5 は、 ルータ 3 0 でのプロ グラムパケッ トの中継処理の例を示す フローチヤ一トである。 この中継処理は、 ルータ 3 0 の制御部 3 0 1 (図 4 )によって実行される。 当該処理は、 プロセッサによるプロ グラム実行 によって、 或いはハー ドウエアロジック回路による信号処理によって、 実現するこ とができる。
図 1 5 において、 最初に、 制御部 3 0 1 は、 通信制御部 3 0 1 でのプ ロ グラムバケツ ト (図 9 )の受信待ち状態と なる (ステップ S 1 0 1 )。 そ して、 プログラムバケツ トが受信される と、 処理がステップ S 1 0 2 に 進む。
ステップ S 1 0 2では、 制御部 3 0 1 は、 受信されたプロ グラムパケ ッ トからサーバァ ドレスを取り 出し、 制御部 3 0 1 の作業領域 [サーバァ ドレス ]に記憶する。
次に、 制御部 3 0 1 は、 プロ グラムパケッ トからプロ グラム配信ァ ド レスを取り 出 し、 制御部 3 0 1 の作業領域 [プロ グラム配信ァ ド レス ]に 記憶する (ステ ップ S 1 0 3 )。
次に、 制御部 3 0 1 は、 プロ グラムパケッ ト配信ア ド レステーブル 3 0 6 A (図 6 )から、 サーバァ ドレスが作業領域 [サーバァ ド レス ]に設定 された値と一致し、 且つプロ グラム配信先ア ドレスが作業領域 [プロ ダラ ム配信ァ ド レス ]に設定された値と一致する レコー ドを抽出する (ステツ プ S 1 0 4 )。
次に、 制御部 3 0 1 は、 レコー ドが抽出できなければ処理を終了 し、 レコー ドが抽出できた場合には、 各レコー ドについて、 ステ ップ S 1 0 6 の処理を行う (ステ ップ S 1 0 5 )。
ステ ップ S 1 0 6 では、 制御部 3 0 1 は、 レコー ド中のイ ンタフエ一 ス I Dで特定される通信イ ンタフェースから、 プロ グラムバケツ トをマ ルチキャス ト送信する。
《ク ライアン トによるプロ グラムバケツ トの受信処理》 図 1 6 は、 クライアン ト 2 0でのプログラムパケッ ト受信処理の例を 示すフローチャー トである。 当該処理は、 例えば、 クライアン ト 2 0の 制御部 2 0 1 (図 7 )がプログラムを実行するこ とによって実現される。 但し、 当該処理がハ ー ドウエアロジック回路によって実現されるよ う に 構成しても良い。
最初に、 制御部 2 0 1 は、 サーバ 1 0宛に、 ダウンロー ドア ド レス要 求(図 1 2 )を送信する (ステップ S 2 0 1 )。
次に、 制御部 2 0 1 は、 サーバ 1 0力、らの、 ダウンロー ドア ド レス応 答(図 1 3 )の受信を待つ状態となる (ステップ S 2 0 2 )。 ダウンロー ド ァ ド レス応答が受信される と、 処理がステップ S 2 0 3に進む。
ステップ S 2 0 3では、 制御部 2 0 1 は、 ダウンロ ー ドア ド レス応答 の受信を契機と して、 プログラムファイルの組み立てエリ ア 2 0 6 Aを 初期化する。
次に、 制御部 2 0 1 は、 受信済みテーブル 2 0 7 Aを初期化する (ステ ップ S 2 0 4 ) 。
次に、 制御部 2 0 1 は、 ダウン口一 ドア ドレス応答からこれに含まれ ている配信時間を取り 出し、 配信時間記憶部 2 1 0に格納する(ステツプ S 2 0 5 )。 このとき、 制御部 2 0 1 は、 応答中の他のパラメータ (サー バア ド レス , プロ グラム配信ア ド レス, 分割総数, 分割サイズ等)を、 対 応する記憶部(記憶部 2 0 8 , 2 0 9 , 2 1 1 , 2 1 2等)に格納する こ と ができる。
次に、 制御部 2 0 1 は、 配信時間で規定された時間の 2分の 1 の周期 で、 送信要求の送信処理の起動登録を行う .(ステップ S 2 0 6 )。
次に、 制御部 2 0 1 は、 全てのプロ グラムファイルの分割データの受 信が完了したか否かを判定し(ステップ S 2 0 7 )。 全ての分割データの 受信が完了するまで、 以下のステップ S 2 0 8 〜 S 2 1 1 の処理を繰り 返し行う。
ステップ S 2 0 8では、 制御部 2 0 1 は、 プログラムパケッ トの受信 待ち状態となり 、 プログラムパケッ トを受信する と、 ステップ S 2 0 9 へ処理を進める。
ステップ S 2 0 9では、 制御部 2 0 1 は、 プログラムバケツ トからシ —ケンス番号を取り 出し、 制御部 2 0 1 の作業領域 [SQN]に当該シーケン ス番号を格納する。
ステップ S 2 1 0では、 制御部 2 0 1 は、 プログラムパケッ トに含ま れているプログラムファイルの分割データを、 プログラムファイル組み 立てエリ ァ 2 0 6 Aの当該シーケンス番号(作業領域 [SQN]の値)に従つ た対応位置に格納する。
ステップ S 2 1 1では、 制御部 2 0 1 は、 作業領域 [SQN]に格納された シーケンス番号に対応するプログラムファイルの分割データを受信した こ とを、 受信済みテーブル(受信済みテーブル記憶部 2 0 7 )に格納する。 そして、 制御部 2 ◦ 1 は、 全ての分割データの受信が終了した場合に は、 送信要求の送信処理の起動登録を解除し(ステ ップ S 2 1 2 )、 当該 処理を終了する。
《クライアン トによる送信要求の送信処理》
図 1 7は、 クライアン ト 2 0 での送信要求の送信処理の例を示すフ ロ 一チヤ一 トである。 当該処理は、 例えば、 ク ライアン ト 2 0 の制御部 2 0 1 (図 7 )がプロ グラ ムを実行するこ とによって実現される。 但し、 当 該処理がハー ドウエアロジック回路によって実現されるよ う に構成して も良い。 当該処理は、 その起動登録が行われている場合に、 所定の時間 間隔毎に周期的に起動する。 所定の時間は、 ダウンロー ドア ド レス応答 で指定された配信時間の 1 / 2の時間であり 、 これが第 1 の所定時間 " T 0 " に相当する。 一方、 配信時間は第 2及び第 3 の所定時間 " T 1 " 及 ぴ " T 2 " に相当する。 即ち、 " T 1 = T 2 = T 0 * 2 " に設定されてい る。
制御部 2 0 1 は、 送信要求の送信処理を開始する と、 送信要求(図 8 ) を生成し、 サーバ 1 0 へ向けて送信する (ステ ップ S 2 1 3 )。 即ち、 制 御部 2 0 1 は、 各記憶部 2 0 8, 2 0 9, 2 1 0力、らサーバア ド レス, プ ログラム配信ア ド レス, 及ぴ配信時間を読み出し、 これらが設定された 送信要求を作成し、 通信制御部 2 0 1 から送出させる。 そして、 当該処 理を終了する。
《ルータによる送信要求の中継処理》
図 1 8 は、 ルータ 3 0での送信要求の中継処理の例を示すフローチヤ ー トである。 当該処理は、 ルータ 3 0 の制御部 3 0 1 によって実行され る。 当該処理は、 プロセッサのプログラム実行によって、 或いはハー ド ウェアロジック回路の信号処理によって実現される。
最初に、 制御部 3 0 1 は、 送信要求(図 8 )の受信待ち状態となり (ステ ップ S 3 0 1 )、 送信要求を受信すると、 処理をステップ S 3 0 2に進め る。
ステップ S 3 0 2では、 制御部 3 0 1 は、 送信要求を受信した通信ィ ンタ フ -一スの識別子(イ ンタフェース I D )を制御部 3 0 1 の作業領域 [C-ID]に格納する。
次に、 制御部 3 0 1 は、 送信要求からサーバア ド レスを取り 出し、 制 御部 3 0 1 の作業領域 [サーバァ ド レス ]に格納する (ステップ S 3 0 3 ) 次に、 制御部 3 0 1 は、 送信要求からプログラム配信ア ド レスを取り 出し、 制御部 3 0 1 の作業領域 [プログラム配信ァ ド レス ]に格納する (ス テツプ S 3 0 4 )。
次に、 制御部 3 0 1 は、 作業領域 [サーバア ド レス ]から、 サーバ 1 0 への送信イ ンタ フェース (イ ンタ フェース I # S )を算出し(サーバァ ド レス とイ ンタフェース I D " I # S " とは予め対応付けられている)、 作 業領域 [ S- I D]に格納する (ステップ S 3 0 5 )。
次に、 制御部 3 0 1 は、 作業領域 [C - ID]の値と作業領域 [S - ID]の値と が同じか異なるかを判定する(ステップ S 3 0 6 )。 このとき、 両者が同 じ([C- ID] = [S- ID] )であれば、 処理が終了する。 これに対し、 両者が異 なる ([C- ID]≠ [S- ID] )場合には、 処理がステップ S 3 0 6 に進む。
ステップ S 3 0 6では、 制御部 3 0 1 は、 サーバ 1 0へ向けて送信要 求を送信する(ステップ S 3 0 7 )。
次に、制御部 3 0 1 は、送信要求から配信時間を取り 出し、作業領域 [配 信時間]に格納する (ステップ S 3 0 8 ) 。
次に、 制御部 3 0 1 は、 現在時刻(例えば C P Uの動作ク ロ ックの発信 回路を用いて生成される時計よ り得られる)に作業領域 [配信時間]の値 を加え、 この値を作業領域 [透過期間]に格納する (ステップ S 3 0 9 )。 次に、 制御部 3 0 1 は、 プログラムバケツ ト配信テーブル 3 0 6 A (図 6 )から、 インタフェース I Dが作業領域 [C- ID]と同じであり、 且つサー バァ ドレスが作業領域 [サーバァ ドレス]と同じであり 、 且つプログラム 配信ァ ドレスが作業領域 [プロ グラム配信ァ ドレス ]と同じである レコー ドを抽出する(ステップ S 3 1 0 )。
次に、 制御部 3 0 1 は、 ステップ S 3 0 9で抽出されたレコー ドがぁ るか否かを判定する(ステップ S 3 1 1 )。
このとき、 抽出されたレコー ドがある場合(S 3 1 1 ; あり)には、 制 御部 3 0 1 は、 ステップ S 3 1 2において、 プログラム配信テーブル 3 0 6 Aから抽出されたレコー ドの透過期間のフィール ドに、 作業領域 [透 過期間]の値を設定し、 処理を終了する。
一方、 抽出されたレコー ドがない場合( S 3 1 1 ; なし)には、 制御部 3 0 1 は、 ステップ S 3 1 3 において、 作業領域 [C- ID]に格納されてい る値がイ ンタフェース I Dと して設定され、 作業領域 [サーバァ ドレス ] に格納されている値がサーバア ドレスと して設定され、、 作業領域 [プロ グラム配信ァ ドレス ]に格納されている値がプロ グラム配信ァ ド レス と して設定され、 さ らに、 作業領域 [透過期間]に格納されている値が透過 期間に設定されたレコー ドを、 プログラム配信テーブル 3 0 6 Aに追加 し、 処理を終了する。
《サーバによる送信要求の受信処理》
図 1 9は、 サーバ 1 0での送信要求の受信処理の例を示すフローチヤ ー トである。 当該処理は、 例えば、 サーバ 1 0 の制御部 1 0 1 (図 3 )が プログラムを実行するこ とによって実現される。 伹し、 当該処理がハ ー ドウエアロジック回路によって実現されるよ うに構成しても良い。
最初に、 制御部 1 0 1 は、 クライアン ト 2 0からの送信要求の受信待 ちの状態となり (ステップ S 4 0 1 )、 通信制御部 1 0 5 を介して送信要 求を受信する と、 処理をステップ S 4 0 2に進める。
ステップ S 4 0 2では、'制御部 1 0 1 は、 現在時刻に配信時間を加え た値を、 配信期限記憶部 1 1 3に格納する。
次に、 制御部 1 0 1 は、 プログラムパケッ トの送信処理が起動中か否 かを判定する (ステップ S 4 0 3 )。 このと き、 制御部 1 0 1 は、 当該送 信処理が起動中であれば(S 4 0 3 ; 起動中)、 当該送信処理を終了し、 起動中でなければ( S 4 0 3 ; 停止中)、 プログラムバケツ トの送信処理 を起動し(ステップ S 4 0 4 )、 当該受信処理を終了する。
《サーバによるプログラムパケッ トの送信停止処理》
図 2 0は、 サーバ 1 0でのプログラムバケツ トの送信停止処理の例を 示すフローチャー トである。 当該処理は、 例えば、 サーバ 1 0 の制御部 1 0 1 (図 3 )がプログラムを実行するこ とによって実現される。 但し、 当該処理がハー ドウエアロジック回路によって実現されるよ う に構成し ても良い。 当該処理は、 周期的に起動する。
最初に、 制御部 1 0 1 は、 現在時刻が配信期限.記憶部 1 1 3 に格納さ れた配信期限に達しているか否かを判定する(現在時刻 <配信期限? : ス テツプ S 5 0 1 )。
このと き、 現在時刻が配信期限を過ぎていない場合(S 5 0 1 ; 現在時 刻 <配信期限)には、 制御部 1 0 1 は当該処理を終了する。
これに対し、 現在時刻が配信期限を過ぎている場合(S 5 0 1 ; 現在時 刻≥配信期限)には、 制御部 1 0 1 は、 配信処理の停止フラグをオンに設 定し(ステップ S 5 0 2 )、 当該処理を終了する。
《ルータ (中継装置)によるプログラムパケッ トの中継停止処理》 図 2 1 は、 ルータ 3 0 (図 4 )でのプログラムパケッ トの中継停止処理 の例を示すフローチャー トである。 当該処理は、 プロセッサのプロダラ ム実行によって、 或いはハー ドウエアロジック回路の信号処理によって 実現される。 また、 当該処理は周期的に起動する。
制御部 3 0 1 は、 プログラムバケツ ト配信テーブル 3 0 6 A (図 6 )か ら、 現在時刻が透過期間に達している (透過期間 <現在時刻)の レコー ド を検索し、 当該レコー ドを削除する (ステップ S 6 0 1 )。 そして、 制御 部 3 0 1 は、 当該処理を終了する。
〈動作例〉
次に、 上述した情報配信システム全体の動作例について説明する。 各ク ライアン ト 2 0 (図 7 )は、 プログラムファイルをダウンロー ドす る場合には、 クライアン ト操作者の操作等を契機と して(制御部 2 0 1 が 入力部 2 0 2から操作に基づく指示を受け付けるこ とによ り)、 サーバ 1 0に向かって送信要求(図 8 )を送信する。
このとき、 サーバア ドレス、 プログラム配信ア ドレスなどの配信条件 は、 予め、 クライアン ト 2 0の操作者がクライアン ト 2 0に設定しても 良い。 或いは、 図 1 1 に示すよ うに、 ダウンロー ド開始に先立って、 サ ーバ 1 0 へダウンロー ドア ドレス要求(図 1 2 )を送信するこ とによ り 、 サーバ 1 0から自動的に取得するよ う に構成しても良い。
ルータ 3 0 (図 4 )は、 送信要求を受信する と、 送信要求の中継処理(図 1 8 )を実行する。 これによつて、 ルータ 3 0は、 送信要求をサーバ 1 0 へ向けて送出する と と もに、 プログラムバケツ ト配信テーブル 3 0 6 A (図 6 )に、 プログラムバケ ツ ト受信時の中継情報(イ ンタ フェース I D, サーバア ドレス, プログラム配信ア ドレス, 透過時間)を設定する。
サーバ 1 0 (図 1 )は、 送信要求を受信する と、 送信要求の受信処理(図 1 9 )と、 プログラムバケツ トの送信処理(図 1 4 )を起動する。 サーバ 1 0は、 プログラムバケツ トの送信処理によって、 プログラムパケッ ト (図 9 )をマルチキャ ス ト で送信し続ける。
ルータ 3 0 は、 プログラムパケッ トを受信する と、 プログラムバケツ ト の中継処理(図 1 5 )を実行する。 これによつて、 ルータ 3 0は、 プロ グラムバケツ ト配信テーブル 3 0 6 A (図 6 )に格納された情報に従い、 プログラムバケツ ト の送信先イ ンタ フェースを決定し、 プログラムパケ ッ トをクライアン ト 2 0 へ中継する。 このとき、 ルータ 3 0によるプロ グラムパケッ トのマルチキャス トは、 送信要求を受信した第 2の通信ィ ンタ フェースのみを対象と して行われ、 該当 しない第 2 の通信ィ ンタフ エースからはプロ グラムバケツ トは送出されない。
以上によ り 、 サーバ 1 0からのプロ グラムバケツ トがプロ グラムファ ィルを必要とするク ライアン ト 2 0 に到達する。 一方で、 プログラムフ アイルを必要とする ク ライ アン ト 2 0 が存在しないネ ッ ト ワーク部分 (第 2 の通信ィ ンタフェースの下流側)にはプロ グラムバケツ トが配信さ れない。
例えば、 図 2 に示すよ う に、 ルータ # 1 にプロ グラムパケッ トが到達 している状態で、 ルータ # 1 がク ライアン ト # Aからの送信要求を受け 取った場合には、 ク ライアン ト # Aからの送信要求がサーバ 1 0 へ到達 する前に、 シーケンス番号 = i + 2 のプロ グラムバケツ ト をルータ # 1 が受け取る。 そして、 ルータ # 1 は、 プロ グラムパケッ トの中継処理(図 1 5 )によ り 、 ク ライアン ト # Aへプログラムパケッ トを中継する。 ルー タ # 2 もプロ グラムパケッ トの中継処理を行う。 これによつて、 シーケ ンス番号 = i + 2 のプロ グラムパケッ トがク ライアン ト # Aに到達する ク ライアン ト 2 0 はプロ グラムフ ァイ ルの組み立てが完了するまで、 周期的に送信要求の送信処理(図 1 7 )を実行し、 送信要求をサーバ 1 0 へ向けて送信し続ける。
ルータ 3 0 は、 送信要求を受信する と、 送信要求の中継処理(図 1 8 ) を実行し、 送信要求をサーバ 1 0 へ中継する と と もに、 プロ グラムパケ ッ ト配信テーブル 3 0 6 A (図 6 )にプロ グラムバケツ ト受信時の中継情 報(レコ一ド)を設定する。
これによつて、 プロ グラムバケツ ト配信テーブル 3 0 6 Aの該当ク ラ イアン ト向けの透過期間が更新される。 従って、 プロ グラムパケッ ト中 継停止処理(図 2 1 )によ り 削除されるプログラム配信テーブル 3 0 6 A の レコー ドの寿命が延伸さ る。
サーバ 1 0 は、送信要求を受信する毎に、送信要求の受信処理(図 1 9 ) を実行し、 配信期限を更新する。 これによつて、 プロ グラムバケツ ト の 送信停止処理(図 2 0 )の実行によ り 「停止フラグ = O N」 にされるまで の期間が延伸される。 その結果、 プロ グラムバケツ トの送信期間が延伸 する。
その後、 ク ライアン ト 2 0 は、 プロ グラムバケツ トの受信処理(図 1 6 ) を通じて全てのプロ グラムバケツ ト (分割データ)を受信し、 プロ グラム ファイルの組み立てを完了する と、 送信要求の送信処理を停止する。 ルータ 3 0 では、 送信要求を受信しないと、 送信要求の中継処理(図 1 8 )が実行されなレ、。 このため、 プログラムパケッ ト配信テーブル 3 0 6 Aの該当ク ライアン ト向けの透過期間が更新されない。 従って、 周期的 に起動するプロ グラムバケツ トの中継停止処理(図 2 1 )によ り 、 当該ク ライアン ト向けのレコー ドがプロ グラム配信テーブル 3 0 6 Aから削除 される。
その後は、 ルータ 3 0 でプロ グラムパケッ ト を受信しても、 このプロ グラムバケツ トの受信を契機とする中継処理(図 1 5 )では、 先程プロ グ ラム配信テーブル 3 0 6 Aから削除されたレコー ドに対応するク ライア ン ト 2 0へ向けてのプロ グラムバケツ トの中継は行われない。 これによ つて、 不要なプロ グラムパケッ トが中継されて、 ネッ ト ワーク に負荷を 与えるこ と を防止する こ とができる。
一方、 サーバ 1 0 では、 送信要求を受信しないと、 送信要求の受信処 理(図 1 9 )が実行されない。 このため、 配信期限が更新されない。 従つ て、 周期的に起動するプロ グラムパケッ トの送信停止処理(図 2 0 )の実 行によ り 、 「停止フラグ = O N」 となる。 する と、 プロ グラムパケッ トの 送信処理 (図 1 4 )において、 「停止フラグ = O N」 が検知され、 プロ ダラ ムバケツ トの送信が停止される。
〈適用例〉
次に、 情報配信システムの適用例について説明する。 図 2 2 は、 上述 した情報配信システムを、 テ レビ放送等のコンテンツの配信に適用 した 場合における配信シーケンスの例を示す図であ り 、 図 2 3 は、 ク ライア ン ト 2 0での T V放送等のコ ンテンツの受信処理の例を示すフローチヤ ー トであ り 、 図 2 4 は、 サーバ 1 0での T V放送等のコンテンツの送信 処理の例である。
図 2 2〜図 2 4に示す適用例では、 配信対象と して、 プロ グラムファ ィルの代わり に、 T V放送等のコンテンツが適用される。 コ ンテンツの 分割数は無限大に設定される。
また、 クライアン ト 2 0では、プログラムバケツ トの受信処理(図 1 6 ) の代わり に、 図 1 6 に示す受信処理が変形されたコンテンツの受信処理 (図 2 3 )が実行される。
さ らに、サーバ 1 0において、 プログラムバケツ トの送信処理(図 1 4 ) の代わり に、 図 1 4 の送信処理が変形されたコンテンッの送信処理(図 2 4 )が実行される。
これによつて、 図 2 2に示すよ う なコ ンテンツの配信シーケンスで、 視聴者(クライアン ト 2 0のユーザ)は、 視聴開始から視聴終了(視聴を終 了する場合には、 送信要求の送信処理が停止される)までの間にクライァ ン ト 2 0 ( # A )で受信される コ ンテンツバケツ ト (コ ンテンツが分割さ れた分割データを格納したバケツ ト)に基づく コ ンテンツを視聴する こ とができ る。
〔第 2実施形態〕
次に、 本発明による情報配信システムの第 2実施形態について説明す る。 第 2実施形態の構成は、 第 1実施形態と同じ構成を含むので、 主と .して異なる構成について説明し、 同様の構成については説明を省略する。
第 2実施形態におけるルータ (ルータ 3 0 A )は、 クライアン ト 2 0か ら受信する送信要求を集約し、 ク ライアン ト 2 0から受信した全ての送 信要求をサーバ 1 0へ向けて中継しないよ うに構成される。 以下、 この よ う な送信要求の集約に係る構成について説明する。
〈ルータの構成〉
図 2 5 は、 送信要求を集約するルータ 3 O Aの構成例を示すプロ ック 図である。 図 2 5 に示すよ う に、 ルータ 3 O Aは、 送信要求集約テープ ル記憶部 3 0 7を持つ点で、 第 1実施形態のルータ 3 0 (図 4 )と異なる。 但し、 ルータ 3 0 Aの送信要求集約テーブル記憶部 3 0 7を除く構成は、 ルータ 3 0 と同じである。
送信要求集約テーブル記憶部 3 0 7は、 送信要求集約テーブル 3 0 7 Aを記憶する。
図 2 6 は、 ルータ 3 O Aが持つ送信要求集約テーブル 3 0 7 Aのフィ 一ルド構成の例(データ構造例)を示す図である。 図 2 6 において、 送信 要求集約テーブル 3 0 7 Aは、 "サーバア ド レス ", "プロ グラム配信ァ ドレス ", 及ぴ "透過期間" を要素と して含む少なく と も一つの レコー ド を格納する。
こ こ に、 "サーバア ドレス " のフ ィ ール ドには、 中継を行った送信要求 内に設定されたサーバァ ドレスが格納される。
また、 "プログラム配信ア ドレス " のフ ィ ール ドには、 中継を行った送 信要求内に設定されたプログラム配信ァ ドレスが格納される。
また、 "透過期間" のフィールドには、 送信要求を中継したこ とによる サーバ 1 0からのプログラムバケツ トの送信が打ち切られる予定時刻を 透過期間と して記憶する。
送信要求集約テーブル 3 0 7 Aに格納される レ コ ー ドは、 「サーバァ ドレス」 + 「プログラム配信ア ドレス」 で一意となるよ うに記憶される。
〈ルータによる送信要求の集約中継処理〉
図 2 7及ぴ図 2 8 は、 ルータ 3 0 Aでの送信要求の集約中継処理の例 を示すフ ロ ーチャー トである。 当該集約中継処理は、 ルータ 3 0 Aの制 御部 3 0 1 (図 2 5 )によつて実行され.る。
当該集約中継処理は、 第 1実施形態で説明した送信要求の中継処理(図 1 8 )におけるステップ S 3 0 6 とステップ S 3 0 7 との間に、 ステ ップ S 3 0 6 a〜 S 3 0 6 i が挿入されている点を除き、 上述した中継処理 と同様である。
図 2 7及び図 2 8 に示すよ う に、 ステップ S 3 0 6 において、 [ C-I D] と [S- I D]との値が一致しない場合には、 処理がステップ S 3 0 6 a に進 む。 ステップ S 3 0 6 a では、 制御部 3 0 1 は、 送信要求集約テーブル 3 0 7 A (図 2 6 )よ り 、 サーバア ド レスが作業領域 [サーバア ド レス ]の 値と一致し、 且つプログラム配信先ァ ド レスの値が作業領域 [プログラム 配信ァ ドレス ]と一致するレコー ドを抽出する。
次に、 制御部 3 0 1 は、 抽出されたレコー ドがあるか否かを判定する (ステップ S 3 0 6 b )。 このとき、 抽出されたレコー ドがない場合(S 3 0 6 b ; なし)には、 処理がステップ S 3 0 6 gに進む。
これに対し、抽出された.レコー ドがある場合(S 3 0 6 b ;あり)には、 制御部 3 0 1 は、送信要求から配信時間を取り 出し、作業領域 [配信時間] に格納する (ステップ S 3 0 6 c )。
続いて、 制御部 3 0 1 は、 抽出されたレコー ドに^定されている透過 期間が、 "該当 レコー ドの透過期間 > (現在時刻 + [配信時間] Z 2 ) " の条 件を満たすか否かを判定する(ステップ S 3 0 6 d )。
このと き、 透過期間が条件を満たす場合(S 3 0 6 d ; 該当レコー ドの 透過期間 > (現在時刻 + [配信時間] Z 2 ) )には、 処理がステップ S 3 0 8 へ進む。 一方、 透過期間が条件を満たさない場合(S 3 0 6 d ; 該当 レコ ー ドの透過期間 ^ (現在時刻 + [配信時間] Z 2 ) )には、 制御部 3 0 1 は、 現在時刻に作業領域 [配信時間]の値を加えた値を作業領域 [透過期間]に 格納する (ステップ S 3 0 6 e )。
次に、 制御部 3 0 1 は、 送信要求集約テーブル 3 0 7 Aに対し、 サー バァ ド レスの値が作業領域 [サーバァ ド レス ]の値と一致し、 且つプログ ラム配信先ァ ド レスの値が作業領域 [プロ グラム配信ァ ド レス ]と一致す る レコー ドの透過期間のフ ィ ール ドに、 作業領域 [透過期間]の値を設定 する (ステップ S 3 0 6 f )。 その後、 処理がステップ S 3 0 7 に進む。
と ころで、 ステップ S 3 0 6 bから分岐して処理がステップ S 3 0 6 gに進んだ場合には、 制御部 3 0 1 は、 送信要求から配信時間を取り 出 し、 作業領域 [配信時間]に格納する。
次に、 制御部 3 0 1 は、 現在時間に作業領域 [配信時間]の値を加えた 値を作業領域 [透過期間]に格納する(ステップ S 3 0 6 h )。
次に、 制御部 3 0 1 は、 送信要求集約テーブル 3 0 7 Aに対し、 サー パァ ド レスのフ ィ ール ドに作業領域 [サーバァ ド レス ]の値が設定され、 且つプログラム配信先ア ド レス のフィール ドに作業領域 [プログラム配 信ア ドレス ]の値が設定され、 さ らに、 透過期間のフ ィ ールドに作業領域 [透過期間]の値を設定されたレコー ド追加する (ステップ S 3 0 6 i )。 その後、 処理がステップ S 3 0 7に進む。 ステップ S 3 0 7では、 制御 部 3 0 1 は、 サーバへ向けて当該送信要求を送信する。
上記処理によれば、 送信要求集約テーブル 3 0 7 Aに設定されている 透過期間終了までの残り時間が所定の閾値(例えば、 (現在時刻 + [配信時 間] / 2 ) )よ り も多い場合には、 当該送信要求のサーバ 1 0へ向けての送 信処理が、 先の送信要求の送信処理に集約され、 当該送信要求の中継が 行われない。 これによつて、 サーバ 1 0へ転送される送信要求の数を減 らすことができ、 ネッ トワークに対する負荷を低減するこ とができる。
〈動作例〉
次に、 第 2実施形態の動作例と して、 送信要求を集約するルータ 3 0 A (図 2 5 )を設置した場合の動作例について説明する。 ルータ 3 0 Aは、 送信要求を集約する機能を持たないルータ 3 0 (図 4 )と共存利用可能で ある。 サーバ 1 0, クライアン ト 2 0、 および、 ルータ 3 0の動作は、 第 1実施形態と同様であるので説明を省略する。
ルータ 3 O Aは、 送信要求(図 8 )を受信する と、 送信要求の集約中継 処理(図 2 7及び図 2 8 )を実行する。 この集約中継処理において、 ルー タ 3 O Aは、 サーバ 1 0への送信要求の中継を送信要求集約テーブル 3 0 7 Aの透過期間に基づいて判断する。 そして、 当該送信要求の中継を 先の送信要求の中継に集約できる場合には、 当該送信要求の中継を行わ ず、 集約できない場合には、 当該送信要求の中継を行う。
さ らに、 ルータ 3 0 Aは、 送信要求集約テーブル 3 0 7 A (図 2 6 )に 中継状況(サーバァ ド レス,プログラム配信ァ ド レス,透過期間)を記憶す る と と もに、 プロ グラムパケッ ト配信テーブル 3 0 6 A (図 6 )に対し、 プロ グラムバケツ ト受信時の中継情報(イ ンタ フ ェース I D ,サーバァ ド レス,プログラム配信ァ ド レス,透過期間)を設定する。
ルータ 3 0 Aは、 サーバ 1 0からのプログラムバケツ トを受信する と、 プロ グラムパケッ トの中継処理(図 1 5 )を実行する。 このと き、 ルータ 3 0 Aは、 プロ グラムバケツ ト配信テーブル 3 0 6 Aに設定された情報 に従って、 プロ グラムパケッ トの送信先イ ンタフェースを決定し、 プロ グラムバケツ トをク ライアン ト 2 0 へ中継する。
ク ライアン ト 2 0 は、 プロ グラムバケツ トの受信処理(図 1 6 )を通じ てプロ グラムフ ァイルの組み立てを完了する と、 送信要求の送信処理(図
1 7 )を停止する。
ルータ 3 0 Aでは、 送信要求を受信しないと、 送信要求の中継処理(図
1 8 )が実行されない。 従って、 プログラムバケツ ト配信テーブル 3 0 6 A (図 6 )の該当ク ライ アン ト向けの透過期間が更新されない。 これによ つて、 プロ グラムパケッ トの中継停止処理(図 2 1 )によ り 、 該当 レコー ドがプロ グラムバケツ ト配信テーブル 3 0 6 Aから削除される。
その結果、 ルータ 3 O Aは、 プロ グラムパケッ ト を受信しても、 こ の プロ グラムパケ ッ ト の受信を契機とする中継処理(図 1 5 )では、 削除さ れたレコー ドに対応するク ライアン ト 2 0 へ向けてのプロ グラムバケツ ト の中継は行われない。
サーバ 1 0 では、 送信要求を受信しないと、 送信要求の受信処理(図 1 9 )が実行されない。 このため、 配信期限が更新されず、 プロ グラムパケ ッ トの送信停止処理(図 2 0 )によ り 「停止フラグ = O N」 と なる。 する と、 プロ グラムパケッ トの送信処理(図 1 4 )において、 「停止フラグ =〇 N」 が検知され、 プロ グラムパケッ トの送信が停止される。
〔第 3実施形態〕
次に、 本発明による情報配信システムの第 3実施形態について説明す る。 第 3実施形態の構成は、 第 1又は第 2実施形態を同じ構成を含むの で、 主と して異なる構成について説明し、 同様の構成については説明を 省略する。
第 3実施形態では、 ク ライアン トがプロ グラムパケッ トの再送開始位 置を指定し、 サーバが指定された再送開始位置からプロ グラムパケッ ト を送信する よ う に構成される。 このよ う な再送開始位置指定方式は、 第 1実施形態の構成に付加するこ とができる。 また、 第 2実施形態で説明 した送信要求の集約中継処理と組み合わせて実施するこ と もできる。 以 下、 このよ うな再送開始位置の指定に係る構成について説明する。
〈サーバの構成〉
図 2 9 は、 再送開始位置を指定する場合のサーバ(サーバ 1 0 A )の構 成例を示すブロック図である。
図 2 9において、 サーバ 1 O Aは、 サーバ 1 0の構成(図 3 )に加えて さ らに再送開始位置記憶部 1 1 4を備える。 再送開始位置記憶部 1 1 4 は、 ク ライアン トで指定された再送開始位置を記憶するために使用され る。 サーバ 1 O Aの他の構成は、 図 3 に示したサーバ 1 0の構成と同じ である。
〈ルータ の構成〉
図 3 0は、 再送開始位置を指定する場合の送信要求を集約するルータ (ルータ 3 0 B )の構成例を示すブロ ック図である。
図 3 0に示すよ うに、 ルータ 3 0 Bは、 図 4に示したルータ 3 0 の構 成に加えて、 さ らに、 送信要求集約テーブル(再送開始位置)記憶部 3 0 8 を備える。 送信要求集約テーブル(再送開始位置)記憶部 3 0 8 は、 送 信要求集約テーブル 3 0 8 A (図 3 1 )を記憶するために使用される。 ル ータ 3 0 Bの他の構成は、 ルータ 3 0 と同様である。
図 3 1 は、 ルータ 3 0 Bが持つ送信要求集約テーブル 3 0 8 Aのフ ィ 一ルド構成の例(データ構造例)を示す図である。
送信要求集約テーブル 3 0 8 Aは、 "サーバァ ド レス " , "プロ グラム 配信ア ドレス ", "透過期間", 及び "再送開始位置" を要素と して含む少 なく と も一つの レコー ドを格納する。
こ こ に、 "サーバア ドレス " が設定されるフ ィ ール ドには、 中継を行つ た送信要求内に設定されたサーバァ ド レスが記憶(格納)される。
また、 "プログラム配信ア ドレス " が設定されるフ ィ ール ドには、 中継 を行った送信要求内に.設定されたプログラム配信ァ ド レスが記憶(格納) される。 また、 "透過期間" が設定されるフィール ドには、 送信要求を中継した こ と によるサーバ 1 0 Aからのプログラムバケツ トの送信が打ち切られ る予定诗刻が記憶(格納)される。
また、 "再送開始位置" が設定されるフィール ドには、 中継を行った送 信要求内に設定された再送開始位置が記憶(格納)される。
送信要求集約テーブル 3 0 8 Aの各レコー ドは、 「サーバア ド レス」 + 「プログラム配信ァ ド レス」 で一意となるよ う に記憶される。
〈メ ッセージ(バケツ ト)の構成〉
図 3 2は、 再送位置の指定方式で適用される送信要求のフ ィ ール ド構 成の例(フォーマツ ト構成)を示す図である。
図 3 2に示すよ うに、 送信要求は、 "サーバア ド レス ", "プログラム配 信ア ド レス ",及ぴ"配信時間"を夫々格納するためのフィール ドに加え、 "再送開始位置" を格納するためのフィール ドをさ らに備える。
こ こに、 "再送開始位置" のフィールドには、 ク ライアン トが受信して いない最も若い番号のシーケンス番号が設定される。 再送開始位置を除 く各フィール ドは、 図 8に示した送信要求と同じである。
第 3実施形態でのク ライアン トは、 再送開始位置を記憶し、 且つ送信 要求に再送開始位置を設定する構成を持つ点を除き、 第 1及び第 2実施 形態で説明したクライアン ト 2 0 と同様の構成を持つ。
〈処理〉
次に、 第 3実施形態におけるサーバ 1 O A , ルータ 3 O B, 及びクラ イ ア ン ト 2 0による処理について説明する。
《プログラムバケツ トの送信処理(サーバ)〉〉
図 3 3 は、 第 3実施形態におけるサーバ 1 0 Aでのプログラムバケツ トの送信処理の例を示すフローチャー トである。
図 3 3 に示す送信処理は、 第 1実施形態で説明した送信処理(図 1 4 ) に、 ステップ S O 3 a〜 S 0 3 cが追加されてレヽる点を除き、 図 1 4の 送信処理と同じである。 追加された各ステップは次の通りである。
ステップ S 0 3 a の処理は、 ステップ S 0 3 にて、 停止フラグがオフ と判定された場合に行われる。 ステップ S 0 3 aでは、制御部 1 0 1 は、 作業領域 [SQN]に設定されたシーケンス番号が、 プログラムフ ァイルの分 割総数を示す " n " の値よ り も小さいか否か( [SQN]く n? )を判定する。 この とき、 [SQN]の値が n の値よ り も小さい場合(S 0 3 a ; [SQN] < n)に は、 処理がステップ S 0 4に進む。
これに対し、 [S QN]の値が nの値以上である場合(S 0 3 a ; [SQN]≥ n) には、 制御き 1 0 1 は、 [SQN]の値を、 "再送開始位置" と して設定され たシーケンス番号の値に設定する(ステップ S 0 3 b )。
続いて、 制御部 1 0 1 は、 "再送開始位置" の値を nに設定し(ステツ プ S 0 3 c ) , 処理をステップ S 0 3に戻す。
《送信要求の送信処理(クライアン ト)》
図 3 4は、 第 3実施形態のクライアン ト 2 0の送信要求の送信処理の 例を示すフ ロ ーチャー トである。 第 3実施形態(再送開始位置指定方式) では、 クライアン トの送信要求の送信処理と して、 図 1 7に示す処理に 代わって、 図 3 4に示す処理が行われる。
図 3 4に示す送信処理は、周期的に起動する。最初に、制御部 2 0 1 (図 7 )は、 受信済みテーブル 2 0 7 Aにおいて、 受信が "未" に設定されて いる レコー ドを抽出し、 抽出されたレコー ドの中から、 最も若いシーケ ンス番号を作業領域 [SQN]に設定する(ステップ S 2 1 4 )。
次に、 制御部 2 0 1 は、 テーブル 2 0 7 Aに受信が "未" に設定され ているレコー ドがあるか否かを判定する(ステップ S 2 1 5 )。 このとき、 該当する レコー ドがなければ( S 2 1 5 ; なし)、 制御部 1 0 1 は当該処 理を終了する(全ての分割データを受信しているため)。
これに対し、 該当する レコー ドがあれば( S 2 1 5 ; あり)、 制御部 1 0 1 は、 作業領域 [SQN]の値を再送開始位置に設定した送信要求(図 3 1 ) をサーバ 1 0へ送信する(ステップ S 2 1 6 )。
《送信要求の受信処理(サーバ)》
図 3 5は、 サーバ 1 O Aの送信要求の受信処理の例を示すフローチヤ ー トである。 図 3 5 に示す受信処理は、 第 1実施形態における受信処理 (図 1 9 )でのステップ S 4 0 2 とステップ S 4 0 3 と の間に、 ステップ S 4 0 2 a , S 4 0 2 b,及び S 4 0 2 cが挿入されている。 この点を除 き、 図 3 5に示す受信処理は、 図 1 9に示す受信処理と同じである。
ステップ S 4 0 2 a では、 制御部 1 0 1 は、 送信要求(図 3 2 )に設定 されている再送開始位置を作業領域 [R - SQN]に格納する。
次に、 制御部 1 0 1 は、 予め設定されている再送開始位置が [R- SQN]の 値よ り も大きいか否か(再送開始位置 > [R- SQN]? )を判定する (ステップ S 4 0 2 b )。 このとき、 再送開始位置が [R- SQN]以下である場合(S 4 0 2 b ; 再送開始位置≤ [R-SQN]:)には、 処理がステップ S 4 0 3に進む。 これに対し、 再送開始位置が [R- SQN]よ り大きい場合(S 4 0 2 b ; 再 送開始位置〉 [R- SQN])には、 制御部 1 0 1は、 作業領域 [R-SQN]に設定さ れている値(シーケンス番号)を、 再送開始位置と して記憶する (ステップ S 4 0 2 c;)。 その後、 処理がステップ S 4 0 3に進む。
このよ う に、 送信要求で指定された再送開始位置(シーケンス番号)が、 サーバ 1 0 Aで保持されている再送開始位置(シーケンス番号)よ り も若 い場合には、 サーバ 1 0 Aで保持されている再送開始位置が送信要求で 指定された再送開始位置に更新される。
このよ う な処理によ り 、 サーバ 1 O Aは、 複数のクライアン ト 2 0か らの再送開始位置が指定された送信要求を受信した場合には、 常に最も 若いシーケンス番号を再送開始位置と して記憶する。
《送信要求の集約中継処理(ルータ)》
図 3 6及ぴ図 3 7は、 第 3実施形態におけるルータ 3 0 Bでの送信要 求の集約中継処理の例を示すフローチャー トである。 図 3 6及び図 3 7 に示す集約中継処理は、 第 2実施形態の集約中継処理(図 2 7及び図 2 8 )でのステ ップ S 3 0 4 と S 3 0 5 と の聞にステ ップ S 3 0 4 a が揷 入され、 且つステップ S 3 0 6 d とステップ S 3 0 8 との間にステップ S 3 0 6 j が挿入されている点を除き、 図 2 7及び図 2 8 に示す処理と 同じである。
図 3 6及ぴ図 3 7において、 ステップ S 3 0 4 a では、 制御部 3 0 1 は、 送信要求(図 3 2 )に設定されている再送開始位置を取り 出し、 作業 領域 [ SQN]に設定する。 その後、 処理をステップ S 3 0 5 に進める。
また、 ステップ S 3 0 6 j の処理は、 ステップ S 3 0 6 d において、 該当 レコー ドの透過期間 > (現在時刻 + [配信時間] / 2 )の条件が満たさ れる場合に実行される。 ステップ S 3 0 6 j では、 制御部 3 0 1 は、 該 当 レコー ドの再送開始位置が作業領域 [SQN]の値よ り も大きいか否かを 判定する。
こ の と き 、 該当 レコー ドの再送開始位置が [SQN]の値以下である場合 ( S 3 0 6 j ; 再送開始位置≤ [SQN] )には、 制御部 3 0 1 は、 処理をステ ップ S 3 0 8 に進める。 これに対し、 該当 レコー ドの再送開始位置が [SQN]よ り も大きい場合(S 3 0 6 j ; 再送開始位置〉 [SQN] )には、 制御 部 3 0 1 は、 処理をステップ S 3 0 6 e に進める。
〈動作例〉
次に、 第 3実施形態の動作例について説明する。
《第 1 の動作例》
第 1 の動作例と して、 ルータが送信要求の集約中継処理を行わない-場 令の動作例について説明する。
ク ライアン ト 2 0 (図 7 )は、 プログラムファイルをダウンロー ドする 場合、 クライアン ト操作者の操作等を契機と して、 送信要求の送信処理 (図 3 4 )を実行し、 サーバ 1 0 Aに向かって、 再送開始位置を指定した 送信要求(図 3 2 )を送信する。
ルータ 3 0 (図 4 )は、 送信要求を受信する と、 送信要求の中継処理(図 1 8 )によ り 、 送信要求をサーバ 1 0 Aへ中継し、 プログラムバケツ ト配 信テーブル 3 0 6 Aにプログラムバケツ ト受信時の中継情報を設定する。
サーバ 1 O A (図 2 9 )は、 送信要求を受信する と、 送信要求の受信処 理(図 3 5 )によ り 、 プログラムパケッ トの送信処理(図 3 3 )を起動する と と もに、 送信要求で指定された再送開始位置を記憶する。 そして、 'サ ーパ 1 0 Aは、 プログラムパケッ トの送信処理によ り 、 停止フラグがォ ンになるまで、 プログラムパケッ ト (図 9 )をシーケンス番号順で送信し 続ける。
このと き、 サーバ 1 ◦ Aは、 最後のシーケンス番号が付与されたプロ グラムパケッ トを送信し終わった場合には、 続いて、 再送開始位置と し て記憶されているシーケンス番号(送信要求で指定されたシーケンス番 号の中から最も若いシーケンス番号)から、 プログラムパケッ トの再送を 開始する。 これによつて、 送.信要求を送信している全てのク ライアン ト で受信済みのプロ グラムパケッ トが再送される こ と を防止する こ とがで さる。
ルータ 3 0 は、 プロ グラムパケッ ト を受信する と、 プロ グラムバケツ トの中継処理(図 1 5 )によ り 、 プロ グラムバケツ ト配信テーブル 3 0 6 A (図 6 )の情報に従い、 プロ グラムパケッ トの送信先イ ンタ フェースを 決定し、 プロ グラムパケッ ト をク ライアン ト 2 0へ中継する。
以上によ り 、 サーバ 1 0 力、らのプロ グラムパケッ トがプロ グラムファ ィルを必要とするク ライアン ト 2 0 に到達し、 かつ、 プロ グラムフアイ ルを必要とするク ライアン トがいないネッ ト ワーク部分へのプロ グラム バケツ トの配信が防止される。
ク ライアン ト 2 0 は、 プロ グラムファイルの組み立てが完了するまで、 周期的に送信要求の送信処理 (図 3 4 )を行い、 送信要求をサーバ 1 0へ 向け送信し続ける。
ルータ 3 0 は、 送信要求を受信する と、 送信要求をサーバ 1 O Aへ中 継し、 プロ グラムバケツ ト配信テーブル 3 0 6 Aにプロ グラムバケツ ト 受信時の中継情報を設定する。
これによ り 、 プロ グラムバケツ ト配信テーブル 3 0 6 Aの該当ク ライ アン ト向けの透過期間が更新され、 プロ グラムパケッ ト中継中止処理(図 2 1 )による レコー ドの削除までの期間が延伸される。
サーバ 1 O Aは、送信要求を受信する と、送信要求の受信処理(図 3 5 ) によ り 、 配信期限を更新する。 これによつて、 プロ グラムパケッ トの送 信停止処理(図 2 0 )によ り 「停止フラグ = O N」 に設定されるまでの期 間が延伸される。 その結,果、 プログラムバケツ トの送信期間が延伸する。 ク ライアン ト 2 0は、 プログラムパケッ トの受信処理によ り 、 プログ ラムファイルの組み立てを完了する と、 送信要求の送信処理を停止する。 ルータ 3 0では、 送信要求を受信しないと、 送信要求の中継処理が実 行されない。 このため、 プログラムパケッ ト配信テーブル 3 0 6 Aの該 当クライアン ト向けの透過期間が更新されない。 これによつて、 プログ ラムバケツ トの中継停止処理によ り 、 該当 レ コー ドがプログラムバケツ ト配信テーブル 3 0 6 Aから削除される。
この場合には、 ルータ 3 0がプログラムパケッ トを受け取っても、 プ ログラムバケツ ト配信テーブル 3 0 6 Aから削除されたクライアン ト 2 0へ向けては、 プログラムパケッ トの中継処理に基づく プログラムパケ ッ トの中,継は行われなレ、。
サーバ 1 0では、 送信要求を受信しないと、 送信要求の受信処理が実 行されない。 このため、 配信期限が更新されない。 従って、 プログラム パケッ トの送信停止処理によ り 「停止フラグ = O N」 となる。 その後、 プログラムバケツ トの送信処理において、 「停止フラグ =: O N」 が検知さ れ、 プログラムパケッ トの送信が停止される。
《第 2の動作例》
第 2の動作例と して、 送信要求を集約するルータ 3 0 Bを設置した場 合について説明する。 ルータ 3 0 Bは、 ルータ 3 0やルータ 3 O Aと共 存する状態で設置可能である。
サーバ 1 O A , ク ライアン ト 2 0、 およびルータ 3 0の動作は、 前述 の通り である。
ルータ 3 0 Bは、 送信要求(図 3 2 )を受け取る と、 送信要求の集約中 継処理(図 3 6及び図 3 7 )によ り 、 サーバ 1 0 Aへ送信要求を中継する か否か(中継を集約できるか否か)を対応する透過期間(送信要求集約テ 一ブル 3 0 7 A )に基づいて判定し、 集約できる場合には、 当該送信要求 を中継を行わない。 また、 ルータ 3 0 Bは、 集約中継処理において、 送 信要求集約テーブル 3 0 7 Aに中継状況を記憶し、 プログラムパケッ ト 配信テーブル 3 0 6 Aにプログラムバケツ ト受信時の中継情報を設定す る。
ルータ 3 0 Bは、 プロ グラムパケッ ト を受信する と、 プロ グラムパケ ッ トの中継処理によ り 、 プロ グラムバケツ ト配信テーブル 3 0 6 Aの情 報に従い、 プロ グラムパケッ トの送信先イ ンタフェースを決定し、 プロ グラムパケッ ト を決定されたイ ンタフェースの先に存在するク ライ アン ト 2 0 へ中継する。
ク ライアン ト 2 0 は、 プロ グラムバケツ トの受信処理によ り プロ グラ ムフ ァイルの組み立てを完了する と、 送信要求の送信処理を停止する。 ルータ 3 0 では、 送信要求を受信しないと、 送信要求の中継処理が実 行されない。 このため、 プロ グラムパケッ ト配信テーブル .3 0 6 Aの該 当ク ライアン ト向けの透過期間が更新されない。 従って、 プロ グラムパ ケッ トの中継停止処理によ り 、 対応する レコー ドがプロ グラムバケツ ト 配信テーブル 3 0 6 Aから削除される。 その結果、 ルータ 3 0 B は、 プ ロ グラムバケツ トを受信しても、 削除されたレコー ドに対応するク ライ アン ト 2 0 に向けては、 当該プログラムバケツ トの中継は行わない。
サーバ 1 0 Aでは、 送信要求を受信しないと、 送信要求の受信処理が 実行されない。 このため、 配信期限が更新されない。 従って、 プロ ダラ ムバケツ トの送信停止処理によ り 「停止フラグ = O N」 となる。 その後、 プロ グラムパケッ トの送信処理で 「停止フラグ = O N」 が検知され、 プ ロ グラムパケッ トの送信が停止される。
〔実施形態の作用及び効果〕
上述した第 1 〜第 3 の実施形態における情報配信システムによる と、 サーバ 1 0 ( 1 O A )は、 少なく と も一つのク ライ アン ト 2 0 からの送信 要求を受信している間(停止フラグがオフの間)は、 プロ グラムバケツ ト をマルチキャ ス ト送信し続ける。
ルータ 3 0 ( 3 0 A, 3 0 B )は、 プログラムパケッ トを受信する と、 自 装置が持つク ライ アン ト側の通信イ ンタ フェース (第 2 の通信イ ンタ フ ース)の う ち、 送信要求を受信してから所定期間内にある第 2 の通信ィ ンタ フェース (プロ グラムパケッ ト配信テーブル 3 0 6 Aに レコー ドが 設定されている通信イ ンタフェース)のみから、 プロ グラムバケツ トをマ ルチキャス トする。 '
これによつて、 プロ グラムパケッ ト配信テーブル 3 0 6 Aにレコー ド が設定されていない第 2 の通信ィ ンタフェースからプロ グラムバケツ ト が送出される こ とが防止される。 従って、 不要なプログラムパケッ トの 送出を抑える こ とができ るので、 ネッ ト ワーク に対する負荷上昇や、 こ れに伴う輻輳の発生を抑えるこ とができる。
上述したルータ 3 0 ( 3 O A , 3 0 B )によ るプロ グラムバケツ トの中 継処理の制御は、 各ク ライアン ト 2 0 が、 自装置がプロ グラムパケッ ト の受信(配信)を望む間のみ、 送信要求をサーバ 1 0 ( 1 0 A )へ向けて送 信するこ とで、 実現する こ とができる。
以上によって、 プロ グラムパケッ トの配信範囲(コ ンテ ンツの放送範 囲)を動的に変更するこ とができる。
また、 ルータ 3 0 Aやルータ 3 0 Bが適用されれば、 サーバへむけて の送信要求の中継を集約する こ とができ るので、 実質的に意味のない送 信要求がサーバへ向けて転送される こ と を防止する こ とができ る。 これ によって、 ネッ ト ワークの負荷上昇やこれに伴う輻輳の発生を抑える こ とができ る。
さ らに、 サーバ 1 O A及ぴルータ 3 0 Bが適用 されれば、 ク ライ アン ト 2 0 が再送開始位置を指定した送信要求を送信するこ と によ り 、 サー バ 1 0 Aは、 指定された再送開始位置からプロ グラムバケツ ト の再送を 開始するこ とが可能と なる。 これによつて、 サーバ 1 O Aが再送の不要 なプロ グラムバケツ トを送信するこ と を防止するこ とができ る。 従って、 ネッ ト ワークの負荷上昇や輻輳の発生を抑える こ とができ る。 また、 ダ ゥンロー ドシーケンスの途中から参加したク ライアン トのダウンロー ド 時間の短縮を図る こ と もできる。
以上のよ う に、 コンテンツ配信システムによれば、 同時にプロ グラム ファイル(コンテンツ)をダウンロー ドできるク ライ アン ト数をサーバや ネッ ト ワーク リ ソースを増やすこ となく 、 無限とでき る。 また、 不特定多数のク ライアン ト 2 0の要求状況に応じて、 サーバリ ソース、 ネッ トワーク リ ソース、 ルータ リ ソースの利用が自動かつ動的 に最適化できる。
また、 上述したよ う に、 配信の不要な経路への信号送信 (マルチキヤ ス ト送信) が発生しない。
さ らに、 欠落のゆる されないプログラムファイルのダウンロー ドに限 らず、 ある程度の欠落が許容できる T V放送コ ンテンツ等の配信ができ る。 コンテンツには、 上述したプログラムフ ァイルの他、 テキス ト、 静 止画(イメージ)、動画(ビデオ)、音声やこれらの組み合わせからなる様々 な情報又はデータが含まれる。 産業上の利用可能性
本発明は、 ネッ トワークを介して複数のクライアン トにサーバから情 報を配信する技術分野に適用可能である。 例えば、 イ ンターネッ ト等、 双方向通信可能でマルチキャス ト、 ブロー ドキャス ト送信可能なネッ ト ワーク環境において、 コ ンテンツを格納するサーバ, コ ンテンツを中継 する中継装置(例えばルータ), コ ンテンツを受信するク ライア ン トに適 用可能である。

Claims

1 . クライアン トから所定の時間間隔で周期的に送信されるコ ンテン ッの送信要求を、 前記ク ライ アン ト のいずれかから受信している間、 前 記コ ンテンツの分割によ り生成され且つ夫々にシーケンス番号が付与さ れた複数のコ ンテンツの分割データを所定の順序でマルチキャス ト送信 するサーバと、
前記クライア ン ト と通信するための複数の第 2通信ィ ンタフエースか ら受信される前記送信要求を前記サーバと通信するための第 1通信イ ン の
タ フエースへ中継する制御を行う第 1 中継制御手段と、
前記送信要求を受信した第 2通信イ ンタ フェースの識別情報を含むコ ンテンッの中継条件情報を記憶手段に設定する中継条件設定手段と、 前記第 1通信イ ンタ フユースから受信される前記分割データを、 前記 記憶手段に識別情報が格納されている第 2通信イ ンタ フェースのみへマ ルチキャス ト送信する制御を行う第 2 中継制御手段と、 を含む中継装置 と
を備えるコ ンテンツ配信システム。
2 . 前記中継条件設定手段は、 送信要求を受信した第 2通信イ ンタ フ エース の識別情報と、 こ の第 2通信ィンタ フ ェースへの分割データ の送 信の終了予定時刻とを含むコ ンテンツの中継条件情報を前記記憶手段に
B し、
前記第 2 中継制御手段は、 前記終了予定時刻が過ぎている第 2通信ィ ンタ フェースへ分割データが送信されないよ う に、 分割データ の中継を 制御する
請求項 1記載のコ ンテンツ配信システム。
3 . 前記中継条件設定手段は、 送信要求が受信される毎に、 前記所定 の時間の 2倍以上の時間を現在時刻に加えて前記終了予定時刻を設定す る
請求項 2記載のコンテンツ配信システム。
4 . 前記サーバは、 送信要求が受信される毎に、 前記所定の時間の 2 倍以上の時間を現在時刻に加えてコンテンツの配信期限を更新し、 この 配信期限が満了する前に次の送信要求を受信しなかった場合には、 分割 データのマルチキャス ト送信を停止する
請求項 1 〜 3 のいずれかに記載のコンテンッ配信システム。
5 . 前記中継装置は、 送信要求が受信される毎に、 この送信要求を識 別するための情報と、 前記所定の時間の 2倍の時間を現在時刻に加えて 得られる当該送信要求を受信した第 2通信イ ンタフ ースに対する分割 データの送信の終了予定時刻とを含む送信要求の中継条件情報を前記記 憶手段に設定する第 2 中継条件設定手段をさ らに含み、
前記第 1 中継制御手段は、 送信要求を中継する場合に、 この送信要求 と同じ内容を持つ送信要求の中継条件情報を参照し、 前記所定の時間を 現在時刻に加えた時刻が前記中継条件情報に含まれる前記終了予定時刻 を超えない場合には、 当該送信要求の中継を停止し、 そうでない場合に は、 当該送信要求を中継する
請求項 1 〜 4のいずれかに記載のコンテンツ配信システム。
6 . 前記送信要求には、 前記所定の時間の 2倍以上の時間を示す時間 情報がク ライアン トで設定され、
前記中継条件設定手段は、 送信要求が受信された場合に、 この送信要 求内に設定されている時間情報で示される時間を現在時刻に加えて得ら れる前記終了予定時刻と、 当該送信要求を受信した第 2通信イ ンタ フ ースの識別情報とを含むコンテンッ中継条件情報を前記記憶手段に記憶 する
請求項 3〜 5 のいずれかに記載のコンテンツ配信システム。
7 . 前記送信要求には、 前記所定の時間の 2倍以上の時間を示す時間 情報がク ライアン トで設定され、
前記サーバは、 送信要求が受信される毎に、 送信要求に設定されてい る時間情報で示される時間を現在時刻に加えてコ ンテンツの配信期限を 更新し、 この配信期限が満了する前に次の送信要求を受信しなかった場 合には、 分割データのマルチキャス ト送信を停止する
請求項 4 〜 6のいずれかに記載のコンテンツ配信システム。
8 . 前記第 2 中継条件設定手段は、 送信要求が受信される毎に、 この 送信要求を識別するための情報と、 この送信要求内に設定された前記時 間情報で示される前記所定の時間の 2倍の時間を現在時刻に加えて得ら れる前記終了予定時刻とを含む送信要求の中継条件情報を前記記憶手段 に設定し、
前記第 1 中継制御手段は、 送信要求を中継する場合に、 この送信要求 と同じ内容を持つ送信要求の中継条件情報を参照し、 前記時間情報で特 定される時間の半分を現在時刻に加えた時刻が前記中継条件情報に含ま れる前記終了予定時刻を超えない場合には、 当該送信要求の中継を停止 し、 そ うでない場合には、 当該送信要求を中継する
請求項 6又は 7記載のコンテンツ配信システム。
9 . 前記サーバは、 ク ライアン トからのコンテンツのダウンロー ドア ドレス要求に応じて、 ク ライアン トがコ ンテンツをダウンロ ー ドするた めのア ドレス情報と、 前記時間情報とを含むダウンロー ドア ド レス応答 を要求元のク ライアン トに送信し、
前記中継装置及び前記サーバは、 前記時間情報で示される時間の半分 以下の時間間隔で周期的にクライアン トから送信され、 前記ア ドレス情 報と前記時間情報とが設定された送信要求を受信する
請求項 5 〜 8 のいずれかに記載のコンテンツ配信システム。 1 o . 前記サーバは、 前記複数のコ ンテンツの分割データをシーケン ス番号順に送信し、
各クライアン トから、 シーケンス番号が指定された送信要求を受信し、 最後のシーケンス番号が付与された分割データを送信し終わった後に 前記送信要求で指定されたシーケンス番号のう ち、 最も若いシーケンス 番号の分割データから分割データ の再送を開始する
請求項 1 〜 9 のいずれかに記載のコ ンテンツ配信システム。
1 1 . 配信対象のコ ンテンツの分割によ り生成された複数のコ ンテン ッの分割データを記憶する記憶手段と、
クライアン トから所定の時間間隔で周期的に送信されるコ ンテ ンツの 送信要求を受信する受信手段と、
送信要求を少なく と も一つのクライアン トから受信している間、 前記 複数のコ ンテンツの分割データを所定順序でクライ アン トへ向けてマル チキャス ト送信する送信手段と
を含むコ ンテンツ配信サーバ。 '
1 2 . 前記各分割データにシーケンス番号が付与され、
前記送信手段は、 複数のコンテンツの分割データをシーケンス番号順 で送信し、
前記受信手段は、 クライアン トでシーケンス番号が指定された送信要 求を受信し、
前記送信手段は、 最後のシーケンス番号が付与された分割データを送 信し終わった後に、 前記送信要求で指定されたシーケンス番号の う ち、 最も若いシーケンス番号の分割データから、 分割データの再送を開始す る
請求項 1 1記載のコ ンテンツ配信サーバ。 54
1 3 . 送信要求が受信される毎に、 前記所定の時間の 2倍以上の時間 を現在時刻に加えてコ ンテンツの配信期限を更新し、 この配信期限が満 了する前に次の送信要求を受信しなかった場合には、 分割データのマル チキャス ト送信を停止する
請求項 1 1又は 1 2記載のコンテンツ配信サーバ。
1 4 . 前記送信要求には、 前記所定の時間の 2倍以上の時間を示す時 間情報がク ライアン トで設定され、
送信要求が受信される毎に、 送信要求に設定されている時間情報で示 される時間を現在時刻に加えてコンテンツの配信期限を更新し、 この配 信期限が満了する前に次の送信要求を受信しなかった場合には、 分割デ ータのマルチキャス ト送信を停止する送信制御手段をさ らに含む 請求項 1 1 〜 1 3のいずれかに記載のコンテンツ配信サーバ。
1 5 . ク ライアン トからのコンテンツのダウンロー ドア ドレス要求に 応じて、 ク ライアン トがコンテンツをダウンロー ドするためのァ ド レス 情報と、 前記時間情報とを含むダウンロー ドア ドレス応答を要求元のク ライアン トに送信する手段をさ らに含み、
前記受信手段は、 前記時間情報で示される時間の半分以下の時間間隔 で周期的にクライアン トから送信され、 前記ア ド レス情報と前記時間情 報とが設定された送信要求を受信する
請求項 1 1 〜 1 4のいずれかに記載のコンテンツ配信サーバ。
1 6 . 複数のク ライアン トのいずれかからコンテンツの送信要求を受 信している聞、 コンテンツをマルチキャス ト送信するサーバと、
複数のクライアン ト と通信するための複数の第 2通信インタフェース で受信されるクライアン トからの送信要求を前記サーバと通信するため の第 1通信ィンタフェースから前記サーバへ向けて中継する制御を行う 第 1 中継制御手段と、 前記送信要求を受信した第 2通信イ ンタ フェースの識別情報を含むコ ンテンッの中継条件情報を記憶手段に格納するコンテンツ中継条件設定 手段と、
前記第 1通信イ ンタ フェースで受信される前記サーバからのコ ンテン ッを、 前記記憶手段に識別情報が格納されている第 2通信イ ンタ フエ一 スのみからマルチキャス ト送信する制御を行う第 2 中継制御手段と、 を 含む中継装置と
を備えるコンテンツ配信システム。
1 7 . ク ライアン トから所定の時間間隔で周期的に送信されるコンテ ンッの送信要求を、 複数のクライアン トのいずれかから受信している間、 前記コ ンテンツの分割によ り生成され且つ夫々にシーケンス番号が付与 された複数のコ ンテンツの分割デ―タを所定の順序でマルチキャス ト送 信するサーバと通信するための第 1通信イ ンタフェース と、 複数のク ラ イアン ト と通信するための複数の第 2通信イ ンタフェース とに接続され る通信制御部と、
各第 2通信イ ンタフェースから受信される前記送信要求を前記第 1通 信イ ンタ フ ースへ中継する制御を行う第 1 中継制御手段と、
前記送信要求を受信した第 2通信イ ンタ フェースの識別情報を含むコ ンテンッの中継条件情報を記憶手段に設定する中継条件設定手段と、 前記第 1通信イ ンタフェースから受信される前記分割データを、 前記 記憶手段に識別情報が格納されている第 2通信イ ンタフェースのみにマ ルチキャス ト送信する制御を行う第 2中継制御手段と、
を含む中継装置。
1 8 . 前記中継条件設定手段は、 送信要求を受信した第 2通信イ ンタ フェースの識別情報と、 この第 2通信ィ ンタフェースへの分割データの 送信の終了予定時刻とを含むコンテンツの中継条件情報を前記記憶手段 に設定し、 56 前記第 2 中継制御手段は、 前記終了予定時刻が過ぎている第 2通信ィ ンタフェースへ分割データが送信されないよ う に、 分割データの中継を 制御する
請求項 1 7記載の中継装置。
1 9 . 前記中継条件設定手段は、 送信要求が受信される毎に、 前記所 定の時間の 2倍以上の時間を現在時刻に加えて前記終了予定時刻を設定 する
請求項 1 8記載の中継装置。
2 0 . 送信要求が受信される毎に、 この送信要求を識別するための情 報と、 前記所定の時間の 2倍の時間を現在時刻に加えて得られる当該送 信要求を受信した第 2通信イ ンタフェースに対する分割データの送信の 終了予定時刻とを含む送信要求の中継条件情報を前記記憶手段に設定す る第 2中継条件設定手段をさ らに含み、
前記第 1 中継制御手段は、 送信要求を中継する場合に、 この送信要求 と同じ内容を持つ送信要求の中継条件情報を参照し、 前記所定の時間を 現在時刻に加えた時刻が前記中継条件情報に含まれる前記終了予定時刻 を超えない場合には、 当該送信要求の中継を停止し、 そ う でない場合に は、 当該送信要求を中継する
請求項 1 7〜 1 9のいずれかに記載の中継装置。
2 1 . 前記送信要求には、 前記所定の時間の 2倍以上の時間を示す時 間情報がクライアン トで設定され、
前記中継条件設定手段は、 送信要求が受信された場合に、 この送信要 求内に設定されている時間情報で示される時間を現在時刻に加えて得ら れる前記終了予定時刻と、 当該送信要求を受信した第 2通信インタフエ ースの識別情報と を含むコンテンッ中継条件情報を前記記憶手段に記憶 する 57 請求項 1 7〜 2 0のいずれかに記載の中継装置。
2 2 . 送信要求が受信される毎に、 この送信要求を識別するための情 報と、 この送信要求内に設定された前記時間情報で示される前記所定の 時間の 2倍の時間を現在時刻に加えて得られる前記終了予定時刻とを含 む送信要求の中継条件情報を前記記憶手段に設定する第 2中継条件設定 手段をさ らに含み、
前記第 1 中継制御手段は、 送信要求を中継する場合に、 この送信要求 と同じ内容を持つ送信要求の中継条件情報。を参照し、 前記時間情報で特 定される時間の半分を現在時刻に加えた時刻が前記中継条件情報に含ま れる前記終了予定時刻を超えない場合には、 当該送信要求の中継を停止 し、 そ うでない場合には、 当該送信要求を中継する
請求項 1 7〜 2 1 のいずれかに記載の中継装置。
2 3 . 前記受信手段は、 クライアン トがサーバから通知されたコ ンテ ンッをダウンロー ドするためのァ ドレス情報と前記時間情報とを含み、 且つ前記時間情報で示される時間の半分以下の時間間隔で周期的にクラ イアン トから送信される送信要求を受信する
請求項 2 1又は 2 2記載の中継装置。
PCT/JP2003/009948 2003-08-05 2003-08-05 コンテンツ配信システム WO2005013568A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2003/009948 WO2005013568A1 (ja) 2003-08-05 2003-08-05 コンテンツ配信システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2003/009948 WO2005013568A1 (ja) 2003-08-05 2003-08-05 コンテンツ配信システム

Publications (1)

Publication Number Publication Date
WO2005013568A1 true WO2005013568A1 (ja) 2005-02-10

Family

ID=34113499

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2003/009948 WO2005013568A1 (ja) 2003-08-05 2003-08-05 コンテンツ配信システム

Country Status (1)

Country Link
WO (1) WO2005013568A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113227924A (zh) * 2018-12-27 2021-08-06 三菱电机株式会社 数据分发控制装置、方法及程序

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10200577A (ja) * 1997-01-08 1998-07-31 Nec Corp パケット配信システム
JPH11313304A (ja) * 1998-04-30 1999-11-09 Victor Co Of Japan Ltd 映像配信装置、映像受信装置、映像配信システム及び映像配信方法
JP2002237844A (ja) * 2001-02-09 2002-08-23 Mcm Japan Kk 画像配信スイッチシステム及び画像配信スイッチ装置及び画像配信方法
JP2002305548A (ja) * 2001-04-06 2002-10-18 Sony Corp 通信方法およびそのシステム、送信装置および受信装置
JP2003032300A (ja) * 2001-05-10 2003-01-31 Nippon Telegr & Teleph Corp <Ntt> マルチキャストデータ通信方法、マルチキャストデータ通信システム、中継装置、中継方法、中継プログラム、中継プログラムを記録した媒体
JP2003037627A (ja) * 2001-07-26 2003-02-07 Hitachi Ltd マルチキャスト通信装置
JP2003143223A (ja) * 2001-10-15 2003-05-16 Internatl Business Mach Corp <Ibm> マルチキャスト・データ配信システム及びマルチキャスト・データ配信方法
JP2003152719A (ja) * 2001-11-09 2003-05-23 Nec Corp マルチキャスト放送データ配信システムおよび方法およびマルチキャスト放送中継ノード装置およびクライアント装置およびサーバ装置およびプログラム

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10200577A (ja) * 1997-01-08 1998-07-31 Nec Corp パケット配信システム
JPH11313304A (ja) * 1998-04-30 1999-11-09 Victor Co Of Japan Ltd 映像配信装置、映像受信装置、映像配信システム及び映像配信方法
JP2002237844A (ja) * 2001-02-09 2002-08-23 Mcm Japan Kk 画像配信スイッチシステム及び画像配信スイッチ装置及び画像配信方法
JP2002305548A (ja) * 2001-04-06 2002-10-18 Sony Corp 通信方法およびそのシステム、送信装置および受信装置
JP2003032300A (ja) * 2001-05-10 2003-01-31 Nippon Telegr & Teleph Corp <Ntt> マルチキャストデータ通信方法、マルチキャストデータ通信システム、中継装置、中継方法、中継プログラム、中継プログラムを記録した媒体
JP2003037627A (ja) * 2001-07-26 2003-02-07 Hitachi Ltd マルチキャスト通信装置
JP2003143223A (ja) * 2001-10-15 2003-05-16 Internatl Business Mach Corp <Ibm> マルチキャスト・データ配信システム及びマルチキャスト・データ配信方法
JP2003152719A (ja) * 2001-11-09 2003-05-23 Nec Corp マルチキャスト放送データ配信システムおよび方法およびマルチキャスト放送中継ノード装置およびクライアント装置およびサーバ装置およびプログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113227924A (zh) * 2018-12-27 2021-08-06 三菱电机株式会社 数据分发控制装置、方法及程序
CN113227924B (zh) * 2018-12-27 2022-08-16 三菱电机株式会社 数据分发控制装置、数据分发控制方法及计算机可读取的记录介质

Similar Documents

Publication Publication Date Title
Sutton et al. Supporting disconnectedness-transparent information delivery for mobile and invisible computing
US7155487B2 (en) Method, system and article of manufacture for data distribution over a network
US9252963B2 (en) Performing multicast communication in computer networks by using overlay routing
JP4068158B2 (ja) レプリカルーティング
JP4425277B2 (ja) ネットワーク内の動的リアルタイム・ストリーム集約のための方法、システムおよび装置
US7620816B1 (en) System and method for automatic selection of service provider for efficient use of bandwidth and resources in a peer-to-peer network environment
JP4920157B2 (ja) マルチキャスト・データを受信する方法
US7149807B1 (en) Control and communication infrastructure (CCI) for selecting a transport mechanism to transport data to one or more servers in a content delivery network based on the size of the data, together with frequency and loss tolerance with respect to transport of the data
Malan et al. Salamander: A {Push-Based} Distribution Substrate for Internet Applications
JP2004500739A (ja) データブロードキャスト
US20100312819A1 (en) Method and system for distributing images to client systems
US20130138780A1 (en) Data communications networks, systems, methods and apparatus
EP1464163B1 (en) Module and process for use with inter-user communication via a bidirectional network
US7296071B2 (en) Service transmission in a packet data network
Kon et al. Using dynamic configuration to manage a scalable multimedia distribution system
US20050033863A1 (en) Data link characteristic cognizant electronic mail client
JP3836843B2 (ja) 情報網を介して複数のチャネルによって配信されるコンテンツを一つの端末によって受信する方法
WO2005013568A1 (ja) コンテンツ配信システム
JP2006203505A (ja) コンテンツ配信システム、サーバ、ユーザ端末およびプログラム
JP4481499B2 (ja) 階層マルチキャスティング
US20100005164A1 (en) Methods and apparatus for providing a control channel in a data network
JP2001326685A (ja) 同報送信システム及びその宛先データベース管理方式
JP2002237844A (ja) 画像配信スイッチシステム及び画像配信スイッチ装置及び画像配信方法
KR100495785B1 (ko) 퍼스널컴퓨터 네트워크상의 파일 분배 시스템 및 그 방법
Yavatkar et al. Clique: a toolkit for group communication using IP multicast

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): JP US

NENP Non-entry into the national phase

Ref country code: JP

WWW Wipo information: withdrawn in national office

Country of ref document: JP