GB2551174A - File distribution by multicast - Google Patents

File distribution by multicast Download PDF

Info

Publication number
GB2551174A
GB2551174A GB201610035A GB201610035A GB2551174A GB 2551174 A GB2551174 A GB 2551174A GB 201610035 A GB201610035 A GB 201610035A GB 201610035 A GB201610035 A GB 201610035A GB 2551174 A GB2551174 A GB 2551174A
Authority
GB
Grant status
Application
Patent type
Prior art keywords
data
file
transmission
segments
system
Prior art date
Legal status (The legal status 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 status listed.)
Pending
Application number
GB201610035A
Other versions
GB201610035D0 (en )
Inventor
Konst Krister
Pedersen Robin
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Snaptv As
Original Assignee
Snaptv As
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

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B7/00Radio transmission systems, i.e. using radiation field
    • H04B7/14Relay systems
    • H04B7/15Active relay systems
    • H04B7/185Space-based or airborne stations; Stations for satellite systems
    • H04B7/18523Satellite systems for providing broadcast service to terrestrial stations, i.e. broadcast satellite service
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B7/00Radio transmission systems, i.e. using radiation field
    • H04B7/14Relay systems
    • H04B7/15Active relay systems
    • H04B7/185Space-based or airborne stations; Stations for satellite systems
    • H04B7/18578Satellite systems for providing broadband data service to individual earth stations
    • H04B7/18584Arrangements for data networking, i.e. for data packet routing, for congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television, VOD [Video On Demand]
    • H04N21/60Selective content distribution, e.g. interactive television, VOD [Video On Demand] using Network structure or processes specifically adapted for video distribution between server and client or between remote clients; Control signaling specific to video distribution between clients, server and network components, e.g. to video encoder or decoder; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
    • H04N21/61Network physical structure; Signal processing
    • H04N21/6106Network physical structure; Signal processing specially adapted to the downstream path of the transmission network
    • H04N21/6143Network physical structure; Signal processing specially adapted to the downstream path of the transmission network involving transmission via a satellite
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television, VOD [Video On Demand]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments

Abstract

Disclosed is a method of multicast transmission of a plurality of data files via satellite communications. Each data file is fragmented into a plurality of segments. A source computer system 106 receives a plurality of data transmission requests from respective remote computer systems 105. Each data transmission request identifies one or more data file segments. The source computer systems assigns a priority to each requested segment. The priority is assigned based on the number of received requests identifying that segment. The requested data segments are transmitted using multicast satellite communications in priority order. Initially, the source computer system sends a message to each remote computer containing both identification data, ID, and a data element for each available data file. Each data element is dependent on data from the segments of its data file, e.g. in the form of a concatenation of checksums or hashes for each segment. The remote nodes use the data elements to determine segments which they have not yet received and must request. The requests are made via satellite.

Description

File Distribution by Multicast

Field

The field of the invention is data transmission via satellite communications. More particularly, embodiments provide an advantageous technique for multicast data transmission via satellite communications to a plurality of VSAT terminals. Embodiments determine what data needs to be transmitted, and an order in which data is transmitted, so as to communicate data to a plurality of VSAT terminals via a satellite communications system.

Background

There are many remote locations, such as oil rigs or research stations, where there is no support of a land based telecommunications infrastructure for providing high speed data communications. A known technique for providing data communication with such remote locations is to use very-small-aperture receiving terminals (VSAT) that communicate with satellites.

The use of telecommunications satellites in combination with VSAT terminals experiences a number of problems. Such systems only support a low bandwidth per user and data can only be transmitted to VSAT terminals at a significantly lower transmission rate than a standard internet connection in a non-remote location. Another problem is that the satellite transmission process can experience large and unpredictable signal attenuation, which can cause data packets to be lost or corrupted during transmission. In addition, satellite transmission networks have a high latency. A large number of data packets may therefore be lost or corrupted and the cost of retransmitting lost or corrupted data packets is high.

There is therefore a need to increase the efficiency of data transmission to VSAT terminals.

Summary

According to a first aspect of the invention, there is provided a method of multicast transmission of a plurality of data file segments via satellite communications, the method comprising a source computer system: receiving a plurality of data transmission requests, wherein each data transmission request identifies one or more data file segments requested by a respective remote computer system; determining a plurality of data file segments for transmission to the remote computer systems in dependence on the received data transmission requests; associating each of the determined data file segments with a priority, wherein the priority that each data file segment is associated with is determined in dependence on the number of data transmission requests that identified that data file segment; and sending, via satellite communications to the remote computer systems, a multicast transmission of the determined data file segments, wherein the order in which the data file segments are transmitted is determined in dependence on the priority of each of the data segments.

