WO2015064841A1 - 비연결 지향형 프로토콜을 이용한 데이터 통신 - Google Patents

비연결 지향형 프로토콜을 이용한 데이터 통신 Download PDF

Info

Publication number
WO2015064841A1
WO2015064841A1 PCT/KR2013/012348 KR2013012348W WO2015064841A1 WO 2015064841 A1 WO2015064841 A1 WO 2015064841A1 KR 2013012348 W KR2013012348 W KR 2013012348W WO 2015064841 A1 WO2015064841 A1 WO 2015064841A1
Authority
WO
WIPO (PCT)
Prior art keywords
data
packet
transmitter
lost
acknowledgment message
Prior art date
Application number
PCT/KR2013/012348
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 삼성에스디에스 주식회사
Publication of WO2015064841A1 publication Critical patent/WO2015064841A1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/55Prevention, detection or correction of errors
    • H04L49/552Prevention, detection or correction of errors by ensuring the integrity of packets received through redundant connections
    • 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

Definitions

  • Embodiments of the present invention relate to data communication, and more particularly, to performing data communication using a connectionless-oriented protocol.
  • Computer networks enable communication between multiple computers.
  • computer networks include local area networks (LANs), wide area networks (WANs), the Internet, wireless networks, hybrid device networks, and the like.
  • LANs local area networks
  • WANs wide area networks
  • the Internet wireless networks
  • wireless networks wireless networks
  • hybrid device networks and the like.
  • data may be transmitted in the form of one or more packets.
  • the original transmitted data is reconstructed from all received packets.
  • the sequence number of the packets is important for the reconstruction of the data.
  • TCP Transmission Control Protocol
  • TCP is used to reliably send data in the form of packets between computers on the Internet.
  • TCP is a protocol that can be used at the transport layer.
  • TCP is a connection-oriented protocol that enables the establishment and maintenance of a connection for the time that messages between computers transmitting and receiving data are exchanged by an application on each computer.
  • UDP User Datagram Protocol
  • TCP Transmission Control Protocol
  • UDP allows communication by transmitting data from a data transmitter to a data receiver, but does not involve a procedure of pre-sending a signal indicating that data is transmitted from the data transmitter or a procedure of confirming a state of the data receiver. This UDP itself does not provide a mechanism for the data transmitter to check whether the data receiver has normally received data, so UDP does not guarantee reliable transmission compared to TCP.
  • UDP which does not need to establish and release a connection for data transmission, is suitable for more efficient and simple data transmission, for example, enabling faster data transmission than TCP in a wireless network environment.
  • the retransmission mechanism can be used to improve reliability in such UDP based data transmission.
  • Examples of such retransmission mechanisms include Automatic Repeat reQuest (ARQ) schemes (eg, Go-Back-N ARQ schemes and Selective-Reject ARQ schemes, etc.).
  • ARQ Automatic Repeat reQuest
  • the ARQ method detects a packet not received at the data receiver (i.e., a lost packet) among the packets transmitted from the data transmitter using the serial number of the transmitted packets, and the data from the data receiver in response to the detection of the lost packet.
  • Request for retransmission of lost packets by sending negative acknowledgment (NACK) to the transmitter.
  • NACK negative acknowledgment
  • the data sender may again receive a NACK for the packet or timeout after the data sender has not received an acknowledgment (ACK) indicating the receipt of the packet for a period of time after the transmission of the packet. Until that packet is not retransmitted. Thus, if a NACK message is lost that no packet has been received, it may take considerable time until retransmission of that packet is performed.
  • ACK acknowledgment
  • the disclosed embodiments employ a retransmission mechanism in data communication over a connectionless-oriented protocol such as UDP, but instead of conventional ACK / NACK, it provides information indicating whether each data packet was received at the data receiver for a set of data packets. Use a new acknowledgment message that contains.
  • the above-described information may be updated according to the reception of the data packet, and may be a kind of cumulative information capable of maintaining an indication of whether each data packet in the set is received until all data packets of the data packet set are received. to be.
  • Such a mechanism may prevent packet retransmission or delayed retransmission due to loss of ACK / NACK in the conventional ARQ scheme.
  • an acknowledgment message may be sent when a loss of a data packet occurs, and may also be sent when a lost data packet is retransmitted and received. Therefore, the frequency at which the acknowledgment message is transmitted is less than the frequency at which ACK / NACK is transmitted in the conventional ARQ scheme.
  • the accumulated information about whether or not to receive each data packet in the data packet set is included in the acknowledgment messages until the acknowledgment messages are transmitted. Therefore, compared to the conventional ARQ scheme, even if any acknowledgment message is lost, operations that had to be performed at the data transmitter according to the lost acknowledgment message can be performed in a short time. This is because if an acknowledgment message following the lost acknowledgment message is received at the data receiver, the operations can be performed based on the above information included in the subsequent acknowledgment message.
  • a data communication method using a connectionless-oriented protocol wherein at least one of a plurality of data packets is received from a data transmitter, the reception of a corresponding data packet of the plurality of data packets Performing at least one bitwise operation on flag bits each configured to indicate whether there is a missing data packet among the plurality of data packets; And if there is a missing data packet as a result of the determination, sending an acknowledgment message including the flag bits to the data transmitter.
  • the lost data packet when the lost data packet is received through retransmission from the data transmitter, another acknowledgment message including the flag bits updated according to the reception of the retransmitted data packet is received. And transmitting to the data transmitter.
  • a data communication method using a connectionless oriented protocol comprising an acknowledgment message including flag bits respectively indicating whether a corresponding data packet of a plurality of data packets is received at the data receiver; When received from the terminal, performing at least one bitwise operation on the flag bits to identify a lost data packet of the plurality of data packets; And retransmitting the identified data packet to the data receiver.
  • a data receiver for performing data communication using a connectionless oriented protocol, the reception of a corresponding data packet of the plurality of data packets as at least one of the plurality of data packets is received from a data transmitter
  • a packet loss checking unit configured to determine whether a missing data packet exists among the plurality of data packets by performing at least one bit-wise operation on flag bits configured to indicate whether each of the plurality of data packets is present;
  • an acknowledgment message transmitter for transmitting an acknowledgment message including the flag bits to the data transmitter when there is a lost data packet as a result of the determination.
  • the acknowledgment message transmission unit is further configured to update the flag bits updated upon receipt of the retransmitted data packet when the lost data packet is received through retransmission from the data transmitter. Send another acknowledgment message to the data transmitter.
  • a data transmitter for performing data communication using a connectionless-oriented protocol, the acknowledgment including flag bits each indicating whether a corresponding data packet among a plurality of data packets has been received at the data receiver
  • a retransmission processor configured to identify a lost data packet among the plurality of data packets by performing at least one bitwise operation on the flag bits when receiving a message from the data receiver; And a packet transmitter for retransmitting the identified data packet to the data receiver.
  • the retransmission processor also sets a time period available for the retransmission, and the packet transmitter also retransmits the identified data packet repeatedly during the time period.
  • a data communication method using a connectionless-oriented protocol comprising indicators indicating whether corresponding data packets of a plurality of data packets are received from a data transmitter, respectively. Making; Performing a logical operation on the indicators to determine whether a lost data packet exists among the plurality of data packets; And if there is a lost data packet as a result of the determination, sending an acknowledgment message including the indicators to the data transmitter.
  • the logical operation is performed in such a way that each of the indicators is treated independently of another of the indicators.
  • the data communication method is updated in response to receiving the retransmitted data packet from the data transmitter after transmission of the acknowledgment message. Sending another acknowledgment message including the indicators to the data transmitter.
  • the logical operation is the largest series of lost information indicating a previously lost data packet among the plurality of data packets and a serial number of a previously received data packet among the plurality of data packets. Based on number.
  • the data communication method based on the indicators, how many of the plurality of data packets of the plurality of data packets and which of the plurality of data packets is missing Further comprising identifying at least one.
  • the data communication method further comprises setting a time period available for retransmitting the acknowledgment message to the data transmitter.
  • the connectionless oriented protocol includes a User Datagram Protocol (UDP).
  • UDP User Datagram Protocol
  • a data communication method using a connectionless oriented protocol comprising: acknowledgment message including indicators indicating whether a corresponding data packet of a plurality of data packets is received at a data receiver from the data receiver; Receiving; Performing a logical operation on the indicators to identify a lost data packet among the plurality of data packets; And in response to identifying the lost data packet, setting a time period available for retransmitting the lost data packet to the data receiver.
  • the logical operation is performed in such a way that each of the indicators is treated independently of another of the indicators.
  • the data communication method further comprises receiving another acknowledgment message from the data receiver including the indicators updated to indicate that the lost data packet was received at the data receiver after retransmission. In response to receiving, further deconfiguring the time period to prevent further retransmission of the lost data packet.
  • the data communication method further includes repeatedly retransmitting the lost data packet during the time period.
  • the connectionless oriented protocol comprises a user datagram protocol.
  • a computer readable storage medium having a computer program stored thereon for executing any of the above methods is provided.
  • a data receiver for performing data communication using a connectionless oriented protocol, comprising: configuring indicators each indicating whether a corresponding data packet of a plurality of data packets has been received from a data transmitter, and the indicator A packet loss checking unit configured to determine whether a missing data packet exists among the plurality of data packets by performing a logical operation on the plurality of data packets; If there is a lost data packet as a result of the determination, a data receiver is provided, including an acknowledgment message transmitter for transmitting an acknowledgment message including the indicators to the data transmitter.
  • the logical operation is performed in such a way that each of the indicators is treated independently of the other of the indicators.
  • the packet loss acknowledgment unit also updates the indicators according to the reception of the data packet retransmitted from the data transmitter after transmission of the acknowledgment message, and the acknowledgment message transmitter further includes: In response to receiving the retransmitted data packet, another acknowledgment message including the updated indicators is sent to the data transmitter.
  • the logical operation is the largest serial number of lost information indicating a previously lost data packet of the plurality of data packets and a serial number of a previously received data packet of the plurality of data packets. Based on.
  • the packet loss checking unit based on the indicators, the number of data packets of the plurality of data packets and which of the plurality of data packets of the plurality of data packets are missing; Identifies at least one.
  • the acknowledgment message transmitter also sets a time period available for retransmitting the acknowledgment message to the data transmitter.
  • connectionless oriented protocol comprises a user datagram protocol.
  • a data transmitter for performing data communication using a connectionless oriented protocol, comprising: a packet transmitter configured to transmit a plurality of data packets to a data receiver; And an acknowledgment message from the data receiver, the acknowledgment message including indicators indicating whether a corresponding data packet among the plurality of data packets has been received by the data receiver, and performing a logical operation on the indicators.
  • a retransmission processor configured to identify a lost data packet among data packets, and set a time period available for retransmitting the lost data packet to the data receiver in response to the identification of the lost data packet. Including, a data transmitter is provided.
  • the logical operation is performed in such a way that each of the indicators is treated independently of the other of the indicators.
  • the retransmission processor also receives another acknowledgment message from the data receiver that includes the indicators updated to indicate that the lost data packet was received at the data receiver after retransmission.
  • the time period is de-configured to prevent further retransmission of the lost data packet.
  • the packet transmitter also retransmits the lost data packet repeatedly for the other acknowledgment message during the time period.
  • connectionless oriented protocol comprises a user datagram protocol.
  • packet retransmission may be delayed or packets may not be retransmitted repeatedly due to the loss of ACK / NACK in the conventional ARQ scheme.
  • the expected value of the number of times the acknowledgment message is transmitted from the data receiver to the data transmitter is smaller than that of ACK / NACK in the conventional ARQ scheme.
  • operations that had to be performed in accordance with the lost acknowledgment message may be performed in a short time.
  • FIG. 1 illustrates a system for performing data communication in accordance with an embodiment of the present invention.
  • FIG. 2 is a view for explaining the structure of a data packet according to an embodiment of the present invention.
  • FIG. 3 illustrates a structure of information configured to indicate whether each data packet in a data packet set is received according to an embodiment of the present invention.
  • FIG. 4 is a diagram for describing bit operations for determining whether a lost data packet is present according to an embodiment of the present invention.
  • FIG. 5 is a diagram for describing a procedure of transferring data packets from a data transmitter to a data receiver according to an embodiment of the present invention.
  • FIG. 1 illustrates a system for performing data communication in accordance with an embodiment of the present invention.
  • an exemplary data communication system 100 includes a data transmitter 110 and a data receiver 120.
  • Data transmitter 110 is configured to transmit data using a connectionless oriented protocol
  • data receiver 120 is configured to receive data transmitted using this connectionless oriented protocol.
  • the connectionless oriented protocol used in the data communication system 100 may include UDP.
  • the data transmitter 110 includes a packetizer 111, a transmission buffer 113, a packet transmitter 115, and a retransmission processor 117
  • the data receiver 120 includes a packet receiver ( 121, a reception buffer 123, a packet loss confirmation unit 125, and an acknowledgment message transmission unit 127.
  • the packetizing unit 111 of the data transmitter 110 receives an input of data to be transmitted, and converts the data into packets each having a predetermined size.
  • the packetized data is stored in the transmission buffer 113 of the data transmitter 110.
  • the packet transmitter 115 of the data transmitter 110 transmits the data packet stored in the transmission buffer 113 to the data receiver 120.
  • the packet receiver 121 of the data receiver 120 is configured to receive a data packet transmitted from the packet transmitter 115 of the data transmitter 110.
  • the received data packet is stored in the receive buffer 123 of the data receiver 120. Data originally transmitted from the data packets stored in the receive buffer 123 is reconstructed.
  • the data packet includes a header and a data payload.
  • a data packet is generated in the packetizer 111 of the data transmitter 110 in such a manner that a header is added to a data payload that is a part of data to be transmitted.
  • the information included in the header of the received data packet may be used by the data receiver 120 to manage the data packet.
  • the header of a data packet may include a serial number assigned to that data packet.
  • an exemplary data packet 220 includes n-7 bytes of data payload and 7 bytes of header before the data payload.
  • the length n of the data packet 220 is variable.
  • the information indicated by the 7-byte header of the data packet 220 allows the data packets stored in the reception buffer 123 to be managed in units of blocks 210 of the X data packets shown in FIG. 2.
  • the number X of packets included in the data block 210 is variable.
  • the first byte indicates the message type of the data packet 220
  • the next two bytes (byte 1 and byte 2) indicate the data block 210 to which the data packet 220 belongs. )
  • the next two bytes represent the index (eg, i) that the data packet 220 has in its data block 210
  • the next two bytes (byte 5 and byte 6) Denotes the number of data packets (eg, X) included in the data block 210. Therefore, when the packet receiver 121 of the data receiver 120 receives the data packet 220, the position where the data packet 220 is to be stored in the reception buffer 123 may be derived from the header of the data packet 220. Can be.
  • the packet loss checking unit 125 of the data receiver 120 may include information indicating whether each data packet in the set of the predetermined number of data packets stored in the reception buffer 123 has been received from the data transmitter 110 ( Hereinafter, also referred to as "packet reception information") is configured and managed.
  • this information may include indicators, and each indicator may indicate whether a corresponding data packet of the plurality of data packets in the data packet set has been received from the data transmitter 110.
  • Each indicator may be one flag or bit in the above information.
  • the packet reception information may be updated to indicate that each time one data packet is received at the data receiver 120, the data packet is received at the data receiver 120.
  • the packet loss checking unit 125 is shown in FIG. 3 to indicate whether each of the data packets included in a predetermined sub-block of the data block 210 shown in FIG. 2 is received. Maintains the 64-bit BlockSlice structure 310 of. In the block slice structure 310, 50 bits from bits 14 to 63 are flags indicating whether each of the data packets included in the sub-block is received. Each time a data packet included in the sub-block is received, the packet loss checking unit 125 sets a flag bit corresponding to the data packet to one. That is, one block slice structure includes information indicating whether each data packet is received at the data receiver 120 for a set of 50 data packets.
  • the five bits from bits 0 to 4 represent the indices of the sub-blocks in the data block 210. For example, if the 5-bit sub-block index is 0, the 50-bit packet reception flag indicates whether or not 50 data packets from packet 0 to packet 49 of the data block 210 are received. If 1, the packet reception flag indicates whether 50 data packets from packet 50 to packet 99 of the data block 210 are received.
  • Bit 5 of the block slice structure 310 is set to 1 if all packets have been received, otherwise it is set to 0, and bit 6 is set to 1 if all packets have been lost and to 0 otherwise.
  • Bit 7 of the block slice structure 310 is a fragment bit set to 1 for the currently receiving sub-block, otherwise set to 0, and 6 bits from bits 8 to 13 are present in the sub-block. This indicates the largest index among the indices (eg, the packet index of the packet 220) of the received data packet. The six bits representing the maximum index of this received packet are compared with the index of the received data packet each time a data packet is received and can be updated according to the result of such a comparison.
  • the packet loss checking unit 125 determines whether there is a missing data packet among the data packets in the data packet set. Determine whether or not. Additionally, the presence or absence of the lost data packet is determined by the largest serial number (eg, block slice) of lost information indicating a previously lost data packet among the plurality of data packets and a serial number of a previously received data packet among the plurality of data packets. The maximum index of received packets in structure 310). Furthermore, the packet loss checking unit 125 may identify the number of lost data packets and / or what are missing data packets among the data packets in the data packet set based on the packet reception information described above.
  • the packet loss checking unit 125 may identify the number of lost data packets and / or what are missing data packets among the data packets in the data packet set based on the packet reception information described above.
  • the operation of determining whether the packet loss checking unit 125 has a lost data packet among the data packets in the data packet set may include performing a logical operation on the indicators in the packet reception information.
  • the packet loss checking unit 125 may determine whether a lost packet exists by using a bit operation illustrated in FIG. 4. 4 shows, as an example, a process of determining whether a lost packet exists when Packet 0, Packet 1, Packet 3, and Packet 7 are sequentially received at the data receiver 120.
  • FIG. 4 illustrates bit operations for eight bits. It will be appreciated that the number of bits that are operands of the bit operations described in the disclosed embodiments is not specifically limited.
  • the above-described logical operation may be performed in such a manner that each of the indicators in the packet reception information is treated independently of the other indicators.
  • the logical operation may be a bitwise operation (eg, a bitwise NOT operation, a bitwise AND operation, a bitwise XOR operation, a bitwise OR operation, or the like).
  • This logical operation may include at least one unary operation that takes the above indicators as an operand.
  • the above logical operation may be used to receive lost information in the data packet set or lost information indicating a lost packet among the plurality of data packets before determining whether there is a missing data packet among the data packets in the data packet set. It may include at least one dyadic operation to take the information indicating the largest serial number of the serial number of the data packet, as the two operands with the indicators. For example, the bit operation shown in FIG.
  • A bits representing packets received so far
  • B bits representing previously lost packets
  • C bits representing previously lost packets
  • D Mask bits according to the maximum index of the received packet (e.g., the maximum index of the received packet in the block slice structure 310) (hereinafter collectively referred to as "MASK”) and the result of such an XOR operation (below) Collectively referred to as “D”).
  • Y the result of the above AND operation
  • a process of determining whether a packet loss occurs is described as an example.
  • the bits of A, B, C, D, Y and MASK respectively correspond to packet 0 to packet 8 from right to left.
  • A is 00000011 since the data packets received so far are packet 0 and packet 1
  • C is 00000000 since no data packet was lost before. Therefore, D is 11111100.
  • the MASK is set to 00000011 according to the largest index (i.e., 1) of the received data packets' indexes (i.e., 0 and 1) (the bits corresponding to the packet of the largest index from packet 0 of the bits of the MASK are 1). Is set).
  • the packet loss checking unit 125 may identify how many data packets are lost and how many data packets are lost by using a Hamming Weight algorithm and a Find First Bit algorithm.
  • the acknowledgment message transmitter 127 of the data receiver 120 transmits a predetermined acknowledgment message to the data transmitter 110 when it is determined that there is a lost data packet.
  • the acknowledgment message includes the packet reception information configured / updated by the packet loss confirmation unit 125.
  • the acknowledgment message transmitter 127 may transmit an acknowledgment message including the 64-bit block slice structure 310 to the data transmitter 110.
  • the fragment bit of the block slice structure 310 is set to one.
  • the acknowledgment message transmitter 127 may set a time period for retransmitting an acknowledgment message including the block slice structure 310 when it is lost.
  • the set time period may be released. For example, time period setting and time period release may involve driving and removing timers, respectively. If bit 6 of the block slice structure 310 is set to 1 (when all data packets of the sub-blocks corresponding to the block slice structure 310 are lost), the acknowledgment message transmitting unit 127 is a block slice structure. Instead of all bits (64 bits) of 310, an acknowledgment message including 8 bits from bits 0 to 7 may be transmitted.
  • Retransmission processing unit 117 of data transmitter 110 is configured to receive an acknowledgment message.
  • the retransmission processing unit 117 may identify a newly lost data packet among the data packets in the data packet set based on the packet reception information included in the received acknowledgment message. For example, when the retransmission processor 117 receives an acknowledgment message including the block slice structure 310 in which the fragment bit is set to 1, the retransmission processor 117 is lost based on the block slice structure 310. It can identify what the data packet is. This identification may be performed in the same manner as identifying the lost data packet in the packet loss checking unit 125 (eg, using the bit operation described above with respect to FIG. 4).
  • the retransmission processing unit 117 sets a time period available for retransmission of the lost data in response to the identification of the lost data packet. For example, setting the time period may involve driving a timer. In this example embodiment, a timer for retransmission may be set for data packets identified as lost and not for all data packets. The lost data packet may be retransmitted repeatedly from the packet transmitter 115 during the set time period.
  • the lost data packet may be periodically retransmitted by the packet transmitter 115, and the period may be a predetermined value (transmission of the data packet at a round trip time of the data communication system 100). May be set according to the environment and / or characteristics of the data communication system 100).
  • the packet loss checking unit 125 may determine the retransmission of the data packet.
  • the packet reception information is updated, and the acknowledgment message transmitter 127 transmits an acknowledgment message including the updated packet reception information to the data transmitter 110.
  • the acknowledgment message transmitted from the acknowledgment message transmitter 127 in response to receiving the retransmitted data packet may include the block slice structure 310 in which the fragment bit is set to zero. This acknowledgment message is of a different type than the acknowledgment message sent in response to the determination that a previously lost data packet is present.
  • the two bits of the acknowledgment message are separated from each other by the fragment bits of the block slice structure 310. Are distinguished.
  • acknowledgment message may be sent from the acknowledgment message transmitter 127 to the data transmitter 110, such that all data packets of the sub-blocks covered by the block slice structure 310 have been received.
  • An acknowledgment message comprising a 64-bit block slice structure 310 with the bit indicating this (bit 5 of the block slice structure 310) set to 1 may be transmitted to the data transmitter 110, alternatively the block.
  • an acknowledgment message including 8 bits from bits 0 to 7 instead of 64 bits may be sent to the data transmitter 110. This acknowledgment message is sent to prevent unnecessary data packet retransmission.
  • the retransmission processing unit 117 of the data transmitter 110 receives the acknowledgment message transmitted in response to the reception of the retransmitted data packet (eg, an acknowledgment including the block slice structure 310 in which the fragment bit is set to 0).
  • the retransmission processing unit 117 releases the time period for retransmission of the data packet.
  • the data received by the data receiver 120 after the retransmission is lost. This prevents packets from being unnecessarily retransmitted repeatedly.
  • the release of the time period setting involves removing the timer.
  • FIG. 5 is a diagram for describing a procedure of transferring data packets from a data transmitter to a data receiver according to an embodiment of the present invention.
  • the data transmitter 110 transmits packet 0 (501).
  • the data receiver 120 receives the packet 0 and updates packet reception information according to the reception of the packet 0 (502).
  • the data transmitter 110 transmits packet 1 (503). However, in the example shown in FIG. 5, packet 1 has been lost without being received by the data receiver 120.
  • the data transmitter 110 transmits packet 2 (505).
  • the data receiver 120 receives the packet 2, updates the packet reception information according to the reception of the packet 2, and determines that the loss of the packet has occurred (504). Further, the data receiver 120 may identify that packet 1 is lost. For example, such determination and identification may utilize the bit operations described in connection with FIG.
  • data receiver 120 transmits an acknowledgment message 0 to the data transmitter 110 that includes updated packet receipt information (506).
  • the updated packet reception information indicates that packet 0 and packet 2 were received at the data receiver 120 and packet 1 was not received at the data receiver 120. However, in the example shown in FIG. 5, acknowledgment message 0 has been lost without being forwarded to the data transmitter 110.
  • the data transmitter 110 transmits packet 3 (507). However, in the example of FIG. 5, packet 3 has been lost without being received by data receiver 120.
  • the data transmitter 110 transmits packet 4 (509).
  • the data receiver 120 receives the packet 4, updates the packet reception information according to the reception of the packet 4, and determines that the packet loss has occurred based on the packet reception information (508). Furthermore, data receiver 120 may identify that packet 4 has been lost.
  • the data receiver 120 transmits an acknowledgment message 1 including the updated packet reception information to the data transmitter 110 (510).
  • the updated packet reception information indicates that packet 0, packet 2 and packet 4 were received at the data receiver 120 and packet 1 and packet 3 were not received at the data receiver 120.
  • the data transmitter 110 performs transmission 511 of packet 5, transmission 513 of packet 6, and transmission 515 of packet 7.
  • the data receiver 120 sequentially updates the packet reception information when receiving the packet 5, the packet 6, and the packet 7, respectively (512, 514, and 516).
  • the data transmitter 110 When the data transmitter 110 receives the acknowledgment message 1, the data transmitter 110 sets a timer for retransmission of packet 1 identified as a lost packet from acknowledgment message 1 (517), and retransmits packet 1 (519). In addition, the data transmitter 110 sets a timer for retransmission of packet 3, which is also identified as a lost packet from acknowledgment message 1 (521), and retransmits packet 3 (523).
  • the data receiver 120 receives the retransmitted packet 1, updates packet reception information according to the reception of the packet 1, and confirms that the retransmitted packet has been received (518). Subsequently, the data receiver 120 transmits an acknowledgment message 2 including the updated packet reception information to the data transmitter 110 (520).
  • the updated packet reception information indicates that Packets 0 to 2 and Packets 4 to 7 were received at the data receiver 120 and Packet 3 was not received at the data receiver 120. However, in the example shown in FIG. 5, acknowledgment message 2 has been lost without being forwarded to data transmitter 110.
  • the data receiver 120 receives the retransmitted packet 3, updates packet reception information according to the reception of the packet 3, and confirms that the retransmitted packet has been received (522). Subsequently, the data receiver 120 transmits an acknowledgment message 3 including the updated packet reception information to the data transmitter 110 (524). The updated packet reception information indicates that the packets 0 to 7 are received by the data receiver 120.
  • the data transmitter 110 may determine that the packet 1 and the packet 3 previously set the timer are based on the packet reception information included in the acknowledgment message 3. ) And remove the timer for packet 1 and the timer for packet 3.
  • embodiments of the present invention may include a computer readable storage medium containing a program for performing the methods described herein on a computer.
  • the computer readable storage medium may include program instructions, local data files, local data structures, etc. alone or in combination.
  • the media may be those specially designed and constructed for the present invention.
  • Examples of computer readable storage media include magnetic media such as hard disks, floppy disks and magnetic tape, optical recording media such as CD-ROMs, DVDs, magnetic-optical media such as floppy disks, and ROM, RAM, flash memory, and the like.
  • Hardware devices specifically configured to store and execute the same program instructions are included.
  • Examples of program instructions may include high-level language code that can be executed by a computer using an interpreter as well as machine code such as produced by a compiler.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Communication Control (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

비연결 지향형 프로토콜을 이용한 데이터 통신 방법이 제공된다. 상기 데이터 통신 방법은, 복수의 데이터 패킷 중 대응하는 데이터 패킷이 데이터 송신기로부터 수신되었는지 여부를 각각 나타내는 지시자들을 구성하는 단계; 상기 지시자들에 대한 논리 연산을 수행하여 상기 복수의 데이터 패킷 중 유실된 데이터 패킷이 존재하는지 여부를 판정하는 단계; 및 상기 판정 결과 유실된 데이터 패킷이 존재하는 경우, 상기 지시자들을 포함하는 확인응답 메시지를 상기 데이터 송신기로 송신하는 단계를 포함한다.

Description

비연결 지향형 프로토콜을 이용한 데이터 통신
본 발명의 실시예는 데이터 통신에 관한 것으로서, 더욱 상세하게는 비연결 지향형 프로토콜(connectionless-oriented protocol)을 이용하여 데이터 통신을 수행하는 것과 관련된다.
컴퓨터 네트워크는 여러 컴퓨터들 간의 통신을 가능하게 한다. 예를 들어, 컴퓨터 네트워크는 로컬 영역 네트워크(Local Area Network: LAN), 광대역 네트워크(Wide Area Network: WAN), 인터넷, 무선 네트워크, 혼성 디바이스 네트워크 등을 포함한다.
이러한 컴퓨터 네트워크에서, 데이터는 하나 이상의 패킷의 형태로 전송될 수 있다. 수신되는 모든 패킷들로부터 원래 전송된 데이터가 재구성된다. 몇몇 예에서, 패킷들의 일련번호(sequence number)는 데이터의 재구성에 중요하다.
소정의 네트워크 환경(예컨대, 무선 네트워크 환경)에서, 패킷들은 종종 전송되는 동안 네트워크 상의 간섭, 전송 채널의 특성 등으로 인해 유실(lost) 되기 쉽다. 따라서, 가령 인터넷 상의 컴퓨터들 간에는 데이터를 패킷의 형태로 신뢰성 있게 보내기 위해 트랜스포트 제어 프로트콜(Transmission Control Protocol: TCP)이 사용된다. TCP는 트랜스포트 계층(transport layer)에서 사용될 수 있는 프로토콜이다. TCP는 연결 지향형(connection-oriented) 프로토콜로서, 데이터를 송수신하는 컴퓨터들 간의 메시지들이 각 컴퓨터의 애플리케이션에 의해 교환되는 시간 동안 연결의 수립(establishment) 및 유지를 가능하게 한다.
반면, 트랜스포트 계층의 다른 프로토콜인 사용자 데이터그램 프로토콜(User Datagram Protocol: UDP)은 비연결 지향형 프로토콜이다. UDP는 데이터를 데이터 송신기에서 데이터 수신기로 송신함으로써 통신을 수행하도록 하되, 데이터 송신기에서 데이터를 전송한다는 신호를 미리 보내는 절차나 데이터 수신기의 상태를 확인하는 절차를 수반하지 않는다. 이러한 UDP 자체는 데이터 수신기가 데이터를 정상적으로 수신하였는지 여부를 데이터 송신기가 확인하는 메커니즘을 제공하지 않는바, UDP는 TCP에 비해 신뢰성 있는 전송을 보장하지 못한다.
데이터 전송을 위한 연결의 수립 및 해제를 수행할 과정이 불필요한 UDP는 더욱 효율적이고 간편한 데이터 전송에 적합하고, 예컨대 무선 네트워크 환경에서 TCP보다 빠른 데이터 전송을 가능하게 한다.
이러한 UDP를 기반으로 한 데이터 전송에서 신뢰성을 향상시키기 위해 재전송 메커니즘이 사용될 수 있다. 그러한 재전송 메커니즘의 예는 자동 반복 요청(Automatic Repeat reQuest: ARQ) 방식(가령, Go-Back-N ARQ 방식 및 Selective-Reject ARQ 방식 등)을 포함한다. ARQ 방식은 데이터 송신기로부터 전송된 패킷들 중 데이터 수신기에서 수신되지 않은 패킷(즉, 유실된 패킷)을 전송된 패킷들의 일련번호를 이용하여 검출하고, 유실된 패킷의 검출에 응답하여 데이터 수신기로부터 데이터 송신기로 부정 확인응답(Negative ACKnowledgement: NACK)을 송신함으로써 유실된 패킷의 재전송을 요청한다.
ARQ 방식에서 어떤 패킷에 대한 NACK가 데이터 수신기로부터 송신되었으나 데이터 송신기에 전달되지 않고 유실되는 경우 문제가 될 수 있다. 통상적으로, 데이터 송신기가 그 패킷에 대한 NACK를 재차 수신하거나 또는 데이터 송신기가 그 패킷의 수신을 나타내는 확인응답(ACKnowledgement: ACK)을 그 패킷의 전송 후 일정 시간 동안 수신하지 못하고 타임아웃(timeout)될 때까지 그 패킷은 재전송되지 않는다. 따라서, 어떤 패킷이 수신되지 않았다는 NACK 메시지가 유실되면, 그 패킷의 재전송이 수행될 때까지 상당한 시간이 소요될 수 있다.
또한, ARQ 방식에서 어떤 패킷에 대한 ACK가 데이터 수신기로부터 송신되었으나 데이터 송신기에 전달되지 않고 유실되는 경우, 그 패킷은 이미 수신되었더라도 데이터 송신기가 타임아웃된 후 불필요하게 재전송된다.
개시된 실시예들은 UDP와 같은 비연결 지향형 프로토콜을 통한 데이터 통신에서 재전송 메커니즘을 채택하되, 통상적인 ACK/NACK 대신에, 데이터 패킷의 집합에 대하여 각 데이터 패킷이 데이터 수신기에서 수신되었는지 여부를 나타내는 정보를 포함하는 새로운 확인응답 메시지(acknowledgement message)를 이용한다. 예컨대, 전술한 정보는, 데이터 패킷의 수신에 따라 갱신되어 위 데이터 패킷 집합의 모든 데이터 패킷이 수신될 때까지 그 집합 내 각 데이터 패킷의 수신 여부의 표시를 유지할 수 있는 일종의 누적 정보(cumulative information)이다. 이와 같은 메커니즘은 기존의 ARQ 방식에서 ACK/NACK의 유실에 따라 패킷 재전송이 지연되거나 또는 패킷이 중복적으로 재전송되는 것을 방지할 수 있다.
개시된 실시예들에 따르면, 확인응답 메시지는 데이터 패킷의 유실이 발생한 경우에 송신될 수 있고, 또한 유실된 데이터 패킷이 재전송되어 수신된 경우에 송신될 수 있다. 따라서, 확인응답 메시지가 송신되는 빈도는 기존의 ARQ 방식에서 ACK/NACK가 송신되는 빈도보다 적다.
개시된 실시예들에 따르면, 확인응답 메시지들이 송신될 때까지 데이터 패킷 집합 내의 각 데이터 패킷에 대한 수신 여부에 관하여 누적된 정보가 그 확인응답 메시지들 내에 포함된다. 따라서, 기존의 ARQ 방식에 비해, 어떤 확인응답 메시지가 유실되더라도, 유실된 확인응답 메시지에 따라 데이터 송신기에서 수행되어야 했던 동작들이 신속한 시간 내에 수행될 수 있다. 유실된 확인응답 메시지에 후속하는 확인응답 메시지가 데이터 수신기에서 수신되면, 후속 확인 응답 메시지에 포함된 위 정보에 기반하여 그 동작들이 수행될 수 있기 때문이다.
예시적인 실시예에 따르면, 비연결 지향형 프로토콜(connectionless-oriented protocol)을 이용한 데이터 통신 방법으로서, 복수의 데이터 패킷 중 적어도 하나가 데이터 송신기로부터 수신됨에 따라 상기 복수의 데이터 패킷 중 대응하는 데이터 패킷의 수신 여부를 각각 나타내도록 구성된 플래그 비트(flag bit)들에 대하여 적어도 하나의 비트별 연산(bitwise operation)을 수행하여 상기 복수의 데이터 패킷 중 유실된 데이터 패킷의 존재 여부를 판정하는 단계; 및 상기 판정 결과 유실된 데이터 패킷이 존재하는 경우, 상기 플래그 비트들을 포함하는 확인응답 메시지(acknowledgement message)를 상기 데이터 송신기로 송신하는 단계를 포함하는, 데이터 통신 방법이 제공된다.
상기 데이터 통신 방법의 일 측면에 따르면, 상기 유실된 데이터 패킷이 상기 데이터 송신기로부터의 재전송을 통해 수신되는 경우, 상기 재전송된 데이터 패킷의 수신에 따라 갱신된 상기 플래그 비트들을 포함하는 다른 확인응답 메시지를 상기 데이터 송신기로 송신하는 단계를 더 포함한다.
다른 예시적인 실시예에 따르면, 비연결 지향형 프로토콜을 이용한 데이터 통신 방법으로서, 복수의 데이터 패킷 중 대응하는 데이터 패킷이 데이터 수신기에 수신되었는지 여부를 각각 나타내는 플래그 비트들을 포함하는 확인응답 메시지를 상기 데이터 수신기로부터 수신하는 경우, 상기 플래그 비트들에 대한 적어도 하나의 비트별 연산을 수행하여 상기 복수의 데이터 패킷 중 유실된 데이터 패킷을 식별하는 단계; 및 상기 식별된 데이터 패킷을 상기 데이터 수신기로 재전송하는 단계를 포함하는, 데이터 통신 방법이 제공된다.
상기 데이터 통신 방법의 일 측면에 따르면, 상기 재전송에 이용 가능한 시구간을 설정하는 단계; 및 상기 시구간 동안 상기 식별된 데이터 패킷을 반복적으로 재전송하는 단계를 더 포함한다.
다른 예시적인 실시예에 따르면, 비연결 지향형 프로토콜을 이용하여 데이터 통신을 수행하는 데이터 수신기로서, 복수의 데이터 패킷 중 적어도 하나가 데이터 송신기로부터 수신됨에 따라 상기 복수의 데이터 패킷 중 대응하는 데이터 패킷의 수신 여부를 각각 나타내도록 구성된 플래그 비트들에 대하여 적어도 하나의 비트별 연산을 수행하여 상기 복수의 데이터 패킷 중 유실된 데이터 패킷의 존재 여부를 판정하는 패킷 유실 확인부; 및 상기 판정 결과 유실된 데이터 패킷이 존재하는 경우, 상기 플래그 비트들을 포함하는 확인응답 메시지를 상기 데이터 송신기로 송신하는 확인응답 메시지 전송부를 포함하는, 데이터 수신기가 제공된다.
상기 데이터 수신기의 일 측면에 따르면, 상기 확인응답 메시지 전송부는 또한, 상기 유실된 데이터 패킷이 상기 데이터 송신기로부터의 재전송을 통해 수신되는 경우, 상기 재전송된 데이터 패킷의 수신에 따라 갱신된 상기 플래그 비트들을 포함하는 다른 확인응답 메시지를 상기 데이터 송신기로 송신한다.
다른 예시적인 실시예에 따르면, 비연결 지향형 프로토콜을 이용하여 데이터 통신을 수행하는 데이터 송신기로서, 복수의 데이터 패킷 중 대응하는 데이터 패킷이 데이터 수신기에 수신되었는지 여부를 각각 나타내는 플래그 비트들을 포함하는 확인응답 메시지를 상기 데이터 수신기로부터 수신하는 경우, 상기 플래그 비트들에 대한 적어도 하나의 비트별 연산을 수행하여 상기 복수의 데이터 패킷 중 유실된 데이터 패킷을 식별하는 재전송 처리부; 및 상기 식별된 데이터 패킷을 상기 데이터 수신기로 재전송하는 패킷 전송부를 포함하는, 데이터 송신기가 제공된다.
상기 데이터 송신기의 일 측면에 따르면, 상기 재전송 처리부는 또한 상기 재전송에 이용 가능한 시구간을 설정하고, 상기 패킷 전송부는 또한 상기 시구간 동안 상기 식별된 데이터 패킷을 반복적으로 재전송한다.
다른 예시적인 실시예에 따르면, 비연결 지향형 프로토콜(connectionless-oriented protocol)을 이용한 데이터 통신 방법으로서, 복수의 데이터 패킷 중 대응하는 데이터 패킷이 데이터 송신기로부터 수신되었는지 여부를 각각 나타내는 지시자(indicator)들을 구성하는 단계; 상기 지시자들에 대한 논리 연산(logical operation)을 수행하여 상기 복수의 데이터 패킷 중 유실된 데이터 패킷의 존재 여부를 판정하는 단계; 및 상기 판정 결과 유실된 데이터 패킷이 존재하는 경우, 상기 지시자들을 포함하는 확인응답 메시지(acknowledgement message)를 상기 데이터 송신기로 송신하는 단계를 포함하는, 데이터 통신 방법이 제공된다.
상기 데이터 통신 방법의 일 측면에 따르면, 상기 논리 연산은 상기 지시자들 각각이 상기 지시자들 중 다른 지시자와 무관하게 다루어지는 방식으로 수행된다.
상기 데이터 통신 방법의 일 측면에 따르면, 상기 데이터 통신 방법은, 상기 확인응답 메시지의 송신 이후에 상기 데이터 송신기로부터 재전송된 데이터 패킷을 수신하는 것에 응답하여, 상기 재전송된 데이터 패킷의 수신에 따라 갱신된 상기 지시자들을 포함하는 다른 확인응답 메시지를 상기 데이터 송신기로 송신하는 단계를 더 포함한다.
상기 데이터 통신 방법의 일 측면에 따르면, 상기 논리 연산은 상기 복수의 데이터 패킷 중 이전에 유실된 데이터 패킷을 나타내는 유실 정보 및 상기 복수의 데이터 패킷 중 이전에 수신된 데이터 패킷의 일련번호 중 가장 큰 일련번호에 기반한다.
상기 데이터 통신 방법의 일 측면에 따르면, 상기 데이터 통신 방법은, 상기 지시자들에 기반하여, 상기 복수의 데이터 패킷 중 몇 개의 데이터 패킷이 유실되었는지 및 상기 복수의 데이터 패킷 중 어느 데이터 패킷이 유실되었는지 중 적어도 하나를 식별하는 단계를 더 포함한다.
상기 데이터 통신 방법의 일 측면에 따르면, 상기 데이터 통신 방법은, 상기 확인응답 메시지를 상기 데이터 송신기로 재전송하는 데에 이용 가능한 시구간(time period)을 설정하는 단계를 더 포함한다.
상기 데이터 통신 방법의 일 측면에 따르면, 상기 비연결 지향형 프로토콜은 사용자 데이터그램 프로토콜(User Datagram Protocol: UDP)을 포함한다.
다른 예시적인 실시예에 따르면, 비연결 지향형 프로토콜을 이용한 데이터 통신 방법으로서, 복수의 데이터 패킷 중 대응하는 데이터 패킷이 데이터 수신기에 수신되었는지 여부를 각각 나타내는 지시자들을 포함하는 확인응답 메시지를 상기 데이터 수신기로부터 수신하는 단계; 상기 지시자들에 대한 논리 연산을 수행하여 상기 복수의 데이터 패킷 중에서 유실된 데이터 패킷을 식별하는 단계; 및 상기 유실된 데이터 패킷의 식별에 응답하여, 상기 유실된 데이터 패킷을 상기 데이터 수신기로 재전송하는 데에 이용 가능한 시구간을 설정하는 단계를 포함하는, 데이터 통신 방법이 제공된다.
상기 데이터 통신 방법의 일 측면에 따르면, 상기 논리 연산은 상기 지시자들 각각이 상기 지시자들 중 다른 지시자와 무관하게 다루어지는 방식으로 수행된다.
상기 데이터 통신 방법의 일 측면에 따르면, 상기 데이터 통신 방법은, 상기 유실된 데이터 패킷이 재전송된 이후에 상기 데이터 수신기에서 수신되었음을 나타내도록 갱신된 상기 지시자들을 포함하는 다른 확인응답 메시지를 상기 데이터 수신기로부터 수신하는 것에 응답하여, 상기 유실된 데이터 패킷의 추가적인 재전송을 방지하기 위하여 상기 시구간의 설정을 해제하는 단계를 더 포함한다.
상기 데이터 통신 방법의 일 측면에 따르면, 상기 데이터 통신 방법은, 상기 시구간 동안 상기 유실된 데이터 패킷을 반복적으로 재전송하는 단계를 더 포함한다.
상기 데이터 통신 방법의 일 측면에 따르면, 상기 비연결 지향형 프로토콜은 사용자 데이터그램 프로토콜을 포함한다.
다른 예시적인 실시예에 따르면, 상기 방법들 중 어느 하나를 실행하기 위한 컴퓨터 프로그램이 저장된 컴퓨터 판독가능 저장 매체가 제공된다.
다른 예시적인 실시예에 따르면, 비연결 지향형 프로토콜을 이용하여 데이터 통신을 수행하는 데이터 수신기로서, 복수의 데이터 패킷 중 대응하는 데이터 패킷이 데이터 송신기로부터 수신되었는지 여부를 각각 나타내는 지시자들을 구성하고, 상기 지시자들에 대한 논리 연산을 수행하여 상기 복수의 데이터 패킷 중 유실된 데이터 패킷의 존재 여부를 판정하는 동작을 수행하는 패킷 유실 확인부; 상기 판정 결과 유실된 데이터 패킷이 존재하는 경우, 상기 지시자들을 포함하는 확인응답 메시지를 상기 데이터 송신기로 송신하는 확인응답 메시지 전송부를 포함하는, 데이터 수신기가 제공된다.
상기 데이터 수신기의 일 측면에 따르면, 상기 논리 연산은 상기 지시자들 각각이 상기 지시자들 중 다른 지시자와 무관하게 다루어지는 방식으로 수행된다.
상기 데이터 수신기의 일 측면에 따르면, 상기 패킷 유실 확인부는 또한, 상기 확인응답 메시지의 송신 이후에 상기 데이터 송신기로부터 재전송된 데이터 패킷의 수신에 따라 상기 지시자들을 갱신하고, 상기 확인응답 메시지 전송부는 또한, 상기 재전송된 데이터 패킷의 수신에 응답하여, 상기 갱신된 지시자들을 포함하는 다른 확인응답 메시지를 상기 데이터 송신기로 송신한다.
상기 데이터 수신기의 일 측면에 따르면, 상기 논리 연산은 상기 복수의 데이터 패킷 중 이전에 유실된 데이터 패킷을 나타내는 유실 정보 및 상기 복수의 데이터 패킷 중 이전에 수신된 데이터 패킷의 일련번호 중 가장 큰 일련번호에 기반한다.
상기 데이터 수신기의 일 측면에 따르면, 상기 패킷 유실 확인부는 또한, 상기 지시자들에 기반하여, 상기 복수의 데이터 패킷 중 몇 개의 데이터 패킷이 유실되었는지 및 상기 복수의 데이터 패킷 중 어느 데이터 패킷이 유실되었는지 중 적어도 하나를 식별한다.
상기 데이터 수신기의 일 측면에 따르면, 상기 확인응답 메시지 전송부는 또한, 상기 확인응답 메시지를 상기 데이터 송신기로 재전송하는 데에 이용 가능한 시구간을 설정한다.
상기 데이터 수신기의 일 측면에 따르면, 상기 비연결 지향형 프로토콜은 사용자 데이터그램 프로토콜을 포함한다.
다른 예시적인 실시예에 따르면, 비연결 지향형 프로토콜을 이용하여 데이터 통신을 수행하는 데이터 송신기로서, 복수의 데이터 패킷을 데이터 수신기에 전송하도록 구성된 패킷 전송부; 및 상기 복수의 데이터 패킷 중 대응하는 데이터 패킷이 상기 데이터 수신기에 수신되었는지 여부를 각각 나타내는 지시자들을 포함하는 확인응답 메시지를 상기 데이터 수신기로부터 수신하고, 상기 지시자들에 대한 논리 연산을 수행하여 상기 복수의 데이터 패킷 중 유실된 데이터 패킷을 식별하는 동작을 수행하며, 상기 유실된 데이터 패킷의 식별에 응답하여, 상기 유실된 데이터 패킷을 상기 데이터 수신기로 재전송하는 데에 이용 가능한 시구간을 설정하는 재전송 처리부를 포함하는, 데이터 송신기가 제공된다.
상기 데이터 송신기의 일 측면에 따르면, 상기 논리 연산은 상기 지시자들 각각이 상기 지시자들 중 다른 지시자와 무관하게 다루어지는 방식으로 수행된다.
상기 데이터 송신기의 일 측면에 따르면, 상기 재전송 처리부는 또한, 상기 유실된 데이터 패킷이 재전송된 이후에 상기 데이터 수신기에서 수신되었음을 나타내도록 갱신된 상기 지시자들을 포함하는 다른 확인응답 메시지를 상기 데이터 수신기로부터 수신하는 것에 응답하여, 상기 유실된 데이터 패킷의 추가적인 재전송을 방지하기 위하여 상기 시구간의 설정을 해제한다.
상기 데이터 송신기의 일 측면에 따르면, 상기 패킷 전송부는 또한, 상기 다른 확인응답 메시지를 상기 시구간 동안 상기 유실된 데이터 패킷을 반복적으로 재전송한다.
상기 데이터 송신기의 일 측면에 따르면, 상기 비연결 지향형 프로토콜은 사용자 데이터그램 프로토콜을 포함한다.
소정의 실시예에 따르면, 기존의 ARQ 방식에서 ACK/NACK의 유실에 따라 패킷 재전송이 지연되거나 또는 패킷이 중복적으로 재전송되는 것을 방지할 수 있다.
소정의 실시예에 따른 확인응답 메시지가 데이터 수신기로부터 데이터 송신기로 송신되는 횟수의 기대값은 기존의 ARQ 방식에서 ACK/NACK에 비해 작다.
소정의 실시예에 따르면, 확인응답 메시지가 유실되더라도, 유실된 확인응답 메시지에 따라 수행되어야 했던 동작들이 신속한 시간 내에 수행될 수 있다.
도 1은 본 발명의 실시예에 따라 데이터 통신을 수행하는 시스템을 도시한다.
도 2는 본 발명의 실시예에 따른 데이터 패킷의 구조를 설명하기 위한 도면이다.
도 3은 본 발명의 실시예에 따라 데이터 패킷 집합 내의 각 데이터 패킷의 수신 여부를 나타내도록 구성된 정보의 구조를 도시한다.
도 4는 본 발명의 실시예에 따라 유실된 데이터 패킷의 존재 여부를 판정하기 위한 비트 연산을 설명하기 위한 도면이다.
도 5는 본 발명의 실시예에 따라 데이터 송신기에서 데이터 수신기로 데이터 패킷들이 전달되는 절차를 설명하기 위한 도면이다.
이하, 도면을 참조하여 본 발명의 구체적인 실시형태를 설명하기로 한다. 그러나 이는 예시에 불과하며 본 발명은 이에 제한되지 않는다.
본 발명을 설명함에 있어서, 본 발명과 관련된 공지기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략하기로 한다. 그리고, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
본 발명의 기술적 사상은 청구범위에 의해 결정되며, 이하의 실시예는 본 발명의 기술적 사상을 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 효율적으로 설명하기 위한 일 수단일 뿐이다.
도 1은 본 발명의 실시예에 따라 데이터 통신을 수행하는 시스템을 도시한다.
도 1에 나타낸 바와 같이, 예시적인 데이터 통신 시스템(100)은 데이터 송신기(110) 및 데이터 수신기(120)를 포함한다. 데이터 송신기(110)는 비연결 지향형 프로토콜을 이용하여 데이터를 전송하도록 구성되며, 데이터 수신기(120)는 이러한 비연결 지향형 프로토콜을 이용하여 전송되는 데이터를 수신하도록 구성된다. 데이터 통신 시스템(100)에서 이용되는 비연결 지향형 프로토콜은 UDP를 포함할 수 있다.
예시적인 실시예에 따르면, 데이터 송신기(110)는 패킷화부(111), 전송 버퍼(113), 패킷 전송부(115) 및 재전송 처리부(117)를 포함하고, 데이터 수신기(120)는 패킷 수신부(121), 수신 버퍼(123), 패킷 유실 확인부(125) 및 확인응답 메시지 전송부(127)를 포함한다.
데이터 송신기(110)의 패킷화부(111)는 전송될 데이터의 입력을 수신하고, 그 데이터를 각각 소정의 크기를 갖는 패킷들로 변환한다. 이와 같이 패킷화된 데이터는 데이터 송신기(110)의 전송 버퍼(113)에 저장된다. 데이터 송신기(110)의 패킷 전송부(115)는 전송 버퍼(113)에 저장된 데이터 패킷을 데이터 수신기(120)로 전송한다.
데이터 수신기(120)의 패킷 수신부(121)는 데이터 송신기(110)의 패킷 전송부(115)로부터 전송된 데이터 패킷을 수신하도록 구성된다. 수신된 데이터 패킷은 데이터 수신기(120)의 수신 버퍼(123)에 저장된다. 수신 버퍼(123)에 저장된 데이터 패킷들로부터 원래 전송된 데이터가 재구성된다.
예시적인 실시예에서, 데이터 패킷은 헤더(header) 및 데이터 페이로드(data payload)를 포함한다. 예를 들어, 전송될 데이터의 일부분인 데이터 페이로드에 헤더가 추가되는 방식으로 데이터 송신기(110)의 패킷화부(111)에서 데이터 패킷이 생성된다. 데이터 패킷이 데이터 수신기(120)에서 수신되는 경우, 수신된 데이터 패킷의 헤더에 포함된 정보는 데이터 수신기(120)가 그 데이터 패킷을 관리하는 데에 이용할 수 있다. 예를 들어, 데이터 패킷의 헤더는 그 데이터 패킷에 부여되는 일련번호를 포함할 수 있다.
데이터 송신기(110)로부터 전송되는 데이터 패킷의 예시적인 구조가 도 2를 참조하여 이하에서 더욱 상세히 논의된다. 도 2에 도시된 바와 같이, 예시적인 데이터 패킷(220)은 n-7 바이트의 데이터 페이로드 및 데이터 페이로드 앞의 7 바이트의 헤더를 포함한다. 데이터 패킷(220)의 길이 n은 가변적이다. 데이터 패킷(220)의 7 바이트의 헤더가 나타내는 정보는 수신 버퍼(123)에 저장되는 데이터 패킷들이 도 2에 도시된 X 개의 데이터 패킷의 블록(210) 단위로 관리될 수 있도록 한다. 데이터 블록(210)에 포함되는 패킷의 개수 X는 가변적이다.
데이터 패킷(220)의 헤더 중에서, 첫 번째 바이트(바이트 0)는 데이터 패킷(220)의 메시지 타입을 나타내고, 다음 2 바이트(바이트 1 및 바이트 2)는 데이터 패킷(220)이 속한 데이터 블록(210)의 인덱스를 나타내며, 다음 2 바이트(바이트 3 및 바이트 4)는 그 데이터 블록(210)에서 데이터 패킷(220)이 갖는 인덱스(예컨대, i)를 나타내고, 다음 2 바이트(바이트 5 및 바이트 6)는 그 데이터 블록(210)에 포함된 데이터 패킷의 개수(예컨대, X)를 나타낸다. 따라서, 데이터 수신기(120)의 패킷 수신부(121)가 데이터 패킷(220)을 수신하는 경우, 수신 버퍼(123)에서 데이터 패킷(220)이 저장될 위치가 데이터 패킷(220)의 헤더로부터 도출될 수 있다.
도 1을 다시 참조하여, 전송된 데이터 패킷들 중에서 유실된 데이터 패킷의 재전송을 위한 과정을 이하에서 설명한다.
데이터 수신기(120)의 패킷 유실 확인부(125)는 수신 버퍼(123)에 저장된 소정의 개수의 데이터 패킷의 집합(set) 내의 각 데이터 패킷이 데이터 송신기(110)로부터 수신되었는지 여부를 나타내는 정보(이하, “패킷 수신 여부 정보”라고도 지칭함)를 구성하고 관리한다. 예컨대, 이 정보는 지시자(indicator)들을 포함할 수 있고, 각각의 지시자는 데이터 패킷 집합 내의 복수의 데이터 패킷 중 대응하는 데이터 패킷이 데이터 송신기(110)로부터 수신되었는지 여부를 나타낼 수 있다. 각 지시자는 위 정보 내의 하나의 플래그 또는 비트일 수 있다. 패킷 수신 여부 정보는 하나의 데이터 패킷이 데이터 수신기(120)에서 수신될 때마다 그 데이터 패킷이 데이터 수신기(120)에서 수신되었음을 나타내도록 갱신될 수 있다.
도 3은 본 발명의 실시예에 따라 데이터 패킷 집합 내의 각 데이터 패킷의 수신 여부를 나타내도록 구성된 정보의 구조를 도시한다. 예시적인 실시예에서, 패킷 유실 확인부(125)는 도 2에 도시된 데이터 블록(210)의 소정의 서브-블록(sub-block)에 포함된 데이터 패킷 각각의 수신 여부를 나타내기 위해 도 3의 64비트 블록슬라이스(BlockSlice) 구조(310)를 유지한다. 블록슬라이스 구조(310)에서 비트 14부터 비트 63까지의 50 비트들은 서브-블록에 포함된 데이터 패킷들 각각의 수신 여부를 나타내는 플래그들이다. 서브-블록에 포함된 데이터 패킷이 수신될 때마다 패킷 유실 확인부(125)는 그 데이터 패킷에 대응하는 플래그 비트를 1로 설정한다. 즉, 하나의 블록슬라이스 구조는 50개의 데이터 패킷의 집합에 대하여 각 데이터 패킷이 데이터 수신기(120)에서 수신되었는지 여부를 나타내는 정보를 포함한다.
블록슬라이스 구조(310)에서, 비트 0부터 비트 4까지의 5 비트들은 데이터 블록(210)에서 서브-블록이 갖는 인덱스를 나타낸다. 예컨대, 이 5 비트의 서브-블록 인덱스가 0일 경우 50 비트의 패킷 수신 여부 플래그들은 데이터 블록(210)의 패킷 0부터 패킷 49까지의 50 개의 데이터 패킷의 수신 여부를 나타내고, 서브-블록 인덱스가 1일 경우 패킷 수신 여부 플래그들은 데이터 블록(210)의 패킷 50부터 패킷 99까지의 50개의 데이터 패킷의 수신 여부를 나타낸다.
블록슬라이스 구조(310)의 비트 5는 모든 패킷이 수신되었을 경우 1로 설정되고 그렇지 않으면 0으로 설정되며, 비트 6은 모든 패킷이 유실된 경우 1로 설정되고 그렇지 않으면 0으로 설정된다. 블록슬라이스 구조(310)의 비트 7은 현재 수신 중인 서브-블록에 대하여 1로 설정되고 그렇지 않으면 0으로 설정되는 프래그먼트(fragment) 비트이고, 비트 8부터 비트 13까지의 6 비트는 서브-블록 내의 현재까지 수신된 데이터 패킷이 갖는 인덱스(예컨대, 패킷(220)의 패킷 인덱스) 중 가장 큰 인덱스를 나타낸다. 이 수신 패킷의 최대 인덱스를 나타내는 6비트들은 데이터 패킷이 수신될 때마다 수신된 데이터 패킷의 인덱스와 비교되고, 그러한 비교의 결과에 따라 갱신될 수 있다.
다시 도 1을 참조하여, 패킷 유실 확인부(125)의 동작을 더 설명한다.
데이터 패킷 집합 내 복수의 데이터 패킷 중 대응하는 데이터 패킷의 수신 여부를 각각 나타내는 지시자들을 포함하는 정보에 기반하여, 패킷 유실 확인부(125)는 데이터 패킷 집합 내의 데이터 패킷 중에서 유실된 데이터 패킷이 존재하는지 여부를 판정한다. 추가적으로, 유실된 데이터 패킷의 존재 여부는 복수의 데이터 패킷 중 이전에 유실된 데이터 패킷을 나타내는 유실 정보 및 복수의 데이터 패킷 중 이전에 수신된 데이터 패킷의 일련번호 중 가장 큰 일련번호(예컨대, 블록슬라이스 구조(310) 내 수신 패킷의 최대 인덱스)에 기반하여 판정될 수 있다. 나아가, 패킷 유실 확인부(125)는 전술한 패킷 수신 여부 정보에 기반하여 데이터 패킷 집합 내의 데이터 패킷 중에서 유실된 데이터 패킷의 개수 및/또는 유실된 데이터 패킷이 무엇인지를 식별할 수 있다.
패킷 유실 확인부(125)가 데이터 패킷 집합 내의 데이터 패킷 중에서 유실된 데이터 패킷이 존재하는지 여부를 판정하는 동작은 패킷 수신 여부 정보 내의 지시자들에 대하여 논리 연산을 수행하는 동작을 포함할 수 있다. 예를 들어, 패킷 유실 확인부(125)는 도 4에 도시된 비트 연산(bit operation)을 이용하여 유실된 패킷의 존재 여부를 판정할 수 있다. 도 4는 일 예로서 패킷 0, 패킷 1, 패킷 3 및 패킷 7이 데이터 수신기(120)에서 차례로 수신되는 경우에 유실된 패킷의 존재 여부를 판정하는 과정을 보여준다. 편의상 도 4는 8 개의 비트에 대한 비트 연산을 도시하였다. 개시되는 실시예에서 기술된 비트 연산의 피연산자인 비트의 개수를 구체적으로 한정하는 것이 아님을 이해할 수 있을 것이다.
나아가, 전술한 논리 연산은 패킷 수신 여부 정보 내의 지시자들 각각이 다른 지시자와 무관하게 다루어지는 방식으로 수행될 수 있다. 소정의 실시예에서, 그 논리 연산은 비트별(bitwise) 연산(예컨대, 비트별 NOT 연산, 비트별 AND 연산, 비트별 XOR 연산, 비트별 OR 연산 등)일 수 있다.
이러한 논리 연산은 위 지시자들을 하나의 피연산자(operand)로 취하는 적어도 하나의 단항 연산(unary operation)를 포함할 수 있다. 이와 더불어, 또는 대안적으로, 위 논리 연산은 데이터 패킷 집합 내의 데이터 패킷 중에서 유실된 데이터 패킷이 존재하는지 여부를 판정하기 전에 상기 복수의 데이터 패킷 중에서 유실된 패킷을 나타내는 유실 정보 또는 데이터 패킷 집합 내의 수신된 데이터 패킷의 일련번호 중 가장 큰 일련번호를 나타내는 정보를, 상기 지시자들과 함께 두 개의 피연산자로 취하는 적어도 하나의 이항 연산(dyadic operation)을 포함할 수 있다. 예컨대, 도 4에 도시된 비트 연산은, 현재까지 수신된 패킷을 나타내는 비트들(이하에서 집합적으로 “A”라고 지칭되기도 함)에 대하여 비트별 NOT 연산을 수행하는 것, 그러한 NOT 연산의 결과(이하에서 집합적으로 “B”라고 지칭되기도 함) 및 이전까지 유실된 패킷을 나타내는 비트들(이하에서 집합적으로 “C”라고 지칭되기도 함)에 대해 비트별 XOR 연산을 수행하는 것, 그리고 수신된 패킷의 최대 인덱스(예컨대, 블록슬라이스 구조(310) 내 수신 패킷의 최대 인덱스)에 따른 마스크 비트들(이하에서 집합적으로 “MASK”라고 지칭되기도 함)과 그러한 XOR 연산의 결과(이하에서 집합적으로 “D”라고 지칭되기도 함)에 대해 비트별 AND 연산을 수행하는 것을 포함한다. 위 AND 연산의 결과(이하에서 집합적으로 “Y”라고 지칭되기도 함)가 0보다 크다면 유실된 패킷이 존재한다고 판정된다. 이러한 비트 연산은 패킷의 유실 발생 여부를 판정하는 데 필요한 시간복잡도를 O(1) 수준으로 낮출 수 있다.
도 4를 참조하여, 패킷 유실의 발생 여부를 판정하는 과정을 예로서 설명한다. 도 4에 도시된 예에서, A, B, C, D, Y 및 MASK 각각의 비트들은 우측부터 좌측으로 패킷 0 내지 패킷 8에 대응한다. 패킷 1이 수신된 경우, 현재까지 수신된 데이터 패킷은 패킷 0 및 패킷 1이므로 A는 00000011이고, 이전까지 유실된 데이터 패킷은 없었으므로 C는 00000000이다. 따라서, D는 11111100이다. 수신된 데이터 패킷들의 인덱스(즉, 0 및 1) 중 가장 큰 인덱스(즉, 1)에 따라 MASK는 00000011로 설정된다(MASK의 비트들 중 패킷 0부터 가장 큰 인덱스의 패킷에 대응하는 비트들이 1로 설정된다). 결국, Y는 00000000인바, 데이터 패킷의 유실이 발생하지 않았다고 판정된다. 이어서, 패킷 3이 수신된 경우, 현재까지 수신된 데이터 패킷은 패킷 0, 패킷 1 및 패킷 3이므로 A는 00001011이고, 이전까지 유실된 데이터 패킷은 없었으므로 C는 00000000이다. 따라서, D는 11110100이다. 수신된 데이터 패킷들의 인덱스 중 가장 큰 인덱스는 3이므로 MASK는 00001111이다. 결국, Y는 00000100인바, 데이터 패킷의 유실이 발생하였다고 판정된다. 이후에, 패킷 유실 확인부(125)는 Hamming Weight 알고리즘 및 Find First Bit 알고리즘 등을 이용하여 몇 개의 데이터 패킷이 유실되었는지 그리고 몇 번째 데이터 패킷이 유실되었는지 식별할 수 있다.
다시 도 1을 참조하여, 유실된 데이터 패킷의 재전송 과정을 계속해서 설명한다.
데이터 수신기(120)의 확인응답 메시지 전송부(127)는 유실된 데이터 패킷이 존재한다고 판정되는 경우 소정의 확인응답 메시지를 데이터 송신기(110)로 송신한다. 확인응답 메시지는 패킷 유실 확인부(125)에 의해 구성/갱신되는 패킷 수신 여부 정보를 포함한다. 예를 들어, 데이터 패킷의 유실이 발생하였다는 판정에 응답하여, 확인응답 메시지 전송부(127)는 64비트 블록슬라이스 구조(310)가 포함된 확인응답 메시지를 데이터 송신기(110)로 송신할 수 있고, 이때 블록슬라이스 구조(310)의 프래그먼트 비트는 1로 설정된다. 추가적으로, 확인응답 메시지 전송부(127)는 블록슬라이스 구조(310)를 포함하는 확인응답 메시지가 유실된 경우 이를 재전송하기 위한 시구간(time period)을 설정할 수 있다. 이 블록슬라이스 구조(310)가 나타내는 데이터 패킷 모두가 데이터 수신기(120)에서 수신되는 경우, 설정된 시구간은 해제될 수 있다. 예컨대, 시구간 설정 및 시구간 해제는 각각 타이머(timer)의 구동 및 제거를 수반할 수 있다. 만일 블록슬라이스 구조(310)의 비트 6이 1로 설정된 경우(블록슬라이스 구조(310)에 대응하는 서브-블록의 데이터 패킷 전부가 유실된 경우), 확인응답 메시지 전송부(127)는 블록슬라이스 구조(310)의 모든 비트(64 비트) 대신에 비트 0부터 비트 7까지의 8 비트를 포함하는 확인응답 메시지를 송신할 수 있다.
데이터 송신기(110)의 재전송 처리부(117)는 확인응답 메시지를 수신하도록 구성된다. 또한, 재전송 처리부(117)는 수신된 확인응답 메시지에 포함된 패킷 수신 여부 정보에 기반하여 데이터 패킷 집합 내의 데이터 패킷 중에서 새로이 유실된 데이터 패킷을 식별할 수 있다. 예를 들어, 프래그먼트 비트가 1로 설정된 블록슬라이스 구조(310)가 포함된 확인응답 메시지를 재전송 처리부(117)가 수신한 경우, 재전송 처리부(117)는 블록슬라이스 구조(310)에 기반하여 유실된 데이터 패킷이 무엇인지 식별할 수 있다. 이러한 식별은 패킷 유실 확인부(125)에서 유실된 데이터 패킷을 식별하는 것과 마찬가지 방식(예컨대, 도 4와 관련하여 앞서 언급된 비트 연산을 이용하는 방식)으로 수행될 수 있다.
유실된 데이터 패킷이 재전송 처리부(117)에서 식별되면, 그 데이터 패킷은 패킷 전송부(115)를 통해 재전송된다. 또한, 재전송 처리부(117)는 유실된 데이터 패킷의 식별에 응답하여 유실된 데이터의 재전송에 이용 가능한 시구간을 설정한다. 예컨대, 시구간 설정은 타이머의 구동을 수반할 수 있다. 이러한 예시적인 실시예에서, 재전송을 위한 타이머는 유실되었다고 식별된 데이터 패킷에 대해서 설정되고, 모든 데이터 패킷에 대하여 설정되지 않을 수 있다. 유실된 데이터 패킷은 설정된 시구간 동안 패킷 전송부(115)로부터 반복적으로 재전송될 수 있다. 예를 들어, 유실된 데이터 패킷이 패킷 전송부(115)에서 주기적으로 재전송될 수 있고, 그 주기는 데이터 통신 시스템(100)의 라운드 트립 시간(Round Trip Time)에 소정의 값(데이터 패킷의 전송 환경 및/또는 데이터 통신 시스템(100)의 특성에 따라 설정될 수 있음)을 더한 것일 수 있다.
이어서, 데이터 송신기(110)의 패킷 전송부(115)를 통해 재전송된 데이터 패킷이 데이터 수신기(120)의 패킷 수신부(121)에서 수신되는 경우, 패킷 유실 확인부(125)는 재전송된 데이터 패킷의 수신에 따라 패킷 수신 여부 정보를 갱신하고, 확인응답 메시지 전송부(127)는 갱신된 패킷 수신 여부 정보를 포함하는 확인응답 메시지를 데이터 송신기(110)로 송신한다. 예를 들어, 재전송된 데이터 패킷의 수신에 응답하여 확인응답 메시지 전송부(127)로부터 송신되는 확인응답 메시지는 프래그먼트 비트가 0으로 설정된 블록슬라이스 구조(310)를 포함할 수 있다. 이 확인응답 메시지는 앞서 유실된 데이터 패킷이 존재한다는 판정에 응답하여 송신되는 확인응답 메시지와 상이한 타입을 가지는바, 블록슬라이스 구조(310)의 프래그먼트 비트에 의해 이러한 두 가지 타입의 확인응답 메시지가 서로 구별된다.
추가적으로, 또 다른 타입의 확인응답 메시지가 확인응답 메시지 전송부(127)로부터 데이터 송신기(110)에 송신될 수도 있는데, 가령 블록슬라이스 구조(310)가 커버하는 서브-블록의 모든 데이터 패킷이 수신된 경우 이를 나타내는 비트(블록슬라이스 구조(310)의 비트 5)를 1로 설정된 64 비트 블록슬라이스 구조(310)를 포함하는 확인응답 메시지가 데이터 송신기(110)에 송신될 수 있고, 대안적으로는 블록슬라이스 구조(310)에서 64 비트 대신 비트 0부터 비트 7까지의 8 비트를 포함하는 확인응답 메시지가 데이터 송신기(110)에 송신될 수 있다. 이러한 확인응답 메시지는 불필요한 데이터 패킷 재전송을 방지하기 위하여 송신된다.
재전송된 데이터 패킷의 수신에 응답하여 송신된 확인응답 메시지를 데이터 송신기(110)의 재전송 처리부(117)가 수신하는 경우(예컨대, 프래그먼트 비트가 0으로 설정된 블록슬라이스 구조(310)가 포함된 확인응답 메시지를 재전송 처리부(117)가 수신한 경우), 재전송 처리부(117)는 그 데이터 패킷의 재전송을 위한 시구간의 설정을 해제하는바, 이로써 이전에는 유실되었으나 재전송 이후 데이터 수신기(120)에서 수신된 데이터 패킷이 불필요하게 반복적으로 재전송되는 것을 방지한다. 시구간의 설정이 타이머의 구동을 수반하는 실시예에서, 시구간 설정의 해제는 타이머를 제거하는 것을 수반한다.
도 5는 본 발명의 실시예에 따라 데이터 송신기에서 데이터 수신기로 데이터 패킷들이 전달되는 절차를 설명하기 위한 도면이다.
데이터 송신기(110)는 패킷 0을 전송한다(501). 데이터 수신기(120)는 패킷 0을 수신하고, 패킷 0의 수신에 따라 패킷 수신 여부 정보를 갱신한다(502).
데이터 송신기(110)는 패킷 1을 전송한다(503). 그러나, 도 5에 도시된 예에서, 패킷 1은 데이터 수신기(120)에 의해 수신되지 않은 채 유실되었다.
데이터 송신기(110)는 패킷 2를 전송한다(505). 데이터 수신기(120)는 패킷 2를 수신하고, 패킷 2의 수신에 따라 패킷 수신 여부 정보를 갱신하며, 패킷의 유실이 발생하였음을 판정한다(504). 나아가, 데이터 수신기(120)는 패킷 1이 유실되었음을 식별할 수 있다. 예를 들어, 이러한 판정 및 식별은 도 4와 관련되어 기술된 비트 연산을 이용할 수 있다. 유실된 패킷이 존재한다는 판정에 응답하여, 데이터 수신기(120)는 갱신된 패킷 수신 여부 정보를 포함하는 확인응답 메시지 0을 데이터 송신기(110)에 송신한다(506). 갱신된 패킷 수신 여부 정보는 패킷 0 및 패킷 2는 데이터 수신기(120)에서 수신되었고 패킷 1은 데이터 수신기(120)에서 수신되지 않았음을 나타낸다. 그러나, 도 5에 도시된 예에서, 확인응답 메시지 0은 데이터 송신기(110)에 전달되지 않은 채 유실되었다.
데이터 송신기(110)는 패킷 3을 전송한다(507). 그러나, 도 5의 예에서, 패킷 3은 데이터 수신기(120)에 의해 수신되지 않은 채 유실되었다.
데이터 송신기(110)는 패킷 4를 전송한다(509). 데이터 수신기(120)는 패킷 4를 수신하고, 패킷 4의 수신에 따라 패킷 수신 여부 정보를 갱신하며, 패킷 수신 여부 정보에 기반하여 패킷의 유실이 발생하였음을 판정한다(508). 나아가, 데이터 수신기(120)는 패킷 4가 유실되었음을 식별할 수 있다. 유실된 패킷이 존재한다는 판정에 응답하여, 데이터 수신기(120)는 갱신된 패킷 수신 여부 정보를 포함하는 확인응답 메시지 1을 데이터 송신기(110)에 송신한다(510). 갱신된 패킷 수신 여부 정보는 패킷 0, 패킷 2 및 패킷 4는 데이터 수신기(120)에서 수신되었고 패킷 1 및 패킷 3은 데이터 수신기(120)에서 수신되지 않았음을 나타낸다.
한편, 데이터 송신기(110)는 패킷 5의 전송(511), 패킷 6의 전송(513) 및 패킷 7의 전송(515)을 수행한다. 데이터 수신기(120)는 패킷 5, 패킷 6 및 패킷 7을 각각 수신할 때 패킷 수신 여부 정보를 차례로 갱신한다(512, 514 및 516).
데이터 송신기(110)가 확인응답 메시지 1을 수신하는 경우, 데이터 송신기(110)는 확인응답 메시지 1로부터 유실된 패킷이라고 식별되는 패킷 1의 재전송을 위한 타이머를 설정하고(517), 패킷 1을 재전송한다(519). 또한, 데이터 송신기(110)는 확인응답 메시지 1로부터 역시 유실된 패킷이라고 식별되는 패킷 3의 재전송을 위한 타이머를 설정하고(521), 패킷 3을 재전송한다(523).
데이터 수신기(120)는 재전송된 패킷 1을 수신하고, 패킷 1의 수신에 따라 패킷 수신 여부 정보를 갱신하며, 재전송된 패킷이 수신되었음을 확인한다(518). 이어서, 데이터 수신기(120)는 갱신된 패킷 수신 여부 정보를 포함하는 확인응답 메시지 2를 데이터 송신기(110)에 송신한다(520). 갱신된 패킷 수신 여부 정보는 패킷 0 내지 패킷 2 및 패킷 4 내지 패킷 7이 데이터 수신기(120)에서 수신되었고 패킷 3은 데이터 수신기(120)에서 수신되지 않았음을 나타낸다. 그러나, 도 5에 도시된 예에서, 확인응답 메시지 2는 데이터 송신기(110)에 전달되지 않은 채 유실되었다.
데이터 수신기(120)는 재전송된 패킷 3을 수신하고, 패킷 3의 수신에 따라 패킷 수신 여부 정보를 갱신하며, 재전송된 패킷이 수신되었음을 확인한다(522). 이어서, 데이터 수신기(120)는 갱신된 패킷 수신 여부 정보를 포함하는 확인응답 메시지 3을 데이터 송신기(110)에 송신한다(524). 갱신된 패킷 수신 여부 정보는 패킷 0 내지 패킷 7이 데이터 수신기(120)에서 수신되었음을 나타낸다.
데이터 송신기(110)가 확인응답 메시지 3을 수신하는 경우, 데이터 송신기(110)는 확인응답 메시지 3에 포함된 패킷 수신 여부 정보에 기반하여 기존에 타이머가 설정된 패킷 1 및 패킷 3이 데이터 수신기(120)에서 수신되었음을 확인하고 패킷 1 에 대한 타이머 및 패킷 3에 대한 타이머를 제거한다.
한편, 본 발명의 실시예는 본 명세서에서 기술한 방법들을 컴퓨터상에서 수행하기 위한 프로그램을 포함하는 컴퓨터 판독가능 저장 매체를 포함할 수 있다. 상기 컴퓨터 판독가능 저장 매체는 프로그램 명령, 로컬 데이터 파일, 로컬 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체는 본 발명을 위하여 특별히 설계되고 구성된 것들일 수 있다. 컴퓨터 판독가능 저장 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광 기록 매체, 플롭티컬 디스크와 같은 자기-광 매체, 및 롬, 램, 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함할 수 있다.
이상에서 대표적인 실시예를 통하여 본 발명에 대하여 상세하게 설명하였으나, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 상술한 실시예에 대하여 본 발명의 범주에서 벗어나지 않는 한도 내에서 다양한 변형이 가능함을 이해할 것이다.
그러므로 본 발명의 권리범위는 설명된 실시예에 국한되어 정해져서는 안 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.

Claims (33)

  1. 비연결 지향형 프로토콜(connectionless-oriented protocol)을 이용한 데이터 통신 방법으로서,
    복수의 데이터 패킷 중 적어도 하나가 데이터 송신기로부터 수신됨에 따라 상기 복수의 데이터 패킷 중 대응하는 데이터 패킷의 수신 여부를 각각 나타내도록 구성된 플래그 비트(flag bit)들에 대하여 적어도 하나의 비트별 연산(bitwise operation)을 수행하여 상기 복수의 데이터 패킷 중 유실된 데이터 패킷의 존재 여부를 판정하는 단계; 및
    상기 판정 결과 유실된 데이터 패킷이 존재하는 경우, 상기 플래그 비트들을 포함하는 확인응답 메시지(acknowledgement message)를 상기 데이터 송신기로 송신하는 단계를 포함하는, 데이터 통신 방법.
  2. 제1항에 있어서,
    상기 유실된 데이터 패킷이 상기 데이터 송신기로부터의 재전송을 통해 수신되는 경우, 상기 재전송된 데이터 패킷의 수신에 따라 갱신된 상기 플래그 비트들을 포함하는 다른 확인응답 메시지를 상기 데이터 송신기로 송신하는 단계를 더 포함하는, 데이터 통신 방법.
  3. 비연결 지향형 프로토콜을 이용한 데이터 통신 방법으로서,
    복수의 데이터 패킷 중 대응하는 데이터 패킷이 데이터 수신기에 수신되었는지 여부를 각각 나타내는 플래그 비트들을 포함하는 확인응답 메시지를 상기 데이터 수신기로부터 수신하는 경우, 상기 플래그 비트들에 대한 적어도 하나의 비트별 연산을 수행하여 상기 복수의 데이터 패킷 중 유실된 데이터 패킷을 식별하는 단계; 및
    상기 식별된 데이터 패킷을 상기 데이터 수신기로 재전송하는 단계를 포함하는, 데이터 통신 방법.
  4. 제3항에 있어서,
    상기 재전송에 이용 가능한 시구간을 설정하는 단계; 및
    상기 시구간 동안 상기 식별된 데이터 패킷을 반복적으로 재전송하는 단계를 더 포함하는, 데이터 통신 방법.
  5. 비연결 지향형 프로토콜을 이용하여 데이터 통신을 수행하는 데이터 수신기로서,
    복수의 데이터 패킷 중 적어도 하나가 데이터 송신기로부터 수신됨에 따라 상기 복수의 데이터 패킷 중 대응하는 데이터 패킷의 수신 여부를 각각 나타내도록 구성된 플래그 비트들에 대하여 적어도 하나의 비트별 연산을 수행하여 상기 복수의 데이터 패킷 중 유실된 데이터 패킷의 존재 여부를 판정하는 패킷 유실 확인부; 및
    상기 판정 결과 유실된 데이터 패킷이 존재하는 경우, 상기 플래그 비트들을 포함하는 확인응답 메시지를 상기 데이터 송신기로 송신하는 확인응답 메시지 전송부를 포함하는, 데이터 수신기.
  6. 제5항에 있어서,
    상기 확인응답 메시지 전송부는 또한, 상기 유실된 데이터 패킷이 상기 데이터 송신기로부터의 재전송을 통해 수신되는 경우, 상기 재전송된 데이터 패킷의 수신에 따라 갱신된 상기 플래그 비트들을 포함하는 다른 확인응답 메시지를 상기 데이터 송신기로 송신하는, 데이터 수신기.
  7. 비연결 지향형 프로토콜을 이용하여 데이터 통신을 수행하는 데이터 송신기로서,
    복수의 데이터 패킷 중 대응하는 데이터 패킷이 데이터 수신기에 수신되었는지 여부를 각각 나타내는 플래그 비트들을 포함하는 확인응답 메시지를 상기 데이터 수신기로부터 수신하는 경우, 상기 플래그 비트들에 대한 적어도 하나의 비트별 연산을 수행하여 상기 복수의 데이터 패킷 중 유실된 데이터 패킷을 식별하는 재전송 처리부; 및
    상기 식별된 데이터 패킷을 상기 데이터 수신기로 재전송하는 패킷 전송부를 포함하는, 데이터 송신기.
  8. 제7항에 있어서,
    상기 재전송 처리부는 또한 상기 재전송에 이용 가능한 시구간을 설정하고, 상기 패킷 전송부는 또한 상기 시구간 동안 상기 식별된 데이터 패킷을 반복적으로 재전송하는, 데이터 송신기.
  9. 비연결 지향형 프로토콜(connectionless-oriented protocol)을 이용한 데이터 통신 방법으로서,
    복수의 데이터 패킷 중 대응하는 데이터 패킷이 데이터 송신기로부터 수신되었는지 여부를 각각 나타내는 지시자(indicator)들을 구성하는 단계;
    상기 지시자들에 대한 논리 연산(logical operation)을 수행하여 상기 복수의 데이터 패킷 중 유실된 데이터 패킷의 존재 여부를 판정하는 단계; 및
    상기 판정 결과 유실된 데이터 패킷이 존재하는 경우, 상기 지시자들을 포함하는 확인응답 메시지(acknowledgement message)를 상기 데이터 송신기로 송신하는 단계를 포함하는,
    데이터 통신 방법.
  10. 제9항에 있어서,
    상기 논리 연산은 상기 지시자들 각각이 상기 지시자들 중 다른 지시자와 무관하게 다루어지는 방식으로 수행되는,
    데이터 통신 방법.
  11. 제9항에 있어서,
    상기 확인응답 메시지의 송신 이후에 상기 데이터 송신기로부터 재전송된 데이터 패킷을 수신하는 것에 응답하여, 상기 재전송된 데이터 패킷의 수신에 따라 갱신된 상기 지시자들을 포함하는 다른 확인응답 메시지를 상기 데이터 송신기로 송신하는 단계를 더 포함하는,
    데이터 통신 방법.
  12. 제9항에 있어서,
    상기 논리 연산은, 상기 복수의 데이터 패킷 중 이전에 유실된 데이터 패킷을 나타내는 유실 정보 및 상기 복수의 데이터 패킷 중 이전에 수신된 데이터 패킷의 일련번호 중 가장 큰 일련번호에 기반하여 수행되는,
    데이터 통신 방법.
  13. 제9항에 있어서,
    상기 지시자들에 기반하여, 상기 복수의 데이터 패킷 중 몇 개의 데이터 패킷이 유실되었는지 및 상기 복수의 데이터 패킷 중 어느 데이터 패킷이 유실되었는지 중 적어도 하나를 식별하는 단계를 더 포함하는,
    데이터 통신 방법.
  14. 제9항에 있어서,
    상기 확인응답 메시지를 상기 데이터 송신기로 재전송하는 데에 이용 가능한 시구간(time period)을 설정하는 단계를 포함하는,
    데이터 통신 방법.
  15. 제1항에 있어서,
    상기 비연결 지향형 프로토콜은 사용자 데이터그램 프로토콜(User Datagram Protocol: UDP)을 포함하는,
    데이터 통신 방법.
  16. 비연결 지향형 프로토콜을 이용한 데이터 통신 방법으로서,
    복수의 데이터 패킷 중 대응하는 데이터 패킷이 데이터 수신기에 수신되었는지 여부를 각각 나타내는 지시자들을 포함하는 확인응답 메시지를 상기 데이터 수신기로부터 수신하는 단계;
    상기 지시자들에 대한 논리 연산을 수행하여 상기 복수의 데이터 패킷 중 유실된 데이터 패킷을 식별하는 단계; 및
    상기 유실된 데이터 패킷의 식별에 응답하여, 상기 유실된 데이터 패킷을 상기 데이터 수신기로 재전송하는 데에 이용 가능한 시구간을 설정하는 단계를 포함하는,
    데이터 통신 방법.
  17. 제16항에 있어서,
    상기 논리 연산은 상기 지시자들 각각이 상기 지시자들 중 다른 지시자와 무관하게 다루어지는 방식으로 수행되는,
    데이터 통신 방법.
  18. 제16항에 있어서,
    상기 유실된 데이터 패킷이 재전송된 이후에 상기 데이터 수신기에서 수신되었음을 나타내도록 갱신된 상기 지시자들을 포함하는 다른 확인응답 메시지를 상기 데이터 수신기로부터 수신하는 것에 응답하여, 상기 유실된 데이터 패킷의 추가적인 재전송을 방지하기 위하여 상기 시구간의 설정을 해제하는 단계를 더 포함하는,
    데이터 통신 방법.
  19. 제16항에 있어서,
    상기 시구간 동안 상기 유실된 데이터 패킷을 반복적으로 재전송하는 단계를 더 포함하는,
    데이터 통신 방법.
  20. 제16항에 있어서,
    상기 비연결 지향형 프로토콜은 사용자 데이터그램 프로토콜을 포함하는,
    데이터 통신 방법.
  21. 제1항 내지 제4항 및 제9항 내지 제20항 중 어느 한 항에 기재된 방법을 실행하기 위한 컴퓨터 프로그램이 저장된 컴퓨터 판독가능 저장 매체.
  22. 비연결 지향형 프로토콜을 이용하여 데이터 통신을 수행하는 데이터 수신기로서,
    복수의 데이터 패킷 중 대응하는 데이터 패킷이 데이터 송신기로부터 수신되었는지 여부를 각각 나타내는 지시자들을 구성하고, 상기 지시자들에 대한 논리 연산을 수행하여 상기 복수의 데이터 패킷 중 유실된 데이터 패킷의 존재 여부를 판정하는 동작을 수행하는 패킷 유실 확인부; 및
    상기 판정 결과 유실된 데이터 패킷이 존재하는 경우, 상기 지시자들을 포함하는 확인응답 메시지를 상기 데이터 송신기로 송신하는 확인응답 메시지 전송부를 포함하는,
    데이터 수신기.
  23. 제22항에 있어서,
    상기 논리 연산은 상기 지시자들 각각이 상기 지시자들 중 다른 지시자와 무관하게 다루어지는 방식으로 수행되는,
    데이터 수신기.
  24. 제22항에 있어서,
    상기 패킷 유실 확인부는 또한, 상기 확인응답 메시지의 송신 이후에 상기 데이터 송신기로부터 재전송된 데이터 패킷의 수신에 따라 상기 지시자들을 갱신하고,
    상기 확인응답 메시지 전송부는 또한, 상기 재전송된 데이터 패킷의 수신에 응답하여, 상기 갱신된 지시자들을 포함하는 다른 확인응답 메시지를 상기 데이터 송신기로 송신하는,
    데이터 수신기.
  25. 제22항에 있어서,
    상기 논리 연산은 상기 복수의 데이터 패킷 중 이전에 유실된 데이터 패킷을 나타내는 유실 정보 및 상기 복수의 데이터 패킷 중 이전에 수신된 데이터 패킷의 일련번호 중 가장 큰 일련번호에 기반하는,
    데이터 수신기.
  26. 제22항에 있어서,
    상기 패킷 유실 확인부는 또한, 상기 지시자들에 기반하여, 상기 복수의 데이터 패킷 중 몇 개의 데이터 패킷이 유실되었는지 및 상기 복수의 데이터 패킷 중 어느 데이터 패킷이 유실되었는지 중 적어도 하나를 식별하는,
    데이터 수신기.
  27. 제22항에 있어서,
    상기 확인응답 메시지 전송부는 또한, 상기 확인응답 메시지를 상기 데이터 송신기로 재전송하는 데에 이용 가능한 시구간을 설정하는,
    데이터 수신기.
  28. 제22항에 있어서,
    상기 비연결 지향형 프로토콜은 사용자 데이터그램 프로토콜을 포함하는,
    데이터 수신기.
  29. 비연결 지향형 프로토콜을 이용하여 데이터 통신을 수행하는 데이터 송신기로서,
    복수의 데이터 패킷을 데이터 수신기에 전송하도록 구성된 패킷 전송부; 및
    상기 복수의 데이터 패킷 중 대응하는 데이터 패킷이 상기 데이터 수신기에 수신되었는지 여부를 각각 나타내는 지시자들을 포함하는 확인응답 메시지를 상기 데이터 수신기로부터 수신하고, 상기 지시자들에 대한 논리 연산을 수행하여 상기 복수의 데이터 패킷 중 유실된 데이터 패킷을 식별하는 동작을 수행하며, 상기 유실된 데이터 패킷의 식별에 응답하여, 상기 유실된 데이터 패킷을 상기 데이터 수신기로 재전송하는 데에 이용 가능한 시구간을 설정하는 재전송 처리부를 포함하는,
    데이터 송신기.
  30. 제29항에 있어서,
    상기 논리 연산은 상기 지시자들 각각이 상기 지시자들 중 다른 지시자와 무관하게 다루어지는 방식으로 수행되는,
    데이터 송신기.
  31. 제29항에 있어서,
    상기 재전송 처리부는 또한, 상기 유실된 데이터 패킷이 재전송된 이후에 상기 데이터 수신기에서 수신되었음을 나타내도록 갱신된 상기 지시자들을 포함하는 다른 확인응답 메시지를 상기 데이터 수신기로부터 수신하는 것에 응답하여, 상기 유실된 데이터 패킷의 추가적인 재전송을 방지하기 위하여 상기 시구간의 설정을 해제하는,
    데이터 송신기.
  32. 제29항에 있어서,
    상기 패킷 전송부는 또한, 상기 다른 확인응답 메시지를 상기 시구간 동안 상기 유실된 데이터 패킷을 반복적으로 재전송하는,
    데이터 송신기.
  33. 제29항에 있어서,
    상기 비연결 지향형 프로토콜은 사용자 데이터그램 프로토콜을 포함하는,
    데이터 송신기.
PCT/KR2013/012348 2013-10-28 2013-12-27 비연결 지향형 프로토콜을 이용한 데이터 통신 WO2015064841A1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2013-0128621 2013-10-28
KR1020130128621A KR101611663B1 (ko) 2013-10-28 2013-10-28 비연결 지향형 프로토콜을 이용한 데이터 통신

Publications (1)

Publication Number Publication Date
WO2015064841A1 true WO2015064841A1 (ko) 2015-05-07

Family

ID=52995312

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2013/012348 WO2015064841A1 (ko) 2013-10-28 2013-12-27 비연결 지향형 프로토콜을 이용한 데이터 통신

Country Status (4)

Country Link
US (1) US20150117176A1 (ko)
KR (1) KR101611663B1 (ko)
CN (1) CN104579597A (ko)
WO (1) WO2015064841A1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017000117A1 (zh) * 2015-06-29 2017-01-05 华为技术有限公司 数据处理的方法及接收设备
US9999049B2 (en) * 2015-08-31 2018-06-12 Qualcomm Incorporated Avoiding unnecessary protocol data unit (PDU) transmissions
CN111404648A (zh) * 2020-02-20 2020-07-10 视联动力信息技术股份有限公司 一种数据发送方法和装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040024629A (ko) * 2002-09-12 2004-03-22 (주) 솔빅스테크놀로지 유디피 제어시스템
US20080244001A1 (en) * 2007-03-27 2008-10-02 Kencast, Inc. Systems, methods, apparatus and computer program products for providing packet-level fec with higher throughput using user datagram protocol (udp)
US20090198830A1 (en) * 2008-02-06 2009-08-06 Inventec Corporation Method of adjusting network data sending speed according to data processing speed at client
KR20100025066A (ko) * 2008-08-27 2010-03-09 (주) 엘지텔레콤 무선 네트워크에서의 유디피를 이용한 데이터 전송 시스템및 그 방법
US20110219287A1 (en) * 2010-03-05 2011-09-08 Microsoft Corporation Remote presentation over lossy transport with forward error correction

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5151899A (en) * 1991-02-11 1992-09-29 Digital Equipment Corporation Tracking sequence numbers in packet data communication system
US6282267B1 (en) * 1998-03-26 2001-08-28 Bell Atlantic Network Services, Inc. Network planning traffic measurement program
US20050185604A1 (en) * 2004-02-23 2005-08-25 Samsung Electronics Co., Ltd. Method and apparatus for transferring connectionless-oriented data packets
US8345605B2 (en) * 2008-02-21 2013-01-01 Texas Instruments Incorporated Transmission of bundled feedback in wireless networks
US8873543B2 (en) * 2008-03-07 2014-10-28 Arcsoft (Shanghai) Technology Company, Ltd. Implementing a high quality VOIP device
JP5412917B2 (ja) * 2009-03-27 2014-02-12 富士通株式会社 誤り訂正制御装置、誤り訂正制御方法およびメディアデータ配信システム
US8136018B2 (en) * 2009-08-24 2012-03-13 Sony Computer Entertainment Inc. Network communication protocol for large scale distribution of streaming content
CN102045362B (zh) * 2010-12-21 2014-01-15 北京高森明晨信息科技有限公司 一种基于udp协议的数据传输方法和系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040024629A (ko) * 2002-09-12 2004-03-22 (주) 솔빅스테크놀로지 유디피 제어시스템
US20080244001A1 (en) * 2007-03-27 2008-10-02 Kencast, Inc. Systems, methods, apparatus and computer program products for providing packet-level fec with higher throughput using user datagram protocol (udp)
US20090198830A1 (en) * 2008-02-06 2009-08-06 Inventec Corporation Method of adjusting network data sending speed according to data processing speed at client
KR20100025066A (ko) * 2008-08-27 2010-03-09 (주) 엘지텔레콤 무선 네트워크에서의 유디피를 이용한 데이터 전송 시스템및 그 방법
US20110219287A1 (en) * 2010-03-05 2011-09-08 Microsoft Corporation Remote presentation over lossy transport with forward error correction

Also Published As

Publication number Publication date
CN104579597A (zh) 2015-04-29
US20150117176A1 (en) 2015-04-30
KR101611663B1 (ko) 2016-04-12
KR20150048489A (ko) 2015-05-07

Similar Documents

Publication Publication Date Title
JP5859669B2 (ja) 通信ネットワークにおける配送ルート変化に基づくパケットオーダリング
US7876751B2 (en) Reliable link layer packet retry
CN104025525B (zh) 用于发送分组的方法和设备以及交换机装置
Paxson et al. Known TCP implementation problems
US7756036B2 (en) Synchronous data communication
US9577791B2 (en) Notification by network element of packet drops
US20110161777A1 (en) Reliable Packet Cut-Through
EP2978171B1 (en) Communication method, communication device, and communication program
KR100842281B1 (ko) 무선 네트워크상에서 경로 회복 알림을 통하여 전송 제어 프로토콜의 성능을 관리하는 장치 및 그 방법
JP5364889B2 (ja) ワイヤレス通信システムにおけるステータス・レポート・トリガ
WO2009021417A1 (fr) Procédé, système et dispositif de transmission et de réception de données de réseau
WO2016068386A1 (ko) 데이터 송신 장치 및 이를 이용하는 데이터 통신 방법
WO2012169867A2 (en) Method and system of transmitting and receiving fragmentable data units in a wireless communication environment
US8335958B2 (en) Method of communication, in particular with capability of frame abortion or retransmission indication, between a transmitter and a receiver based on frames and corresponding communication node
JP2013243694A (ja) 少なくとも1つのtcpデータセグメントストリームをインラインコンテンツ解析にサブミットするための方法及びデバイス、その方法を実施するための1つ又は複数の命令シーケンスを保持するコンピュータ可読媒体、並びにコンピュータプログラム製品
US10505677B2 (en) Fast detection and retransmission of dropped last packet in a flow
CN109981385B (zh) 一种实现丢包检测的方法、装置和系统
WO2015064841A1 (ko) 비연결 지향형 프로토콜을 이용한 데이터 통신
US6996105B1 (en) Method for processing data packet headers
CN106470497A (zh) 一种数据传输方法、无线链路控制发送及接收实体
WO2019022418A1 (ko) 무선 통신 시스템에서 단말, 기지국 및 이의 통신 방법
US7535916B2 (en) Method for sharing a transport connection across a multi-processor platform with limited inter-processor communications
WO2012002778A2 (en) Methods and devices for performing an automatic repeat request reset in a wireless communication environment
WO2011116577A1 (zh) 数据重传方法及装置
WO2016080682A1 (ko) 임의의 통신망 오류에 대처 가능한 이중화 can 통신 장치 및 방법, 그 방법을 수행하기 위한 기록 매체

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

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: NOTING OF LOSS OF RIGHTS PURSUANT TO RULE 112(1) EPC (EPO FORM 1205 DATED 05/08/2016)

122 Ep: pct application non-entry in european phase

Ref document number: 13896245

Country of ref document: EP

Kind code of ref document: A1