WO2012011449A1 - プロキシサーバ、中継方法、通信システム、中継制御プログラム、および記録媒体 - Google Patents

プロキシサーバ、中継方法、通信システム、中継制御プログラム、および記録媒体 Download PDF

Info

Publication number
WO2012011449A1
WO2012011449A1 PCT/JP2011/066278 JP2011066278W WO2012011449A1 WO 2012011449 A1 WO2012011449 A1 WO 2012011449A1 JP 2011066278 W JP2011066278 W JP 2011066278W WO 2012011449 A1 WO2012011449 A1 WO 2012011449A1
Authority
WO
WIPO (PCT)
Prior art keywords
proxy server
request
multicast
content
processing unit
Prior art date
Application number
PCT/JP2011/066278
Other languages
English (en)
French (fr)
Inventor
義昭 荻澤
高橋 真毅
Original Assignee
シャープ株式会社
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 シャープ株式会社 filed Critical シャープ株式会社
Priority to US13/810,715 priority Critical patent/US20130114597A1/en
Priority to JP2012525390A priority patent/JPWO2012011449A1/ja
Priority to EP11809619.7A priority patent/EP2597824A4/en
Priority to CN2011800354373A priority patent/CN103004133A/zh
Publication of WO2012011449A1 publication Critical patent/WO2012011449A1/ja

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/16Multipoint routing
    • 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
    • H04L12/185Arrangements for providing special services to substations for broadcast or conference, e.g. multicast with management of multicast group membership
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/611Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for multicast or broadcast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/2876Pairs of inter-processing entities at each side of the network, e.g. split proxies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching

Definitions

  • the present invention relates to a proxy server of a transmission apparatus that relays data transmitted from a transmission apparatus to a communication apparatus based on a request from a communication apparatus such as a reproduction apparatus or a proxy server of the reproduction apparatus, and a relay method in such a proxy server About.
  • the present invention also relates to a relay control program for operating a computer as such a proxy server, and a recording medium storing the relay control program.
  • the present invention relates to a communication system including at least such a proxy server, a communication device, and a transmission device.
  • static content such as text data and still image data is transmitted and received by unicast communication using the http (s) protocol or the like.
  • moving image content and audio content are often transmitted and received by unicast communication.
  • Patent Document 1 a distribution method by sequentially downloading the MPEG (Moving Picture Expert Group) MP4 file format (Patent Document 1) and a MPEG ISO Media File Format format fragment video format Examples of the distribution method used (Patent Document 2).
  • MPEG Motion Picture Expert Group
  • Patent Document 2 a distribution method by sequentially downloading the MPEG ISO Media File Format format fragment video format Examples of the distribution method used (Patent Document 2).
  • data transmission / reception by unicast communication is performed after establishing a connection between a communication source and a communication destination, and thus has an advantage of high reliability of data transmission / reception.
  • the distribution server distributes moving image content individually to each client device that has issued a distribution request.
  • the network bandwidth load increases when a distribution request is received from a single client device at a time.
  • the distribution server needs to establish connections with a large number of playback devices at a time, there is a problem that the processing load of the distribution server itself increases.
  • the present invention has been made in view of the above problems, and a main object thereof is to realize a proxy server of a transmission apparatus capable of suppressing a network bandwidth load due to data transmitted from the transmission apparatus. is there.
  • the proxy server is a proxy server that caches content transmitted from a transmission device in response to a request from the communication device in a storage unit and relays the content to the communication device.
  • the proxy server When it is detected that the first request to transmit the content by unicast communication is sent from the communication device to the transmission device, the proxy server performs the content by multicast communication instead of the transmission device.
  • the communication device when receiving a second request to transmit the content using multicast communication from the communication device and information indicating that the content can be transmitted to the communication device.
  • Registration means for registering the content in a multicast group and the content cached in the storage unit Using Yasuto communication is characterized in that it comprises a relay means for relaying to each communication device registered in the multicast group.
  • the first request is an HTTP request message
  • the transmission unit transmits the HTTP request message including the information as header information.
  • a value indicating a multicast group address may be included.
  • the proxy server receives information indicating that the content transmitted from the transmission device can be transmitted by multicast communication instead of the transmission device in response to a request from the communication device. Send to communication device.
  • the proxy server uses the multicast communication to transmit the content to the communication device instead of the transmission device. Send to.
  • the proxy server can distribute the content to the plurality of communication devices by multicast communication.
  • the proxy server of the present invention has an effect that the bandwidth load of the network due to the data transmitted from the transmission device can be suppressed.
  • the relay method caches content transmitted from a transmission device in response to a request from a communication device in a storage unit and relays the content to the communication device.
  • the proxy server performs multicast communication instead of the transmission device.
  • a registration step of registering the communication device in a multicast group, and the content cached in the storage unit It is characterized in that it contains a relay step of relaying to each communication device registered in the multicast group using the multicast communication.
  • the relay method of the present invention has the same operation and effect as the proxy server of the present invention.
  • the proxy server of the present invention has an effect that it is possible to suppress the network bandwidth load due to the data transmitted from the transmission device.
  • FIG. 1 is a sequence diagram showing the first half of all the processing steps that are performed from when a client device issues a video content distribution request to when the distribution of video content to the client device is completed between the devices of the distribution system of FIG. 1. is there.
  • FIG. 3 is a sequence diagram showing the first half of all the processing steps that are performed from when a client device issues a video content distribution request to when the distribution of video content to the client device is completed between the devices of the distribution system of FIG. 1. is there.
  • FIG. 3 is a sequence diagram showing the latter half of all processing steps performed between the devices of the distribution system of FIG. 1 from when the client device issues a video content distribution request to when the distribution of the video content to the client device is completed. is there. It is a figure which shows an example of the message transmitted in the process process which the sequence of FIG. 6 and FIG. 7 represents.
  • (A) is a figure which shows the request message which a client apparatus transmits
  • (b) is a figure which shows the response message which a delivery server transmits.
  • (A) is a figure which shows the response message which the proxy server of a delivery server transmits.
  • FIG. 3 is a diagram specifically showing how the proxy server of the distribution server converts video content data transmitted as an HTTP response message into a multicast packet in the distribution system of FIG. 1.
  • FIG. 2 is a diagram schematically showing communication processing between devices in the distribution system of FIG. 1.
  • FIG. 2 is a sequence diagram showing a flow of processing between devices when a client device receives an instruction to interrupt reproduction of video content from a user in the distribution system of FIG. 1.
  • 2 is a flowchart illustrating an operation of an HTTP processing unit provided in a proxy server of a client device in the distribution system of FIG. 1.
  • 2 is a flowchart illustrating an operation of a multicast processing unit included in a proxy server of a client device in the distribution system of FIG. In the distribution system of FIG.
  • FIG. 1 shows the operation
  • . 2 is a flowchart illustrating an operation of a multicast processing unit included in a proxy server of a client device in the distribution system of FIG.
  • FIG. 7 is a flowchart illustrating an operation of an HTTP processing unit provided in a proxy server of the distribution server in the distribution system of FIG. 1 and performed when a JOIN message is received.
  • 2 is a flowchart showing an operation of a client device in the distribution system of FIG. FIG.
  • FIG. 3 is a diagram illustrating an example of an HTTP response message transmitted to a client device when a multicast packet is lost during multicast communication in the distribution system of FIG. 1.
  • the client device when the client device records the content being played back simultaneously, it is a flowchart showing a process of complementing the movie fragment missing by multicast communication with the movie fragment of the missing part acquired by HTTP communication.
  • . 2 is a flowchart illustrating an operation performed by a client device when receiving an instruction from a user to interrupt reproduction of video content in the distribution system of FIG. 1. It is a figure which shows a prior art and shows the delivery system in which each of several client apparatuses receives the data of a video content separately from a delivery server.
  • FIG. 3 is a sequence diagram illustrating an operation example when a client device newly issues a video content distribution request in a state where multicast distribution has already been performed in the distribution system of FIG. 1.
  • FIG. 2 is a sequence diagram illustrating an operation example when video content to be played back on a client device is switched in the distribution system of FIG. 1.
  • FIG. 1 is a diagram showing an overall configuration of a distribution system 1 according to the present embodiment.
  • the distribution system 1 includes N client devices 100 (100-1, 100-2,..., 100-N) and proxy servers 200 (200-1, 200-2,. 200-N), a distribution server 300, and a proxy server 250 of the distribution server 300.
  • a proxy server 250 and a distribution server 300 form a distribution side network (LAN), and client devices 100-1 to 100-N and proxy servers 200-1 to 200- 200-N forms a reproduction-side network (LAN).
  • the two LANs are separated by a backbone network 500, and proxy servers 200-1 to 200-N and 250 are connected to the backbone network 500.
  • the backbone network 500 is assumed to be a network in which no router is interposed between the proxy server 200 and the proxy server 250.
  • the distribution server 300 can distribute video contents of a plurality of channels.
  • the client device 100 receives a channel designation from the user via an operation unit (not shown)
  • the video content of the designated channel (hereinafter also referred to as “target video content”) is delivered from the delivery server 300. It has become.
  • the distribution request from the client device 100 and the video content distributed from the distribution server 300 are first transmitted to the corresponding proxy server.
  • FIG. 2 is a diagram schematically showing communication processing between the respective devices while the video content is distributed from the distribution server 300 to the client devices 100-1 to 100-N in the distribution system 1.
  • right and left thin arrows indicate video content requests and responses according to the HTTP protocol (that is, unicast communication).
  • thick arrows indicate transmission of video content by multicast communication.
  • video content is transmitted within each LAN using a request / response mechanism of HTTP (Hypertext Transfer Protocol) protocol, which is one of data transmission protocols.
  • HTTP Hypertext Transfer Protocol
  • the video content is exchanged in the MIME multipart format (simply referred to as “multipart format”) defined by the HTTP protocol.
  • the video content is distributed by multicast communication in the backbone network.
  • the proxy server 250 can distribute the data (a packet of video content) once to a plurality of proxy servers 200 belonging to the destination multicast group. ing.
  • the client device 100 includes an HTTP processing unit 101 and a playback unit 102.
  • the HTTP processing unit 101 sends a video content distribution request (request message) in units of media segments (each unit obtained by dividing video content at fixed time intervals, simply abbreviated as “MS” in each figure). Is transmitted to the proxy server 200.
  • the HTTP processing unit 101 receives video content from the proxy server 200 as a response message in a multi-part format in which each video segment is a media segment unit and each of which is a movie fragment (fragment) described later.
  • the playback unit 102 plays back video content by reading each media segment received by the HTTP processing unit 101.
  • the proxy server 200 includes an HTTP processing unit 201, a cache unit 202, and a multicast processing unit 203.
  • the HTTP processing unit 201 transfers the distribution request received from the client device 100 to the proxy server 250 with the proxy server 200 as a transmission source, or reads the received data from the cache unit 202 and transmits it to the client device 100. Or
  • the cache unit 202 is a cache memory that holds data.
  • the multicast processing unit 203 requests the proxy server 250 to join and leave the multicast group.
  • the multicast processing unit 203 receives data transmitted by multicast communication and converts it into an HTTP response message format.
  • the proxy server 250 includes an HTTP processing unit 251, a cache unit 252, a multicast processing unit 253, and a multicast group information storage unit 254.
  • the HTTP processing unit 251 relays the distribution request received from the proxy server 200 to the distribution server 300.
  • the HTTP processing unit 251 can multicast the target video content to the response message of the target video content sent from the distribution server 300. It relays to the proxy server 200 after adding header information indicating that it exists.
  • the HTTP processing unit 251 performs multicast distribution of the target video content when there is a proxy server 200 belonging to a multicast group (hereinafter, also referred to as “target multicast group”) to which the target video content is to be multicast distributed.
  • target multicast group a multicast group
  • the proxy server 250 itself is used as a request source, and response messages of each media segment of the target video content are sequentially acquired from the distribution server 300 and cached in the cache unit 252.
  • the cache unit 252 is a cache memory that holds data.
  • the cache unit 252 holds the response message transmitted from the distribution server 300.
  • the multicast processing unit 253 Upon receiving a request for participation in the target multicast group from the proxy server 200-i (i: any value from 1 to N), the multicast processing unit 253 assigns the address of the proxy server 200-i to the target multicast group. Are recorded in the multicast group information storage unit 254. Further, when the multicast processing unit 253 receives a request to leave the target multicast group from the proxy server 200-i, the multicast processing unit 253 sets the address of the proxy server 200-i recorded as belonging to the target multicast group to the multicast group. Delete from the information storage unit 254.
  • the multicast processing unit 253 sequentially transmits HTTP response messages recorded in the cache unit 252 in a packet in a format that allows multicast distribution (FIG. 10). And will be described later with reference to FIG. 11) and distributed to the proxy server 200 to be multicast distributed.
  • the multicast group information storage unit 254 is a nonvolatile memory.
  • the multicast group information storage unit 254 holds, for each of a plurality of multicast groups determined for each video content, the address of a communication device that is a transmission destination belonging to the multicast group.
  • the distribution server 300 includes an HTTP processing unit 301 and a memory unit 302.
  • the HTTP processing unit 301 reads the media segment of the video content requested to be distributed from the memory unit 302 and transmits it to the proxy server 250 as a multipart response message with each movie fragment as a part.
  • the memory unit 302 holds video contents of a plurality of channels.
  • the detailed configurations of the client device 100, the proxy servers 200 and 250, and the distribution server 300 have been described above. Before describing the operation of the distribution system 1, refer to FIGS. 4 and 5 for the above-described movie fragments and media segments. However, it will be described below.
  • FIG. 4 is a diagram schematically showing the relationship between the video content bit stream (Contents.mp4) and each movie fragment obtained by dividing and storing the bit stream.
  • FIG. 5 is a diagram schematically showing the relationship between the media segment and each movie fragment constituting the media segment.
  • bit stream is divided and stored in a plurality of movie fragments.
  • mdat is bit stream data divided.
  • Each movie fragment corresponds to a unit portion obtained by dividing a bit stream by a certain period.
  • a fragment video format defined by ISO Media File Format is assumed as a movie fragment.
  • the top movie fragment (fragment 1) in the bit stream of the MP4 file includes a moov header 41b.
  • the moov header 41b is configured to hold meta information (such as initialization information) regarding the entire bit stream for reproducing video.
  • Subsequent movie fragments (fragments 2, 3,...) In the bit stream of the MP4 file include a moof header 42b.
  • the moof header 42b of each movie fragment is a header for meta information for reproducing the video of the movie fragment.
  • Each movie fragment includes media data (video data) mdat in addition to the header.
  • media data mdat of each movie fragment partial data in a period corresponding to the movie fragment is stored. For example, when the fragment is data obtained by dividing a bit stream in units of one second, the media data mdat of fragment 1 stores video data for one second from the start of video content reproduction.
  • the media segment is composed of a plurality of movie fragments.
  • the media segment also corresponds to a unit portion obtained by dividing content data by a certain period. Further, in the present embodiment, this media segment is handled as content data stored in one response data. That is, the media segment is a unit of content data acquired by one request.
  • the length of the period corresponding to one media segment is an integral multiple of the length of the period corresponding to one movie fragment. (However, this is a case where the length of the movie fragment is fixed, and when the length of the movie fragment is variable, it is not limited to an integral multiple).
  • a period corresponding to one media segment is assumed to be 30 seconds, and a length of a period corresponding to one movie fragment is assumed to be 1 second.
  • 6 and 7 are sequence diagrams showing the first half and the second half of the above operation, respectively.
  • the HTTP processing unit 251 of the proxy server 250 adds header information indicating that multicast distribution is possible only when the target video content is being distributed to four or more devices. ing. Further, it is assumed that the target video content is already being distributed to the three client devices 100-2 to 100-4 before the operation starts, and the client device 100-1 newly issues a target video content distribution request. And
  • the client device 100-1 transmits an HTTP request 41 (first request) requesting the first media segment of the target video content to the proxy server 200-1 (S01).
  • the request 41 is data as shown in FIG. 8A.
  • the client apparatus 100-1 is connected to the proxy server 200-1 by keep alive. ing. That is, the client device 100-1 is kept connected even after receiving a response to the request 41.
  • the HTTP processing unit 201 of the proxy server 200-1 transmits the request 41 received from the client device 100-1 to the proxy server 250 after setting its own IP address as the transmission source (S02). Then, the HTTP processing unit 251 of the proxy server 250 connects to the distribution server 300 by keep alive, and relays the request 41 to the distribution server 300 (S03).
  • the HTTP processing unit 301 of the distribution server 300 Upon receiving the request 41, the HTTP processing unit 301 of the distribution server 300 reads the target video content from the memory unit 302, generates a response message 51 as shown in FIG. 8B, and transmits it to the proxy server 250 (S04). .
  • X-Segment-Fragment-Index: 1/60 indicates the index value of the media segment. That is, X-Segment-Fragment-Index: 1/60 indicates that the target video content is composed of 60 media segments, and this response message is data of the first media segment.
  • ⁇ binary-data: fragment-01 ⁇ ” to “ ⁇ binary-data: fragment-30 ⁇ ” indicate 30 movie fragments constituting the first media segment.
  • the HTTP processing unit 251 of the proxy server 250 that has received the response message 51 checks the request frequency of the target video content from the client device 100 (S05). That is, the HTTP processing unit 251 counts how many times the request 41 for the same target video content is received within a certain period.
  • the HTTP processing unit 251 since the number of client apparatuses 100 is four client apparatuses 100-1 to 100-4 and the request frequency is a certain level or higher, header information indicating that multicast distribution is possible is added to the response message 51. As a result, a response message 51a as shown in FIG. 9A is generated (S06).
  • the character string (character string starting with “X-alternative-cast”) surrounded by a broken-line frame indicates the added header information.
  • the header information of X-alternative-cast has the following format.
  • ⁇ distribution format> indicates a content distribution method
  • FIG. 9A indicates "multicast” which is multicast distribution.
  • ⁇ delivery address> (“224.1.1.1” in FIG. 9A) when the delivery format is multicast delivery indicates a multicast address.
  • the multicast address generally describes a class D IP multicast group address.
  • ⁇ TTL> indicates a packet valid period (time to live). This sets the transmission range within the network.
  • ⁇ TTL> indicates a packet valid period (time to live). This sets the transmission range within the network.
  • ⁇ TTL> it is necessary to set ⁇ TTL> to a large value when multicast data is distributed across the router. Since there is no router in the backbone network 500, the value of ⁇ TTL> is “1”.
  • ⁇ Session ID> and ⁇ Session name> are used to identify a session.
  • the HTTP processing unit 251 transmits the generated response message 51a to the proxy server 200-1 (S07).
  • the HTTP processing unit 201 of the proxy server 200-1 that has received the response message 51a confirms that the header information of “X-alternative-cast” is present (S08), notifies the multicast processing unit 203 to that effect, and The response message 51a is converted into the original response message 51 and transmitted to the client device 100-1 (S09). Note that the playback unit 102 of the client device 100-1 that has received the response message 51 starts playback of the target video content.
  • the HTTP processing unit 201 of the proxy server 200-1 transmits a multicast reception request (JOIN message 42 requesting participation in the target multicast group) as illustrated in FIG. 9B to the proxy server 250 (S10).
  • the JOIN message 42 (second request) and the LEAVE message 43 described later are HTTP messages in the form of a GET request, as shown in FIGS. 9B and 9C.
  • a character string indicating participation in the multicast group and a character string indicating leaving from the multicast group are assigned. That is, “JOIN” is assigned to the JOIN message 42, and “LEAVE” is assigned to the LEAVE message 43.
  • the HTTP processing unit 251 of the proxy server 250 that has received the JOIN message 42 returns a response message and records the address of the proxy server 200-1 in the multicast group information storage unit 254 as belonging to the target multicast group (S11). ).
  • the HTTP processing unit 251 that has received the JOIN message in S10 acquires the media segment of the target video content (S12) and records it in the cache unit 252 (S13).
  • the processes in S12 and S13 are then repeated. That is, the processes of S12 and S13 are performed for all media segments constituting the target video content.
  • the period which repeats the process of S12 is not specifically limited. That is, the process of S12 may be repeated at a cycle shorter than the playback time in the client device 100 of one media segment.
  • the multicast processing unit 253 sequentially converts the response message 51 of the media segment recorded in the cache unit 252 into a multicast packet (S14).
  • the multicast packet includes a UDP header part, an RTP header part, and an RTP data part.
  • a more specific structure of the multicast packet will be described below with reference to FIGS. 10 (a) and 10 (b).
  • FIG. 10A shows the format of a UDP packet that constitutes a multicast packet.
  • the UDP header portion of the UDP packet includes a multicast packet transmission source port number, a multicast packet transmission destination port number, a UDP packet length, and a checksum field for packet consistency.
  • the data portion of the UDP packet has a variable length.
  • FIG. 10 (b) shows the format of the RTP packet that constitutes the data (datagram) portion of the UDP packet. A part of the response message 51 is recorded in the RTP data portion (payload data) of the RTP packet.
  • a sequence number indicating a transmission order of multicast packets and a time stamp are stored in the RTP header portion of the RTP packet.
  • the time stamp of the RTP packet stores the value of the smallest time stamp (X-timestamp) among the response messages 51 whose part is included in the RTP data portion of the RTP packet. For example, when a part of the response message 51 corresponding to the second media segment is included in the RTP data part, “30” is stored in the time stamp of the RTP header part.
  • the left part of FIG. 11 schematically shows converted multicast packets 52-1, 52-2, 52-3,... Also, the right part in FIG. 11 shows the data of the header part in the HTTP response message 51 (51-1, 51-2%) And the data of each part of the body part as payload data in which multicast packet. It schematically shows whether it is stored.
  • the multicast processing unit 253 reads the response message 51-1 of the media segment from the cache unit 252, the “file name of the target video content” and the “index value of the media segment” in the character string of the Content-Location header of the response message 51. "(That is,” / content1 / 1 ") is extracted and stored as payload data in the first multicast packet 52-1.
  • the multicast processing unit 253 stores the header portion of the message 51-1 in the next multicast packet 52-2 as payload data.
  • the multicast processing unit 253 stores the data of the body part of the message 51-1 as payload data in the subsequent multicast packet 52-3. More specifically, the multicast processing unit 253 stores the movie fragment included in each part in one or a plurality of multicast packets 52 according to the data size of the movie fragment. The multicast processing unit 253 performs the same processing for each message 51 after the message 51-2.
  • the binary data of the movie fragment included in each part is stored in the multicast packet 52 so that the head part always matches the head part of the payload of the multicast packet 52.
  • the binary data of the movie fragment included in each part is stored in the multicast packet 52 so that the end portion always matches the end portion of the payload of the multicast packet 52. That is, binary data of a plurality of movie fragments are not stored in one multicast packet.
  • the multicast processing unit 253 stores appropriate values in the above-described UDP header part, RTP header part, and RTP data part in the header part of the multicast packet, as well as an IP multicast address (multicast group address) in the IP header part. "224.1.1.1" is stored.
  • the multicast processing unit 253 sequentially distributes the multicast packet 52 converted as described above to the proxy server 200-1 (S15).
  • the multicast processing unit 203 of the proxy server 200-1 collectively converts the plurality of multicast packets 52 distributed in S15 into a response message 51 of a media segment (S16) and caches it in the cache unit 202 (S17).
  • the processes of S15 to S17 are repeated thereafter. That is, the processes of S12 and S13 are performed for all media segments constituting the target video content.
  • the client device 100-1 subsequently transmits an HTTP request 41 requesting the second media segment of the target video content to the proxy server 200-1 (S18).
  • the HTTP processing unit 201 of the proxy server 200-1 Upon receiving the request 41, the HTTP processing unit 201 of the proxy server 200-1 reads the response message 51 of the second media segment from the cache unit 202 (S19). When the response message 51 is not cached in the cache unit 202 at the time when the reading is attempted, the HTTP processing unit 201 waits until the response message 51 is cached before reading.
  • the HTTP processing unit 201 that has read the response message 51 transmits the response message 51 to the client device 100-1.
  • the processes of S18 and S19 are also sequentially performed on the subsequent third and subsequent media segments.
  • the distribution server 300 receives a request 41 for requesting the last media segment from the proxy server 250.
  • the HTTP processing unit 301 of the distribution server 300 transmits to the proxy server 250 a response message 51 ′ in which the header of “Connection: Close” is added to the header of the normal response message 51 as the response message of the last media segment ( S20).
  • the HTTP processing unit 251 confirms that the character string “Connection: Close” is present in the header of the response message 51 ′, it recognizes that the connection state with the distribution server 300 has been released (S ⁇ b> 21).
  • the multicast processing unit 253 converts the response message 51 'cached in the cache unit 252 into the multicast packet 52 and transmits it to the proxy server 200-1 (S22).
  • the multicast processing unit 203 of the proxy server 200-1 collectively converts the plurality of multicast packets 52 distributed in S22 into a response message 51 'of the media segment and caches it in the cache unit 202.
  • the multicast processing unit 203 confirms that the header of “Connection: Close” is present in the header of the cached response message 51 ′.
  • the HTTP processing unit 201 of the proxy server 200-1 When the client apparatus 100-1 transmits an HTTP request 41 requesting a subsequent media segment to the proxy server 200-1, the HTTP processing unit 201 of the proxy server 200-1 that has received the request 41 responds to the response of the media segment.
  • the message 51 ′ is read from the cache unit 202.
  • the HTTP processing unit 201 reading the response message 51 ′ confirms that the header has a “Connection: Close” header (S23)
  • the connection state with -1 is released (S24).
  • the client device 100-1 recognizes that the connection state with the proxy server 200 has been released. Therefore, the playback of the target video content is completed when the playback unit 102 finishes playback of the media segment (that is, the last media segment of the target video content) of the response message 51 '.
  • the multicast processing unit 203 that has confirmed that the header “Connection: Close” is present in the header of the response message 51 ′ notifies the HTTP processing unit 201 to that effect, and the HTTP processing unit 201 displays the message shown in FIG. ) Multicast reception end notification (LEAVE message requesting leaving from the target multicast group) 43 as shown in FIG.
  • the HTTP processing unit 251 of the proxy server 250 that has received the LEAVE message 43 returns a response and confirms that the received message is the LEAVE message 43 (S26).
  • the HTTP processing unit 251 deletes the address of the proxy server 200-1 in the multicast group information storage unit 254 recorded as belonging to the target multicast group (S27).
  • the proxy server 200-1 is excluded from the multicast group to which the target video content is to be distributed by multicast.
  • the processing from S22 onward is performed on the client apparatuses 100-2 to 100-4 and the proxy servers 200-2 to 200-4. That is, the video reproduction of the target video content is completed also in the client devices 100-2 to 100-4, and the proxy servers 200-2 to 200-4 are excluded from the multicast group to which the target video content is to be distributed by multicast.
  • the HTTP processing unit 201 and the multicast processing unit 203 confirm that the header of “Connection: Close” is present in the header of the response message 51 ′. Instead, the HTTP processing unit 201 and the multicast processing unit 203 refer to the X-Media-Segment-index header in the header part, and the media segment index value (“1” in FIG. 8B) and the target It may be confirmed whether or not the value indicating the number of media segments constituting the video content (“60” in FIG. 8B) becomes the same value. If the values are the same, the HTTP processing unit 201 may notify the multicast processing unit 203 to that effect and cause the multicast processing unit 203 to transmit a LEAVE message.
  • FIG. 13 is a sequence diagram showing a flow of processing between the devices when the client device 100-1 receives an instruction to interrupt the reproduction of the video content from the user.
  • the reproduction unit 102 of the client device 100-1 interrupts reproduction of the target video content.
  • the HTTP processing unit 101 transmits a request 41 ′ in which the header of “Connection: Close” is added to the header part of the HTTP request 41 requesting the next media segment to the proxy server 200-1 (S 28).
  • the HTTP processing unit 201 of the proxy server 200-1 Upon receiving the request 41 ', the HTTP processing unit 201 of the proxy server 200-1 confirms that the header "Connection: Close” is added to the header part of the request 41' (S29). Then, the HTTP processing unit 201 reads the response message 51 of the media segment from the cache unit 202, transmits it to the client device 100-1, and releases the connection state with the client device 100-1.
  • the HTTP processing unit 201 that has confirmed that the header of “Connection: Close” has been added notifies the multicast processing unit 203 that it has been added (S30).
  • the HTTP processing unit 201 transmits a LEAVE message 43 for requesting leaving from the target multicast group as shown in FIG. 9C to the proxy server 250 (S31).
  • the HTTP processing unit 251 of the proxy server 250 that has received the LEAVE message 43 returns a response to the proxy server 200 and confirms that the received message is the LEAVE message 43 (S32).
  • the HTTP processing unit 251 deletes the address of the proxy server 200-1 in the multicast group information storage unit 254 recorded as belonging to the target multicast group (S33).
  • the proxy server 200-1 is excluded from the multicast group to which the target video content is to be distributed by multicast.
  • the multicast processing unit 253 When there are no more devices belonging to the target multicast group, the multicast processing unit 253 notifies the HTTP processing unit 251 to that effect. Then, the HTTP processing unit 251 transmits the HTTP message to the distribution server 300 with the header “Connection: Close” added to the header (S34). As a result, the connection state between the distribution server 300 and the proxy server 250 is released.
  • FIG. 14 is a flowchart showing the operation of the HTTP processing unit 201.
  • the HTTP processing unit 201 receives a media segment request 41 from the client device 100 (S1101).
  • the HTTP processing unit 201 determines whether any data is cached in the cache unit 202 (S1102).
  • the HTTP processing unit 201 When it is determined that some data is cached in the cache unit 202 (YES in S1102), the HTTP processing unit 201 receives the request URI (in the example of FIG. 8A, "/ content1 /" in the request 41) received in S1101. 1 ") is read out (S1107). The HTTP processing unit 201 then sends a response message corresponding to this request URI (the response message corresponding to “/ content1 / 1” in the example of FIG. 8A) of the target video content whose file name is content1. The response message of the first media segment is read from the cache unit 202 (S1108). Thereafter, the process proceeds to S1109.
  • the HTTP processing unit 201 transmits the request 41 to the proxy server 250 (S1103), and then sends a corresponding response message. Received from the proxy server 250 (S1104).
  • the HTTP processing unit 201 determines whether or not the received response message includes header information (X-alternative-cast header) indicating that the proxy server 250 can transmit the content by multicast communication (S1105). ). If it is determined that it is not included (NO in S1105), the process proceeds to S1109, and if it is determined that it is included (YES in S1105), the process proceeds to S1106.
  • header information X-alternative-cast header
  • the HTTP processing unit 201 issues an instruction to perform multicast reception (notification of a received multicast address), and in S1118, performs transmission / reception of the JOIN message with the proxy server 250, and proceeds to S1110.
  • the HTTP processing unit 201 In S1109, the HTTP processing unit 201 generates a response message to be transmitted to the client apparatus 100, and the process proceeds to S1110.
  • the HTTP processing unit 201 determines whether the request 41 received in S1101 includes a communication end notification (“Connection: Close” header). If it is determined that a communication end notification is included (YES in S1110), the HTTP processing unit 201 notifies the multicast processing unit 203 of the end of multicast reception (S1111), and proceeds to S1112. On the other hand, when it is determined that the communication end notification is not included (NO in S1110), the process proceeds to S1112.
  • the HTTP processing unit 201 determines whether or not a communication end notification (“Connection: Close” header) is included in the response received in S1104. If it is determined that a communication end notification is included (YES in S1112), the process proceeds to S1119. In S1119, the HTTP processing unit 201 performs transmission / reception of the LEAVE message 43 with the proxy server 250, and the process proceeds to S1115.
  • the HTTP processing unit 201 determines whether or not the response received in S1104 is a response of the last media segment (S113). That is, referring to the X-Media-Segment-index header of the header part, it is determined whether or not the media segment index value and the value indicating the number of media segments constituting the target video content are the same value.
  • the HTTP processing unit 201 adds a communication end notification to the response message generated in S1109 (S1115). Then, the HTTP processing unit 201 transmits a response message including a communication end notification to the client device 100 (S1116), releases the connection state with the client device 100 (S1117), and ends the processing.
  • FIG. 15 is a flowchart showing the operation of the multicast processing unit 203.
  • the multicast processing unit 203 receives a notification to start multicast reception from the HTTP processing unit 201 (S1201).
  • the multicast processing unit 203 performs initialization for receiving multicast data. Specifically, in order to receive multicast distribution (in response to a query periodically transmitted from the proxy server 250), a multicast group address is acquired from the HTTP processing unit 201 (S1202).
  • the multicast processing unit 203 sequentially receives the multicast packets (S1203), and converts the plurality of packets received in S1205 into response messages in the media segment HTTP format (S1204).
  • the multicast processing unit 203 caches the response message obtained by the conversion in the cache unit 202 (S1205), and refers to the X-Media-Segment-index header of the header part included in the response message (S1206). ). That is, it is determined whether or not the index value of the media segment and the value indicating the number of media segments constituting the target video content are the same value.
  • the multicast processing unit 203 When the multicast processing unit 203 has not received all data of the target video content (NO in S1207), that is, the index value of the media segment and the value indicating the number of media segments constituting the target video content are If not the same value, the process returns to S1203.
  • the multicast processing unit 203 notifies the HTTP processing unit 201 that the multicast reception has ended, and ends the processing.
  • the HTTP processing unit 251 receives the request for the media segment of the target video content from the proxy server 200 (S1301).
  • the HTTP processing unit 251 transmits the received request to the distribution server 300 (S1302), and receives a response corresponding to the request from the distribution server 300 (S1303).
  • the HTTP processing unit 251 determines whether or not the target video content is already being distributed by multicast (S1304). That is, the HTTP processing unit 251 refers to the multicast group information storage unit 254 and determines whether there is a proxy server 200 that participates in the target multicast group.
  • the HTTP processing unit 251 confirms the request frequency of the target video content from the client device 100.
  • the process in S1305 is the same as the process in S05 in FIG. That is, the HTTP processing unit 251 counts how many times the request 41 for the same target video content is received within a certain period.
  • the HTTP processing unit 251 counts it as a request for the same target video content. For example, when a request 41 including “content 1/2” and a request 41 including “content 1/3” are received, both are counted as requests for the same target video content.
  • the HTTP processing unit 251 In S1306, the HTTP processing unit 251 generates an X-alternative-cast header that uses ⁇ distribution method> as multicast distribution, and adds the X-alternative-cast to the header part of the response message transmitted from the distribution server 300 in S1304. Add a header.
  • ⁇ distribution address> of the X-alternative-cast header is a multicast group address used for distribution of the target video content when the target video content is already being distributed in multicast.
  • the HTTP processing unit 251 uses an unused class D multicast group address as ⁇ distribution address>.
  • the HTTP processing unit 251 transmits a response message to the proxy server 200, and proceeds to S1308.
  • the HTTP processing unit 251 determines whether the target video content is already being distributed by multicast (S1309). If it is determined that the target video content is already being distributed by multicast (YES in S1309), the process proceeds to S1311. Also, if the JOIN message is not received from the proxy server 200 within a certain period (NO in S1308), the process proceeds to S1311.
  • the HTTP processing unit 251 connects to the distribution server 300 by keep alive, and sends each response message of the target video content from the distribution server 300.
  • the acquisition process (details will be described later with reference to FIG. 18) is started (S1310).
  • the HTTP processing unit 251 determines whether or not the “Connection: Close” header is included in the header part of the response message acquired from the distribution server 300 (S1311).
  • the HTTP processing unit 251 waits until a LEAVE message is received from the proxy server 200 (S1312), and ends the processing after the reception. .
  • the process proceeds to S1313.
  • the HTTP processing unit 251 determines whether or not the multicast distribution end is notified from the multicast processing unit (S1313). If it is determined that the end of multicast distribution has not been notified (NO in S1313), the process ends.
  • the HTTP processing unit 251 releases the connection state with the distribution server (S1314) and ends the process.
  • the HTTP processing unit 251 generates a URI of a request to be transmitted to the distribution server 300 next based on the response message received immediately before from the distribution server 300 (S1501). For example, if the end of the Content-Location of the response message received immediately before from the distribution server 300 is “/ content1 / 1”, “/ content1 / 2” is generated as the URI of the request.
  • the HTTP processing unit 251 transmits a request to the distribution server 300 (S1502) and receives a response from the distribution server 300 (S1503).
  • the HTTP processing unit 251 caches the response received from the distribution server 300 in the cache unit 252 in association with the URI information of the request transmitted in S1502 (S1504).
  • the HTTP processing unit 251 determines whether or not all response messages of the target video content (content whose file name is “content1”) have been received (S1505). If it is determined that there is a response message that has not been received (NO in S1505), the process returns to S1501. On the other hand, if it is determined that all response messages have been received (YES in S1505), the process ends.
  • the multicast processing unit 253 acquires a JOIN message from the HTTP processing unit 251 (S1401).
  • the multicast processing unit 253 identifies the target multicast group based on the file name of the target video content included in the JOIN message, and registers the address of the proxy server 200 that transmitted the JOIN message in the target multicast group. . (S1402).
  • the multicast processing unit 253 reads the response message from the cache unit 252 (S1403) and converts it into a plurality of multicast packets (S1404).
  • the multicast processing unit 253 delivers a plurality of multicast packets obtained by the conversion to the proxy server 200 (S1405).
  • the multicast processing unit 253 determines whether or not a LEAVE message has been received from the HTTP processing unit 251 (S1406). If it is determined that the LEAVE message has not been received (NO in S1406), the process returns to S1403.
  • the multicast processing unit 253 deletes the address of the proxy server 200 that has transmitted the LEAVE message from the target multicast group (S1407), and proceeds to S1408.
  • the multicast processing unit 253 determines whether there is another proxy server 200 belonging to the target multicast group. If it is determined that it exists (YES in S1408), the process returns to S1403.
  • the multicast processing unit 253 notifies the HTTP processing unit 251 that multicast distribution of the target video content has ended (multicast distribution end) (S1409), and the process ends.
  • the HTTP processing unit 101 of the client device 100 transmits a request for the media segment of the target video content to the proxy server 200 (S1701), and receives a response from the proxy server 200 (S1702).
  • the HTTP processing unit 101 determines whether or not the moov header is included in the response message received in S1702 (S1703). If it is determined that the moov header is included (YES in S1703), the process proceeds to S1704. If it is determined that the moov header is not included (NO in S1703), the process proceeds to S1705.
  • the playback unit 102 performs initialization processing necessary for playback of the target video content by referring to the moov header.
  • the left part in FIG. 20 shows a response message transmitted from the distribution server 300 to the proxy server 250, and the right part in FIG. 20 shows the response message transmitted to the client apparatus 100.
  • a plurality of multicast packets 52 converted from the response message shown on the left side in FIG. 20 are transmitted to the proxy server 200, but some packets 52 may be lost while passing through the backbone network 500.
  • the packet 52 constituting the movie fragment 03 and the movie fragment 04 is missing, and the response 51 received by the client device 100 is data in which the movie fragment 03 and the movie fragment 04 are missing.
  • the reason why only the movie fragment 03 and the movie fragment 04 are missing is that the response 51 is a response message in a multi-part format with the movie fragment as each part. Further, the fact that the two movie fragments of the movie fragment 03 and the movie fragment 04 have been lost, as shown in FIG. 20, although the movie fragment is one-second data in this embodiment, Since the difference between the included time stamps (X-Timestamp: 1.00 of movie fragment 02 and X-Timestamp: 4.00 of movie fragment 05) is 3 seconds instead of 1 second, the playback unit 102 can detect it. It has become.
  • the HTTP processing unit 101 determines whether or not to complement the missing part. That is, based on a setting made in advance by the user via an operation unit (not shown) (setting of whether a media segment should be played after complementing a missing part or a media segment should be played without complementing the missing part) Then, it is determined whether or not the missing part is to be complemented.
  • the playback unit 102 adjusts the playback time of Movie Fragment data in the received media segment (S1707). That is, the Movie Fragment data in the media segment describes the MovieFragment playback start time in X-Timestamp, and the client acquires MovieFragment data at the time to be played back from the X-Timesamp and plays it back. If a defect occurs in the media segment, there is no MovieFragment at the time to be played, and playback seems to stop, so the X-Timestamp value is adjusted and Movie Fragment continues (in time) To do.
  • the X-Timestamp of the movie fragment 05 is acquired as 2.00 so as to be continuous from the movie fragment 02. Then, the X-Timestamp of subsequent movie fragments is adjusted to be continuous in the same manner. Moreover, you may adjust at the time of reproduction
  • control is performed so that the last frame (still image) constituting the movie fragment is reproduced for one second thereafter.
  • the playback unit 102 records information indicating that playback should be performed for 2 seconds in the moof header of the previous movie fragment.
  • the HTTP processing unit 101 transmits a request to acquire the movie fragment of the missing part to the proxy server 200 (S1708), and proceeds to S1709.
  • the request for acquiring the missing movie fragment may be a request for a media segment including the missing movie fragment, or may be a request for acquiring only the missing movie fragment.
  • the URI of the request to obtain only the missing movie fragment is / ⁇ file name of the target video content> / ⁇ index number of the media segment> / ⁇ the number of the movie fragment in the media segment. Value indicating whether or not> For example, if the time stamp (X-timestamp) of the missing movie fragment is 45, the URI of the request is / content1 / 2/16.
  • the playback unit 102 determines whether the HTTP processing unit 101 has already acquired the movie fragment of the missing part corresponding to the request of S1708 (S1709). ). If it is determined that it has been acquired (YES in S1709), the playback unit 102 complements the missing movie fragment with the acquired new movie fragment (replaces it with a new movie fragment) (S1710). After the process of S1710, the process proceeds to S1713.
  • the playback unit 102 adjusts the playback time of Movie Fragment data in the received media segment (S1711).
  • the process of S1711 is the same process as the process of S1707.
  • the playback unit 102 sequentially plays back each movie fragment of the media segment received in S1702 (S1712). After the process of S1712, the process proceeds to S1714.
  • the playback unit 102 sequentially plays back each movie fragment of the media segment received in S1702 (or after complementing in S1710), and proceeds to S1714.
  • the reproducing unit 102 determines whether or not the reproduced media segment should be stored in a storage unit (not shown). In other words, the playback unit 102 determines that it should be stored when receiving an instruction to record the target video content from the user via the operation unit, and has not received an instruction to record. If it is, it is determined that it should not be accumulated.
  • the reproduced media segment is accumulated in the storage unit (S1716). After the process of S1716, the process proceeds to S1717. On the other hand, if it is determined that it should not be accumulated (NO in S1714), the process proceeds to S1717.
  • the playback unit 102 determines whether the media segment played back in S1713 is the last media segment of the target video content. If it is determined that it is not the last media segment (NO in S1717), the process returns to S1701. On the other hand, if it is determined that it is the last media segment (YES in S1717), the process proceeds to S1718.
  • the HTTP processing unit 101 releases the connection state with the proxy server 200, ends the reproduction of the target video content, and proceeds to S1719.
  • the playback unit 102 determines whether or not each media segment of the target video content has been recorded. If it is determined that the recording has been made (YES in S1719), the data complementing process in S1720 is performed, and the process ends. If it is determined that no recording has been made (NO in S1719), the process ends.
  • FIG. 21 is a flowchart showing the flow of data supplement processing of the client device 100.
  • the playback unit 102 of the client device 100 determines whether or not there is a missing part in the media segment played back in S1713 (S1801). If it is determined that a missing part exists (S1801), a request for obtaining a movie fragment of a missing part has already been issued in S1708, but the HTTP processing unit 101 has already obtained a movie fragment of a missing part corresponding to this request. It is determined whether or not it has been acquired (S1802). If it is determined that the movie fragment of the missing part has been acquired (YES in S1802), the process proceeds to S1803, and if it is determined that the movie fragment of the missing part has not yet been acquired (NO in S1802), the process proceeds to S1804. .
  • the HTTP processing unit 101 determines whether or not to complement the missing part. That is, based on a setting made in advance by the user via an operation unit (not shown) (setting whether to complement after completion of reproduction of the entire target video content or to complement during reproduction of the target video content) It is determined whether or not to complement.
  • the HTTP processing unit 101 determines whether or not a movie fragment of a missing part should be acquired.
  • the HTTP processing unit 101 determines that the movie fragment of the missing part should be acquired when an instruction to reproduce the media segment is provided without complementing the missing part, and the missing part is determined. If an instruction to reproduce the media segment is given after complementation, it is determined that the movie fragment of the missing part should not be acquired.
  • the HTTP processing unit 101 acquires the movie fragment of the missing part from the proxy server 200 (S1805), and proceeds to S1806. On the other hand, if it is determined that the movie fragment of the missing part should not be acquired (NO in S1804), the data complementing process is terminated.
  • the playback unit 102 complements the missing movie fragment with the new movie fragment acquired in S1708 or S1806, and ends the data complementing process.
  • the client device 100 acquires the movie fragment of the missing part from the proxy server 200 when the missing part exists in the received media segment.
  • the client device 100 can play the media segment with the missing portion being complemented.
  • the target video content can be recorded in a complete state by accumulating the media segment with the missing part complemented. it can.
  • the playback unit 102 of the client device 100 determines whether or not a playback interruption instruction has been received from the user (S1902).
  • the HTTP processing unit 101 If it is determined that a reproduction interruption instruction has been received (in S1902), the HTTP processing unit 101 then generates a request with a “Connection: Close” header added to the header as a request to be transmitted to the proxy server 200. (S1903).
  • the HTTP processing unit 101 transmits the request generated in S1903 to the proxy server 200 (S1904).
  • a live video input from a live camera (not shown) to the distribution server 300 is distributed live to the client device 100 as target video content. Further, since the live video input to the distribution server 300 is recorded in the memory unit 302 and distributed live, the client device 100 distributes the VOD distribution of the target video content from the distribution server 300 after the live distribution ends. It is possible to receive.
  • FIG. 24 is a sequence diagram showing the above operation example of the distribution system 1. In FIG. 24, descriptions of the operations of the client devices 100-2 to 100-4 and the proxy servers 200-2 to 200-4 are omitted.
  • the multicast processing unit 253 of the proxy server 250 transmits the multicast packet 52 of the target video content to the proxy server 200 (S40).
  • the HTTP processing unit 201 of the proxy server 200 sends the response 51 of the media segment to S40.
  • the response packet 51 is generated using the multicast packet 52 received in step S1 and the response 51 is transmitted to the client device 100-1 (S42).
  • the client device 100-5 transmits a request 43 for the target video content to the proxy server 200-5 (S43).
  • the request 43 is a request used to request transmission of the entire target video content. That is, the request 43 is different from the request 41 used for requesting transmission of a designated media segment in the target video content.
  • the HTTP processing unit 201 of the proxy server 200-5 Upon receiving the request 43, the HTTP processing unit 201 of the proxy server 200-5 relays the request 43 to the proxy server 250 (S44).
  • the HTTP processing unit 251 of the proxy server 250 Upon receiving the request 43, the HTTP processing unit 251 of the proxy server 250 confirms the URI (“/ content1 /”) of the request (S45). That is, it is determined whether or not the target video content (content whose file name is “content1”) has already been distributed by multicast (that is, whether or not a communication device belonging to the target multicast group already exists).
  • the proxy servers 200-1 to 200-4 belong to the target multicast group, it is determined that multicast distribution is being performed.
  • the HTTP processing unit 251 that has determined that the target video content is distributed by multicast generates an X-alternative-cast header. Then, the HTTP processing unit 251 sends the response message 51 of the latest media segment cached in the cache unit 252 (the media segment with an index value of t) to the X-- An alternative-cast header is added (S46).
  • the HTTP processing unit 251 transmits a response message 51 'including an X-alternative-cast header to the proxy server 200-5 (S47).
  • the HTTP processing unit 201 of the proxy server 200-5 converts the response message 51 'into the response message 51 and transmits it to the client device 100-5 (S48).
  • the playback unit 102 of the client device 100-5 plays back the response message 51 of the latest media segment (the media segment with the index value t) received by the HTTP processing unit 101. As a result, the client device 100-5 starts to reproduce the live video.
  • the HTTP processing unit 201 of the proxy server 200-5 transmits a multicast reception request (JOIN message) 42 to the proxy server 250 (S49).
  • the HTTP processing unit 251 of the proxy server 250 transmits a response to the JOIN message 42 to the proxy server 200-5 (S50). Further, the HTTP processing unit 251 records the address of the proxy server 200-5 in the multicast group information storage unit 254 as belonging to the target multicast group (S51).
  • the multicast processing unit 253 transmits the multicast packet 52 of the media segment whose index value is t + 1 or later to the proxy servers 200-1 to 200-5 (S52).
  • the HTTP processing unit 101 of the client device 100-5 that has received the response message 51 of the media segment with the index value t sends a request 41 for requesting the next media segment (with the index value t + 1) to the proxy server 200. -5 (S53), and receives the response 51 (media segment with index value t + 1) corresponding to the request 41 (S54).
  • the client device 100-5 repeats the processes of S53 and S54 for the subsequent media segments (index values t + 2, t + 3,).
  • the processing load of the distribution server 300 and the network load between the distribution server 300 and the proxy server 250 can be suppressed. Therefore, the target video content is efficiently distributed from the distribution server 300 to each client device 100.
  • the client device 100 can record simultaneously with the reproduction of the target video content in accordance with an instruction from the user.
  • the client device 100-5 when the client device 100-5 is set to record the target video content, the client device 100-5 has a media segment whose index value is t or later in the target video content. Will be accumulated.
  • the client device 100-5 acquires and accumulates t ⁇ 1 responses 51 by transmitting the request 41 of the media segment whose index value is t before the target video content to be VOD distributed after the live distribution is completed.
  • the entire target video content distributed live can be efficiently recorded.
  • proxy server 250 As described above, in the proxy server 250 of the distribution system 1, when the HTTP processing unit 251 detects that the request 41 requesting the target video content is sent from the proxy server 200, the proxy 250 replaces the proxy server 300. The server 250 transmits X-alternative-cast information indicating that the target video content can be transmitted by multicast communication to the proxy server 200. In addition, when the multicast processing unit 253 receives the JOIN message 42 from the proxy server 200, the multicast processing unit 253 registers the proxy server 200 in the target multicast group. Then, the multicast processing unit 253 relays the target video content in the cache unit 252 to each proxy server 200 registered in the target multicast group using multicast communication.
  • the distribution server 300 when the number of client devices 100 to which the target video content is distributed is three (the frequency of receiving distribution requests is less than a certain level), the distribution server 300, as shown in FIG. With respect to the segment, the distribution request is received three times and a response of the media segment is returned each time.
  • the distribution server 300 when the number of client devices 100 to which the target video content is distributed reaches a predetermined number (four) (the frequency of receiving a distribution request becomes more than a certain level), then the distribution server 300 can complete the process of receiving a distribution request and returning a response of a media segment for a media segment having the same content. Therefore, the processing load on the distribution server 300 and the network load between the distribution server 300 and the proxy server 250 are suppressed.
  • the proxy server 250 when the number of client devices 100 to which the target video content is distributed is three (the frequency of receiving the distribution request is less than a certain level), the proxy server 250 also has the same content media. With respect to the segment, the distribution request is received three times and a response of the media segment is returned each time.
  • the proxy server 250 when the number of client devices 100 to which the target video content is distributed reaches a predetermined number (four) (the frequency of receiving the distribution request becomes more than a certain level), the proxy server 250 , Media segments can be multicasted. That is, the data amount of data transmitted by the proxy server 250 in order to distribute media segments having the same contents to the four client apparatuses 100 is the data amount of one media segment. Therefore, the bandwidth load in the area close to the proxy server 250 in the backbone network is suppressed.
  • the media segment is transmitted from the distribution server 300 to the proxy server 250 in the MIME multi-part format in which each part is a movie fragment, and the proxy server 250 may transmit all of one part (movie fragment) or A part of data is stored in one multicast packet for multicast distribution. Therefore, even if one multicast packet is lost during transmission of a large number of multicast packets, the effect of the drop only affects one movie fragment. Accordingly, it is possible to cause the client device 100 to stably reproduce the video content.
  • the proxy server 200 joins and leaves the multicast group by transmitting an IGMP JOIN message and a LEAVE message.
  • IGMP is a protocol used when a multimedia router routes multicast data in IP broadcasting (IP multicast).
  • a multimedia router is configured to grasp whether or not there is a host device participating in a multicast group using IGMP.
  • the multimedia router transmits multicast data to host devices participating in the multicast group. Therefore, in order for the host device to receive certain multicast data, it is necessary to transmit an IGMPIGJOIN message requesting participation in the multicast group to which the multicast data is transmitted to the multimedia router.
  • the host device needs to respond to a query (IGMP-QUERY) transmitted from the multimedia router at regular intervals (transmit IGMP-REPORT). Furthermore, in order not to receive the multicast data, the host device needs to send an IGMP LEAVE message requesting to leave the multicast group that is the transmission destination of the multicast data.
  • IGMP-QUERY a query transmitted from the multimedia router at regular intervals
  • the multimedia router needs to perform various processes such as a process for joining the host device to the multicast group, a process for sending a query, and a process for leaving the host device from the multicast group.
  • the process of removing the host device from the multicast group is a time-consuming process. This is because, when the multimedia router receives the IGMP LEAVE message, it checks whether there is another host device to which the multicast data should be transmitted by a query, and then stops the transmission of the multicast data.
  • multimedia data is transmitted to the host device for a while after the host device transmits the IGMP LEAVE message.
  • channel zapping is performed while a host device is receiving multicast distribution of video content, not only multicast data of the video content of the channel switching destination but also multicasting of the video content of the channel switching source for a while. Data will also be sent. In other words, since a certain bandwidth is generally compensated for multicast distribution, there is a problem that the network bandwidth is wasted in channel zapping.
  • the multicast group having the video content of the channel switching destination as the transmission destination of the host device It is also possible to participate.
  • another problem arises that a time lag occurs between the stop of playback of the video content of the channel switching source and the start of playback of the video content of the channel switch destination.
  • the distribution system 1 while the video content having the file name “content1” (also referred to as “switching source video content”) is being played back on the client device 100-1, the file name of the video content to be played back is received from the user. It is assumed that a channel switching instruction to switch to “content2” video content (also referred to as “switched video content”) is issued. Further, it is assumed that the proxy server 250 has already multicast-distributed the switching destination video content to other client devices 100 before the channel switching instruction is issued.
  • FIG. 25 is a sequence diagram showing the above operation example.
  • the proxy server 200 that receives the request 41 of the switching source video content from the client device 100-1 receives the response 51a from the proxy server 250, and sends the switching source video content to the destination of multicast distribution.
  • An IGMP JOIN message requesting participation in the multicast group (referred to as “switching source multicast group”) is transmitted to the proxy server 200 (S50).
  • the multicast processing unit 253 Upon receiving the IGMP25JOIN message, the multicast processing unit 253 starts transmission of the multicast packet 52 of the switching source video content toward the proxy server 200 (S51). Thereafter, the response 51 of the switching source video content is distributed from the proxy server 200-1 to the client device 100-1 in the same manner as in the first embodiment (the processing of S51 to S54 below is repeated). .
  • the multicast processing unit 203 of the proxy server 200-1 collectively converts the plurality of multicast packets 52 distributed in S51 into the response 51 of the media segment (S52) and caches it in the cache unit 202 (S53). .
  • the HTTP processing unit 201 reads the corresponding response 51 from the cache unit 202 (S54). ) To the client device 100-1.
  • the client apparatus 100-1 instructs the channel switching from the user via the operation unit. Suppose you received it.
  • the HTTP processing unit 101 of the client device 100-1 that has received the channel switching instruction transmits a request 41 ′ of the switching source video content (that is, a request with the “Connection: Close” header added) to the proxy server 200 ( S55).
  • the HTTP processing unit 101 transmits a request 41 of the switching destination video content to the proxy server 200 (S56).
  • the HTTP processing unit 201 of the proxy server 200-1 When the HTTP processing unit 201 of the proxy server 200-1 newly receives the switching destination video content request 41 in S56, it determines whether or not the switching source video content request 41 'has been received. Here, since the request 41 'is received in S55, it is determined that the request URI has been changed (S57). Since it is determined that the request URI has been changed, the HTTP processing unit 201 relays the request 41 to the proxy server 250 (S60).
  • the multicast processing unit 203 transmits an IGMP LEAVE message requesting leaving from the switching source multicast group to the proxy server 250 (S58).
  • the multicast processing unit 253 of the proxy server 250 starts processing for leaving the proxy server 200-1 from the switching source multicast group (S59). As described above, since this process requires a certain time, the multicast packet 52 of the switching source video content is transmitted to the proxy server 200-1 for a while. In this case, the proxy server 200-1 discards the multicast packet 52.
  • the HTTP processing unit 251 of the proxy server 250 that has received the request 41 relays the request 41 to the distribution server 300 (S61).
  • the HTTP processing unit 251 sets ⁇ delivery address> in the response message 51 as the address of the switching destination multicast group.
  • An X-alternative-cast header is added (S62), and a response 51 ′ is generated.
  • the HTTP processing unit 251 transmits the response 51 'of the switching destination video content to the proxy server 200-1 (S63).
  • the HTTP processing unit 201 of the proxy server 200-1 Upon receiving the response 51 ', the HTTP processing unit 201 of the proxy server 200-1 transmits the response 51 of the switching destination video content to the client device 100-1 (S64). From this time point, reproduction of the switching destination video content is started in the client device 100-1.
  • the multicast processing unit 203 transmits an IGMP JOIN message requesting participation in the switching destination multicast group to the proxy server 250.
  • the multicast packet 52 of the switching destination video content is distributed to the proxy server 200.
  • the timing at which the multicast processing unit 203 transmits an IGMP JOIN message requesting participation in the switching destination multicast group to the proxy server 250 is when the multicast processing unit 203 determines that the IGMP JOIN message should be transmitted. It is desirable to be.
  • the multicast processing unit 203 determines that the IGMP JOIN message should be transmitted when a certain time has elapsed since the multicast packet 52 of the switching source video content is no longer received and discarded, and the certain time has elapsed. It is desirable to determine that the IGMP JOIN message should not be sent at the timing before
  • the HTTP processing unit 201 When the HTTP processing unit 201 receives the request 41 of the switching destination video content (second content) in S56, the response of the switching source video content (first content) to be transmitted to the client device 100-1.
  • a “Connection: Close” header may be added to 51 and transmitted to the client apparatus 100-1. In this case, the connection state established between the client device 100-1 and the proxy server 200 in order to relay the switching source video content is released immediately after the response is transmitted.
  • the client device 100 when channel switching is performed, the client device 100 performs the switching source video content request 41 ′ (HTTP request including the “Connection: Close” header) and the switching destination. If the video content request 41 is transmitted to the proxy server 200, playback of the switching destination video content can be started immediately. Further, the network bandwidth between the client device 100 and the proxy server 200 is not compressed during the channel switching.
  • the switching source video content request 41 ′ HTTP request including the “Connection: Close” header
  • the client of the distribution system 1 receives the video content by multicast communication (that is, transmits an IGMP LEAVE message requesting to leave the switching source multicast group to the multimedia router at the time of channel zapping).
  • the device 100 has an effect that it is possible to achieve both the quick reproduction of the switching destination video content and the suppression of the network bandwidth load on the client device 100 side.
  • the switching destination video content can be quickly played back, if the switching destination video content is a live video content that has already been distributed live, the user can view the live video at an early timing. Can do.
  • the channel is switched between the client device 100 of the present embodiment and the conventional client device, and then the switching destination. There may be a case where the difference in time required to start playing the video content further widens.
  • the client device cannot allow the user to view the video until the encoded key frame data is acquired and decoded.
  • IP multicast distribution multicast packets may be lost during transmission. That is, when the client device directly receives the multicast packet of the switching destination video content as in the prior art, there is a possibility that the start of playback of the switching destination video content is delayed due to the lack of the key frame due to the loss of the multicast packet.
  • the client device 100 of the present embodiment as described above, communication reliability is consistently established between the client device 100 and the distribution server 300 until the playback of the switching destination video content is started after the channel is switched. It is performed by highly reliable HTTP communication. In other words, until the switching destination video content is started to be played, the lack of key frames does not occur in the process of distributing the switching destination video content from the distribution server 300 to the client device 100. Therefore, the client device 100 according to the present embodiment can reliably start the reproduction of the switching destination video content quickly even when the switching destination video content is compressed and encoded.
  • the distribution server 300 or the proxy server 250 is configured to be able to process the X-Transport-Speed header, and the client device 100 transmits an HTTP request including the X-Transport-Speed header to the proxy server 200.
  • the X-Transport-Speed header is a header for requesting the HTTP server to transmit data at a transmission rate corresponding to the value specified by the header.
  • the client device 100 can receive the data of the switching destination video content at high speed by setting a large value as the X-Transport-Speed header. Therefore, the client device 100 can start the reproduction of the switching destination video content more quickly even when the key frame is not included in the head portion of the data of the switching destination video content.
  • the proxy server 250 plays the role of a multimedia router (that is, no multimedia router exists on the communication path between the proxy server 200 and the proxy server 250).
  • the backbone network 500 may be a network in which a multimedia router is interposed between the proxy server 200 and the proxy server 250.
  • the proxy server 200 transmits a notification such as IGMP JOIN or IGMP LEAVE to the multimedia router closest to the proxy server 200 among the multimedia routers on the communication path with the proxy server 250.
  • the client device 100 issues a request for target video content in units of media segments.
  • the client device 100 may issue a request in units of the entire target video content.
  • the proxy server 250 converts the request received from the proxy server 200 into a request in units of media segments.
  • the HTTP processing unit 251 receives a request for the entire target video content (a request message beginning with “GET / content1 / 1 HTTP / 1.1”), it starts with “GET / content1 / 1 HTTP / 1.1”.
  • a request 41 is generated and transmitted to the distribution server 300, and a corresponding response is received.
  • the HTTP processing unit 251 generates a request 41 that starts with “GET / content1 / t / HTTP / 1.1”, transmits the request 41 to the distribution server 300, and receives a corresponding response. This is repeated until the entire target video content is received.
  • the proxy server 250 when the proxy server 250 receives the request 41 from the proxy server 200 and does not perform multicast distribution, the request 41 is relayed to the distribution server 300. However, the multicast distribution is performed. In such a state, the proxy server 250 may be operated as follows.
  • the proxy server 250 if the response 51 corresponding to the request 41 is cached in the cache unit 252 when the request 41 is received from the proxy server 200, the proxy server 250 generates the cached response 51 (or the response 51).
  • the response 51 ′) may be transmitted to the proxy server 200.
  • the IP address of each device is an address defined by IPv4.
  • the present invention is not limited to this. That is, the IP address of each device may be an address defined by IPv6.
  • the proxy server 250 may perform multicast distribution using a multicast distribution method defined for networks configured with IPv6.
  • the client device 100 determines whether or not a missing part exists in the received media segment, and acquires data of the missing part when it is determined that the missing part exists (that is, the missing part data). Although it is assumed that a distribution request for a movie fragment (or a media segment including a missing part) is made, this processing may be performed by the proxy server 200 of the client device 100. Further, the proxy server 200 may use a packet retransmission technique, FEC (Forward Error Correction), or the like in order to acquire data of a missing part.
  • FEC Forward Error Correction
  • the proxy server 200 is a proxy server for a plurality of client devices 100
  • the defective portion can be efficiently detected rather than causing each client device 100 to individually acquire the missing portion data. Data can be acquired.
  • the accumulated amount of the response 51 to be cached exceeds the storage capacity of the cache unit 202, and the multicast packet 52 that is multicast-distributed from the proxy server 250 thereafter is stored. It may be destroyed.
  • the proxy server 200 determines that the request 41 The response 51 can be acquired from the proxy server 250 by relaying.
  • the client device 100 can grasp which media segment has not been acquired during the certain period, it can reacquire all the media segments that have not been obtained during the certain period.
  • the proxy server 200 operates as follows in order to prevent the accumulated amount of data cached in the cache unit 202 from exceeding the storage capacity of the cache unit 202. You may let them.
  • the multicast processing unit 203 of the proxy server 200 determines that the amount of data cached in the cache unit 202 exceeds a certain threshold, one of the hierarchized media segments that the multicast packet 52 configures. It is also possible to extract only the data of the part hierarchy, convert it into a response message, and cache it in the cache part 202. For example, when the media segment that the multicast packet 52 comprises is composed of a base layer and an enhancement layer, a response message in which only the base layer is extracted may be cached in the cache unit 202.
  • the multicast processing unit 203 determines that the amount of data cached in the cache unit 202 has exceeded a certain threshold, a part of media segments composed of a plurality of quality data included in the multicast packet 52 Only the quality data may be extracted and converted into a response message and cached in the cache unit 202.
  • the media segment included in the multicast packet 52 includes one-segment data and 13-segment data
  • a response message obtained by extracting only the one-segment data may be cached in the cache unit 202.
  • the HTTP processing unit 201 of the proxy server 200 reads the response 51 cached in the cache unit 202, and displays information indicating a tier that can be provided, quality (bit rate), and the like in the header part of the response 51 or By adding to each part of the multipart, the hierarchy (or quality) to be acquired by the client apparatus 100 can be changed.
  • Each block of the client device 100, the proxy servers 200 and 250, and the distribution server 300 (300 ′) may be realized in hardware by a logic circuit formed on an integrated circuit (IC chip), or may be a CPU ( It may be realized by software using a Central Processing Unit.
  • the client device 100, the proxy servers 200 and 250, and the distribution server 300 include a CPU that executes instructions of a program that realizes each function, a ROM (Read Memory) that stores the program, and a RAM that expands the program. (Random Access Memory), a storage device (recording medium) such as a memory for storing the program and various data, and the like.
  • An object of the present invention is to obtain program codes (execution format program, intermediate code program, source program) of control programs for the client device 100, the proxy servers 200 and 250, and the distribution server 300, which are software for realizing the functions described above.
  • the computer-readable recording medium is supplied to the client device 100, the proxy servers 200 and 250, and the distribution server 300, and the computer (or CPU or MPU) reads the program code recorded on the recording medium. It can also be achieved by executing.
  • Examples of the recording medium include tapes such as magnetic tapes and cassette tapes, magnetic disks such as floppy (registered trademark) disks / hard disks, and disks including optical disks such as CD-ROM / MO / MD / DVD / CD-R.
  • IC cards including memory cards
  • semiconductor memories such as mask ROM / EPROM / EEPROM / flash ROM, or PLD (Programmable logic device) or FPGA (Field Programmable Gate Array) Logic circuits can be used.
  • the program code may be supplied to the client device 100, the proxy servers 200 and 250, and the distribution server 300 via a communication network.
  • the communication network is not particularly limited as long as it can transmit the program code.
  • the Internet intranet, extranet, LAN, ISDN, VAN, CATV communication network, virtual private network (Virtual Private Network), telephone line network, mobile communication network, satellite communication network, etc. can be used.
  • the transmission medium constituting the communication network may be any medium that can transmit the program code, and is not limited to a specific configuration or type.
  • wired lines such as IEEE 1394, USB, power line carrier, cable TV line, telephone line, ADSL (Asymmetric Digital Subscriber Line) line, infrared rays such as IrDA and remote control, Bluetooth (registered trademark), IEEE 802.11 wireless, HDR ( It can also be used by wireless such as High Data Rate, NFC (Near Field Communication), DLNA (Digital Living Network Alliance), mobile phone network, satellite line, and terrestrial digital network.
  • wired lines such as IEEE 1394, USB, power line carrier, cable TV line, telephone line, ADSL (Asymmetric Digital Subscriber Line) line, infrared rays such as IrDA and remote control, Bluetooth (registered trademark), IEEE 802.11 wireless, HDR ( It can also be used by wireless such as High Data Rate, NFC (Near Field Communication), DLNA (Digital Living Network Alliance), mobile phone network, satellite line, and terrestrial digital network.
  • wired lines such as IEEE 1394, USB, power line carrier, cable TV line, telephone line, ADSL (Asymmetric Digital Subscriber Line) line,
  • the transmission device is configured to be capable of transmitting a plurality of different contents in response to a request from the communication device.
  • the proxy server of the present invention when the proxy server of the present invention receives a request to transmit content by unicast communication from a large number of communication devices in a short period of time for the same content, It is possible to relay to a large number of communication devices by multicast communication.
  • the same content is received from only a small number of communication devices as a request to transmit the content by unicast communication, the content is relayed to the small number of communication devices by unicast communication.
  • the proxy server can maintain a good balance between the suppression of the network bandwidth load by multicast communication and the stable transmission by unicast communication according to the status of the network bandwidth load. Play.
  • the transmission device is configured to sequentially transmit each piece of divided data obtained by dividing the content into a plurality of pieces in response to a request from the communication device, and the relay unit of the proxy server It is desirable to sequentially relay each divided data cached in the storage unit to the communication device.
  • the proxy server has an additional effect that multicast communication can be performed more efficiently.
  • the content is preferably video content, and the video content is preferably composed of a plurality of movie fragments.
  • the proxy server has an additional effect of enabling fine playback control of the video content in the playback device that plays back the content.
  • the video content transmitted from the transmitting device is multipart data including one movie fragment in each part.
  • the proxy server has an additional effect that it can acquire data lost in the communication device in a short period of time.
  • the proxy server in each part, not only the one movie fragment but also the one movie fragment among the plurality of movie fragments, the number of the playback device that plays the video content is to be played back. It is desirable that the indicated value is included.
  • the said proxy server makes the communication apparatus which received the data of multipart format determine whether the value which shows the said what order should be reproduced
  • the proxy server is configured such that the relay means relays video content to be relayed to each communication device by transmitting a plurality of packets to each communication device by multicast communication.
  • Each preferably includes at least one movie fragment in whole or in part.
  • the communication device even when N packets out of M packets transmitted by the proxy server to the communication device by multicast communication are lost during transmission, the communication device has MN pieces. The above movie fragments can be received.
  • the proxy server has an additional effect that even if a considerable number of packets are lost during transmission, the communication device can acquire the lost data in a short period of time.
  • the proxy server functions as the communication device that transmits the first request to the proxy server (transmission-side proxy server), and responds to the first request received from the reproduction device that reproduces the content.
  • the second request is sent to the transmitting proxy server.
  • a proxy server provided with first determination means for determining whether or not to transmit is also included in the scope of the present invention.
  • the proxy server performs multicast communication from the transmission side proxy server only when the first determination unit determines that the second request should be transmitted to the transmission side proxy server. To receive content.
  • the proxy server can appropriately select whether to suppress network bandwidth load by multicast communication or to ensure stable transmission by unicast communication.
  • the proxy server maintains a connection state established with the playback device for relaying the content while the relay means relays the content to the playback device.
  • a connection established with the playback device to relay the first content when receiving a first request to transmit the second content while relaying the content to the playback device It is desirable to release the state.
  • the proxy server immediately ends the processing related to the first content when the playback device switches the content to be played back from the first content to the second content. Can do.
  • the proxy server can further reduce the processing load due to the switching of the content of the playback device.
  • the proxy server when the proxy server receives the first request that the second content should be transmitted while the first content is being relayed to the playback device, the first content is A transmission means for transmitting a request for releasing the own device from the multicast group to which each relayed communication device belongs to the transmitting proxy server, and a certain time after the first content is not transmitted to the own device. And a second determination means for determining whether or not the second determination means determines whether the second determination means determines that a certain time has elapsed. It is desirable to determine that the request should be sent to the sender proxy server.
  • the proxy server when the playback device switches the content to be played back from the first content to the second content, the proxy server has both the first content and the second content. It is possible to suppress the unnecessary bandwidth load on the network between the proxy servers, in which multicast communication is received from the transmission side proxy server.
  • the present invention can also be realized as a communication system including each proxy server, the playback device, and the transmission device.
  • a program for operating the proxy server according to the present invention characterized in that the computer functions as each of the above-mentioned means, and a computer readable recording the relay control program Such recording media are also included in the scope of the present invention.
  • the communication system according to the present invention can be widely used as a video distribution system.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Information Transfer Between Computers (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

 プロキシ(250)は、プロキシ(200)からの映像リクエストの検出時に、サーバ(300)の代理で自身がマルチキャストで映像を送信できる旨を示す情報を該プロキシに送信する処理部(251)とプロキシ(200)からのJOINメッセージ受信時に該プロキシをマルチキャストグループに登録する処理部(253)とを備える。処理部(253)はキャッシュ(252)の映像を登録済の各プロキシにマルチキャストで中継する。

Description

プロキシサーバ、中継方法、通信システム、中継制御プログラム、および記録媒体
 本発明は、再生装置または再生装置のプロキシサーバといった通信装置からの要求に基づいて送信装置から送信されたデータを、通信装置に中継する送信装置のプロキシサーバ、およびそのようなプロキシサーバにおける中継方法に関する。また、本発明は、そのようなプロキシサーバとしてコンピュータを動作させる中継制御プログラム、および、該中継制御プログラムを記憶している記録媒体に関する。さらに、本発明は、そのようなプロキシサーバと、通信装置と、送信装置と、を少なくとも含む通信システムに関する。
 近年、インターネットに対する需要が急速に高まるにしたがって、テキストや静止画等の静的コンテンツで構成されたWEBページを見るだけでなく、動画コンテンツおよび音声コンテンツを、ストリーミング配信を受けて鑑賞することを望むユーザが増えてきている。
 一般に、テキストデータや静止画データ等の静的コンテンツは、http(s)プロトコル等によるユニキャスト通信により送受信されるようになっている。また、動画コンテンツおよび音声コンテンツもユニキャスト通信により送受信されることが多い。
 ユニキャスト通信により動画コンテンツを配信する配信方式として、MPEG(Moving Picture Expert Group)のMP4ファイルフォーマットを順次ダウンロードさせることによる配信方式(特許文献1)や、MPEGのISO Media File Formatのフラグメント映像形式を用いた配信方式(特許文献2)等が挙げられる。
 一般にユニキャスト通信によるデータの送受信は、通信元と通信先とでコネクションを確立した上で行われるため、データの送受信の信頼性が高いというメリットがある。
日本国特許公開公報「特開2005-110244号公報(2005年4月21日公開)」 日本国特許公開公報「特開2007-173987号公報(2007年7月5日公開)」
 しかしながら、上記従来のようなユニキャスト通信による配信方式では、図23において矢印で示したように、配信サーバは、配信要求を出した各クライアント装置に対して個別に動画コンテンツを配信するため、多数のクライアント装置から一度に配信要求を受けた場合にネットワークの帯域負荷が高まるという問題がある。また、配信サーバは、一度に多数の再生装置とコネクションを確立する必要があるため、配信サーバ自体の処理負荷も高まるという問題がある。
 本発明は上記の問題を鑑みてなされたものであり、その主な目的は、送信装置から送信されるデータによるネットワークの帯域負荷を抑えることが可能な、送信装置のプロキシサーバを実現することにある。
 本発明に係るプロキシサーバは、上記課題を解決するために、通信装置からの要求に応じて送信装置から送信されるコンテンツを、記憶部にキャッシュするとともに上記通信装置に中継するプロキシサーバであって、ユニキャスト通信によりコンテンツを送信すべき旨の第1の要求が上記通信装置から上記送信装置に送られたことを検出した場合に、上記送信装置の代わりに該プロキシサーバがマルチキャスト通信により該コンテンツを送信可能であることを示す情報を上記通信装置に送信する送信手段と、上記通信装置からマルチキャスト通信を用いて上記コンテンツを送信すべき旨の第2の要求を受信した場合に、上記通信装置をマルチキャストグループに登録する登録手段と、上記記憶部にキャッシュされた該コンテンツを、マルチキャスト通信を用いて上記マルチキャストグループに登録された各通信装置に中継する中継手段と、を備えていることを特徴としている。
 上記プロキシサーバは、例えば、上記第1の要求がHTTPリクエストメッセージであり、上記送信手段が、上記情報をヘッダ情報として含むHTTPレスポンスメッセージとして送信するようになっており、上記ヘッダ情報には、上記マルチキャストグループのアドレスを示す値が含まれるように構成することができる。
 上記の構成によれば、上記プロキシサーバは、通信装置からの要求に応じて上記送信装置から送信されるコンテンツを、上記送信装置の代わりに自身がマルチキャスト通信により送信可能であることを示す情報を通信装置に送信する。そして、上記プロキシサーバは、マルチキャスト通信を用いて上記コンテンツを送信すべき旨の要求を上記通信装置から受信した場合に、上記送信装置の代わりに自身がマルチキャスト通信を用いて上記コンテンツを上記通信装置に送信する。
 したがって、複数の通信装置から上記送信装置に対してユニキャスト通信によるコンテンツの配信要求があった場合に、上記プロキシサーバは、上記複数の通信装置に対してマルチキャスト通信によりコンテンツを配信することができる。
 これにより、複数の通信装置から上記送信装置に対してユニキャスト通信によるコンテンツの配信要求があった場合に、上記送信装置からユニキャスト通信により個別に送信された各コンテンツをそのまま中継する従来のプロキシサーバに比べ、本発明のプロキシサーバは、送信装置から送信されるデータによるネットワークの帯域負荷を抑えることができるという効果を奏する。
 本発明に係る中継方法は、上記課題を解決するために、通信装置からの要求に応じて送信装置から送信されるコンテンツを、記憶部にキャッシュするとともに上記通信装置に中継するプロキシサーバにおける中継方法であって、ユニキャスト通信によりコンテンツを送信すべき旨の第1の要求が上記通信装置から上記送信装置に送られたことを検出した場合に、上記送信装置の代わりに該プロキシサーバがマルチキャスト通信により該コンテンツを送信可能であることを示す情報を上記通信装置に送信する送信工程と、上記通信装置からマルチキャスト通信を用いて上記コンテンツを送信すべき旨の第2の要求を受信した場合に、上記通信装置をマルチキャストグループに登録する登録工程と、上記記憶部にキャッシュされた該コンテンツを、マルチキャスト通信を用いて上記マルチキャストグループに登録された各通信装置に中継する中継工程と、を含んでいることを特徴としている。
 上記の構成によれば、本発明の中継方法は、本発明のプロキシサーバと同様の作用効果を奏する。
 以上のように、本発明のプロキシサーバは、送信装置から送信されるデータによるネットワークの帯域負荷を抑えることができるという効果を奏する。
本発明の実施形態に係る配信システムの全体構成を示した図である。 図1の配信システムにおいて、配信サーバからクライアント装置に映像コンテンツが配信されている間の各装置間の通信処理を模式的に示した図である。 図1の配信システムを構成する各装置の詳細な構成を示した機能ブロック図である。 映像コンテンツのビットストリームと、ムービーフラグメントと、の関係を模式的に示した図である。 メディアセグメントと、ムービーフラグメントと、の関係を模式的に示した図である。 図1の配信システムの各装置間において、クライアント装置が映像コンテンツの配信要求を出してから、クライアント装置への映像コンテンツの配信が完了するまでに行われる全処理工程の前半部分を示すシーケンス図である。 図1の配信システムの各装置間において、クライアント装置が映像コンテンツの配信要求を出してから、クライアント装置への映像コンテンツの配信を完了するまでに行われる全処理工程の後半部分を示すシーケンス図である。 図6および図7のシーケンスが表わす処理工程の中で送信されるメッセージの一例を示す図である。(a)はクライアント装置が送信するリクエストメッセージを示す図であり、(b)は配信サーバが送信するレスポンスメッセージを示す図である。 図6および図7のシーケンスが表わす処理工程の中で送信されるメッセージの別の一例を示す図である。(a)は配信サーバのプロキシサーバが送信するレスポンスメッセージを示す図である。また、(b)および(c)は、それぞれ、クライアント装置のプロキシサーバが送信するHTTPメッセージ形式のマルチキャストグループのJOINメッセージおよびLEAVEメッセージを示している。 (a)~(c)は、図1の配信システムにおいて、配信サーバのプロキシサーバからクライアント装置のプロキシサーバに対して送信されるマルチキャストパケットの構造を示す図である。 図1の配信システムにおいて、配信サーバのプロキシサーバが、どのようにしてHTTPのレスポンスメッセージとして送信された映像コンテンツのデータをマルチキャストのパケットに変換するかを具体的に示した図である。 図1の配信システムにおいて、各装置間の通信処理を模式的に示した図である。(a)は配信要求を出しているクライアント装置の数が3つである場合の図であり、(b)は配信要求を出しているクライアント装置の数が3つである場合の図である。 図1の配信システムにおいて、映像コンテンツの再生を中断する旨の指示をクライアント装置がユーザから受けた場合における、各装置間の処理の流れを示すシーケンス図である。 図1の配信システムにおいて、クライアント装置のプロキシサーバが備えるHTTP処理部の動作を示すフローチャートである。 図1の配信システムにおいて、クライアント装置のプロキシサーバが備えるマルチキャスト処理部の動作を示すフローチャートである。 図1の配信システムにおいて、配信サーバのプロキシサーバが備えるHTTP処理部が行う動作を示すものであり、クライアント装置のプロキシサーバを送信先とするレスポンスメッセージを受信した場合に行う動作を示すフローチャートである。 図1の配信システムにおいて、クライアント装置のプロキシサーバが備えるマルチキャスト処理部の動作を示すフローチャートである。 図1の配信システムにおいて、配信サーバのプロキシサーバが備えるHTTP処理部の動作を示すものであり、JOINメッセージを受信した場合に行う動作を示すフローチャートである。 図1の配信システムにおいて、クライアント装置の動作を示すフローチャートである。 図1の配信システムにおいて、マルチキャスト通信中にマルチキャストパケットが欠損した場合に、クライアント装置に送信されるHTTPのレスポンスメッセージの一例を示す図である。 図1の配信システムにおいて、クライアント装置が、再生中のコンテンツを同時に録画する場合に、マルチキャスト通信により欠損したムービーフラグメントを、HTTP通信により取得した欠損部のムービーフラグメントにより補完する処理を示すフローチャートである。 図1の配信システムにおいて、映像コンテンツの再生を中断する旨の指示をユーザから受けた場合に、クライアント装置が行う動作を示すフローチャートである。 従来技術を示すものであり、複数のクライアント装置の各々が配信サーバから個別に映像コンテンツのデータを受信する配信システムを示す図である。 図1の配信システムにおいて、マルチキャスト配信がすでに行われている状態で新たにクライアント装置が映像コンテンツの配信要求を出した場合の動作例を示すシーケンス図である。 図1の配信システムにおいて、クライアント装置で再生する映像コンテンツを切り替えた場合の動作例を示すシーケンス図である。
 (実施形態1)
 本発明の一実施形態に係る配信システムについて図面を参照しながら説明する。
 図1は、本実施形態に係る配信システム1の全体構成を示した図である。配信システム1は、N台のクライアント装置100(100-1、100-2、・・、100-N)と、各クライアント装置100のプロキシであるプロキシサーバ200(200-1、200-2、・・、200-N)と、配信サーバ300と、配信サーバ300のプロキシサーバ250と、を含むシステムである。
 図1に示すように、配信システム1では、プロキシサーバ250と、配信サーバ300と、により配信側ネットワーク(LAN)が形成され、クライアント装置100-1~100-Nと、プロキシサーバ200-1~200-Nと、により、再生側ネットワーク(LAN)が形成されている。また、2つのLANは、基幹ネットワーク500により隔てられており、基幹ネットワーク500には各プロキシサーバ200-1~200-N、250が接続されている。
 なお、本実施形態では、基幹ネットワーク500は、プロキシサーバ200とプロキシサーバ250と間にルーターが介在しないネットワークを想定している。
 また、配信システム1では、配信サーバ300が複数のチャンネルの映像コンテンツを配信可能になっている。そして、クライアント装置100では、図示しない操作部を介してチャンネルの指定をユーザから受けると、指定されたチャンネルの映像コンテンツ(以下、「対象映像コンテンツ」とも称する)が配信サーバ300から配信されるようになっている。クライアント装置100からの配信要求、および配信サーバ300から配信される映像コンテンツは、まず、対応するプロキシサーバに向けて送信されるようになっている。
 図2は、配信システム1において、配信サーバ300からクライアント装置100-1~100-Nに映像コンテンツが配信されている間の各装置間の通信処理を模式的に示した図である。図2において右向きおよび左向きの細い矢印はHTTPプロトコル(すなわち、ユニキャスト通信)による映像コンテンツの要求および応答を示している。また、図2において、太い矢印はマルチキャスト通信による映像コンテンツの伝送を示している。
 図2に示すように、配信システム1では、各LAN内では、データ伝送プロトコルの1つであるHTTP(Hypertext Transfer Protocol)プロトコルのリクエスト・レスポンスの仕組みを用いて、映像コンテンツが送信される。また、このとき、映像コンテンツは、HTTPプロトコルで規定されているMIMEマルチパート形式(単に「マルチパート形式」と称する)でやりとりされる。
 さらに、図2に示すように、配信システム1では、基幹ネットワーク内において、映像コンテンツがマルチキャスト通信により配信されるようになっている。マルチキャスト通信を用いることにより、プロキシサーバ250は、データ(映像コンテンツのパケット)を一度送信するだけで、当該データを、送信先のマルチキャストグループに属する複数のプロキシサーバ200に向けて配信できるようになっている。
 以下では、図3を参照しながら、クライアント装置100、プロキシサーバ200、プロキシサーバ250および配信サーバ300についての詳細な構成を説明する。
 (クライアント装置100)
 クライアント装置100は、HTTP処理部101および再生部102を備えている。
 HTTP処理部101は、後述するメディアセグメント(映像コンテンツを一定時間ごとに分割して得られる各単位、各図中において単に「MS」とも略称する)単位で、映像コンテンツの配信要求(リクエストメッセージ)をプロキシサーバ200に送信する。
 また、HTTP処理部101は、映像コンテンツをメディアセグメント単位で、後述するムービーフラグメント(フラグメント)を各パートとするマルチパート形式のレスポンスメッセージとしてプロキシサーバ200から受信する。
 再生部102は、HTTP処理部101が受信した各メディアセグメントを読み出すことにより映像コンテンツを再生する。
 (プロキシサーバ200)
 プロキシサーバ200は、HTTP処理部201、キャッシュ部202、およびマルチキャスト処理部203を備えている。
 HTTP処理部201は、クライアント装置100から受信した配信要求を、プロキシサーバ200を送信元としてプロキシサーバ250に転送したり、配信要求を受けたデータをキャッシュ部202から読み出してクライアント装置100に送信したりする。
 キャッシュ部202は、データを保持するキャッシュメモリである。
 マルチキャスト処理部203は、マルチキャストグループへの参加およびマルチキャストグループからの離脱をプロキシサーバ250に要求する。また、マルチキャスト処理部203は、マルチキャスト通信により伝送されてきたデータを受信してHTTPレスポンスメッセージの形式に変換する。
 (プロキシサーバ250)
 プロキシサーバ250は、HTTP処理部251、キャッシュ部252、マルチキャスト処理部253、およびマルチキャストグループ情報記憶部254を備えている。
 HTTP処理部251は、プロキシサーバ200から受信した配信要求を配信サーバ300に中継する。また、HTTP処理部251は、所定の台数以上の通信装置に対象映像コンテンツを配信中の場合に、配信サーバ300から送られてきた対象映像コンテンツのレスポンスメッセージに、対象映像コンテンツをマルチキャスト配信可能であることを示すヘッダ情報を付加した上でプロキシサーバ200に中継する。
 さらに、HTTP処理部251は、対象映像コンテンツをマルチキャスト配信すべきマルチキャストグループ(以下、「対象マルチキャストグループ」とも称する)に所属するプロキシサーバ200が存在する場合(すなわち、対象映像コンテンツをマルチキャスト配信すべきプロキシサーバ200が存在する場合)には、プロキシサーバ250自身をリクエスト元として対象映像コンテンツの各メディアセグメントのレスポンスメッセージを配信サーバ300から順に取得し、キャッシュ部252にキャッシュするようになっている。
 キャッシュ部252は、データを保持するキャッシュメモリである。キャッシュ部252は、配信サーバ300から送信されたレスポンスメッセージを保持する。
 マルチキャスト処理部253は、対象マルチキャストグループへの参加の要求をプロキシサーバ200-i(i:1~Nの任意の値)から受け付けると、プロキシサーバ200-iのアドレスを対象マルチキャストグループに所属しているものとしてマルチキャストグループ情報記憶部254に記録する。また、マルチキャスト処理部253は、対象マルチキャストグループからの離脱の要求をプロキシサーバ200-iから受け付けると、対象マルチキャストグループに所属しているものとして記録されているプロキシサーバ200-iのアドレスをマルチキャストグループ情報記憶部254から削除する。
 さらに、マルチキャスト処理部253は、対象映像コンテンツをマルチキャスト配信すべきプロキシサーバ200が存在する場合、キャッシュ部252に記録されているHTTPのレスポンスメッセージを、順次、マルチキャスト配信可能な形式のパケット(図10および図11を参照して後述する)に変換してマルチキャスト配信すべきプロキシサーバ200に配信する。
 マルチキャストグループ情報記憶部254は、不揮発性のメモリである。マルチキャストグループ情報記憶部254は、映像コンテンツ毎に定められた複数のマルチキャストグループの各々について、当該マルチキャストグループに所属する送信先の通信装置のアドレスを保持するようになっている。
 (配信サーバ300)
 配信サーバ300は、HTTP処理部301およびメモリ部302を備えている。
 HTTP処理部301は、配信要求された映像コンテンツのメディアセグメントをメモリ部302から読み出して、ムービーフラグメントを各パートとするマルチパート形式のレスポンスメッセージとしてプロキシサーバ250に送信する。
 メモリ部302は、複数のチャンネルの映像コンテンツを保持している。
 以上、クライアント装置100、プロキシサーバ200、250および配信サーバ300の詳細な構成について説明したが、配信システム1の動作を説明する前に、前述したムービーフラグメントおよびメディアセグメントについて図4および図5を参照しながら以下に説明する。
 (メディアセグメントおよびムービーフラグメントについて)
 最初に図4を参照しながらムービーフラグメントについて説明する。
 図4は、映像コンテンツのビットストリーム(Contents.mp4)と、ビットストリームを分割・格納した各ムービーフラグメントと、の関係を模式的に示した図である。また、図5は、メディアセグメントと、メディアセグメントを構成する各ムービーフラグメントと、の関係を模式的に示した図である。
 図4に示すように、ビットストリームは、分割されて複数のムービーフラグメントに格納される。図中、mdatが分割されたビットストリームデータである。各ムービーフラグメントは、ビットストリームを一定期間単位で区切った単位部分に対応している。本実施形態では、ムービーフラグメントとして、ISO Media File Format で規定されるフラグメント映像形式を想定している。
 MP4ファイルのビットストリームにおける先頭のムービーフラグメント(フラグメント1)には、moovヘッダ41bが含まれている。moovヘッダ41bは、映像を再生するためのビットストリーム全体に関するメタ情報(初期化情報など)を保持するようになっている。MP4ファイルのビットストリームにおける後続のムービーフラグメント(フラグメント2、3、・・)には、moofヘッダ42bが含まれている。各ムービーフラグメントのmoofヘッダ42bは、当該ムービーフラグメントの映像を再生するためのメタ情報をヘッダである。
 そして、各ムービーフラグメントには、ヘッダの他にメディアデータ(映像自体のデータ)mdatが含まれている。各ムービーフラグメントのメディアデータmdatには、該ムービーフラグメントに対応する期間における部分データがそれぞれ格納されている。例えば、フラグメントが1秒単位でビットストリームを区切ったデータである場合、フラグメント1のメディアデータmdatには、映像コンテンツの再生開始から1秒間分の映像データが格納されている。
 次に図5を参照しながらメディアセグメントについて説明する。
 図5に示すように、メディアセグメントは複数のムービーフラグメントから構成されている。メディアセグメントも、コンテンツデータを一定期間単位で区切った単位部分に対応している。さらに、本実施形態では、このメディアセグメントを、1つのレスポンスデータに格納されるコンテンツデータとして扱う。即ち、メディアセグメントは、一度のリクエストで獲得されるコンテンツデータの単位となっている。
 また、メディアセグメントが複数のムービーフラグメントから構成されることからわかるように、1つのメディアセグメントに対応する期間の長さは、1つのムービーフラグメントに対応する期間の長さの整数倍となっている(ただし、これはムービーフラグメントの長さが固定の場合であり、ムービーフラグメントの長さが可変の場合は整数倍には限られない)。なお、次に説明する動作例では、1つのメディアセグメントに対応する期間を30秒とし、1つのムービーフラグメントに対応する期間の長さを1秒として説明する。
 (配信システム1の動作例1)
 次に、クライアント装置100が対象映像コンテンツの配信要求を出してからクライアント装置100への対象映像コンテンツの配信が完了するまでに配信システム1で行われる動作の一具体例について図6~図12を参照しながら説明する。
 図6および図7は、それぞれ、上記動作の前半部分および後半部分を示すシーケンス図である。
 なお、この動作例では、プロキシサーバ250のHTTP処理部251は、4台以上の装置に対象映像コンテンツを配信中の場合に限り、マルチキャスト配信可能であることを示すヘッダ情報を付加するようになっている。また、動作の開始前に、すでに3台のクライアント装置100-2~100-4に対象映像コンテンツを配信中であるものとし、新たにクライアント装置100-1が対象映像コンテンツの配信要求を出すものとする。
 最初に、クライアント装置100-1は、対象映像コンテンツの先頭のメディアセグメントを要求するHTTPのリクエスト41(第1の要求)をプロキシサーバ200-1に送信する(S01)。このリクエスト41は、図8(a)に示すようなデータであるが、図8(a)からわかるように、クライアント装置100-1は、プロキシサーバ200-1とキープアライブで接続するようになっている。すなわち、クライアント装置100-1は、リクエスト41に対するレスポンスの受信後も接続状態を保つようになっている。
 次に、プロキシサーバ200-1のHTTP処理部201は、クライアント装置100-1から受信したリクエスト41を、自身のIPアドレスを送信元として設定した上でプロキシサーバ250に送信する(S02)。そして、プロキシサーバ250のHTTP処理部251は、配信サーバ300にキープアライブにより接続し、リクエスト41を配信サーバ300に中継する(S03)。
 リクエスト41を受けた配信サーバ300のHTTP処理部301は、メモリ部302から対象映像コンテンツを読み出し、図8(b)に示すようなレスポンスメッセージ51を生成してプロキシサーバ250に送信する(S04)。
 図8(b)において、レスポンスメッセージ51内の”www.sample.com”は配信サーバ300のホストドメイン名を示しており、”content1”は対象映像コンテンツのファイル名を示している。また、X-Segment-Fragment-Index:1/60は、メディアセグメントのインデックス値を示している。すなわち、X-Segment-Fragment-Index:1/60は、対象映像コンテンツが60個のメディアセグメントから構成され、このレスポンスメッセージが1つ目のメディアセグメントのデータであることを示している。
 さらに、「{binary-data:fragment-01}」~「{binary-data:fragment-30}」の部分は、1つ目のメディアセグメントを構成する30個のムービーフラグメントを示している。
 レスポンスメッセージ51を受信したプロキシサーバ250のHTTP処理部251は、対象映像コンテンツのクライアント装置100からの要求頻度を確認する(S05)。すなわち、HTTP処理部251は、一定期間内に同一の対象映像コンテンツに対するリクエスト41を何回受信したかをカウントする。ここでは、クライアント装置100の台数がクライアント装置100-1~100-4の4台であり要求頻度が一定以上であるため、レスポンスメッセージ51にマルチキャスト配信可能であることを示すヘッダ情報を付加することにより図9(a)に示すようなレスポンスメッセージ51aを生成する(S06)。
 図9(a)において破線の枠で囲んだ文字列(”X-alternative-cast”から始まる文字列)は、付加したヘッダ情報を示している。
 X-alternative-castのヘッダ情報は、次の書式を取るようになっている。
<配信形式>://<配信アドレス>/<TTL>?session_id=<セッションID>?session_name=<セッション名>
 ここで、<配信形式>は、コンテンツの配信方法を示しており、図9(a)では、マルチキャスト配信である“multicast”を示している。また、配信形式がマルチキャスト配信である場合における<配信アドレス>(図9(a)で”224.1.1.1”)は、マルチキャストアドレスを示している。マルチキャストアドレスは、一般的に、クラスDのIPマルチキャストグループアドレスを記述する。
 また、<TTL>は、パケットの有効期間(time to live)を示している。これは、ネットワーク内の伝達範囲を設定する。プロキシサーバ200とプロキシサーバ250との間にルーターが含まれているネットワークにおいて、ルーターを超えてマルチキャストデータを配信する際に<TTL>を大きな値に設定する必要があるが、本実施形態では、基幹ネットワーク500にルーターが介在しないので<TTL>の値は”1”となっている。また、<セッションID>および<セッション名>は、セッションを識別するために用いられる。
 S06の処理の後、HTTP処理部251は、生成したレスポンスメッセージ51aをプロキシサーバ200-1に送信する(S07)。
 レスポンスメッセージ51aを受信したプロキシサーバ200-1のHTTP処理部201は、”X-alternative-cast”のヘッダ情報があることを確認すると(S08)、その旨をマルチキャスト処理部203に通知するとともに、レスポンスメッセージ51aを元のレスポンスメッセージ51に変換してクライアント装置100-1に送信する(S09)。なお、レスポンスメッセージ51を受信したクライアント装置100-1の再生部102は、対象映像コンテンツの再生を開始することになる。
 その後、プロキシサーバ200-1のHTTP処理部201は、図9(b)に示すようなマルチキャスト受信要求(対象マルチキャストグループへの参加を要求するJOINメッセージ42)をプロキシサーバ250に送信する(S10)。JOINメッセージ42(第2の要求)および後述するLEAVEメッセージ43は、図9(b)および図9(c)に示すように、GETリクエスト形式のHTTPメッセージである。JOINメッセージ42およびLEAVEメッセージ43のヘッダ部のX-alternative-multicast-set ヘッダには、それぞれ、マルチキャストグループへの参加を示す文字列、および、マルチキャストグループからの離脱を示す文字列が付与される。すなわち、JOINメッセージ42には”JOIN”が付与され、LEAVEメッセージ43には”LEAVE”が付与される。
 JOINメッセージ42を受信したプロキシサーバ250のHTTP処理部251は、レスポンスメッセージを返却するとともに、プロキシサーバ200-1のアドレスを対象マルチキャストグループに所属するものとしてマルチキャストグループ情報記憶部254に記録する(S11)。
 一方、S10でJOINメッセージを受信したHTTP処理部251は、対象映像コンテンツのメディアセグメントを取得して(S12)、キャッシュ部252に記録する(S13)。S12およびS13の処理は、その後繰り返し行われる。すなわち、対象映像コンテンツを構成する全メディアセグメントについてS12およびS13の処理が行われる。なお、S12の処理を繰り返す周期は特に限定されない。すなわち、1つのメディアセグメントのクライアント装置100における再生時間よりも短い周期でS12の処理を繰り返せばよい。
 一方、ステップS11の処理を終えた後、マルチキャスト処理部253は、キャッシュ部252に記録されたメディアセグメントのレスポンスメッセージ51を順次、マルチキャストのパケットに変換する(S14)。
 ここで、S14の処理の詳細について図10および図11を参照しながら以下に説明する。
 最初にマルチキャストパケットのフォーマットについて図10を参照して説明する。
 マルチキャストパケットは、図10(c)に示すように、UDPヘッダ部と、RTPヘッダ部と、RTPデータ部と、を含んでいる。マルチキャストパケットのより具体的な構造を図10(a)および図10(b)を参照して説明すると以下の通りである。
 図10(a)は、マルチキャストのパケットを構成するUDPパケットのフォーマットを示している。UDPパケットのUDPヘッダ部には、マルチキャストパケットの送信元のポート番号、マルチキャストパケットの送信先のポート番号、UDPパケットのパケット長、パケットの整合性を取るためのチェックサムのフィールドがある。UDPパケットのデータ部は可変長になっている。
 図10(b)はUDPパケットのデータ(データグラム)部分を構成するRTPパケットのフォーマットを示している。RTPパケットのRTPデータ部(ペイロードデータ)には、レスポンスメッセージ51の一部が記録されるようになっている。
 また、RTPパケットのRTPヘッダ部には、マルチキャストパケットの送信順序を示すシーケンス番号と、タイムスタンプと、が格納される。ここで、RTPパケットのタイムスタンプには、該RTPパケットのRTPデータ部にその一部が含まれるレスポンスメッセージ51のうち、最も小さいタイムスタンプ(X-timestamp)の値が格納される。例えば、RTPデータ部に2つ目のメディアセグメントに対応するレスポンスメッセージ51の一部が含まれる場合、RTPヘッダ部のタイムスタンプには「30」が格納される。
 次に、図11を参照して、マルチキャスト処理部253がHTTPのレスポンスメッセージ51をどのようにマルチキャストパケットに変換するかについて具体的に説明する。
 図11中の左側部分は、変換後のマルチキャストパケット52-1、52-2、52-3、・・・を模式的に示している。また、図11中の右側部分は、HTTPのレスポンスメッセージ51(51-1、51-2・・・)内のヘッダ部分のデータとボデイ部分の各パートのデータとがどのマルチキャストパケットにペイロードデータとして格納されるかを模式的に示している。
 マルチキャスト処理部253は、メディアセグメントのレスポンスメッセージ51-1をキャッシュ部252から読み出すと、レスポンスメッセージ51のContent-Locationヘッダの文字列中で「対象映像コンテンツのファイル名」および「メディアセグメントのインデックス値」の部分(すなわち、”/content1/1”)を抽出して、最初のマルチキャストパケット52-1にペイロードデータとして格納する。
 そして、マルチキャスト処理部253は、メッセージ51-1のうち、ヘッダ部分を次のマルチキャストパケット52-2にペイロードデータとして格納する。
 さらに、マルチキャスト処理部253は、メッセージ51-1のボディ部分のデータを後続するマルチキャストパケット52-3・・にペイロードデータとして格納していく。より具体的には、マルチキャスト処理部253は、各パートに含まれるムービーフラグメントを、ムービーフラグメントのデータサイズに応じて1または複数のマルチキャストパケット52に格納する。マルチキャスト処理部253は、メッセージ51-2以降の各メッセージ51についても同様の処理を行う。
 なお、各パートに含まれるムービーフラグメントのバイナリデータは先頭部分がマルチキャストパケット52のペイロードの先頭部分と必ず一致するようにマルチキャストパケット52に格納される。同様に、各パートに含まれるムービーフラグメントのバイナリデータは末尾部分がマルチキャストパケット52のペイロードの末尾部分と必ず一致するようにマルチキャストパケット52に格納される。すなわち、複数のムービーフラグメントのバイナリデータが1つのマルチキャストパケットに格納されないようになっている。
 また、マルチキャスト処理部253は、マルチキャストパケットのヘッダ部分には、前述したUDPヘッダ部、RTPヘッダ部、およびRTPデータ部に適切な値を格納する他、IPヘッダ部にIPマルチキャストアドレス(マルチキャストグループアドレス)である”224.1.1.1”を格納するようになっている。
 マルチキャスト処理部253は、以上のようにして変換したマルチキャストパケット52を、順次、プロキシサーバ200-1に配信する(S15)。
 プロキシサーバ200-1のマルチキャスト処理部203は、S15にて配信された複数のマルチキャストパケット52をまとめて、メディアセグメントのレスポンスメッセージ51に変換し(S16)、キャッシュ部202にキャッシュする(S17)。S15~S17の処理は、その後繰り返し行われる。すなわち、対象映像コンテンツを構成する全メディアセグメントについてS12およびS13の処理が行われる。
 一方、クライアント装置100-1は、続けて、対象映像コンテンツの2番目のメディアセグメントを要求するHTTPのリクエスト41をプロキシサーバ200-1に送信する(S18)。
 リクエスト41を受信したプロキシサーバ200-1のHTTP処理部201は、2番目のメディアセグメントのレスポンスメッセージ51をキャッシュ部202から読み出す(S19)。なお、HTTP処理部201は、読み出しを試行した時点でキャッシュ部202にレスポンスメッセージ51がキャッシュされていない場合、レスポンスメッセージ51がキャッシュされるまで待機してから読み出す。
 レスポンスメッセージ51を読み出したHTTP処理部201は、レスポンスメッセージ51をクライアント装置100-1に送信する。このS18、S19の処理も、続きの3番目以降のメディアセグメントに対して順次行われる。
 その後、配信サーバ300が最後のメディアセグメントを要求するリクエスト41をプロキシサーバ250から受け付けたものとする。
 配信サーバ300のHTTP処理部301は、最後のメディアセグメントのレスポンスメッセージとして、通常のレスポンスメッセージ51のヘッダ部に”Connection:Close”のヘッダを付加したレスポンスメッセージ51’をプロキシサーバ250に送信する(S20)。
 HTTP処理部251は、レスポンスメッセージ51’のヘッダ部に”Connection:Close”の文字列があることを確認すると、配信サーバ300との接続状態が解除されたことを認識する(S21)。
 そして、マルチキャスト処理部253は、キャッシュ部252にキャッシュされたレスポンスメッセージ51’をマルチキャストパケット52に変換してプロキシサーバ200-1に送信する(S22)。
 プロキシサーバ200-1のマルチキャスト処理部203は、S22にて配信された複数のマルチキャストパケット52をまとめて、メディアセグメントのレスポンスメッセージ51’に変換し、キャッシュ部202にキャッシュする。なお、マルチキャスト処理部203は、キャッシュしたレスポンスメッセージ51’のヘッダ部に”Connection:Close”のヘッダがあることを確認する。
 クライアント装置100-1は、続きのメディアセグメントを要求するHTTPのリクエスト41をプロキシサーバ200-1に送信すると、リクエスト41を受信したプロキシサーバ200-1のHTTP処理部201は、そのメディアセグメントのレスポンスメッセージ51’をキャッシュ部202から読み出す。
 レスポンスメッセージ51’を読み出したHTTP処理部201は、ヘッダ部に”Connection:Close”のヘッダがあることを確認すると(S23)、レスポンスメッセージ51’をクライアント装置100-1に送信するとともにクライアント装置100-1との接続状態を解除する(S24)。これにより、クライアント装置100-1は、プロキシサーバ200との接続状態が解除されたことを認識する。したがって、再生部102が、このレスポンスメッセージ51’のメディアセグメント(すなわち、対象映像コンテンツの最後のメディアセグメント)の再生を終えた時点で、対象映像コンテンツの再生が完了することになる。
 一方、レスポンスメッセージ51’のヘッダ部に”Connection:Close”のヘッダがあることを確認したマルチキャスト処理部203は、その旨をHTTP処理部201に通知し、HTTP処理部201は、図9(c)に示すようなマルチキャスト受信終了通知(対象マルチキャストグループからの離脱を要求するLEAVEメッセージ)43をプロキシサーバ250に送信する。
 LEAVEメッセージ43を受信したプロキシサーバ250のHTTP処理部251は、レスポンスを返却し、受信したメッセージがLEAVEメッセージ43であることを確認する(S26)。
 そして、HTTP処理部251は、対象マルチキャストグループに所属するものとして記録されている、マルチキャストグループ情報記憶部254内のプロキシサーバ200-1のアドレスを削除する(S27)。これにより、プロキシサーバ200-1が対象映像コンテンツをマルチキャスト配信すべきマルチキャストグループから外れることになる。
 なお、同様に、クライアント装置100-2~100-4およびプロキシサーバ200-2~200-4に対しても、S22以降の処理が施される。すなわち、クライアント装置100-2~100-4においても対象映像コンテンツの映像再生が完了し、プロキシサーバ200-2~200-4が対象映像コンテンツをマルチキャスト配信すべきマルチキャストグループから外れることになる。
 このようにして、対象マルチキャストグループに所属していた全装置が所属から外れるので、対象マルチキャストグループのマルチキャストグループアドレスとして使用していた”224.1.1.1”を別の映像コンテンツをマルチキャスト配信する際に使用できることになる。
 以上、配信システム1の動作例を図6および図7のシーケンス図を用いて説明した。
 ところで、S23にて、HTTP処理部201およびマルチキャスト処理部203が、レスポンスメッセージ51’のヘッダ部に”Connection:Close”のヘッダがあることを確認するものとした。これに代えて、HTTP処理部201およびマルチキャスト処理部203は、ヘッダ部のX-Media-Segment-indexヘッダを参照し、メディアセグメントのインデックス値(図8(b)において”1”)と、対象映像コンテンツを構成するメディアセグメントの個数を示す値(図8(b)において”60”)が同値になったか否かを確認するようにしてもよい。そして、同値である場合、HTTP処理部201は、その旨をマルチキャスト処理部203に通知することにより、マルチキャスト処理部203にLEAVEメッセージを送信させてもよい。
 (クライアント装置で映像コンテンツの再生を中断した場合の配信システム1の動作)
 次に、ユーザからの再生中断指示によって、クライアント装置100-1が対象映像コンテンツの再生を中断する場合の配信システム1の動作について図13を参照しながら以下に説明する。ここでは、クライアント装置100-1が配信サーバ300から対象映像コンテンツの配信を受けている唯一の装置であることを前提として説明する。
 図13は、映像コンテンツの再生を中断する旨の指示をクライアント装置100-1がユーザから受けた場合における、各装置間の処理の流れを示すシーケンス図である。
 図13に示すように、図示しない操作部を通じて再生中断指示を受け付けると、クライアント装置100-1の再生部102は対象映像コンテンツの再生を中断する。また、HTTP処理部101は、次のメディアセグメントを要求するHTTPのリクエスト41のヘッダ部に”Connection:Close”のヘッダを付加したリクエスト41’をプロキシサーバ200-1に送信する(S28)。
 リクエスト41’を受信したプロキシサーバ200-1のHTTP処理部201は、リクエスト41’のヘッダ部に”Connection:Close”のヘッダが付加されていることを確認する(S29)。そして、HTTP処理部201は、メディアセグメントのレスポンスメッセージ51をキャッシュ部202から読み出して、クライアント装置100-1に送信するとともに、クライアント装置100-1との接続状態を解除する。
 また、”Connection:Close”のヘッダが付加されていることを確認したHTTP処理部201は、付加されている旨をマルチキャスト処理部203に通知する(S30)。加えて、HTTP処理部201は、図9(c)に示すような対象マルチキャストグループからの離脱を要求するLEAVEメッセージ43をプロキシサーバ250に送信する(S31)。
 LEAVEメッセージ43を受信したプロキシサーバ250のHTTP処理部251は、レスポンスをプロキシサーバ200に返却するとともに、受信したメッセージがLEAVEメッセージ43であることを確認する(S32)。
 そして、HTTP処理部251は、対象マルチキャストグループに所属するものとして記録されている、マルチキャストグループ情報記憶部254内のプロキシサーバ200-1のアドレスを削除する(S33)。これにより、プロキシサーバ200-1が対象映像コンテンツをマルチキャスト配信すべきマルチキャストグループから外れることになる。
 対象マルチキャストグループに所属する装置が存在しなくなると、マルチキャスト処理部253は、HTTP処理部251にその旨を通知する。そして、HTTP処理部251は、ヘッダ部に”Connection:Close”のヘッダを付加してHTTPメッセージを配信サーバ300に送信する(S34)。これにより、配信サーバ300とプロキシサーバ250との接続状態が解除されることになる。
 以上、配信システム1全体の処理の流れを動作例として説明したが、以下では、配信システム1を構成する各装置の動作について図14~図22を参照しながら説明する。
 〔プロキシサーバ200の動作〕
 最初に、クライアント装置100のプロキシサーバ200の動作について説明するが、HTTP処理部201とマルチキャスト処理部203とに分けて動作を説明する。
 (HTTP処理部201の動作)
 HTTP処理部201の動作について図14を参照しながら説明する。図14は、HTTP処理部201の動作を示すフローチャートである。
 図14に示すように、HTTP処理部201は、クライアント装置100からメディアセグメントのリクエスト41を受信する(S1101)。
 次に、HTTP処理部201は、キャッシュ部202に何らかのデータがキャッシュされているか否かを判定する(S1102)。
 キャッシュ部202に何らかのデータがキャッシュされていると判定した場合(S1102においてYES)、HTTP処理部201は、S1101にて受信したリクエスト41からリクエストURI(図8(a)の例では”/content1/1”)を読み出す(S1107)。そして、HTTP処理部201は、このリクエストURIに対応するレスポンスメッセージ(図8(a)の例の”/content1/1”に対応するレスポンスメッセージは、ファイル名がcontent1であるような対象映像コンテンツの先頭メディアセグメントのレスポンスメッセージ)をキャッシュ部202から読み出す(S1108)。その後、S1109に進む。
 一方、キャッシュ部202に何もデータがキャッシュされていないと判定した場合(S1102においてNO)、HTTP処理部201は、リクエスト41をプロキシサーバ250に送信し(S1103)、その後、対応するレスポンスメッセージをプロキシサーバ250から受信する(S1104)。
 HTTP処理部201は、受信したレスポンスメッセージにプロキシサーバ250がマルチキャスト通信により該コンテンツを送信可能であることを示すヘッダ情報(X-alternative-castヘッダ)が含まれているか否かを判定する(S1105)。含まれていないと判定した場合(S1105においてNO)、S1109に進み、含まれていると判定した場合(S1105においてYES)、S1106に進む。
 S1106において、HTTP処理部201は、マルチキャスト受信を行うための指示(受信するマルチキャストアドレスの通知)を行い、S1118にて、JOINメッセージの送受信をプロキシサーバ250と行い、S1110に進む。
 S1109において、HTTP処理部201は、クライアント装置100に送信すべきレスポンスメッセージを生成し、S1110に進む。
 S1110において、HTTP処理部201は、S1101にて受信したリクエスト41に通信終了通知(”Connection:Close”ヘッダ)が含まれているか否かを判定する。通信終了通知が含まれていると判定した場合(S1110においてYES)、HTTP処理部201は、マルチキャスト受信の終了をマルチキャスト処理部203に通知し(S1111)、S1112に進む。一方、通信終了通知が含まれていないと判定した場合(S1110においてNO)、S1112に進む。
 S1112において、HTTP処理部201は、S1104にて受信したレスポンスに通信終了通知(”Connection:Close”ヘッダ)が含まれているか否かを判定する。通信終了通知が含まれていると判定した場合(S1112においてYES)、S1119に進む。S1119において、HTTP処理部201は、LEAVEメッセージ43の送受信をプロキシサーバ250と行い、S1115に進む。
 一方、通信終了通知が含まれていないと判定した場合(S1110においてNO)、S1113に進む。S1113において、HTTP処理部201は、S1104にて受信したレスポンスが最後のメディアセグメントのレスポンスであるか否かを判定する(S113)。すなわち、ヘッダ部のX-Media-Segment-indexヘッダを参照し、メディアセグメントのインデックス値と、対象映像コンテンツを構成するメディアセグメントの個数を示す値と、が同値であるか否かを判定する。
 最後のメディアセグメントであると判定した場合(S1113においてYES)、S1115に進む。一方、最後のメディアセグメントでないと判定した場合(S1113においてNO)、S1109にて生成したレスポンスメッセージをそのままクライアント装置100に送信し(S1114)、S1101に戻る。
 S1115において、HTTP処理部201は、S1109にて生成したレスポンスメッセージに通信終了通知を付加する(S1115)。そして、HTTP処理部201は、通信終了通知を含むレスポンスメッセージをクライアント装置100に送信し(S1116)、クライアント装置100との接続状態を解除して(S1117)、処理を終了する。
 (マルチキャスト処理部203の動作)
 マルチキャスト処理部203の動作について図15を参照しながら説明する。なお、ここで説明する動作は、前述したS1106の処理をHTTP処理部201が行った場合に開始される動作である。
 図15は、マルチキャスト処理部203の動作を示すフローチャートである。最初に、マルチキャスト処理部203は、マルチキャスト受信を開始する旨の通知をHTTP処理部201から受信する(S1201)。
 その後、マルチキャスト処理部203は、マルチキャストデータ受信のため、初期化を行う。具体的には、マルチキャスト配信を受けるため(プロキシサーバ250から定期的に送信されるクエリーに応答するため)に、HTTP処理部201からマルチキャストグループアドレスを取得する(S1202)。
 その後、マルチキャスト処理部203は、マルチキャストのパケットを順次受信し(S1203)、S1205にて受信した複数のパケットを、メディアセグメントのHTTP形式のレスポンスメッセージに変換する(S1204)。
 その後、マルチキャスト処理部203は、変換により得られたレスポンスメッセージをキャッシュ部202にキャッシュする(S1205)とともに、レスポンスメッセージに含まれているヘッダ部のX-Media-Segment-indexヘッダを参照する(S1206)。すなわち、メディアセグメントのインデックス値と、対象映像コンテンツを構成するメディアセグメントの個数を示す値と、が同値であるか否かを判定する。
 マルチキャスト処理部203が対象映像コンテンツの全データの受信を完了していない場合(S1207においてNO)、すなわち、メディアセグメントのインデックス値と、対象映像コンテンツを構成するメディアセグメントの個数を示す値と、が同値でない場合、S1203に戻る。
 一方、マルチキャスト処理部203が対象映像コンテンツの全データの受信を完了した場合(S1207においてYES)、S1208に進む。
 S1208において、マルチキャスト処理部203は、HTTP処理部201にマルチキャスト受信が終了した旨を通知し、処理を終了する。
 〔プロキシサーバ250の動作〕
 次に、配信サーバ300のプロキシサーバ250の動作について説明するが、HTTP処理部251とマルチキャスト処理部253とに分けて動作を説明する。
 (HTTP処理部251の動作)
 HTTP処理部251の動作を図16および図18を参照して説明する。
 HTTP処理部251は、プロキシサーバ200から対象映像コンテンツのメディアセグメントのリクエストを受信する(S1301)。
 次に、HTTP処理部251は、受信したリクエストを配信サーバ300に送信し(S1302)、該リクエストに対応するレスポンスを配信サーバ300から受信する(S1303)。
 HTTP処理部251は、対象映像コンテンツをすでにマルチキャスト配信中であるか否かを判定する(S1304)。すなわち、HTTP処理部251は、マルチキャストグループ情報記憶部254を参照し、対象マルチキャストグループに参加しているプロキシサーバ200が存在するか否かを判定する。
 対象映像コンテンツをマルチキャスト配信中であると判定した場合(S1304においてYES)、S1306に進む。一方、対象映像コンテンツをマルチキャスト配信中でないと判定した場合(S1304においてNO)、S1305に進む。
 S1305において、HTTP処理部251は、対象映像コンテンツのクライアント装置100からの要求頻度を確認する。このS1305の処理は、図6のS05の処理と同じ処理である。すなわち、HTTP処理部251は、一定期間内に同一の対象映像コンテンツに対するリクエスト41を何回受信したかをカウントする。ここで、HTTP処理部251は、リクエスト41に含まれるURIのうちコンテンツのファイル名”content1”が同一であれば、同一の対象映像コンテンツに対するリクエストとしてカウントするようになっている。例えば、“content1/2”を含むリクエスト41と、”content1/3“を含むリクエスト41と、を受信した場合、両者が同一の対象映像コンテンツに対するリクエストとしてカウントされる。
 同一の対象映像コンテンツに対するリクエストを一定期間内に受信した回数が所定の回数以上である場合(S1305においてYES)、S1306に進む。一方、同一の対象映像コンテンツに対するリクエストを一定期間内に受信した回数が所定の回数未満である場合(S1305においてNO)、S1307に進む。
 S1306において、HTTP処理部251は、<配信方式>をマルチキャスト配信とするX-alternative-castヘッダを生成して、S1304にて配信サーバ300から送信されたレスポンスメッセージのヘッダ部にX-alternative-castヘッダを付加する。ここで、X-alternative-castヘッダの<配信アドレス>は、すでに対象映像コンテンツをマルチキャスト配信中である場合、対象映像コンテンツの配信に使用しているマルチキャストグループアドレスとなる。一方、対象映像コンテンツをマルチキャスト配信中でない場合、HTTP処理部251は、<配信アドレス>として、未使用である任意のクラスDのマルチキャストグループアドレスを使用する。
 S1307において、HTTP処理部251は、レスポンスメッセージをプロキシサーバ200に送信し、S1308に進む。
 HTTP処理部251は、プロキシサーバ200からJOINメッセージを受信した場合(S1308においてYES)、対象映像コンテンツをすでにマルチキャスト配信中であるか否かを判定する(S1309)。対象映像コンテンツをすでにマルチキャスト配信中であると判定した場合(S1309においてYES)、S1311に進む。また、プロキシサーバ200から一定期間内にJOINメッセージを受信しなかった場合(S1308においてNO)にも、S1311に進む。
 一方、対象映像コンテンツをすでにマルチキャスト配信中であると判定した場合(S1309においてYES)、HTTP処理部251は、配信サーバ300とキープアライブで接続し、配信サーバ300から対象映像コンテンツの各レスポンスメッセージを取得する処理(図18を用いて詳細を後述する)を開始する(S1310)。
 S1310において、HTTP処理部251は、配信サーバ300から取得するレスポンスメッセージのヘッダ部に”Connection:Close”ヘッダが含まれているか否かを判定する(S1311)。
 ”Connection:Close”ヘッダが含まれていると判定した場合(S1311においてYES)、HTTP処理部251は、プロキシサーバ200からLEAVEメッセージを受信するまで待機して(S1312)、受信後に処理を終了する。
 一方、”Connection:Close”ヘッダが含まれていないと判定した場合(S1311においてNO)、S1313に進む。HTTP処理部251は、マルチキャスト処理部からマルチキャスト配信終了が通知されたか否かを判定する(S1313)。マルチキャスト配信終了が通知されていないと判定された場合(S1313においてNO)、そのまま処理を終了する。
 一方、マルチキャスト配信終了が通知されたと判定した場合(S1313においてYES)、HTTP処理部251は、配信サーバとの接続状態を解除し(S1314)、処理を終了する。
 前述した、配信サーバ300から対象映像コンテンツの各レスポンスメッセージを取得する処理について、図18を参照して説明する。
 最初に、HTTP処理部251は、配信サーバ300から直前に受信したレスポンスメッセージに基づき、次に配信サーバ300に送信すべきリクエストのURIを生成する(S1501)。例えば、配信サーバ300から直前に受信したレスポンスメッセージのContent-Locationの末尾が”/content1/1”である場合、”/content1/2”をリクエストのURIとして生成する。
 次に、HTTP処理部251は、配信サーバ300にリクエストを送信し(S1502)、配信サーバ300からレスポンスを受信する(S1503)。
 そして、HTTP処理部251は、配信サーバ300から受信したレスポンスを、S1502にて送信したリクエストのURI情報と関連づけて、キャッシュ部252にキャッシュする(S1504)。
 最後に、HTTP処理部251は、対象映像コンテンツ(ファイル名が”content1”のコンテンツ)の全レスポンスメッセージを受信したか否かを判定する(S1505)。受信していないレスポンスメッセージがあると判定した場合(S1505においてNO)、S1501に戻る。一方、全レスポンスメッセージを受信したと判定した場合(S1505においてYES)、処理を終了する。
 (マルチキャスト処理部253の動作)
 マルチキャスト処理部253の動作について図17を参照しながら説明する。なお、ここで説明する動作は、前述したS1308においてHTTP処理部251がJOINメッセージを受信したときに開始される動作である。
 最初に、マルチキャスト処理部253は、JOINメッセージをHTTP処理部251から取得する(S1401)。
 次に、マルチキャスト処理部253は、JOINメッセージに含まれている対象映像コンテンツのファイル名に基づいて対象マルチキャストグループを特定し、対象マルチキャストグループに、JOINメッセージを送信したプロキシサーバ200のアドレスを登録する。(S1402)。
 次に、マルチキャスト処理部253は、キャッシュ部252からレスポンスメッセージを読み出して(S1403)、複数のマルチキャストパケットに変換する(S1404)。
 そして、マルチキャスト処理部253は、変換により得られた複数のマルチキャストパケットをプロキシサーバ200に配信する(S1405)。
 その後、マルチキャスト処理部253は、HTTP処理部251からLEAVEメッセージを受け取ったか否かを判定する(S1406)。LEAVEメッセージを受け取っていないと判定した場合(S1406においてNO)、S1403に戻る。
 一方、LEAVEメッセージを受け取ったと判定した場合(S1406においてYES)、マルチキャスト処理部253は、そのLEAVEメッセージを送信したプロキシサーバ200のアドレスを対象マルチキャストグループから削除し(S1407)、S1408に進む。
 S1408において、マルチキャスト処理部253は、対象マルチキャストグループに所属する他のプロキシサーバ200が存在するか否かを判定する。存在すると判定した場合(S1408においてYES)、S1403に戻る。
 存在しないと判定した場合(S1408においてNO)、マルチキャスト処理部253が対象映像コンテンツのマルチキャスト配信を終了したこと(マルチキャスト配信終了)をHTTP処理部251に通知して(S1409)、処理を終了する。
 〔クライアント装置100の動作〕
 (クライアント装置100の動作その1)
 次に、クライアント装置100が対象映像コンテンツの再生指示をユーザから受け付けてから対象映像コンテンツ全体の再生が完了するまでのクライアント装置100の動作について、図19~図21を参照しながら以下に説明する。
 クライアント装置100のHTTP処理部101は、対象映像コンテンツのメディアセグメントのリクエストをプロキシサーバ200に送信し(S1701)、プロキシサーバ200からレスポンスを受信する(S1702)。
 HTTP処理部101は、S1702にて受信したレスポンスメッセージにmoovヘッダが含まれているか否かを判定する(S1703)。moovヘッダが含まれていると判定した場合(S1703においてYES)、S1704に進み、moovヘッダが含まれていないと判定した場合(S1703においてNO)、S1705に進む。
 S1704において、再生部102は、moovヘッダを参照することにより、対象映像コンテンツの再生に必要な初期化処理を行う。
 S1705において、S1702にて受信したレスポンスメッセージのX-Timestampの値を参照することにより、メディアセグメント内に欠損部(欠損したムービーフラグメント)が存在するか否かを判定する。
 ここで、ムービーフラグメントの欠損について図20を参照して説明する。図20中の左側部分は、配信サーバ300からプロキシサーバ250に送信されるレスポンスメッセージを示しており、図20中の右側部分は、クライアント装置100に送信されるレスポンスメッセージを示している。
 図20中の左側部分に示すレスポンスメッセージから変換された複数のマルチキャストパケット52は、プロキシサーバ200に送信されるが、基幹ネットワーク500を通過する過程で一部のパケット52が欠落する場合がある。図20の例では、ムービーフラグメント03およびムービーフラグメント04を構成するパケット52が欠落しており、クライアント装置100が受信するレスポンス51は、ムービーフラグメント03およびムービーフラグメント04が欠損したデータとなっている。
 なお、ムービーフラグメント03およびムービーフラグメント04のみが欠損したデータとなるのは、レスポンス51は、ムービーフラグメントを各パートとするマルチパート形式のレスポンスメッセージであるからである。また、ムービーフラグメント03およびムービーフラグメント04の2つのムービーフラグメントが欠損したことは、図20に示すように、ムービーフラグメントが本実施形態では1秒間のデータであるにもかかわらず、隣接する各パートに含まれるタイムスタンプ(ムービーフラグメント02のX-Timestamp:1.00と、ムービーフラグメント05のX-Timestamp:4.00と、)の差が1秒でなく3秒であることから、再生部102が検出できるようになっている。
 S1702にて受信したレスポンスメッセージに欠損部が存在しないと判定された場合(S1705においてNO)、S1713に進み、欠損部が存在すると判定された場合(S1705においてYES)、S1706に進む。
 S1706において、HTTP処理部101は、欠損部を補完するか否かを判定する。すなわち、図示しない操作部を介して予めユーザにより行われた設定(欠損部を補完した上でメディアセグメントを再生すべきか、欠損部を補完せずにメディアセグメントを再生すべきか、の設定)に基づいて、欠損部を補完するか否かを判定する。
 欠損部を補完しないと判定した場合(S1706においてNO)、再生部102は、受信したメディアセグメント内のMovie Fragmentデータの再生時間を調整する(S1707)。すなわち、メディアセグメント内のMovie Fragmentデータには、X-TimestampにてMovieFragmentの再生開始時間が記述されており、クライアントは、X-Timesampから再生すべき時刻のMovieFragmentデータを取得し再生を行う。メディアセグメント内に欠損が生じると、再生すべき時刻のMovieFragmentが存在せず、再生が停止してしまうように見えるため、X-Timestampの値を調整して、Movie Fragmentが(時間的に)連続するようにする。例えば、ムービーフラグメント05のX-Timestampを、ムービーフラグメント02から連続するように、2.00として取得する。そして、以降のムービーフラグメントのX-Timestampも同様に連続するように調整する。また、再生時に調整してもよい。例えば、欠損したムービーフラグメントが対象映像コンテンツのt秒目からt+1秒目までに再生すべきムービーフラグメントである場合、再生部102は、欠損したムービーフラグメントのひとつ前のムービーフラグメントがt-1秒目からt+1秒目までの2秒間再生されるよう(例えば、(a)ひとつ前のムービーフラグメントが1/2倍速再生されるよう、あるいは、(b)ひとつ前のムービーフラグメントが最初の1秒間通常再生され、その後の1秒間該ムービーフラグメントを構成する最後のフレーム(静止画像)が再生されるよう)制御を行う。この制御としては、例えば、再生部102は、上記ひとつ前のムービーフラグメントのmoofヘッダに2秒間再生すべき旨の情報を記録する処理が挙げられる。S1707の処理の後、S1713に進む。
 一方、欠損部を補完すると判定した場合(S1706においてNO)、HTTP処理部101は、欠損部のムービーフラグメントを取得するリクエストをプロキシサーバ200に送信し(S1708)、S1709に進む。欠損したムービーフラグメントを取得するリクエストは、欠損したムービーフラグメントを含むようなメディアセグメントのリクエストであってもよいし、欠損したムービーフラグメントのみを取得するリクエストであってもよい。
 欠損したムービーフラグメントのみを取得するリクエストのURIは、例えば、/<対象映像コンテンツのファイル名>/<メディアセグメントのインデックス番号>/<欠損したムービーフラグメントが該メディアセグメント内の何番目のムービーフラグメントであるかを示す値>のように構成される。例えば、欠損したムービーフラグメントのタイムスタンプ(X-timestamp)が45である場合、リクエストのURIは、/content1/2/16となる。
 S1702にて受信したメディアセグメントの再生を開始すべき時刻になると、再生部102は、S1708のリクエストに対応する欠損部のムービーフラグメントをすでにHTTP処理部101が取得したか否かを判定する(S1709)。取得したと判定した場合(S1709においてYES)、再生部102は、欠損したムービーフラグメントを、取得した新たなムービーフラグメントにより補完する(新たなムービーフラグメントに置き換える)(S1710)。S1710の処理の後、S1713に進む。
 一方、まだ取得していないと判定した場合(S1709においてYES)、再生部102は、受信したメディアセグメント内のMovie Fragmentデータの再生時間を調整する(S1711)。このS1711の処理は、S1707の処理と同様の処理である。
 その後、再生部102は、S1702にて受信したメディアセグメントの各ムービーフラグメントを順次再生する(S1712)。S1712の処理の後、S1714に進む。
 S1713にて、再生部102は、S1702にて受信した(あるいはS1710で補完後の)メディアセグメントの各ムービーフラグメントを順次再生し、S1714に進む。
 S1714において、再生部102は、再生したメディアセグメントを図示しない記憶部に蓄積すべきか否かを判定する。すなわち、再生部102は、操作部を介してユーザから対象映像コンテンツを録画すべき旨の指示を受けていた場合には蓄積すべきであると判定し、録画すべき旨の指示を受けていなかった場合には蓄積すべきでないと判定する。
 再生したメディアセグメントを蓄積すべきであると判定された場合(S1714においてYES)、S1715にて後述するデータ補完処理が行われた後、再生したメディアセグメントを記憶部に蓄積する(S1716)。S1716の処理の後、S1717に進む。一方、蓄積すべきでないと判定された場合(S1714においてNO)、S1717に進む。
 S1717において、再生部102は、S1713にて再生したメディアセグメントが対象映像コンテンツの最後のメディアセグメントであるか否かを判定する。最後のメディアセグメントではないと判定された場合(S1717においてNO)、S1701に戻る。一方、最後のメディアセグメントであると判定された場合(S1717においてYES)、S1718に進む。
 S1718において、HTTP処理部101は、プロキシサーバ200との接続状態を解除して対象映像コンテンツの再生を終了し、S1719に進む。
 S1719において、再生部102は、対象映像コンテンツの各メディアセグメントを録画したか否かを判定する。録画したと判定した場合(S1719においてYES)、S1720のデータ補完処理を行い、処理を終了する。録画していないと判定した場合(S1719においてNO)、そのまま処理を終了する。
 (データ補完処理について)
 S1715およびS1720にて行われるデータ補完処理の流れについて図21を参照しながら以下に説明する。図21は、クライアント装置100のデータ補完処理の流れを示すフローチャートである。
 図21に示すように、クライアント装置100の再生部102は、S1713において再生されたメディアセグメントの中に欠損部が存在するか否かを判定する(S1801)。欠損部が存在すると判定された場合(S1801)、S1708にて既に欠損部のムービーフラグメントを取得するリクエストが出されているが、このリクエストに対応する欠損部のムービーフラグメントをすでにHTTP処理部101が取得したか否かを判定する(S1802)。欠損部のムービーフラグメントを取得済みであると判定された場合(S1802においてYES)、S1803に進み、欠損部のムービーフラグメントをまだ取得していないと判定された場合(S1802においてNO)、S1804に進む。
 S1803において、HTTP処理部101は、欠損部を補完するか否かを判定する。すなわち、図示しない操作部を介して予めユーザにより行われた設定(対象映像コンテンツ全体の再生を完了した後に補完するか、対象映像コンテンツの再生中に補完するかの設定)に基づいて、欠損部を補完するか否かを判定する。
 欠損部を補完すると判定された場合(S1803においてYES)、S1806に進む。一方、欠損部を補完しないと判定された場合(S1803においてNO)、データ補完処理を終了する。
 S1804において、HTTP処理部101は、欠損部のムービーフラグメントを取得すべきか否かを判定する。ここで、HTTP処理部101は、欠損部を補完せずにメディアセグメントを再生すべき旨の指示が出ていた場合には欠損部のムービーフラグメントを取得すべきであると判定し、欠損部を補完した上でメディアセグメントを再生すべき旨の指示が出ていた場合には欠損部のムービーフラグメントを取得すべきでないと判定するようになっている。
 欠損部のムービーフラグメントを取得すべきであると判定された場合(S1804においてYES)、HTTP処理部101は、欠損部のムービーフラグメントをプロキシサーバ200から取得し(S1805)、S1806に進む。一方、欠損部のムービーフラグメントを取得すべきでないと判定された場合(S1804にNO)、データ補完処理を終了する。
 S1806において、再生部102は、欠損したムービーフラグメントを、S1708またはS1806にて取得した新たなムービーフラグメントにより補完し、データ補完処理を終了する。
 以上、クライアント装置100の動作を説明した。以上の説明からわかるように、クライアント装置100は、受信したメディアセグメントに欠損部が存在する場合に、欠損部のムービーフラグメントをプロキシサーバ200から取得する。ここで、クライアント装置100は、欠損部を含むメディアセグメントを再生する前に欠損部のムービーフラグメントを取得した場合には、欠損部を補完した状態でメディアセグメントを再生することができる。また、欠損部を含むメディアセグメントの再生後に欠損部のムービーフラグメントを取得した場合には、欠損部を補完した状態でメディアセグメントを蓄積することにより、完全な状態で対象映像コンテンツを録画することができる。
 (クライアント装置100の動作その2)
 次に、クライアント装置100が対象映像コンテンツを再生中に再生中断指示をユーザから受け付けた場合のクライアント装置100の動作について、図22を参照しながら以下に説明する。
 クライアント装置100の再生部102が対象映像コンテンツ中の再生中(S1901)、随時、再生部102は、再生中断指示をユーザから受け付けたか否かを判定する(S1902)。
 再生中断指示を受け付けたと判定された場合(S1902において)、HTTP処理部101は、次に、プロキシサーバ200に送信すべきリクエストとしてヘッダ部に”Connection:Close”ヘッダを付与されたリクエストを生成する(S1903)。
 その後、HTTP処理部101は、S1903にて生成したリクエストをプロキシサーバ200に送信する(S1904)。
 S1904にて送信したリクエストに対応するレスポンスを受信すると、そのレスポンスのメディアセグメントを再生し終えた時点で対象映像コンテンツの再生を終了(中断)する(S1905)。
 (配信システム1の動作例2)
 次に、クライアント装置100が対象映像コンテンツの配信要求を出した場合に配信システム1で行われる動作の別の一具体例について、図24を参照しながら説明する。
 この動作例では、動作の開始時点においてすでにクライアント装置100-1~100-4の4台のクライアント装置100が対象映像コンテンツのマルチキャスト配信を配信サーバ300から受け付けているものとし、新たにクライアント装置100-5が対象映像コンテンツの配信要求を出すものとする。
 また、この動作例では、図示しないライブカメラから配信サーバ300に入力されているライブ映像が、対象映像コンテンツとしてクライアント装置100にライブ配信されている。また、配信サーバ300に入力されるライブ映像はメモリ部302に記録された上でライブ配信されるため、ライブ配信が終了した後に、クライアント装置100は、対象映像コンテンツのVOD配信を配信サーバ300から受けることが可能になっている。
 図24は、配信システム1の上記動作例を示すシーケンス図である。なお、図24では、クライアント装置100-2~100-4およびプロキシサーバ200-2~200-4の動作の記載は省略している。
 プロキシサーバ250のマルチキャスト処理部253は、対象映像コンテンツのマルチキャストパケット52をプロキシサーバ200に送信する(S40)。
 次に、クライアント装置100-1は、対象映像コンテンツのメディアセグメントのリクエスト41をプロキシサーバ200に送信する(S41)と、プロキシサーバ200のHTTP処理部201は、当該メディアセグメントのレスポンス51を、S40にて受信したマルチキャストパケット52を用いて生成し、クライアント装置100-1にレスポンス51を送信する(S42)。
 次に、クライアント装置100-5が対象映像コンテンツのリクエスト43をプロキシサーバ200-5に送信する(S43)。ここで、リクエスト43は、対象映像コンテンツ全体の送信を要求するために用いられるリクエストである。すなわち、リクエスト43は、対象映像コンテンツ中の指定されたメディアセグメントの送信を要求するために用いられるリクエスト41とは異なっている。
 リクエスト43を受信したプロキシサーバ200-5のHTTP処理部201は、リクエスト43をプロキシサーバ250に中継する(S44)。
 リクエスト43を受信したプロキシサーバ250のHTTP処理部251は、リクエストのURI(“/content1/”)を確認する(S45)。すなわち、対象映像コンテンツ(ファイル名が”content1”のコンテンツ)をすでにマルチキャスト配信しているか否か(すなわち、対象マルチキャストグループに所属する通信装置がすでに存在するか否か)を判定する。ここでは、プロキシサーバ200-1~200-4が対象マルチキャストグループに所属しているので、マルチキャスト配信していると判定する。
 対象映像コンテンツをマルチキャスト配信していると判定したHTTP処理部251は、X-alternative-castヘッダを生成する。そして、HTTP処理部251は、キャッシュ部252にキャッシュ済みの最新のメディアセグメント(インデックス値がtのメディアセグメントとする)のレスポンスメッセージ51に、<配信アドレス>を対象マルチキャストグループのアドレスとするX-alternative-castヘッダを付与する(S46)。
 そして、HTTP処理部251は、X-alternative-castヘッダを含むレスポンスメッセージ51’をプロキシサーバ200-5に送信する(S47)。
 プロキシサーバ200-5のHTTP処理部201は、レスポンスメッセージ51’をレスポンスメッセージ51に変換してクライアント装置100-5に送信する(S48)。クライアント装置100-5の再生部102は、HTTP処理部101が受信した最新のメディアセグメント(インデックス値tのメディアセグメント)のレスポンスメッセージ51を再生する。これにより、クライアント装置100-5はライブ映像の再生を開始することになる。
 一方、プロキシサーバ200-5のHTTP処理部201は、マルチキャスト受信要求(JOINメッセージ)42をプロキシサーバ250に送信する(S49)。
 プロキシサーバ250のHTTP処理部251は、JOINメッセージ42を受信すると、JOINメッセージ42に対するレスポンスをプロキシサーバ200-5に送信する(S50)。さらに、HTTP処理部251は、プロキシサーバ200-5のアドレスを対象マルチキャストグループに所属するものとして、マルチキャストグループ情報記憶部254に記録する(S51)。
 以降、マルチキャスト処理部253は、インデックス値がt+1以降のメディアセグメントのマルチキャストパケット52をプロキシサーバ200-1~200-5に送信するようになる(S52)。
 一方、S48にて、インデックス値tのメディアセグメントのレスポンスメッセージ51を受信したクライアント装置100-5のHTTP処理部101は、次の(インデックス値t+1の)メディアセグメントを要求するリクエスト41をプロキシサーバ200-5に送信し(S53)、リクエスト41に対応するレスポンス51(インデックス値t+1のメディアセグメント)を受信する(S54)。
 以降、後続するメディアセグメント(インデックス値t+2、t+3、・・)について、クライアント装置100-5は、S53とS54との処理を繰り返すことになる。
 以上の動作例2の説明からわかるように、プロキシサーバ250から対象映像コンテンツのマルチキャスト配信が行われている場合には、クライアント装置100からの対象映像コンテンツの配信要求が配信サーバ300に到達しないようになっている。
 したがって、配信サーバ300から対象映像コンテンツが配信されるクライアント装置100の台数が増えたとしても、配信サーバ300の処理負荷および配信サーバ300とプロキシサーバ250との間のネットワークの負荷が抑えられる。したがって、配信サーバ300から各クライアント装置100に効率的に対象映像コンテンツが配信されることになる。
 また、すでに説明したように、クライアント装置100は、ユーザからの指示に応じて対象映像コンテンツの再生と同時に録画をすることもできるようになっている。上記動作例2において、クライアント装置100-5が対象映像コンテンツの録画を行うよう設定されていた場合には、クライアント装置100-5には、対象映像コンテンツのうちインデックス値がt以降のメディアセグメントが蓄積されることになる。
 したがって、クライアント装置100-5は、ライブ配信終了後にVOD配信される対象映像コンテンツについて、インデックス値がt以前のメディアセグメントのリクエスト41を送信してt-1個のレスポンス51を取得および蓄積することにより、ライブ配信された対象映像コンテンツ全体を効率良く録画することができる。
 (プロキシサーバ250の利点)
 以上のように、配信システム1のプロキシサーバ250において、HTTP処理部251は、プロキシサーバ200から対象映像コンテンツを要求するリクエスト41が送られたことを検出した場合に、配信サーバ300の代わりにプロキシサーバ250がマルチキャスト通信により対象映像コンテンツを送信可能であることを示すX-alternative-cast情報をプロキシサーバ200に送信する。また、マルチキャスト処理部253は、プロキシサーバ200からJOINメッセージ42を受信した場合にプロキシサーバ200を対象マルチキャストグループに登録する。そして、マルチキャスト処理部253は、キャッシュ部252の対象映像コンテンツを、対象マルチキャストグループに登録された各プロキシサーバ200にマルチキャスト通信を用いて中継する。
 すなわち、対象映像コンテンツが配信されるクライアント装置100が3台である(配信要求を受ける頻度が一定未満である)ときには、配信サーバ300は、図12(a)に示すように、同一内容のメディアセグメントについて、配信要求を3回受けてその度にメディアセグメントのレスポンスを返す。一方、図12(b)に示すように、対象映像コンテンツが配信されるクライアント装置100が所定の台数(4台)になる(配信要求を受ける頻度が一定以上になる)と、その後、配信サーバ300は、同一内容のメディアセグメントについて、配信要求を受けてメディアセグメントのレスポンスを返す処理を1回で済ませることができる。したがって、配信サーバ300の処理負荷、および配信サーバ300とプロキシサーバ250との間のネットワークの負荷が抑えられることになる。
 また、図12(a)に示すように、対象映像コンテンツが配信されるクライアント装置100が3台である(配信要求を受ける頻度が一定未満である)ときには、プロキシサーバ250も、同一内容のメディアセグメントについて、配信要求を3回受けてその度にメディアセグメントのレスポンスを返す。一方、図12(b)に示すように、対象映像コンテンツが配信されるクライアント装置100が所定の台数(4台)になる(配信要求を受ける頻度が一定以上になる)と、プロキシサーバ250は、メディアセグメントをマルチキャスト配信することができる。すなわち、4台のクライアント装置100に同一内容のメディアセグメントを配信するためにプロキシサーバ250が送信するデータのデータ量は、メディアセグメント1つ分のデータ量となる。したがって、基幹ネットワークの特にプロキシサーバ250に近接する領域の帯域負荷が抑えられることになる。
 さらに、上述したように、メディアセグメントは各パートをムービーフラグメントとするMIMEマルチパート形式で配信サーバ300からプロキシサーバ250に送信されるが、プロキシサーバ250は、1つのパート(ムービーフラグメント)の全部または一部のデータを1つのマルチキャストパケットに格納してマルチキャスト配信するようになっている。したがって、多数のマルチキャストパケットの伝送中に1つのマルチキャストパケットが欠落しても、欠落の影響は1つのムービーフラグメントにしか及ばないようになっている。従って、クライアント装置100に安定して映像コンテンツを再生させることができるようになっている。
 (実施形態2)
 本実施形態では、プロキシサーバ200は、IGMPのJOINメッセージおよびLEAVEメッセージを送信することにより、マルチキャストグループへの参加およびマルチキャストグループからの離脱を行うようになっている。
 IGMPとは、IP放送(IPマルチキャスト)において、マルチメディアルーターがマルチキャストデータのルーティングを行う際に用いるプロトコルである。
 一般に、マルチメディアルーターは、マルチキャストグループに参加しているホスト機器が存在するか否かをIGMPを利用して把握するように構成されている。マルチメディアルーターは、マルチキャストグループに参加しているホスト機器に対してマルチキャストデータを送信する。このため、ホスト機器が、あるマルチキャストデータを受信するためには、そのマルチキャストデータの送信先となるマルチキャストグループへの参加を要求するIGMP JOINメッセージをマルチメディアルーターに対して送信する必要がある。
 また、ホスト機器は、マルチキャストデータを継続して受信するためには、一定期間ごとにマルチメディアルーターから送信されるクエリー(IGMP QUERY)に応答する(IGMP REPORTを送信する)必要がある。さらに、ホスト機器は、マルチキャストデータを受信しないようにするために、そのマルチキャストデータの送信先となるマルチキャストグループからの離脱を要求するIGMP LEAVEメッセージをする必要がある。
 このため、マルチメディアルーターは、ホスト機器をマルチキャストグループに参加させる処理、クエリーの送信処理、ホスト機器をマルチキャストグループから離脱させる処理等の各種処理を行うことが必要である。
 このうち、ホスト機器をマルチキャストグループから離脱させる処理は時間を要する処理となっている。これは、マルチメディアルーターは、IGMP LEAVEメッセージを受信すると、マルチキャストデータを送信すべき他のホスト機器が存在するか否かをクエリーにより確認してから、マルチキャストデータの送信を停止するためである。
 したがって、ホスト機器がIGMP LEAVEメッセージを送信してからもしばらくの間、ホスト機器に向けてマルチメディアデータが送信されることになる。
 このため、ホスト機器がある映像コンテンツのマルチキャスト配信を受けている間にチャンネルザッピングが行われると、しばらくの間、チャンネル切換先の映像コンテンツのマルチキャストデータだけでなく、チャンネル切換元の映像コンテンツのマルチキャストデータも送信されることになる。すなわち、マルチキャスト配信では一般に一定の帯域幅が補償されているため、チャンネルザッピングの際にはネットワークの帯域が無駄に圧迫されるという問題がある。
 ここで、ネットワークの帯域圧迫の問題を回避するために、ホスト機器にチャンネル切換元の映像コンテンツのマルチキャストデータが送信されなくなってから、ホスト機器をチャンネル切換先の映像コンテンツを送信先とするマルチキャストグループに参加させることも可能である。ただし、この場合には、チャンネル切換元の映像コンテンツの再生を停止してからチャンネル切換先の映像コンテンツの再生を開始するまでにタイムラグが発生するという別の問題が生じることになる。
 以下、本実施形態における配信システム1の動作例について図25を参照しながら以下に説明する。なお、本実施形態では、クライアント装置100-1において、ファイル名が”content1”の映像コンテンツ(「切換元映像コンテンツ」とも称する)を再生中に、ユーザから、再生すべき映像コンテンツをファイル名が”content2”の映像コンテンツ(「切換先映像コンテンツ」とも称する)に切り替えるチャンネル切換の指示が出されるものとする。また、チャンネル切換の指示が出される前に、プロキシサーバ250は、切換先映像コンテンツを他のクライアント装置100にすでにマルチキャスト配信しているものとする。
 図25は、上記動作例を示すシーケンス図である。実施形態1に示したように、クライアント装置100-1から切換元映像コンテンツのリクエスト41を受けたプロキシサーバ200は、プロキシサーバ250からレスポンス51aを受信し、切換元映像コンテンツをマルチキャスト配信の送信先とするマルチキャストグループ(「切換元マルチキャストグループ」と称する)への参加を要求するIGMP JOINメッセージをプロキシサーバ200に送信する(S50)。
 IGMP JOINメッセージを受信したマルチキャスト処理部253は、プロキシサーバ200に向けて切換元映像コンテンツのマルチキャストパケット52の送信(S51)を開始する。その後、実施形態1と同様の方法で(以下のS51~S54の処理が反復されて)プロキシサーバ200-1からクライアント装置100-1に切換元映像コンテンツのレスポンス51が配信されていくことになる。
 すなわち、プロキシサーバ200-1のマルチキャスト処理部203は、S51にて配信された複数のマルチキャストパケット52をまとめて、メディアセグメントのレスポンス51に変換し(S52)、キャッシュ部202にキャッシュする(S53)。
 一方、クライアント装置100-1は、切換元映像コンテンツのメディアセグメントを要求するリクエスト41をプロキシサーバ200-1に送信すると、HTTP処理部201は、対応するレスポンス51をキャッシュ部202から読み出して(S54)、クライアント装置100-1に送信する。
 上記S51~S54の処理が繰り替えされている間(すなわち、クライアント装置100-1で切換元映像コンテンツを再生中)に、クライアント装置100-1が操作部を介してユーザから上記チャンネル切換の指示を受けたものとする。
 チャンネル切換の指示を受け付けたクライアント装置100-1のHTTP処理部101は、切換元映像コンテンツのリクエスト41’(すなわち、”Connection:Close”ヘッダが付加されたリクエスト)をプロキシサーバ200に送信する(S55)。
 同時に、HTTP処理部101は、切換先映像コンテンツのリクエスト41をプロキシサーバ200に送信する(S56)。
 プロキシサーバ200-1のHTTP処理部201は、S56にて新たに切換先映像コンテンツのリクエスト41を受信すると、切換元映像コンテンツのリクエスト41’を受信したか否かを判定する。ここでは、S55にてリクエスト41’を受信しているので、リクエストURIが変更になったと判定する(S57)。リクエストURIが変更になったと判定したので、HTTP処理部201は、リクエスト41をプロキシサーバ250に中継する(S60)。
 一方、S56にてHTTP処理部201がリクエスト41’を受信したので、マルチキャスト処理部203は、切換元マルチキャストグループからの離脱を要求するIGMP LEAVEメッセージをプロキシサーバ250に送信する(S58)。
 プロキシサーバ250のマルチキャスト処理部253は、プロキシサーバ200-1を切換元マルチキャストグループからの離脱させる処理を開始する(S59)。前述したようにこの処理には一定の時間を要するため、しばらくの間、切換元映像コンテンツのマルチキャストパケット52はプロキシサーバ200-1に向けて送信されることになる。この場合、プロキシサーバ200-1は、マルチキャストパケット52を破棄することになる。
 一方、リクエスト41を受信したプロキシサーバ250のHTTP処理部251は、リクエスト41を配信サーバ300に中継する(S61)。
 切換先映像コンテンツはすでにマルチキャスト配信されているため、HTTP処理部251は、リクエスト41に対応するレスポンス51を配信サーバ300から受信すると、レスポンスメッセージ51に<配信アドレス>を切換先マルチキャストグループのアドレスとするX-alternative-castヘッダを付与して(S62)、レスポンス51’を生成する。
 その後、HTTP処理部251は、切換先映像コンテンツのレスポンス51’をプロキシサーバ200-1に送信する(S63)。
 レスポンス51’を受信したプロキシサーバ200-1のHTTP処理部201は、切換先映像コンテンツのレスポンス51をクライアント装置100-1に送信する(S64)。この時点からクライアント装置100-1において切換先映像コンテンツの再生が開始される。
 そして、マルチキャスト処理部203は、切換先マルチキャストグループへの参加を要求するIGMP JOINメッセージをプロキシサーバ250に送信する。これにより、プロキシサーバ200には、切換先映像コンテンツのマルチキャストパケット52が配信されるようになる。ここで、マルチキャスト処理部203が切換先マルチキャストグループへの参加を要求するIGMP JOINメッセージをプロキシサーバ250に送信するタイミングは、マルチキャスト処理部203がIGMP JOINメッセージを送信すべきであると判定した時であることが望ましい。具体的には、マルチキャスト処理部203が切換元映像コンテンツのマルチキャストパケット52を受信および破棄しなくなってから一定時間経過したことをもってIGMP JOINメッセージを送信すべきであると判定し、上記一定時間が経過する前のタイミングではIGMP JOINメッセージを送信すべきでないと判定することが望ましい。
 なお、S56にてHTTP処理部201が切換先映像コンテンツ(第2のコンテンツ)のリクエスト41を受信した場合に、クライアント装置100-1に送信すべき切換元映像コンテンツ(第1のコンテンツ)のレスポンス51に”Connection:Close”ヘッダが付加した上で、クライアント装置100-1に送信するようにしてもよい。この場合、レスポンスの送信直後のタイミングで、切替元映像コンテンツを中継するためにクライアント装置100-1とプロキシサーバ200との間で確立されていた接続状態が解除されることになる。
 以上のように、本実施形態の配信システム1では、チャンネル切換が行われた場合にクライアント装置100は、切換元映像コンテンツのリクエスト41’(”Connection:Close”ヘッダを含むHTTPリクエスト)と切換先映像コンテンツのリクエスト41とをプロキシサーバ200に送信すれば、すぐに切換先映像コンテンツの再生を開始することができる。また、チャンネル切換の間にクライアント装置100とプロキシサーバ200とのネットワークの帯域も圧迫されることはない。
 したがって、映像コンテンツをマルチキャスト通信によって受信する(すなわち、チャンネルザッピングの際に切換元マルチキャストグループから離脱を要求するIGMP LEAVEメッセージをマルチメディアルーターに送信する)従来のクライアント装置に比べ、配信システム1のクライアント装置100は、切換先映像コンテンツの素早い再生と、クライアント装置100側のネットワーク帯域負荷の抑制と、を両立させることができるという効果を奏する。
 また、切換先映像コンテンツを素早く再生することが可能であるので、切換先映像コンテンツがすでにライブ配信されているライブ映像のコンテンツであるような場合に、ユーザに早いタイミングでライブ映像を視聴させることができる。
 さらに、映像コンテンツが、例えば、H.264で規定された圧縮方式により圧縮符号化されている場合、本実施形態のクライアント装置100と、上記従来のクライアント装置とで、チャンネル切換されてから切換先映像コンテンツの再生を開始するまでに要する時間の差がさらに広がる場合がある。
 すなわち、映像コンテンツが圧縮符号化されている場合、例えば、クライアント装置は、符号化されたキーフレームのデータを取得してデコードするまで映像をユーザに視聴させることができない。IPマルチキャスト配信では、伝送中にマルチキャストパケットが欠損する可能性がある。すなわち、従来のようにクライアント装置が切換先映像コンテンツのマルチキャストパケットを直接受信する場合には、マルチキャストパケットの欠損によるキーフレームの欠如により、切換先映像コンテンツの再生開始が遅れる可能性がある。
 一方、本実施形態のクライアント装置100では、前述したように、チャンネル切換されてから切換先映像コンテンツの再生を開始するまでは、クライアント装置100と配信サーバ300との間は一貫して通信の信頼性の高いHTTP通信により行われる。すなわち、切換先映像コンテンツの再生を開始するまでは、配信サーバ300からクライアント装置100に切換先映像コンテンツが配信される過程で、キーフレームの欠如が発生することはない。したがって、本実施形態のクライアント装置100は、切換先映像コンテンツが圧縮符号化されている場合であっても、確実に素早く切換先映像コンテンツの再生を開始することができる。
 なお、配信サーバ300またはプロキシサーバ250をX-Transport-Speedヘッダの処理が可能なように構成し、クライアント装置100が、X-Transport-Speedヘッダを含むHTTPリクエストをプロキシサーバ200に送信することが望ましい。X-Transport-Speedヘッダは、ヘッダで指定した値に応じた伝送速度でデータを伝送するようHTTPサーバに要求するためのヘッダである。
 この場合、クライアント装置100は、X-Transport-Speedヘッダとして大きな値を設定することにより、高速で切換先映像コンテンツのデータを受信することが可能である。このため、クライアント装置100は、切換先映像コンテンツのデータの先頭部分にキーフレームが含まれていない場合であっても、より素早く切換先映像コンテンツの再生を開始することができる。
 なお、プロキシサーバ250がマルチメディアルーターの役割を果たす(すなわち、プロキシサーバ200とプロキシサーバ250との間の通信経路上にマルチメディアルーターが存在しない)前提で本実施形態を説明した。ただし、基幹ネットワーク500としては、プロキシサーバ200とプロキシサーバ250との間にマルチメディアルーターが介在しているようなネットワークも想定される。この場合、プロキシサーバ200は、プロキシサーバ250との通信経路上にあるマルチメディアルーターのうち最もプロキシサーバ200に近いマルチメディアルーターにIGMP JOINやIGMP LEAVE等の通知を送信することになる。
 (付記事項1)
 実施形態1および2では、クライアント装置100がメディアセグメント単位で対象映像コンテンツのリクエストを出すものとしたが、クライアント装置100は、対象映像コンテンツ全体を単位としてリクエストを出すようにしてもよい。この場合、プロキシサーバ250は、プロキシサーバ200から受信したリクエストを、メディアセグメント単位のリクエストに変換することになる。
 例えば、HTTP処理部251は、対象映像コンテンツ全体のリクエスト(冒頭が”GET /content1/1 HTTP/1.1”で始まるリクエストメッセージ)を受信した場合に、”GET /content1/1 HTTP/1.1”で始まるリクエスト41を生成して配信サーバ300に送信し、対応するレスポンスを受信する。
 その後、HTTP処理部251は、”GET /content1/t/ HTTP/1.1”で始まるリクエスト41を生成して配信サーバ300に送信し、対応するレスポンスを受信するという処理を、2以上のtについてtをインクリメントしながら対象映像コンテンツ全体を受信するまで繰り返すことになる。
 (付記事項2)
 実施形態1および2では、プロキシサーバ250がプロキシサーバ200からリクエスト41を受信したときに、マルチキャスト配信を行っていなければ、リクエスト41を配信サーバ300に中継するものとしたが、マルチキャスト配信を行っていない状態でプロキシサーバ250を以下のように動作させてもよい。
 すなわち、プロキシサーバ250は、プロキシサーバ200からリクエスト41を受信したときにリクエスト41に対応するレスポンス51がキャッシュ部252にキャッシュされている場合には、キャッシュされているレスポンス51(またはレスポンス51から生成したレスポンス51’)をプロキシサーバ200に送信するようにしてもよい。
 (付記事項3)
 実施形態1および2では、各装置のIPアドレスがIPv4で規定されるアドレスであるものとして説明したが、これに限定されない。すなわち、各装置のIPアドレスはIPv6で規定されるアドレスであってもよい。この場合、プロキシサーバ250は、IPv6で構成されるネットワークを対象として規定されたマルチキャスト配信方式を用いてマルチキャスト配信を行ってもよい。
 (付記事項4)
 実施形態1では、クライアント装置100が、受信したメディアセグメントに欠損部が存在するか否かを判定し、欠損部が存在すると判定した場合に、欠損部のデータを取得する(すなわち、欠損部のムービーフラグメント(または欠損部を含むメディアセグメント)の配信要求を出す)ものとしたが、この処理をクライアント装置100のプロキシサーバ200が行ってもよい。また、プロキシサーバ200は、欠損部のデータを取得するために、パケット再送信技術やFEC(Forward Error Correction)等を利用してもよい。
 このようにすることにより、プロキシサーバ200が複数のクライアント装置100の代理サーバとなっている場合に、各クライアント装置100に個別に欠損部のデータの取得を行わせるよりも効率的に欠損部のデータを取得することができる。
 (付記事項5)
 実施形態1および2において、クライアント装置100とプロキシサーバ200との間のネットワークの障害が発生する場合等に、クライアント装置100から送信されたリクエスト41がしばらくプロキシサーバ200に届かなかったり、プロキシサーバ200から送信されたレスポンス51がクライアント装置100に届かなくなったりして、一定期間映像コンテンツを適切に受信できない場合がある。
 このような場合、上記一定期間の間にプロキシサーバ200では、キャッシュされるレスポンス51の累積量がキャッシュ部202の記憶容量を超えてしまい、以降にプロキシサーバ250からマルチキャスト配信されるマルチキャストパケット52を破棄してしまうことがある。
 ただし、このような場合であっても、上記一定期間の後に、クライアント装置100から、キャッシュ部202にキャッシュされていないレスポンス51を要求するリクエスト41を受信した場合に、プロキシサーバ200は、リクエスト41を中継することでプロキシサーバ250からレスポンス51を取得することができる。また、クライアント装置100は、上記一定期間の間にどのメディアセグメントを取得できなかったかを把握できるので、上記一定期間の間に取得できなかった全メディアセグメントを再取得することができる。
 なお、映像コンテンツが基本レイヤと拡張レイヤとからなる階層化されたコンテンツ(スケーラブルコンテンツ)として提供される場合、または、複数の品質(異なる複数のビットレート、解像度またはフレームレート)のデータを有するコンテンツ(例えば、13セグとワンセグ)として提供される場合、プロキシサーバ200は、キャッシュ部202にキャッシュするデータの累積量がキャッシュ部202の記憶容量を超えるのを抑制するために、以下のように動作させてもよい。
 すなわち、プロキシサーバ200のマルチキャスト処理部203は、キャッシュ部202にキャッシュされているデータ量が一定の閾値を超過したと判定した場合に、マルチキャストパケット52が構成する階層化されたメディアセグメントのうち一部の階層のデータのみを抽出してレスポンスメッセージに変換し、キャッシュ部202にキャッシュするようにしてもよい。例えば、マルチキャストパケット52が構成するメディアセグメントが基本レイヤと拡張レイヤからなる場合、基本レイヤのみを抽出したレスポンスメッセージをキャッシュ部202にキャッシュするようにしてもよい。
 さらに、マルチキャスト処理部203は、キャッシュ部202にキャッシュされているデータ量が一定の閾値を超過したと判定した場合に、マルチキャストパケット52が構成する複数の品質のデータからなるメディアセグメントのうち一部の品質のデータのみを抽出してレスポンスメッセージに変換し、キャッシュ部202にキャッシュするようにしてもよい。例えば、マルチキャストパケット52が構成するメディアセグメントがワンセグのデータと13セグのデータとからなる場合、ワンセグのデータのみを抽出したレスポンスメッセージをキャッシュ部202にキャッシュするようにしてもよい。
 なお、この場合、プロキシサーバ200のHTTP処理部201は、キャッシュ部202にキャッシュされたレスポンス51を読み出すとともに、提供可能な階層や品質(ビットレート)等を示す情報を、レスポンス51のヘッダ部またはマルチパートの各パートの部分に付加することにより、クライアント装置100に取得すべき階層(または品質)を変更させることができる。
 (プログラム、記憶媒体)
 クライアント装置100、プロキシサーバ200、250、及び配信サーバ300(300’)の各ブロックは、集積回路(ICチップ)上に形成された論理回路によってハードウェア的に実現してもよいし、CPU(Central Processing Unit)を用いてソフトウェア的に実現してもよい。
 後者の場合、クライアント装置100、プロキシサーバ200、250及び配信サーバ300は、各機能を実現するプログラムの命令を実行するCPU、上記プログラムを格納したROM(Read Only Memory)、上記プログラムを展開するRAM(Random Access Memory)、上記プログラムおよび各種データを格納するメモリ等の記憶装置(記録媒体)などを備えている。そして、本発明の目的は、上述した機能を実現するソフトウェアであるクライアント装置100、プロキシサーバ200、250、及び配信サーバ300の制御プログラムのプログラムコード(実行形式プログラム、中間コードプログラム、ソースプログラム)をコンピュータで読み取り可能に記録した記録媒体を、上記クライアント装置100、プロキシサーバ200、250、及び配信サーバ300に供給し、そのコンピュータ(またはCPUやMPU)が記録媒体に記録されているプログラムコードを読み出し実行することによっても、達成可能である。
 上記記録媒体としては、例えば、磁気テープやカセットテープ等のテープ類、フロッピー(登録商標)ディスク/ハードディスク等の磁気ディスクやCD-ROM/MO/MD/DVD/CD-R等の光ディスクを含むディスク類、ICカード(メモリカードを含む)/光カード等のカード類、マスクROM/EPROM/EEPROM/フラッシュROM等の半導体メモリ類、あるいはPLD(Programmable logic device)やFPGA(Field Programmable Gate Array)等の論理回路類などを用いることができる。
 また、上記プログラムコードは、通信ネットワークを介してクライアント装置100、プロキシサーバ200、250、及び配信サーバ300に供給してもよい。この通信ネットワークは、プログラムコードを伝送可能であればよく、特に限定されない。例えば、インターネット、イントラネット、エキストラネット、LAN、ISDN、VAN、CATV通信網、仮想専用網(Virtual Private Network)、電話回線網、移動体通信網、衛星通信網等が利用可能である。また、この通信ネットワークを構成する伝送媒体も、プログラムコードを伝送可能な媒体であればよく、特定の構成または種類のものに限定されない。例えば、IEEE1394、USB、電力線搬送、ケーブルTV回線、電話線、ADSL(Asymmetric Digital Subscriber Line)回線等の有線でも、IrDAやリモコンのような赤外線、Bluetooth(登録商標)、IEEE802.11無線、HDR(High Data Rate)、NFC(Near Field Communication)、DLNA(Digital Living Network Alliance)、携帯電話網、衛星回線、地上波デジタル網等の無線でも利用可能である。
 なお、ここで開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
 以上のように、本発明のプロキシサーバでは、上記通信装置が複数存在し、上記送信装置が上記通信装置からの要求に応じて相異なる複数のコンテンツを送信可能に構成されており、上記送信手段が、同一のコンテンツについて一定期間内に一定数以上の通信装置から上記第1の要求が送られたことを検出した場合に限り、上記情報を上記通信装置に送信することが望ましい。
 上記の構成によれば、本発明のプロキシサーバは、同一のコンテンツについて、短期間の間に多数の通信装置からユニキャスト通信によりコンテンツを送信すべき旨の要求を受けた場合に、当該コンテンツをマルチキャスト通信により上記多数の通信装置に中継することができる。また、同一のコンテンツについて、少数の通信装置からしかユニキャスト通信によりコンテンツを送信すべき旨の要求を受けていない場合には、当該コンテンツをユニキャスト通信により上記少数の通信装置に中継する。
 したがって、上記プロキシサーバは、ネットワークの帯域負荷の状況に応じて、マルチキャスト通信によるネットワークの帯域負荷の抑制と、ユニキャスト通信による安定した伝送と、のバランスを良好に維持することができるというさらなる効果を奏する。
 上記送信装置が、上記通信装置からの要求に応じて、上記コンテンツを複数に分割することにより得られる各分割データを順次送信するように構成されており、上記プロキシサーバの上記中継手段は、上記記憶部にキャッシュされた各分割データを上記通信装置に順次中継することが望ましい。
 上記の構成によれば、プロキシサーバは、より効率的にマルチキャスト通信を行うことができるというさらなる効果を奏する。
 上記プロキシサーバでは、上記コンテンツは映像コンテンツであり、上記映像コンテンツは複数のムービーフラグメントから構成されていることが望ましい。
 上記の構成によれば、上記プロキシサーバは、上記コンテンツを再生する再生装置における上記映像コンテンツの細かな再生制御を可能にするというさらなる効果を奏する。
 上記プロキシサーバでは、上記送信装置から送信される上記映像コンテンツが、各パートが1つの上記ムービーフラグメントを含むマルチパート形式のデータであることが望ましい。
 上記の構成によれば、上記プロキシサーバから上記映像コンテンツが伝送される過程で、1つのパートのデータが欠損した場合であっても、上記通信装置が受信できないムービーフラグメントは1つとなる。
 したがって、プロキシサーバは、上記通信装置に欠損したデータを短期間で取得させることができるというさらなる効果を奏する。
 上記プロキシサーバでは、各パートには、上記1つのムービーフラグメントだけでなく、上記複数のムービーフラグメントのうち、当該1つのムービーフラグメントを、上記映像コンテンツを再生する再生装置が何番目に再生すべきかを示す値も含まれていることが望ましい。
 上記の構成によれば、上記プロキシサーバは、マルチパート形式のデータを受信した通信装置に、受信した各パートに上記何番目に再生すべきかを示す値が含まれているか否かを判定させることにより、欠損したムービーフラグメントを容易に把握させることができるというさらなる効果を奏する。
 上記プロキシサーバは、上記中継手段が、マルチキャスト通信により複数のパケットを各通信装置に送信することにより、各通信装置に中継すべき映像コンテンツを中継するように構成されており、上記複数のパケットの各々には、たかだか1つのムービーフラグメントの全体または一部のデータが含まれていることが望ましい。
 上記の構成によれば、上記プロキシサーバがマルチキャスト通信により通信装置に送信したM個のパケットのうちN個のパケットが伝送中に欠損した場合であっても、上記通信装置は、M-N個以上のムービーフラグメントを受信することができる。
 したがって、上記プロキシサーバは、伝送中に相当数のパケットが欠損した場合であっても、上記通信装置に欠損したデータを短期間で取得させることができるというさらなる効果を奏する。
 なお、上記プロキシサーバ(送信側プロキシサーバ)に対し上記第1の要求を送信する上記通信装置として機能するプロキシサーバであって、上記コンテンツを再生する再生装置から受信した上記第1の要求に応じて当該コンテンツを上記再生装置に中継する中継手段と、上記再生装置から受信した上記第1の要求を中継することにより上記情報を受信したときに、上記第2の要求を上記送信側プロキシサーバに送信すべきか否かを判定する第1の判定手段と、を備えているプロキシサーバも本発明の範疇に含まれる。
 上記の構成によれば、上記プロキシサーバは、上記第1の判定手段が上記第2の要求を上記送信側プロキシサーバに送信すべきであると判定した場合に限り、送信側プロキシサーバからマルチキャスト通信によりコンテンツを受信する。
 したがって、上記プロキシサーバは、状況に応じて、マルチキャスト通信によりネットワークの帯域負荷の抑制をするか、ユニキャスト通信により安定した伝送を確保するか、を適宜選択することができるという効果を奏する。
 また、上記プロキシサーバは、上記中継手段が、上記再生装置に上記コンテンツを中継している間、該コンテンツの中継のために上記再生装置と確立した接続状態を保つようになっており、第1のコンテンツを上記再生装置に中継している間に第2のコンテンツを送信すべき旨の第1の要求を受信した場合に、上記第1のコンテンツを中継するために上記再生装置と確立した接続状態を解除することが望ましい。
 上記の構成によれば、上記プロキシサーバは、上記再生装置が上記第1のコンテンツから上記第2のコンテンツに再生するコンテンツを切り替えた場合に、上記第1のコンテンツに関する処理をすぐに終了することができる。
 したがって、上記プロキシサーバは、上記再生装置の上記コンテンツの切換による処理負荷を低減させることができるというさらなる効果を奏する。
 また、上記プロキシサーバは、上記第1のコンテンツを上記再生装置に中継している間に上記第2のコンテンツを送信すべき旨の第1の要求を受信した場合に、上記第1のコンテンツが中継されている各通信装置が所属するマルチキャストグループから自装置を解除する旨の要求を上記送信側プロキシサーバに送信する送信手段と、上記第1のコンテンツが自装置に送信されなくなってから一定時間が経過したか否かを判定する第2の判定手段と、をさらに備え、上記第1の判定手段は、一定時間が経過したと上記第2の判定手段が判定した場合に、上記第2の要求を上記送信側プロキシサーバに送信すべきであると判定することが望ましい。
 上記の構成によれば、上記プロキシサーバは、上記再生装置が上記第1のコンテンツから上記第2のコンテンツに再生するコンテンツを切り替えた場合において、上記第1のコンテンツおよび上記第2のコンテンツの双方をマルチキャスト通信により上記送信側プロキシサーバから受信するというプロキシサーバ間のネットワークの無駄な帯域負荷を抑制することができるというさらなる効果を奏する。
 なお、本発明は、上記各プロキシサーバと、上記再生装置と、上記送信装置と、を含む通信システムとしても実現することができる。また、本発明に係るプロキシサーバを動作させるためのプログラムであって、コンピュータを上記の各手段として機能させることを特徴とする中継制御プログラム、および、その中継制御プログラムを記録した、コンピュータが読み取り可能な記録媒体も本発明の範疇に含まれる。
 本発明に係る通信システムは、映像配信システムとして広く利用することができる。
 100            クライアント装置(再生装置、通信装置)
 100-1、100-2    クライアント装置
 110             HTTP処理部
 120             再生部
 200            クライアント装置のプロキシサーバ(通信装置)
 200-1、200-2    クライアント装置のプロキシサーバ
 201             HTTP処理部(中継手段)
 202             キャッシュ部
 203             マルチキャスト処理部(送信手段、第1の判定手段、第2の判定手段)
 250            配信サーバのプロキシサーバ
 251             HTTP処理部(送信手段)
 252             キャッシュ部(記憶部)
 253             マルチキャスト処理部(登録手段、中継手段)
 254             マルチキャストグループ情報記憶部
 300            配信サーバ
 301             HTTP処理部
 302             メモリ部

Claims (17)

  1.  通信装置からの要求に応じて送信装置から送信されるコンテンツを、記憶部にキャッシュするとともに上記通信装置に中継するプロキシサーバであって、
     ユニキャスト通信によりコンテンツを送信すべき旨の第1の要求が上記通信装置から上記送信装置に送られたことを検出した場合に、上記送信装置の代わりに該プロキシサーバがマルチキャスト通信により該コンテンツを送信可能であることを示す情報を上記通信装置に送信する送信手段と、
     上記通信装置からマルチキャスト通信を用いて上記コンテンツを送信すべき旨の第2の要求を受信した場合に、上記通信装置をマルチキャストグループに登録する登録手段と、
     上記記憶部にキャッシュされた該コンテンツを、マルチキャスト通信を用いて上記マルチキャストグループに登録された各通信装置に中継する中継手段と、を備えていることを特徴とするプロキシサーバ。
  2.  請求項1に記載のプロキシサーバであって、
     上記通信装置は複数存在し、
     上記送信装置は上記通信装置からの要求に応じて相異なる複数のコンテンツを送信可能に構成されており、
     上記送信手段は、同一のコンテンツについて一定期間内に一定数以上の通信装置から上記第1の要求が送られたことを検出した場合に限り、上記情報を上記通信装置に送信することを特徴とするプロキシサーバ。
  3.  請求項1または2に記載のプロキシサーバであって、
     上記第1の要求はHTTPリクエストメッセージであり、
     上記送信手段は、上記情報をヘッダ情報として含むHTTPレスポンスメッセージとして送信するようになっており、
     上記ヘッダ情報には、上記マルチキャストグループのアドレスを示す値が含まれていることを特徴とするプロキシサーバ。
  4.  請求項1から3のいずれか1項に記載のプロキシサーバであって、
     上記送信装置は、上記通信装置からの要求に応じて、上記コンテンツを複数に分割することにより得られる各分割データを順次送信するように構成されており、
     上記中継手段は、上記記憶部にキャッシュされた各分割データを上記通信装置に順次中継することを特徴とするプロキシサーバ。
  5.  請求項1から4のいずれか1項に記載のプロキシサーバであって、
     上記コンテンツは映像コンテンツであり、
     上記映像コンテンツは複数のムービーフラグメントから構成されていることを特徴とするプロキシサーバ。
  6.  請求項5に記載のプロキシサーバであって、
     上記送信装置から送信される上記映像コンテンツは、各パートが1つの上記ムービーフラグメントを含むマルチパート形式のデータであることを特徴とするプロキシサーバ。
  7.  請求項6に記載のプロキシサーバであって、
     各パートには、上記1つのムービーフラグメントだけでなく、上記複数のムービーフラグメントのうち、当該1つのムービーフラグメントを、上記映像コンテンツを再生する再生装置が何番目に再生すべきかを示す値も含まれていることを特徴とするプロキシサーバ。
  8.  請求項5から7のいずれか1項に記載のプロキシサーバであって、
     上記中継手段は、マルチキャスト通信により複数のパケットを各通信装置に送信することにより、各通信装置に中継すべき映像コンテンツを中継するように構成されており、
     上記複数のパケットの各々には、たかだか1つのムービーフラグメントの全体または一部のデータが含まれていることを特徴とするプロキシサーバ。
  9.  請求項1から8のいずれか1項に記載のプロキシサーバである送信側プロキシサーバに対し上記第1の要求を送信する上記通信装置として機能するプロキシサーバであって、
     上記コンテンツを再生する再生装置から受信した上記第1の要求に応じて当該コンテンツを上記再生装置に中継する中継手段と、
     上記再生装置から受信した上記第1の要求を中継することにより上記情報を受信したときに、上記第2の要求を上記送信側プロキシサーバに送信すべきか否かを判定する第1の判定手段を備えていることを特徴とするプロキシサーバ。
  10.  請求項9に記載のプロキシサーバであって、
     上記中継手段は、上記再生装置に上記コンテンツを中継している間、該コンテンツの中継のために上記再生装置と確立した接続状態を保つようになっており、
     上記中継手段は、第1のコンテンツを上記再生装置に中継している間に第2のコンテンツを送信すべき旨の第1の要求を受信した場合に、上記第1のコンテンツを中継するために上記再生装置と確立した接続状態を解除することを特徴とするプロキシサーバ。
  11.  請求項10に記載のプロキシサーバであって、
     上記第1のコンテンツを上記再生装置に中継している間に上記第2のコンテンツを送信すべき旨の第1の要求を受信した場合に、上記第1のコンテンツが中継されている各通信装置が所属するマルチキャストグループから自装置を解除する旨の要求を上記送信側プロキシサーバに送信する送信手段と、
     上記第1のコンテンツが自装置に送信されなくなってから一定時間が経過したか否かを判定する第2の判定手段と、をさらに備え、
     上記第1の判定手段は、一定時間が経過したと上記第2の判定手段が判定した場合に、上記第2の要求を上記送信側プロキシサーバに送信すべきであると判定することを特徴とするプロキシサーバ。
  12.  上記コンテンツを再生する再生装置と、請求項1から8のいずれか1項に記載のプロキシサーバと、請求項9から11のいずれか1項に記載のプロキシサーバと、上記通信装置と、を含む通信システム。
  13.  通信装置からの要求に応じて送信装置から送信されるコンテンツを、記憶部にキャッシュするとともに上記通信装置に中継するプロキシサーバにおける中継方法であって、
     ユニキャスト通信によりコンテンツを送信すべき旨の第1の要求が上記通信装置から上記送信装置に送られたことを検出した場合に、上記送信装置の代わりに該プロキシサーバがマルチキャスト通信により該コンテンツを送信可能であることを示す情報を上記通信装置に送信する送信工程と、
     上記通信装置からマルチキャスト通信を用いて上記コンテンツを送信すべき旨の第2の要求を受信した場合に、上記通信装置をマルチキャストグループに登録する登録工程と、
     上記記憶部にキャッシュされた該コンテンツを、マルチキャスト通信を用いて上記マルチキャストグループに登録された各通信装置に中継する中継工程と、を含んでいることを特徴とする中継方法。
  14.  請求項1から8のいずれか1項に記載のプロキシサーバを動作させるプログラムであって、コンピュータを上記各手段として機能させるための中継制御プログラム。
  15.  請求項14に記載の中継制御プログラムが記録されているコンピュータ読み取り可能な記録媒体。
  16.  請求項9から11のいずれか1項に記載のプロキシサーバを動作させるプログラムであって、コンピュータを上記各手段として機能させるための中継制御プログラム。
  17.  請求項16に記載の中継制御プログラムが記録されているコンピュータ読み取り可能な記録媒体。
PCT/JP2011/066278 2010-07-20 2011-07-15 プロキシサーバ、中継方法、通信システム、中継制御プログラム、および記録媒体 WO2012011449A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
US13/810,715 US20130114597A1 (en) 2010-07-20 2011-07-15 Proxy server, relay method, communication system, relay control program, and recording medium
JP2012525390A JPWO2012011449A1 (ja) 2010-07-20 2011-07-15 プロキシサーバ、中継方法、通信システム、中継制御プログラム、および記録媒体
EP11809619.7A EP2597824A4 (en) 2010-07-20 2011-07-15 PROXY SERVER, RELAY METHOD, COMMUNICATION SYSTEM, RELAY CONTROL PROGRAM, AND RECORDING MEDIUM
CN2011800354373A CN103004133A (zh) 2010-07-20 2011-07-15 代理服务器、中继方法、通信系统、中继控制程序、及记录介质

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2010163366 2010-07-20
JP2010-163366 2010-07-20

Publications (1)

Publication Number Publication Date
WO2012011449A1 true WO2012011449A1 (ja) 2012-01-26

Family

ID=45496871

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2011/066278 WO2012011449A1 (ja) 2010-07-20 2011-07-15 プロキシサーバ、中継方法、通信システム、中継制御プログラム、および記録媒体

Country Status (5)

Country Link
US (1) US20130114597A1 (ja)
EP (1) EP2597824A4 (ja)
JP (1) JPWO2012011449A1 (ja)
CN (1) CN103004133A (ja)
WO (1) WO2012011449A1 (ja)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140092327A (ko) * 2011-10-12 2014-07-23 브로드피크 게이트웨이, 방법, 컴퓨터 프로그램, 및 대응하는 저장 수단
WO2014158707A1 (en) * 2013-03-14 2014-10-02 Apple Inc. Media delivery service protocol to support large numbers of client with error failover processes
KR101902323B1 (ko) * 2017-03-14 2018-09-28 주식회사 세연테크 멀티채널 프록시 ip카메라 및 이를 이용한 감시 시스템
KR101904050B1 (ko) * 2017-03-21 2018-10-04 주식회사 세연테크 프록시 ap카메라 및 이를 이용한 감시 시스템
JP2018170770A (ja) * 2018-06-01 2018-11-01 株式会社インフォシティ コンテンツ配信システム
JP2019118119A (ja) * 2019-02-26 2019-07-18 株式会社インフォシティ コンテンツ配信システム
JPWO2021005756A1 (ja) * 2019-07-10 2021-01-14
WO2021014591A1 (ja) * 2019-07-23 2021-01-28 日本電信電話株式会社 コンテンツ配信システム、マルチキャストユニキャスト/マルチキャストマルチキャスト変換装置、マルチキャストユニキャスト変換装置、コンテンツ配信方法及びコンテンツ配信プログラム

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5760600B2 (ja) * 2011-03-31 2015-08-12 ソニー株式会社 通信装置、受信装置、通信方法、および通信システム
JP5823615B2 (ja) * 2011-08-16 2015-11-25 華為技術有限公司Huawei Technologies Co.,Ltd. データフロー再利用送信のための方法、複製ポイント装置及びシステム
US9519614B2 (en) * 2012-01-10 2016-12-13 Verizon Digital Media Services Inc. Multi-layer multi-hit caching for long tail content
CN102869003A (zh) * 2012-08-28 2013-01-09 中兴通讯股份有限公司 一种异构网络下业务内容分发的方法、业务管理平台
US9432204B2 (en) * 2013-08-24 2016-08-30 Nicira, Inc. Distributed multicast by endpoints
US9602385B2 (en) 2013-12-18 2017-03-21 Nicira, Inc. Connectivity segment selection
US9602392B2 (en) 2013-12-18 2017-03-21 Nicira, Inc. Connectivity segment coloring
US9794079B2 (en) 2014-03-31 2017-10-17 Nicira, Inc. Replicating broadcast, unknown-unicast, and multicast traffic in overlay logical networks bridged with physical networks
US9794855B2 (en) 2014-10-01 2017-10-17 At&T Intellectual Property I, L.P. Facilitation of geographically addressed data streaming
US10158682B2 (en) * 2015-09-23 2018-12-18 Adobe Systems Incorporated Power efficient multimedia content streaming based on a server push
US10152080B2 (en) 2015-09-23 2018-12-11 Adobe Systems Incorporated Power efficient multimedia content streaming based on media segment duration
EP3398073B1 (en) * 2016-02-10 2023-03-29 Mobileiron, Inc. Securely storing and distributing sensitive data in a cloud-based application
TWI758680B (zh) * 2019-01-31 2022-03-21 日商日本電氣股份有限公司 資料中繼裝置、方法、發送系統及程式
EP3932082A1 (en) 2019-02-27 2022-01-05 British Telecommunications public limited company Multicast assisted delivery
US10778457B1 (en) 2019-06-18 2020-09-15 Vmware, Inc. Traffic replication in overlay networks spanning multiple sites
GB2598295B (en) 2020-08-19 2023-02-22 British Telecomm Content delivery
WO2022178762A1 (en) * 2021-02-25 2022-09-01 Huawei Technologies Co., Ltd. Ad-hoc multicast delivery of unicast services
US11784922B2 (en) 2021-07-03 2023-10-10 Vmware, Inc. Scalable overlay multicast routing in multi-tier edge gateways

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000155712A (ja) * 1998-11-19 2000-06-06 Nippon Telegr & Teleph Corp <Ntt> 分散キャッシュ配送方法及び分散キャッシュ配送プログラムを記憶した媒体
JP2004215052A (ja) * 2003-01-07 2004-07-29 Nec Nexsolutions Ltd 情報配信システム及び情報配信方法
JP2005110244A (ja) 2003-09-27 2005-04-21 Lg Electronics Inc マルチメディアストリーミングサービスシステム及びその方法
JP2007173987A (ja) 2005-12-19 2007-07-05 Canon Inc マルチメディアデータ送受信システム、及び装置、又はプログラム
JP2008311947A (ja) * 2007-06-14 2008-12-25 Panasonic Corp コンテンツ配信システム、コンテンツサーバ、端末、コンテンツ配信方法、プログラムおよび記録媒体

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6658463B1 (en) * 1999-06-10 2003-12-02 Hughes Electronics Corporation Satellite multicast performance enhancing multicast HTTP proxy system and method
JP2001283015A (ja) * 2000-03-29 2001-10-12 Nippon Columbia Co Ltd コンテンツデータ配信システムおよび方法
US7237034B2 (en) * 2000-09-18 2007-06-26 Openwave Systems Inc. Method and apparatus for controlling network traffic
JP3881182B2 (ja) * 2001-03-09 2007-02-14 株式会社エヌ・ティ・ティ・ドコモ 中継方法および代理サーバ装置
US7174384B2 (en) * 2001-07-31 2007-02-06 Dinastech Ipr Limited Method for delivering large amounts of data with interactivity in an on-demand system
US20030195964A1 (en) * 2002-04-10 2003-10-16 Mane Pravin D. Managing multicast sessions
US7623497B2 (en) * 2002-04-15 2009-11-24 Qualcomm, Incorporated Methods and apparatus for extending mobile IP
US7657644B1 (en) * 2002-05-10 2010-02-02 Netapp, Inc. Methods and apparatus for streaming media multicast
US7281058B1 (en) * 2002-10-09 2007-10-09 Juniper Networks, Inc. Delivering and receiving multicast content across a unicast network
US7586938B2 (en) * 2003-10-24 2009-09-08 Microsoft Corporation Methods and systems for self-describing multicasting of multimedia presentations
KR100643292B1 (ko) * 2005-04-29 2006-11-10 삼성전자주식회사 세션 개시 프로토콜 단말기 사용자의 주소 정보 관리 방법및 이를 위한 서버
US7593326B2 (en) * 2005-06-29 2009-09-22 International Business Machines Corporation Method and apparatus for managing bandwidth requirements for video on demand services
JP5277158B2 (ja) * 2006-04-11 2013-08-28 トムソン ライセンシング データ受信方法、修復方法および対応する端末
US20080134266A1 (en) * 2006-11-24 2008-06-05 Young-Seok Kang Digital broadcasting system and error correction method thereof
JP4984917B2 (ja) * 2007-01-26 2012-07-25 日本電気株式会社 マルチキャスト通信システムおよび方法
US8489702B2 (en) * 2007-06-22 2013-07-16 Apple Inc. Determining playability of media files with minimal downloading
US8064449B2 (en) * 2007-10-15 2011-11-22 Media Patents, S.L. Methods and apparatus for managing multicast traffic
US8387102B1 (en) * 2008-12-22 2013-02-26 Qurio Holdings, Inc. Method and system for minimizing a number of data streams
US20130124683A1 (en) * 2010-07-20 2013-05-16 Sharp Kabushiki Kaisha Data distribution system, data distribution method, data relay device on distribution side, and data relay device on reception side

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000155712A (ja) * 1998-11-19 2000-06-06 Nippon Telegr & Teleph Corp <Ntt> 分散キャッシュ配送方法及び分散キャッシュ配送プログラムを記憶した媒体
JP2004215052A (ja) * 2003-01-07 2004-07-29 Nec Nexsolutions Ltd 情報配信システム及び情報配信方法
JP2005110244A (ja) 2003-09-27 2005-04-21 Lg Electronics Inc マルチメディアストリーミングサービスシステム及びその方法
JP2007173987A (ja) 2005-12-19 2007-07-05 Canon Inc マルチメディアデータ送受信システム、及び装置、又はプログラム
JP2008311947A (ja) * 2007-06-14 2008-12-25 Panasonic Corp コンテンツ配信システム、コンテンツサーバ、端末、コンテンツ配信方法、プログラムおよび記録媒体

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP2597824A4

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140092327A (ko) * 2011-10-12 2014-07-23 브로드피크 게이트웨이, 방법, 컴퓨터 프로그램, 및 대응하는 저장 수단
KR101999237B1 (ko) 2011-10-12 2019-07-11 브로드피크 게이트웨이, 방법, 컴퓨터 프로그램, 및 대응하는 저장 수단
JP2015501569A (ja) * 2011-10-12 2015-01-15 ブロードピーク ゲートウェイ、並びにゲートウェイに対応する方法、コンピュータプログラム、及び記憶手段
US9917916B2 (en) 2013-03-14 2018-03-13 Apple Inc. Media delivery service protocol to support large numbers of client with error failover processes
TWI558180B (zh) * 2013-03-14 2016-11-11 蘋果公司 用於運用容錯移轉程序支援大量用戶端之媒體傳送服務協定
WO2014158707A1 (en) * 2013-03-14 2014-10-02 Apple Inc. Media delivery service protocol to support large numbers of client with error failover processes
KR101902323B1 (ko) * 2017-03-14 2018-09-28 주식회사 세연테크 멀티채널 프록시 ip카메라 및 이를 이용한 감시 시스템
KR101904050B1 (ko) * 2017-03-21 2018-10-04 주식회사 세연테크 프록시 ap카메라 및 이를 이용한 감시 시스템
JP2018170770A (ja) * 2018-06-01 2018-11-01 株式会社インフォシティ コンテンツ配信システム
JP2019118119A (ja) * 2019-02-26 2019-07-18 株式会社インフォシティ コンテンツ配信システム
JPWO2021005756A1 (ja) * 2019-07-10 2021-01-14
JP2023033600A (ja) * 2019-07-10 2023-03-10 日本電信電話株式会社 コンテンツ配信システム、ユニキャストマルチキャスト変換装置、コンテンツ配信方法及びコンテンツ配信プログラム
JP7298688B2 (ja) 2019-07-10 2023-06-27 日本電信電話株式会社 コンテンツ配信システム、ユニキャストマルチキャスト変換装置、コンテンツ配信方法及びコンテンツ配信プログラム
US11882340B2 (en) 2019-07-10 2024-01-23 Nippon Telegraph And Telephone Corporation Content distribution system, unicast multicast converter, content distribution method and content distribution program
JP7473025B2 (ja) 2019-07-10 2024-04-23 日本電信電話株式会社 コンテンツ配信システム、ユニキャストマルチキャスト変換装置、コンテンツ配信方法及びコンテンツ配信プログラム
WO2021014591A1 (ja) * 2019-07-23 2021-01-28 日本電信電話株式会社 コンテンツ配信システム、マルチキャストユニキャスト/マルチキャストマルチキャスト変換装置、マルチキャストユニキャスト変換装置、コンテンツ配信方法及びコンテンツ配信プログラム
JPWO2021014591A1 (ja) * 2019-07-23 2021-01-28
JP7298690B2 (ja) 2019-07-23 2023-06-27 日本電信電話株式会社 コンテンツ配信システム、マルチキャストユニキャスト/マルチキャストマルチキャスト変換装置、マルチキャストユニキャスト変換装置、コンテンツ配信方法及びコンテンツ配信プログラム

Also Published As

Publication number Publication date
CN103004133A (zh) 2013-03-27
US20130114597A1 (en) 2013-05-09
EP2597824A4 (en) 2014-02-26
JPWO2012011449A1 (ja) 2013-09-09
EP2597824A1 (en) 2013-05-29

Similar Documents

Publication Publication Date Title
WO2012011449A1 (ja) プロキシサーバ、中継方法、通信システム、中継制御プログラム、および記録媒体
JP5791893B2 (ja) 以前の伝送データを用いた、ビデオ・コンテンツ及びサービスのブロードキャストの受信のための方法及びデバイス
KR102120525B1 (ko) 통신 장치, 통신 데이터 생성 방법, 및 통신 데이터 처리 방법
CN110915180A (zh) 低时延媒体摄取系统、设备和方法
WO2012096372A1 (ja) コンテンツ再生装置、コンテンツ再生方法、配信システム、コンテンツ再生プログラム、記録媒体、およびデータ構造
JPWO2012011467A1 (ja) データ配信システム、データ配信方法、配信側データ中継装置、及び受信側データ中継装置
CN106464932A (zh) 多播流传输
JP6329964B2 (ja) 送信装置、送信方法、受信装置、及び、受信方法
WO2012011490A1 (ja) コンテンツ取得装置、コンテンツ送信装置、コンテンツ送受信システム、データ構造、制御方法、制御プログラム、及び記録媒体
KR102247976B1 (ko) 통신 장치, 통신 데이터 생성 방법, 및 통신 데이터 처리 방법
WO2015107786A1 (ja) 通信装置、通信データ生成方法、および通信データ処理方法
KR102137858B1 (ko) 송신 장치, 송신 방법, 수신 장치, 수신 방법 및 프로그램
WO2012011466A1 (ja) 中継装置、中継方法、通信システム、中継制御プログラム、および記録媒体
KR20160138044A (ko) 미디어 데이터를 스트리밍하기 위한 목표된 광고 삽입
KR102176404B1 (ko) 통신 장치, 통신 데이터 생성 방법, 및 통신 데이터 처리 방법
JP2010161550A (ja) 映像コンテンツ受信装置、および映像コンテンツ受信方法
JPWO2005027439A1 (ja) メディアストリームのマルチキャスト配信方法及び装置
KR101829064B1 (ko) Dash 규격의 미디어 데이터와 mmt 전송 시스템과의 연동 방법 및 그 장치
JP2008016894A (ja) 送信装置及び受信装置
Robinson Live streaming ecosystems
WO2015064384A1 (ja) 送信装置、送信方法、受信装置、及び、受信方法
EP3588847A1 (en) Multicast signal transmitting and receiving method and device
TW200906185A (en) A network unit, a central distribution control unit and a computer program product

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 11809619

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 13810715

Country of ref document: US

WWE Wipo information: entry into national phase

Ref document number: 2012525390

Country of ref document: JP

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 2011809619

Country of ref document: EP