Preferably, the method further comprises sending, by the source computer system, a message to one or more of the remote computer systems, wherein: the message comprises identification data of a plurality of available data file segments for sending by the source computer system; and the message comprises data elements, wherein each data element is dependent on the data comprised by the available one or more data file segments.

Preferably, the identification data comprises identification data of one or more data files; each of the identified available data file segments is comprised by one of the identified data files; and the number of data elements comprised by the message is the same as the number of identified data files.

Preferably, each data element comprises or more of: status data of the one or more of the identified data files and/or identified data file segments; a data characterising value of one or more of the identified data files and/or identified data file segments.

Preferably, the data characterising value is a hash, checksum, and/or any unique identifier of data files and/or data file segments.

Preferably, the method further comprises sending the message in response to one or more requests from one or more remote computer systems.

Preferably, the method further comprises sending the message automatically as a substantially regular broadcast.

Preferably, the method further comprises determining the priority of each data file segment in further dependence on data transmission requests for other data file segments of the file that the data segment is comprised by.

Preferably, each of the plurality of data transmission requests identifies requested data file segments by identifying data files and, for each identified data file, identifying requested data file segments that are comprised by the identified data file.

Preferably, identifying requested data file segments that are comprised by the identified data file is performed using bitmasks.

Preferably, a sending of a multicast transmission of the determined data file segments is performed without continuous acknowledgements of successful data transmission being received from one or more of the remote computer systems during the transmission.

Preferably, the transmission of a data file segment includes transmitting a segment index and a file reference, the file reference identifying the data file to which the data file segment belongs and the segment index indicating to which portion of the data file the segment corresponds.

Preferably, the multicast transmission is IP multicast transmission.

Preferably, the communications between the source computer system and remote computer systems are via TCP.

Preferably, the method further comprises: receiving transmission rate data of the satellite communications link; and controlling the bitrate of the multicast transmission of the determined data file segments in dependence on the received transmission rate data.

According to a second aspect of the invention there is provided a method of generating a data transmission request by a remote computer system, the method comprising a remote computer system: receiving, via satellite communications, identification data of a plurality of data file segments, and/or identification data of a plurality of data files, and a plurality of data elements; using the plurality of data elements to determine one or more data file segments that are required by the remote computer system; generating a data transmission request for the determined one or more data file segments that are required by the remote computer system; and sending, via satellite communications, the data transmission request.

Preferably, the identification data of one or more data file segments comprises identification data of one or more data files, wherein each of the identified data file segments is comprised by one of the identified data files; and the number of data elements is the same as the number of identified data files.

Preferably, each data element comprises or more of: status data of the one or more of the identified data files and/or identified data file segments; and a data characterising value of one or more of the identified data files and/or identified data file segments.

Preferably, the data characterising value is a hash, checksum and/or any unique identifier of data files and/or data file segments.

Preferably, said step of using the plurality of data elements to determine one or more data file segments that are required by the remote computer system comprises: obtaining data characterising values of one or more data files and/or data file segments comprised by the remote computer system; and comparing the obtained data characterising values with the received data characterising values.

Preferably, the method further comprises sending a request for said identification data of a plurality of data file segments, and/or identification data of data files, and a plurality of data elements.

Preferably, the method further comprises receiving one or more of the requested data file segments by the data transmission request via satellite communications.

Preferably, the method further comprises receiving one or more data segments from more than one data source.

Preferably, the communication with at least one of the other data sources is not via satellite communications.

Preferably, the method further comprises not transmitting continuous acknowledgements by satellite communications when receiving the requested data file segments.

Preferably, the identification data of a plurality of data file segments and the plurality of data elements are received from a source computer system.

Preferably, the data transmission request is sent to a source computer system.

Preferably, the communications between the source computer system and remote computer systems are via TCP. A third aspect of the invention provides a source computer system configured to perform the method of either of the first and second aspects of the invention. A fourth aspect of the invention provides a remote computer system configured to perform the method of either of the first and second aspects of the invention. A fifth aspect of the invention provides a computer program that, when executed by a computing system, causes to computing system to perform the method of either of the first and second aspects of the invention. A sixth aspect of the invention provides a communication system comprising a source computer system according to the third aspect of the invention that is configured to communicate via satellite communications with a plurality of remote computer systems according to the fourth aspect of the invention.

