WO2007043373A9 - 通信装置 - Google Patents
通信装置Info
- Publication number
- WO2007043373A9 WO2007043373A9 PCT/JP2006/319661 JP2006319661W WO2007043373A9 WO 2007043373 A9 WO2007043373 A9 WO 2007043373A9 JP 2006319661 W JP2006319661 W JP 2006319661W WO 2007043373 A9 WO2007043373 A9 WO 2007043373A9
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- packet
- data
- unit
- communication device
- ack
- Prior art date
Links
- 238000004891 communication Methods 0.000 title claims abstract description 368
- 230000005540 biological transmission Effects 0.000 claims abstract description 401
- 230000004044 response Effects 0.000 claims abstract description 85
- 238000001514 detection method Methods 0.000 claims description 72
- 238000004364 calculation method Methods 0.000 claims description 59
- 238000012546 transfer Methods 0.000 claims description 58
- 238000000034 method Methods 0.000 claims description 51
- 238000012790 confirmation Methods 0.000 claims description 27
- 238000004519 manufacturing process Methods 0.000 claims description 7
- 230000001934 delay Effects 0.000 claims description 4
- 238000012545 processing Methods 0.000 abstract description 450
- 102100036409 Activated CDC42 kinase 1 Human genes 0.000 description 402
- 230000006870 function Effects 0.000 description 151
- 238000007726 management method Methods 0.000 description 98
- 238000010586 diagram Methods 0.000 description 78
- 238000012986 modification Methods 0.000 description 38
- 230000004048 modification Effects 0.000 description 38
- 230000008569 process Effects 0.000 description 38
- 230000000694 effects Effects 0.000 description 30
- 230000010076 replication Effects 0.000 description 27
- 230000008859 change Effects 0.000 description 15
- 238000012508 change request Methods 0.000 description 7
- 239000000284 extract Substances 0.000 description 6
- 239000004148 curcumin Substances 0.000 description 5
- 230000007423 decrease Effects 0.000 description 5
- 230000003111 delayed effect Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000010354 integration Effects 0.000 description 4
- 230000003213 activating effect Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 3
- 238000010276 construction Methods 0.000 description 3
- 230000003247 decreasing effect Effects 0.000 description 3
- 230000015556 catabolic process Effects 0.000 description 2
- 238000006731 degradation reaction Methods 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 230000000717 retained effect Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000013479 data entry Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 239000000523 sample Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements 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/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1829—Arrangements specially adapted for the receiver end
- H04L1/1832—Details of sliding window management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/19—Flow control; Congestion control at layers above the network layer
- H04L47/193—Flow control; Congestion control at layers above the network layer at the transport layer, e.g. TCP related
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/26—Flow control; Congestion control using explicit feedback to the source, e.g. choke packets
- H04L47/263—Rate modification at the source after receiving feedback
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/28—Flow control; Congestion control in relation to timing considerations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/163—In-band adaptation of TCP data exchange; In-band control procedures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements 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/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1867—Arrangements specially adapted for the transmitter end
- H04L1/1887—Scheduling and prioritising arrangements
Definitions
- the present invention relates to a communication apparatus, and more particularly to a communication apparatus that performs data transfer using a transmission control protocol (hereinafter referred to as TCP) via an Internet Protocol (hereinafter referred to as IP) network.
- TCP transmission control protocol
- IP Internet Protocol
- FIG. 1 is a sequence diagram showing a flow of data transfer in TCP.
- the window size means the amount of data that the transmitting device can continue to send data to the receiving device without obtaining an ACK packet.
- This window size generally indicates the upper limit (hereinafter referred to as RWIN-MAX) of the maximum amount of data that can be held by the receiving device, and may be increased or decreased by the transmitting device depending on the network congestion status.
- RWIN-MAX the upper limit of the maximum amount of data that can be held by the receiving device
- the receiving side device has an ACK number of 10 by ACK packet P11. And that it is a window size force. Therefore, the transmission side device can transmit the data packets P21, P22, P23, and P24 of sequence numbers 10 to 13 without waiting for ACK packets for the four data packets.
- the reception side device has a reception buffer for temporarily holding data received by the reception side device, and can generally secure data for RWIN-MAX.
- the free space in the reception buffer decreases due to packet reception by the transmitting side device, and increases by passing the received data to an application program (hereinafter simply referred to as an application).
- an application an application program
- the receiving device sends a packet called a window update notification packet to notify the transmitting device that the free space in the receiving buffer has increased. have.
- the window size decreases in ACK packets P12 and P13, and finally becomes zero.
- the received data packets P21, P22, P23, and P24 are still held in the reception buffer, and the received data is not yet delivered to the application.
- the receiving side device delivers the received data to the application, it transmits a window update notification packet P14 to notify the transmitting side device that only four window sizes are empty.
- the transmission side device receives the window update notification packet P14, the transmission side device resumes transmission of the subsequent data packet P25, P26, P27, and P28.
- the difference between the time at which the receiving side device transmits ACK packet PI 1 and the time at which it receives data packet P21 transmitted from the transmitting side device is called the response delay time (RTT).
- RTT response delay time
- TCP has a function described in Non-Patent Document 1, that is, a high-speed retransmission function.
- FIG. 2 is a sequence diagram showing packet transmission / reception regarding the high-speed retransmission function.
- data packets out of the data packets that are transmitted also by the transmitting side device Assume that P284 loses a packet and does not reach the receiving device. At this time, the receiving side device receives the data packets P285, P286, and P287 after the lost data packet P284, and determines that the arrival order is switched due to the power lost by the data packet P284 or for some reason. it can. Therefore, the receiving side device immediately transmits the ACK packet P273 in order to notify the transmitting side device that the data packet P284 has arrived when the data packet P285 is received. This ACK packet is called an immediate confirmation response.
- this ACK packet P273 is the same ACK packet as the previously transmitted ACK packet P272, it may be a duplicate ACK. In the following, this is described as a duplicate ACK. Thereafter, the receiving side apparatus transmits duplicate ACK packets P274 and P275 similar to the ACK packet P272 until the data packet P284 is received.
- the transmitting side device that receives the duplicate ACK packets P273, P274, and P275 detects that the packet indicated by the duplicate ACK packet has been lost by receiving the same ACK packet three times in succession. Immediately resend data packet P288. This immediate retransmission process is called Fast Retransmission! Uh.
- This high-speed retransmission enables a quick recovery when a packet loss occurs much earlier than a retransmission based on a timeout described later.
- the RWIN-MAX is increased by increasing the RWIN-MAX because of its poor reception performance. May arrive, which may reduce the data transfer efficiency.
- FIG. 3 is a diagram illustrating an example of the configuration of an internet home appliance.
- An Internet home appliance (reception-side device in the figure) 1 is a device having a communication function for connecting to the network 7 by wire or wireless, and includes, for example, an Ethernet (registered trademark) interface.
- Network 7 is a network including wired or wireless, and examples include a public network such as the Internet.
- the receiving side device 1 includes a system bus 2, a processing unit 3, a storage unit 4, and a communication unit 5.
- the communication unit 5 is nodeware connected on the system bus 2.
- the communication unit 5 has a function of transmitting a packet stored in the storage unit 4 to the network 7 and a function of receiving a packet from the network 7.
- the communication unit 5 receives packets received from the network 7. It has a storage area (hereinafter referred to as FIFO) 6 for temporary storage.
- FIFO storage area
- the processing unit 3 is nodeware connected on the system bus 2.
- the data stored in the storage unit 4 is processed as a packet, and the received packet is analyzed.
- the processing unit 3 may have a function of transferring a transmission packet from the storage unit 4 to the communication unit 5 or transferring a packet stored in FIF06 of the communication unit 5 to the storage unit 4. .
- the storage unit 4 has a function of holding packets to be transmitted and received and data thereof.
- the receiving-side device 1 when receiving the packet, performs the following processing.
- FIG. 4 is a sequence diagram showing an example of data transfer when the data transfer efficiency of the network home appliance is reduced. is there.
- FIG. 4 shows a sequence when the data transfer between the receiving side apparatus 1 and the transmitting side apparatus 8 in FIG. 3 is performed by TCP.
- the receiving side device 1 is an Internet home appliance
- the transmitting side device 8 whose reception performance is low has high transmission performance such as a PC (Personal Computer).
- Network 7 transfer capacity 100Mbps
- the receiving side apparatus 1 transmits an ACK packet P31 in which the window size is set to RWIN-MAX (32 KB) to the transmitting side apparatus 8.
- the transmission side device 8 transmits the data packet P41 for RWIN-MAX (32 KB) to the network 7.
- RWIN-MAX (32 KB) worth of data packets arrive at the communication unit 5 of the receiving side device 1 at a stretch with a transfer capacity of 100 Mbps.
- FIF06 of receiving device 1 is Since the capacity is only 4KB, it is impossible to store RWIN—MAX (32KB).
- the transfer capability from the FIF 06 to the storage unit 4 is often inferior to the transfer capability of the network 7.
- the case where there is a five-fold difference between the transfer capability from the FIF 06 to the storage unit 4 and the speed of the packet arriving at the communication unit 5, that is, the transfer capability of the network 7 will be described.
- the receiving-side device 1 Upon receiving the first data packet P41-1, the receiving-side device 1 performs data transfer of the received packet from the FIF06 to the storage unit 4. If the time required for this data transfer is 5T, the difference in transfer performance is five times, so the interval between data packets arriving from the network 7 is T. Therefore, five data packets arrive at the receiving side device 1 during this 5T. However, the capacity of FIF06 is 4KB. Therefore, when the fifth data packet arrives, the free space becomes insufficient, and the data packet overflows from FIF06. In this way, packet loss will occur in the subsequent data, and then unnecessary retransmission will be performed. In the end, RWIN-MAX was made too large, and transfer efficiency dropped due to the frequent occurrence of unnecessary retransmissions. In general, therefore, the upper limit of RWIN-MAX is set according to the capacity of FIF06 in powerless communication devices such as Internet home appliances.
- FIG. 5 is a sequence diagram showing reception processing of a receiving side device (for example, a PC) with high processing capability.
- a receiving side device for example, a PC
- RWIN-MAX is 4
- the receiving side apparatus transmits the ACK packet P291 by receiving the data packet P301.
- the transmission side device that has received the ACK packet P291 transmits the subsequent data packet P304 because it has reached sequence number 11 and has a window size.
- the receiving side device receives the data packet P303 with the sequence number 13 before the data packet P302 with the sequence number 12 arrives, so that the power or order of the packet loss of the data packet P302 is changed.
- an immediate confirmation response P292 is immediately transmitted. Further, the receiving side apparatus transmits immediate confirmation responses P294 and P295 by receiving the data packet P304.
- the transmission side apparatus receives three immediate confirmation responses, and thereby operates the high-speed retransmission function, and retransmits the data packet P305 of sequence number 12. In this way, when packet loss occurs, it is possible to restore communication with a high-speed retransmission function.
- FIG. 6 is a sequence diagram showing a reception process of a reception side device (for example, an Internet home appliance) with low processing capability.
- a reception side device for example, an Internet home appliance
- RWIN-MAX is 4
- the data packet P322 among the data packets P321, P322, and P323 to which the transmission side apparatus power is also transmitted does not reach the reception side apparatus due to packet loss.
- the receiving side apparatus transmits the ACK packet P311 by receiving the data packet P321.
- the ACK packet P311 transmitted by the receiving device is Since the reception side apparatus has completed the reception processing of the received data packet P321, the window size is 2. Therefore, no data packet is transmitted from the transmission side device that has received the ACK packet P311.
- the receiving side device receives the data packet P323 with the sequence number 13 before the data packet P322 with the sequence number 12 arrives, so that the power or order of the packet loss of the data packet P322 is switched. And immediately after receiving the data packet P323, an immediate confirmation response P312 is sent. At this time, the window size is 2 because the reception process has not been completed.
- the receiving side device that has completed the reception process transmits a window update notification packet P313 with a window size of 4.
- the transmitting side device that has received the window update notification packet P313 transmits the data packet P324 with sequence numbers 14 and 15 because the sequence number is 11 and the window size is strong.
- the receiving side device that has received the data packet P324 transmits immediate confirmation responses P314 and P315.
- the high-speed retransmission function does not work in the transmission side device.
- the transmitting side device does not receive the ACK packet with the sequence number 12, and therefore performs retransmission due to timeout after the timeout time T1 has elapsed (P325).
- the processing capability is low, the receiving side device cannot perform immediate confirmation responses continuously, so the high-speed retransmission function does not work and the low-speed retransmission waits for the timeout. For this reason, even if a small packet loss occurs, there is no transfer rate.
- Patent Document 1 discloses a method in which the data transmission rate of the transmission side apparatus is controlled by the reception side apparatus. According to the method of Patent Document 1, when the receiving side device generates an ACK for the received data, the receiving side device does not immediately transmit it and holds the ACK packet in the ACK transmission queue. After that, according to the following (1) and (2), the ACK is sent at regular intervals. The data transmission rate is controlled by performing communication.
- FIG. 7 is a sequence diagram showing exchange of data packets and ACK packets in Patent Document 1.
- the reception side device When receiving the data packet P61 transmitted from the transmission side device, the reception side device generates an ACK packet to the transmission side device and inserts it into the ACK transmission queue.
- the ACK packet generated at this time is an ACK packet with ACK number 10.
- the receiving side apparatus transmits an ACK packet P51 at a predetermined time determined by regular intervals.
- ACK packet P51 transmits an ACK packet
- the ACK packet has enough power in the ACK transmission queue to satisfy a predetermined number (explained as 2), so ACK division is performed. Therefore, the ACK number is 9.1, not 10.
- the window size has increased by 1 MSS to 2.
- the transmitting side device that has received the ACK packet P51 can transmit the sequence number from 9.1 to 11.1 by receiving the window size 2 packet.
- Data packet P62 with sequence number 10 as data is transmitted.
- the receiving side apparatus transmits the ACK packet P52 when a predetermined time determined by a regular interval comes.
- ACK packet transmission when ACK packet transmission is performed, ACK division is performed because the ACK packet is filled with a predetermined number (explained as 2) in the ACK transmission queue. Therefore, the ACK number is 9.2 compared to 10, and the window size is increased by 1 MSS to 3.
- the receiving side device that has received this ACK packet P52 can transmit from sequence number 9.2 to 12.2 as in the case of receiving ACK packet P51.
- ACK division is performed at regular intervals, and the window size is increased by 1 MSS.
- the interval between data packets transmitted by the transmitting device is controlled.
- Patent Document 1 Japanese Patent No. 3617649
- Non-Patent Document 1 Standard Specification “RFC2001”, IETF, [Searched July 21, 2006], Internet ⁇ URL: http: // www. Ietf. Org / rfc / rfc2001.txt>
- the ACK transmission interval is 2.5 milliseconds.
- the RWIN—MAX that can be increased within the RTT is only 5 units.
- the time required to receive a 1 MSS data packet is about 0.3 milliseconds, and the time required to send an ACK packet is 0. It is about 2 milliseconds. Therefore, in such an example, it is impossible to perform ACK transmission processing at intervals of 0.32 milliseconds.
- Means for solving the second object of the present invention is to provide a communication device capable of prompting the transmitting device to promptly retransmit lost packets even when packet loss occurs.
- a communication device is a communication device that receives data transmitted from another communication device, the receiving unit receiving the data, and the receiving unit
- the first packet generation means for generating an acknowledgment packet indicating the response content to the other communication device with respect to the data received by the first communication device and transmitting the packet to the other communication device; and the data reception result by the reception means Regardless, it is characterized by comprising a second packet generation means for generating a data request packet for requesting data transmission to the other communication device and transmitting it to the other communication device.
- the second packet generation unit generates the data request packet so that the size of receivable data is included in the data request packet as the reception size.
- the data request packet which is a window update notification packet for requesting data transmission to another communication device
- the data request packet is transmitted to the other communication device regardless of the reception result of the data transmitted by the other communication device. Therefore, the amount of data transmitted from other communication devices can be voluntarily controlled at an arbitrary timing. For example, control can be performed without waiting for reception of data from another communication device. Furthermore, since it is not necessary to divide the ACK and to transmit many ACKs at short transmission intervals, the control processing load can be reduced. Furthermore, since the reception size is included in the data request packet, the size of receivable data can be notified to other communication devices, and as a result, transmission traffic can be controlled according to the reception capability. Can be realized.
- the communication apparatus further includes size calculation means for updating the reception size by adding an update amount to the reception size, and the second packet generation means is configured to update each time the update time elapses.
- the size calculation unit may update the reception size, generate the data request packet including the updated reception size, and transmit the data request packet to the other communication device.
- the window size is changed at every update time, that is, at a predetermined update interval. Since the reception size increases with each update amount and the data request packet, which is a window update notification packet, is transmitted, it becomes possible to control the traffic pattern of the transmission data of other communication devices and match the processing of the communication device. Data can be received. Further, by increasing the window size by the update amount, the amount of each data continuously transmitted from other communication devices can be made the update amount. As a result, in a communication device that receives such data, the capacity of the memory that temporarily stores the received data before passing it to the application program can be reduced to the amount of update.
- the communication device may further include an update determination unit that determines the update time and the update amount based on the communication capability of the communication device.
- the receiving means is configured as a physical layer communication device having a memory for temporarily storing received data
- the update determining means includes the capacity of the memory, and the memory.
- the update time and the update amount are determined based on the transfer capability of the stored data !.
- the communication apparatus further includes processing means for processing the data received by the receiving means, and the update determining means is further based on the processing capability of the processing means.
- the update determination unit may further determine the update time based on a bit rate required by an application program operating in the communication device.
- the bit rate required by the application program in the communication device It is possible to match the data transmission pattern by other communication devices with the traffic pattern suitable for the application program, thereby preventing the generation of unnecessary traffic more than required by the application program.
- the second packet generation unit when the second packet generation unit generates the data request packet every time the update time elapses, when the data is received by the reception unit, the data request packet It may be characterized in that the generation of is stopped.
- the transmission of the data request packet serving as the window update notification packet is stopped, that is, the window update notification function is stopped, so that the data request packet is continuously transmitted and the data transmitted by other communication devices is transmitted. Can be prevented from increasing indefinitely.
- the second packet generation unit stops generating the data request packet that is performed every time the update time elapses, data is received by the reception unit, The generation of the data request packet performed every time the update time elapses may be resumed.
- the size calculating unit further acquires a total amount of data requested by the application program operating in the communication device, and decreases as the received amount of data received by the receiving unit approaches the total amount.
- the response size may be calculated, and the first packet generation unit may generate the confirmation response packet indicating that the size of receivable data is the response size as the response content.
- the first packet generation means generates the confirmation response packet indicating the size of receivable data as a response size, and performs the de- cessing performed every time the update time elapses.
- the first packet generating means is generated last time.
- a confirmation response packet having a response size smaller than the response size of the confirmation response packet is generated, and the second packet generation means resumes the production of the data request packet performed every time the update time elapses. This may be a feature.
- the communication device further transmits the confirmation response packet by the first packet generation unit when the production of the data request packet performed every time the update time elapses. It is possible to provide delay means for delaying the timing.
- the transmission timing of the acknowledgment packet is delayed, so that even if the interval of the reception time of each data continuously transmitted from other transmitters fluctuates, the controlled traffic turn is continuously maintained. It becomes possible. For example, the reception of a plurality of data transmitted from other communication devices and the transmission of a plurality of acknowledgment packets (ACK packets) from the communication devices corresponding to these data are performed at each update time, that is, at predetermined intervals. Has been done. In such a case, if the transmitted data is received at an interval shorter than the predetermined interval, the communication device that has received the data immediately transmits an acknowledgment packet for the data. Delay the transmission of the acknowledgment packet immediately. That is, the communication device transmits the confirmation response packet after the update time has elapsed since the last transmission of the confirmation response packet.
- ACK packets acknowledgment packets
- the receiving means is configured as a physical layer communication device having a memory for temporarily storing received data, and the communication device further includes a capacity of the memory, the memory And a transmission interval determining means for determining a transmission interval of the acknowledgment packet based on the data transfer capability held in the transmission response, and the delay means includes a plurality of transmission intervals determined by the transmission interval determining means. The timing is delayed so that the acknowledgment packet is transmitted.
- the acknowledgment packet is transmitted at a transmission interval based on the capacity of the memory and the transfer capability, so that the traffic pattern suitable for the capability of the physical layer communication device is changed to other communication patterns. It is possible to match the data transmission pattern by the device and prevent packet loss at the physical layer communication device.
- the communication apparatus further includes a processing unit that processes data received by the receiving unit, and a transmission interval that determines a transmission interval of the acknowledgment packet based on a processing capability of the processing unit. Determining means, and the delay means delays the timing so that a plurality of the acknowledgment packets are transmitted at a transmission interval determined by the transmission interval determination means.
- the communication apparatus further includes transmission interval determination means for determining a transmission interval of the acknowledgment packet based on a bit rate required by an application program operating on the communication apparatus. And the delay means delays the timing so that a plurality of the acknowledgment packets are transmitted at a transmission interval determined by the transmission interval determination means.
- the communication device further includes a transmission interval determining unit that determines a transmission interval of the acknowledgment packet based on a request to change a reception rate, and the delay unit is configured by the transmission interval determining unit. The timing may be delayed so that a plurality of the acknowledgment packets are transmitted at the determined transmission interval.
- the first packet generation unit generates the acknowledgment packet indicating a size of receivable data as a response size
- the delay unit further includes the first packet.
- the response size indicated by the acknowledgment packet generated by the generation means is changed based on a request for changing the reception rate.
- the second packet generation unit starts generating the data request packet that is performed every time the update time elapses when a reception amount of data received by the reception unit exceeds a threshold value. It is characterized by that.
- the data transmission pattern by the other communication device can be matched with the traffic pattern according to the communication capability of the communication device. It becomes possible.
- the second packet generation unit generates the data request packet including a head number of requested data, and the reception amount of the data received by the reception unit exceeds a threshold value.
- the generation of the data request packet may be started every time the update time elapses so that the head number of the data request packet transmitted sequentially increases.
- a data request packet as a window update notification packet is transmitted every time the update time elapses.
- the reception size that is the window size of each data request packet and the leading number that is the ACK number are larger than the reception size and leading number of the previous data request packet.
- the communication device further includes detection means for detecting a loss of data transmitted from the other communication device, and the first packet generation means responds with a size of receivable data. Generating the acknowledgment packet indicated as a size, and generating an acknowledgment packet indicating a response size smaller than the response size of the previously generated acknowledgment packet when the detection means detects a mouth. Also good.
- the The first packet generator generates the acknowledgment packet indicating the difference between the response size of the previously generated acknowledgment packet and the amount of lost data as the small response size.
- the first packet generation means further sets a response size larger than the response size of the previously generated confirmation response packet when the detection means does not detect the mouth at a predetermined time. It is characterized by generating an acknowledgment packet.
- the second packet generation unit is configured such that when the data sequentially transmitted by the other communication device is not received by the reception unit in a predetermined order, or the data is lost.
- the data request packet may be generated as a negative response packet to be transmitted.
- the second packet generation means when a data loss occurs, the predetermined number of the data indicating the same content as the confirmation response packet for the data received by the receiving means immediately before the occurrence of the loss. Request packet is generated and transmitted.
- loss detection means for detecting lost data among the data received by the reception means is provided, and the first packet generation means confirms the transmission of data from the other communication device.
- the confirmation response packet instructing retransmission of the loss data detected by the loss detection means is transmitted to the other communication device, and the second packet generation means is transmitted by the first packet generation means.
- Acknowledgment packet sent When the number of transmissions is less than the necessary number for causing the other communication device to retransmit the loss data, the necessary number power is also provided regardless of the transmission of data from the other communication device.
- the confirmation response packet may be transmitted as the data request packet to the other communication device by the number of copies obtained by subtracting the number of transmissions.
- the first packet generation means of the communication device transmits a DupAck (acknowledgment response packet) as a reception response to the transmission of the packet from another communication device, and the second packet.
- the generation means is a duplicate of the required number “3” minus the number of transmissions, regardless of the transmission of data packets from other communication devices.
- DupAck is sent as a data request packet to other communication devices. Therefore, for example, when the first packet generation means is transmitting two DupAck (the number of transmissions is “2”), the second packet generation means receives the packet even if the other communication device has received the packet. Regardless, one DupAck is sent.
- the receiving means includes a memory, and sequentially acquires data transmitted from the other communication devices and stores the data in the memory, and the loss detecting means is not stored in the memory. It can be characterized by detecting lost data!
- lost data lost due to overflow from the receiving FIFO memory is detected with certainty, and thus it is possible to reliably prompt other communication devices to perform high-speed retransmission of the data.
- the communication device further includes network processing means for acquiring data from the receiving means and performing processing as a network layer of the OSI reference model on the data, and the loss detecting means Further, it is characterized by detecting lost data lost in the network processing means.
- lost data is reliably detected in the network processing means for performing IP (Internet Protocol) processing, that is, the IP processing unit, so that the data is transmitted to other communication devices. It is possible to promptly prompt high-speed retransmission.
- IP Internet Protocol
- the loss detection means may detect the loss data only when the lost loss data is data based on TCP (Transmission Control Protocol).
- the communication device further includes device specifying means for specifying the other communication device to be retransmitted based on the data acquired by the receiving means.
- the loss detection unit detects loss data
- the loss detection unit holds the detection result
- the communication device further determines whether the loss detection unit detects the loss data.
- a predetermined period has elapsed
- the communication device transmits a predetermined number of data, when the processing speed of data by the communication device is slower than when the loss data is detected, or
- reset means for deleting a detection result held by the loss detection means when a data request packet is transmitted by the second packet generation means.
- the detection result (packet loss information) held by the loss detection means is deleted, so that the acknowledgment packet or data is transmitted even though other communication device power data is retransmitted. It is possible to prevent the request packet from being transmitted by mistake, and to suppress the generation of useless traffic due to such an erroneous packet.
- the detection result is deleted when a predetermined period of time elapses, the detection result can be surely deleted according to the progress of the predetermined period. If the detection result is deleted when the communication device transmits a predetermined number of data, the detection result can be easily deleted at an appropriate timing without requiring a timer function.
- the detection result is deleted when the data processing speed (for example, PPS) by the communication device is slower than the detection of loss data, the detection result is detected even though the communication device is overloaded. Since the knowledge result is retained, it is possible to prevent the transmission of an acknowledgment packet or data request packet, and other communication devices will transmit data according to the packet, resulting in unnecessary traffic. Can be suppressed. Furthermore, it is possible to prevent the loss data detection and the detection result deletion from being repeated frequently, and the detection result can be deleted at an appropriate timing. In addition, when the detection result is deleted when the data request packet is transmitted by the second packet generation means, an appropriate confirmation response packet or data request packet can be transmitted.
- PPS data processing speed
- the first and second packet generation means instruct the retransmission of the erroneous loss data when the loss data is detected again.
- An acknowledgment packet or a data request packet may be transmitted. Therefore, in the present invention, an appropriate retransmission instruction signal can be transmitted by deleting the detection result at the timing as described above.
- the second packet generation means may confirm the response by the first packet generation means.
- the number of copies may be calculated when an answer packet is generated.
- the second packet generation means can quickly transmit the data request packet by the calculated number of replicas, and as a result, other communication
- the fast retransmission can be activated the fastest for the device.
- the second packet generation means can transmit the data request packet immediately, it is not necessary to hold the data request packet and information related to the packet for a long time. As a result, the memory capacity can be reduced.
- the second packet generation means transmits the confirmation response packet before a predetermined period of time elapses after the confirmation response packet is transmitted by the first packet generation means. Before the elapse of a predetermined period of time and when the load factor of the communication device is equal to or less than a predetermined threshold, or the communication device has received an increase in the amount of data that can be received by the communication device. The number of copies may be calculated before notifying the communication device.
- the second packet generation The means can reliably count the number of transmissions of the acknowledgment packet that has also been transmitted by the first packet generation means during the predetermined period, and can calculate the exact number of copies.
- the number of copies is calculated before a predetermined period elapses after the acknowledgment packet is transmitted and when the load factor (for example, the CPU usage rate) of the communication device is equal to or less than a predetermined threshold.
- the load factor for example, the CPU usage rate
- the exact duplication is the same as described above.
- the number can be calculated.
- the number of replicas is calculated, and after that, when the number of replicas of DupAck is also transmitted as the second packet generation means as a data request packet, The other communication device transmits the DupAck (acknowledgment packet) transmitted from the first packet generation means and the second packet generation means. Differentiate from received DupAck (data request packet).
- another communication apparatus may determine that the required number of the same DupAck has not been transmitted for the loss data and may not execute high-speed retransmission for the loss data. Therefore, in the present invention, as described above, by calculating the number of replicas before notifying WinUpdate, it is possible to transmit as many DupAck as the number of replicas before notifying WinUpdate, and to other communication devices. High-speed retransmission can be surely encouraged.
- the second packet generation means may calculate the number of copies based on a data amount receivable by the communication device. For example, the second packet generation unit may receive the first packet generation unit from the first packet generation unit based on the receivable data amount when the first acknowledgment packet is transmitted by the first packet generation unit. It is also possible to calculate the number of copies by calculating the number of transmissions scheduled to be transmitted and subtracting the number of transmissions from the required number.
- the second packet generation means can immediately transmit the data request packet corresponding to the number of replicas.
- the second packet generation means replicates a data request packet in the data link layer or transport layer of the OSI reference model, and determines the number of replicas. It is characterized by transmitting a data request packet signal.
- the communication device of the present invention can control the transmission data rate of another communication device on the transmission side, suppress packet loss that has occurred by receiving data exceeding the processing capability, Prevent throughput degradation. Furthermore, by controlling the transmission rate of other communication devices on the transmission side to the transmission rate suitable for the processing capability of the communication device, efficient data transfer can be performed and the maximum throughput can be obtained.
- FIG. 1 is a data transmission / reception sequence diagram in TCP.
- FIG. 2 is a packet transmission / reception sequence diagram regarding the high-speed retransmission function.
- FIG. 3 is a block diagram of an Internet home appliance.
- FIG. 4 is a sequence diagram showing an example of data transfer when data transfer efficiency is reduced.
- FIG. 5 is a packet transmission / reception sequence diagram in a high-speed receiving device.
- FIG. 6 is a packet transmission / reception sequence diagram in a low-speed receiving device.
- FIG. 7 is a TCP transmission / reception sequence diagram in the prior art.
- FIG. 8 is a configuration diagram showing an example of a configuration of a network and a communication device according to Embodiment 1 of the present invention.
- FIG. 9 is a block diagram showing an example functional configuration of a processing unit according to Embodiment 1 of the present invention.
- FIG. 10 is a sequence diagram of packet transmission / reception in Embodiment 1 of the present invention.
- FIG. 11 is a configuration diagram showing a functional configuration example of a processing unit according to Embodiment 2 of the present invention.
- FIG. 12 is a sequence diagram of packet transmission / reception in Embodiment 2 of the present invention.
- FIG. 13 is a flowchart showing the operation of the receiving side apparatus according to the second embodiment of the present invention.
- FIG. 14 is a block diagram showing a functional configuration example of a processing unit according to Embodiment 3 of the present invention.
- FIG. 15 is a sequence diagram of packet transmission / reception in the third embodiment of the present invention.
- FIG. 16 is a sequence diagram of packet transmission / reception in the fourth embodiment of the present invention.
- FIG. 17 is a configuration diagram showing an example functional configuration of a processing unit according to Embodiment 5 of the present invention.
- FIG. 18 is a sequence diagram of packet transmission / reception in Embodiment 5 of the present invention.
- FIG. 19 is a sequence diagram of another packet transmission / reception according to the fifth embodiment of the present invention.
- FIG. 20 is a sequence diagram of packet transmission / reception in Embodiment 6 of the present invention.
- FIG. 21 is a sequence diagram of another packet transmission / reception according to the sixth embodiment of the present invention.
- FIG. 22 is a configuration diagram showing an example functional configuration of a processing unit according to Embodiment 7 of the present invention.
- FIG. 23 is a sequence diagram of packet transmission / reception in Embodiment 7 of the present invention.
- FIG. 24 is another sequence diagram of packet transmission / reception in Embodiment 7 of the present invention.
- FIG. 25 is a block diagram showing a functional configuration example of a processing unit according to Embodiment 8 of the present invention.
- FIG. 26 is a sequence diagram of packet transmission / reception in Embodiment 8 of the present invention.
- FIG. 27 is a sequence diagram of another packet transmission / reception according to the eighth embodiment of the present invention.
- FIG. 28 is a block diagram showing a functional configuration example of a processing unit according to the ninth embodiment of the present invention.
- FIG. 29 is a sequence diagram of packet transmission / reception in Embodiment 9 of the present invention.
- FIG. 30 is a diagram showing a configuration example of a network and a configuration example of a communication device in the tenth embodiment of the present invention.
- FIG. 31 is a configuration diagram showing a functional configuration of a CPU of a communication apparatus according to Embodiment 10 of the present invention.
- FIG. 32 is a diagram showing a communication sequence between communication devices in the tenth embodiment of the present invention.
- FIG. 33 is a diagram showing an example of a processing sequence in the reception-side apparatus according to the tenth embodiment of the present invention.
- FIG. 34 is a flowchart showing DupAck replication number calculation processing in the DupAck management unit in the tenth embodiment of the present invention.
- FIG. 35 is a diagram showing a configuration example of a network and a configuration example of a communication apparatus according to the first modification of the tenth embodiment.
- FIG. 36 is a configuration diagram showing a functional configuration of a CPU of a receiving side device according to the first modification of the tenth embodiment.
- FIG. 37 is a diagram showing an example of a processing sequence of the reception side apparatus according to the first modification of the tenth embodiment.
- FIG. 38 is a configuration diagram showing a functional configuration of a CPU of a receiving side device according to the second modification of the tenth embodiment.
- FIG. 39 is a diagram showing a communication sequence between communication devices according to the third modification of the tenth embodiment.
- FIG. 40 is a diagram showing an example of a processing sequence of the reception-side apparatus according to the third modification of the tenth embodiment.
- FIG. 41 is a flowchart showing a DupAck replication number calculation process in the DupAck management unit according to the third modification of the tenth embodiment.
- Window size calculation unit Window update timer unit Reception rate determination unit Previous RWIN storage unit
- Window size calculation unit Window update timer unit Reception rate determination unit Previous RWIN storage unit
- the reception-only communication device is the reception-side device
- the transmission-only communication device is the transmission-side device
- the present invention is applied to the reception-side device.
- the present invention may be applied to a transmission-side apparatus in which both the transmission-side apparatus and the transmission-side apparatus may have transmission / reception functions.
- FIG. 8 is a diagram showing an example of the configuration of the communication device (reception side device) according to the present embodiment.
- the receiving side device 31 is a device having a communication function for connecting to the network 37 by wire or wirelessly, and includes, for example, an Ethernet (registered trademark) interface.
- Network 37 is a network including wired or wireless, and examples include public networks such as the Internet.
- the receiving side device 31 includes a system bus 32, a processing unit 33, a storage unit 34, and a communication unit 35.
- the communication unit 35 is nodeware connected on the system bus 32.
- the communication unit 35 has a function of transmitting the packet stored in the storage unit 34 to the network 37 and the network 37. Has a function of receiving packets.
- the communication unit 35 has a storage area (hereinafter referred to as FIFO) 36 for temporarily holding packets received from the network 37.
- FIFO storage area
- the communication unit is configured as a receiving means.
- the processing unit 33 is hardware connected on the system bus 32.
- the processing unit 33 performs processing for constructing the data stored in the storage unit 34 as a packet, or performs analysis processing on the received packet.
- the processing unit 33 may have a function of transferring a transmission packet from the storage unit 34 to the communication unit 35, or transferring a packet stored in the FIF036 of the communication unit 35 to the storage unit 34.
- the storage unit 34 has a function of holding packets to be transmitted and received and data thereof.
- the reception process of the reception side device 31 will be described.
- the receiving side device 31 first stores the received packet in the FIF 036 of the communication unit 35.
- the receiving-side device 31 transfers the received packet stored in the FIF 036 from the FIF 036 to the storage unit 34 via the system bus 32.
- the contents of the received packet transferred to the storage unit 34 are analyzed by the processing unit 33 and processed for reception.
- the processing unit 33 obtains the analysis result, it passes the received data to an application program (hereinafter simply referred to as an application).
- FIG. 9 is a configuration diagram showing an example of a functional configuration of the processing unit 33 in the reception-side device 31 of the present embodiment.
- the TCP processing unit 42 may be implemented by a power LSI (Large Scale Integration) configured as a program executed by the processing unit 33.
- the solid line in the figure indicates the data flow of the transmission / reception packet, and the broken line indicates the flow related to the exchange of control information.
- the processing unit 33 includes an IP processing unit 41, a TCP processing unit 42, and an application processing unit 43.
- the TCP processing unit 42 of the receiving side device 31 includes a TCP packet processing unit 44, a reception buffer 47, a window size calculation unit 48, a window update timer unit 49, a reception rate determination unit 50, and a previous RWIN storage unit 51. Consists of Next, each of these components will be described.
- the TCP packet processing unit 44 has a TCP packet transmission / reception processing function.
- the TCP packet processing unit 44 identifies the application of the received packet and sends the packet to the application. Stored in receive buffer 47 for delivery to the case. Further, the TCP packet processing unit 44 has a function of constructing a TCP packet, passing it to the IP processing unit 41, and transmitting it as a TCP / IP packet.
- the TCP packet processing unit 44 includes an ACK generation unit 45 and a window update notification generation unit 46.
- the ACK generation unit 45 determines an ACK number based on the sequence number of the received TCP packet, and generates an ACK packet.
- the ACK packet the currently receivable free space (hereinafter, window size) obtained from the window size calculation unit 48 is also set.
- the ACK generation unit is configured as the first packet generation unit, and the ACK packet corresponds to an acknowledgment packet.
- the window size set in the ACK packet corresponds to the response size.
- the window update notification generation unit 46 generates a window update notification packet when the reception buffer 47 is freed up. Further, the window update notification generation unit 46 has a function of generating a window update notification packet according to an instruction from the window update timer unit 49. The window size obtained from the window size calculation unit 48 is set in the window update notification packet.
- the window update notification generation unit is configured as a second packet generation unit, and the window update notification packet corresponds to a data request packet. The window size set in the window update notification packet corresponds to the reception size.
- the reception buffer 47 has a function of temporarily storing reception data to be passed to the application processing unit 43.
- the reception buffer 47 can store data of maximum RWIN-MAX, and in response to a request from the application processing unit 43, the data temporarily held in the reception buffer 47 is sequentially transferred to the application processing unit 43.
- the reception buffer 47 notifies the window update notification generation unit 46 that the window size has increased when the window size has increased due to data being passed to the application processing unit 43.
- the window size calculation unit 48 has a function of calculating a value to be notified to the transmission side device 38 as a window size.
- the window size calculation unit 48 determines the update amount (hereinafter referred to as RWIN-Update) instructed by the reception rate determination unit 50 and the previous time stored in the previous RWIN storage unit 51.
- the window size is calculated based on the notified window size (RWIN—Prev).
- the window size is calculated by the following formula.
- Window size RWIN—Prev + RWIN— Update ' ⁇ ⁇ (Formula 1)
- Window size MIN (RWIN—Prev + RWIN Update
- MIN (A, B) shall return the minimum value of A and B.
- the window update timer unit 49 has a function of instructing the window update notification generation unit 46 to transmit a window update notification packet at a predetermined interval.
- the predetermined interval is instructed by the reception rate determining unit 50.
- the reception rate determination unit 50 has a function of determining the update amount of the window size calculation unit 48 and the predetermined interval of the window update timer unit 49 based on the reception rate of the TCP packet in the reception side device 31. . Next, an example of a method for determining the update amount and the predetermined interval will be described.
- the update amount and the predetermined interval can be calculated by the following formula based on the capacity of FIF036 and the transfer capability of the system bus 32.
- Update amount Capacity of FIF036 ⁇ (Equation 3)
- Predetermined interval Capacity of FIF036 Z System bus 32 transfer capacity ⁇ (Equation 4)
- the capacity power of FIF036 of the receiving side device 31 is the transfer capacity power OMbps of the system bus 32
- the update amount is 4KB according to the capacity of FIF036, and the predetermined interval is
- the time required for the system bus 32 to transfer 4 KB is 0.8 milliseconds. Note that setting the predetermined interval to 0.8 milliseconds or more can suppress the data transfer amount to be equal to or less than the transfer capacity of the system bus 32, and therefore may be 1 millisecond.
- the CPU Central Processing Unit
- the predetermined interval is calculated from the processing time of one packet and the transfer capacity of the system node. It may be calculated.
- Example 2 The update amount and the predetermined interval can be calculated by the following formula based on the capacity of FIF036 and the bit rate required by the application.
- Predetermined interval RTTZCEILING (((Bit rate required by application
- CEILING (A, B) outputs the result of rounding A up to the nearest B.
- the size power of FIF036 of the receiving side device 31 is the size power of FIF036 of the receiving side device 31.
- the update amount is 4KB according to the size of FIF036. It becomes.
- the bit rate required by the application is 10 Mbps, it is necessary for the application to receive 12.5 KB of data during 1 RTT (10 milliseconds). Therefore, considering the increase of 4KB each as the update amount, 3.125 times, that is, 4 updates are required during 1RTT.
- the predetermined interval is R TTZ4, which is 2.5 milliseconds.
- the update amount and the predetermined interval can be calculated based on the maximum capacity RWIN-MAX of data that can be stored in the reception buffer 47 and the bit rate required by the application.
- Predetermined interval RTTZCEILING (((bit rate required by application XRTT) / 8) / RWIN_MAX, 1) (Equation 8)
- the maximum capacity of data that can be stored in the receive buffer 47 RWIN— When the MAX is 8 KB, the bit rate required by the application is 10 Mbps, and the RTT is 10 milliseconds, the update amount is RWIN— 8KB to match MAX. Furthermore, in this case, since the bit rate required by the application is 10 Mbps, it is necessary to receive 12.5 KB of data during 1 RTT (10 milliseconds). Therefore, considering the increase of 8KB each as the update amount, 1.5625 times, that is, 2 updates are required during 1RTT. Therefore, the predetermined interval is RTTZ2, which is 5 milliseconds.
- the update amount is rounded to the MSS unit, or the predetermined interval is It may be rounded up to the nearest second or several milliseconds.
- the reception rate determining unit 50 receives the receiving side device 31 when a plurality of connections are established, or when the processing unit 33 performs processing other than another communication processing, resulting in a decrease in processing capability. It is possible to have a function to dynamically change the update amount and the predetermined interval in accordance with the change in the reception status.
- the previous RWIN storage unit 51 has a function of recording and holding the window size (hereinafter referred to as the previous window size) used when the window update notification was performed last time.
- the previous RWIN storage unit 51 passes the previous window size to be recorded and held to the window size calculation unit 48, receives the result calculated by the window size calculation unit 48, updates the previous window size, and holds the record.
- FIG. 10 is a sequence diagram showing exchange of data packets and ACK packets in the present embodiment.
- the ACK packet or window update notification packet transmitted by the receiving side device 31 is indicated by a broken line
- the data packet transmitted by the transmitting side device 38 is indicated by a solid line.
- one packet length is 1
- the update amount is 4
- the update interval is T milliseconds.
- the receiving side device 31 enters a state of receiving data transmitted from the transmitting side device 38 through establishment of a connection with the transmitting side device 38 or the like. At this time, the reception side device 31 sets the update amount 4 as the window size of the ACK packet (a window update notification packet may be acceptable), notifies the transmission side device 38 of the ACK packet (window update notification packet), (Since the sending side device 38 that received the P7 Do ACK packet P71 has the window size S4 of the received ACK packet P71, it sends four data packets P81 of sequence numbers 10, 11, 12, and 13) Send (P81).
- the receiving side device 31 adds the update amount 4 to the previously notified window size 4 according to Equation 1, and Set the window size of the window update notification packet and set the window update notification packet to A notification is sent to the transmission side device 38 (P72).
- the transmitting side device 38 that has received the ACK packet P72 transmits 8 data packets including the already transmitted sequence numbers 10, 11, 12, and 13 because the window size of the received ACK packet P72 is 8. It becomes possible to do. Therefore, the transmission side device 38 transmits a data packet P82 of sequence numbers 14, 15, 16, and 17 that is a continuation of the data packet P81.
- ACK packets P73 and P74 are also transmitted from the receiving side device 31 in the same manner as described above. Further, the data packets P83 and P84 are also transmitted from the transmission side device 38 as described above.
- the interval of the ACK packet transmitted by the receiving side device 31 is the T millisecond interval
- the interval at which the transmitting side device 38 receives the ACK packet is also the T millisecond interval.
- the ACK packet interval received by the transmission side device 38 is T milliseconds, and the window size is increased by the update amount, the transmission side device 38 performs data update by the update amount every T milliseconds. A ticket will be sent.
- the transmission side device 31 transmits data packets at intervals of T milliseconds
- the reception side device 31 receives data packets of each update amount at intervals of T milliseconds.
- this T millisecond is a value that also calculates force, such as (Equation 4) or (Equation 6), so during this T millisecond, the receiving side device 31 processes the data for the update amount. Is possible. Therefore, the reception process can be performed without overflowing the reception process.
- the reception-side device 31 controls the interval and the amount of transmission data transmitted from the transmission-side device 38, thereby maximizing the performance of the reception-side device 31. It becomes possible to come out. Further, according to the present invention, it is possible to start the control of the transmission data interval and the amount thereof at an arbitrary timing regardless of the reception of the data packet. Furthermore, by controlling the amount of transmission data in units of update amounts, the number of window update notification packet generations is reduced, and the same ACK number is used for window update notification packets. As a result, the only parameter that should be changed in a series of window update notification packets is the window size, so the processing load can be reduced.
- Patent Document 1 uses a method of performing ACK division and updating the free buffer capacity that can be received by 1 MSS at a time. It is necessary to control at re-second intervals. Therefore, in this embodiment, the processing load can be reduced as compared with the conventional case. Furthermore, the interval and amount of transmission data transmitted from the transmission side device 38 can be controlled to a rate that matches the reception rate of the application of the reception side device 31, and the maximum amount of update data is stored in the reception buffer. Only data stays and memory efficiency is improved.
- the communication device (receiving device) in the present embodiment is substantially the same as the configuration shown in FIG. 8 of the first embodiment, and only the processing unit is different. Therefore, detailed description of the components other than the processing unit is omitted.
- FIG. 11 is a configuration diagram illustrating an example of a functional configuration of a processing unit in the reception-side device 31 according to the present embodiment.
- the reception-side device 31 of the present embodiment includes a processing unit 33a instead of the processing unit 33 of the first embodiment.
- the processing unit 33a in the present embodiment has an additional function with respect to the processing unit 33 of the first embodiment, and therefore only the difference from the first embodiment will be described.
- the processing unit 33a includes an IP processing unit 61, a TCP processing unit 62, and an application processing unit 63.
- the TCP processing unit 62 of the receiving side device 31 of the present embodiment includes a TCP packet processing unit 64, a reception buffer 67, a window size calculation unit 68, a window update timer unit 69, a reception rate determination unit 70, and It consists of the previous RWIN storage unit 71.
- reception buffer 67, window size calculation unit 68, and previous RWIN storage unit 71 have the same functions and configurations as reception buffer 47, window size calculation unit 48, and previous RWIN storage unit 51 of the first embodiment. Have.
- the TCP packet processing unit 64 includes an ACK generation unit 65 and a window update notification generation unit 66.
- Such a TCP packet processing unit 64 has the function of the TCP packet processing unit 44 shown in the first embodiment, and while the window size to be notified is updated based on (Equation 1), When the packet from the device 38 is received, it further has a function of notifying the reception rate determining unit 70 that the window update notification function is stopped. Note that the window update notification function increases the window size at predetermined intervals as shown in the first embodiment. Then, a window update notification packet indicating the increased window size is transmitted to the transmission side device 38.
- Window update timer unit 69 has the function of window update timer unit 49 shown in the first embodiment, and further has a function of stopping the timer function based on a stop notification from reception rate determining unit 70.
- Reception rate determination unit 70 has the function of reception rate determination unit 50 shown in the first embodiment, and stops window update timer unit 69 upon receiving a stop notification from TCP packet processing unit 64. And a function for setting the update amount to 0.
- FIG. 12 is a sequence diagram showing exchange of data packets and ACK packets in the present embodiment.
- the ACK packet or window update notification packet transmitted by the receiving device 31 is indicated by a broken line
- the data packet transmitted by the transmitting device 38 is indicated by a solid line.
- one packet length is 1
- the update amount is 4
- the update interval is T milliseconds.
- the receiving-side device 31 receives the data packet P101.
- the receiving side device 31 When receiving the data packet P101, the receiving side device 31 generates an ACK packet P95 for the data packet P101 and transmits it to the transmitting side device 38.
- the reception rate determining unit 70 stops the window update timer of the window update timer unit 69 and sets the update amount in the window size calculation unit 68 to zero. Therefore, the window size of the ACK packet P95 to be transmitted is 16, which is the window size value held in the previous RWIN storage unit 71.
- the transmitting side device 38 Upon receiving this ACK packet P95, the transmitting side device 38 receives the ACK number 14 and the window. Data of sequence number 14 and later can be transmitted from window size 16 for window size 16. Therefore, the transmission side device 38 transmits the data packet P105 of sequence numbers 26, 27, 28, and 29, which is untransmitted data after the sequence number 14.
- the window update timer is stopped and the update amount is zero. Therefore, the window size of the ACK packet P96 with respect to the data packet P102 is 16, which is the window size value held in the previous RWIN storage unit 71. Further, the transmitting side device 38 that has received this ACK packet P96 transmits data packets P106 of sequence numbers 30, 31, 32, and 33, which are untransmitted data of sequence number 18 and later. Thereafter, the same process is repeated.
- FIG. 13 is a flowchart showing the operation of the reception side device 31 in the present embodiment.
- N is the sequence number of the data packet requested by the receiving side device 31.
- the window update timer unit 49 of the receiving apparatus 31 starts time measurement.
- the receiving side device 31 determines whether or not it has received the data packet from the receiving side device 38 (step S402).
- the receiving side device 31 determines whether or not the power has passed a predetermined period of T milliseconds. (Step S404).
- the receiving-side device 31 stops the window update notification function described above (step S408).
- the window update timer unit 49 stops measuring time and the update amount is reset to zero.
- n is the number of data packets received by the receiving side device 31.
- the receiving side device 31 determines again whether or not it has received the data packet from the transmitting side device 38 (step S412). As a result, when it is determined that a data packet has been received (Y in step S412), the receiving-side device 31 repeatedly executes the processing from step S410, and when it is determined that no data packet has been received (step S412). N in S412), the data reception processing from the transmission side device 38 is terminated.
- reception rate determination unit 70 sets the update amount to 0 and stops the window update timer As a result, the rate of transmission data transmitted from the transmission side device 38 can be kept constant even after data reception.
- the communication device (receiving device) in the present embodiment is substantially the same as the configuration shown in FIG. 8 of the first embodiment, and only the processing unit is different. Therefore, detailed description of the components other than the processing unit is omitted.
- FIG. 14 is a configuration diagram illustrating an example of a functional configuration of a processing unit in the reception-side device 31 according to the present embodiment.
- the receiving side device 31 of the present embodiment includes a processing unit 33b instead of the processing unit 33 of the first embodiment.
- the processing unit 33b in the present embodiment has an additional function with respect to the processing unit 33a of the second embodiment, so only the difference from the second embodiment will be described.
- the processing unit 33b includes an IP processing unit 81, a TCP processing unit 82, and an application processing unit 83.
- the TCP processing unit 82 of the receiving side device 31 of the present embodiment includes a TCP packet processing unit 84, a reception buffer 87, a window size calculation unit 88, a window update timer unit 89, a reception rate determination unit 90, and It consists of the previous RWIN storage unit 91.
- reception buffer 87 and previous RWIN storage unit 91 have the same functions and configurations as reception buffer 47 and previous RWIN storage unit 51 of the first embodiment.
- the TCP packet processing unit 84 includes an ACK generation unit 85 and a window update notification generation unit 86.
- Such a TCP packet processing unit 84 has the function of the TCP packet processing unit 64 shown in the second embodiment, and the packet from the transmission side device 38 while the window update notification function is stopped. Is received, the window update notification function 90 is notified to the reception rate determination unit 90.
- Window size calculation unit 88 has the functions of window size calculation units 48 and 68 described in the first and second embodiments. Further, when the window size calculation unit 88 has a function of notifying the total data amount in a series of data reception from the application processing unit 83, the window size calculation unit 88 notifies the end of reception of the data of only the total data amount with an ACK packet. It has a function to reduce the window size.
- the window update timer unit 89 receives the function of the window update timer unit 69 described in the second embodiment and the window update notification function restart notification from the reception rate determination unit 90, and performs the window update notification function. Has the ability to resume.
- Reception rate determination unit 90 receives the function of reception rate determination unit 70 shown in Embodiment 2 and the window update notification function restart notification from TCP packet processing unit 84, and receives a predetermined interval and update amount.
- the window update timer unit 89 is notified of the window update notification function restart.
- FIG. 15 is a sequence diagram showing exchange of data packets and ACK packets in the present embodiment.
- the ACK packet or window update notification packet transmitted by the reception side device 31 is indicated by a broken line
- the data packet transmitted by the transmission side device 38 is indicated by a solid line.
- one packet length is 1
- the update amount is 4
- the update interval is T milliseconds.
- the transmission side device 38 transmits the data packets P121 and P122 to complete the data transfer. Thereafter, the transfer of the data packet P123 is resumed after an arbitrary time. The exchange of ACK packets and data packets at this time will be explained.
- the window size calculation unit 88 is notified of the total amount of data in one series of data reception from the application processing unit 83. Therefore, the window size calculation unit 88 reduces the window size of the ACK packet to be transmitted in accordance with the end of reception of data corresponding to the total data amount.
- Equation 9 shows a window size calculation formula in the window size calculation unit 88.
- Window size ⁇ ((total data amount received data amount) + update amount
- the transmission side device 38 transmits a data packet P121.
- the receiving side device 31 that has received the data bucket P121 generates and transmits an ACK packet P111 corresponding to the data bucket P121.
- the data packet transmitted by the receiving side device 31 is set to the window size 8 based on (Equation 9).
- the transmission side device 38 transmits the data bucket P122.
- the receiving side device 31 that has received the data packet P122 receives the data bucket.
- ACK packet PI 12 corresponding to PI 22 is generated and transmitted.
- the data packet transmitted by the receiving side device 31 is set to the window size 4 based on (Equation 9). In this way, the window size is reduced according to the remaining received data amount.
- the transmission side device 38 transmits the data packet P123 and resumes data transmission. At this time, because the window size of the ACK packet P112 transmitted by the reception side device 31 was the last time, the transmission side device 38 must transmit the sequence number 10, 11, 12, 13 and the data packet for the window size. become. As described above, when the data transmission is temporarily stopped, the window size is reduced, so that the transmission data is prevented from arriving in bursts when the data transmission is resumed.
- the receiving side device 31 when the receiving side device 31 receives the data packet P123 for which the transmitting side device 38 has resumed transmission, the receiving side device 31 generates and transmits an ACK packet P113 corresponding to the received data packet P123. Thereafter, the receiving side device 31 notifies the reception rate determining unit 90 that the data transfer has been resumed.
- the reception rate determination unit 90 that has received the notification determines the update amount and the predetermined interval, and prompts the window update timer unit 89 to restart the window update timer, as in the first embodiment.
- the receiving side device 31 adds the update capacity 4 to the previously notified window size 4 according to (Equation 1), and The window size of the window update notification packet is set, and the window update notification packet is notified to the transmitting side device 38 (P114). Further, the receiving side device 31 transmits the window update notification packets P115 and P116 at a predetermined interval of T milliseconds. As a result, the transmission side device 38 transmits the data packets P124, P125, and PI 26 at a predetermined interval of T milliseconds.
- the communication device (receiving device) in the present embodiment is substantially the same as the configuration shown in FIG. 8 of the first embodiment, and only the processing unit is different. Therefore, detailed description of the components other than the processing unit is omitted.
- the processing unit in receiving-side apparatus 31 of the present embodiment has a configuration substantially similar to that of processing unit 33a shown in Fig. 11 of the second embodiment. Therefore, the processing unit in the present embodiment will be described below using FIG. 11 so that the difference from the second embodiment becomes clear.
- the TCP packet processing unit 64 in the present embodiment has the function shown in the second embodiment, detects the packet loss while the window update notification function is stopped, and transmits the transmission side device. When it is confirmed that the lost packet is retransmitted from 38, it has a function of notifying the reception rate determining unit 70 of resumption of the window update notification function.
- Window update timer unit 89 in the present embodiment has the function shown in the second embodiment, receives the window update notification function restart notification from reception rate determination unit 70, and has a window update timer function. Has the ability to resume.
- Reception rate determining section 70 has the functions shown in the second embodiment. Further, the reception rate determining unit 70 receives the window update notification function restart notification from the TCP packet processing unit 64, calculates a predetermined interval and the update amount, and sends a window update notification function restart to the window update timer unit 69. And a function for notifying the previous window size value recorded in the previous RWIN storage unit 71 to an initial value, for example, 0.
- the previous RWIN storage unit 71 has the function shown in the second embodiment and the function of initializing the stored previous window size value by the operation of the reception rate determining unit 70.
- FIG. 16 is a sequence diagram showing exchange of data packets and ACK packets in the present embodiment.
- the ACK packet or window update notification packet transmitted by the receiving device 31 is indicated by a broken line
- the data packet transmitted by the transmitting device 38 is indicated by a solid line.
- one packet length is 1
- the update amount is 1
- the update interval is T milliseconds.
- the receiving side device 31 receives transmission data packets from the transmitting side device 38 at regular intervals while the window update notification function is stopped. At this time, it is assumed that the data packet P152 is lost.
- the receiving-side apparatus 31 notices that a packet loss has occurred due to the arrival of the data packet P153. Therefore, the receiving side device 31 transmits the ACK packet P133 with the ACK number 11. After that, the receiving side device 31 receives the data packets P154, P155, and P156 after the packet loss in the same way, and transmits the ACK packets P134, P135, and P136 with the ACK number 11 because the packet loss has occurred. To do. At this time, if the transmitting side device 38 receives four consecutive ACK packets with duplicate ACK numbers, it detects that a packet loss has occurred on the network, and immediately retransmits the data packet P158 without waiting for a timeout ( TCP high-speed retransmission function). Up to this point, the functions are also implemented in the conventional TCP.
- the receiving side device 31 When receiving the retransmitted data packet P158, the receiving side device 31 notifies the reception rate determining unit 70 that a packet loss has occurred and the retransmission packet has been received. To do.
- the reception rate determining unit 70 notified of the reception of the retransmitted packet initializes the value of the previous RWIN storage unit 71, prompts the window update timer unit 69 to start the window update timer, sets the update amount to 1, Restart the update notification function. Thereafter, the receiving side device 31 generates and transmits an ACK packet P138.
- the ACK packet P138 generated at this time is set to ACK number 17 from the currently received sequence number 16, and the window size 1 is set based on the value and update amount recorded in the previous RWIN storage unit 71. Set. Receiving this ACK packet P138, the transmitting side device 31 transmits the data packet P159 of the next sequence number 17 based on the notified window size 1.
- the receiving side device 31 adds the update capacity 1 to the previously notified window size 1 according to (Equation 1), 2 is set as the window size of the window update notification packet, and the window update notification packet is notified to the transmitting side device 38 (P139).
- the transmitting side device 38 that has received the ACK packet P139 has already transmitted since the window size of the received ACK packet P139 is 2. Only two data packets including sequence number 17 can be transmitted. Therefore, the transmission side device 38 transmits the data packet P160 with the sequence number 18 that is a continuation of the data packet P159. Thereafter, the receiving side device 31 performs window update processing at intervals of T milliseconds as in the first embodiment, and receives data packets at intervals of T milliseconds.
- Embodiments 1 and 2 the same effects as in Embodiments 1 and 2 can be obtained. Furthermore, according to the present embodiment, it is possible to perform transmission rate control for the retransmission data of the transmitting side device by restarting the window update notification function even after the packet loss occurs. Further, by combining with the third embodiment, the effects obtained in the third embodiment can be enjoyed.
- the communication device (receiving device) in the present embodiment is substantially the same as the configuration shown in FIG. 8 of the first embodiment, and only the processing unit is different. Therefore, detailed description of the components other than the processing unit is omitted.
- FIG. 17 is a configuration diagram illustrating an example of a functional configuration of a processing unit in the reception-side device 31 according to the present embodiment.
- the receiving side device 31 of the present embodiment includes a processing unit 33c instead of the processing unit 33 of the first embodiment.
- the processing unit 33c in the present embodiment has an additional function with respect to the processing unit 33a of the second embodiment, and therefore only the differences from the second embodiment will be described.
- the processing unit 33c includes an IP processing unit 101, a TCP processing unit 102, and an application processing unit 10.
- the TCP processing unit 102 of the receiving-side device 31 of the present embodiment includes a TCP packet processing unit 104, a reception buffer 107, a window size calculation unit 108, a window update timer unit 109, and a reception rate determination unit 110.
- the RWIN storage unit 111 and the ACK delay unit 112 are included.
- reception buffer 107, window size calculation unit 108, window update timer unit 109, and previous RWIN storage unit 111 are reception buffer 67, window size calculation unit 68, window update timer unit 69 of the second embodiment. It has the same functions and configuration as the previous RWIN storage unit 71.
- the TCP packet processing unit 104 includes an ACK generation unit 105 and a window update notification generation unit 106.
- Window update notification generator 106 has the same functions and configuration as window update notification generator 66 of the second embodiment.
- ACK generation unit 105 determines an ACK number based on the sequence number of the received TCP bucket, and generates an ACK packet.
- the window size that is the currently receivable free space obtained from the window size calculation unit 108 is also set.
- the ACK generation unit 105 of the present embodiment passes the generated 80 ⁇ packet to the 803 ⁇ 4 @ extension unit 112. The passed ACK packet is then transmitted.
- Reception rate determination section 110 has the same function as reception rate determination section 70 of Embodiment 2, and also has a function of specifying ACK packet delay time and its ACK amount to ACK delay section 112.
- the ACK packet delay time and ACK amount are determined by the following equations.
- ACK amount update amount ⁇ ⁇ ⁇ ⁇ (Formula 12)
- the ACK amount and ACK packet delay time are calculated by calculating the capacity of FIF036 and the transfer capability of the system bus 32 as well as the formula for calculating the update amount and update interval, and the application requests it. It can be calculated from the bit rate.
- the ACK delay unit 112 has a function of temporarily holding and delaying the generated ACK packet before transmission.
- the ACK delay time is determined by reception rate determination section 110.
- FIG. 18 is a sequence diagram showing exchange of data packets and ACK packets in the present embodiment.
- the ACK packet or window update notification packet transmitted by the receiving device 31 is indicated by a broken line
- the data packet transmitted by the transmitting device 38 is indicated by a solid line.
- one packet length is 1
- the update amount is 4
- the update interval is T milliseconds.
- the receiving-side device 31 starts 1RT after starting the window update notification function. Since T has elapsed and data packet P181 has been received, the window update notification function has been stopped.
- the ACK generation unit 105 of the reception-side device 31 When the data packet P181 is received, the ACK generation unit 105 of the reception-side device 31 generates the ACK packet and passes it to the ACK delay unit 112. Upon receiving the ACK packet, the ACK delay unit 112 obtains the ACK transmission time obtained by adding the ACK packet delay time to the time when the ACK packet (or window update notification packet) was transmitted last time, and the current time exceeds the ACK delay time. If the ACK number is advanced by the ACK amount compared to the previous ACK packet, the ACK packet is sent immediately. In FIG. 18, when the data packet P181 is received, the ACK packet delay time elapses from the previous ACK packet transmission time, so the ACK packet P175 is immediately transmitted.
- the ACK generation unit 105 of the receiving side device 31 generates an ACK packet for the received data packet P 182 and passes it to the ACK delay unit 112.
- the Hachiji 13 ⁇ 4 @ extension unit 112 that has received the Hachi 1 ⁇ packet calculates the ACK transmission time by adding the ACK delay time to the previous transmission time of the ACK packet P175, and as a result, the current time does not satisfy the ACK transmission time.
- ACK packet P176 is not sent immediately. Thereafter, when the current time reaches the ACK transmission time, the ACK delay unit 112 transmits the ACK packet P176 held by the ACK delay unit 112.
- FIG. 19 is a sequence diagram showing another exchange of the data packet and the ACK packet in the present embodiment.
- the ACK packet or window update notification packet transmitted by the reception side device 31 is indicated by a broken line
- the data packet transmitted by the transmission side device 38 is indicated by a solid line.
- one packet length is 1
- the update amount is 4
- the update interval is T milliseconds.
- the receiving-side device 31 has stopped the window update notification function because 1RT T has passed since the start of the window update notification function and data packet P201 has been received. is there.
- the ACK generation unit 105 of the reception-side device 31 When the data packet P201 is received, the ACK generation unit 105 of the reception-side device 31 generates the ACK packet and passes it to the ACK delay unit 112. ACK delay when an ACK packet is received The unit 112 obtains an ACK transmission time obtained by adding the ACK packet delay time to the time when the previous ACK packet (or window update notification packet) was transmitted, and the current time exceeds the ACK delay time and the ACK number is the previous time. If the ACK amount is advanced compared to the ACK packet, the ACK packet is immediately transmitted. In FIG. 19, when the data packet P201 is received, the ACK packet delay time elapses from the previous ACK packet transmission time, so the ACK packet P195 is immediately transmitted.
- the data packet P202 transmitted by the transmission side device 38 is received with a delay from normal due to a change in the state of the network 37.
- the ACK generation unit 105 of the reception side device 31 generates an ACK packet for the received data packet P202 and passes it to the ACK delay unit 112.
- the 80 0 @@ extension unit 112 obtains the ACK transmission time obtained by adding the ACK delay time to the transmission time of the previous ACK packet P195.
- the current time has already passed the ACK transmission time. Therefore, the ACK packet 196 is immediately transmitted.
- the ACK packet P196 is immediately transmitted.
- the receiving-side device 31 receives the data packet P203 transmitted by the transmitting-side device 38.
- the receiving side device 31 generates an ACK packet for the received data packet P203 and passes it to the ACK delay unit 112.
- the Hachiji 13 ⁇ 4 @ extension unit 112 that received the Hachi 1 ⁇ packet found the ACK transmission time by adding the ACK delay time to the transmission time of the previous A CK packet P196. As a result, the current time does not satisfy the ACK transmission time.
- ACK packet 197 is not transmitted. Thereafter, when the current time reaches the ACK transmission time, the ACK delay unit 112 transmits the ACK packet P197 held by the ACK delay unit 112.
- the ACK delay unit 112 confirms the ACK transmission time and transmits ACK packets P198 and P199.
- the data packet arrival interval has returned to the predetermined interval, so that an ACK packet is immediately transmitted.
- Embodiments 1 and 2 the same effects as in Embodiments 1 and 2 can be obtained. Furthermore, in this embodiment, even if the data packet arrival interval changes due to network fluctuations, it is possible to control the transmission rate of the transmitting device by controlling the transmission interval of the ACK packet. It becomes. In addition, this embodiment is an implementation form. By combining with mode 3 or 4, the effect obtained in embodiment 3 or 4 can also be enjoyed.
- the communication device (receiving device) in the present embodiment is substantially the same as the configuration shown in FIG. 8 of the first embodiment, and only the processing unit is different. Therefore, detailed description of the components other than the processing unit is omitted.
- processing unit in receiving-side apparatus 31 of the present embodiment has substantially the same configuration as processing unit 33c shown in Fig. 17 of the fifth embodiment. Therefore, the processing unit in the present embodiment will be described below using FIG. 17 so as to clarify the difference from the fifth embodiment.
- FIG. 17 shows a processing configuration example centering on the TCP processing unit in the receiving-side device 31 of the present invention.
- functions of each processing unit will be described. Note that Embodiment 5 and the configuration example are the same, and there is only a slight difference in function. In describing the present embodiment, only the differences from the fifth embodiment will be described.
- Reception rate determination section 110 in the present embodiment has the function shown in Embodiment 5, updates the ACK delay time and the ACK amount in response to a request to change the reception rate, and performs the A CK delay.
- Section 112 has a function of notifying.
- ACK delay section 112 in the present embodiment has the functions shown in Embodiment 5, and also has the ACK delay time and ACK amount determined by reception rate determination section 110 based on the reception rate change request. Is reflected in the transmitted ACK packet.
- FIG. 20 is a sequence diagram showing exchange of data packets and ACK packets in the present embodiment.
- the ACK packet or window update notification packet transmitted by the receiving device 31 is indicated by a broken line
- the data packet transmitted by the transmitting device 38 is indicated by a solid line.
- 1 packet length until 1 RTT elapses is assumed to be 1
- the update amount is 4
- the update interval (the above-mentioned predetermined interval) is T milliseconds.
- the receiving side apparatus 31 receives the data packet P221 and transmits the ACK packet P212. Up to this point, receiving-side apparatus 31 performs the same data transmission / reception processing as in the fifth embodiment. Thereafter, it is assumed that the receiving-side device 31 wants to change the reception rate at the time of “reception rate change” in the figure. In the present embodiment, it is assumed that the reception interval (the above-mentioned predetermined interval) is to be changed to double 2T milliseconds. This rate change request is notified to the reception rate determination unit 110. The reception rate determination unit 110 that has received the reception rate change request instructs the ACK delay unit 112 to double the ACK packet delay time because it wants to double the reception interval.
- ACK generation section 105 When receiving apparatus 31 receives data packet P222, ACK generation section 105 generates an ACK packet and passes it to ACK delay section 112.
- the ACK delay unit 112 that has received the ACK packet adds the ACK packet delay time to the previous ACK transmission time to obtain the ACK packet transmission time.
- the ACK transmission time calculated at this time is ahead of the ACK transmission time calculated without receiving the reception rate change request. Therefore, since the current time has reached the ACK transmission time when the data packet P 222 is received, the ACK delay unit 112 of the receiving side device 31 does not immediately transmit the ACK.
- ACK generation section 105 generates an ACK packet and passes it to ACK delay section 112.
- the ACK delay unit 112 that has received the ACK packet adds the ACK packet delay time to the previous ACK transmission time to obtain the ACK packet transmission time.
- the ACK delay unit 112 immediately transmits 80003 ⁇ 4.
- the ACK delay unit 112 subtracts the data amount 4 for the hold from the window size to transmit the ACK packet P213 as the window size 12. I do.
- the receiving side device 31 performs reception processing of the data packets P224 and P225 and transmits an ACK packet P214. In this way, it is possible to change the transmission interval of data packets transmitted by the transmission side device 38 to double.
- FIG. 21 is a sequence diagram showing another exchange of the data packet and the ACK packet in the present embodiment.
- the ACK packet or window update notification packet transmitted by the receiving device 31 is indicated by a broken line
- the data packet transmitted by the transmitting device 38 is indicated by a solid line.
- 1RTT after the window update notification starts
- the length of one packet is 1
- the update amount is 4
- the update interval is T milliseconds.
- the receiving side device 31 receives the data packet P241 and transmits the ACK packet P232.
- receiving-side apparatus 31 performs the same data transmission / reception processing as in the fifth embodiment. Thereafter, it is assumed that the receiving-side device 31 wants to change the reception rate at the time of “reception rate change” in the figure. In this embodiment, it is assumed that the update amount is to be changed to one half. This rate change request is notified to the reception rate determination unit 110. The reception rate determining unit 110 that has received the reception rate change request instructs the ACK delay unit 112 to halve the update amount because it wants to halve the update amount. That is, in the present embodiment, the update amount is changed to 2.
- ACK generation section 105 generates an ACK packet and passes it to ACK delay section 112.
- the ACK delay unit 112 that has received the ACK packet adds the ACK packet delay time to the previous ACK transmission time to obtain the ACK packet transmission time. Since the ACK transmission time calculated at this time reaches the current time at the time when the data packet P242 is received, the ACK delay unit 112 immediately transmits the ACK packet P233. However, the update amount of the ACK delay unit 112 is halved due to the reception rate change request. Therefore, since the ACK amount of the ACK packet that is about to be transmitted is four sequence numbers 18, 19, 20, and 21, and the update amount is 2, Yachi 13 ⁇ 4 @ extension unit 112 ) Set the window size to 14 and send ACK packet P233.
- Window size previous window size stored by RWIN storage unit 111
- the receiving-side device 31 transmits ACK packets P234, P235, and P236 while reducing the window size by two.
- the receiving-side device 31 receives the data packet P246 from the transmitting-side device 38.
- the same effects as in Embodiments 1, 2, and 5 can be obtained.
- the transmission rate of data packets transmitted by the transmission side apparatus is dynamically changed by controlling the ACK transmission interval and window size according to the change in the reception status of the reception side apparatus. Is possible. Further, by combining the present embodiment with the third or fourth embodiment, the effects obtained in the third or fourth embodiment can be obtained.
- the communication device (receiving device) in the present embodiment is substantially the same as the configuration shown in FIG. 8 of the first embodiment, and only the processing unit is different. Therefore, detailed description of the components other than the processing unit is omitted.
- FIG. 22 is a configuration diagram illustrating an example of a functional configuration of a processing unit in the reception-side device 31 of the present embodiment.
- the receiving-side device 31 of the present embodiment includes a processing unit 33d instead of the processing unit 33 of the first embodiment.
- the processing unit 33d in the present embodiment has an additional function with respect to the processing unit 33 of the first embodiment, and therefore only the difference from the first embodiment will be described.
- the processing unit 33d includes an IP processing unit 121, a TCP processing unit 122, and an application processing unit 123.
- the TCP processing unit 122 of the receiving side device 31 of the present embodiment includes the TCP packet processing unit 124, the reception buffer 127, the window size calculation unit 128, the window update timer unit 129, and the reception rate determination unit 130. , And the previous RWIN storage unit 131.
- the reception buffer 127, window size calculation unit 128, window update timer unit 129, and previous R WIN storage unit 131 are the reception buffer 47, window size calculation unit 48, window update timer unit 49 of the first embodiment. It has the same functions and configuration as the previous RWIN storage unit 51.
- the TCP packet processing unit 124 includes an ACK generation unit 125 and a window update notification generation unit 126.
- the TCP packet processing unit 124 is the TCP packet processing unit 4 described in the first embodiment.
- the reception rate determination unit 130 is notified that the reception data packet has reached the update amount. It further has a function to
- Reception rate determining section 130 has the function of reception rate determining section 50 shown in the first embodiment.
- the reception rate determination unit 130 notifies the TCP packet processing unit 124 of the update amount, and notifies that the reception data packet has reached the update amount when the continuous reception data packet reaches the update amount.
- the reception rate determining unit 130 calculates the update amount and the predetermined interval by any of the methods (Equation 3) to (Equation 8), and the window size calculation unit The value is transmitted to 128 and window update timer unit 129.
- FIG. 23 is a sequence diagram showing exchange of data packets and ACK packets in the present embodiment.
- the ACK packet or window update notification packet transmitted by the receiving side device 31 is indicated by a broken line
- the data packet transmitted by the transmitting side device 38 is indicated by a solid line.
- one packet length is 1
- the update amount is 4
- the update interval is T milliseconds.
- the transmission side device 38 has a function of slow start that gradually increases the amount of transmission data. For this reason, the number of transmission data packets transmitted by the transmission side device 38 is increased to 1 packet (P261), 2 packets (P262), and 4 packets (P263) per 1 RTT. Until the data packet P262 is received, the data update packet continuously transmitted from the transmission side device 38 has not reached the update amount in the reception side device 31, and therefore the window update notification function is not performed.
- the receiving-side device 31 receives the data packet P263.
- the receiving side device 31 that has received the data packet P263 generates and transmits an ACK packet P253 for the data packet P263.
- the TCP packet processing unit 124 notifies the reception rate determining unit 130 that the update amount has been reached.
- the reception rate determination unit 130 that is notified that the update amount has been reached receives the update amount (4 in this embodiment) to the window size calculation unit 128.
- the transmission side device 38 that has received the ACK packet P253 transmits the subsequent sequence numbers 8, 9, 10, and 11 because of the window size of the received ACK packet P253.
- the receiving side device 31 that has started the window update notification function, after transmitting the ACK packet P253, when the predetermined interval T milliseconds elapses, sets the update amount to the previously notified window size 4 according to (Equation 1). 4 is added, 8 is set to the window size of the window update notification packet, and the window update notification packet is notified to the transmission side device 38 (P254).
- the transmitting side device 38 that has received the ACK packet P2 54 transmits 8 data packets including the already transmitted sequence numbers 8, 9, 10, and 11 because the window size of the received ACK packet P254 is 8. It becomes possible to do. Therefore, the transmission side device 38 transmits the data packet P264 of sequence numbers 12, 13, 14, and 15 that is a continuation of the data packet P263.
- the same effect as in the first embodiment can be obtained, and even when the transmission side device performs a slow start, transmission from the reception side device to the transmission side device is possible.
- the rate can be controlled. Further, the same effects as described above can be obtained even in the data transmission / reception processing shown in FIG.
- FIG. 24 is a sequence diagram showing another exchange of the data packet and the ACK packet in the present embodiment.
- the ACK packet or window update notification packet transmitted by the reception side device 31 is indicated by a broken line
- the data packet transmitted by the transmission side device 38 is indicated by a solid line.
- 1 packet length is 1
- update amount is 4
- update interval predetermined interval
- the data transmission / reception processing between the reception-side device 31 and the transmission-side device 38 is performed in the same manner as the processing shown in FIG. 23 until the data packet P343 is received.
- the TCP packet processing unit 124 notifies the reception rate determining unit 130 that the update amount has been reached.
- Receiving rate determination unit 130 which has been notified that the update amount has been reached, notifies window size calculation unit 128 of the update amount (4 in this embodiment) and activates window update timer to window update timer unit 129. Prompt and start the window update notification function.
- the receiving-side device 31 that has started the window update notification function updates the window according to the following equation 14.
- Window size previously notified window size + update amount ACK number increase amount...
- Receiving side device 31 having received data packet P343 transmits an ACK packet P333 to the transmitting side device after receiving the data packet by the window update notification function.
- the ACK packet P333 has an ACK number of 5 due to the increment of the ACK number 1, and a window size of 7 according to (Equation 14).
- the transmitting side device 38 that has received the ACK packet P333 has the received ACK packet P333 having a window size of 7 and an ACK number of 5. Therefore, the sequence numbers 8, 9, 10 and 11 data packets P344 are transmitted.
- the receiving device 31 uses the window update notification function to transmit the ACK packet P333 and when the predetermined interval of T milliseconds elapses, the update capacity is set to the previously notified window size 7 according to (Equation 14). Add 4 and calculate window size 10 based on ACK number increment 1.
- the receiving side device 31 notifies the transmitting side device 38 of the ACK packet P334 having the calculated window size 10 set.
- the transmitting side device 38 that has received the ACK packet P334 has a window size of 10 for the received ACK packet P334 and an ACK number of 6. Data packets P345 of 13, 14, and 15 are transmitted.
- the present embodiment it is possible to obtain the same effect as in the first embodiment, and even when the transmission side device performs a slow start, the transmission from the reception side device to the transmission side device It is possible to control the rate. Further, by combining the present embodiment with the second, third, fourth, or the like, the effects obtained in the respective embodiments can also be enjoyed.
- the window update notification function is started when the data packet continuously transmitted from the transmission side device 38 reaches the update amount.
- the window update notification function may be started when time elapses or when the number of all data packets transmitted from the transmission side device 38 reaches a predetermined number.
- the communication device (receiving device) in the present embodiment is substantially the same as the configuration shown in FIG. 8 of the first embodiment, and only the processing unit is different. Therefore, detailed description of the components other than the processing unit is omitted.
- FIG. 25 is a configuration diagram illustrating an example of a functional configuration of a processing unit in the reception-side device 31 according to the present embodiment.
- the receiving-side device 31 of the present embodiment includes a processing unit 33e instead of the processing unit 33 of the first embodiment.
- the processing unit 33e includes an IP processing unit 141, a TCP processing unit 142, and an application processing unit 14.
- the TCP processing unit 142 is described as a program executed by the processing unit 33e in the present embodiment, it may be implemented in an LSI or the like.
- the solid line shows the data flow of transmission and reception packets
- the broken line shows the flow related to the exchange of control information.
- the TCP processing unit 142 of the reception-side device 31 includes a TCP packet processing unit 144, a reception buffer 147, a window size calculation unit 148, and a previous RWIN storage unit 149.
- the TCP packet processing unit 144 has a TCP packet transmission / reception processing function.
- the TCP packet processing unit 144 specifies the application of the received packet, and stores the packet in the reception buffer 147 for delivery to the application. Further, the TCP packet processing unit 144 has a function of constructing a TCP packet, passing it to the IP processing unit 141, and transmitting it as a TCP / IP packet.
- the TCP packet processing unit 144 includes an ACK generation unit 145, a window update notification generation unit 146, and a packet loss detection unit 150.
- the ACK generation unit 145 determines an ACK number based on the sequence number of the received TCP packet, and generates an ACK packet.
- the currently receivable free space obtained from the window size calculation unit 148, that is, the window size is also set.
- the window update notification generation unit 146 generates a window update notification packet when the reception buffer 147 has an empty space.
- the window update notification generation unit 146 also uses the window size obtained from the window size calculation unit 148 as the window update notification packet.
- the packet loss detection unit 150 has a function of detecting that a TCP packet is missing or lost. Further, the packet loss detection unit 150 has a function of notifying the window size calculation unit 148 that a loss has occurred.
- the reception buffer 147 has a function of temporarily holding reception data to be passed to the application processing unit 143.
- the reception buffer 147 can store the maximum RWIN-MAX data, and in response to a request from the application processing unit 143, the data temporarily stored in the reception buffer 147 is sequentially transferred to the application processing unit 143. .
- the reception buffer 147 notifies the window update notification generation unit 146 that the window size has increased when the window size increases tl due to data being passed to the application processing unit 143.
- the window size calculation unit 148 has a function of calculating a value to be notified to the transmission side device 38 as a window size. That is, window size calculation section 148 in the present embodiment calculates the window size based on the packet loss notified from packet loss detection section 150.
- the window size is calculated by the following formula.
- Window size Previously notified window size minus previous notified window size Amount of lost data ' ⁇ ⁇ ⁇ (Formula 15)
- Window size Last notified window size + Update amount ⁇ ⁇ ⁇ ⁇ (Formula 16)
- the update amount may be 1 MSS or multiple MSS.
- the previous RWIN storage unit 149 has a function of recording and holding the window size (hereinafter referred to as the previous window size) used when the window update notification was performed last time.
- the previous RWI N storage unit 149 passes the previous window size to be recorded and held to the window size calculation unit 148, receives the result calculated by the window size calculation unit 148, updates the previous window size, and holds the record.
- FIG. 26 is a sequence diagram showing exchange of data packets and ACK packets in the present embodiment.
- the ACK packet sent by the receiving device 31 or The window update notification packet is indicated by a broken line
- the data packet transmitted by the transmission side device 38 is indicated by a solid line.
- the receiving-side device 31 enters a state of receiving data transmitted from the transmitting-side device 38 through establishment of a connection with the transmitting-side device 38 or the like. At this time, the receiving-side device 31 notifies the transmitting-side device 38 that the window size is 8 (P351).
- the transmission side device 38 transmits data packets P361 and P362 to the reception side device 31 based on the window size 8. However, it is assumed that the data packet P362 is lost because the network 37 is congested at this time or the capacity of the relay device is insufficient.
- the receiving side device 31 that has not reached the data packet P362 transmits an ACK packet P352 up to the sequence number that has arrived.
- the transmitting side device 38 that has received the ACK packet P352 transmits a data packet P363 that is a subsequent sequence number.
- Receiving side device 31 receiving data packet P363 detects that sequence number 8 has been lost, and has received ACK packet P353 (hereinafter referred to as duplicate ACK packet) P353 similar to ACK packet P352 transmitted last time. Send only the number of packets (packets with sequence numbers 9 to 15). In the present embodiment, seven duplicate ACK packets P353 are transmitted. Receiving the duplicate ACK packet, the transmitting side device 38 knows that sequence number 8 has been lost, and retransmits data packet P364 with sequence number 8 using the high-speed retransmission function.
- Receiving apparatus 31 that has received retransmitted data packet P364 reduces the window size according to (Equation 15) and transmits ACK packet P354 as window size 7. Since the window size set in the ACK packet is 7, the transmitting side device 38 that has received the ACK packet P354 transmits the data packet P365 for 7 packets.
- transmission side device 38 again has a data packet having 8 packets as in the case of transmitting data packets P361 and P362. Is sent to the receiving device 31. As a result, the packet again The possibility of loss is increased.
- the window size is set to 7 in ACK packet P354, it is possible to prevent packet loss from occurring again.
- FIG. 27 is a sequence diagram showing another exchange of the data packet and the ACK packet in the present embodiment.
- the ACK packet or window update notification packet transmitted by the receiving side device 31 is indicated by a broken line
- the data packet transmitted by the transmitting side device 38 is indicated by a solid line.
- one packet length is 1
- the update amount is 2
- the predetermined time is H milliseconds.
- the receiving-side device 31 enters a state of receiving data transmitted from the transmitting-side device 38 through establishment of a connection with the transmitting-side device 38 or the like. At this time, the receiving-side device 31 notifies the transmitting-side device 38 that the window size is 6 (P371).
- the transmission side device 38 transmits the data packet P381 to the reception side device 31 based on the window size 6.
- the receiving side device 31 that has received the data packet P381 transmits an ACK packet P372 indicating the ACK number 7 and the window size 6 to the transmitting side device 38.
- Such data transmission / reception processing between the reception side device 31 and the transmission side device 38 is continuously repeated for a while.
- the receiving-side device 31 increases the window size by the update amount according to (Equation 16) and notifies the window size as 8 ( P373).
- the transmission side device 38 transmits the data packet P382 corresponding to the window size 8.
- the transmission side device 38 can transmit more packets while suppressing the occurrence of packet loss. Therefore, in the present embodiment, if no packet loss occurs during the predetermined time H, the window size is set large, so that the data transfer efficiency can be improved.
- the communication device (receiving device) in the present embodiment is substantially the same as the configuration shown in FIG. 8 of the first embodiment, and only the processing unit is different. Therefore, detailed description of the components other than the processing unit is omitted.
- FIG. 28 is a configuration diagram illustrating an example of a functional configuration of a processing unit in the reception-side device 31 according to the present embodiment.
- the receiving-side device 31 of the present embodiment includes a processing unit 33e instead of the processing unit 33 of the first embodiment.
- the processing unit 33f includes an IP processing unit 161, a TCP processing unit 162, and an application processing unit 163.
- the TCP processing unit 162 is described as a program executed by the processing unit 33f in the present embodiment, it may be implemented in an LSI or the like.
- the solid line in the figure indicates the data flow of transmission / reception packets, and the broken line indicates the flow related to the exchange of control information.
- the TCP processing unit 162 of the reception-side device 31 includes a TCP packet processing unit 164, a reception buffer 167, and a window size calculation unit 168.
- the reception buffer 167 has the same function and configuration as the reception buffer 47 of the first embodiment.
- the TCP packet processing unit 164 has a function of TCP packet transmission / reception processing.
- the TCP packet processing unit 164 specifies the application of the received packet, and stores the packet in the reception buffer 167 for delivery to the application. Further, the TCP packet processing unit 164 has a function of constructing a TCP packet, passing it to the IP processing unit 161, and transmitting it as a TCPZlP packet.
- the TCP packet processing unit 164 includes an ACK generation unit 165, a duplicate ACK generation unit 166, and a packet loss detection unit 169.
- ACK generation section 165 determines an ACK number based on the sequence number of the received TCP packet, and generates an ACK packet.
- the currently receivable free space obtained from the window size calculation unit 168, that is, the window size is also set.
- Duplicate ACK generation section 166 has a function of generating and transmitting a duplicate ACK packet when notified by packet loss detection section 169 that a loss has occurred in the received packet. Further, the window size obtained from the window size calculation unit 168 is set in the duplicate ACK packet. [0294] The packet loss detection unit 169 has a function of detecting that a TCP packet is lost or lost. Further, the packet loss detection unit 169 notifies the duplicate ACK generation unit 166 that there is a packet loss.
- the window size calculation unit 168 has a function of calculating the window size based on the availability of the reception buffer 167 and notifying the ACK generation unit 165 and the duplicate ACK generation unit 166.
- FIG. 29 is a sequence diagram showing exchange of data packets and ACK packets in the present embodiment.
- the ACK packet or window update notification packet transmitted by the receiving side device 31 is indicated by a broken line
- the data packet transmitted by the transmitting side device 38 is indicated by a solid line.
- the transmission-side device 38 When receiving the ACK packet P391 from the reception-side device 31, the transmission-side device 38 transmits data packets P401, P402, and P403 to the reception-side device P391. Here, it is assumed that the data packet P402 of the data packets P401, P402, and P403 transmitted by the transmission side device 38 is not received by the reception side device 31.
- the receiving-side device 31 detects a missing packet when the data packet P403 arrives.
- the receiving side device 31 that detects the packet loss immediately generates a predetermined number of ACK packets P392 and transmits them to the transmitting side device 38.
- the transmitting side device 38 immediately retransmits the data packet P404 by the high speed retransmission function.
- FIG. 30 is a diagram showing a configuration example of the network and a configuration example of the communication device according to the embodiment of the present invention.
- the communication device 200A communicates with the communication device 100A via the network 3A.
- the communication device 100A and the communication device 200A are devices having a communication function for connecting to the network 3A by wire or wirelessly.
- a device having an Ethernet (registered trademark) interface for example, a PC (Personal Computer) or a network) Appliances capable of communication).
- the network 3A is a network including wired or wireless, and examples include a public network such as the Internet.
- communication device 100A and communication device 200A establish a TCP connection between them, and data is transmitted from communication device 200A to communication device 100A.
- the data transmission source communication device 200A is referred to as a transmission side device
- the data transmission destination communication device 10OA is referred to as a reception side device.
- a receiving device that is an FTP client that performs an operation based on an application program downloads a file from a transmitting device that is an FTP (File Transfer Protocol) server (for example, a PC) or a POP (Post Office Protocol) server.
- FTP File Transfer Protocol
- PC for example, a PC
- POP Post Office Protocol
- Communication device 100A includes CPU 101A as a processing unit, storage unit 102A, system bus 103A, and communication unit 105A.
- the communication unit 105A is hardware connected on the system bus 103A.
- the communication unit 105A has a function of transmitting data passed by the CPU 101A to the network 3A, and a function of receiving data from the network 3A and passing it to the CPU 101A.
- the communication unit 105A includes a reception FIFO memory 151A that temporarily holds data received by the network 3A, and a transmission FIFO memory 152A that temporarily holds data passed from the CPU 101A.
- the communication unit 105A includes a data loss detection unit 150A that detects data loss when the data received from the network 3A overflows without being stored in the reception FIFO memory 151A.
- the data loss detection unit 150A may notify the CPU 101A of the occurrence of an overrun only when the protocol and port number of the lost packet match the currently communicating protocol and port number. Good. Furthermore, the reception FIFO memory 151A and the transmission FIFO memory 152A can be shared for transmission and reception!
- the CPU 101A has a function of moving (reading) the data stored in the reception FIFO memory 151A of the communication unit 105A to the storage unit 102A and the data stored in the storage unit 102A for transmission of the communication unit 105A. It has a function to move (write) to the FIFO memory 152A. Also, The CPU 101A also performs protocol processing including TCP such as data analysis and transmission data creation processing on the data stored in the storage unit 102A. In addition, the CPU 101A has a function of executing a communication application program and other programs as necessary using the storage unit 102A.
- the communication devices 100A and 200A are separately provided with a DMA controller.
- the data is moved by a DMA (Dirt Memory Access) controller that is not included in the CPU.
- each protocol process may be performed by separate hardware, not by the CPU 101A.
- FIG. 31 is a configuration diagram showing a functional configuration of the CPU 101A in the communication device 100A.
- the functional configuration shown in FIG. 31 can be realized as software operating on CPU 101A shown in FIG.
- the power communication device 100A described as a receiving-side device centering on TCP data reception processing according to the present invention includes a functional unit that performs TCP data transmission processing. It may be.
- Communication device 200A may be a conventional communication device or a communication device having a reception processing function unit to which the present invention is applied.
- the reception process according to the present invention will be described in detail, and the functions and operations related to the transmission process will be omitted. Further, the description of other configurations for realizing TCP communication that are not directly related to the present invention will be omitted.
- the flow of data is shown using several types of lines.
- the solid line is the data flow indicating the flow of the packet or data
- the dotted line is the control flow indicating the flow of the control signal (notification or parameter).
- the CPU 101A of the communication device 100A has a detailed configuration of a packet processing unit that processes a received or transmitted packet as an API unit 1100, a TCP processing unit 1200, an IP processing unit 1300, an IF processing unit 1400, And a MAC processing unit 1500.
- the TCP processing unit 1200 includes a reception buffer 1240, a window control unit 1250, a WinUpdate generation unit 1260, a DupAck generation unit 1270, an Ack generation unit 1280, a TCP transmission unit 1220, and a TCP reception unit 121. 0, TCP loss detection unit 1215, and DupAck management unit 1230.
- the MAC processing unit 1500 includes a loss notification unit 5000, a socket duplication unit 7000, a MAC transmission unit 1520, and a MAC reception unit 1510.
- the API unit 1100 delivers data between the TCP processing unit 1200 and an application program such as FTP, and notifies the completion of the processing.
- the API unit 1100 requests the TCP processing unit 1200 to exchange data, and converts the data passed from the TCP processing unit 1200 as necessary so that the application program can process it. And copying, and notifies the TCP processing unit 1200 of the completion of the processing.
- the TCP processing unit 1200 converts the TCP packet received from the IP processing unit 1300 into data to be passed to the API unit 1100.
- the TCP processing unit 1200 extracts and holds data included in one or more TCP packets received from the IP processing unit 1300 from the TCP packet, and corresponds to the data transfer request from the API unit 1100. Pass data.
- the TCP processing unit 1200 creates an Ack for the TCP packet received from the IP processing unit 1300 and passes it to the IP processing unit 1300.
- Ack is described as an ACK or an ACK packet in the first to ninth embodiments.
- IP processing unit 1300 extracts the TCP packet from the IP packet received from IF processing unit 1400 and passes it to TCP processing unit 1200. Also, the IP processing unit 1300 adds an IP header to the TCP packet received from the TCP processing unit 1200 to construct an IP packet, and passes it to the IF processing unit 1400.
- IF processing section 1400 extracts the IP bucket from the MAC frame received from MAC processing section 1500, and passes it to IP processing section 1300. Further, IF processing section 1400 adds a MAC header to the IP packet received from IP processing section 1300 to construct a MAC frame and passes it to MAC processing section 1500.
- the MAC processing unit 1500 passes the data received by the communication unit 105A shown in Fig. 30 to the IF processing unit 1400. This process is a process of transferring (reading) data from the reception FIFO memory 151A of the communication unit 105A in FIG. 30 to the storage unit 102A in FIG. Further, MAC processing unit 1500 passes the MAC frame received from IF processing unit 1400 to communication unit 105A. This process This is a process of passing (writing) data from the storage unit 102A of FIG. 30 to the transmission FIFO memory 152A of the communication unit 105A.
- the reception buffer 1240 of the TCP processing unit 1200 is a buffer area for managing data received from the TCP reception unit 1210.
- the actual data to be managed is arranged in the storage unit 102A in FIG.
- the reception buffer 1240 has a function of passing data to be managed to the API unit 1100 and freeing a buffer area that holds the completed data.
- it in response to an inquiry about the usable buffer size from the window control unit 1250, it has a function of transmitting the usable buffer size to the window control unit 1250.
- the window control unit 1250 queries the reception buffer 1240, calculates Win from the usable buffer size obtained together, and holds it. In the present embodiment, Win is described as the window size in the first to ninth embodiments. In addition, the window control unit 1250 passes the managed Win to each of the DupAck management unit 1230 and the Ack generation unit 1280 inquiries of Win. Further, when the window control unit 1250 receives a notification of completion of the application process from the API unit 1100, the window control unit 1250 calculates Win from the usable buffer size obtained by inquiring the reception buffer 1240, and the calculated Win is used as the DupAck management unit. Pass to 1230.
- WinUpdate generation unit 1260 When the WinUpdate generation unit 1260 receives Win from the DupAck management unit 1230, the WinUpdate generation unit 1260 creates WindowUpdate (Ack that notifies the sending side device that the Win that can be received has increased, hereinafter WinUpdate) and creates the TCP transmission unit 1220. To pass.
- WindowUpdate Ack that notifies the sending side device that the Win that can be received has increased, hereinafter WinUpdate
- the DupAck generation unit 1270 generates a DupAck (Duplicate acknowledgement) from the DupAck information received from the DupAck management unit 1230 and passes it to the TCP transmission unit 1220.
- the DupAck information includes a sequence number (hereinafter referred to as Seq) that is an ACK number of Embodiments 1 to 9 and Win.
- Seq sequence number
- the DupAck or DupAck packet corresponds to the duplicate ACK in the first to ninth embodiments.
- the Ack generation unit 1280 When the Ack generation unit 1280 receives a Seq from the TCP reception unit 1210, the Ack generation unit 1280 is based on Win obtained by making an inquiry to the Window control unit 1250 and the Seq received from the TCP reception unit 1210. Create an Ack and pass it to the TCP transmitter 1220.
- this embodiment is configured as a first packet generation unit that generates DupAck or Ack, which is a power confirmation response packet of each of the DupAck generation unit 1270 and the Ack generation unit 1280.
- the TCP transmission unit 1220 sets the TCP header information necessary for the TCP packet (DupAck or Ack) received from the DupAck management unit 1230 or the Ack generation unit 1280, and sends the TCP packet to the IP processing unit 1300. hand over.
- the TCP reception unit 1210 includes a TCP loss detection unit 1215 that investigates whether the Seq of the TCP packet is in order.
- the TCP processing unit 1200 receives data from the TCP packet when the Seq of the TCP packet received from the IP processing unit 1300 is in order (when the TCP loss detection unit 1215 does not detect the loss of the TCP bucket). Perform the extraction process and pass it to the receive buffer 1240. Also, the TCP reception unit 1210 passes the next Seq to the Ack generation unit 1280 when the Seq is in order. Note that the function of passing the next Seq to the Ack generation unit 1280 does not have to occur every time. In this case, the notification to the Ack generation unit 1280 is notified at a rate of once every plural times, or is performed after a predetermined time of the system timer power by the Delayed Ack algorithm.
- the TCP loss detection unit 1215 adjusts the Seq of the TCP packet received by the TCP reception unit 1210. If the Seq is not in order, the expected Seq is passed to the DupAck management unit 1230.
- the DupAck management unit 1230 holds the Seq received from the TCP loss detection unit 1215 and Win obtained by making an inquiry to the Window control unit 1250 as DupAck information. Further, the DupAck management unit 1230 passes the DupAck information to the DupAck generation unit 1270 and counts the number of times passed as the number of DupAck transmissions.
- the DupAck management unit 1230 When the DupAck management unit 1230 receives Win from the window control unit 1250, the DupAck transmission number held by the DupAck transmission number is less than the predetermined number based on the packet loss information from the loss notification unit 5000. Is calculated. If the result is greater than or equal to ⁇ , the DupAck management unit 1230 generates DupAck information (Seq and Win) to be held before passing Win received from the window control unit 1250 to the WinUpdate generation unit 1260. Pass to part 1270. Then, the DupAck management unit 1230 notifies the calculated number of DupAck duplications to the inquiry of the packet duplication unit 7000. In the present embodiment, the DupAck replication number calculated by the DupAck management unit 1230 will be described by taking an example of management in units of packets.
- the number of DupAck duplications may be managed as one unit not in units of packets to be transmitted, for example, in units of TCP connections or the entire communication device.
- the DupAck management unit 1230 erases the packet loss information received from the packet loss notification unit 5000, and further sets the DupAck duplication number and the DupAck transmission number to the initial values. Reset to.
- the initial value of the number of DupAck replicas will be explained by taking 1 as an example.
- the initial value of the number of DupAck transmissions will be explained using 0 as an example.
- the MAC processing unit 1500 includes a MAC reception unit 1510, a MAC transmission unit 1520, and a loss notification unit 5000. A detailed description of each is given below.
- MAC reception unit 1510 passes the MAC frame (P200) read from reception FIFO memory 151A of communication unit 105A in Fig. 30 to IF processing unit 1400. That is, the MAC receiver 1510
- the data in the reception FIFO memory 151A in FIG. 30 is moved to the storage unit 102A via the CPU 101A.
- the MAC transmission unit 1520 includes a packet duplication unit 7000.
- the MAC transmission unit 1520 writes the MAC frames received from the IF processing unit 1400 in the transmission FIFO memory 152A of the communication unit 105A in FIG. 30 by the number of copies indicated by the packet duplication unit 7000 (P100). That is, the MAC transmission unit 1520 attempts to move data from the CPU 101A in FIG. 30 to the transmission FIFO memory 152A. Therefore, the MAC transmission unit 1520 duplicates DupAck and writes it in the transmission FIFO memory 152A.
- the packet duplication unit 7000 makes an inquiry to the DupAck management unit 1230, and instructs the MAC transmission unit 1520 to send the target MAC frame N times based on the number of DupAck duplications (N) obtained from the inquiry. To do.
- the packet duplication unit 7000 moves the data of the target MAC frame once. As N times duplicate and send You can only give instructions to do so.
- MAC transmitting section 1520 and packet duplicating section 7000 are configured as second packet generating means for generating DupAck that is a data request packet.
- the loss notification unit 5000 receives the packet loss notification (E150) from the data loss detection unit 150A in Fig. 30 and passes the packet loss information to the DupAck management unit 1230.
- the packet loss notification (E150) includes an IP address, protocol, and port number
- the loss notification unit 5000 also passes the IP address, protocol, and port number as packet loss information to the DupAck management unit 1230.
- the DupAck management unit 1230 based on the IP address and port number acquired from the loss notification unit 5000, the DupAck management unit 1230 identifies the transmission-side device 200A that is a partner that prompts retransmission of the lost packet.
- the DupAck management unit 1230 includes device specifying means.
- FIG. 32 taking as an example a case where communication apparatus 100 A is operated as a reception-side apparatus and communication apparatus 200 A as a transmission-side apparatus. .
- FIG. 32 shows a communication sequence between communication devices in the present embodiment.
- the performance of the receiving device 100A is low (for example, the performance of the CPU 101A is 133 MHz).
- the length of one packet (LEN) stored in one packet is set to 1 KByte, and the units and values of Seq and Win are adjusted accordingly.
- FIG. 32 shows a situation where Win of the receiving side device 100A is decreasing.
- the communication sequence up to this point is omitted.
- the receiving-side apparatus 100A copies the already transmitted DupAck (P14) and transmits the copied DupAck (P15) to the transmitting-side apparatus 200A.
- the “communication unit” surrounded by a dotted line indicates the communication unit 105A of FIG. 30, and the “MAC” surrounded by a dotted line indicates the MAC processing unit 1500 of FIG. 31, and is surrounded by a dotted line.
- “IF” indicates the IF processing unit 1400 in FIG.
- IP surrounded by a dotted line
- TCP TCP processing unit 1200 in FIG. 31
- API API surrounded by a dotted line
- application indicates the application program of FIG.
- the Seq l bucket (P21) transmitted from the communication device (transmission side device) 200A is transmitted via the network 3A to the communication unit 105A ⁇ of the communication device (reception side device) 100A.
- reception processing is performed.
- the TCP reception unit 1210 notifies the transmission side device 200A that the data has been received.
- the Ack generation unit 1280 that receives Seq from the TCP reception unit 1210 uses the Window control unit 1250 to inquire the reception buffer 1240 about currently receivable Wins.
- TCP transmission section 1220 performs TCP header construction processing on the TCP packet
- IP processing section 1300 and IF processing section 1400 perform packet construction on the TCP packet subjected to the TCP header construction processing.
- the data loss detection unit 150A notifies the CPU 101A that an overrun has occurred (control flow E100). That is, the loss notification unit 5000 receives the packet loss notification and passes the packet loss information to the DupAck management unit 1230 of the TCP processing unit 1200. The DupAck management unit 1230 holds the received packet loss information.
- the processing sequence (P231, P131, P241, P141) will be described. Since the processing for the data of P23 and P24 is the same as the processing for the data of P21, description of those processing is omitted here. Also, the processing for P13 and P14 data is Since it is the same as the process, the description of the process is omitted here.
- the TCP receiver 1210 analyzes the TCP header of the received TCP packet and completes the non-packetization process.
- the constructed packet (MAC frame) is output to the packet duplicating unit 7000 of the MAC processing unit 1500.
- the packet duplicating unit 7000 inquires of the DupAck management unit 1230 about the number of duplications, and the duplication number is “1”, so that the MAC processing unit 1500 is not instructed to duplicate the packets.
- the MAC transmission unit 1520 writes only one packet into the transmission FIFO memory 152A of the communication unit 105A.
- DupAck (P14) is the TCP processing unit from the 2012 MAC processing ⁇ 1500 knock-over replication ⁇ 7000 ⁇ MAC transmission ⁇ 1520 ⁇ ⁇ ⁇ thus the communication ⁇ 105A FIFO memory 152A (Data flow P141).
- the Win state (W12 shown in Fig. 32) has not changed since the Ack (PI 2) was received from the receiving apparatus 100A.
- the receiving side device 100A receives the reception buffer 1240 and the DupAck management unit in response to a reception request from the application program.
- the 1230 passes the received data to the application program via the API unit 1100 (data flow P212).
- the API unit 1100 When the reception of the received data to the application is completed, the API unit 1100 notifies the window control unit 1250 that the reception has been completed (data flow P213).
- the packet-constructed DupAck packet (MAC frame) is output to the packet duplicating unit 7000 of the MAC processing unit 1500.
- the packet replication unit 7000 makes an inquiry to the DupAck management unit 1230.
- the packet duplication unit 7000 instructs the MAC transmission unit 1520 to write one packet to the transmission FIFO memory 152A of the communication unit 105A based on the DupAck duplication number “1” obtained from the DupAck management unit 1230. To do.
- the MAC transmission unit 1520 writes one DupAck packet to the transmission FIFO memory 152A.
- MAC transmission unit 1520 since the number of DupAck duplications is “1”, MAC transmission unit 1520 writes a DupAck packet only once in transmission FIFO memory 152A of communication unit 105A. When the number is N (N ⁇ 2), N DupAck packets are transmitted by writing the same N times.
- the packet written in the transmission FIFO memory 152A of the communication unit 105A is transmitted as a DupAck packet (P15) from the communication unit 105A to the transmission side device 200A via the network 3A.
- the WinUpdate generation unit 1260 creates WinUpdate and passes it to the TCP transmission unit 1220.
- the WinUpdate passed to the TCP transmission unit 1220 is constructed through the IP processing unit 1300 and the IF processing unit 1400 (data flow P161).
- the WinUpdate packet (MAC frame) having the packet structure is passed from the MAC transmission unit 1520 to the communication unit 105A.
- Communication unit 105A transmits the WinUpdate (P16) packet to transmitting side device 200A via network 3A.
- the DupAck management unit 1230 sends the control flow after transmitting the duplicated DupAck packet (P15).
- E100 deletes the packet loss information passed from the loss notification unit 5000 and holds it, and Dup
- the DupAck management unit 1230 receives the packets of the sequence with the packet loss, and the DupAck management unit 1230 deletes the DupAck information (Seq and Win) stored in the DupAck management unit 1230, and the number of DupAck transmissions Is set to “0”, and the DupAck replication count is set to “0”.
- the packet loss information is erased even if the DupAck management unit 1230 duplicates the DupAck, and even after the packet loss information is received from the loss notification unit 5000 and the power is too long (for example, after 1 second) The packet loss information may be deleted.
- the DupAck management unit 1230 includes a reset unit.
- the packet duplicating unit 7000 manages the number of packets that have received packet loss information from the loss notifying unit 5000, and erases the packet loss information when a specific number of packets is transmitted. Even so.
- FIG. 34 is a flowchart showing an algorithm of the DupAck replication number calculation method in the present embodiment.
- the DupAck management unit 1230 Upon receiving the Win update notification from the window control unit 1250, the DupAck management unit 1230 checks whether the number of DupAck transmissions held is 1 or more and less than N (step S100). Further, the DupAck management unit 1230 investigates whether or not the loss notification is performed by the loss notification unit 5000 and packet loss information is recorded (step S102).
- step S100 if the number of DupAck transmissions managed by itself is 0 or less or (N + 1) or more (N in step S100), the DupAck management unit 1230 sets the number of DupAck duplications to “0”. (Step S104). On the other hand, when the number of DupAck transmissions held is 1 or more and less than N (Y in step S100), the DupAck management unit 1230 executes the process of step S102.
- N is the number (a predetermined number or a necessary number) of DupAck necessary for causing the transmission side apparatus to perform retransmission.
- step S102 If packet loss information from the loss notification unit 5000 is recorded in step S102 (Y in step S102), the DupAck management unit 1230 calculates the number of DupAck duplications using the formula “N — DupAck transmission number”. Calculate (step S106). On the other hand, when packet loss information is not recorded (N in Step S102), the DupAck management unit 1230 sets the number of DupAck duplications to “0” (Step S104).
- N is preferably the number at which the transmitting-side apparatus 200A activates high-speed retransmission.
- N is 3 as an example, and it is a condition for avoiding packet loss in a DupAck network, and may be 3 or more.
- a large value is particularly effective when DupAck is likely to disappear on a route with poor network quality. However, if this value is large, it will lead to an increase in network traffic, so it is not desirable to increase it unnecessarily. Desirably 3 or at most 4 is preferred.
- the transmission side device 200A is activated to perform high-speed retransmission, and the throughput reduction due to TCP retransmission is suppressed, and the reception side device 100A has the effect.
- the effect of activating high-speed retransmission of the sending side device 200A only when packet loss occurs, the effect of not overloading the network, the effect of suppressing unnecessary traffic due to duplicating DupAck, and the receiving side device required for DupAck transmission It has the effect of reducing CPU consumption of 100A and the effect of not sending an incorrect DupAck.
- receiving-side apparatus 100A reduces data loss in communication unit 105A. Detected force The receiving side device 100A according to this modification detects a data entry in the IP processing unit 1300.
- FIG. 35 is a diagram showing a network configuration example and a communication device configuration example of the first modification example in the tenth embodiment.
- the communication unit 105A is hardware connected on the system bus 103A, and includes the data loss detection unit 150A like the communication unit 105A of the above-described embodiment 10! /, NA! /, .
- the communication unit 105A has a function of transmitting data passed by the CPU 101A to the network 3A and a function of receiving data received from the network 3A.
- the communication unit 105A also includes a reception FIFO memory 151A that temporarily holds data received by the network 3A and a transmission FIFO memory 152A that temporarily holds data passed from the CPU 101A.
- FIG. 36 is a configuration diagram showing a functional configuration of the CPU 101A in the receiving-side device 100A.
- the solid line is the data flow indicating the data flow
- the dotted line is the control flow indicating the control signal flow.
- the CPU 101A of the receiving side device 100A includes an API unit 1100, a TCP processing unit 1200, an IP processing unit 1300, and a MAC processing unit 1500. Is provided. The explanation of each function part in Fig. 36 is shown below. Since the API unit 1100 and the TCP processing unit 1200 are exactly the same as the functions of the tenth embodiment, description thereof will be omitted.
- MAC processing unit 1500 does not include loss notification unit 5000 but includes only MAC reception unit 1510 and MAC transmission unit 1520.
- the MAC reception unit 1510 and the MAC transmission unit 1520 have the same functions as those in the tenth embodiment.
- IP processing unit 1300 extracts TCP packets from IP packets received from IF processing unit 1400, and delivers them to TCP processing unit 1200 in the same manner as IP processing unit 1300 in Embodiment 10 above. The Also, the IP processing unit 1300 adds an IP header to the TCP packet received from the TCP processing unit 1200 to construct an IP packet, and passes it to the IF processing unit 1400. Unlike the IP processing unit 1300 of the tenth embodiment, the IP processing unit 1300 includes a reception FIFO queue 1310, a data loss detection unit 150A, and a loss notification unit 5000.
- the reception FIFO queue 1310 is an area for temporarily storing data passed from the IF processing unit 1400. A part of the area of the storage unit 102A is allocated to this area, and the reception FIFO queue 1310 has a function of managing data stored in the area. That is, the reception FIFO queue 1310 manages the data received from the IF processing unit 1400 so that the IP processing unit 1300 processes the data in the order received (first-in first-out).
- the data loss detection unit 150A detects that a reception overrun has occurred in the reception FIFO queue 1310, and notifies the loss notification unit 5000 of a packet loss notification (E150).
- the loss notification unit 5000 receives the packet loss notification (E150) from the data loss detection unit 150A, and passes the packet loss information notifying that a loss has occurred to the DupAck management unit 1230 of the TCP processing unit 1200 .
- the packet loss notification (E150) includes the IP address, protocol, and port number
- the loss notification unit 5000 passes the packet loss information including the IP address, protocol, and port number to the DupAck management unit 1230.
- the “communication unit” surrounded by a dotted line indicates the communication unit 105A of FIG. 35
- the “MAC” surrounded by a dotted line indicates the MAC processing unit 1500 of FIG. 36 and surrounded by a dotted line.
- “IF” indicates the IF processing unit 1400 in FIG. 36
- IP surrounded by a dotted line indicates the IP processing unit 1300 in FIG.
- TCP TCP processing unit 1200 of Fig. 36
- API API surrounded by a dotted line indicates the API unit 1100 of Fig. 36, surrounded by a dotted line.
- the “application” shown in FIG. 36 represents the application program shown in FIG.
- Seq 2 packet (P22) transmitted from communication apparatus (transmission side apparatus) 200A is received and processed by communication unit 105A of communication apparatus (reception side apparatus) 100A via network 3A.
- the MAC receiving unit 1510 of the MAC processing unit 1500 receives the packet (P22) read from the receiving FIFO memory 151A of the communication unit 105A.
- the speed or power of processing to pass the IP packet from the IF processing unit 1400 to the receiving FIFO queue 1310 of the IP processing unit 1300 extracts the TCP packet from the IP packet and extracts the TCP packet. Exceeds the speed or amount of processing to pass to the TCP processing unit 1200, and overrun occurs in the reception FIFO queue 1310.
- the data loss detection unit 150A notifies the loss notification unit 5000 that a loss has occurred (E150).
- the loss notification unit 5000 receives a packet loss notification that an overrun has occurred in the reception FIFO queue 1310, and passes the packet loss information to the DupAck management unit 1230 of the TCP processing unit 1200.
- the IP processing unit 1300 has been described as having the reception FIFO queue 1310.
- the IF processing unit 1400 A data loss detection unit and a loss notification unit may be provided. It is also possible to investigate the lost data and notify only when it is a specific protocol (eg, IPv4, IPv6).
- the data loss detection unit 150A may investigate the lost data and notify the loss only when the data loss is a specific protocol (eg, TCP)! /.
- a specific protocol eg, TCP
- the data loss detection unit 150A may add the address of the lost data and the port number to the packet loss notification. Further, the DupAck management unit 1230 may determine loss based on the received IP address or port number.
- the above processing is performed, so that the transmission side device 200A can perform high-speed re-transmission.
- the effect of suppressing the throughput drop due to TCP retransmission by sending a transmission the effect of activating the high-speed retransmission of the sending device 200A only when the packet loss of a specific TCP packet in the receiving device 100A, and the network Has the effect of not overloading the network, the effect of suppressing unnecessary traffic due to duplicate DupAck, and the effect of not sending an incorrect DupAck.
- the DupAck is duplicated by the MAC processing unit 1500.
- the DupAck is duplicated by the TCP processing unit 1200.
- FIG. 38 is a configuration diagram showing a functional configuration of the CPU 101A according to the second modification example of the tenth embodiment.
- the solid line is the data flow showing the data flow
- the dotted line is the control flow showing the control signal flow.
- the CPU 101A of the receiving side device 100A includes an API unit 1100, a TCP processing unit 1200, an IP processing unit 1300, and a MAC processing unit 1500. Is provided. A description of each functional unit in FIG. 38 is given below. Note that the API unit 1100, IP processing unit 1300, and IF processing unit 1400 are exactly the same as the functions of the above-described tenth embodiment, and thus description thereof is omitted.
- the TCP processing unit 1200 is characterized by the TCP transmission unit 1220 provided with the packet duplication unit 7000.
- the TCP transmission unit 1220 sets necessary TCP header information in the TCP packets (Ack, WinUpdate, and DupAck) received from the Ack generation unit 1280, the WinUpdate generation unit 1260, and the Dup Ack generation unit 1270.
- the TCP packet in which the TCP header information is set is passed to the IP processing unit 1300. Also, the TCP transmission unit 1220 passes the Dup Ack duplicated by the packet duplication unit 7000 to the IP processing unit 1300.
- the packet duplication unit 7000 Based on the number of DupAck duplications obtained by inquiring the DupAck management unit 1230, the packet duplication unit 7000 duplicates the DupAck by the number of DupAck duplications, Instructs the TCP transmission unit 1220 to pass it to the processing unit 1300.
- the packet duplicating unit 7000 force DupAck is configured as second packet generating means for generating a data request packet.
- MAC processing unit 1500 does not include packet duplication unit 7000.
- MAC reception unit 1510, MAC transmission unit 1520, and loss notification unit 5000 have the same functions as those in the tenth embodiment.
- the processing in receiving-side apparatus 100A in the present modification will be described using the processing sequence shown in FIG.
- the “communication unit” surrounded by a dotted line in FIG. 33 indicates the communication unit 105A in FIG. 30, and the “MAC” surrounded by a dotted line indicates the MAC processing unit 1500 in FIG.
- “IF” surrounded by a dotted line indicates the IF processing unit 1400 in FIG. 38
- “IP” surrounded by a dotted line indicates the IP processing unit 1300 in FIG. 38.
- TCP surrounded by a dotted line indicates the TCP processing unit 1200 of FIG. 38
- “ ⁇ , surrounded by a dotted line indicates the API unit 1100 of FIG. 38, surrounded by a dotted line.
- “Application” shown in FIG. 38 represents the application program shown in FIG.
- the DupAck management unit 1230 that has received Win holds the packet loss information in the control flow E100 V, so the DupAck transmission number “2” and the predetermined number “3” force also set the DupAck replication number to the predetermined number. Calculate by the method (DupAck replication number calculation method shown in Fig. 34).
- the knotting duplication unit 7000 inquires the DupAck received from the DupAck generation unit 1270 from the DupAck management unit 1230, and duplicates the number of DupAck duplications obtained and transmits the DupAck to the TCP transmission unit 1220. In the above example, since the number of DupAck duplications is “1”, the packet duplication unit 7000 instructs the TCP transmission unit 1220 to transmit the one DupAck without duplicating the received DupAck.
- the packet duplication unit 7000 duplicates the DupAck so that the total number of DupAck is N, and the TCP transmission unit 1220 receives the duplicated DupAck ( Instruct to send all (including the copy source DupAck).
- the TCP transmission unit 1220 passes the DupAck instructed to transmit to the packet duplication unit 7000 to the IP processing unit 1300. Then, DupAck is constructed through the IF processing unit 1400, and is written into the FIFO memory 152A of the communication unit 105A by the MAC transmission unit 1520 of the MAC processing unit 1500.
- reception-side apparatus 100A duplicates and transmits DupAck at the timing based on the state of the window. However, reception-side apparatus 100A according to this modification changes to the Window state. Instead, the DupAck is copied and transmitted at the timing of the first DupAck transmission.
- the TCP processing unit 1200 according to this modification is characterized by the DupAck management unit 1230.
- the DupAck management unit 1230 uses the received Seq and the Win obtained by making an inquiry to the window control unit 1250 as DupAck information. Calculate the DupAck replication number and keep it. More In addition, the DupAck management unit 1230 passes the DupAck information to the DupAck generation unit 1270, and counts the number of times passed as the number of DupAck transmissions.
- the DupAck management unit 1230 notifies the DupAck duplication number calculated in response to the inquiry from the packet duplication unit 7000.
- the DupAck duplication number calculated by the DupAck management unit 1230 will be described by taking management in units of packets as an example.
- the DupAck management unit 1230 when the DupAck management unit 1230 notifies the packet duplication unit 7000 of the DupAck duplication number, the DupAck management unit 1230 has a function of deleting the packet loss information received from the packet loss notifying unit 5000 and further initializing the DupAck duplication number.
- the initial value of the number of DupAck replicas will be explained using “1” as an example.
- the initial value of the number of DupAck transmissions will be described using “0” as an example.
- FIG. 39 is a diagram showing a communication sequence between communication devices according to this modification.
- this communication sequence shows a sequence example when the performance of the receiving-side apparatus 100A is low (for example, the performance of the CPU is 133 MHz).
- the MAC reception unit 1510 of the MAC processing unit 1500 receives the data (MAC frame) (P23) read from the reception FIFO memory 151A of the communication unit 105A.
- the reception buffer 1240 manages the data that does not arrive in order and holds the data until the data arrives in order.
- the DupAck management unit 1230 holds Seq and Win when the first DupAck is created, and the DupAck creation power also changes Seq and Win after a predetermined time has elapsed before the TimeOut due to retransmission. It may be passed to the DupAck generation unit 1270, and the number of replicas corresponding to the lack of DupAck (number of replicas) may be calculated.
- the DupAck management unit 1230 keeps Seq and Win when the first DupAck is created, and the DupAck creation power also falls below the predetermined threshold before the time out due to retransmission.
- Seq and Win may be passed to the DupAck generation unit 1270 to calculate the number of duplicates (number of duplicates) that is insufficient for DupAck.
- the TCP transmission unit 1220 outputs DupAck, and the DupAck is constructed through the IP processing unit 1300 and the IF processing unit 1400 (data flow P131).
- the packet duplication unit 7000 of the MAC transmission unit 1520 transmits two MAC frames received from the IF processing unit 1400 to the MAC transmission unit 1520 according to “2” of the DupAck duplication number obtained by inquiring from the DupAck management unit 1230. To instruct.
- the MAC transmission unit 1520 duplicates the received MAC frame and writes the two MAC frames in the transmission FIFO memo U 152A of the communication unit 105A.
- the two DupAck (MAC frames P13 and P14) written in the transmission FIFO memory 152A of the communication unit 105A are transmitted to the transmission-side apparatus 200A via the network 3A.
- the DupAck management unit 1230 deletes the packet loss information received from the loss notification unit 5000.
- the DupAck replication count is initialized to “1”.
- the reception buffer 1240 manages the strong data that has not arrived in order until the data has arrived in order.
- the DupAck management unit 1230 inquires about the currently receivable Win through the window control unit 1250 through the window control unit 1250, and obtains the Win obtained from the inquiry and the Seq received from the TCP loss detection unit 1215 as DupAck information. Hold as.
- the DupAck management unit 1230 passes the DupAck information to the DupAck generation unit 1270.
- the DupAck management unit 1230 since the DupAck management unit 1230 has not received the packet loss information from the loss notification unit 5000, it does not calculate the number of DupAck replicas. The number of DupAck replicas remains “1”.
- the TCP transmission unit 1220 outputs DupAck, and the DupAck passes through the IP processing unit 1300 and the IF processing unit 1400, and a packet is constructed (data flow P141).
- the packet-structured DupAck (MAC frame) is acquired by the MAC transmission unit 1520 of the MAC processing unit 1500.
- the packet replication unit 7000 inquires of the DupAck management unit 1230 about the number of DupAck replications, and grasps that the number of replications is “1”. When the number of copies is “1”, the MAC transmission unit 1520 writes only one MAC frame to the transmission FIFO memory 152 A of the communication unit 105A.
- FIG. 41 is a flowchart showing the algorithm of the Dup Ack replication number calculation method by the DupAck management unit 1230 of the TCP processing unit 1200 in this modification.
- the DupAck management unit 1230 investigates whether or not the packet loss information received by the loss notification unit 5000 is recorded (step S202).
- step S200 the DupAck management unit 1230 determines that the result obtained by subtracting “2” from the quotient (WinZMSS) obtained by dividing Win by MSS is equal to or greater than the predetermined number “N” (N in step S200). ), The DupAck replication count is set to “1” (step S204). On the other hand, if the result obtained by subtracting “2” from the quotient obtained by dividing Win by MSS (WinZMSS) is less than the predetermined number “N” (Y in step S200), DupAck management unit 1230 performs the process in step S202. Execute.
- the MSS is “1”, for example, and packet loss information from the loss notification unit 5000 is recorded.
- each functional block in the block diagrams (FIG. 8, FIG. 30, FIG. 35, etc.) is typically Realized as an integrated circuit LSI. These may be individually made into one chip, or may be made into one chip so as to include some or all of them (for example, functional blocks other than memory may be made into one chip).
- IC integrated circuit
- system LSI system LSI
- super LSI super LSI
- non-linear LSI depending on the difference in the power integration level of LSI.
- the method of circuit integration is not limited to LSI's, and implementation using dedicated circuitry or general purpose processors is also possible.
- An FPGA Field Programmable Gate Array
- a reconfigurable 'processor that can reconfigure the connection and settings of the circuit cells inside the LSI may be used.
- the communication device of the present invention has the effect of being able to control data transmission traffic spontaneously according to its own reception capability and to reduce the control processing load, for example, TCP and TCP. Communication with equivalent window control and acknowledgment functions
- the present invention can be applied to any communication device that performs reception processing based on a communication protocol.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Communication Control (AREA)
Abstract
Description
Claims
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/066,224 US20090268747A1 (en) | 2005-10-03 | 2006-10-02 | Communication apparatus |
EP20060811009 EP1933509A1 (en) | 2005-10-03 | 2006-10-02 | Communication apparatus |
CN2006800368286A CN101278529B (zh) | 2005-10-03 | 2006-10-02 | 通信装置 |
JP2007539872A JP4777996B2 (ja) | 2005-10-03 | 2006-10-02 | 通信装置、通信方法、プログラムおよび集積回路 |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005290576 | 2005-10-03 | ||
JP2005-290576 | 2005-10-03 | ||
JP2006197892 | 2006-07-20 | ||
JP2006-197892 | 2006-07-20 |
Publications (2)
Publication Number | Publication Date |
---|---|
WO2007043373A1 WO2007043373A1 (ja) | 2007-04-19 |
WO2007043373A9 true WO2007043373A9 (ja) | 2007-06-14 |
Family
ID=37942617
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/JP2006/319661 WO2007043373A1 (ja) | 2005-10-03 | 2006-10-02 | 通信装置 |
Country Status (7)
Country | Link |
---|---|
US (1) | US20090268747A1 (ja) |
EP (1) | EP1933509A1 (ja) |
JP (1) | JP4777996B2 (ja) |
KR (1) | KR20080053334A (ja) |
CN (1) | CN101278529B (ja) |
TW (1) | TW200723782A (ja) |
WO (1) | WO2007043373A1 (ja) |
Families Citing this family (49)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8009696B2 (en) | 2004-08-06 | 2011-08-30 | Ipeak Networks Incorporated | System and method for achieving accelerated throughput |
US9189307B2 (en) | 2004-08-06 | 2015-11-17 | LiveQoS Inc. | Method of improving the performance of an access network for coupling user devices to an application server |
US9647952B2 (en) | 2004-08-06 | 2017-05-09 | LiveQoS Inc. | Network quality as a service |
US7769014B2 (en) * | 2007-02-13 | 2010-08-03 | Seiko Epson Corporation | Transmitting and receiving system, transmitting apparatus, and receiving apparatus |
TWI355164B (en) * | 2007-02-27 | 2011-12-21 | Quanta Comp Inc | Data transmitting method for wireless communicatio |
JP4587053B2 (ja) * | 2007-08-28 | 2010-11-24 | 日本電気株式会社 | 通信装置、通信システム、パケット欠落検出方法、およびパケット欠落検出プログラム |
JP4557028B2 (ja) * | 2008-03-19 | 2010-10-06 | ソニー株式会社 | 情報処理装置、情報処理方法、クライアント機器、情報処理システム |
JP5247215B2 (ja) | 2008-04-04 | 2013-07-24 | キヤノン株式会社 | 通信装置及びその制御方法 |
US9270477B2 (en) * | 2008-05-28 | 2016-02-23 | Airmagnet, Inc. | Method and apparatus of measuring and reporting data gap from within an analysis tool |
US8300535B2 (en) * | 2009-02-24 | 2012-10-30 | Canon Kabushiki Kaisha | Information processing apparatus, method thereof, and storage medium |
JP5406558B2 (ja) * | 2009-02-24 | 2014-02-05 | キヤノン株式会社 | データ処理装置、データ処理方法およびプログラム |
JP5460088B2 (ja) * | 2009-03-17 | 2014-04-02 | キヤノン株式会社 | 情報処理装置、情報処理方法およびプログラム |
US8325601B2 (en) * | 2009-05-08 | 2012-12-04 | Canon Kabushiki Kaisha | Reliable network streaming of a single data stream over multiple physical interfaces |
JP2011081769A (ja) * | 2009-09-14 | 2011-04-21 | Ricoh Co Ltd | データ転送装置、データ転送デバイスおよびデータ転送方法 |
JP4821904B2 (ja) * | 2009-10-23 | 2011-11-24 | エヌイーシーコンピュータテクノ株式会社 | データ通信システム及びデータ通信方法 |
WO2011074454A1 (ja) * | 2009-12-14 | 2011-06-23 | 日本電気株式会社 | パケット再送制御システム、方法、及びプログラム |
US8370725B2 (en) * | 2010-02-01 | 2013-02-05 | Mosys, Inc. | Communication interface and protocol |
US8964543B1 (en) * | 2010-02-16 | 2015-02-24 | Google Inc. | System and method of reducing latency by transmitting duplicate packets over a network |
JP5682618B2 (ja) * | 2010-03-03 | 2015-03-11 | 日本電気株式会社 | パケット再送制御システム、方法、及びプログラム |
US9137278B2 (en) * | 2010-04-08 | 2015-09-15 | Vasona Networks Inc. | Managing streaming bandwidth for multiple clients |
JP5601029B2 (ja) * | 2010-05-27 | 2014-10-08 | ソニー株式会社 | 通信装置及び通信方法、並びにコンピューター・プログラム |
EP2642702B1 (en) | 2010-11-16 | 2019-04-03 | Hitachi, Ltd. | Communication apparatus and communication system |
US8683285B2 (en) * | 2010-12-29 | 2014-03-25 | Plx Technology, Inc. | Parallel packetized interconnect with simplified data link layer |
US10951743B2 (en) | 2011-02-04 | 2021-03-16 | Adaptiv Networks Inc. | Methods for achieving target loss ratio |
JP5329581B2 (ja) | 2011-02-04 | 2013-10-30 | 株式会社東芝 | 無線通信端末および無線通信方法 |
US8717900B2 (en) | 2011-02-07 | 2014-05-06 | LivQoS Inc. | Mechanisms to improve the transmission control protocol performance in wireless networks |
US9590913B2 (en) | 2011-02-07 | 2017-03-07 | LiveQoS Inc. | System and method for reducing bandwidth usage of a network |
JP5780050B2 (ja) | 2011-08-17 | 2015-09-16 | 富士通株式会社 | 伝送システム |
WO2013035897A1 (en) | 2011-09-06 | 2013-03-14 | Alcatel Lucent | A method for avoiding network congestion and an apparatus thereof |
WO2013037322A1 (zh) * | 2011-09-16 | 2013-03-21 | 华为技术有限公司 | 分片接收和发送的方法以及分片接收和发送的装置 |
JP5814829B2 (ja) * | 2012-03-01 | 2015-11-17 | 株式会社東芝 | 無線通信装置及び方法 |
WO2013179554A1 (ja) * | 2012-05-30 | 2013-12-05 | 日本電気株式会社 | 通信装置および通信方法 |
US9444727B2 (en) * | 2012-10-16 | 2016-09-13 | Cisco Technology, Inc. | Duplicating traffic along local detours before path remerge to increase packet delivery |
US9986063B2 (en) * | 2012-11-28 | 2018-05-29 | Panasonic Intellectual Property Management Co., Ltd. | Receiving terminal and receiving method |
US20150012792A1 (en) * | 2013-07-03 | 2015-01-08 | Telefonaktiebolaget L M Ericsson (Publ) | Method and apparatus for providing a transmission control protocol minimum retransmission timer |
US9584425B2 (en) * | 2013-08-20 | 2017-02-28 | Brocade Communications Systems, Inc. | Bandwidth optimization using coalesced DUP ACKs |
US9760577B2 (en) * | 2013-09-06 | 2017-09-12 | Red Hat, Inc. | Write-behind caching in distributed file systems |
EP3051870B1 (en) | 2013-09-29 | 2019-07-03 | Huawei Technologies Co., Ltd. | Data transmission method and device |
US9706923B2 (en) * | 2014-02-25 | 2017-07-18 | General Electric Company | System and method for adaptive interference mitigation in wireless sensor network |
KR102187810B1 (ko) * | 2014-09-26 | 2020-12-08 | 삼성전자주식회사 | 통신 시스템에서 데이터 흐름 제어 장치 및 방법 |
JP5881071B1 (ja) * | 2014-11-20 | 2016-03-09 | パナソニックIpマネジメント株式会社 | 無線通信装置、無線通信システム及び無線通信方法 |
JP6455135B2 (ja) * | 2014-12-24 | 2019-01-23 | 富士通株式会社 | パケット抽出装置、パケット抽出プログラムおよびパケット抽出方法 |
US10700978B2 (en) | 2016-12-05 | 2020-06-30 | International Business Machines Corporation | Offloading at a virtual switch in a load-balanced group |
US20180159922A1 (en) * | 2016-12-05 | 2018-06-07 | International Business Machines Corporation | Job assignment using artificially delayed responses in load-balanced groups |
US10768997B2 (en) | 2016-12-05 | 2020-09-08 | International Business Machines Corporation | Tail latency-based job offloading in load-balanced groups |
CN109698762B (zh) * | 2017-10-24 | 2020-10-23 | 华为技术有限公司 | 一种调整参数的方法及参数调整装置 |
CN114221905A (zh) * | 2020-09-03 | 2022-03-22 | 阿里巴巴集团控股有限公司 | 处理单元及流控制单元、以及相关方法 |
US11323309B1 (en) | 2021-01-14 | 2022-05-03 | Juniper Networks, Inc. | Asynchronous socket replication between nodes of a network |
US11570116B1 (en) * | 2021-03-10 | 2023-01-31 | Juniper Networks, Inc. | Estimating standby socket window size during asynchronous socket replication |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2964937B2 (ja) * | 1996-01-08 | 1999-10-18 | 日本電気株式会社 | 適応クレジット制御型転送方法 |
JP3343054B2 (ja) * | 1997-07-01 | 2002-11-11 | ケイディーディーアイ株式会社 | インターネット対応リンクモニタ方法 |
EP1128616A3 (en) * | 2000-02-23 | 2001-09-12 | Sony Corporation | Communication system, communication device and communication method |
EP1137217A1 (en) * | 2000-03-20 | 2001-09-26 | Telefonaktiebolaget Lm Ericsson | ARQ parameter negociation in a data packet transmission system using link adaptation |
US7142508B2 (en) * | 2000-12-22 | 2006-11-28 | Radiance Technologies, Inc. | System and method for controlling data transfer rates on a network |
EP1251661B1 (en) * | 2001-04-04 | 2008-08-13 | Telefonaktiebolaget LM Ericsson (publ) | Data flow control method |
DE60211322T2 (de) * | 2002-06-18 | 2006-09-07 | Matsushita Electric Industrial Co., Ltd., Kadoma | Empfängerinitiierte Inkrementierung der Übertragungsrate |
US7500010B2 (en) * | 2005-04-07 | 2009-03-03 | Jeffrey Paul Harrang | Adaptive file delivery system and method |
-
2006
- 2006-10-02 US US12/066,224 patent/US20090268747A1/en not_active Abandoned
- 2006-10-02 JP JP2007539872A patent/JP4777996B2/ja not_active Expired - Fee Related
- 2006-10-02 TW TW095136556A patent/TW200723782A/zh unknown
- 2006-10-02 WO PCT/JP2006/319661 patent/WO2007043373A1/ja active Application Filing
- 2006-10-02 EP EP20060811009 patent/EP1933509A1/en not_active Withdrawn
- 2006-10-02 KR KR20087007987A patent/KR20080053334A/ko not_active Application Discontinuation
- 2006-10-02 CN CN2006800368286A patent/CN101278529B/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CN101278529B (zh) | 2011-10-19 |
US20090268747A1 (en) | 2009-10-29 |
KR20080053334A (ko) | 2008-06-12 |
CN101278529A (zh) | 2008-10-01 |
WO2007043373A1 (ja) | 2007-04-19 |
JPWO2007043373A1 (ja) | 2009-04-16 |
JP4777996B2 (ja) | 2011-09-21 |
TW200723782A (en) | 2007-06-16 |
EP1933509A1 (en) | 2008-06-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4777996B2 (ja) | 通信装置、通信方法、プログラムおよび集積回路 | |
US7835273B2 (en) | Method for transmitting data in mobile ad hoc network and network apparatus using the same | |
EP2887595B1 (en) | Method and node for retransmitting data packets in a tcp connection | |
US7283469B2 (en) | Method and system for throughput and efficiency enhancement of a packet based protocol in a wireless network | |
US7613118B2 (en) | Detecting change in a transport protocol window size without data transmission | |
JP4256395B2 (ja) | 無線ネットワーク環境で伝送遅延による不要な再伝送を減少させるための方法及びそれを用いた通信装置 | |
US8014287B2 (en) | Communications apparatus | |
US8306062B1 (en) | Method and apparatus of adaptive large receive offload | |
US20080037420A1 (en) | Immediate ready implementation of virtually congestion free guaranteed service capable network: external internet nextgentcp (square waveform) TCP friendly san | |
US20080291911A1 (en) | Method and apparatus for setting a TCP retransmission timer | |
WO2009026854A1 (fr) | Procédé de commande d'envoi de données et dispositif de transmission de données | |
EP1581013A2 (en) | Transmitted packet replenishment system and transmitted packet replenishing method | |
WO2008044653A1 (fr) | Système, périphérique et procédé de communication | |
WO2008032750A1 (fr) | dispositif de communication | |
US20070223492A1 (en) | Methods and apparatus for optimizing a TCP session for a wireless network | |
JP2006157918A (ja) | 高スループットを実現する通信システム、通信端末、セッション中継装置、及び通信プロトコル | |
WO2017107148A1 (zh) | 一种数据传输方法及网络侧设备 | |
WO2003015337A1 (en) | Uplink session extension | |
KR101231793B1 (ko) | Tcp 세션 최적화 방법 및 네트워크 노드 | |
JP2006279867A (ja) | Adsl通信装置、プログラム及び方法 | |
JP2004140596A (ja) | Tcp上のデータ転送における品質を推定する方法およびシステム | |
TWI308012B (en) | Method for adaptive estimation of retransmission timeout in wireless communication systems | |
WO2006058257A2 (en) | Method and apparatus for setting a tcp retransmission timer | |
KR20050099759A (ko) | 이동통신망에서 무선 tcp 성능 최적화를 위한 방법 및시스템 | |
KR100915996B1 (ko) | 대역폭변화에 따른 적응형 전송 제어 프로토콜을 이용한데이터 패킷 전송 방법 및 그를 위한 송신측 단말장치 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WWE | Wipo information: entry into national phase |
Ref document number: 200680036828.6 Country of ref document: CN |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
WWE | Wipo information: entry into national phase |
Ref document number: 12066224 Country of ref document: US Ref document number: 2006811009 Country of ref document: EP |
|
ENP | Entry into the national phase |
Ref document number: 2007539872 Country of ref document: JP Kind code of ref document: A |
|
WWE | Wipo information: entry into national phase |
Ref document number: 1020087007987 Country of ref document: KR |
|
NENP | Non-entry into the national phase |
Ref country code: DE |