WO2015152414A1 - 通信システム、送信装置、受信装置、通信装置、通信方法、及びプログラム - Google Patents

通信システム、送信装置、受信装置、通信装置、通信方法、及びプログラム Download PDF

Info

Publication number
WO2015152414A1
WO2015152414A1 PCT/JP2015/060672 JP2015060672W WO2015152414A1 WO 2015152414 A1 WO2015152414 A1 WO 2015152414A1 JP 2015060672 W JP2015060672 W JP 2015060672W WO 2015152414 A1 WO2015152414 A1 WO 2015152414A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
communication
communication device
receiving
packet
Prior art date
Application number
PCT/JP2015/060672
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
Priority claimed from JP2014077876A external-priority patent/JP6268027B2/ja
Priority claimed from JP2014151146A external-priority patent/JP2016025641A/ja
Application filed by エヌ・ティ・ティ・コミュニケーションズ株式会社 filed Critical エヌ・ティ・ティ・コミュニケーションズ株式会社
Priority to EP15773633.1A priority Critical patent/EP3128717B1/en
Priority to US15/301,660 priority patent/US10178440B2/en
Publication of WO2015152414A1 publication Critical patent/WO2015152414A1/ja

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; 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/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/637Control signals issued by the client directed to the server or network components
    • H04N21/6375Control signals issued by the client directed to the server or network components for requesting retransmission, e.g. of data packets lost or corrupted during transmission from server
    • 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/14Arrangements for detecting or preventing errors in the information received by using return channel in which the signals are sent back to the transmitter to be checked ; echo systems
    • 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/1809Selective-repeat protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/64Hybrid switching systems
    • H04L12/6418Hybrid transport
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1101Session protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/80Responding to QoS
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/15Data rate or code amount at the encoder output by monitoring actual compressed data size at the memory before deciding storage at the transmission buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/23406Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving management of server-side video buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/44004Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving video buffer management, e.g. video decoder buffer or video display buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/40Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection

