WO2016051451A1 - 情報処理装置、情報処理方法、情報処理プログラム、及び、情報処理システム - Google Patents

情報処理装置、情報処理方法、情報処理プログラム、及び、情報処理システム Download PDF

Info

Publication number
WO2016051451A1
WO2016051451A1 PCT/JP2014/075829 JP2014075829W WO2016051451A1 WO 2016051451 A1 WO2016051451 A1 WO 2016051451A1 JP 2014075829 W JP2014075829 W JP 2014075829W WO 2016051451 A1 WO2016051451 A1 WO 2016051451A1
Authority
WO
WIPO (PCT)
Prior art keywords
packet
encoded data
information processing
transmission
data blocks
Prior art date
Application number
PCT/JP2014/075829
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 JP2016551131A priority Critical patent/JPWO2016051451A1/ja
Priority to PCT/JP2014/075829 priority patent/WO2016051451A1/ja
Publication of WO2016051451A1 publication Critical patent/WO2016051451A1/ja
Priority to US15/465,940 priority patent/US20170195083A1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0041Arrangements at the transmitter end
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/63Joint error correction and other techniques
    • H03M13/6306Error control coding in combination with Automatic Repeat reQuest [ARQ] and diversity transmission, e.g. coding schemes for the multiple transmission of the same information or the transmission of incremental redundancy
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/61Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
    • H03M13/611Specific encoding aspects, e.g. encoding by means of decoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/0078Avoidance of errors by organising the transmitted data in a format specifically designed to deal with errors, e.g. location
    • H04L1/0083Formatting with frames or packets; Protocol or part of protocol for error control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1867Arrangements specially adapted for the transmitter end
    • H04L1/1874Buffer management
    • H04L1/1877Buffer management for semi-reliable protocols, e.g. for less sensitive applications like streaming video
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0057Block codes

