This application claims priority of Taiwan Patent Application No. 102147886, filed on Dec. 24, 2013, the entireties of which are incorporated by reference herein.
1. Technical Field
The disclosure is related to a system and method for transmitting files, and also related to accelerate data transmission by a repair file in the multiple-session transmission.
2. Description of the Related Art
Wireless communication systems have been widely deployed to provide various telecommunication services such as telephony, video, data, messaging, and broadcast services. Typical wireless communication systems may employ multiple-access technologies capable of supporting communications with multiple users by sharing available system resources (e.g., bandwidth and radio frequency). Examples of such multiple-access technologies include code division multiple access (CDMA) systems, time division multiple access (TDMA) systems, frequency division multiple access (FDMA) systems, orthogonal frequency division multiple access (OFDMA) systems, single-carrier frequency divisional multiple access (SC-FDMA) systems, and time division synchronous code division multiple access (TD-SCDMA) systems.
Multiple-session transmission is meant that data is transmitted by different sessions, such as multiple connections, multiple paths, multiple networks and so on. In multiple connections, every session uses the same IP, and uses different ports for distinguishing different sessions. In multiple paths, every session uses a different IP. In multiple Networks, every session uses a different network (e.g. Ethernet or Wi-Fi). The advantages of multiple-session transmission include that the throughput is increased as a result of the increased bandwidth, and the tolerance of some transmission-path error or instability is increased.
However, when data is transmitted by the multiple-session transmission, the reception of files may be delayed. For a streaming service which needs to be displayed in order, the effective buffer level of the receiving end may be affected. In multiple-session transmission, the transmission quality of every session may be affected by factors such as network-state instability, and the supported network bandwidth being different (e.g. bandwidth of the cable network is usually faster than bandwidth of the wireless network). In addition, when there are more concurrent sessions, the network transmission variation may be larger and the received order of files may be varied seriously. How to maintain the desirable throughput and the viewing quality at the same time may be an important subject.
Systems and methods of transmitting files are provided in the disclosure for accelerating data transmissions by a repair file in the multiple-session transmission.
An embodiment of the disclosure provides a system for transmitting files, which is applied for transmitting data in a multiple-session transmission, wherein the data includes a plurality of split files and in the multiple-session transmission, every split file is regarded as a transmission unit. The system includes a transmitting device and a receiving device. The transmitting device transmits the split files and when a repair-file mechanism is triggered and generates a repair file. The receiving device receives the repair file and generates the split files which have not been received according to the repair file.
An embodiment of the disclosure provides a transmitting device, which is applied for transmitting data in a multiple-session transmission, wherein the data includes a plurality of split files and in the multiple-session transmission, every split file is regarded as a transmission unit. The transmitting device includes a plurality of senders, an encoder and a first controller. The senders transmit the split files and a repair file to a receiving device. The first controller generates the repair file according to the split files which have not been received by the receiving device when a repair-file mechanism is triggered.
An embodiment of the disclosure provides a receiving device, which is applied for receiving data in a multiple-session transmission, wherein the data includes a plurality of split files and in the multiple-session transmission, every split file is regarded as a transmission unit. The receiving device includes a plurality of receivers, a decoder, and a second controller. The receivers receive at least one of the split files and repair file from a transmitting device. The second controller generates the split files which have not been received according to the repair file when a repair-file mechanism is triggered.
An embodiment of the disclosure provides a method for transmitting files, which is applied for transmitting data in a multiple-session transmission, wherein the data includes a plurality of split files and in the multiple-session transmission, every split file is regarded as a transmission unit. The method includes steps of transmitting the split files by a transmitting device; generating a repair file when a repair-file mechanism is triggered; receiving the repair file by a receiving device; and generating the split files which have not been received according to the repair file.
An embodiment of the disclosure provides a method for transmitting files, which is applied for transmitting data in a multiple-session transmission by a transmitting device, wherein the data includes a plurality of split files and in the multiple-session transmission, every split file is regarded as a transmission unit. The method includes steps of transmitting the split files to a receiving device; generating a repair file according to the split files which have not been received by the receiving device when a repair-file mechanism is triggered; and transmitting the repair file to the receiving device.
An embodiment of the disclosure provides a method for transmitting files, which is applied for receiving data in a multiple-session transmission by a receiving device, wherein the data includes a plurality of split files and in the multiple-session transmission, every split file is regarded as a transmission unit. The method includes steps of receiving at least one of the split files and repair file from a transmitting device; receiving a repair file when a repair-file mechanism is triggered; and generating the split files which have not been received according to the repair file.
The disclosure will become more fully understood by referring to the following detailed description with reference to the accompanying drawings, wherein:
This description is made for the purpose of illustrating the general principles of the invention and should not be taken in a limiting sense. The scope of the invention is best determined by reference to the appended claims.
In an embodiment of the disclosure, the transmitting device 110 may be a server or a mobile communication device, such as a cell phone, a smartphone, a data card, a notebook, a hotspot, a Universal Serial Bus (USB), a modem, a Tablet PC, or another device. As shown in
In an embodiment of the disclosure, the receiving device 120 may be a server or a mobile communication device, such as a cell phone, a smartphone, a data card, a notebook, a hotspot, a Universal Serial Bus (USB), a modem, a Tablet PC or other device. As shown in
In an embodiment of the disclosure, the multiple-session transmission is in a push-based network environment. That is to say the sending side can provide data directly for the receiving side. In the push network environment, the transmitting device 110 can determine the receiving device 120 of which data needs to be received directly by the multiple-session transmission. In another embodiment of the disclosure, the multiple-session transmission is in a pull-based network environment. That is to say the sending side transmits data according to the request of the receiving side. In the pull network environment, the transmitting device 110 can transmit data to the receiving device 120 by the multiple-session transmission according to the request of the receiving device 120. In another embodiment of the disclosure, the multiple-session transmission is in a multiple-network environment (can be applied in a push-based or pull-based environment). That is to say the sending side includes more transmitting devices which support different network interfaces (such as 4G, 3G, Wi-Fi, WiMAX and so on). Therefore, the receiving device 120 can receive data from different network interfaces at the same time.
In an embodiment of the disclosure, the senders 111-1˜111-3 are configured to different respective sessions and the receivers 121-1˜121-3 are also configured to different respective sessions. In another embodiment of the disclosure, the disclosure also can apply different number of senders and receivers according to the number of the sessions, and the disclosure should not be limited to what is shown in
In an embodiment of the disclosure, the encoder 113 is an Application Layer-Forward Error Correction (AL-FEC) encoder, and the decoder 123 is an Application Layer-Forward Error Correction (AL-FEC) decoder. The AL-FEC technology includes rateless AL-FEC (e.g. Raptor, Raptor Q, and LDPC code), compact AL-FEC, fixed rate AL-FEC (e.g., Chinese Remainder Theorem AL-FEC) and so on. The Forward Error Correction (FEC) technology is an encoding technology which can provide reliable data transmission without data re-transmission. AL-FEC technology is usually meant the FEC encoding technology defined in the Internet Engineering Task Force (IETF). The steps of the AL-FEC technology are as follows. First, an AL-FEC encoder encodes a source block which includes K source symbols to make original K source symbols and additional repair symbols. Then, the AL-FEC decoder can recover the source block by K(1+ε) out of the source symbols and repair symbols (E is smaller than 5%). The disclosure adopts the rateless AL-FEC, but the disclosure is not limited thereto. In the compact AL-FEC, repair files are just the split files which the receiving device 120 has not received.
The transmitting device 110 is configured to transmit the transmission data D1 to the receiving device 120 by the multiple-session transmission. When the transmitting device 110 transmits the transmission data D1, the transmitting device 110 separates the transmission data D1 into split files (e.g. SF1˜SF8) and transmits the split files by the senders 111-1˜111-3. The transmission data D1 is regarded as streaming data, video data, audio data, or image data. The disclosure adopts the streaming data, but the disclosure is not limited thereto. When a repair-file mechanism is triggered, the first controller 112 of the transmitting device 110 would generate a repair file according to the split files which the receiving device 120 has not received. The receiving device 120 receives a plurality of the split files and the repair file by the receivers 121-1˜121-3. When the repair-file mechanism is triggered, the receiving device 120 recovers the split files which the receiving device 120 has not received by the second controller 122 according to the repair file. Detailed description of the repair-file mechanism will be discussed below.
In an embodiment of the disclosure, the repair-file mechanism is a group-based mechanism, a threshold-based mechanism or a timer-based mechanism. In the group-based mechanism, all the split files included in the data would be divided into 1 group with N split files each, and only when one group has been transmitted successfully, the next group would be transmitted. For example, if one group includes 8 split files, only when the first 8 split files have been transmitted, the next 8 split files would be transmitted. In the group-based mechanism, when a group of split files is being transmitted, a session (sender) has been in an idle mode and there is no other fresh split file of the group that is never assigned to a session for transmission, and certain split files in the other sessions have not been completely transmitted, the repair-file mechanism would be triggered to accelerate the transmission of the split files. In the threshold-based mechanism, the sender sets a delay threshold of the split files, such as 5. When an idle session desires to transmit the next split file and the delay order of the next split file is bigger than the delay threshold, the repair-file mechanism would be triggered. For example, if the delay threshold is 5, when an idle session desires to transmit the split file SF8, and the split file SF2 has not been transmitted successfully (the delay order is 6 (8-2) bigger than 5), the repair-file mechanism would be triggered. In the timer-based mechanism, every sender is configured with a timer for each split file, such as for 25 seconds. When the split file has not been transmitted after the timer ends, the repair-file mechanism would be triggered. The disclosure adopts the group-based mechanism, but the disclosure should not be limited thereto.
Referring to
In another embodiment of the disclosure, the FST algorithm adopts a fixed-L method, as follows:
After the source block has been generated, the encoder 113 encodes the source block to a plurality of repair symbols. Then, the first controller 112 generates the repair file according to the repair symbols and the Encoding Symbol Identification (ESI) of the first repair symbol. The first controller 112 transmits the repair file and the File Symbol Table (FST) to the receiving device 120 by the sender 111-3. The receiving device 120 recovers the repair file to repair symbols and the ESIs of the repair symbols according to the ESI of the first repair symbol and the information of the FST. In an embodiment of the disclosure, the size of the repair file is determined according to a repair-file algorithm. The repair-file algorithm can adopt a maximum case policy, an average case policy, or a minimum case policy. The repair-file algorithm which adopts a maximum case policy is shown as below:
The repair-file algorithm which adopts an average case policy is shown as follows:
The repair-file algorithm which adopts a minimum case policy is shown as follows:
When the receiving device 120 receives any s files from the repair files and the un-received s SFs, the decoder 123 recovers the source block from the received files. The receiving device 120 then recovers all the un-received SFs according to the information of the FST. For example, in
When the decoder 123 has decoded the received files to the source block according the information of the FST, the second controller 122 would recover the source block to the un-received split files.
In the embodiment, the repair-file mechanism is a group-based mechanism, a threshold-based mechanism or a timer-based mechanism. In the group-based mechanism, all the split files included in the data would be divided into 1 group with N split files each, and only when one group has been transmitted successfully, the next group would be transmitted. When a group of split files have not been completely transmitted, and one or more sessions of the multiple sessions have been in an idle mode, the repair-file mechanism would be triggered. When the group of split files has been completely transmitted/recovered, the repair-file mechanism would be stopped and the next group would be transmitted.
In the embodiment, the repair-file mechanism can be triggered by the receiving device or transmitting device. In Step S530 further includes that the transmitting device transforms the split files (which have not been received by the receiving device) into a source block according to coding parameters and stores the coding parameters and file information in a File Symbol Table (FST), wherein the coding parameters include the source block size K and the symbol size L. In Step S530 further includes that a plurality of repair symbols are generated according to the source block by an encoder of the transmitting device. Then, the transmitting device generates the repair file according to the repair symbols, and the repair file and the FST are transmitted to the receiving device by the transmitting device. The encoder of the transmitting device may be an AL-FEC encoder.
In steps S550 and S560 further include that when the total numbers of the files which the receiving device has received from the repair files and the previously un-received split files are equal to the numbers of the previously un-received split files, the source block is generated according to the FST by a decoder of the receiving device, and the receiving device recovers the source block to the previously un-received split files. The decoder of the receiving device may be an AL-FEC decoder.
The steps of the method described in connection with the aspects disclosed herein may be embodied directly in hardware, in a software module executed by a processor, or in a combination of the two. A software module (e.g., including executable instructions and related data) and other data may reside in a data memory such as RAM memory, flash memory, ROM memory, EPROM memory, EEPROM memory, registers, a hard disk, a removable disk, a CD-ROM, or any other form of computer-readable storage medium known in the art. A sample storage medium may be coupled to a machine such as, for example, a computer/processor (which may be referred to herein, for convenience, as a “processor”) such that the processor can read information (e.g., code) from and write information to the storage medium. A sample storage medium may be integral to the processor. The processor and the storage medium may reside in an ASIC. The ASIC may reside in user equipment. Alternatively, the processor and the storage medium may reside as discrete components in user equipment. Moreover, in some aspects any suitable computer-program product may comprise a computer-readable medium comprising codes relating to one or more of the aspects of the disclosure. In some aspects a computer program product may comprise packaging materials.
Reference throughout this specification to “one embodiment” or “an embodiment” means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the invention, but does not denote that they are present in every embodiment. Thus, the appearances of the phrases “in one embodiment” or “in an embodiment” in various places throughout this specification are not necessarily referring to the same embodiment of the invention. Furthermore, the particular features, structures, or characteristics may be combined in any suitable manner in one or more embodiments. Furthermore, the figures. of the disclosure are only for illustration and are not drawn to scale.
While the invention has been described by way of example and in terms of preferred embodiment, it is to be understood that the invention is not limited thereto. Those who are skilled in this technology can still make various alterations and modifications without departing from the scope and spirit of this invention. Therefore, the scope of the present invention shall be defined and protected by the following claims and their equivalents. In addition, reference numbers may be repeated throughout the embodiments, but they do not require that feature(s) of one embodiment apply to another embodiment, even if they share the same reference number.
Number | Date | Country | Kind |
---|---|---|---|
102147886 | Dec 2013 | TW | national |