Definitions

  • the present invention relates to a data communication technology, and particularly relates to a technology for efficiently performing highly reliable data communication.
  • TCP is widely used as a data communication protocol.
  • TCP was a protocol optimized for network communication quality and speed at the time of its birth.
  • the checksum of the TCP header is a 16-bit value using one's complement and has a problem that it is less reliable than the hash function.
  • a hash value is assigned to a packet, a hash function must be calculated for each packet, resulting in a high CPU load.
  • TCP has a problem that the overhead is too large for a high-quality and high-speed network for digital transmission using the current optical fiber.
  • the transmission side since the transmission side always waits for ACK transmitted from the reception side, the transmission side cannot transmit a packet unless it receives ACK or times out. In particular, it is directly affected by delay in the network in physically far-distance communication.
  • the present invention has been made in view of the above, and an object thereof is to transfer data with high reliability. Another object of the present invention is to transfer data at high speed.
  • a communication system including a transmission device and a reception device,
  • the transmitter is A buffer for holding first data to be transmitted; Transmitting means for transmitting the first data to the receiving device; Receiving means for receiving second data returned by the receiving device; Comparing means for comparing the second data with the first data held by the buffer; Control means for instructing the transmission means to retransmit the first data if the comparison result of the comparison means does not match;
  • a communication system is provided.
  • a buffer for holding first data to be transmitted; Transmitting means for transmitting the first data to a receiving device; Receiving means for receiving second data returned by the receiving device; Comparing means for comparing the second data with the first data held by the buffer; Control means for instructing the transmission means to retransmit the first data if the comparison result of the comparison means does not match;
  • receiving means for receiving first data from a transmitting device Transmitting means for causing the transmitting device to compare the second data and the first data by returning the received first data to the transmitting device as second data; Is provided.
  • a communication method between a transmitting device and a receiving device By the transmitting device, Transmitting first data to the receiving device; Receiving second data returned by the receiving device; Comparing the second data with the first data; Resending the first data if the results of the comparing steps do not match; and A communication method is provided.
  • a communication system having a first communication device and a second communication device,
  • the first communication device transmits first data to the second communication device, and the second communication device adds second data to the first data received from the first communication device. Transmitting the superimposed third data to the first communication device; Communication in which the first communication device acquires the second data from the third data received from the second communication device using the first data held by the first communication device.
  • a data communication method in a communication system having a first communication device and a second communication device, The first communication device transmitting first data to the second communication device; The second communication device transmitting third data in which the second data is superimposed on the first data received from the first communication device to the first communication device; The first communication device acquires the second data from the third data received from the second communication device using the first data held by the first communication device.
  • a data communication method is provided.
  • a communication device that communicates with a counterpart communication device that is a communication counterpart, Means for transmitting first data to the counterpart communication device and receiving third data obtained by superimposing the second data on the first data from the counterpart communication device; Storage means for holding the first data transmitted to the counterpart communication device; A communication device is provided that includes data acquisition means for acquiring the second data from the third data received from the counterpart communication device using the first data held in the storage means.
  • data can be transferred with high reliability. Further, according to the embodiment of the present invention, data can be transferred at high speed.
  • the first embodiment and the second embodiment will be described as embodiments of the present invention.
  • a basic technique for transferring data with high reliability will be described.
  • a technique to which the basic technique in the first embodiment is applied will be described.
  • FIG. 1 is a schematic diagram for explaining how the communication system according to this embodiment transmits and receives packets.
  • a transmission-side device and a reception-side device are connected via a high-quality and high-speed network, and packets are transmitted and received between the devices.
  • the transmitting device when the transmitting device transmits a packet, the receiving device returns the received packet and transmits it. Without establishing a connection between the transmission side device and the reception side device, the transmission side device sequentially transmits the number of packets determined by the setting from the start of communication.
  • the number of packets determined by the setting is, for example, the number of packets that does not cause congestion, and the available bandwidth is set as an upper limit or adjusted with the communication partner in advance.
  • the device on the sending side When the device on the sending side receives the return packet sent back, it matches the sent packet with the received return packet and confirms that the packet has been sent correctly. If the packets do not match as a result of matching, the packets are retransmitted. The packet is also retransmitted even if the return packet is not received within the timeout time.
  • FIG. 2 is a functional block diagram showing the configuration of the communication system in the present embodiment.
  • the communication system in the present embodiment includes a transmission device 1 and a reception device 2.
  • the transmission apparatus 1 includes an input unit 11, a transmission buffer 12, a transmission unit 13, a reception unit 14, a comparison unit 15, and a control unit 16.
  • the input unit 11 inputs data to be transmitted from an application or the like, divides the data into packets, and stores them in the transmission buffer 12.
  • the transmission buffer 12 is a storage area for temporarily holding packets. In FIG. 2, the packet is indicated by a circle.
  • the transmission unit 13 takes out the packet from the transmission buffer 12, adds a transmission source, a transmission destination, and a header including control information used for retransmission and flow control to the packet and transmits the packet to the reception device 2.
  • a transmission source for retransmission and flow control
  • a header including control information used for retransmission and flow control to the packet and transmits the packet to the reception device 2.
  • information described in the header for example, there is a sequence number indicating the order of packets.
  • the receiving apparatus 2 changes the order of the packets using the sequence number.
  • the receiving unit 14 receives the return packet sent back from the receiving device 2 and transmits it to the comparison unit 15.
  • the comparison unit 15 compares the return packet and the transmitted packet stored in the transmission buffer 12. As a result of the comparison, if they match, the compared packet is deleted from the transmission buffer 12, and if they do not match, the control unit 16 is instructed to retransmit the compared packet.
  • the transmitted packet corresponding to the return packet can be specified using, for example, a sequence number described in the packet header.
  • the control unit 16 performs communication control such as packet retransmission and flow control.
  • the reception device 2 includes a reception unit 21, a transmission unit 22, a reception buffer 23, and an output unit 24.
  • the reception unit 21 receives a packet from the transmission device 1, stores the received packet in the reception buffer 23, and transmits the received packet to the transmission unit 22.
  • the transmission unit 22 transmits the packet received from the reception unit 21 to the transmission device 1 as a return packet.
  • the reception buffer 23 is a storage area that temporarily stores received packets.
  • the output unit 24 takes out the packet from the reception buffer 23, reconstructs the data transmitted by the transmission device 1, and passes the data to an application or the like.
  • the units included in the transmission device 1 and the reception device 2 may be configured by a computer including an arithmetic processing device, a storage device, and the like, and the processing of each unit may be executed by a program.
  • This program is stored in a storage device included in the transmission device 1 and the reception device 2, and can be recorded on a recording medium such as a magnetic disk, an optical disk, or a semiconductor memory, or provided through a network.
  • the transmission device 1 and the reception device 2 are illustrated as devices having only a transmission function and a reception function, respectively, but both the transmission device 1 and the reception device 2 may have a transmission / reception function.
  • the communication system according to the present embodiment can be mounted on existing datagram communication such as IP and UDP.
  • FIG. 3 is a flowchart showing a flow of processing in which the transmission apparatus 1 transmits a packet.
  • the transmission unit 13 takes out the packet from the transmission buffer 12 and transmits it to the reception device 2 (step S11). Subsequently, it is determined whether the receiving unit 14 has received a return packet from the receiving device 2 (step S12).
  • the reception unit 14 When the reception unit 14 receives the return packet (YES in step S12), the reception unit 14 transmits the received return packet to the comparison unit 15, and the comparison unit 15 compares the returned packet with the transmitted packet held in the transmission buffer 12. (Step S13).
  • step S15 when the return packet matches the transmitted packet (YES in step S14), the transmitted packet is deleted from the transmission buffer 12 (step S15).
  • step S16 if the return packet has not been received (NO in step S12), it is determined whether or not a preset very short timer has timed out (step S16).
  • the communication system according to the present embodiment transmits and receives packets using a high-speed network, and the receiving device 2 immediately returns the received packet as it is, so there is no need to set a long timer. Therefore, in this embodiment, a very short timer is set in consideration of the communication quality of the network between the transmission device 1 and the reception device 2.
  • step S16 If not timed out (NO in step S16), the process returns to step S12 and waits for the return packet.
  • step S16 If timed out (YES in step S16), the packet is acquired again from the transmission buffer 12 and retransmitted (step S17).
  • the timeout occurs, only about one retry is performed, and when the retry times out, back off and wait.
  • the back-off process can be performed in the same way as CSMA / CD. Further, when the timeout occurs, the state of the receiving device 2 is confirmed using another communication method (for example, TCP).
  • TCP another communication method
  • step S17 Packet retransmission is performed for each packet.
  • FIG. 4 is a flowchart showing a flow of processing in which the receiving device 2 receives a packet.
  • the reception unit 21 When the reception unit 21 receives the packet, the reception packet is stored in the reception buffer 23 and the received packet is passed to the transmission unit 22 (step S21).
  • the transmission unit 22 transmits the packet received from the reception unit 21 to the transmission device 1 that is the transmission source of the packet (step S22).
  • FIG. 5 is a schematic diagram for explaining how packets are transmitted and received using the TCP of the comparative example.
  • TCP In TCP, first, a connection is established between the transmission side and the reception side by a 3-way handshake. After the 3-way handshake, the transmitting side transmits a packet. When the receiving side receives the packet, it returns an ACK to the transmitting side. The transmission side transmits the next packet after receiving the ACK. Therefore, as shown in FIG. 5, the transmission side generates a transmission waiting time for transmitting the next packet after transmitting the packet until receiving the ACK.
  • FIG. 6 is a schematic diagram showing the state of a packet flowing in the path from the transmission side to the reception side.
  • FIG. 6A is a diagram illustrating a state of a packet that flows in a route when TCP is used
  • FIG. 6B is a packet that flows in a route when the communication system according to the present embodiment is used.
  • FIG. 6A is a diagram illustrating a state of a packet that flows in a route when TCP is used
  • FIG. 6B is a packet that flows in a route when the communication system according to the present embodiment is used.
  • the transmitting side transmits the subsequent packet 2 without waiting for the return packet of the packet 1 after transmitting the packet 1. There is no transmission waiting time between the transmission of 1 and the transmission of packet 2.
  • a method called window control is adopted, and efficiency is improved by transmitting a plurality of packets corresponding to the window size without confirming ACK.
  • the receiving side transmits one ACK for a plurality of packets. After receiving the ACK, the transmission side transmits a packet corresponding to one window size. Even in the window control, after transmitting a packet for one window size, a transmission waiting time occurs until ACK is confirmed.
  • TCP adopts a method called a sliding window, and when there is a vacant window on the receiving side, a packet is transmitted without waiting for an ACK. Since the vacant window on the receiving side is notified by ACK, a transmission waiting time occurs until ACK is confirmed even in the sliding window.
  • the reliability is compared with the existing communication protocol.
  • UDP exists as a protocol for transferring data at high speed, but UDP does not guarantee reliability, order, and data integrity.
  • the transmission device 1 since the transmission device 1 compares the transmitted packet with the return packet returned from the reception device 2, reliability and data integrity are guaranteed. Orderability can be dealt with by describing information indicating the order of packets to be transmitted in a header or the like.
  • the TCP checksum is a 16-bit value using a one's complement
  • the packet transmitted by the transmission device 1 and the packet received by the reception device 2 are directly compared. Therefore, the communication system according to the present embodiment can obtain much higher reliability (completeness) than TCP. Further, in the communication system according to the present embodiment, only a comparison is made as to whether or not the packets match, so that the processing load is not high.
  • a secret sharing technique is known in which three shares Sa, Sb, and Sc are created from the original data S, and the respective shares Sa, Sb, and Sc are stored separately to increase security. Furthermore, when any one of the shares Sa, Sb, and Sc is lost, there is a technique for regenerating the lost share Sa without restoring the original data S using the remaining shares Sb and Sc. To do.
  • three shares Sa, Sb, and Sc are stored in separate regional data centers DCa, DCb, and DCc.
  • one regional data center DCa collapses due to an earthquake or the like, it is necessary to regenerate the share Sa lost in the new regional data center DCx.
  • the lost share Sa can be regenerated as quickly as possible.
  • it is possible to transfer shares Sb and Sc using TCP it is not necessary to increase the speed of the physical line or increase the number of lines by using this communication system having a high line usage rate.
  • the packet transmitted by the transmission device 1 is returned to the transmission device 1 by the reception device 2 as a return packet, and the packet transmitted by the transmission device 1 is compared with the return packet.
  • the transmission device 1 can improve the line usage rate by continuing to transmit packets without waiting for a response from the reception device 2.
  • a slow start is not performed at the beginning of connection establishment, and the transmission apparatus 1 transmits the number of packets determined by setting from the start of communication, thereby improving the line usage rate. be able to.
  • the packet when the comparison result with the return packet does not match or when a time-out occurs, the packet is retransmitted only for the corresponding packet, thereby causing waste of retransmission of the packet received by the receiving device 2. Absent.
  • a communication system including a transmission device and a reception device, wherein the transmission device transmits a first packet to be transmitted, and a buffer that holds the first packet to be transmitted to the reception device. Transmitting means for receiving, receiving means for receiving the second packet returned by the receiving device, comparing means for comparing the second packet and the first packet held by the buffer, and There is provided a communication system having control means for instructing the transmission means to retransmit the first packet when the comparison result does not match.
  • the transmission device may transmit the next first packet without waiting for the return of the second packet.
  • the number of the first packets to be transmitted without waiting for the return of the second packet is determined by setting, for example.
  • control unit deletes the first packet from the buffer when the comparison result of the comparison unit matches.
  • control means may instruct the transmission means to retransmit the first packet when a time-out occurs without receiving the second packet within a predetermined time.
  • the first packet when the first packet is retransmitted due to a timeout, if the first packet also times out, it is backed off and waits. When the timeout occurs, the state of the receiving device is changed by another communication method. It may be confirmed.
  • the first packet and the second packet are transferred using, for example, datagram communication.
  • a buffer for holding the first packet to be transmitted, a transmitting unit for transmitting the first packet to the receiving device, and a receiving unit for receiving the second packet returned by the receiving device
  • comparing means for comparing the second packet with the first packet held in the buffer, and if the comparison result of the comparing means does not match, retransmission of the first packet is transmitted.
  • a control means for instructing the means.
  • a receiving apparatus having receiving means for receiving a first packet from a transmitting apparatus, and transmitting means for returning the received first packet as a second packet to the transmitting apparatus.
  • a communication method between a transmission device and a reception device the step of transmitting a first packet to the reception device by the transmission device, and a second packet returned by the reception device.
  • a communication comprising: a step of receiving; a step of comparing the second packet with the first packet; and a step of retransmitting the first packet when a result of the step of comparing does not match A method is provided.
  • FIG. 7 shows a configuration diagram of a communication system according to the present embodiment.
  • the communication system according to the present embodiment has a configuration in which a communication device A and a communication device B are connected by a communication line C.
  • the communication devices A and B are devices each having a function of transmitting and receiving data via the communication line C, and are servers related to services such as storage services, for example.
  • the communication devices A and B are not limited to a specific type of device such as a server.
  • either or both of the communication devices A and B may be user terminals, and either or both of the communication devices A and B may be routers, switches, or the like that relay data. .
  • the communication line C is a bidirectional communication line capable of simultaneously performing communication from the communication apparatus A to the communication apparatus B and communication from the communication apparatus B to the communication apparatus A.
  • the communication line C may be any line as long as it has a communication band from the communication apparatus A to the communication apparatus B and a communication band from the communication apparatus B to the communication apparatus A.
  • the communication line C may be a line identified as a single line, or may be two lines composed of one line in each direction. Further, the line may be called a transmission line, a path, a communication line, or the like.
  • the communication line C may be a physical line such as an optical fiber or an electric cable, or a logical line (eg, VPN) formed in a network such as the Internet made up of a large number of devices. Alternatively, a combination of these may be used.
  • the reception side transmits the data received from the transmission side as it is to the transmission side (turnback).
  • the transmission side verifies whether or not the transmitted data is surely delivered to the reception side by verifying whether or not the data (return data) matches the transmitted data.
  • FIG. 8A shows an example of such communication procedure. As shown in FIG. 8A, first, the communication device A transmits data A to the communication device B (step S1).
  • the communication device B communicates the data A received from the communication device A (assuming that the communication device B can receive without error) in order to confirm that the data A has reached the communication device B. Transmit to device A (step S2).
  • communication device B has data B to be sent to communication device A, and the data B is also sent to communication device A (step S2).
  • the data A and the data B are transmitted from the communication device B to the communication device A, and sufficient bandwidth is assumed assuming that the data A (return data) and the data B are transmitted. If there is no data, it takes time to transmit data A + data B, resulting in a delay.
  • FIG. 8B shows an outline of communication according to the present embodiment.
  • the communication device A transmits data A to the communication device B (step S30).
  • the communication device B that has received the data A returns the data A to the communication device A and transmits the data B to the communication device A.
  • the data A and the data B are not sent as they are.
  • the data (denoted as data AB) obtained by taking the exclusive OR (XOR) is sent (step S31). For example, if the data sizes of the data A and the data B are 10 respectively, the data size of the data AB after taking the exclusive OR (XOR) is also 10. That is, in the present embodiment, it is possible to send data A and data B without increasing the amount of data compared to sending only data B (or data A).
  • the communication device A that has received the data AB calculates the exclusive ethical sum of the data A that is transmitted and held in step S30 and the received data AB, and obtains the data B ′ as a result ( Step S32).
  • the exclusive ethical sum of data AB and data A is data B, so the result of step S32 is described as data B ′.
  • the communication device A calculates the exclusive OR of the data B ′ that is the result in step S32 and the received data AB, and acquires the data A ′ that is the result. If both data AB and data A are transmitted and received without error, the exclusive ethical sum of data AB and data B ′ (data B) is data A, so the result of step S33 is described as data A ′. Yes.
  • step S33 the stored data A and the calculated data A ′ are compared to check whether or not they match. If they match, both the data AB and data A are checked.
  • the data B ′ can be used as data B (data B transmitted by the communication device B), assuming that data is transmitted and received without error.
  • data A ′ data A
  • the communication apparatus B can determine (estimate) that the data A has been correctly received. Note that this is an example, and as will be described later, more stages of checking may be performed.
  • Packet is used as an example of data to be transmitted and received. Further, a packet transmitted from the communication apparatus A to the communication apparatus B is denoted by A, a packet transmitted from the communication apparatus B to the communication apparatus A is denoted by B, and a packet transmitted by performing an exclusive OR operation is denoted by a symbol Pkt.
  • * is used as a symbol indicating exclusive OR operation.
  • i i is a natural number
  • '(dash) is attached to data that is unknown whether it is correct due to the possibility of a communication error or the like.
  • session management is performed in the session layer, and communication is started from the communication device A.
  • a i ′ A i is established under the assumption that no communication error has occurred, but at this point it is not known whether this assumption is correct.
  • a i 'that if calculated, if A i that holds do not match, it can be estimated that A i did not reach the correct communication device B, to recover due to retransmission. That is, Pkt i is retransmitted.
  • simultaneous bidirectional communication is performed between the communication device A and the communication device B.
  • the session is started from the communication device A, and the communication device A ends the session.
  • both communication apparatuses A and B communicate data (packets) having the same length. If the data lengths to be sent are different, the data lengths may be made uniform by zero padding or the like.
  • FIG. 9 is a diagram illustrating a state where the packet transmission / reception has already been performed a plurality of times from the start of communication and the communication apparatus A transmits the packet A i .
  • B (i-1) 'is estimated as in the communication device A is B (i-1) packets, which is folded data to the communication device B.
  • the Pkt i transmitted from the communication apparatus A reaches the communication apparatus B as Pkt i ′, which is a packet that may have a communication error.
  • a i ′ Pkt i ′ * B (i ⁇ 1) , it is assumed that B (i ⁇ 1) ′ included in Pkt i ′ is Non-Error (no error). ing.
  • Communication apparatus B B (i-1) 'and, to compare with the B to the communication device B holds (i-1), B ( i-1)' verification that is Non-Error I do. If they match, it can be estimated that B (i-1) transmitted to the communication apparatus A with the (i-1) th packet has correctly reached the communication apparatus A, and delivery confirmation can be performed. Further, B (i-1) 'in the case where the B (i-1) are matched, A i' and is estimated to be A i (A i'-> A i).
  • a i' A i considers to be A i, the A i 'A i It is good also as processing to handle as. If B (i-1) ′ and B (i-1) match and B i ′ and B i match continuously, A i ′ is regarded as A i , where A process using A i may be performed.
  • B (i-1) ′ and B (i-1) do not match, for example, Pkt including B (i-1) is retransmitted to the communication device A.
  • a i ′ is aliasing data for A i .
  • Pkt (i + 1) transmitted from the communication apparatus B reaches the communication apparatus A as Pkt (i + 1) ′, which is a packet that may have a communication error.
  • the communication apparatus A, the A i ', the communication device A performs a comparison between A i held, if they match, A i is correct communication apparatus that transmits to the communication apparatus B in the i-th packet It can be estimated that B has been reached, and delivery confirmation can be performed. Also, A i 'when the A i are matched, B i' to estimate that the B i (B i'-> B i). At this point, the communication device A, B i 'is its integrity is unknown, as a specific process, at this point, B i' considers to be B i, the B i 'B i It is good also as processing to handle as.
  • Pkt (i + 2) transmitted from the communication apparatus A reaches the communication apparatus B as Pkt (i + 2) ′, which is a packet that may have a communication error.
  • the communication apparatus B makes a comparison between B i the communication apparatus B holds, if they match, (i + 1) th B i is correctly transmitted to the communication apparatus A in packets It can be estimated that the communication apparatus A has been reached, and delivery confirmation can be performed. Also, B i 'when the B i coincide with each other, A (i + 1)' the estimated to be A (i + 1) (A (i + 1)'-> A (i + 1)). At this time, in the communication apparatus B, the completeness of A (i + 1) ′ is unknown, but as a specific process, at this point, A (i + 1) ′ is regarded as A (i + 1) , A process of handling A (i + 1) ′ as A (i + 1) may be performed.
  • step S104 if A i ′ and A i do not match, the process returns to step S101.
  • packet transmission / reception is performed by the same operation after step S107.
  • the communication apparatus A sends data having a value of 0 (A (i + 3) in the example of FIG. 9) in order to end the session in step S113.
  • This is the same as when assuming that the received data (B 0 ) that has arrived immediately before is 0 in the communication device A when starting a session.
  • the assumption is made that the final data has surely arrived at the other party. That is, an agreement is made in advance on the transmission / reception side.
  • the transmission data of the previous communication device B matches the return packet from the communication device A, and the final data from the communication device A It is sufficient to check whether or not the value derived from the packet and considered to be the last data from the communication device A is 0.
  • Pkt i received from the partner device is guaranteed to Pkt (i ⁇ 1) transmitted to the partner device immediately before and Pkt (i + 1) transmitted to the partner device immediately thereafter. Necessary. What is necessary is just to identify order by the number etc. which are attached
  • B (i-1) ' B (i-1) is Error
  • B (i-1) ' and B (i-1) does not actually match
  • a i is Non-Error, and retransmission is useless at this point, but since both packets are superimposed, there is no substantial use.
  • B (i-1) ' B (i-1) is Error
  • B (i-1) ' and B (i-1) does not actually match
  • the if statement B (i-1 ) ′ B (i ⁇ 1) is established
  • B (i ⁇ 1) and A i are Error, and retransmission is not wasted.
  • bidirectional communication a value obtained by exclusive OR of transmission target data and loopback data is used as transmission data.
  • unidirectional communication data from the other side is unnecessary, and if this is set to 0, even if exclusive OR is performed, the transmission target data and the transmission data match.
  • the transmission data from the other party is always determined as 0 in advance, the compatibility between bidirectional communication and unidirectional communication can be ensured. That is, the method described in this embodiment can be similarly applied to bidirectional communication and unidirectional communication without changing the algorithm.
  • each of the communication devices A and B described in the second embodiment receives the return data after transmitting the data and transmits the returned data and the return as in the transmission device 1 in the first embodiment. Compared with data, if they match, it is determined that the transmission data has normally arrived at the receiving side, and if they do not match, retransmission is performed. Therefore, both of the communication devices A and B can be read as the transmission device 1. It is. In addition, each of the communication devices A and B described in the second embodiment receives data and transmits the data to the transmission side as return data, like the receiving device 2 in the first embodiment. Therefore, both the communication devices A and B can be read as the receiving device 2.
  • FIG. 10 shows a configuration diagram of communication apparatus 100 used as communication apparatus A or communication apparatus B in the present embodiment.
  • the communication device 100 includes a data transmission / reception unit 101, a transmission data creation unit 102, a data extraction unit 103, a data verification unit 104, a data storage unit 105, and a data processing unit 106.
  • the data transmitter / receiver 101 transmits and receives packets and the like via a communication line.
  • the data transmitter / receiver 101 includes a transmission buffer and a reception buffer.
  • the data processing unit 106 is a functional unit that generates data to be transmitted and uses received data.
  • the data processing unit 106 corresponds to an upper layer communication function, an application that provides a predetermined service, or the like.
  • the transmission data creation unit 102 receives data to be sent to the other party generated by the data processing unit 106 from the data processing unit 106 and receives data to be returned to the other party from the data verification unit 104. Data to be transmitted to the other side is created by calculating a logical sum.
  • the data verification unit 104 checks whether A i ′ matches A i . If they match, it is determined that delivery confirmation of A i has been obtained, and B i ′ is regarded as B i and passed to the data processing unit 106. Alternatively, in order to perform the check more strictly, it is determined that the delivery confirmation of A i has been obtained when A i ′ matches A i and then A (i + 1) ′ matches A (i + 1). At the same time, B i ′ may be regarded as B i and passed to the data processing unit 106. It should be noted that the data stored when performing the multistage check as described above may be stored in the data storage unit 105.
  • the communication apparatus 100 can be realized, for example, by causing one or a plurality of computers to execute a program describing the processing contents described in the present embodiment. That is, the function of the communication device 100 is realized by executing a program corresponding to processing executed in the communication device 100 using hardware resources such as a CPU, a memory, and a hard disk built in the computer. Is possible. Further, the program can be recorded on a computer-readable recording medium (portable memory or the like), stored, or distributed. It is also possible to provide the program through a network such as the Internet or electronic mail.
  • a communication system having a first communication device and a second communication device, wherein the first communication device transmits first data to the second communication device.
  • the second communication device transmits to the first communication device, the third data obtained by superimposing the second data on the first data received from the first communication device,
  • the second communication device obtains the third data by calculating an exclusive OR of the first data and the second data, and the first communication device receives the first data
  • the second data may be obtained by calculating an exclusive OR of the data and the third data.
  • the first communication device has data obtained by calculating an exclusive OR of the third data received from the second communication device and the calculated second data; When the first data held by the first communication device matches, the calculated second data is estimated to be the second data transmitted from the second communication device. It is good.
  • data having a value of 0 has already been transmitted from the second communication device to the first communication device without error.
  • the first communication device receives data having a value of 0 and immediately before the second communication device.
  • Data obtained by exclusive OR with the data estimated to be transmitted may be transmitted to the second communication device.
  • a communication device that communicates with a partner communication device that is a communication partner, transmits first data to the partner communication device, and the partner communication device transmits the first data.
  • a data acquisition means for acquiring the second data from the third data received from the counterpart communication device.
  • the third data is obtained by calculating an exclusive OR of the first data and the second data
  • the data obtaining unit is configured to obtain the first data.
  • the second data is obtained by calculating an exclusive OR of the first data and the third data.
  • the data acquisition means is held in the storage means and data obtained by calculating an exclusive OR of the third data received from the counterpart communication device and the calculated second data.
  • the calculated second data may be estimated to be the second data transmitted from the second communication device.
  • the reachability and completeness of data can be ensured by using loopback data, and highly reliable communication is possible. Further, since there is no mechanism such as ACK or window size unlike TCP, efficient communication is possible from the start of communication and the restart of communication. Furthermore, since the loopback data and the original data are transmitted by being superposed using exclusive OR or the like, reliable communication using loopback data can be performed efficiently without affecting the throughput. It becomes possible to carry out well.

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Multimedia (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Communication Control (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

 送信装置と受信装置を備えた通信システムにおいて、前記送信装置は、送信する第1のデータを保持するバッファと、前記第1のデータを前記受信装置へ送信する送信手段と、前記受信装置が返送した第2のデータを受信する受信手段と、前記第2のデータと前記バッファが保持する前記第1のデータとを比較する比較手段と、前記比較手段の比較の結果が一致しなかった場合は前記第1のデータの再送を前記送信手段に指示する制御手段と、を有する。

Description

通信システム、送信装置、受信装置、通信装置、通信方法、及びプログラム
 本発明は、データ通信技術に関するものであり、特に、信頼性の高いデータ通信を効率的に行う技術に関連するものである。
 データ通信のプロトコルとしてTCPが広く普及している。TCPは、その誕生時期の網通信品質と速度に対して最適化されたプロトコルであった。
RFC793
特開平10-308932号公報
 しかしながら、TCPヘッダーのチェックサムは1の補数を用いた16ビットの値でありハッシュ関数に比して信頼性が低いという問題があった。パケットにハッシュ値を付与した場合は、1パケット毎にハッシュ関数を計算しなければならずCPU負荷が高くなってしまう。
 また、TCPは現在の光ファイバによるデジタル伝送の高品質かつ高速な網に対してはオーバヘッドが大きすぎるという問題があった。TCPでは、送信側は受信側から送信されるACKを必ず待つので、送信側はACKを受信するか、タイムアウトしない限りパケットを送信できない。特に、物理的に遠距離な通信において網内遅延の影響を直接受けてしまう。
 また、TCPでは、ウィンドウサイズ(帯域遅延積)に基づく帯域制御の性質から、データ通信の効率が低下し、高いスループットが得られなくなるという問題もある。
 本発明は、上記に鑑みてなされたものであり、データを高信頼で転送することを目的とする。また、本発明は、データを高速で転送することを目的とする。
 本発明の実施の形態によれば、送信装置と受信装置を備えた通信システムであって、
 前記送信装置は、
 送信する第1のデータを保持するバッファと、
 前記第1のデータを前記受信装置へ送信する送信手段と、
 前記受信装置が返送した第2のデータを受信する受信手段と、
 前記第2のデータと前記バッファが保持する前記第1のデータとを比較する比較手段と、
 前記比較手段の比較の結果が一致しなかった場合は前記第1のデータの再送を前記送信手段に指示する制御手段と、
 を有することを特徴とする通信システムが提供される。
 本発明の実施の形態によれば、送信する第1のデータを保持するバッファと、
 前記第1のデータを受信装置へ送信する送信手段と、
 前記受信装置が返送した第2のデータを受信する受信手段と、
 前記第2のデータと前記バッファが保持する前記第1のデータとを比較する比較手段と、
 前記比較手段の比較の結果が一致しなかった場合は前記第1のデータの再送を前記送信手段に指示する制御手段と、
 を有することを特徴とする送信装置が提供される。
 本発明の実施の形態によれば、送信装置から第1のデータを受信する受信手段と、
 受信した前記第1のデータを第2のデータとして前記送信装置へ返送することで、前記送信装置に前記第2のデータと前記第1のデータとを比較させる送信手段と、
 を有する受信装置が提供される。
 本発明の実施の形態によれば、送信装置と受信装置による通信方法であって、
 前記送信装置による、
 第1のデータを前記受信装置へ送信するステップと、
 前記受信装置が返送した第2のデータを受信するステップと、
 前記第2のデータと前記第1のデータとを比較するステップと、
 前記比較するステップの結果が一致しなかった場合は前記第1のデータを再送するステップと、
 を有することを特徴とする通信方法が提供される。
 本発明の実施の形態によれば、第1の通信装置と第2の通信装置を有する通信システムであって、
 前記第1の通信装置が、第1のデータを前記第2の通信装置に送信し
 前記第2の通信装置が、前記第1の通信装置から受信した前記第1のデータに第2のデータを重畳した第3のデータを前記第1の通信装置に送信し、
 前記第1の通信装置が、前記第1の通信装置が保持する前記第1のデータを用いて、前記第2の通信装置から受信した前記第3のデータから前記第2のデータを取得する通信システムが提供される。
 本発明の実施の形態によれば、第1の通信装置と第2の通信装置を有する通信システムにおけるデータ通信方法であって、
 前記第1の通信装置が、第1のデータを前記第2の通信装置に送信するステップと、
 前記第2の通信装置が、前記第1の通信装置から受信した前記第1のデータに第2のデータを重畳した第3のデータを前記第1の通信装置に送信するステップと、
 前記第1の通信装置が、前記第1の通信装置が保持する前記第1のデータを用いて、前記第2の通信装置から受信した前記第3のデータから前記第2のデータを取得するステップとを備えるデータ通信方法が提供される。
 本発明の実施の形態によれば、通信相手となる相手通信装置と通信を行う通信装置であって、
 第1のデータを前記相手通信装置に送信し、当該相手通信装置から、前記第1のデータに第2のデータを重畳した第3のデータを受信する手段と、
 前記相手通信装置に送信した前記第1のデータを保持する格納手段と、
 前記格納手段に保持される前記第1のデータを用いて、前記相手通信装置から受信した前記第3のデータから前記第2のデータを取得するデータ取得手段とを備える通信装置が提供される。
 本発明の実施の形態によれば、データを高信頼で転送することができる。また、本発明の実施の形態によれば、データを高速で転送することが可能となる。
第1の実施の形態における通信システムがパケットを送受信する様子を説明するための模式図である。 第1の実施の形態における通信システムの構成を示す機能ブロック図である。 送信装置1がパケットを送信する処理の流れを示すフローチャートである。 受信装置がパケットを受信する処理の流れを示すフローチャートである。 TCPを利用してパケットを送受信する様子を説明するための模式図である。 送信側から受信側への経路内を流れるパケットの様子を示した模式図である。 第2の実施の形態における通信システムの構成図である。 第2の実施の形態における通信システムの基本的な動作を説明するための図である。 第2の形態における通信システムの動作を詳細に説明するためのシーケンス図である。 第2の実施の形態における通信装置Aもしくは通信装置Bとして用いられる通信装置100の機能構成図である。
 以下、本発明の実施の形態として第1の実施の形態、及び第2の実施の形態を説明する。第1の実施の形態においては、データを高信頼に転送する基本的な技術を説明する。第2の実施の形態では、第1の実施の形態における基本的な技術を応用した技術を説明する。
 (第1の実施の形態)
 まず、第1の実施の形態について図面を用いて説明する。第1の実施の形態では、「データ」の例として「パケット」を主に用いる。
 図1は、本実施の形態における通信システムがパケットを送受信する様子を説明するための模式図である。
 本実施の形態における通信システムは、送信側の装置と受信側の装置が高品質かつ高速なネットワークを介して接続され、装置間でパケットを送受信する。
 本実施の形態における通信システムでは、送信側の装置がパケットを送信すると、受信側の装置は受信したパケットを折り返して送信する。送信側と受信側の装置間でコネクションの確立は行わずに、送信側の装置は通信の開始時から設定により定められたパケット数を順次送信する。設定により定められたパケット数とは、例えば輻輳が発生しない程度のパケット数であり、利用可能な帯域を上限としたり、予め通信相手と調整しておく。
 送信側の装置は、折り返して送信された折返しパケットを受信すると、送信したパケットと受信した折返しパケットを突合し、パケットが正しく送信されたことを確認する。なお、パケット同士を突合した結果、一致しない場合はそのパケットを再送する。また、タイムアウト時間内に折返しパケットを受信しない場合もパケットを再送する。
 現在では10ギガビット・イーサネットが普及している。10ギガビット・イーサネットのように全二重通信の場合、送信側から受信側へパケットを送出しながら、同時に、受信側から送信側へ折返しパケットを送出しても網に悪影響を与えることはない。なお、送信側の装置は受信側の装置からの折返しパケットの返送を待たずに次々とパケットを送信するので回線の使用率が向上する。
 次に、本実施の形態における通信システムの構成について説明する。
 図2は、本実施の形態における通信システムの構成を示す機能ブロック図である。図2に示すように、本実施の形態における通信システムは、送信装置1と受信装置2を備える。
 送信装置1は、入力部11、送信バッファ12、送信部13、受信部14、比較部15、および制御部16を備える。
 入力部11は、アプリケーションなどから送信するデータを入力し、データをパケットに分割して送信バッファ12に格納する。送信バッファ12は、パケットを一時的に保持する記憶領域である。図2では、パケットを丸印で示した。
 送信部13は、送信バッファ12からパケットを取り出し、送信元、送信先、および再送やフロー制御に用いる制御情報を備えたヘッダーをパケットに付与して受信装置2へ送信する。ヘッダーに記載する情報としては、例えばパケットの順番を示すシーケンス番号がある。パケットの到着する順番が入れ替わった場合は、受信装置2はシーケンス番号を用いてパケットの順番を入れ替える。
 受信部14は、受信装置2から折り返して送信された折返しパケットを受信して比較部15に送信する。
 比較部15は、折返しパケットと送信バッファ12に格納された送信済のパケットを比較する。比較の結果、一致した場合は比較したパケットを送信バッファ12から削除し、一致しなかった場合は、比較したパケットの再送を制御部16に指示する。折返しパケットに対応する送信済のパケットは、例えばパケットのヘッダーに記載したシーケンス番号を用いて特定することができる。
 制御部16は、パケットの再送やフロー制御などの通信制御を行う。
 受信装置2は、受信部21、送信部22、受信バッファ23、および出力部24を備える。
 受信部21は、送信装置1からパケットを受信し、受信したパケットを受信バッファ23に格納するとともに、受信したパケットを送信部22へ送信する。送信部22は、受信部21から受信したパケットを折返しパケットとして送信装置1へ送信する。受信バッファ23は、受信したパケットを一時的に保持する記憶領域である。
 出力部24は、受信バッファ23からパケットを取り出して送信装置1が送信したデータを再構築し、データをアプリケーションなどに渡す。
 なお、送信装置1および受信装置2が備える各部は、演算処理装置、記憶装置等を備えたコンピュータにより構成して、各部の処理がプログラムによって実行されるものとしてもよい。このプログラムは送信装置1および受信装置2が備える記憶装置に記憶されており、磁気ディスク、光ディスク、半導体メモリ等の記録媒体に記録することも、ネットワークを通して提供することも可能である。
 また、図2では、送信装置1と受信装置2はそれぞれ送信機能と受信機能のみを持つ装置として図示したが、送信装置1と受信装置2の双方が送受信機能を持ってもよい。また、本実施の形態における通信システムは、例えば、IPやUDPなどの既存のデータグラム通信上に実装することが可能である。
 次に、本実施の形態における通信システムの動作について説明する。
 まず、送信装置1がパケットを送信する処理について説明する。図3は、送信装置1がパケットを送信する処理の流れを示すフローチャートである。
 送信部13は送信バッファ12からパケットを取り出して受信装置2へ送信する(ステップS11)。続いて、受信部14が受信装置2から折返しパケットを受信したか否か判定する(ステップS12)。
 受信部14が折返しパケットを受信すると(ステップS12のYES)、受信部14は受信した折返しパケットを比較部15へ送信し、比較部15は折返しパケットと送信バッファ12が保持する送信したパケットを比較する(ステップS13)。
 比較部15による比較の結果、折返しパケットと送信したパケットが一致した場合(ステップS14のYES)、送信バッファ12から送信済のパケットを削除する(ステップS15)。
 一方、折返しパケットを受信していない場合(ステップS12のNO)、予め設定した非常に短いタイマーがタイムアウトしたか否か判定する(ステップS16)。本実施の形態における通信システムは、高速なネットワークを用いてパケットを送受信し、さらに受信装置2は受信したパケットをそのまま即座に折り返して返信するので、長いタイマーを設定する必要はない。そこで、本実施の形態では、送信装置1と受信装置2との間のネットワークの通信品質を考慮した非常に短いタイマーを設定する。
 タイムアウトしていない場合は(ステップS16のNO)、ステップS12に戻って折返しパケットの到着を待つ。
 タイムアウトした場合は(ステップS16のYES)、送信バッファ12からパケットを再び取得して再送する(ステップS17)。タイムアウト時は1回程度のリトライのみ実施し、リトライのタイムアウト時はバックオフして待機する。バックオフの処理は、CSMA/CDと同様の処理を行うことができる。さらにタイムアウトしたときは、他の通信方法(例えばTCP)を用いて受信装置2の状態を確認する。
 また、比較部15による比較の結果、折返しパケットと送信したパケットが一致していない場合も(ステップS14のNO)、パケットの再送処理を行う(ステップS17)。パケットの再送は、1パケット毎に行われる。
 続いて、受信装置2がパケットを受信する処理について説明する。図4は、受信装置2がパケットを受信する処理の流れを示すフローチャートである。
 受信部21がパケットを受信すると、受信したパケットを受信バッファ23に格納するとともに、受信したパケットを送信部22に渡す(ステップS21)。
 送信部22は、受信部21から受け取ったパケットをパケットの送信元である送信装置1へ送信する(ステップS22)。
 <比較例>
 次に、本実施の形態における通信システムの通信方式とTCPとを比較する。
 図5は、比較例のTCPを利用してパケットを送受信する様子を説明するための模式図である。
 TCPでは、まず3ウェイハンドシェイクにより送信側と受信側との間で接続を確立する。3ウェイハンドシェイクの後、送信側はパケットを送信する。受信側はパケットを受信するとACKを送信側に返信する。送信側はACKを受信してから次のパケットを送信する。したがって、図5に示すように、送信側はパケットを送信してからACKを受信するまで次のパケットを送信する送信待ち時間が発生してしまう。
 図6は、送信側から受信側への経路内を流れるパケットの様子を示した模式図である。図6(a)は、TCPを用いたときの経路内を流れるパケットの様子を示す図であり、図6(b)は、本実施の形態における通信システムを用いたときの経路内を流れるパケットの様子を示す図である。
 図6(a)に示すTCPを用いた例では、送信側は、パケット1を送信した後、受信側が送信するACKを受信するまではパケット2を送信しないので、パケット1の送信後からパケット2を送信するまでの間に送信待ち時間が存在する。
 図6(b)に示す本実施の形態における通信システムを用いた例では、送信側は、パケット1を送信した後、パケット1の折返しパケットを待つことなく、続くパケット2を送信するので、パケット1の送信後からパケット2を送信するまでの間に送信待ち時間が存在しない。
 図6(a)(b)を比較すると、送信側がパケット1を送信してからパケット3が受信されたことを確認するまで(図6(a)の場合はACKを受信するまで、図6(b)の場合はパケット3の折返しパケットを受信するまで)のトータル時間は、本実施の形態における通信システムの方が短くなっている。
 なお、TCPでは、ウィンドウ制御という方式を採用し、ウィンドウサイズ分の複数のパケットをACKを確認せずに送信して効率化を図っている。受信側は複数のパケットに対して1つのACKを送信する。送信側はACKを受け取った後、続く1ウィンドウサイズ分のパケットを送信する。ウィンドウ制御でも、1ウィンドウサイズ分のパケットを送信した後は、ACKを確認するまで送信待ち時間が発生してしまう。
 また、TCPでは、スライディングウィンドウという方式を採用し、受信側のウィンドウに空きが存在するときは、ACKを待たずにパケットを送信する。受信側のウィンドウの空きはACKによって通知されるので、スライディングウィンドウでもACKを確認するまで送信待ち時間が発生してしまう。
 続いて、信頼性について既存の通信プロトコルと比較する。
 データを高速に転送するプロトコルとしてUDPが存在するが、UDPは信頼性・順序性・データ完全性を保証しない。これに対し、本実施の形態では、送信装置1が送信済のパケットと受信装置2から返送された折返しパケットとを比較するので信頼性とデータ完全性が保証される。順序性については、送信するパケットの順序を示す情報をヘッダーなどに記載しておくことで対応できる。
 また、TCPのチェックサムは1の補数を用いた16ビットの値であるのに対し、本実施の形態における通信システムでは、送信装置1が送信したパケットと受信装置2が受信したパケットをそのまま比較するので、TCPに比べて本実施の形態における通信システムは非常に高い信頼性(完全性)を得ることができる。また、本実施の形態における通信システムでは、パケット同士が一致するか否かを比較するだけなので、処理の負荷も高くない。
 さらに、TCPでは、ACKのシーケンス番号やタイムアウトにより、受信側で正常に受信されたパケットを送信側が再送する無駄が生じることがある。これに対し、本実施の形態における通信システムでは、比較結果が一致しなかったパケットおよびタイムアウトしたパケットのみを再送するので、パケットの再送に無駄が生じることを抑制できる。
 <適用例>
 次に、本実施の形態における通信システムの適用例について説明する。
 第1の適用例として、秘密分散に適用した例について説明する。元データSから例えば3つのシェアSa,Sb,Scを作成し、各シェアSa,Sb,Scを別々に保存しておくことでセキュリティを高める秘密分散技術が知られている。さらに、各シェアSa,Sb,ScのうちのいずれかのシェアSaが消失した場合、残りのシェアSb,Scを用いて元データSを復元することなく消失したシェアSaを再生成する技術も存在する。
 例えば、3つのシェアSa,Sb,Scを別々の地域データセンタDCa,DCb,DCcに格納しておく。このときに、一つの地域データセンタDCaが地震などにより倒壊したときは、新たな地域データセンタDCxに消失したシェアSaを再生成する必要がある。この場合、地域データセンタDCb,DCcそれぞれからシェアSb,Scを新たな地域データセンタDCxに転送する必要があり、バースト通信が発生する状況に至る。各シェアSb,Scを新たな地域データセンタDCxに転送する通信に本実施の形態における通信システムを用いることで、消失したシェアSaを可及的速やかに再生成することができる。TCPを用いてシェアSb,Scを転送することも可能であるが、回線使用率の高い本通信システムを用いることで、物理回線の速度を上げたり、回線数を増やす必要がない。
 第2の適用例として、地理的に離れた拠点間(例えば日本-米国間など)におけるファイル転送に適用した例について説明する。近年、世界の各地に開発拠点が配置されることが多い。また、取り扱うデータの量も膨大なものとなっている。地理的に離れた拠点間で膨大な量のデータを転送するときに本実施の形態における通信システムを用いることで、より確実に高速にデータを転送することが可能となる。また、拠点間を専用線で結ばなくても、本実施の形態における通信システムを用いることでコストの削減を図ることもできる。例えば利用可能な帯域が保証された十分に管理されたネットワークであればより効果が高いが、これに限るものではない。
 以上説明したように、本実施の形態によれば、送信装置1が送信したパケットを受信装置2が折返しパケットとして送信装置1へ返送し、送信装置1が送信したパケットと折返しパケットとを比較することで、送信したパケットが受信装置2に確実に到着したことを担保できる。また、送信装置1は受信装置2からの応答を待たずにパケットを送信し続けることで、回線使用率の向上を図ることができる。
 本実施の形態によれば、TCPのようにコネクション確立当初にスロースタートせず、送信装置1が通信の開始時から設定により定められたパケット数を送信することで、回線使用率の向上を図ることができる。
 本実施の形態によれば、折返しパケットとの比較結果が不一致の場合あるいはタイムアウトした場合は該当するパケットについてのみパケットを再送することで、受信装置2が受信したパケットを再送する無駄を生じることがない。
 本実施の形態によれば、IPやUDPなどの既存のデータグラム通信を用いることで、コモディティ化されたハードウェアを利用することが可能となり、大幅なコストパフォーマンスの改善が期待できる。
 <第1の実施の形態のまとめ>
 第1の実施の形態により、送信装置と受信装置を備えた通信システムであって、前記送信装置は、送信する第1のパケットを保持するバッファと、前記第1のパケットを前記受信装置へ送信する送信手段と、前記受信装置が返送した第2のパケットを受信する受信手段と、前記第2のパケットと前記バッファが保持する前記第1のパケットとを比較する比較手段と、前記比較手段の比較の結果が一致しなかった場合は前記第1のパケットの再送を前記送信手段に指示する制御手段と、を有する通信システムが提供される。
 前記通信システムにおいて、前記送信装置は、前記第2のパケットの返送を待たずに次の前記第1のパケットを送信することとしてもよい。
 前記通信システムにおいて、前記第2のパケットの返送を待たずに送信する前記第1のパケットの数は例えば設定により定められる。
 前記通信システムにおいて、前記制御手段は、前記比較手段の比較の結果が一致した場合は前記バッファから前記第一のパケットを削除する。
 前記通信システムにおいて、前記制御手段は、所定時間内に前記第2のパケットを受信せずにタイムアウトした場合は前記第1のパケットの再送を前記送信手段に指示することとしてもよい。
 前記通信システムにおいて、タイムアウトにより第1のパケットを再送したときに当該第1のパケットについてもタイムアウトした場合はバックオフして待機し、さらにタイムアウトしたときは他の通信方法により前記受信装置の状態を確認することとしてもよい。
 前記通信システムにおいて、前記第1のパケットと前記第2のパケットは例えばデータグラム通信を用いて転送される。
 また、本実施の形態により、送信する第1のパケットを保持するバッファと、前記第1のパケットを受信装置へ送信する送信手段と、前記受信装置が返送した第2のパケットを受信する受信手段と、前記第2のパケットと前記バッファが保持する前記第1のパケットとを比較する比較手段と、前記比較手段の比較の結果が一致しなかった場合は前記第1のパケットの再送を前記送信手段に指示する制御手段と、を有する送信装置が提供される。
 また、本実施の形態により、送信装置から第1のパケットを受信する受信手段と、受信した前記第1のパケットを第2のパケットとして前記送信装置へ返送する送信手段と、を有する受信装置が提供される。
 また、本実施の形態により、送信装置と受信装置による通信方法であって、前記送信装置による、第1のパケットを前記受信装置へ送信するステップと、前記受信装置が返送した第2のパケットを受信するステップと、前記第2のパケットと前記第1のパケットとを比較するステップと、前記比較するステップの結果が一致しなかった場合は前記第1のパケットを再送するステップと、を有する通信方法が提供される。
 (第2の実施の形態)
 以下、図面を参照して本発明の第2の実施の形態を説明する。なお、本実施の形態では、以下で説明するように、2つのデータを重畳する方法として排他的論理和を使用しているが、2つのデータを重畳する方法は排他的論理和に限られるわけではない。また、「データ」は、「パケット」、「フレーム」、「セル」等を包含する意味を有する。
 <システム構成>
 図7に、本実施の形態に係る通信システムの構成図を示す。図7に示すように、本実施の形態に係る通信システムは、通信装置Aと通信装置Bとが通信回線Cにより接続された構成を有する。
 通信装置A、Bは、それぞれ、通信回線Cを介してデータを送受信する機能を含む装置であり、例えば、ストレージサービス等のサービスに係るサーバである。ただし、通信装置A、Bは、サーバ等の特定の種類の装置に限定されない。例えば、通信装置A、Bのいずれか又は両方がユーザ端末であってもよいし、また、通信装置A、Bのいずれか又は両方が、データの中継を行うルータ、スイッチ等であってもよい。
 通信回線Cは、通信装置Aから通信装置Bへの通信と、通信装置Bから通信装置Aへの通信を同時に行うことが可能な双方向通信回線である。通信回線Cは、通信装置Aから通信装置Bへの通信帯域、及び通信装置Bから通信装置Aへの通信帯域を持つ回線であれば、どのような回線でもよい。例えば、通信回線Cが、1本の回線として識別される回線であってもよいし、各方向で1本ずつの回線から構成される2本の回線であってもよい。また、当該回線は、伝送路、パス、通信路等と呼んでもよい。また、通信回線Cは、光ファイバーや電気ケーブル等の物理的な回線であってもよいし、多数の装置からなるインターネット等のネットワーク内に形成された論理的な回線(例:VPN)であってもよいし、これらを組み合わせたものであってもよい。
 <システムの動作概要>
 次に、図8を参照して、本実施の形態に係る通信システムの動作の概要を説明する。図8(a)、(b)において、通信装置Aから通信が開始されているが、これは説明の便宜上のためである。
 TCP/IP等の通信プロトコルでは、信頼性が十分でないという問題等を解消するために、第1の実施の形態では、受信側が、送信側から受信したデータをそのまま送信側に送信し(折り返し)、送信側が、当該データ(折り返しデータ)が、送信したデータと一致するかどうかを検証することで、送信したデータが確実に受信側に届いたか否かを確認している。
 図8(a)は、このような通信の手順例を示す。図8(a)に示すように、まず、通信装置Aが通信装置BにデータAを送信する(ステップS1)。
 通信装置Aにおいて、データAが確実に通信装置Bに届いたことを確認するために、通信装置Bは、通信装置Aから受信したデータA(通信装置Bで誤りなく受信できたとする)を通信装置Aに送信する(ステップS2)。
 また、データAを折り返すタイミングで、通信装置Bには、通信装置Aに送るべきデータBがあり、当該データBも通信装置Aに送信する(ステップS2)。このような通信を行うケースにおいて、通信装置Bから通信装置Aには、データAとデータBを送信することになり、データA(折り返しデータ)とデータBを送信することを想定した十分な帯域がない場合、データA+データBの送信のために時間がかかり、遅延が生じることになる。
 図8(b)は、本実施の形態に係る通信の概要を示している。まず、上記と同様に通信装置Aが通信装置BにデータAを送信する(ステップS30)。データAを受信した通信装置Bは、データAを通信装置Aに折り返すとともに、データBを信装置Aに送信することになるが、ここでは、これらをそのまま送るのではなく、データAとデータBとの排他的論理和(XOR)をとったデータ(データABと記述)を送ることとしている(ステップS31)。例えば、データAとデータBのデータサイズがそれぞれ10であるとした場合、排他的論理和(XOR)をとった後のデータABのデータサイズも10である。つまり、本実施の形態では、データB(あるいはデータA)のみを送る場合に比べて、データ量を増加させることなく、データAとデータBを送ることを可能としている。
 データABを受信した通信装置Aは、ステップS30にて送信し、保持しているデータAと、受信したデータABとの排他的倫理和を算出し、その結果であるデータB´を取得する(ステップS32)。データAB、データAともに誤りなく送受信されている場合、データABとデータAとの排他的倫理和はデータBであることから、ステップS32の結果をデータB´と記述している。
 通信装置Aは、ステップS32での結果であるデータB´と、受信したデータABとの排他的論理和を算出し、その結果であるデータA´を取得する。データAB、データAともに誤りなく送受信されている場合、データABとデータB´(データB)との排他的倫理和はデータAであることから、ステップS33の結果をデータA´と記述している。
 更に、ステップS33では、保持しているデータAと、算出されたデータA´とを比較して、これらが一致しているか否かをチェックし、一致している場合、データAB、データAともに誤りなく送受信されているものと推定し、データB´をデータB(通信装置Bが送信したデータB)であるとして用いることができる。また、ここで、データA´=データAであるから、通信装置BはデータAを正しく受信したと判断(推定)することができる。なお、これは例であり、後述するように、より多段のチェックを行うこととしてもよい。
 <動作の詳細例>
 次に、本実施の形態における通信システムの動作例をより詳細に説明する。以下では、送受信するデータの例として「パケット」を用いる。また、通信装置Aから通信装置Bに送信するパケットをA、通信装置Bから通信装置Aに送信するパケットをB、排他的論理和演算を行って送信するパケットをPktの記号で示す。また、明細書においては、排他的論理和演算を示す記号として、*を使用している。更に、パケットの順序を示す識別子としてi(iは自然数)を用い、通信エラー等の可能性により正しいかどうか不明であるデータについては´(ダッシュ)を付している。
 本例においては、例えばセッション層にてセッション管理を行い、通信装置Aから通信を開始するものとする。
 通信装置Aにおいて、送出するパケットAと、通信装置Bから直前に受信したパケットB(i-1)との排他的論理和を、通信装置Bへ送信するパケットPktとする。なお、セッションの開始時、つまり、通信装置AにパケットB(i-1)か存在しない場合、B(i-1)=0とする。
 一方、通信装置Bは、パケットPkt´を受信後、当該パケットPkt´とパケットB(i-1)との排他的論理和演算を行って、Pkt´*B(i-1)=A´を求める。この時点で、通信エラーが生じていない仮定においては、A´=Aが成立するが、この時点では、この仮定が正しいかどうかわからない。なお、この例では、iが1であることを想定しており、B(i-1)=B=0である。つまり、セッション開始時においては、通信装置Aと通信装置B間の取決め事項として、既に通信装置Bから値が0のデータが誤りなく通信装置Aに送信されているものと仮定している。
 通信装置Bにおいて、A´を導出後、これとPkt´との排他的論理和をとり、B(i-1)´=Pkt´*A´を得る。ここでは、上記の仮定が正しいかどうか不明であるため、この演算の結果は、B(i-1)ではなく、B(i-1)´としている。ただし、ここでは、B(i-1)=0であり、これは通信と無関係に決定されており、通信エラーに依存せずに正しい。従って、B(i-1)´とB(i-1)を比較して、これらが等しければ、B(i-1)´->B(i-1)(B(i-1)´がB(i-1)であること)が決定的に検証される。
 よって、Pkt´から上記の方法により導出したB(i-1)´が正しければ、A´->A(i)を仮定する(推定する)。これを確定するために、通信装置Bは、パケットAと仮定されたパケットA´を通信装置Aに送信する折り返し動作を行う。つまり、通信装置Bから送出すべきデータBとA´との排他的論理和であるPkt(i+1)=A´*Bを通信装置Aに送信する。
 Pkt(i+1)=A´*Bを受信した通信装置Aは、B´=Pkt(i+1)´*A、A´=Pkt(i+1)´*B´を算出し、算出したA´と、保持しているAが一致していることを確認することで、通信装置BにおけるAの到達確認を行うとともに、B´->Bを仮定して、通信装置Bへの折り返し動作を行う。ここで、もしも算出したA´と、保持しているAが一致しない場合、Aが正しく通信装置Bに到達しなかったと推定できるので、再送によるリカバリを行う。つまり、Pktの再送を行う。
 次に、図9を参照して、上記の内容を含む通信装置Aと通信装置B間の動作シーケンス例を説明する。この例では、通信装置Aと通信装置Bとの間で同時双方向通信を行う。また、セッションを通信装置Aから開始し、通信装置Aがセッションを終了させる。また、双方の通信装置A、Bは、同一長のデータ(パケット)を通信する。なお、双方の送りたいデータ長が異なる場合は、0パディング等でデータ長を揃えることとしてもよい。
 また、通信装置Aが通信を開始する際に、パケットAに排他的論理和演算にて重畳するパケットBは0であるとする。これが0であることは、通信装置Aと通信装置Bにて既知である。以下の説明では、記述を簡潔にする観点から、パケットPktをPktと記述する等、適宜、パケットを記号のみで示している。また、図9及び本明細書中の"X==Y"は、XとYが一致するか比較することを意味する。
 図9は、通信開始から既に複数回のパケット送受信が行われ、通信装置Aが、パケットAを送信するところからを示す図である。
 通信装置Aが、Pkt=B(i-1)´*Aを通信装置Bに送信する(ステップS101)。B(i-1)´は通信装置AにおいてB(i-1)であると推定されたパケットであり、通信装置Bへの折り返しデータである。
 通信装置Aから送信されたPktは、通信エラーが発生している可能性のあるパケットであるPkt´として通信装置Bに届く。Pkt´を受信した通信装置Bは、ステップS102において、A´=Pkt´*B(i-1)、B(i-1)´=Pkt´*A´の演算を行って、A´とB(i-1)´を取得する。ここで、A´=Pkt´*B(i-1)の演算においては、Pkt´に含まれるB(i-1)´がNon-Error(エラーがない)であることを仮定している。
 通信装置Bは、B(i-1)´と、通信装置Bが保持しているB(i-1)との比較を行い、B(i-1)´がNon-Errorであることの検証を行う。これらが一致した場合に、(i-1)番のパケットで通信装置Aに送信したB(i-1)が正しく通信装置Aに到達したことを推定でき、送達確認を行うことができる。また、B(i-1)´とB(i-1)が一致した場合には、A´をAであると推定する(A´->A)。この時点で、通信装置Bにおいて、A´はその完全性が不明であるが、具体的な処理としては、この時点で、A´をAであると見なし、A´をAとして扱う処理を行うこととしてもよい。なお、B(i-1)´とB(i-1)が一致し、連続して、B´とBが一致した場合に、A´をAであると見なし、ここで、Aを用いる処理を行うこととしてもよい。
 B(i-1)´とB(i-1)が一致しなかった場合には、例えば、通信装置Aに対してB(i-1)を含むPktを再送する。
 次に、通信装置Bは、Pkt(i+1)=A´*Bを通信装置Aに送信する(ステップS103)。A´は、Aに対する折り返しデータである。
 通信装置Bから送信されたPkt(i+1)は、通信エラーが発生している可能性のあるパケットであるPkt(i+1)´として通信装置Aに届く。Pkt(i+1)´を受信した通信装置Aは、ステップS104において、B´=Pkt(i+1)´*A、A´=Pkt(i+1)´*B´の演算を行って、B´とA´を取得する。また、通信装置Aは、A´と、通信装置Aが保持しているAとの比較を行い、一致した場合に、i番のパケットで通信装置Bに送信したAが正しく通信装置Bに到達したことを推定でき、送達確認を行うことができる。また、A´とAが一致した場合には、B´をBであると推定する(B´->B)。この時点で、通信装置Aにおいて、B´はその完全性が不明であるが、具体的な処理としては、この時点で、B´をBであると見なし、B´をBとして扱う処理を行うこととしてもよい。
 A´とAが一致しなかった場合には、例えば、通信装置Bに対してPktを再送する。つまり、ステップS101に戻る。
 次に、通信装置Aは、Pkt(i+2)=B´*A(i+1)を通信装置Bに送信する(ステップS105)。
 通信装置Aから送信されたPkt(i+2)は、通信エラーが発生している可能性のあるパケットであるPkt(i+2)´として通信装置Bに届く。Pkt(i+2)´を受信した通信装置Bは、ステップS106において、A(i+1)´=Pkt(i+2)´*B、B´=Pkt(i+2)´*A(i+1)´の演算を行って、A(i+1)´とB´を取得する。また、通信装置Bは、B´と、通信装置Bが保持しているBとの比較を行い、一致した場合に、(i+1)番のパケットで通信装置Aに送信したBが正しく通信装置Aに到達したことを推定でき、送達確認を行うことができる。また、B´とBが一致した場合には、A(i+1)´をA(i+1)であると推定する(A(i+1)´->A(i+1))。この時点で、通信装置Bにおいて、A(i+1)´はその完全性が不明であるが、具体的な処理としては、この時点で、A(i+1)´をA(i+1)であると見なし、A(i+1)´をA(i+1)として扱う処理を行うこととしてもよい。
 B´とBが一致しなかった場合には、例えば、通信装置Aに対してPkt(i+1)を送信する。つまり、ステップS103に戻る。ここで、ステップS103に戻った後のステップS104の処理において、仮に、A´とAが一致しなかった場合には、ステップS101に戻ることになる。
 ステップS101の開始時点から、上記ステップS106におけるB´とBの一致が確認された時点で、通信装置Aと通信装置Bとの間で同時双方向通信により、AとBの転送が完了している。ここで、通信装置AにおいてBが、通信装置BにおいてAがそれぞれ確定したものとしてもよい。
 図9に示すように、ステップS107以降も同様の動作により、パケットの送受信が実施される。
 図9の例では、通信装置AがステップS113においてセッションを終了させるために値が0のデータ(図9の例では、A(i+3))を送ることとする。これは、セッションを開始する場合、通信装置Aにおいて、直前に届いている受信データ(B)を0と仮定した場合と同様である。換言すると、最終データが相手に、確実に届いた前提を設ける。つまり、送受信側において事前に取り決めておく。通信装置Bにおいて、通信装置Aから最後のデータが0と判明していた場合、一つ前の通信装置Bの送信データと通信装置Aからのその折り返しパケットの一致、および通信装置Aからの最終パケットから導出した、通信装置Aからの最後のデータと思われる値が0か否かを確認すれば十分である。
 なお、パケットの順序性について、相手側装置から受信したPktに対して、直前に相手側装置に送信したPkt(i-1)と直後に相手側装置に送信するPkt(i+1)に保証が必要となる。順序性については、例えば、パケットに付される番号等により識別すればよい。
 <実装例における並列性について>
 本実施の形態における通信装置A、Bとしては、IA-Server等が利用される(NFV等)ことが実装例として想定される。OSとしては、Linux(登録商標)等が使用されることが想定される。通信ソフトウェアは、BSD Socketにより抽象化された全二重仮想回線(Virtual circuit)を使用する。UDPを適用した場合、ポート番号が活用可能であり、ポート単位に並列性を確保する方法が有効である。具体的に、1つのポートを1つのスレッドで処理し、マルチスレッドをマルチポートで実行することにより、並列性が担保される。また、マルチコアへもマルチスレッドで対応も可能である。
 上述した順序性に関しては、1つのスレッド内において確保するのみであり、順序性の確保が並列度の向上を妨げない。BSD Socketにおいて、ポートは、DestinationとSourceに、それぞれ16ビットが割当てられる。また、IP Addressとも対となるため、識別子の制限に関する問題が生じない。
 なお、上記の実装例は一例に過ぎず、本発明に係る技術は、上記の実装例と異なる様々な方式で実装することができる。
  <検証例>
 以下では、図9を参照して説明した通信のアルゴリズムにおけるif文の判定に関するいくつかの検証例を示す。
 <検証例1>
 図9のステップS101の処理がi=1から開始されるものとした場合に、B=000、A=100とするとPkt=100である。ここで、Pkt=100の先頭ビットに通信エラーが生じ、Pkt´=000を通信装置Bが受信したとする。この場合、通信装置Bは、A´=Pkt´*B=000*000=000と、B´=Pkt´*A´=000*000=000を算出する。すなわち、通信エラーが生じているが、B´=Bとなったので、A´がAであるとする誤った推定を行うが、通信装置Bは折り返しデータを通信装置Aに送信するため、折り返しデータが有効に機能して、通信装置Aにおいて誤りが検出される。
 <検証例2>
 図9のステップS101でPkt´を受信した通信装置Bにおいて、仮にAがErrorかつBがNon-Errorであるとする場合、Pkt´=B(i-1) Non-Error*A Errorだから、A´=Pkt´*B(i-1)=(B(i-1) Non-Error*A Error)*B(i-1)=A Error-1(=A Error)、B(i-1)´=Pkt´*A´=(B(i-1) Non-Error*A Error)*A Error-1=(B(i-1) Non-Error*A Error)*(B(i-1) Non-Error*A Error)*B(i-1)=B(i-1)となる。
 if文のB(i-1)´==B(i-1)が成立するから、A´(=A Error-1(=A Error))が折り返しデータとして用いられるが、通信装置Aにおけるif(A´==A)が成立しないため、Pktの再送が実施される。このケースでは、B(i-1)がNon-Errorであり、この点で再送は無駄であるが、パケット双方を重畳しているため、実質的な無駄はない。
 <検証例3>
 図9のステップS101でPkt´を受信した通信装置Bにおいて、仮にAがNon-ErrorかつBがErrorであるとする場合、Pkt´=B(i-1) Error*A Non-Errorだから、A´=Pkt´*B(i-1)=(B(i-1) Error*A Non-Error)*B(i-1)=A Error-2、B(i-1)´=Pkt´*A´=(B(i-1) Error*A Non-Error)*A Error-2=(B(i-1) Error*A Non-Error)*(B(i-1) Error*A Non-Error)*B(i-1)=B(i-1)となる。
 つまり、B(i-1)´=B(i-1) Errorであり、B(i-1)´とB(i-1)は実際には一致しないが、if文のB(i-1)´==B(i-1)が成立するから、A´(=A Error-2)*Bが通信装置Aに送信され、通信装置からPkt(B(i-1)含む)の再送が実施される。このケースでは、AがNon-Errorであり、この点で再送が無駄であるが、パケット双方を重畳しているため、実質的な無駄はない。
  <検証例4>
 図9のステップS101でPkt´を受信した通信装置Bにおいて、仮にAがErrorかつBがErrorであるとする場合、Pkt´=B(i-1) Error*A Errorだから、A´=Pkt´*B(i-1)=(B(i-1) Error*A Error)*B(i-1)=A Error-3、B(i-1)´=Pkt´*A´=(B(i-1) Error*A Error)*A Error-3=(B(i-1) Error*A Error)*(B(i-1) Error*AError)*B(i-1)=B(i-1)となる。
 つまり、B(i-1)´=B(i-1) Errorであり、B(i-1)´とB(i-1)は実際には一致しないが、if文のB(i-1)´=B(i-1)が成立するから、A´(=A Error-3)*Bが通信装置Aに送信され、通信装置AからPkt(B(i-1)含む)の再送が実施される。このケースでは、B(i-1)とAがErrorであり、再送は無駄にあたらない。
  <通信装置Bにおいて、B(i-1)の到達が確定するタイミング>
 上記のように、B(i-1)´==B(i-1)が成立しても、エラーがある場合には、再送となるから、B(i-1)´==B(i-1)が成立しただけではB(i-1)の到達を確定はできない。このような観点から、通信装置B向けの折り返しパケットのB(i-1)´==B(i-1)とB´==Bが連続的に成立した場合に、通信装置AにB(i-1)が到着済と判断することができる(パケットAについても同様である)。換言すると、Pktで通信装置Bに届いたAが、正常に折り返され、通信装置AがAの折り返しデータを確認した後に、A(i+1)を送信する順序性を保つ必要がある。ただし、伝送路Errorが連続しない仮定を設ける。この方式は、通信品質が高い伝送路を想定したプロトコルであるため、実用上の問題がない。
 上述した例の場合、通信装置Aから通信装置Bに送信されたPktと、通信装置Bから通信装置Aに送信されたPkt(i+1)、及び通信装置Aから通信装置Bに送信されたPkt(i+2)の3つのパケットが連続して伝送Errorが生じた場合にのみ転送データの完全性が失われる。
 なお、連続した2つのパケットがError、かつ、if文の誤り(実際に一致でないのに一致と判断)が連続した場合、再送信不可能になる。これを回避するためには、Non-Errorのパケットが連続する回数を増やす必要があり、送信バッファの利用効率低下が生じる。つまり、当該利用効率がペナルティーコストとなる。無論、上述した"無駄"も生じるが、伝送路Errorが要因であるため、必要不可欠なトラフィックと考えることができる。
 <単方向通信との親和性>
 双方向通信においては、送信対象データと折り返しデータの排他的論理和をとった値を送信データとしている。単方向通信においては、相手側からのデータが不要であり、これを0と定めておけば、排他的論理和を施したとしても、送信対象データと送信データが一致する。換言すると、相手側からの送信データが、常に0と事前に取り決めておくことで、双方向通信と単方向通信の親和性が確保できる。すなわち、本実施の形態で説明した方式は、双方向通信と単方向通信についてアルゴリズムを変更することなく同様に適用可能である。
 なお、単方向通信の場合、相手からの折り返しデータを一回確認するのみで十分だが、若干の送信バッファ利用効率が低下するも、双方向通信に備えて、次の折り返しデータも確認することとしてもよい。
 なお、第2の実施の形態で説明した通信装置A、Bのいずれも、第1の実施の形態における送信装置1のように、データを送信した後に折り返しデータを受信し、送信したデータと折り返しデータとを比較し、これらが一致すれば送信データが受信側に正常に届いたと判定し、一致しなければ再送を行うことから、通信装置A、Bのいずれも送信装置1と読み替えることが可能である。また、第2の実施の形態で説明した通信装置A、Bのいずれも、第1の実施の形態における受信装置2のように、データを受信し、当該データを送信側に折り返しデータとして送信することから、通信装置A、Bのいずれも受信装置2と読み替えることも可能である。
 <装置構成>
 図10に、本実施の形態における通信装置Aもしくは通信装置Bとして用いられる通信装置100の構成図を示す。図10に示すように、通信装置100は、データ送受信部101、送信データ作成部102、データ抽出部103、データ検証部104、データ格納部105、データ処理部106を含む。
 データ送受信部101は、通信回線を介してパケット等の送受信を行う。また、データ送受信部101は、送信バッファ、受信バッファを有する。データ処理部106は、送信すべきデータの生成や、受信したデータの利用等を行う機能部であり、例えば、上位レイヤ通信機能や所定のサービスを提供するアプリケーション等に相当するものである。
 送信データ作成部102は、データ処理部106により生成された相手側に送るべきデータをデータ処理部106から受け取るとともに、相手側に折り返すべきデータをデータ検証部104から受け取り、これらのデータの排他的論理和を計算することにより相手側に送信するデータを作成する。
 データ抽出部103は、相手側から受信したデータと、データ格納部105に格納されている既に送信したデータとに基づき、排他的論理和演算を行うことで、前述したA´、B´のデータを抽出する。一例として、通信装置100が通信装置Aとして使用される場合の図9でのステップS104において、データ抽出部103は、B´=Pkt(i+1)´*A、A´=Pkt(i+1)´*B´の演算を行う。この例で、Aはデータ格納部105に格納されているデータである。
 データ検証部104は、上記の例において、A´がAと一致するかどうかのチェックを行う。一致する場合は、Aの送達確認がとれたと判断するとともに、B´をBと見なしてデータ処理部106に渡す。もしくは、よりチェックを厳密に行うために、A´がAと一致した後、次にA(i+1)´がA(i+1)と一致したときに、Aの送達確認がとれたと判断するとともに、B´をBと見なしてデータ処理部106に渡すこととしてもよい。なお、このように多段のチェックを行う際に保持しておくデータについてもデータ格納部105に保持しておくこととしてよい。
 本実施の形態に係る通信装置100は、例えば、1つ又は複数のコンピュータに、本実施の形態で説明する処理内容を記述したプログラムを実行させることにより実現可能である。すなわち、通信装置100が有する機能は、当該コンピュータに内蔵されるCPUやメモリ、ハードディスクなどのハードウェア資源を用いて、通信装置100で実施される処理に対応するプログラムを実行することによって実現することが可能である。また、上記プログラムは、コンピュータが読み取り可能な記録媒体(可搬メモリ等)に記録して、保存したり、配布したりすることが可能である。また、上記プログラムをインターネットや電子メールなど、ネットワークを通して提供することも可能である。
  <第2の実施の形態のまとめ>
 以上説明したように、本実施の形態においては、第1の通信装置と第2の通信装置を有する通信システムであって、前記第1の通信装置が、第1のデータを前記第2の通信装置に送信し前記第2の通信装置が、前記第1の通信装置から受信した前記第1のデータに第2のデータを重畳した第3のデータを前記第1の通信装置に送信し、前記第1の通信装置が、前記第1の通信装置が保持する前記第1のデータを用いて、前記第2の通信装置から受信した前記第3のデータから前記第2のデータを取得する通信システムが提供される。
 前記第2の通信装置は、前記第1のデータと前記第2のデータとの排他的論理和を算出することにより前記第3のデータを取得し、前記第1の通信装置は、前記第1のデータと前記第3のデータとの排他的論理和を算出することにより前記第2のデータを取得するように構成してもよい。
 また、前記第1の通信装置は、前記第2の通信装置から受信した前記第3のデータと算出された前記第2のデータとの排他的論理和を算出することにより得られたデータと、前記第1の通信装置が保持する前記第1のデータが一致する場合に、算出された前記第2のデータは、前記第2の通信装置から送出された第2のデータであると推定することとしてもよい。
 また、例えば、前記第1の通信装置と前記第2の通信装置との通信の開始時に、既に前記第2の通信装置から値が0のデータが誤りなく前記第1の通信装置に送信されているものと仮定し、前記第1の通信装置と前記第2の通信装置との通信の終了時に、前記第1の通信装置は、値が0のデータと、直前に前記第2の通信装置から送信されたと推定されたデータとの排他的論理和により得られるデータを前記第2の通信装置に送信することとしてもよい。
 また、本実施の形態によれば、通信相手となる相手通信装置と通信を行う通信装置であって、第1のデータを前記相手通信装置に送信し、当該相手通信装置から、前記第1のデータに第2のデータを重畳した第3のデータを受信する手段と、前記相手通信装置に送信した前記第1のデータを保持する格納手段と、前記格納手段に保持される前記第1のデータを用いて、前記相手通信装置から受信した前記第3のデータから前記第2のデータを取得するデータ取得手段とを備える通信装置が提供される。
 例えば、前記相手通信装置において、前記第1のデータと前記第2のデータとの排他的論理和を算出することにより前記第3のデータが取得され、前記データ取得手段は、前記第1のデータと前記第3のデータとの排他的論理和を算出することにより前記第2のデータを取得する。
 前記データ取得手段は、前記相手通信装置から受信した前記第3のデータと算出された前記第2のデータとの排他的論理和を算出することにより得られたデータと、前記格納手段に保持される前記第1のデータが一致する場合に、前記算出された前記第2のデータは、前記第2の通信装置から送出された第2のデータであると推定するように構成してもよい。
 本実施の形態によれば、折り返しデータを用いることでデータの到達性、完全性を担保することができ、信頼性の高い通信が可能となる。また、TCPのようにACKやウィンドウサイズ等の仕組みを持たないため、通信開始時および通信再開時などから効率のよい通信が可能となる。さらに、折り返しデータと、本来のデータとを排他的論理和等を用いて重畳して送信することとしたので、折り返しデータを用いた信頼性の高い通信を、スループットに影響を与えることなく、効率良く実施することが可能となる。
 本発明は、上記の実施の形態に限定されることなく、特許請求の範囲内において、種々変更・応用が可能である。
 本国際特許出願は2014年4月4日に出願した日本国特許出願第2014-077876号、及び2014年7月24日に出願した日本国特許出願第2014-151146号に基づきその優先権を主張するものであり、日本国特許出願第2014-077876号及び日本国特許出願第2014-151146号の全内容を本願に援用する。
1 送信装置
11 入力部
12 送信バッファ
13 送信部
14 受信部
15 比較部
16 制御部
2 受信装置
21 受信部
22 送信部
23 受信バッファ
24 出力部
A 通信装置
B 通信装置
C 通信回線
100 通信装置
101 データ送受信部
102 送信データ作成部
103 データ抽出部
104 データ検証部
105 データ格納部
106 データ処理部

Claims (21)

  1.  送信装置と受信装置を備えた通信システムであって、
     前記送信装置は、
     送信する第1のデータを保持するバッファと、
     前記第1のデータを前記受信装置へ送信する送信手段と、
     前記受信装置が返送した第2のデータを受信する受信手段と、
     前記第2のデータと前記バッファが保持する前記第1のデータとを比較する比較手段と、
     前記比較手段の比較の結果が一致しなかった場合は前記第1のデータの再送を前記送信手段に指示する制御手段と、
     を有することを特徴とする通信システム。
  2.  前記送信装置は、前記第2のデータの返送を待たずに次の前記第1のデータを送信することを特徴とする請求項1に記載の通信システム。
  3.  前記第2のデータの返送を待たずに送信する前記第1のデータの数は設定により定められる
     ことを特徴とする請求項2に記載の通信システム。
  4.  前記制御手段は、前記比較手段の比較の結果が一致した場合は前記バッファから前記第一のデータを削除する
     ことを特徴とする請求項1ないし3のうちいずれか1項に記載の通信システム。
  5.  前記制御手段は、所定時間内に前記第2のデータを受信せずにタイムアウトした場合は前記第1のデータの再送を前記送信手段に指示する
     ことを特徴とする請求項1ないし4のいずれか1項に記載の通信システム。
  6.  タイムアウトにより第1のデータを再送したときに当該第1のデータについてもタイムアウトした場合はバックオフして待機し、さらにタイムアウトしたときは他の通信方法により前記受信装置の状態を確認する
     ことを特徴とする請求項5記載の通信システム。
  7.  前記第1のデータと前記第2のデータはデータグラム通信を用いて転送される
     ことを特徴とする請求項1ないし6のいずれか1項に記載の通信システム。
  8.  送信する第1のデータを保持するバッファと、
     前記第1のデータを受信装置へ送信する送信手段と、
     前記受信装置が返送した第2のデータを受信する受信手段と、
     前記第2のデータと前記バッファが保持する前記第1のデータとを比較する比較手段と、
     前記比較手段の比較の結果が一致しなかった場合は前記第1のデータの再送を前記送信手段に指示する制御手段と、
     を有することを特徴とする送信装置。
  9.  コンピュータを、請求項8に記載の送信装置として機能させるためのプログラム。
  10.  送信装置から第1のデータを受信する受信手段と、
     受信した前記第1のデータを第2のデータとして前記送信装置へ返送することで、前記送信装置に前記第2のデータと前記第1のデータとを比較させる送信手段と、
     を有することを特徴とする受信装置。
  11.  コンピュータを、請求項10に記載の受信装置として機能させるためのプログラム。
  12.  送信装置と受信装置による通信方法であって、
     前記送信装置による、
     第1のデータを前記受信装置へ送信するステップと、
     前記受信装置が返送した第2のデータを受信するステップと、
     前記第2のデータと前記第1のデータとを比較するステップと、
     前記比較するステップの結果が一致しなかった場合は前記第1のデータを再送する
    ステップと、
     を有することを特徴とする通信方法。
  13.  第1の通信装置と第2の通信装置を有する通信システムであって、
     前記第1の通信装置が、第1のデータを前記第2の通信装置に送信し、
     前記第2の通信装置が、前記第1の通信装置から受信した前記第1のデータに第2のデータを重畳した第3のデータを前記第1の通信装置に送信し、
     前記第1の通信装置が、前記第1の通信装置が保持する前記第1のデータを用いて、前記第2の通信装置から受信した前記第3のデータから前記第2のデータを取得する
     ことを特徴とする通信システム。
  14.  前記第2の通信装置は、前記第1のデータと前記第2のデータとの排他的論理和を算出することにより前記第3のデータを取得し、
     前記第1の通信装置は、前記第1のデータと前記第3のデータとの排他的論理和を算出することにより前記第2のデータを取得する
     ことを特徴とする請求項13に記載の通信システム。
  15.  前記第1の通信装置は、前記第2の通信装置から受信した前記第3のデータと算出された前記第2のデータとの排他的論理和を算出することにより得られたデータと、前記第1の通信装置が保持する前記第1のデータが一致する場合に、算出された前記第2のデータは、前記第2の通信装置から送出された第2のデータであると推定する
     ことを特徴とする請求項14に記載の通信システム。
  16.  前記第1の通信装置と前記第2の通信装置との通信の開始時に、既に前記第2の通信装置から値が0のデータが誤りなく前記第1の通信装置に送信されているものと仮定し、
     前記第1の通信装置と前記第2の通信装置との通信の終了時に、前記第1の通信装置は、値が0のデータと、直前に前記第2の通信装置から送信されたと推定されたデータとの排他的論理和により得られるデータを前記第2の通信装置に送信する
     ことを特徴とする請求項13ないし15のうちいずれか1項に記載の通信システム。
  17.  第1の通信装置と第2の通信装置を有する通信システムにおける通信方法であって、
     前記第1の通信装置が、第1のデータを前記第2の通信装置に送信するステップと、
     前記第2の通信装置が、前記第1の通信装置から受信した前記第1のデータに第2のデータを重畳した第3のデータを前記第1の通信装置に送信するステップと、
     前記第1の通信装置が、前記第1の通信装置が保持する前記第1のデータを用いて、前記第2の通信装置から受信した前記第3のデータから前記第2のデータを取得するステップと
     を備えることを特徴とする通信方法。
  18.  通信相手となる相手通信装置と通信を行う通信装置であって、
     第1のデータを前記相手通信装置に送信し、当該相手通信装置から、前記第1のデータに第2のデータを重畳した第3のデータを受信する手段と、
     前記相手通信装置に送信した前記第1のデータを保持する格納手段と、
     前記格納手段に保持される前記第1のデータを用いて、前記相手通信装置から受信した前記第3のデータから前記第2のデータを取得するデータ取得手段と
     を備えることを特徴とする通信装置。
  19.  前記相手通信装置において、前記第1のデータと前記第2のデータとの排他的論理和を算出することにより前記第3のデータが取得され、
     前記データ取得手段は、前記第1のデータと前記第3のデータとの排他的論理和を算出することにより前記第2のデータを取得する
     ことを特徴とする請求項18に記載の通信装置。
  20.  前記データ取得手段は、前記相手通信装置から受信した前記第3のデータと算出された前記第2のデータとの排他的論理和を算出することにより得られたデータと、前記格納手段に保持される前記第1のデータが一致する場合に、前記算出された前記第2のデータは、前記第2の通信装置から送出された第2のデータであると推定する
     ことを特徴とする請求項19に記載の通信装置。
  21.  コンピュータを、請求項18ないし20のうちいずれか1項に記載の通信装置として機能させるためのプログラム。
PCT/JP2015/060672 2014-04-04 2015-04-03 通信システム、送信装置、受信装置、通信装置、通信方法、及びプログラム WO2015152414A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP15773633.1A EP3128717B1 (en) 2014-04-04 2015-04-03 Communication system, transmission device, communication method, and program
US15/301,660 US10178440B2 (en) 2014-04-04 2015-04-03 Communication system, transmission apparatus, reception apparatus, communication apparatus, communication method, and program

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2014-077876 2014-04-04
JP2014077876A JP6268027B2 (ja) 2014-04-04 2014-04-04 通信システム、送信装置、及び通信方法
JP2014-151146 2014-07-24
JP2014151146A JP2016025641A (ja) 2014-07-24 2014-07-24 通信システム、通信装置、データ通信方法、及びプログラム

Publications (1)

Publication Number Publication Date
WO2015152414A1 true WO2015152414A1 (ja) 2015-10-08

Family

ID=54240721

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2015/060672 WO2015152414A1 (ja) 2014-04-04 2015-04-03 通信システム、送信装置、受信装置、通信装置、通信方法、及びプログラム

Country Status (3)

Country Link
US (1) US10178440B2 (ja)
EP (1) EP3128717B1 (ja)
WO (1) WO2015152414A1 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS64834A (en) * 1987-06-23 1989-01-05 Oki Electric Ind Co Ltd Full duplex communication system
JPH02266728A (ja) * 1989-04-07 1990-10-31 Fujitsu Ltd データ伝送誤り制御方式
WO2011048915A1 (ja) * 2009-10-23 2011-04-28 日本電信電話株式会社 アクセス制御システム、アクセス制御方法、中継局装置、端末局装置、送信側処理方法、受信側処理システム及び受信側処理方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5357525A (en) * 1991-04-02 1994-10-18 The Furukawa Electric Co., Ltd. Multiplex transmission system
US5974101A (en) * 1992-04-28 1999-10-26 Canon Kabushiki Kaisha Spread spectrum modulation communication apparatus for narrow band interference elimination
JP2925977B2 (ja) * 1994-09-30 1999-07-28 松下電器産業株式会社 通信装置
JPH10308932A (ja) 1997-03-05 1998-11-17 Nippon Telegr & Teleph Corp <Ntt> データ伝送方法およびデータ伝送装置
KR20000075358A (ko) * 1999-05-27 2000-12-15 윤종용 이동통신시스템에서 라디오링크프로토콜에 따른 가변길이의 데이터 송수신 장치 및 방법
JP2001175630A (ja) * 1999-12-14 2001-06-29 Fujitsu Ltd データ送信装置、データ受信装置、データ転送装置および方法
US7486634B2 (en) * 2001-08-28 2009-02-03 Sony Corporation Adaptive modulation based on signal quality
JP5016279B2 (ja) * 2006-09-06 2012-09-05 ソニー株式会社 データ通信システム、データ送信装置およびデータ送信方法
JP5256855B2 (ja) * 2008-05-30 2013-08-07 富士通株式会社 データ転送装置、データ転送方制御方法
US9461777B2 (en) * 2011-11-21 2016-10-04 Qualcomm Incorporated Hybrid networking system with seamless path switching of streams
US9391878B2 (en) 2012-01-25 2016-07-12 Cisco Technology, Inc. Reliable packet delivery with overlay network (RPDON)

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS64834A (en) * 1987-06-23 1989-01-05 Oki Electric Ind Co Ltd Full duplex communication system
JPH02266728A (ja) * 1989-04-07 1990-10-31 Fujitsu Ltd データ伝送誤り制御方式
WO2011048915A1 (ja) * 2009-10-23 2011-04-28 日本電信電話株式会社 アクセス制御システム、アクセス制御方法、中継局装置、端末局装置、送信側処理方法、受信側処理システム及び受信側処理方法

Also Published As

Publication number Publication date
US20170180816A1 (en) 2017-06-22
US10178440B2 (en) 2019-01-08
EP3128717A1 (en) 2017-02-08
EP3128717B1 (en) 2023-10-18
EP3128717A4 (en) 2018-03-07

Similar Documents

Publication Publication Date Title
US9577791B2 (en) Notification by network element of packet drops
CN104025525B (zh) 用于发送分组的方法和设备以及交换机装置
US9432251B2 (en) Enhanced acknowledgement and retransmission mechanism
US7385923B2 (en) Method, system and article for improved TCP performance during packet reordering
Kumar et al. Survey on transport layer protocols: TCP & UDP
BR112020015127A2 (pt) Método, aparelho, e sistema de transmissão de dados
US20120155458A1 (en) Repeated Lost Packet Retransmission in a TCP/IP Network
US20110141904A1 (en) Method and apparatus for transmitting packets of a two-way passenger data stream
CN109510690B (zh) 传输报文的方法、网络组件和计算机可读存储介质
US7480301B2 (en) Method, system and article for improved TCP performance during retransmission in response to selective acknowledgement
US11849493B2 (en) Modified methods and system of transmitting and receiving transmission control protocol segments over internet protocol packets
WO2016000138A1 (zh) 一种数据传输方法、终端和服务器
US20220407799A1 (en) Method and network device for multi-path communication
US20150055482A1 (en) TCP Extended Fast Recovery and Segment Timing
JP4229807B2 (ja) データ転送方法とtcpプロキシ装置およびそれを用いたネットワークシステム
WO2015152414A1 (ja) 通信システム、送信装置、受信装置、通信装置、通信方法、及びプログラム
JP6268027B2 (ja) 通信システム、送信装置、及び通信方法
JP4505575B2 (ja) 通信システム、ゲートウェイ送信装置、ゲートウェイ受信装置、送信方法、受信方法および情報記録媒体
Coudron Passive analysis for multipath TCP
JP2016025641A (ja) 通信システム、通信装置、データ通信方法、及びプログラム
Cai et al. Research on the effects of transport protocols on the application performance based on OPNET
Maxwell Multipath TCP, and New Packet Scheduling Method
Dakhane et al. UDP-Based Multi-Stream Communication Protocol
Sivaraman Lecture 2: Internet overview
Ghose Congestion Control and Packet Reordering for Multipath Tranmission Control Protocol

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

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 15301660

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

REEP Request for entry into the european phase

Ref document number: 2015773633

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 2015773633

Country of ref document: EP