Definitions

  • the present invention relates to an information processing apparatus, an information processing method, an information processing program, and an information processing system.
  • FIG. 1 is a diagram showing an example of processing when packet loss occurs in long-distance data transfer.
  • the long-distance data transfer since the distance between the bases A and B is long, a communication delay occurs, and the time until the confirmation response from the receiving side device reaches the transmitting side device becomes long.
  • the receiving side device detects that the packet has not arrived, and then transmits a retransmission request to the transmitting side device.
  • the transmitting side device receives the retransmission request, and Resend data. Therefore, when packet loss occurs, it takes more time for the data to reach the receiving device.
  • the error correction code is a technique that makes it possible to restore the original data from the data received by the receiving-side apparatus even if packet loss occurs by using redundant data for the transmission data.
  • Examples of the error correction code include a parity code, a Reed-Solomon code, an RPS (Random Parity Stream) code, and a Raptor code.
  • FIG. 1 shows an example in which a parity code is used.
  • the transmission side device adds packet 1 and packet 2 to generate packet P, which is redundant data, and transmits packet 1, packet 2, and packet P.
  • packet P which is redundant data
  • the receiving side apparatus restores packet 2 from packet 1 and packet P.
  • the retransmission request and retransmission processing of the packet 2 are omitted, and the delay at the time of packet loss can be reduced.
  • the transmission efficiency may be deteriorated by using the error correction code.
  • it is a case of communication with a small packet size or transfer of a small capacity file.
  • XOR exclusive OR
  • the above processing is performed regardless of the amount of transmission data. For example, as shown in FIG. 2, even when the input data is data A having a small size, the data A is divided into four sub data blocks 1, 2, 3, and 4, and these sub data blocks 1 to 4 are divided. To K encoded data blocks are created. In the case of the RPS code, since the encoded data block is created by exclusive OR operation, the size of the encoded data block is the same as the size of the sub data block. Therefore, in one packet, the ratio of the header part is large and the ratio of the payload part storing the encoded data block is small. Communication with small transmission data size includes, for example, communication of remote desktop operation information and small file transfer.
  • the maximum length of an IP packet is determined as 1500 bytes at maximum.
  • the RPS code when the amount of transmission data is large, data can be transmitted using the payload portion to the maximum. However, when the amount of transmission data is small, the ratio of the payload portion is small, and even if the same number of packets are transmitted, the amount of data included in one packet is small, so the amount of data transmitted per unit time is Less. As a result, the transfer efficiency is poor, and the data transfer rate may not reach the maximum value or the delay may increase. Such a problem may occur not only in the RPS code but also in other error correction codes in which K encoded data blocks are created from N transmission data such as a parity code, a Reed-Solomon code, and a Raptor code.
  • An aspect of the present invention provides an information processing apparatus, an information processing method, an information processing program, and an information processing system capable of improving transfer efficiency in communication in which the size of transfer data is small when an error correction code is used. With the goal.
  • One aspect of the present invention includes a packet generation unit that stores a plurality of encoded data blocks in one packet according to the size of a plurality of encoded data blocks created from transmission data by error correction code, and packet generation A transmission unit that transmits a packet generated by the unit.
  • the disclosed information processing apparatus information processing method, information processing program, and information processing system, it is possible to improve transfer efficiency in communication in which the size of transfer data is small when an error correction code is used.
  • FIG. 3 is a diagram illustrating an example of processing of the information processing apparatus according to the first embodiment.
  • the information processing apparatus transmits a plurality of encoded data blocks in one packet according to the size of the encoded data block created from the transmission data by the error correction code.
  • the payload portion of the packet can be used to the maximum, and transfer efficiency can be improved.
  • An encoded data block is a data block created by performing error correction code processing on transmission data.
  • the encoded data block is also referred to as a redundant encoded data block.
  • An error correction code specialized for restoration of data loss is also referred to as a loss correction code.
  • the information processing apparatus also determines the number of encoded data blocks to be included in one transmission packet, the number of transmission packets, and the like.
  • the error correction code is not limited to a specific one, but the first embodiment will be described using an example in which an RPS code is used.
  • FIG. 4 is an example of a hardware configuration of the information processing apparatus 100.
  • the information processing apparatus 100 is a terminal device such as a PC (personal computer), a smartphone, or a tablet terminal. Further, the information processing apparatus 100 may be a server or the like located at a network boundary.
  • the information processing apparatus 100 includes a CPU (Central Processing Unit) 101, a main storage device 102, an input device 103, an output device 104, an auxiliary storage device 105, and a network interface 107. These are connected to each other by a bus 109.
  • a CPU Central Processing Unit
  • the input device 103 is, for example, an operation button, a touch panel, a keyboard, a keypad, or the like. Data input from the input device 103 is output to the CPU 101.
  • the input device may include a voice input device such as a microphone.
  • the auxiliary storage device 105 stores various programs and data used by the CPU 101 when executing each program.
  • the auxiliary storage device 105 is a non-volatile memory such as an EPROM (Erasable Programmable ROM), a flash memory, or a hard disk drive (Hard Disk Drive).
  • the auxiliary storage device 105 holds, for example, an operating system (OS), an error correction code processing program, and various other application programs.
  • the error correction code processing program is a program for performing error correction code processing on data transmitted from an application program.
  • the error correction code processing program is an example of an “information processing program”.
  • the main storage device 102 is a storage device that provides the CPU 101 with a storage area and a work area for loading a program stored in the auxiliary storage device 105, and is used as a buffer.
  • the main memory 102 includes a semiconductor memory such as a ROM (Read Only Memory) and a RAM (Random Access Memory).
  • the CPU 101 executes various processes by loading the OS and various application programs held in the auxiliary storage device 105 into the main storage device 102 and executing them.
  • the CPU 101 is not limited to one, and a plurality of CPUs may be provided.
  • the network interface 107 is an interface for inputting / outputting information to / from the network.
  • the network interface 107 includes an interface connected to a wired network and an interface connected to a wireless network.
  • the network interface 107 includes, for example, NIC (Network Interface Card), wireless LAN (Local Area Network), Wi-Fi (Wireless Fidelity), WiMAX (Worldwide Interoperability for Microwave Access), LTE (Long Term Term Evolution, 3GPP (third) Wireless signal processing circuit, etc.
  • Data received by the network interface 107 is output to the CPU 101.
  • the output device 104 outputs the processing result of the CPU 101.
  • the output device 104 includes an audio output device such as a speaker, a display, and a printer.
  • the information processing apparatus 100 may include a portable recording medium driving device and execute a program recorded on the portable recording medium.
  • the portable recording medium is, for example, an SD card, a miniSD card, a microSD card, a USB (Universal Serial Bus) flash memory, a CD (Compact Compact Disc), a DVD (Digital Versatile Disc), a Blu-ray (registered trademark) Disc, or a flash.
  • a recording medium such as a memory card.
  • the information processing apparatus 100 may not include the input device 103 and the output device 104.
  • FIG. 5 is a diagram illustrating an example of a functional configuration of the information processing apparatus 100.
  • the functional configuration of the information processing apparatus 100 illustrated in FIG. 5 is a functional configuration that is achieved by the CPU 101 of the information processing apparatus 100 executing the error correction code processing program.
  • the error correction code processing program includes a module related to data transmission processing and a module related to reception processing. Therefore, in FIG. 5, the transmission function and the reception function of the information processing apparatus 100 will be described separately.
  • the transmission function of the information processing apparatus 100 will be described as the transmission-side apparatus 1 and the reception function will be described as the reception-side apparatus 2.
  • the error correction code processing program is a program in the application layer of the TCP / IP reference model.
  • the present invention is not limited to this, and the error correction code processing program may be created, for example, as a transport layer program of the TCP / IP reference model.
  • the error correction code processing program uses UDP (User Datagram Protocol) as a transport layer program.
  • UDP User Datagram Protocol
  • TCP Transmission Control Protocol
  • the transmission side device 1 includes a determination processing unit 11, an encoding processing unit 12, a transmission packet generation unit 13, a transmission processing unit 14, and a retransmission request processing unit 15 as functional configurations.
  • These functional configurations are functional configurations achieved when the CPU 101 of the information processing apparatus 100 executes modules related to transmission processing of an error correction code processing program stored in the auxiliary storage device 105. Note that these functional configurations may be achieved by a hardware circuit such as an FPGA (field-programmable gate array).
  • the determination processing unit 11 receives data input from the application program at a predetermined cycle, for example, and uses the amount of data input during one cycle as a processing unit. When there is no data input from the application program during one cycle, data indicating that there is no data input is input data. Hereinafter, data input during one period of data input acceptance is referred to as input data. Also, a sequence number is assigned to the input data.
  • the determination processing unit 11 receives the packet loss rate from the receiving side device 2.
  • the determination processing unit 11 determines a parameter related to the error correction code based on the transmission data amount and the packet loss rate. Examples of the parameters relating to the error correction code include the number of encoded data blocks included in one transmission packet, the number of transmission packets, and the number (K) of encoded data blocks. Details of the parameter determination processing related to the error correction code of the determination processing unit 11 will be described later.
  • the determination processing unit 11 is an example of a “determination unit”.
  • the encoding processing unit 12 performs error correction code processing on the transmission data in accordance with the parameters determined by the determination processing unit 11, and creates an encoded data block.
  • the encoding processing unit 12 performs RPS code processing.
  • the generated encoded data block is output to the transmission packet generator 13.
  • the transmission packet generation unit 13 receives an input of the encoded data block from the encoding processing unit 12 and aggregates the number of encoded data blocks determined by the determination processing unit 11 into one to generate a data unit, A correction code header is added to generate a transmission packet. Details of the header of the error correction code will be described later.
  • the transmission packet generator 13 is an example of a “packet generator”.
  • the transmission processing unit 14 adds a UDP header and an IP header to the transmission packet created by the transmission packet generation unit 13 and transmits the packet through the network interface 107.
  • a TCP header is added instead of the UDP header.
  • the transmission processing unit 14 is an example of a “transmission unit”.
  • the retransmission request processing unit 15 receives a retransmission request from the receiving side device 2.
  • the retransmission request includes, for example, a sequence number of input data that is a retransmission request target.
  • the retransmission request processing unit 15 instructs the encoding processing unit 12 to retransmit the encoded data block.
  • the encoding processing unit 12 When receiving a retransmission instruction, the encoding processing unit 12 generates an encoded data block from the corresponding input data, the transmission packet generating unit 13 generates a transmission packet, and the transmission processing unit 14 transmits the transmission packet to the receiving side device. 2 is transmitted.
  • the reception-side device 2 includes a reception processing unit 21, a reception packet division unit 22, a decoding processing unit 23, a retransmission request processing unit 24, and a loss rate measurement unit 25 as functional configurations.
  • These functional configurations are functional configurations achieved by the CPU 101 of the information processing apparatus 100 executing modules related to reception processing of an error correction code processing program stored in the auxiliary storage device 105. Note that these functional configurations may be achieved by a hardware circuit such as an FPGA.
  • the reception processing unit 21 receives a packet including an encoded data block from the transmission side device 1.
  • the reception processing unit 21 removes the IP header and UDP header from the received packet, and outputs the received packet from which the IP header and UDP header have been removed to the received packet dividing unit 22. Further, the reception processing unit 21 outputs information on the received packet to the loss rate measuring unit 25.
  • the reception packet dividing unit 22 receives an input of the reception packet from which the IP header and the UDP header are removed from the reception processing unit 21. That is, the received packet input to the received packet dividing unit 22 includes an RPS code header and a data portion. The reception packet dividing unit 22 extracts an encoded data block from the data part based on information in the header of the RPS code. The extracted encoded data block is output to the decoding processing unit 23.
  • the decoding processing unit 23 performs RPS code decoding processing on the encoded data block input from the received packet dividing unit 22, acquires the original data, and outputs the original data to the destination application. When decoding of the encoded data block fails, the decoding processing unit 23 notifies the retransmission request processing unit 24.
  • the retransmission request processing unit 24 transmits a retransmission request to the transmission side device 1 when receiving a notification from the decoding processing unit 23.
  • the retransmission request includes, for example, a sequence number of input data for which retransmission is requested.
  • the retransmission request processing unit 15 of the transmission side apparatus 1 When receiving the retransmission request, the retransmission request processing unit 15 of the transmission side apparatus 1 notifies the encoding processing unit 12 of the retransmission of the encoded data block of the corresponding input data.
  • the encoding processing unit 12, the transmission packet generation unit 13, and the transmission processing unit 14 perform the above-described process again on the corresponding input data, and receive a transmission packet including a plurality of encoded data blocks generated from the corresponding input data. Resend to.
  • the encoded data block to be retransmitted may be different from that included in the lost packet. Further, the encoded data block to be retransmitted may be a part of the generated data block. This is because the original data is restored when the minimum number of encoded data blocks necessary for the restoration are prepared.
  • the loss rate measurement unit 25 receives input of received packet information from the reception processing unit 21, measures the packet loss rate based on the information, and transmits the measurement result to the transmission side device 1.
  • the method for measuring the packet loss rate is not limited to a specific method, and any known method may be used. Details of an example of a packet loss rate measurement method will be described later.
  • FIG. 6 is a diagram illustrating an example of a configuration of a transmission packet.
  • the transmission packet shown in FIG. 6 is a packet generated by the transmission packet generation unit 13 of the transmission side device 1.
  • the header part of the transmission packet is an RPS code header including information on the RPS code.
  • the header portion includes, for example, a packet sequence number, code length, number of encoded data blocks, encoded data block length, input data sequence number, and input data size.
  • the packet sequence number is a serial number given to the transmission packet by the transmission packet generator 13.
  • One or more encoded data blocks are stored in the data portion.
  • the packet loss rate is obtained as follows, for example.
  • the packet number M used for measuring the packet loss rate is preset in the loss rate measuring unit 25.
  • the loss rate measuring unit 25 measures until the number of received packets from the transmission side device 1 reaches M, and when the number of received packets reaches M, the sequence number of the packet in the RPS header of the M received packets is the minimum. Find the difference between the value and the maximum value. A value obtained by dividing the difference value by the number M of packets used for measuring the packet loss rate is obtained as the packet loss rate.
  • the loss rate measurement unit 25 repeatedly performs such processing.
  • the code length is the code length N of the RPS code.
  • the code length indicates a range of data that can be combined at the time of encoding, and more specifically indicates how many information blocks serving as a unit of combination are provided in input data.
  • the code length N is the number of divisions of one input data.
  • the number of encoded data blocks is the number of encoded data blocks included in one transmission packet.
  • the number of encoded data blocks is determined by the determination processing unit 11 (described later).
  • the encoded data block length is the size of one encoded data block.
  • the encoded data block length is obtained by the determination processing unit 11 by dividing the size of the input data by the code length.
  • the sequence number of the input data identifies the input data, and is, for example, a serial number assigned to the input data received by the determination processing unit 11 at a predetermined cycle for accepting data input.
  • the receiving-side apparatus 2 can detect the start and end of a group of input data.
  • the configuration of the transmission packet is an example, and the information included in the header of the RPS code is not limited to that shown in FIG.
  • the sequence number of the input data and the size of the input data may be assigned to each encoded data block, not in the RPS code header.
  • the packet loss rate measuring method of the loss rate measuring unit 25 is not limited to the above.
  • FIG. 7A and FIG. 7B are examples of a flowchart of error correction encoding processing in the transmission-side apparatus 1.
  • the flowchart shown in FIG. 7A is executed at a predetermined cycle for accepting data input after data input from the application program is started.
  • the determination processing unit 11 obtains the size (Sb) of the input data. Next, the process proceeds to OP2.
  • the determination processing unit 11 divides the input data into N code lengths, and generates N sub-block data. Next, the process proceeds to OP3.
  • the determination processing unit 11 divides the size (Sb) of the input data by the code length N to obtain the size (Sr) of the encoded data block. Next, the process proceeds to OP4.
  • the determination processing unit 11 determines whether the size (Sr) of the encoded data block is larger than the size of the payload. This determination is a determination as to whether one encoded data block fits in one transmission packet.
  • the size of the payload is, for example, a value obtained by subtracting the sizes of the IP header, UDP header, and RPS code header from the maximum length of the IP packet 1500 bytes.
  • the size (Sr) of the encoded data block is larger than the size of the payload, and one encoded data block cannot be contained in one transmission packet. Therefore, the determination processing unit 11 sets the size (Sb) of the input data. adjust. The size (Sb) of the input data is adjusted to N times the payload size. The remainder of the input data is included in the input data of the next processing unit. Next, the processing returns to OP1, and the processing from OP1 to OP4 is performed again.
  • the determination processing unit 11 determines whether or not the size (Sr) of the encoded data block is larger than the value obtained by dividing the payload size by the threshold value. This determination is a determination as to whether or not two or more encoded data blocks can be stored in one transmission packet.
  • the threshold value is, for example, a positive integer of 2 or 3.
  • the process proceeds to OP7.
  • the size (Sr) of the encoded data block is equal to or smaller than the value obtained by dividing the payload size by the threshold value (OP6: NO)
  • the process proceeds to OP8.
  • the size (Sr) of the encoded data block is larger than the value obtained by dividing the payload size by the threshold value, and two or more encoded data blocks cannot be stored in one transmission packet. Therefore, the determination processing unit 11 sets the number of encoded data blocks (Nr) in one packet to 1. Next, the process proceeds to OP9.
  • the size (Sr) of the encoded data block is equal to or smaller than the value obtained by dividing the payload size by the threshold value, and two or more encoded data blocks can be stored in one transmission packet.
  • the unit 11 calculates the number of encoded data blocks (Nr) in one packet (see FIG. 3).
  • the number of encoded data blocks (Nr) in one packet is obtained by dividing the payload size by the size (Sr) of the encoded data block.
  • the value obtained by dividing the payload size by the size (Sr) of the encoded data block includes a decimal point
  • the value obtained by rounding down the decimal point is set as the number of encoded data blocks (Nr) in one packet.
  • the process proceeds to OP9.
  • the determination processing unit 11 obtains the minimum number of transmission packets (Np) necessary for restoring the original data.
  • the minimum number of transmission packets (Np) required to restore the original data is referred to as the minimum number of packets (Np) (see FIG. 3).
  • the minimum number of packets (Np) is a value obtained by dividing the code length N by the number of encoded data blocks (Nr) in one packet.
  • the value obtained by dividing the code length N by the number of encoded data blocks (Nr) in one packet includes a decimal point
  • the value obtained by rounding up the decimal point is set as the minimum number of packets (Np).
  • the determination processing unit 11 obtains the number of transmission packets (Rp) considering the packet loss rate.
  • the number of transmission packets in which the packet loss rate is taken into account is referred to as a required packet number (Rp) (see FIG. 3).
  • the required number of packets (Rp) is, for example, a value obtained by multiplying the minimum number of packets (Np) by (1 + packet loss rate (Nl))).
  • the value obtained by multiplying the minimum packet number (Np) by (1 + packet loss rate (Nl)) includes a decimal point
  • the value obtained by rounding down the decimal point is set as the required packet number (Rp).
  • the present invention is not limited to this, and a value obtained by rounding up the decimal point may be used as the required number of packets (Rp).
  • the method for determining the required number of packets (Rp) is not limited to this, and may be a value obtained by multiplying the minimum number of packets (Np) by 1 / (1-packet loss rate (Nl)), for example.
  • Np 1 / (1-packet loss rate
  • the determination processing unit 11 obtains the number of encoded data blocks (Rr) stored in the required number of packets (Rp).
  • the number (Rr) of encoded data blocks stored in a packet having the required number of packets (Rp) is referred to as the required number of encoded data blocks (Rr) (see FIG. 3).
  • the required number of encoded data blocks (Rr) is a value obtained by multiplying the required number of packets (Rp) by the number of data blocks (Nr) in one packet.
  • the process proceeds to OP12.
  • the encoding processing unit 12 In OP12, the encoding processing unit 12 generates the required encoded data number (Rr) encoded data blocks from the input data based on the RPS code. Next, the process proceeds to OP13.
  • Rr encoded data number
  • the transmission packet generation unit 13 combines the encoded data blocks for the number of data blocks (Nr) in one packet into one to generate the data part of the transmission packet. Next, the process proceeds to OP14.
  • the transmission packet generator 13 stores information such as the input data size (Sb), the encoded data block size (Sr), and the number of data blocks (Nr) in the packet in the header of the transmission packet. Then (see FIG. 6), a transmission packet is generated. Thereafter, the transmission packet is output to the transmission processing unit 14 and transmitted to the reception-side apparatus 2, and the process illustrated in FIG. 7B ends.
  • the processing shown in FIGS. 7A and 7B is an example, and can be changed as appropriate.
  • the number of encoded data blocks (Nr), the minimum number of packets (Np), and the number of required packets (Rp) included in one packet are predetermined fixed values, and the processing of OP8 to OP10 is omitted. Also good.
  • the size (Sb) of the input data for one period of the predetermined period for receiving the data input is smaller than the predetermined threshold, the size of the input data (Sb) exceeding the predetermined threshold Until it becomes, you may wait for the start of the flowchart of FIG. 7A.
  • the processing start conditions shown in FIGS. 7A and 7B can be limited to a predetermined application.
  • the predetermined application is an application with a small amount of transfer data such as a remote desktop, for example.
  • the input data size (Sb) is small and the encoded data block is smaller than the value obtained by dividing the payload size by the threshold value, the processing of OP4 is omitted. Good.
  • FIG. 8 is an example of a flowchart of a reception process of a packet including an encoded data block by an error correction code in the reception side apparatus 2.
  • the flowchart shown in FIG. 8 is started when, for example, the receiving side apparatus 2 receives a packet of an error correction code processing program from the transmitting side apparatus 1.
  • the received packet dividing unit 22 determines the size of the encoded data block (Sr), the number of encoded data blocks included in one packet (Nr), the code length N, and the input data from the RPS code header of the received packet. Get the sequence number. Next, the process proceeds to OP22.
  • the received packet dividing unit 22 determines whether or not the input data corresponding to the sequence number of the input data acquired from the received packet has been successfully decoded. If the corresponding input data has already been successfully decoded (OP22: YES), the corresponding input data need not be decoded, so that the processing shown in FIG. Processing begins. If the corresponding input data has not been successfully decoded (OP22: NO), the process proceeds to OP23.
  • the received packet dividing unit 22 acquires Nr encoded data blocks from the received packet.
  • the size of the encoded data block is the size (Sr) of the encoded data block acquired in OP21.
  • the acquired encoded data block is output to the decoding processing unit 23.
  • the process proceeds to OP24.
  • the decoding processing unit 23 determines whether or not the number of encoded data blocks received for the corresponding input data is greater than or equal to the code length N. This determination is a determination as to whether or not the received encoded data block has reached the minimum number necessary for restoring the original data. If the number of encoded data blocks received for the corresponding input data is greater than or equal to the code length N (OP24: YES), the process proceeds to OP25. When the number of encoded data blocks received for the corresponding input data is less than the code length N (OP24: NO), the process shown in FIG. 8 is terminated without executing the decoding process, and the next reception Packet processing is disclosed.
  • the decoding processing unit 23 decodes the encoded data block and restores the original data.
  • the restoration method conforms to the RPS code.
  • the process proceeds to OP26.
  • the decryption processing unit 23 determines whether or not the original data has been successfully decrypted. If the original data has been successfully decoded (OP26: YES), the process proceeds to OP27. If the decryption of the original data has failed (OP26: NO), the process shown in FIG. 8 ends, and the process for the next received packet is started.
  • the decryption processing unit 23 determines whether there is data that cannot be decrypted with the previous input data. For example, when decoding fails, the process is put on hold and the encoded data block for the input data is buffered. This determination is made based on, for example, the presence or absence of the encoded data block of the previous input data in the corresponding buffer. If there is any previous input data that could not be decoded (OP27: YES), the process proceeds to OP28. If there is no previous input data that could not be decoded (OP27: NO), the process shown in FIG. 8 is terminated, and the process is started for the next received packet.
  • the decoding processing unit 23 notifies the retransmission request processing unit 24 of the sequence number of the input data that has not been decoded, and the retransmission request processing unit 24 sends a retransmission request for the input data to the transmitting side device 1.
  • the retransmission request includes, for example, a sequence number of input data that cannot be decoded.
  • the processing illustrated in FIG. 8 is an example, and the processing of the reception-side apparatus 2 is not limited to this.
  • a predetermined time has elapsed. After that, a retransmission request may be made for the corresponding input data.
  • the transmission side apparatus when an error correction code is applied to transmission data, stores a plurality of redundant encoded data blocks in one packet according to the size of the encoded data block and transmits the packet. Thereby, even in the case of communication of an application with a small amount of transfer data, the data portion of one packet can be used up to a value close to the maximum length, and overhead can be reduced. Since the amount of encoded data blocks transmitted in one packet increases, the transfer rate can be improved. Therefore, according to the first embodiment, it is possible to improve data transfer efficiency in communication with a small amount of transfer data when using an error correction code.
  • the transmission-side apparatus 1 stores and transmits a plurality of redundant encoded data blocks in one packet according to the size of the encoded data block. 2 can obtain a plurality of redundantly encoded data blocks from the packet.
  • the determination processing unit 11, the encoding processing unit 12, the transmission packet generating unit 13, the received packet dividing unit 22 of the receiving side device 2, and the decoding processing unit This can be realized by changing the process of 23 to a process corresponding to the corresponding error correction code.
  • a terminal device is assumed as the information processing apparatus 100, but the information processing apparatus 100 may be a gateway device, a server, or the like.
  • the information processing apparatus 100 is a gateway apparatus that accommodates a plurality of terminals
  • the input data is received data from the plurality of terminals.
  • the transmission-side apparatus 1 encodes the data received from the terminal without identifying the data transmission source and destination IP addresses, the transmission source and destination port numbers, and the like.
  • a data block is created and transmitted to the receiving apparatus 2.
  • the receiving side device 2 restores the encoded data block to the original data, and transfers it to the destination terminal with reference to the information included in the original data.
  • one transmission-side device 1 performs processing such as determination of error correction code parameters and creation of encoded data blocks. However, processing may be distributed among a plurality of devices. . Further, the processing of the receiving side device 2 may be distributed among a plurality of devices.
  • a program for causing a computer or other machine or device (hereinafter, a computer or the like) to realize any of the above functions can be recorded on a recording medium that can be read by the computer or the like.
  • the function can be provided by causing a computer or the like to read and execute the program of the recording medium.
  • a computer-readable recording medium is a non-temporary recording medium in which information such as data and programs is accumulated by electrical, magnetic, optical, mechanical, or chemical action and can be read from a computer or the like.
  • a typical recording medium examples of such recording media that can be removed from a computer or the like include, for example, a memory such as a flexible disk, a magneto-optical disk, a CD-ROM, a CD-R / W, a DVD, a Blu-ray disc, a DAT, an 8 mm tape, and a flash memory.
  • a memory such as a flexible disk, a magneto-optical disk, a CD-ROM, a CD-R / W, a DVD, a Blu-ray disc, a DAT, an 8 mm tape, and a flash memory.
  • cards There are cards.
  • a recording medium fixed to a computer or the like there are a hard disk, a ROM (read only memory), and the like.
  • an SSD Solid State Drive

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

 誤り訂正符号を用いる場合の転送データのサイズが小さい通信における転送効率を向上させる。情報処理装置は、誤り訂正符号により送信データから作成される符号化データブロックのサイズが所定しきい値より大きく且つパケットの最大長よりも小さい場合には、1つのパケットに1つの符号化データブロックを格納し、符号化データブロックのサイズが所定しきい値以下である場合には、1つのパケットに複数の符号化データブロックを格納するパケット生成部と、パケット生成部によって生成されたパケットを送信する送信部と、を含む。

Description

情報処理装置、情報処理方法、情報処理プログラム、及び、情報処理システム
 本発明は、情報処理装置、情報処理方法、情報処理プログラム、及び、情報処理システムに関する。
 図1は、遠距離データ転送におけるパケットロス発生時の処理の一例を示す図である。遠距離データ転送では、拠点A、B間の距離が遠いため、通信遅延が発生し、受信側装置からの確認応答が送信側装置に届くまでの時間が長くなる。通信経路でパケットロスが発生した場合には、受信側装置が、パケットが届かなかったことを検出してから送信側装置に再送要求を送信し、送信側装置は、該再送要求を受信してデータを再送する。そのため、パケットロスが発生した場合には、データが受信側装置に届くまでにさらに時間がかかる。
 通信経路でパケットロスが発生した場合の遅延を軽減する方法の一つに、誤り訂正符号技術がある。誤り訂正符号は、送信データに対する冗長データを用いることで、パケットロスが発生しても、受信側装置で受信されたデータから元のデータを復元可能にする技術である。誤り訂正符号には、例えば、パリティ符号、Reed-Solomon符号、RPS(Random Parity Stream)符号、Raptor符号等がある。
 例えば、図1では、パリティ符号が用いられる場合の例が示されている。送信側装置は、パケット1とパケット2とを足し合わせて冗長データであるパケットPを生成し、パケット1、パケット2、パケットPを送信する。通信経路上でパケット2が損失してしまった場合には、受信側装置は、パケット1とパケットPとからパケット2を復元する。これによって、パケット2の再送要求及び再送の処理が省かれ、パケットロスの際の遅延を軽減することができる。
特開2007-258796号公報 特開2009-188585号公報
 しかしながら、誤り訂正符号を用いることによって、送信効率が悪くなる場合があった。例えば、パケットのサイズが小さい通信や、小容量ファイルの転送の場合である。
 図2は、RPS符号の処理の一例を示す図である。また、図2では、入力データのサイズが大きい場合と小さい場合との例が示されている。図2では、符号長N=4とする。
 RPS符号では、まず、例えば、入力データA、B、Cが1つに合わされてから符号長N(=4)個に分割され、サブデータブロック1、2、3、4が作成される。次に、サブデータブロック1、2、3、4間で排他的論理和(XOR)演算が行われ、XOR演算結果である符号化データブロックがK(K>N)個作成される。K個の符号化データブロックが冗長データである。K個の符号化データブロックのそれぞれに、XOR演算のデータブロックの組み合わせの情報がヘッダとして付与され、送信される。
 上述の処理は、送信データ量の大小にかかわりなく行われる。例えば、図2に示されるように、入力データがサイズの小さいデータAの場合でも、データAが更に小さいサブデータブロック1、2、3、4に4分割され、これらのサブデータブロック1~4からK個の符号化データブロックが作成される。RPS符号の場合、排他的論理和演算で符号化データブロックが作成されるので、符号化データブロックのサイズは、サブデータブロックのサイズと同じである。そのため、1つのパケットにおいて、ヘッダ部分の割合が大きく、符号化データブロックを格納するペイロード部の割合が小さい。送信データのサイズが小さい通信は、例えば、リモートデスクトップの操作情報の転送や、サイズの小さいファイルの転送による通信がある。
 例えば、IPパケットは最大1500バイトと最大長が決まっている。RPS符号において、送信データ量が多い場合には、ペイロード部を最大限に使用してデータを送信することができる。しかしながら、送信データ量が少ない場合には、ペイロード部の割合が小さくなり、同じ数のパケットを送信しても、1つのパケットに含まれるデータ量が小さいので、単位時間に送信されるデータ量は少なくなる。そのため、転送効率が悪く、データの転送速度が最大値まで出せなかったり、遅延が大きくなったりすることがある。このような問題は、RPS符号に限らず、パリティ符号、Reed-Solomon符号、Raptor符号等のN個の送信データからK個の符号化データブロックが作成されるその他の誤り訂正符号でも起こり得る。
 本発明の一態様は、誤り訂正符号が用いられる場合の転送データのサイズが小さい通信における転送効率を向上可能な情報処理装置、情報処理方法、情報処理プログラム、及び、情報処理システムを提供することを目的とする。
 本発明の態様の一つは、誤り訂正符号により送信データから作成される複数の符号化データブロックのサイズに応じて、1つのパケットに符号化データブロックを複数格納するパケット生成部と、パケット生成部によって生成されたパケットを送信する送信部と、を含む情報処理装置である。
 開示の情報処理装置、情報処理方法、情報処理プログラム、及び、情報処理システムによれば、誤り訂正符号が用いられる場合の転送データのサイズが小さい通信における転送効率を向上させることができる。
遠距離データ転送におけるパケットロス発生時の処理の一例を示す図である。 RPS符号の処理の一例を示す図である。 第1実施形態における情報処理装置の処理の一例を示す図である。 情報処理装置のハードウェア構成の一例である。 情報処理装置の機能構成の一例を示す図である。 送信パケットの構成の一例を示す図である。 送信側装置における誤り訂正符号化処理のフローチャートの一例である。 送信側装置における誤り訂正符号化処理のフローチャートの一例である。 受信側装置における誤り訂正符号による符号化データブロックを含むパケットの受信処理のフローチャートの一例である。
 以下、図面に基づいて、本発明の実施の形態を説明する。以下の実施形態の構成は例示であり、本発明は実施形態の構成に限定されない。
 <第1実施形態>
 図3は、第1実施形態における情報処理装置の処理の一例を示す図である。第1実施形態では、情報処理装置は、誤り訂正符号によって送信データから作成した符号化データブロックのサイズに応じて、複数の符号化データブロックを1つのパケット内にまとめて送信する。これによって、転送データのサイズが小さい通信においても、パケットのペイロード部を最大限に使用することができ、転送効率を向上させることができる。
 符号化データブロックとは、送信データに対して誤り訂正符号の処理が施されて作成されるデータブロックである。符号化データブロックは、冗長符号化データブロックともいう。また、データの消失の復元に特化した誤り訂正符号は、消失訂正符号ともいう。
 第1実施形態では、情報処理装置は、1つの送信パケットに含める符号化データブロックの数、送信パケットの数等も決定する。なお、誤り訂正符号は、特定のものに限定されないが、第1実施形態では、RPS符号を用いる場合を例として説明する。
 <装置構成>
 図4は、情報処理装置100のハードウェア構成の一例である。情報処理装置100は、例えば、PC(パーソナルコンピュータ)、スマートフォン、タブレット端末等の端末装置である。また、情報処理装置100は、ネットワークの境界に位置するサーバ等であってもよい。
 情報処理装置100は、CPU(Central Processing Unit)101、主記憶装置102、入力装置103、出力装置104、補助記憶装置105、ネットワークインタフェース107を備える。また、これらはバス109により互いに接続されている。
 入力装置103は、例えば、操作ボタン、タッチパネル、キーボード、キーパッド等である。入力装置103から入力されたデータは、CPU 101に出力される。入力装置は、例えば、マイクロフォンのような音声入力装置を含んでもよい。
 補助記憶装置105は、様々なプログラムや、各プログラムの実行に際してCPU 101が使用するデータを格納する。補助記憶装置105は、例えば、EPROM(Erasable Programmable ROM)、フラッシュメモリ、又はハードディスクドライブ(Hard Disk Drive)等の不揮発性のメモリである。補助記憶装置105は、例えば、オペレーティングシステム(OS)、誤り訂正符号処理プログラム、その他様々なアプリケーションプログラムを保持する。誤り訂正符号処理プログラムは、アプリケーションプログラムから送信されるデータに対して誤り訂正符号の処理を行うためのプログラムである。誤り訂正符号処理プログラムは、「情報処理プログラム」の一例である。
 主記憶装置102は、CPU 101に、補助記憶装置105に格納されているプログラムをロードする記憶領域および作業領域を提供したり、バッファとして用いられたりする記憶装置である。主記憶装置102は、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)のような半導体メモリを含む。
 CPU 101は、補助記憶装置105に保持されたOSや様々なアプリケーションプログラムを主記憶装置102にロードして実行することによって、様々な処理を実行する。CPU 101は、1つに限られず、複数備えられてもよい。
 ネットワークインタフェース107は、ネットワークとの情報の入出力を行うインタフェースである。ネットワークインタフェース107は、有線のネットワークと接続するインタフェース、無線のネットワークと接続するインタフェースを含む。ネットワークインタフェース107は、例えば、NIC(Network Interface Card)、無線LAN(Local Area Network)、Wi-Fi(Wireless Fidelity)、WiMAX(Worldwide Interoperability for Microwave Access)、LTE(Long Term Evolution)、3GPP(第三世代携帯電話システム)等の無線信号の処理回路等である。ネットワークインタフェース107で受信されたデータ等は、CPU 101に出力される。
 出力装置104は、CPU 101の処理の結果を出力する。出力装置104は、スピーカ等の音声出力装置、ディスプレイ、プリンタを含む。
 なお、図4に示される情報処理装置100のハードウェア構成は、一例であり、上記に限られず、実施の形態に応じて適宜構成要素の省略や置換、追加が可能である。例えば、情報処理装置100は、可搬記録媒体駆動装置を備え、可搬記録媒体に記録されたプログラムを実行してもよい。可搬記録媒体は、例えば、SDカード、miniSDカード、microSDカード、USB(Universal Serial Bus)フラッシュメモリ、CD(Compact Disc)、DVD(Digital Versatile Disc)、Blu-ray(登録商標) Disc、又はフラッシュメモリカードのような記録媒体である。
 また、情報処理装置100がサーバである場合には、例えば、情報処理装置100は、入力装置103、出力装置104を備えていなくてもよい。
 図5は、情報処理装置100の機能構成の一例を示す図である。図5に示される情報処理装置100の機能構成は、情報処理装置100のCPU101が誤り訂正符号処理プログラムの実行によって達成される機能構成である。誤り訂正符号処理プログラムは、データの送信処理に係るモジュールと受信処理に係るモジュールとを有する。したがって、図5では、情報処理装置100の送信機能と受信機能とを別々に説明する。以下、情報処理装置100の送信機能を送信側装置1として、受信機能を受信側装置2として説明する。
 誤り訂正符号処理プログラムは、第1実施形態では、TCP/IP参照モデルのアプリケーション層のプログラムである。ただし、これに限られず、誤り訂正符号処理プログラムは、例えば、TCP/IP参照モデルのトランスポート層のプログラムとして作成されてもよい。また、第1実施形態では、誤り訂正符号処理プログラムは、トランスポート層のプログラムとして、UDP(User Datagram Protocol)を用いる。ただし、これに限られず、誤り訂正符号処理プログラムは、トランスポート層のプログラムとして、TCP(Transmission Control Protocol)を用いてもよい。
 送信側装置1は、機能構成として、判定処理部11、符号化処理部12、送信パケット生成部13、送信処理部14、再送要求処理部15を含む。これらの機能構成は、情報処理装置100のCPU 101が補助記憶装置105に格納されている誤り訂正符号処理プログラムの送信処理に係るモジュールを実行することによって達成される機能構成である。なお、これらの機能構成は、FPGA(field-programmable gate array)等のハードウェア回路によって達成されてもよい。
 判定処理部11は、アプリケーションプログラムからのデータ入力を、例えば、所定の周期で受け付け、1周期の間に入力されたデータ量を処理単位とする。1周期の間にアプリケーションプログラムからデータ入力がない場合には、データ入力がないことを示すデータが入力データとなる。以降、データ入力の受け付けの周期の1周期の間に入力されたデータを入力データと称する。また、入力データには、シーケンス番号が付与される。
 また、判定処理部11は、受信側装置2からパケットロス率を受信する。判定処理部11は、送信データ量とパケットロス率とに基づいて、誤り訂正符号に係るパラメータを決定する。誤り訂正符号に係るパラメータには、例えば、1つの送信パケットに含まれる符号化データブロックの数、送信パケット数、符号化データブロックの数(K)等がある。判定処理部11の誤り訂正符号に係るパラメータの決定の処理の詳細については、後述される。判定処理部11は、「判定部」の一例である。
 符号化処理部12は、判定処理部11によって決定されたパラメータに従って、送信データに対して誤り訂正符号の処理を行い、符号化データブロックを作成する。第1実施形態では、符号化処理部12は、RPS符号の処理を行う。作成された符号化データブロックは、送信パケット生成部13に出力される。
 送信パケット生成部13は、符号化処理部12から符号化データブロックの入力を受け、判定処理部11によって決定された数の符号化データブロックを1つに集約してデータ部を生成し、誤り訂正符号のヘッダを付与し、送信パケットを生成する。誤り訂正符号のヘッダの詳細については、後述する。送信パケット生成部13は、「パケット生成部」の一例である。
 送信処理部14は、送信パケット生成部13によって作成された送信パケットに、UDPヘッダ及びIPヘッダを付与し、ネットワークインタフェース107を通じてパケットを送信する。なお、誤り訂正符号処理プログラムがTCPを用いる場合には、UDPヘッダの代わりにTCPヘッダが付与される。送信処理部14は、「送信部」の一例である。
 再送要求処理部15は、受信側装置2から再送要求を受信する。再送要求には、例えば、再送要求対象の入力データのシーケンス番号が含まれている。再送要求を受信すると、再送要求処理部15は、符号化データブロックの再送を符号化処理部12に指示する。再送の指示を受けると、符号化処理部12によって該当の入力データから符号化データブロックが作成され、送信パケット生成部13によって送信パケットが作成され、送信処理部14によって該送信パケットが受信側装置2へ送信される。
 次に、受信側装置2は、機能構成として、受信処理部21、受信パケット分割部22、復号処理部23、再送要求処理部24、ロス率計測部25を含む。これらの機能構成は、情報処理装置100のCPU 101が補助記憶装置105に格納されている誤り訂正符号処理プログラムの受信処理に係るモジュールを実行することによって達成される機能構成である。なお、これらの機能構成は、FPGA等のハードウェア回路によって達成されてもよい。
 受信処理部21は、送信側装置1から符号化データブロックを含むパケットを受信する。受信処理部21は、受信パケットからIPヘッダ及びUDPヘッダを取り除き、IPヘッダ及びUDPヘッダが取り除かれた受信パケットを受信パケット分割部22に出力する。また、受信処理部21は、受信パケットの情報をロス率計測部25に出力する。
 受信パケット分割部22は、受信処理部21からIPヘッダ及びUDPヘッダが取り除かれた受信パケットの入力を受ける。すなわち、受信パケット分割部22に入力される受信パケットは、RPS符号のヘッダとデータ部とを含む。受信パケット分割部22は、RPS符号のヘッダ内の情報に基づいて、データ部から符号化データブロックを取り出す。取り出された符号化データブロックは、復号処理部23に出力される。
 復号処理部23は、受信パケット分割部22から入力される符号化データブロックに対して、RPS符号の復号処理を行い、オリジナルデータを取得し、オリジナルデータを宛先のアプリケーションに出力する。符号化データブロックの復号に失敗した場合には、復号処理部23は、再送要求処理部24に通知する。
 再送要求処理部24は、復号処理部23から通知を受けた場合に、送信側装置1に対して再送要求を送信する。再送要求には、例えば、再送を要求する入力データのシーケンス番号が含まれる。
 送信側装置1の再送要求処理部15は、再送要求を受信すると、符号化処理部12に該当入力データの符号化データブロックの再送を通知する。符号化処理部12、送信パケット生成部13、送信処理部14は、該当入力データに再度上述の処理を行い、該当入力データから生成された符号化データブロックを複数含む送信パケットを受信側装置2に再送する。なお、第1実施形態では、RPS符号を用いる場合が想定されているので、再送される符号化データブロックは、損失されたパケットに含まれていたものと異なっていてもよい。また、再送される符号化データブロックは、生成されたすべてではなく、一部であってもよい。復元に必要最低限の数の符号化データブロックがそろえば、オリジナルデータが復元されるからである。
 ロス率計測部25は、受信処理部21から受信パケットの情報の入力を受け、該情報に基づいてパケットロス率を計測し、計測結果を送信側装置1に送信する。パケットロス率の計測方法は、特定の方法に限定されず、周知の方法のいずれが用いられてもよい。パケットロス率の計測方法の一例の詳細については、後述する。
 図6は、送信パケットの構成の一例を示す図である。図6に示される送信パケットは、送信側装置1の送信パケット生成部13によって生成されるパケットである。送信パケットのヘッダ部は、RPS符号に関する情報が含まれるRPS符号のヘッダである。
 ヘッダ部には、例えば、パケットのシーケンス番号、符号長、符号化データブロック数、符号化データブロック長、入力データのシーケンス番号、入力データのサイズ、が含まれる。パケットのシーケンス番号は、送信パケット生成部13によって送信パケットに付与される通し番号である。データ部には、符号化データブロックが1又は複数格納される。
 パケットロス率は、例えば、以下のように求められる。パケットロス率の計測に用いられるパケット数Mは、ロス率計測部25に予め設定されている。ロス率計測部25は、送信側装置1からの受信パケット数がMになるまで計測し、受信パケット数がMに達したら、該M個の受信パケットのRPSヘッダ内のパケットのシーケンス番号の最小値と最大値との差分を求める。該差分値をパケットロス率の計測に用いられるパケット数Mで割った値が、パケットロス率として求められる。ロス率計測部25は、このような処理を繰り返し行う。
 符号長は、RPS符号の符号長Nである。符号長とは、符号化の際に組み合わせ得るデータの範囲を示しており、より具体的には、入力データ内に組み合わせの単位となる情報ブロックをいくつ設けるかを示している。言い換えれば、符号長Nは、1つの入力データの分割数である。
 符号化データブロック数は、1つの送信パケットに含まれる符号化データブロックの数である。符号化データブロック数は、判定処理部11によって決定される(後述)。
 符号化データブロック長は、1つの符号化データブロックのサイズである。符号化データブロック長は、判定処理部11によって、入力データのサイズを符号長で割ることによって求められる。
 入力データのシーケンス番号は、入力データを識別するものであって、例えば、判定処理部11によって、データの入力を受け付ける所定の周期で受信された入力データに対して付与される通し番号である。入力データのシーケンス番号及び入力データのサイズによって、受信側装置2はひとかたまりの入力データの始まりと終りとを検出することができる。
 なお、送信パケットの構成は一例であり、RPS符号のヘッダ内に含まれる情報は、図6に示されるものに限定されない。例えば、入力データのシーケンス番号と入力データのサイズとは、RPS符号のヘッダ内ではなく、符号化データブロックそれぞれに付与されていてもよい。また、ロス率計測部25のパケットロス率の計測方法は、上述のものに限定されない。
 <処理の流れ>
 図7A及び図7Bは、送信側装置1における誤り訂正符号化処理のフローチャートの一例である。図7Aに示されるフローチャートは、アプリケーションプログラムからのデータ入力が開始されたのち、データ入力を受け付ける所定の周期で実行される。
 OP1では、判定処理部11は、入力データのサイズ(Sb)を求める。次に処理がOP2に進む。
 OP2では、判定処理部11は、入力データを符号長N個に分割し、N個のサブブロックデータを生成する。次に処理がOP3に進む。
 OP3では、判定処理部11は、入力データのサイズ(Sb)を符号長Nで割って、符号化データブロックのサイズ(Sr)を求める。次に処理がOP4に進む。
 OP4では、判定処理部11は、符号化データブロックのサイズ(Sr)がペイロードのサイズよりも大きいか否かを判定する。この判定は、1つの符号化データブロックが1つの送信パケットに納まるか否かの判定である。ペイロードのサイズは、例えば、IPパケットの最大長1500バイトから、IPヘッダ、UDPヘッダ、RPS符号のヘッダのサイズを差し引いた値である。符号化データブロックのサイズ(Sr)がペイロードのサイズよりも大きい場合には(OP4:YES)、処理がOP5に進む。符号化データブロックのサイズ(Sr)がペイロードのサイズ以下である場合には(OP4:NO)、処理がOP6に進む。
 OP5では、符号化データブロックのサイズ(Sr)がペイロードのサイズよりも大きく、1つの符号化データブロックが1つの送信パケットに納まらないので、判定処理部11は、入力データのサイズ(Sb)を調整する。入力データのサイズ(Sb)は、ペイロードサイズのN倍に調整される。入力データの余りは、次の処理単位の入力データに含められる。次に処理がOP1に戻り、再度OP1からOP4の処理が行われる。
 OP6では、判定処理部11は、ペイロードサイズをしきい値で割った値より符号化データブロックのサイズ(Sr)が大きいか否かを判定する。この判定は、1つの送信パケットに2つ以上の符号化データブロックを格納できるか否かの判定である。しきい値は、例えば、2や3の正の整数である。ペイロードサイズをしきい値で割った値より符号化データブロックのサイズ(Sr)が大きい場合には(OP6:YES)、処理がOP7に進む。符号化データブロックのサイズ(Sr)がペイロードサイズをしきい値で割った値以下の場合には(OP6:NO)、処理がOP8に進む。
 OP7では、ペイロードサイズをしきい値で割った値より符号化データブロックのサイズ(Sr)が大きく、1つの送信パケットに2つ以上の符号化データブロックを格納することができない。そのため、判定処理部11は、1パケット内の符号化データブロック数(Nr)を1に設定する。次に処理がOP9に進む。
 OP8では、符号化データブロックのサイズ(Sr)がペイロードサイズをしきい値で割った値以下であり、1つの送信パケットに2つ以上の符号化データブロックを格納することができるので、判定処理部11は、1パケット内の符号化データブロック数(Nr)を求める(図3参照)。1パケット内の符号化データブロック数(Nr)は、ペイロードサイズを符号化データブロックのサイズ(Sr)で割ることによって求められる。ペイロードサイズを符号化データブロックのサイズ(Sr)で割った値が小数点を含む場合には、小数点以下を切り捨てた値を1パケット内の符号化データブロック数(Nr)とする。次に処理がOP9に進む。
 OP9では、判定処理部11は、オリジナルデータを復元するために最低限必要な送信パケット数(Np)を求める。以降、オリジナルデータを復元するために最低限必要な送信パケット数(Np)を、最小パケット数(Np)と表記する(図3参照)。例えば、RPS符号では、少なくとも符号長N個の符号化データブロックがあれば、オリジナルデータを復元することが可能である。そのため、第1実施形態では、最小パケット数(Np)は、符号長Nを1パケット内の符号化データブロック数(Nr)で割った値となる。符号長Nを1パケット内の符号化データブロック数(Nr)で割った値が小数点を含む場合には、小数点以下を繰り上げた値を最小パケット数(Np)とする。次に処理がOP10に進む。
 OP10では、判定処理部11は、パケットロス率が考慮された送信パケット数(Rp)を求める。以降、パケットロス率が考慮された送信パケット数を必要パケット数(Rp)と表記する(図3参照)。必要パケット数(Rp)は、例えば、最小パケット数(Np)に(1+パケットロス率(Nl)))を乗じた値である。最小パケット数(Np)に(1+パケットロス率(Nl)))を乗じた値が小数点を含む場合には、小数点以下を切り捨てた値を必要パケット数(Rp)とする。なお、これに限られず、小数点以下を繰り上げた値を必要パケット数(Rp)としてもよい。また、必要パケット数(Rp)の決定方法は、これに限られず、例えば、最小パケット数(Np)に、1/(1-パケットロス率(Nl))を乗じた値であってもよい。次に処理がOP11に進む。
 OP11では、判定処理部11は、必要パケット数(Rp)のパケットに格納される符号化データブロック数(Rr)を求める。以降、必要パケット数(Rp)のパケットに格納される符号化データブロックの数(Rr)を必要符号化データブロック数(Rr)と表記する(図3参照)。必要符号化データブロック数(Rr)は、必要パケット数(Rp)に1パケット内のデータブロック数(Nr)を乗じた値となる。次に、処理がOP12に進む。
 OP12では、符号化処理部12は、RPS符号に基づいて、入力データから必要符号化データ数(Rr)個の符号化データブロックを生成する。次に処理がOP13に進む。
 OP13では、送信パケット生成部13は、1パケット内のデータブロック数(Nr)分の符号化データブロックを1つにまとめて送信パケットのデータ部を生成する。次に処理がOP14に進む。
 OP14では、送信パケット生成部13は、送信パケットのヘッダ部に、入力データのサイズ(Sb)、符号化データブロックのサイズ(Sr)、1パケット内のデータブロック数(Nr)等の情報を格納し(図6参照)、送信パケットを生成する。その後、送信パケットは送信処理部14に出力され、受信側装置2へ送信され、図7Bに示される処理が終了する。
 なお、図7A及び図7Bに示される処理は、一例であって、適宜変更可能である。例えば、1パケット内に含まれる符号化データブロック数(Nr)、最小パケット数(Np)、必要パケット数(Rp)は、あらかじめ決められた固定値であり、OP8~OP10の処理は省略されてもよい。また、データ入力を受け付ける所定の周期の1周期分の入力データのサイズ(Sb)が所定のしきい値よりも小さい場合には、入力データのサイズ(Sb)が所定のしきい値を超えるサイズになるまで、図7Aのフローチャートの開始を待機してもよい。
 また、例えば、図7A及び図7Bに示される処理の開始条件を、所定のアプリケーションに限定することも可能である。所定のアプリケーションは、例えば、リモートデスクトップ等の転送データ量の少ないアプリケーションである。この場合には、入力データサイズ(Sb)が小さく、符号化データブロックがペイロードサイズをしきい値で割った値よりも小さくなることが予め判明しているので、OP4の処理は省略されてもよい。
 図8は、受信側装置2における誤り訂正符号による符号化データブロックを含むパケットの受信処理のフローチャートの一例である。図8に示されるフローチャートは、例えば、受信側装置2が、送信側装置1から、誤り訂正符号処理プログラムのパケットを受信すると開始される。
 OP21では、受信パケット分割部22は、受信パケットのRPS符号のヘッダから、符号化データブロックのサイズ(Sr)、1パケットに含まれる符号化データブロック数(Nr)、符号長N、入力データのシーケンス番号を取得する。次に処理がOP22に進む。
 OP22では、受信パケット分割部22は、受信パケットから取得した入力データのシーケンス番号に該当する入力データの復号が成功しているか否かを判定する。該当する入力データの復号が既に成功している場合には(OP22:YES)、該当する入力データの復号処理を行わなくともよいので、図8に示される処理が終了し、次の受信パケットの処理が開始される。該当する入力データの復号がまだ成功していない場合には(OP22:NO)、処理がOP23に進む。
 OP23では、受信パケット分割部22は、受信パケットからNr個の符号化データブロックを取得する。符号化データブロックのサイズは、OP21で取得された符号化データブロックのサイズ(Sr)である。取得された符号化データブロックは、復号処理部23に出力される。次に処理がOP24に進む。
 OP24では、復号処理部23は、該当の入力データについて受信した符号化データブロックの数が、符号長N以上であるか否かを判定する。この判定は、受信した符号化データブロックが、オリジナルデータの復元に最低限必要な数に達しているか否かの判定である。該当の入力データについて受信した符号化データブロックの数が符号長N以上である場合には(OP24:YES)、処理がOP25に進む。該当の入力データについて受信した符号化データブロックの数が符号長N未満である場合には(OP24:NO)、復号処理を実行せずに、図8に示される処理が終了し、次の受信パケットの処理が開示される。
 OP25では、復号処理部23は、符号化データブロックを復号し、オリジナルデータを復元する。復元方法は、第1実施形態では、RPS符号に準ずる。次に処理がOP26に進む。
 OP26では、復号処理部23は、オリジナルデータの復号に成功したか否かを判定する。オリジナルデータの復号に成功した場合には(OP26:YES)、処理がOP27に進む。オリジナルデータの復号に失敗した場合には(OP26:NO)、図8に示される処理が終了し、次の受信パケットについて処理が開始される。
 OP27では、復号処理部23は、以前の入力データで復号できていないものがあるか否かを判定する。例えば、復号が失敗した場合には、処理が保留状態として、該入力データについての符号化データブロック等はバッファされている。この判定は、例えば、該当のバッファ内の以前の入力データの符号化データブロックの有無によって判定される。以前の入力データで復号できていないものがある場合には(OP27:YES)、処理がOP28に進む。以前の入力データで復号できていないものがない場合には(OP27:NO)、図8に示される処理が終了し、次の受信パケットについて処理が開始される。
 OP28では、復号処理部23は、再送要求処理部24に、復号ができていない入力データのシーケンス番号を通知し、再送要求処理部24は、送信側装置1に対して該入力データの再送要求を送信する。再送要求には、例えば、復号ができていない入力データのシーケンス番号が含まれている。その後図8に示される処理が終了し、次の受信パケットについて処理が開始される。
 なお、図8に示される処理は一例であって、受信側装置2の処理は、これに限定されない。例えば、送信側装置1との通信における最後尾の受信パケットについて、該当の入力データの復号ができない場合や、復号に最低限必要な符号化データブロックがそろわない場合には、所定の時間が経過した後、該当の入力データについて再送要求が行われるようにしてもよい。
 <第1実施形態の作用効果>
 第1実施形態では、送信側装置が、送信データに誤り訂正符号を施す場合に、符号化データブロックのサイズに応じて、複数の冗長符号化データブロックを1つのパケットに格納して送信する。これによって、転送データ量が少ないアプリケーションの通信の場合でも、1つのパケットのデータ部を最大長に近い値まで使用することができ、オーバーヘッドを減らすことができる。1つのパケットで送信される符号化データブロックの量が増えるので、転送速度を向上させることができる。したがって、第1実施形態によれば、誤り訂正符号を用いる場合の転送データ量が少ない通信におけるデータ転送効率を向上させることができる。
 <その他>
 第1実施形態では、誤り訂正符号の一例としてRPS符号が用いられる場合について説明された。ただし、その他の誤り訂正符号が用いられる場合でも、送信側装置1は、符号化データブロックのサイズに応じて、複数の冗長符号化データブロックを1つのパケットに格納して送信し、受信側装置2は該パケットから複数の冗長符号化データブロックを取得することができる。RPS符号以外の誤り訂正符号が用いられる場合には、送信側装置1の判定処理部11、符号化処理部12、送信パケット生成部13、受信側装置2の受信パケット分割部22、復号処理部23の処理を該当の誤り訂正符号に応じた処理に変更することによって実現可能である。
 また、第1実施形態では、情報処理装置100には、端末装置が想定されているが、情報処理装置100は、ゲートウェイ装置やサーバ等であってもよい。例えば、情報処理装置100は、複数の端末を収容するゲートウェイ装置である場合には、入力データは、複数の端末からの受信データとなる。なお、情報処理装置100がゲートウェイ装置である場合には、送信側装置1は、データの送信元及び宛先IPアドレス、送信元及び宛先ポート番号等を識別せずに、端末から受信するデータから符号化データブロックを作成して受信側装置2に送信する。受信側装置2では、符号化データブロックをオリジナルデータに復元し、オリジナルデータに含まれる情報を参照して、宛先の端末に転送する。
 また、第1実施形態では、1台の送信側装置1が、誤り訂正符号のパラメータの決定、符号化データブロックの作成等の処理を行ったが、複数の装置で処理を分散させてもよい。また、受信側装置2の処理も、複数の装置間で分散させてもよい。
 <記録媒体>
 コンピュータその他の機械、装置(以下、コンピュータ等)に上記いずれかの機能を実現させるプログラムをコンピュータ等が読み取り可能な記録媒体に記録することができる。コンピュータ等に、この記録媒体のプログラムを読み込ませて実行させることにより、その機能を提供させることができる。
 ここで、コンピュータ等が読み取り可能な記録媒体とは、データやプログラム等の情報を電気的、磁気的、光学的、機械的、または化学的作用によって蓄積し、コンピュータ等から読み取ることができる非一時的な記録媒体をいう。このような記録媒体のうちコンピュータ等から取り外し可能なものとしては、例えばフレキシブルディスク、光磁気ディスク、CD-ROM、CD-R/W、DVD、ブルーレイディスク、DAT、8mmテープ、フラッシュメモリなどのメモリカード等がある。また、コンピュータ等に固定された記録媒体としてハードディスク、ROM(リードオンリーメモリ)等がある。さらに、SSD(Solid State Drive)は、コンピュータ等から取り外し可能な記録媒体としても、コンピュータ等に固定された記録媒体としても利用可能である。