List of Figures

Embodiments of the present invention will now be described in detail, by way of example only, with reference to the accompanying drawings, in which:

Figure 1 is an example of a communication system according to an embodiment of the invention;

Figure 2 is an example of data file, segment and page structure according to an embodiment of the invention;

Figure 3 shows an example of a data communication process according to an embodiment of the invention;

Figure 4 is an example of a data prioritization process according to an embodiment of the invention;

Figure 5 is an example of a transmission protocol of a data file segment according to an embodiment of the invention;

Figure 6 is an example of a communication system according to an embodiment of the invention; and

Figure 7 is a flowchart of a process according to an embodiment of the invention. Description of embodiments

Embodiments improve the efficiency of data transmission via a satellite network.

Embodiments provide an alternative approach to multicast data transmission to a plurality of receiving terminals via a satellite network. By identifying and prioritizing the transmission of data elements that are in high demand from a plurality of different users, the bandwidth for transmitting data is more efficiently utilised in comparison with known techniques.

Embodiments are described in more detail below.

Figure 1 shows a satellite communications system suitable for use in embodiments.

The overall system comprises a central media library 101 system comprising database of data files for provision to a plurality of remote computer systems at remote locations. The overall system also comprises a transmitting site 102 from which the data files are transmitted to a communications satellite 103. The communications satellite 103 transmits the data files on to a plurality of receiving sites 104, each of which comprises a receiver of satellite communications and a remote computer system 105.

The transmitting site 102 comprises transmission server systems 106 and an antenna for providing communications with the satellite. The transmission server systems 106 at the transmitting site 102 are in communication with the central media library 101 system. The communication may be via a high speed internet connection or any other communication technique.

The transmitting site 102 preferably also comprises, or is in communication with, a bandwidth monitor 601 that monitors the available transmission bandwidth and provides this information to the transmission server using Simple Network Management Protocol (SNMP).

The central media library 101 system can be any type of storage system, and may comprise a network of storage devices. The central media library 101 system has a large data capacity. The stored data files may be, for example, a catalogue of media files.

The overall system also comprises a plurality of receiving sites 104. Each receiving site 104 comprises a system for communicating with the satellite. This is preferably a VSAT receiving station. A VSAT receiving station comprises a VSAT modem and a VSAT antenna that both receive information broadcast from the communications satellite 103 and also transmit signals to the communications satellite 103. Bi-directional communication between the receiving site 104 and the transmitting site 102, via the satellite, is therefore provided.

The receiving site 104 comprises a remote computer system that may comprise a plurality of devices, such as one or more television sets and one or more personal computers. All of the components of the receiving site 104 preferably communicate with each other over a LAN network.

The transmission server system 106 and the satellite 103 preferably transmit data files to the receiving antennae via IP multicast. Preferably, the transmission protocol does not require continuous acknowledgements from the receivers. Advantageously, this improves performance when communicating over transmission channels with high latency.

The components of the overall system operate to efficiently provide the remote computer systems with one or more data files from the central media library 101 system. A file record is generated that comprises list of available data files stored by the central media library 101 system. For each data file, there is a data characterising value that is associated with the file. The data characterising value may be a checksum, hash, image or any other known technique for providing a unique identification of the content of the data file. The file record preferably also comprises identification data of each data file and size data of each data file. The file record is preferably generated at the central media library 101 system. As described in more detail below, each data file comprises a plurality of data segments. The data characterising value for a data file may be generated as a concatenation of separate data characterising values for each data segment of the data file. Such a data characterising value for a data file allows use of the data characterising values for any of the individual data segments within a data file, even if some of the data segments are missing or corrupted.

Upon request from the transmission server system, or automatically, data file segments of one or more files stored in the central media library 101 system are sent from the central media library 101 system to the transmission server system. An entire data file may be sent in its entirety or just segments of the data file may be sent. The transmission server system 106 controls the transmission of the segments of data files to the remote computer systems. The transmission server system 106 determines what data file segments are transmitted and when each data file segment is transmitted. It may also perform all other required operations for the transmission of the data to the satellite.