1   送信側装置
2   受信側装置
11  判定処理部
12  符号化処理部
13  送信パケット生成部
14  送信処理部
15  再送要求処理部
21  受信処理部
22  受信パケット分割部
23  復号処理部
24  再送要求処理部
25  ロス率計測部
101 CPU
102 主記憶装置
105 補助記憶装置

Claims (7)

  1.  誤り訂正符号により送信データから作成される複数の符号化データブロックのサイズに応じて、1つのパケットに前記符号化データブロックを複数格納するパケット生成部と、
     前記パケット生成部によって生成されたパケットを送信する送信部と、
    を含む情報処理装置。
  2.  前記パケット生成部は、前記符号化データブロックのサイズが所定しきい値より大きく且つパケットの最大長よりも小さい場合には、1つのパケットに1つの符号化データブロックを格納し、前記符号化データブロックのサイズが所定しきい値以下である場合には、1つのパケットに複数の前記符号化データブロックを格納する、
    請求項1に記載の情報処理装置。
  3.  前記送信データを前記誤り訂正符号の符号長Nで割って前記符号化データブロックのサイズを求め、1つのパケットに格納される符号化データブロックの数を判定する判定部、
    をさらに備える請求項1又は2に記載の情報処理装置。
  4.  前記判定部は、パケットロス率を用いて、送信するパケット数を判定する、
    請求項3に記載の情報処理装置。
  5.  プロセッサとメモリとを含む情報処理装置において、
     前記プロセッサが、
     誤り訂正符号により送信データから作成される複数の符号化データブロックのサイズに応じて、1つのパケットに前記符号化データブロックを複数格納し、
     前記複数の符号化データブロックが格納されたパケットを送信する、
    情報処理方法。
  6.  情報処理装置に、
     誤り訂正符号により送信データから作成される複数の符号化データブロックのサイズに応じて、1つのパケットに前記符号化データブロックを複数格納させ、
     前記複数の符号化データブロックが格納されたパケットを送信させる、
    ための情報処理プログラム。
  7.  誤り訂正符号により送信データから作成される複数の符号化データブロックのサイズに応じて、1つのパケットに前記符号化データブロックを複数格納するパケット生成部と、
     前記パケット生成部によって生成されたパケットを送信する送信部と、
    を含む送信側装置と、
     前記送信側装置から前記パケットを受信する受信部と、
     前記パケットから複数の符号化データブロックを取得する分割部と、
     前記パケットから取得された複数の符号化データブロックを前記誤り訂正符号により復号して前記送信データを取得する復号部と、
    を含む受信側装置と、
    を備える情報処理システム。