When a data file is transmitted from the transmitting site 102 to a plurality of receiving sites 104, there will be occasions where a portion or all of the transmitted data fails to be transferred to all of the receiving sites 104. This can be caused by packet loss in the communications channel, and this is a known problem with satellite communication systems. Another cause of a remote computer system not obtaining a complete data file may be the remote computer system joining a transmission of a data file after the transmission has started, or leaving the transmission of a data file before the transmission is completed. Each remote computer system that does not have a complete, or up to date, data file will need to be provided with the missing data. It is possible that a remote computer system only requires a small amount of data to complete one or more of its data files. Accordingly, it is advantageous to retransmit only the information that is required by the remote computer system rather than the complete data file. In order to reduce the need to retransmit information that has been successfully received, each data file is treated as a plurality of data segments. This allows for only the required data segments to be transmitted to a remote computer system without having to transmit the entire data file.

Figure 2 illustrates the structure of segmented data files for transmission from the central media library 101 system to one or more remote computer systems via a satellite communications network.

The data files may be, for example, media content that is playable by a remote computer system after a complete set of files has been received by the remote computer system.

Each data file is divided into a plurality of data segments. Each data segment itself preferably comprises segment index information to aid the determination of how the data segment should be combined with the other data segments in order to form a complete data file. In some embodiments, the segment index information may simply comprise an indication of the position of the segment in a file. For example, the segment index information may indicate that the segment is the fifth segment of the data file, or that the segment is the fifth segment of ten segments required to make up the data file.

Each segment of the plurality of segments is itself divided into a number of pages. Data transmission according to embodiments is preferably performed according to the UDP protocol, with the pages corresponding to the UDP packets transmitted over the network. The UDP protocol in the transport layer drops corrupt packets.

If during data transmission one or more pages in a segment are lost, the whole segment will need to be retransmitted. The optimal size of the segments depends on the network conditions, the number of receivers and other factors.

The method according to embodiments includes the use of any page size, data segment size and data file size.

The segment size is predetermined and known by the transmission server system 106 and the receiver sites. Each receiver site can therefore deduce the number of segments required for the transmission of a data file if the file size is known.

According to embodiments, before segments of data files are sent from the transmitting site 102 to the receiving sites 104, the transmission server system 106 communicates with the remote computing systems of the receiving sites 104 in order to determine which data segments of data files are required for transmission.

Figure 3 illustrates a situation in which a plurality of remote computer systems communicate with a transmission server system 106 to determine which available data files and segments of data files are required by the different remote computer systems. The communications between the transmission server system 106 and the remote computer systems are performed over the satellite communication network, as described with reference to Figure 1.

The remote computer systems each request a list of available files from the transmission server system. This step can be performed asynchronously via the TCP protocol. The transmission server system 106 then responds by transmitting some, or all, of the file record. The transmitted file record comprises a list of available files together with their data characterising values. The transmitted file record may include further data, such as the file sizes and other data allowing the identification of the files and/or the integrity of the files to be validated.

In an alternative implementation according to embodiments, rather than transmitting the file record in response to requests from the remote computer systems, the transmission server system 106 regularly broadcasts the file record to all of the remote computer systems. In this embodiment, it is not necessary for the remote computer systems to send requests for the list of available files from the transmission server system 106 as described above.

Each remote computer systems has locally stored data files, some of which may comprise missing data segments or data segments that are out of date. The locally stored files have been obtained from previous satellite transmissions and/or may be data files from a separate data source, such as a different sender or a removable disk drive.

Each remote computer system generates a list of its locally stored data files and generates data characterising values for each of these files. A comparison is then performed between the locally generated data characterising value for each data file and those in the file record received from the transmission server system. This comparison allows each remote computer system to determine which of its locally stored files are complete and up to date as well as any data files that are missing and data files that are incomplete or out of date. A data file will only be complete and up to date if the data characterising value for a data file in the received file record is the same as that generated from the locally stored data file. By constructing data characterising values for a data file from a plurality of separate data characterising values generated for each of the data segments of the data file, the comparison of the data characterising values for a data file identifies which specific data segments of a data file are missing or otherwise different from the data file in the central media library 101 system and therefore required by the local computer system. In addition, other data than the data characterising values, such as the segment index data, can be used by the remote computer systems to determine which data segments are required to form a complete file. Missing segments, and missing data files, can therefore be determined from received index data.

Each remote computer system therefore determines specifically which data files, and segments of data files are required from the central media library 101 system.

Each remote computer system then generates a list of data files and/or data file segments that it requires and transmits the list in a data transmission request to the transmission server system. Each remote computer system may send this information asynchronously using a unicast delivery method such as TCP. Preferably, bitmasks are used to identify which data file segments are required. This is a bandwidth efficient way of identifying the required data. The transmission server system 106 can simply perform a bitwise OR with a bitmask that it already has to determine the required data file segments.

The transmission server system 106 determines, from the received data transmission requests, data files and data file segments that have been requested by the plurality of remote computer systems. The transmission server system 106 then performs a determination process to determine both which data segments are to be broadcast to the plurality of remote computer systems and the order in which they are broadcast.

Figure 4 shows the data transmission requests from each of a plurality of remote computer systems, shown as Receiver A, Receiver B and Receiver C. The transmission server system 106 is shown as Sender.

The transmission server system 106 generates and maintains a prioritized list of requested data files for transmission to the remote computer systems. The prioritized list is generated in dependence on the received data requests. The data file segments in the prioritized list are those requested in the data transmission requests. The transmission server system 106 executes an algorithm that assigns a priority to each of the data transmission requests and the data segments are ordered in the prioritized list in dependence on their associated priority.

Embodiments include a number of possible criteria according to which a priority is determined for each data file segment. The exact criteria used and the weighting of each criterion can be varied in dependence on the specific requirements of the communications network.

One criterion that can used to determine the priority of a data file segment is the number of different receiver modules that have requested that data file segment or a data file comprising that data file segment. Data file segments that are requested the most are given higher priority than data file segments that have been requested less frequently. Embodiments include this being the sole criteria for determining the order of a data file segment in the prioritized list of requested data files. For example, in Figure 4, all of the remote computer systems have requested file 3 and so the Sender has given the data segments of this file the highest priority.

Another criteria that embodiments can use for determining a priority for each data file segment is the closeness to completeness of a data file. For example, if a remote computer system only requires one data file segment in order to obtain a complete data file the transmission of that data file segment may be prioritised over the transmission of a plurality of data file segments of the same file so that a complete data file is provided to a remote computer system faster.

Another criteria that embodiments can use for determining a priority for each data file segment is the efficiency by which the data file segments of a data file can be transmitted. For example, in the embodiment shown in Figure 4, it can be seen that the first two segments of file 4 have been requested by Receiver B and the last two segments of file 4 have been requested by Receiver C. There have therefore been separate requests for data segments within the same data file. These data segments are therefore prioritised as they can be transmitted together with the transmission of a file, i.e file 4 that is the second file in the list of files to be transmitted the Sender in Figure 4.

The above prioritization criteria prevent bottlenecks forming when a large data transmission request from a remote computer system unduly delays the transfer of data files to other remote computer systems.

The generation of the prioritized list of data segments for transmission is repeatedly performed as data transmission requests are received. The prioritization of each data file segment is modified in dependence on what data file segments have been transmitted and further received data transmission requests. There may also be a periodic reset of the prioritizations of the data file segments.

The transmission server system 106 obtains the data file segments in the prioritized list of requested data files from the central media library 101 system. The transmission server system 106 then transmits the data file segments in the order in which they are prioritized in the prioritized list.

Figure 5 schematically depicts a transmission protocol the transmission of data file segments by the transmission server system 106 to the remote computer systems according to an embodiment.

The data transmission is by IP multicast and the remote computer systems do not transmit continuous acknowledgements back to the transmission server system. Figure 5 shows the transmission of one data file segment. OPEN messages are transmitted with each OPEN message comprising a file reference, some information and a segment index. An OPEN message is sent for every Nth page to allow receivers to join a segment transmission at any time. The value of N may be, for example, ten. Each remote computing system that receives the data transmission writes the PAGE message payload into temporary segment files. In this way, any incomplete or invalid data file segments can be completed at a later stage. The CLOSE message contains a segment index and a data characterising value of the data file segment. The data characterising value allows the remote computing system to determine if a complete data segment has been correctly received. When all of the required data file segments of a data file have been completely received and validated by a comparison of the received data characterising value and a locally generated characterising value, the remote computing system can use the received data file segments to assemble a data file.

Figure 6 shows the control of the transmission rate over the satellite communications network according to a preferred embodiment.

In this embodiment, a bandwidth monitor 601 continuously monitors the bandwidth of the system and continuously provides the transmission server system 106 with information regarding the available bandwidth. The transmission server system 106 then continuously adjusts the transmission bitrate in order not to exceed the available bandwidth. This reduces the loss of data packets and thereby reduces the need for retransmission of data segments.

Figure 7 is a flow chart showing a process according to an embodiment.

In step 701, the process begins.