PCT/JP2014/075829 2014-09-29 2014-09-29 情報処理装置、情報処理方法、情報処理プログラム、及び、情報処理システム WO2016051451A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2016551131A JPWO2016051451A1 (ja) 2014-09-29 2014-09-29 情報処理装置、情報処理方法、情報処理プログラム、及び、情報処理システム
PCT/JP2014/075829 WO2016051451A1 (ja) 2014-09-29 2014-09-29 情報処理装置、情報処理方法、情報処理プログラム、及び、情報処理システム
US15/465,940 US20170195083A1 (en) 2014-09-29 2017-03-22 Information processing apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2014/075829 WO2016051451A1 (ja) 2014-09-29 2014-09-29 情報処理装置、情報処理方法、情報処理プログラム、及び、情報処理システム

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US15/465,940 Continuation US20170195083A1 (en) 2014-09-29 2017-03-22 Information processing apparatus

Publications (1)

Publication Number Publication Date
WO2016051451A1 true WO2016051451A1 (ja) 2016-04-07

Family

ID=55629552

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2014/075829 WO2016051451A1 (ja) 2014-09-29 2014-09-29 情報処理装置、情報処理方法、情報処理プログラム、及び、情報処理システム

Country Status (3)

Country Link
US (1) US20170195083A1 (ja)
JP (1) JPWO2016051451A1 (ja)
WO (1) WO2016051451A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021200161A1 (ja) * 2020-03-31 2021-10-07 ソニーグループ株式会社 復号化装置、復号化方法、符号化装置、及び符号化方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007251737A (ja) * 2006-03-17 2007-09-27 Fujitsu Ltd データ転送方法及び,これを適用する通信システム及びプログラム
WO2011039874A1 (ja) * 2009-09-30 2011-04-07 富士通株式会社 データ送信装置、データ生成プログラムおよびデータ送受信方法
JP2012049757A (ja) * 2010-08-26 2012-03-08 Fujitsu Ltd データ転送プログラム、データ転送方法及び情報処理装置
JP2012120161A (ja) * 2010-11-30 2012-06-21 Postech Academy-Industry Foundation 符号化シンボルのパケット化方法及びその方法を用いる装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3047069A (en) * 1959-10-09 1962-07-31 Phillips Petroleum Co Tubing positioner for upper zone of dually completed well
US5121115A (en) * 1988-02-22 1992-06-09 Telefind Corporation Method of transmitting information using programmed channels
US5751865A (en) * 1996-09-26 1998-05-12 Xerox Corporation Method and apparatus for image rotation with reduced memory using JPEG compression
US7072417B1 (en) * 2000-06-28 2006-07-04 Marvell International Ltd. LDPC encoder and method thereof
JPWO2007069406A1 (ja) * 2005-12-15 2009-05-21 三菱電機株式会社 通信システム、送信側通信装置および受信側通信装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007251737A (ja) * 2006-03-17 2007-09-27 Fujitsu Ltd データ転送方法及び,これを適用する通信システム及びプログラム
WO2011039874A1 (ja) * 2009-09-30 2011-04-07 富士通株式会社 データ送信装置、データ生成プログラムおよびデータ送受信方法
JP2012049757A (ja) * 2010-08-26 2012-03-08 Fujitsu Ltd データ転送プログラム、データ転送方法及び情報処理装置
JP2012120161A (ja) * 2010-11-30 2012-06-21 Postech Academy-Industry Foundation 符号化シンボルのパケット化方法及びその方法を用いる装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2021200161A1 (ja) * 2020-03-31 2021-10-07 ソニーグループ株式会社 復号化装置、復号化方法、符号化装置、及び符号化方法