In step 703, a plurality of data transmission requests are received, wherein each data transmission request identifies one or more data file segments requested by a respective remote computer system.

In step 705, a plurality of data file segments for transmission to the remote computer systems are determined in dependence on the received data transmission requests.

In step 707, each of the determined data file segments are associated with a priority, wherein the priority that each data file segment is associated with is determined in dependence on the number of data transmission requests that identified that data file segment.

In step 709, a multicast transmission of the determined data file segments is sent via satellite communications to the remote computer systems,, wherein the order in which the data file segments are transmitted is determined in dependence on the priority of each of the data segments.

In step 711, the process ends.

Embodiments include a number of modifications and variations to the techniques as described above.

In particular, some embodiments comprise a satellite network having multiple satellites. In certain embodiments, the transmitting site 102 or any of the receiving sites 104 may comprise a plurality of antennas and plurality of remote computer systems may be provided at the same receiving site.

In some embodiments, the central media library 101 is located at the same site as the transmitting site 102.

Either the transmitting site 102 as a whole, or just the transmitting server system, may be considered to be a source computer system.

In some embodiments, the personal devices of the receiving site 104 include one or more of a television set, a personal desktop computer, a laptop computer, and a smart phone.

Embodiments include the use of other protocols for the transmission of data files.

Each remote computer may receive data files from a plurality of sources. The plurality of sources of data files include separate central media library 101 systems and separate transmission server systems 106, as well as portable memory devices and LAN communication.

The flow charts and descriptions thereof herein should not be understood to prescribe a fixed order of performing the method steps described therein. Rather, the method steps may be performed in any order that is practicable. Although the present invention has been described in connection with specific exemplary embodiments, it should be understood that various changes, substitutions, and alterations apparent to those skilled in the art can be made to the disclosed embodiments without departing from the spirit and scope of the invention as set forth in the appended claims.

Some of the methods and processes described herein can be embodied as code (e.g., software code) and/or data. Such code and data can be stored on one or more computer-readable media, which may include any device or medium that can store code and/or data for use by a computer system. When a computer system reads and executes the code and/or data stored on a computer-readable medium, the computer system performs the methods and processes embodied as data structures and code stored within the computer-readable storage medium. In certain embodiments, one or more of the steps of the methods and processes described herein can be performed by a processor (e.g., a processor of a computer system or data storage system). It should be appreciated by those skilled in the art that computer-readable media include removable and non-removable structures/devices that can be used for storage of information, such as computer-readable instructions, data structures, program modules, and other data used by a computing system/environment. A computer-readable medium includes, but is not limited to, volatile memory such as random access memories (RAM, DRAM, SRAM); and non-volatile memory such as flash memory, various read-only-memories (ROM, PROM, EPROM, EEPROM), magnetic and ferromagnetic/ferroelectric memories (MRAM, FeRAM), and magnetic and optical storage devices (hard drives, magnetic tape, CDs, DVDs); network devices; or other media now known or later developed that is capable of storing computer-readable information/data. Computer-readable media should not be construed or interpreted to include any propagating signals.

Claims (32)

Claims
1. A method of multicast transmission of a plurality of data file segments via satellite communications, the method comprising a source computer system: receiving a plurality of data transmission requests, wherein each data transmission request identifies one or more data file segments requested by a respective remote computer system; determining a plurality of data file segments for transmission to the remote computer systems in dependence on the received data transmission requests; associating each of the determined data file segments with a priority, wherein the priority that each data file segment is associated with is determined in dependence on the number of data transmission requests that identified that data file segment; and sending, via satellite communications to the remote computer systems, a multicast transmission of the determined data file segments, wherein the order in which the data file segments are transmitted is determined in dependence on the priority of each of the data segments.
2. The method according to claim 1, further comprising sending, by the source computer system, a message to one or more of the remote computer systems, wherein: the message comprises identification data of a plurality of available data file segments for sending by the source computer system; and the message comprises data elements, wherein each data element is dependent on the data comprised by the available one or more data file segments.
3. The method according any of claim 2, wherein: the identification data comprises identification data of one or more data files; each of the identified available data file segments is comprised by one of the identified data files; and the number of data elements comprised by the message is the same as the number of identified data files.
4. The method according to claim 2 or claim 3, wherein each data element comprises or more of: status data of the one or more of the identified data files and/or identified data file segments; a data characterising value of one or more of the identified data files and/or identified data file segments.
5. The method according to claim 4, wherein the data characterising value is a hash, checksum, and/or any unique identifier of data files and/or data file segments.
6. The method according to any of claims 2 to 5, further comprising sending the message in response to one or more requests from one or more remote computer systems.
7. The method according to claim 2 to 5, further comprising sending the message automatically as a substantially regular broadcast.
8. The method according to any previous claim, further comprising determining the priority of each data file segment in further dependence on data transmission requests for other data file segments of the file that the data segment is comprised by.
9. The method according to any previous claim, wherein each of the plurality of data transmission requests identifies requested data file segments by identifying data files and, for each identified data file, identifying requested data file segments that are comprised by the identified data file.
10. The method according to claim 9, wherein identifying requested data file segments that are comprised by the identified data file is performed using bitmasks.
11. The method according to any previous claim, wherein a sending of a multicast transmission of the determined data file segments is performed without continuous acknowledgements of successful data transmission being received from one or more of the remote computer systems during the transmission.
12. The method according to any previous claim, wherein the transmission of a data file segment includes transmitting a segment index and a file reference, the file reference identifying the data file to which the data file segment belongs and the segment index indicating to which portion of the data file the segment corresponds.
13. The method according to any previous claim, wherein the multicast transmission is IP multicast transmission.
14. The method according to any previous claim, wherein the communications between the source computer system and remote computer systems are via TCP.
15. The method according to any previous claim, further comprising: receiving transmission rate data of the satellite communications link; and controlling the bitrate of the multicast transmission of the determined data file segments in dependence on the received transmission rate data.
16. A method of generating a data transmission request by a remote computer system, the method comprising a remote computer system: receiving, via satellite communications, identification data of a plurality of data file segments, and/or identification data of a plurality of data files, and a plurality of data elements; using the plurality of data elements to determine one or more data file segments that are required by the remote computer system; generating a data transmission request for the determined one or more data file segments that are required by the remote computer system; and sending, via satellite communications, the data transmission request.
17. The method according to claim 16, wherein: the identification data of one or more data file segments comprises identification data of one or more data files, wherein each of the identified data file segments is comprised by one of the identified data files; and the number of data elements is the same as the number of identified data files.
18. The method according to claim 16 or claim 17, wherein each data element comprises or more of: status data of the one or more of the identified data files and/or identified data file segments; and a data characterising value of one or more of the identified data files and/or identified data file segments.
19. The method according to claim 18, wherein the data characterising value is a hash, checksum and/or any unique identifier of data files and/or data file segments.
20. The method according to any of claims 16 to 19, wherein said step of using the plurality of data elements to determine one or more data file segments that are required by the remote computer system comprises: obtaining data characterising values of one or more data files and/or data file segments comprised by the remote computer system; and comparing the obtained data characterising values with the received data characterising values.
21. The method according to any of claims 16 to 20, further comprising sending a request for said identification data of a plurality of data file segments, and/or identification data of data files, and a plurality of data elements.
22. The method according to any of claims 16 to 21, further comprising receiving one or more of the requested data file segments by the data transmission request via satellite communications.
23. The method according to any of claims 16 to 22, further comprising receiving one or more data segments from more than one data source.
24. The method according to claim 23, wherein the communication with at least one of the other data sources is not via satellite communications.
25. The method according to claim 22, further comprising not transmitting continuous acknowledgements by satellite communications when receiving the requested data file segments.
26. The method according to any of claims 16 to 25, wherein the identification data of a plurality of data file segments and the plurality of data elements are received from a source computer system.
27. The method according to any of claims 16 to 26, wherein the data transmission request is sent to a source computer system.
28. The method according to claim 26 or claim 27, wherein the communications between the source computer system and remote computer systems are via TCP.
29. A source computer system configured to perform the method of any of claims 1 to 15.
30. A remote computer system configured to perform the method of any of claims 16 to 28.
31. A computer program that, when executed by a computing system, causes to computing system to perform the method of any of claims 1 to 28.
32. A communication system comprising a source computer system according to claim 29 that is configured to communicate via satellite communications with a plurality of remote computer systems according to claim 30.
GB201610035A 2016-06-08 2016-06-08 File distribution by multicast Pending GB201610035D0 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
GB201610035A GB201610035D0 (en) 2016-06-08 2016-06-08 File distribution by multicast

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
GB201610035A GB201610035D0 (en) 2016-06-08 2016-06-08 File distribution by multicast

Publications (2)

Publication Number Publication Date
GB201610035D0 GB201610035D0 (en) 2016-07-20
GB2551174A true true GB2551174A (en) 2017-12-13