Also Published As

Publication number Publication date
US20170195083A1 (en) 2017-07-06
JPWO2016051451A1 (ja) 2017-07-27

Similar Documents

Publication Publication Date Title
EP3591868B1 (en) Information processing method, apparatus and device
JP6846572B2 (ja) 符号化方法及び装置
JP6294346B2 (ja) 通信装置及びシステム及び方法
EP3342073A1 (en) Random linear network encoded data transmission
US8418037B2 (en) Method and device for decoding by using window-based least significant bits in robust header compression
TWI484785B (zh) 提供線性消除碼之方法與裝置
WO2015168840A1 (zh) 一种数据处理方法及装置
KR20130039866A (ko) 통신 시스템에서 순방향 에러 정정 패킷을 송수신하는 방법 및 장치
JP6487562B2 (ja) オンデマンドファイル修復のための方法及びシステム
US11477170B2 (en) Decoding method and apparatus
CN110658987A (zh) 用于经压缩的数据串流中的错误恢复的技术
US10200155B2 (en) One-way data transmission apparatus, one-way data reception apparatus, and one-way data transmission/reception method using the same
US11502780B2 (en) Channel decoding method and apparatus in wireless communications
KR20110121597A (ko) 매체 접근 제어 프로토콜 데이터 유닛에 제어정보를 인코딩 및 디코딩하는 장치 및 방법
WO2016051451A1 (ja) 情報処理装置、情報処理方法、情報処理プログラム、及び、情報処理システム
CN109756307A (zh) 数据重传方法及装置
WO2016188406A1 (en) System and method of header compression for online network codes
JPWO2015178018A1 (ja) 端末、パケット復号方法、および、プログラムが記憶された記憶媒体
CN115085872B (zh) 数据处理方法及装置、存储介质、电子设备
EP3745622B1 (en) Decoding method and apparatus
US10425190B2 (en) Channel encoding method and apparatus in wireless communications
WO2015137854A1 (en) Method and devices for providing feedback in a communication system
KR20080035135A (ko) 무선 통신 시스템에서 매체 접속 제어 프로토콜 데이터유닛 처리 방법 및 장치
CN109474376A (zh) 编码方法及装置
CN109474378A (zh) 编码方法及装置

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: 14903438

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2016551131

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 14903438

Country of ref document: EP

Kind code of ref document: A1