Family

ID=56508280

Family Applications (1)

Application Number Title Priority Date Filing Date
GB201610035A Pending GB201610035D0 (en) 2016-06-08 2016-06-08 File distribution by multicast

Country Status (1)

Country Link
GB (1) GB201610035D0 (en)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001042941A1 (en) * 1999-12-08 2001-06-14 Edgix Corporation Internet content delivery acceleration system employing a hybrid content selection scheme
US20020100052A1 (en) * 1999-01-06 2002-07-25 Daniels John J. Methods for enabling near video-on-demand and video-on-request services using digital video recorders
US20040226045A1 (en) * 2003-05-09 2004-11-11 Sbc Knowledge Ventures, L.P. Application services coordinated DSL-satellite multicast content delivery
US20080313679A1 (en) * 2007-06-13 2008-12-18 Microsoft Corporation Media content rebroadcast
US20090113491A1 (en) * 2007-10-31 2009-04-30 Kuether David J Method and system of retrieving lost content segments of prior broadcasted programming at a user device from a service provider
US8432808B1 (en) * 2012-06-15 2013-04-30 Viasat Inc. Opportunistically delayed delivery in a satellite network
US20140189140A1 (en) * 2012-12-31 2014-07-03 Microsoft Corporation Program Based Caching In Live Media Distribution

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020100052A1 (en) * 1999-01-06 2002-07-25 Daniels John J. Methods for enabling near video-on-demand and video-on-request services using digital video recorders
WO2001042941A1 (en) * 1999-12-08 2001-06-14 Edgix Corporation Internet content delivery acceleration system employing a hybrid content selection scheme
US20040226045A1 (en) * 2003-05-09 2004-11-11 Sbc Knowledge Ventures, L.P. Application services coordinated DSL-satellite multicast content delivery
US20080313679A1 (en) * 2007-06-13 2008-12-18 Microsoft Corporation Media content rebroadcast
US20090113491A1 (en) * 2007-10-31 2009-04-30 Kuether David J Method and system of retrieving lost content segments of prior broadcasted programming at a user device from a service provider
US8432808B1 (en) * 2012-06-15 2013-04-30 Viasat Inc. Opportunistically delayed delivery in a satellite network
US20140189140A1 (en) * 2012-12-31 2014-07-03 Microsoft Corporation Program Based Caching In Live Media Distribution

Also Published As

Publication number Publication date Type
GB201610035D0 (en) 2016-07-20 grant

Similar Documents

Publication Publication Date Title
US5553083A (en) Method for quickly and reliably transmitting frames of data over communications links
US6449654B1 (en) System and methods for retransmitting corrupted data
US6507586B1 (en) Multicast data transmission over a one-way broadband channel
US7787436B2 (en) Communications throughput with multiple physical data rate transmission determinations
US20040071128A1 (en) Reliable multicast data retransmission method by grouping wireless terminals in wireless communication medium and apparatus for the same
US7289500B1 (en) Method and system for reliable multicast data transmission
US20080219151A1 (en) System and method for using a peer to peer mechanism to repair broadcast data in wireless digital broadcast networks
Lin et al. Efficient network coded data transmissions in disruption tolerant networks
US20080075080A1 (en) Methods and apparatus for network coding
US8432808B1 (en) Opportunistically delayed delivery in a satellite network
US7801069B2 (en) Distribution of packets among a plurality of nodes
US7991905B1 (en) Adaptively selecting timeouts for streaming media
US7240105B2 (en) Distributed multicast caching technique
US20130051300A1 (en) Multi-Stream Communication
US20110216685A1 (en) Mac based mapping in ip based communications
US5805825A (en) Method for semi-reliable, unidirectional broadcast information services
US6807578B2 (en) Nack suppression for multicast protocols in mostly one-way networks
JP2005204170A (en) Data receiving apparatus and method
US20120054583A1 (en) Method and system of sub-packet error correction
US20060034313A1 (en) Multicast data transfer
US7356751B1 (en) Error handling and audience measurement in datacast network with return channel
US20130058248A1 (en) Mechanism for integrating application data with available bandwidth estimation tools for cloud computing environments
US20130114611A1 (en) Method and Apparatus for Efficient Transmission of Information to Multiple Nodes
US20100027455A1 (en) Methods and systems for content synchronization in wireless communication networks
JP2006025408A (en) Efficient one-to-many content distribution in peer-to-peer computer network