US20100246400A1 - Communication device and method - Google Patents
Communication device and method Download PDFInfo
- Publication number
- US20100246400A1 US20100246400A1 US12/748,337 US74833710A US2010246400A1 US 20100246400 A1 US20100246400 A1 US 20100246400A1 US 74833710 A US74833710 A US 74833710A US 2010246400 A1 US2010246400 A1 US 2010246400A1
- Authority
- US
- United States
- Prior art keywords
- communication unit
- unit
- data
- congestion
- communication
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
Images
Classifications
-
- 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/11—Identifying congestion
-
- 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/12—Avoiding congestion; Recovering from congestion
-
- 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/17—Interaction among intermediate nodes, e.g. hop by hop
-
- 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/27—Evaluation or update of window size, e.g. using information derived from acknowledged [ACK] packets
-
- 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/24—Negotiation of communication capabilities
Definitions
- the present invention relates to a communication device and method having a function to control data congestion.
- Data communication is performed in compliance with a predetermined protocol (for example, TCP (Transmission Control Protocol)) among electronic devices that perform communication via a network.
- a predetermined protocol for example, TCP (Transmission Control Protocol)
- TCP Transmission Control Protocol
- one TCP congestion control method for avoiding such discarding of data is ECN (Explicit Congestion Notification) (for example, refer to Patent Document 1).
- ECN has been defined in RFC3168 as a TCP enhanced function, and is beginning to be provided in an OS (Operating System) of some electronic devices as well.
- OS Operating System
- ECN is a technique, in which, when a router has detected congestion, the router transmits the fact that the congestion has been detected to an electronic device on a data transmitting side, and make the electronic device control a data transmission rate, thereby avoiding congestion.
- a data transfer rate is slowed down by controlling a window size to be small; on the other hand, in a case in which congestion is not occurring, the data transfer rate is accelerated by controlling the window size to be large as usual, thereby making it possible to perform data communication efficiently without causing data to be discarded.
- Patent Document 1 Japanese Unexamined Patent Application, First Publication No. 2004-357177
- An object of the present invention is to provide a communication device and method that is capable of utilizing ECN functions effectively.
- a communication device configured with: a first communication unit that is connected to an external device and relay data; a second communication unit that transmits data received from the first communication unit to a network side, and transmits data received from the network side to the first communication unit; and a processing unit that confirms whether a congestion control function against data congestion is provided to the external device to which the first communication unit is connected and an another party's device on the network side communicating with the second communication unit, in a casein which any one of the devices has the congestion control function, and congestion is occurring in an other one of the devices, the processing unit transmits control data for activating the congestion control function to the other one of the devices.
- the processing unit is preferably configured with: a first determination unit that determines whether the external device to which the first communication unit is connected and the another party's device on the network side communicating with the second communication unit have the congestion control function against data congestion, based on data received via the first communication unit and data received via the second communication unit; a second determination unit that determines whether data congestion is occurring in the another party's device communicating with the second communication unit, based on data received via the second communication unit; and a control unit that adds, to data transmitted via the first communication unit to the external device, first control data for activating the congestion control function provided to the external device, and causes the first communication unit to transmit the data, in a case in which the first determination unit determines that the device to which the first communication unit is connected has the congestion control function, but the another party's device communicating with the second communication unit does not have the congestion control function, and the second determination unit determines that data congestion is occurring in the another party's device communicating with the second communication unit.
- the communication device is preferably configured such that the first determination unit determines whether the external device to which the first communication unit is connected has the congestion control function based on whether the data received via the first communication unit includes information indicating that the congestion control function is provided, and determines whether the another party's device communicating with the second communication unit has the congestion control function based on whether the data received via the second communication unit includes information indicating that the congestion control function is provided.
- the communication device is preferably configured such that the second determination unit determines whether data congestion is occurring in the another party's device communicating with the second communication unit based on whether a timing of receiving data via the second communication unit is delayed for more than a predetermined time.
- the communication device is preferably configured such that the control unit deletes the information included in the data received via the first communication unit, the information indicating that the congestion control function is provided, and controls the second communication unit to transmit the data from which the information indicating that the congestion control function is provided has been deleted, in a case in which the first determination unit determines that the external device to which the first communication unit is connected has the congestion control function, and that the another party's device communicating with the second communication unit does not have the congestion control function.
- the communication device is preferably configured such that, after transmitting the first control data to the external device via the first communication unit, in a case in which the first communication unit has received, from the external device, second control data indicating that the congestion control function has been exercised, the control unit does not transmit the first control data when transmitting data via the first communication unit.
- the communication device is preferably configured such that, in a case in which the first determination unit determines that the external device to which the first communication unit is connected and the another party's device communicating with the second communication unit have the congestion control function, the control unit transmits data without changing the data, both in a case of transmitting the data received via the second communication unit to the external device to which the first communication unit is connected, and in a case of transmitting the data received via the first communication unit to the another party's device to which the second communication unit is connected.
- the processing unit is preferably configured with: a first token generating unit that generates a token configured with a predetermined data amount; a first token storing unit that stores the token; a first detecting unit that detects an amount of tokens stored in the first token storing unit; a first control unit that determines whether an amount of tokens detected by the first detecting unit has reached a first threshold value, and in a case in which the first control unit determines that the amount of tokens has reached the first threshold value, the first control unit controls such that the data received via the first communication unit is transmitted, for only an amount corresponding to the amount of tokens, to the network via the second communication unit; and a first determination unit that determines whether the external device to which the first communication unit is connected has the congestion control function against data congestion, and in a case in which the first control unit determines that an amount of tokens detected by the first detecting unit is no more than a second threshold value, which is smaller than the first threshold value, and the first determination unit determines that the external device
- the communication device is preferably configured such that the first determination unit determines whether the device to which the first communication unit is connected has the congestion control function, based on whether the data received via the first communication unit includes second control information indicating that the congestion control function is provided.
- the communication device is preferably configured such that, in a case in which the first communication unit has received, from the external device connected thereto, data to which third control information has been added, indicating that a congestion window has been reduced, the first control unit deletes the third control information from the data, and transmits the data, from which the third control information has been deleted, to the network via the second communication unit.
- the processing unit is preferably configured with: a second token generating unit that generates a token configured with a predetermined data amount; a second token storing unit that stores the token; a second detecting unit that detects an amount of tokens stored in the second token storing unit; a second control unit that determines whether an amount of tokens detected by the second detecting unit has reached a first threshold value, and in a case in which the second control unit determines that the amount of tokens has reached the first threshold value, the first control unit controls such that the data received via the second communication unit is transmitted, for only an amount corresponding to the amount of tokens, to the network via the first communication unit; and a second determination unit that determines whether the another party's device on the network side has the congestion control function against data congestion, and in a case in which an amount of tokens detected by the second detecting unit is no more than a second threshold value, which is smaller than the first threshold value, and the second determination unit determines that the another party's device on the network side has
- the communication device is preferably configured such that the second determination unit determines whether the device on the network side has the congestion control function, based on whether the data received via the second communication unit includes fifth control information indicating that the congestion control function is provided.
- the communication device is preferably configured such that, in a case in which the second communication unit has received, from the device on the network side, data to which sixth control information has been added, indicating that a congestion window has been reduced, the second control unit deletes the sixth control information from the data, and transmits the data, from which the sixth control information has been deleted, to the external device via the first communication unit.
- ECN can be utilized effectively.
- a communication method is configured with:
- FIG. 1 is a diagram showing an aspect in which a communication device is connected to a PC, and is connected to a network;
- FIG. 2 is a sequence chart illustrating a TCP connection establishment sequence
- FIG. 3 is a sequence chart illustrating a congestion control sequence by way of ECN
- FIG. 4 is a block diagram showing functions of a communication device according to the present invention.
- FIG. 5 is a schematic diagram showing a configuration of a TCP header
- FIG. 6 is a sequence chart illustrating a TCP connection establishment sequence in a case in which a PC on a data transmitting side is compliant with ECN and a PC on a data receiving side is not compliant with ECN;
- FIG. 7 is a sequence chart illustrating a TCP connection establishment sequence in a case in which both of the PC on the data transmitting side and the PC on the data receiving side are compliant with ECN;
- FIG. 8 is a sequence chart illustrating a TCP connection establishment sequence in a case in which the PC on the data transmitting side is not compliant with ECN;
- FIG. 9 is a sequence chart illustrating a congestion control sequence by way of ECN performed between the PC on the data transmitting side and the communication device;
- FIG. 10 is a block diagram showing a first function of the communication device according to the present invention.
- FIG. 11 is a block diagram showing a second function of the communication device according to the present invention.
- FIG. 12 is a sequence chart illustrating a TCP connection establishment sequence in a case in which the PC connected to the communication device is compliant with ECN and the network side is not compliant with ECN;
- FIG. 13 is a sequence chart illustrating a TCP connection establishment sequence in a case in which the PC connected to the communication device is not compliant with ECN and the network side is compliant with ECN;
- FIG. 14 is a sequence chart illustrating congestion control operations by a PC in a case in which congestion has occurred on the network side.
- FIG. 15 is a sequence chart illustrating congestion control operations by the network side in a case in which congestion has occurred in the PC.
- a communication device 1 is utilized as a PC card having an antenna for radio communication, and as shown in FIG. 1 , for example, the communication device 1 is inserted into a card slot 102 of a PC (Personal Computer) 101 , and is connected thereto, thereby being utilized by the PC 101 for connection to a network 202 (for example, the Internet) via a base station 201 .
- a network 202 for example, the Internet
- TCP peers negotiate with each other regarding whether being compliant with ECN.
- a TCP (ECN) connection establishment sequence is performed by an ECN-compliant electronic device on the transmitting side setting an ECE flag and a CWR flag to a TCP header of SYN and performing transmission (Step ST 101 ), and an ECN-compliant electronic device on the receiving side settings an ECE flag to a TCP header of SYN/ACK and replying thereto (Step ST 102 ).
- ECN is performed as shown in FIG. 3 .
- an ECN-compliant router determines that congestion is occurring in the network. Then, the ECN-compliant router sets a bit (CE: Congestion Experienced), which indicates that congestion is being experienced, to a ToS (Type of Service) field of an IP (Internet Protocol) header of a forward packet, and transfers the packet to the receiving side (Step ST 111 ).
- CE Congestion Experienced
- the electronic device on the receiving side Upon receiving a packet in which CE has been set to an IP header, the electronic device on the receiving side sets an ECE (ECN-Echo) flag to a TCP header, and returns an acknowledgement to the transmitting side (Step ST 112 ).
- ECE ECE-Echo
- the electronic device on the transmitting side Upon receiving a packet in which an ECE flag has been set to a TCP header, the electronic device on the transmitting side determines that congestion is occurring, reduces a congestion window size to a threshold value (ssthresh) of a slow start, sets a CWR flag of a TCP header of the next packet, and transmits the packet (Step ST 113 ).
- a threshold value ssthresh
- the electronic device on the receiving side Upon receiving a packet in which a CWR flag has been set, the electronic device on the receiving side stops setting an ECE flag of the subsequent acknowledge packet (Step ST 114 ).
- the communication device 1 includes a first communication unit 11 , a second communication unit 12 , a first determination unit 13 , a second determination unit 14 and a control unit 15 .
- first determination unit 13 the second determination unit 14 and the control unit 15 comprehensively configure a processing unit.
- the first communication unit 11 is connected to an external device (hereinafter referred to as a PC 101 ) to relay data.
- a PC 101 an external device
- the first communication unit 11 is configured with a transmitting port that transmits data to the PC 101 , and a receiving port that receives data transmitted from the PC 101 .
- the second communication unit 12 transmits data, which has been received via the first communication unit 11 , to the network 202 side, and receives data from the network 202 side.
- the second communication unit 12 is configured with a transmitting port that transmits data to the network 202 side, and a receiving port that receives data transmitted from the network 202 side.
- the first determination unit 13 determines whether the
- PC 101 to which the first communication unit 11 is connected and an another party's device (hereinafter referred to as a PC 301 ) on the network 202 side communicating with the second communication unit 12 have a congestion control function against data congestion (based on data received via the first communication unit 11 and data received via the second communication unit 12 ).
- the second determination unit 14 determines whether data congestion is occurring in the PC 301 communicating with the second communication unit 12 (based on data received via the second communication unit 12 ).
- the control unit 15 adds first control data (for example, an ECE flag) for activating the congestion control function provided in the PC 101 to data transmitted via the first communication unit 11 to the PC 101 , and causes the first communication unit 11 to transmit the data.
- first control data for example, an ECE flag
- the TCP header is configured with, in order from the top, Source Port (source port number), Destination Port (destination port number), Sequence Number (sequence number), Acknowledgment Number (acknowledgement number), Data Offset (data offset), Reserved (reserve), Control Bits (control bits), Window (window size), Checksum (check sum), Urgent Pointer (urgent pointer), Options (option) and Padding (padding).
- control bits are configured with CWR (congestion window reduction) that notifies of reduction of a congestion window, ECE (ECN-Echo) that notifies another party's device of the occurrence of congestion, URG (urgency flag) that instructs an urgent pointer field to be used, ACK (acknowledgement flag) that indicates that a segment is waiting for acknowledgement, PSH (transfer forcing flag) that is transmitted as soon as becoming ready for reception, RST (reset flag) that indicates an instruction to reset communication when an incorrect packet has been received, SYN (synchronization flag) that indicates transfer of a top sequence number, and FIN (finishing transfer flag) that indicates finishing transmission or being ready for reception.
- CWR congestion window reduction
- ECE Echo
- URG urgent flag
- ACK acknowledgement flag
- PSH transfer forcing flag
- RST reset flag
- SYN synchronization flag
- FIN finishing transfer flag
- control unit 15 sets the ECE flag in the control bits of the TCP header to “1”, and transmits it from the first communication unit 11 to the PC 101 .
- the first determination unit 13 determines whether the PC 101 to which the first communication unit 11 is connected has the congestion control function, based on whether the data received via the first communication unit 11 includes information indicating that the congestion control function is provided, and determines whether the PC 301 communicating with the second communication unit 12 has the congestion control function, based on whether the data received via the second communication unit 12 includes information indicating that the congestion control function is provided.
- the first determination unit 13 determines that the PC 101 has the congestion control function.
- the first determination unit 13 determines that the PC 301 has the congestion control function.
- the second determination unit 14 determines whether data congestion is occurring in the PC 301 communicating with the second communication unit 12 , based on whether a delay of more than a predetermined time is occurring in a timing to receive data via the second communication unit 12 (a delay time of a response for transmitted data).
- the purpose thereof is to confirm continuity of the packets.
- Acknowledge acknowledgement
- the second determination unit 14 detects a time from transmitting data until receiving response data, and in a case in which the time exceeds a predetermined time, the second determination unit 14 determines that data congestion is occurring in the PC 301 communicating with the second communication unit 12 .
- the control unit 15 deletes information indicating that the congestion control function is provided, the information being included in the data received via the first communication unit 11 , and transmits the data, from which the information indicating that the congestion control function is provided has been deleted, via the second communication unit 12 .
- the device determines that there is no conformity in terms of the standard, and discards the packets in which an ECE flag and a CWR flag have been set.
- the communication device 1 in a case in which it is determined that the network 202 side is not compliant with ECN, information indicating that the congestion control function is provided is deleted, i.e. portions of an ECE flag and a CWR flag of control bits of a TCP header are set to “0 (zero)”, and such data is transmitted to the network 202 side via the second communication unit 12 .
- the control unit 15 does not transmit the first control data when transmitting data by way of the first communication unit 11 .
- the PC 101 confirms that congestion is occurring on the network 202 side, reduces a congestion window, and outputs the second control data indicating it.
- the communication device 1 transmits acknowledgement data to the PC 101 without setting an ECE flag to the data.
- the PC 101 gradually increases the congestion window in accordance with an amount defined by the standard, and restores the window width over time.
- the control unit 15 transmits data received via the second communication unit 12 to the PC 101 to which the first communication unit 11 is connected, and transmits data received via the first communication unit 11 to the PC 301 to which the second communication unit 12 is connected, without changing the data.
- the communication device 1 does not disturb the congestion control that is performed between the PC 101 and the PC 301 , which are each compliant with ECN.
- the PC 101 transmits an SYN (Synchronize) packet in order to perform TCP establishment (Step ST 1 ).
- SYN Synchronize
- the communication device 1 stores the fact that the PC 101 is compliant with ECN by way of the SYN packet, and transfers the packet to the network 202 without change (Step ST 2 ).
- the network 202 transmits (returns) an SYN/ACK (SYN-Acknowledgement) packet (Step ST 3 ).
- an ECE flag is not added.
- the communication device 1 adds an ECE flag to the header of the packet returned from the network 202 , and transmits the packet to the PC 101 so as to change its own ECN into an active state (Step ST 4 ).
- the communication device 1 changes ECN of the communication device 1 into an active state “ON”, and adds an ECE flag to the control bits of the header so as to make it appear to the PC 101 as if the network 202 has ECN, thereby changing ECN of the PC 101 into an active state.
- the communication device 1 can make it appear to the PC 101 as if the network 202 supports ECN.
- data communication can be performed by way of ECN control between the PC 101 and the communication device 1 .
- the PC 101 transmits an SYN (Synchronize) packet in order to perform TCP establishment (Step ST 11 ).
- SYN Synchronize
- the communication device 1 stores the fact that the PC is compliant with ECN by way of the packet, and transfers the packet to the network in the current state.
- the communication device 1 stores the fact that the PC 101 is compliant with ECN by way of the SYN packet, and transfers the packet to the network 202 in the current state (Step ST 12 ).
- the network 202 transmits (returns) an SYN/ACK (SYN-Acknowledgement) packet (Step ST 13 ).
- an ECE flag is added.
- the communication device 1 changes its own ECN into an inactive state (Step ST 14 ).
- the communication device 1 does not change a header of a TCP packet in a TCP connection establishment sequence.
- the communication device 1 in three-way handshaking of TCP establishment, in a case in which an ECE flag has been added to a header portion of the TCP/IP packet received from the network 202 , the communication device 1 changes its own ECN into an inactive state “OFF”, and does not change the header of the TCP packet when establishing a TCP connection.
- the communication device 1 does not disturb the congestion control that is performed between the PC 101 and the PC 301 , which are compliant with ECN.
- the PC 101 transmits an SYN (Synchronize) packet in order to perform TCP establishment (Step ST 21 ).
- SYN Synchronize
- the communication device 1 changes its own ECN into an inactive state, and transfers the SYN packet to the network 202 in the current state (Step ST 22 ).
- the communication device 1 changes its own ECN into an inactive state “OFF”, and does not change the header of the TCP packet in a TCP connection establishment sequence.
- the communication device 1 detects that congestion is occurring in the network 202 based on a delay time T to receive ACK from the PC 101 (Step ST 31 ).
- the delay time T is calculated from an average time in the most recent N moves and a threshold value.
- the communication device 1 adds an ECE flag to a header of an ACK packet that is received from the network 202 side immediately after detecting the congestion, and transfers the packet to the PC 101 (Step ST 32 ).
- the PC 101 determines that congestion is occurring in the network 202 side, reduces the congestion window size to a threshold value (ssthresh) of a slow start, sets a CWR flag to a TCP header of the next packet in order to notify this fact, and transmits it (Step ST 33 ).
- a threshold value ssthresh
- the communication device 1 Upon receiving the packet to which the CWR flag has been set, the communication device 1 does not set an ECE flag to the ACK packet received from the network 202 , and transmits the packet to the PC 101 (Step ST 34 ).
- the communication device 1 changes its own
- ECN into an active state or an inactive state depending on an ECN compliance status of the PC 101 and the network 202 side in a TCP connection establishment sequence.
- the communication device 1 changes its own ECN into an inactive state, and utilizes an existing technique.
- the communication device 1 exercises ECN with the PC 101 .
- an effect of the congestion control by way of ECN can be obtained as an entire network even in a case in which the network 202 side is not compliant with ECN.
- a function (hereinafter referred to as a traffic control function) to control a transmission rate (throughput) is provided on a mobile device side (device that is connected to an electronic device and is connected to the network), such that a particular electronic device does not consume radio resources excessively.
- the traffic control function has a token bucket mechanism in each of upstream and downstream sides, and is a function to respectively and independently control the throughput.
- the token bucket mechanism has a packet buffer that accumulates packets that have been input, and a token bucket that accumulates tokens.
- Tokens are supplemented to the token bucket at certain intervals, and the packets in the packet buffer cannot be output until a defined amount of tokens are accumulated.
- tokens of the corresponding amount are deducted from the token bucket.
- the throughput of packets accumulated in the packet buffer is controlled by way of an amount of tokens to be supplemented to the token bucket in a unit time (token rate).
- the token rate is not constant, since it dynamically changes due to a network environment and parameters that have been set inside the mobile device.
- control is performed such that the token rate is decreased in a case in which the network is being congested, and the token rate is increased in a case in which the network is not being congested.
- the token rate is calculated based on the mean throughput of inputs into the packet buffer.
- the token rate does not normally become a rate that is higher than the mean throughput.
- a forcible token addition function in which tokens are temporarily borrowed in advance, and transmission and reception are enabled without restriction as long as the data is up to a certain amount.
- the forcible token addition function is a function that gives consideration to usability of a user performing communication of less than a certain amount only (a so-called light user).
- a communication device 50 includes a first communication unit 51 , a second communication unit 52 , a first token generating unit 53 , a first token storing unit 54 , a first detecting unit 55 , a first control unit 56 and a first determination unit 57 .
- first token generating unit 53 the first token storing unit 54 , the first detecting unit 55 , the first control unit 56 and the first determination unit 57 comprehensively configure a processing unit.
- the first communication unit 51 is connected to an external device (hereinafter referred to as a PC 101 ) to relay data.
- a PC 101 an external device
- the first communication unit 51 is configured with a transmitting port that transmits data to the PC 101 , and a receiving port that receives data transmitted from the PC 101 .
- the second communication unit 52 transmits data, which has been received via the first communication unit 51 , to the network 202 side, and receives data from the network 202 side.
- the second communication unit 52 is configured with a transmitting port that transmits data to the network 202 side, and a receiving port that receives data transmitted from the network 202 side.
- the first token generating unit 53 generates a token configured with a predetermined data amount.
- the first token storing unit 54 stores tokens generated by way of the first token generating unit 53 .
- the first detecting unit 55 detects an amount of tokens stored in the first token storing unit 54 .
- the first control unit 56 determines whether an amount of tokens detected by the first detecting unit 55 has reached a first threshold value, and in a case in which it is determined that the amount of tokens has reached the first threshold value, the first control unit 56 controls such that the data received via the first communication unit 51 is transmitted to the network 202 by way of the second communication unit 52 for only an amount in accordance with the amount of tokens.
- a token is configured with a predetermined data amount per unit, and the tokens generated by way of the first token generating unit 53 are sequentially accumulated in the first token storing unit 54 .
- the first control unit 56 determines that the tokens accumulated in the first token storing unit 54 have reached the first threshold value based on a detection result by a of the first detecting unit 55 , the first control unit 56 controls such that data in accordance with the amount of the accumulated tokens is transmitted to the network 202 by way of the second the second communication unit 52 .
- the first control unit 56 reduces the tokens from the first token storing unit 54 for an amount in accordance with the transmitted data.
- the first determination unit 57 determines whether the PC 101 to which the first communication unit 51 is connected has the congestion control function against data congestion.
- the first control unit 56 performs the following operations.
- the first control unit 56 adds first control information for activating the congestion control function to the data transmitted via the first communication unit 51 , and causes the first communication unit 51 to transmit the data.
- the amount of tokens being no more than the second threshold value indicates a shortage of tokens.
- the first control unit 56 determines that congestion is occurring in the network 202 side, adds the first control information to data, and transmits the data to the PC 101 .
- the PC 101 reduces the congestion window.
- the PC 101 reduces the congestion window in this way, the amount of data (amount of packets) that is output to the communication device 50 is reduced.
- PC 101 gradually increases the congestion window in accordance with an amount defined by the standard, and restores the window width over time.
- the first control unit 56 sets an ECE flag (corresponding to the first control information) in control bits of a TCP header to “1” when the first control unit 56 transmits data to the PC 101 .
- the communication device 50 can perform congestion control with the PC 101 in accordance with an amount of tokens (token rate).
- a data input rate becomes greater than a data output rate for a communication device, and a packet buffer inside the communication device overflows, thereby leading to a risk of packet loss; however, in the communication device 50 according to the present embodiment, packet loss can be avoided.
- the communication device 50 since the packet loss can be avoided as described above, re-transmission of packets due to packet loss can be suppressed, and effective utilization of line resources can be achieved.
- the need for the buffering processing for a packet buffer can also be eliminated, it is possible to achieve mitigation of the processing load as compared to the conventional configuration.
- the first determination unit 57 determines whether the PC 101 to which the first communication unit 51 is connected has the congestion control function, based on whether the data received via the first communication unit 51 includes second control information indicating that the congestion control function is provided.
- the first determination unit 57 determines that the PC 101 has the congestion control function.
- the first control unit 56 controls such that the third control information is deleted from the data, and the data from which the third control information has been deleted is transmitted to the network 202 by way of the second communication unit 52 .
- the first control unit 56 controls such that data in which the CWR flag has been reset to “0 (zero)” is transmitted to the network 202 .
- congestion control can be performed between the PC 101 and the communication device 50 without affecting the network 202 side.
- control of the communication device 50 has been described for a case in which congestion has occurred in the network 202 side when transmitting data from the PC 101 to the network 202 via the communication device 50 .
- control of the communication device 50 is described for a case in which congestion has occurred in the PC 101 when transmitting data from the PC 301 of the network 202 side to the PC 101 via the communication device 50 .
- the communication device 50 includes the first communication unit 51 , the second communication unit 52 , a second token generating unit 61 , a second token storing unit 62 , a second detecting unit 63 , a second control unit 64 and a second determination unit 65 .
- the communication device 50 in the second embodiment may further include such a configuration.
- the second token generating unit 61 the second token storing unit 62 , the second detecting unit 63 , the second control unit 64 and the second determination unit 65 comprehensively configure a processing unit.
- the first communication unit 51 is connected to the PC 101 to relay data.
- the first communication unit 51 is configured with a transmitting port that transmits data to the PC 101 , and a receiving port that receives data transmitted from the PC 101 .
- the second communication unit 52 receives, from the network 202 side, data to be transmitted via the first communication unit 51 , and transmits data, which has been received via the first communication unit 51 , to the network 202 side.
- the second communication unit 52 is configured with a transmitting port that transmits data to the network 202 side, and a receiving port that receives data transmitted from the network 202 side.
- the second token generating unit 61 generates a token configured with a predetermined data amount.
- the second token storing unit 62 stores tokens generated by way of second token generating unit 61 .
- the second detecting unit 63 detects an amount of tokens stored in the second token storing unit 62 .
- the second control unit 64 determines whether an amount of tokens detected by the second detecting unit 63 reaches a first threshold value, and in a case in which it is determined that the amount of tokens has reached the first threshold value, the second control unit 64 controls such that the data received via the second communication unit 52 is transmitted to the PC 101 by way of the first communication unit 51 for only an amount in accordance with the amount of tokens.
- the second control unit 64 determines that the tokens accumulated in the second token storing unit 62 have reached the first threshold value based on a detection result by way of the second detecting unit 63 , the second control unit 64 controls such that data in accordance with the amount of the accumulated tokens is transmitted to the PC 101 by way of the first communication unit 51 .
- the second control unit 64 reduces the tokens from the second token storing unit 62 for an amount in accordance with the transmitted data.
- the second determination unit 65 determines whether a device (hereinafter referred to as a PC 301 ) on the network 202 side has the congestion control function against data congestion.
- the second control unit 64 adds fourth control information for activating the congestion control function to the data received via the first communication unit 51 , and causes the second communication unit 52 to transmit the data.
- the amount of tokens being no more than the second threshold value indicates the shortage of tokens.
- the second control unit 64 determines that congestion is occurring in the PC 101 , sets an ECE flag (corresponding to the fourth control information) of control bits of a TCP header to “1”, the flag being added to data, and transmits the data to the network 202 .
- the PC 301 reduces the congestion window.
- the PC 301 reduces the congestion window in this way, the amount of data (amount of packets) that is transmitted to the communication device 50 via the network 202 is reduced.
- the PC 301 gradually increases the congestion window in accordance with an amount defined by the standard, and restores the window width over time.
- the communication device 50 can perform congestion control with the PC 301 in accordance with an amount of tokens (token rate).
- a data input rate becomes greater than a data output rate for a communication device, and a packet buffer inside the communication device overflows, thereby leading to a risk of packet loss; however, in the communication device 50 according to the present embodiment, packet loss can be avoided.
- the communication device 50 since the packet loss can be avoided as described above, re-transmission of packets due to packet loss can be suppressed, and effective utilization of line resources can be achieved.
- the need for the buffering processing for a packet buffer can also be eliminated, it is possible to achieve mitigation of the processing load as compared to the conventional configuration.
- the second determination unit 65 determines whether the PC 301 on the network 202 side has the congestion control function, based on whether the data received via the second communication unit 52 includes fifth control information indicating that the congestion control function is provided.
- the second determination unit 65 determines that the PC 301 has the congestion control function.
- the second control unit 64 controls such that the sixth control information is deleted from the data, and the data from which the sixth control information has been deleted is transmitted to the PC 101 by way of the first communication unit 51 .
- the second control unit 64 controls such that data in which the CWR flag has been reset to “0 (zero)” is transmitted to the PC 101 .
- congestion control can be performed between the PC 301 and the communication device 50 via the network 202 without affecting the PC 101 .
- the network 202 side is a concept of devices connected to the network 202 including devices as transmission destination of the PC 101 .
- the PC 101 transmits an SYN (Synchronize) packet in order to perform TCP establishment (Step ST 51 ).
- SYN Synchronize
- the communication device 50 stores the fact that the PC 101 is compliant with ECN by way of the SYN packet, and transfers the packet to the network without in the current state (Step ST 52 ).
- the network 202 side transmits (returns) an SYN/ACK (SYN-Acknowledgement) packet (Step ST 53 ).
- an ECE flag is not added.
- the communication device 50 adds an ECE flag to the header of the packet returned from the network 202 side, and transmits the packet to the PC 101 so as to change its own ECN into an active state (Step ST 54 ).
- the communication device 50 changes ECN of the communication device 50 into an active state “ON”, and adds an ECE flag to the control bits of the header so as to make it appear to the PC 101 as if the network 202 side has ECN, thereby changing ECN of the PC 101 into an active state.
- ECN control is performed between the PC 101 and the communication device 50 .
- the communication device 50 can make it appear to the PC 101 as if the network 202 side supports ECN.
- data communication can be performed by way of ECN control between the PC 101 and the communication device 50 .
- the network 202 side is a concept of devices connected to the network 202 including devices as transmission destination of the PC 101 .
- the PC 101 transmits an SYN packet in order to perform TCP establishment (Step ST 61 ).
- the communication device 50 adds an ECE flag and a CWR flag to a header of an SYN packet, and transfers the packet to the network 202 side (Step ST 62 ).
- the communication device 50 can make it appear to the network 202 side as if the PC 101 is compliant with ECN.
- the network 202 returns a reply packet for an SYN/ACK (SYN-Acknowledgement) packet (Step ST 63 ).
- the communication device 50 removes the ECE flag from the header of the reply packet transmitted from the network 202 , and transfers the packet to the PC 101 (Step ST 64 ).
- the communication device 50 can change a header of a TCP/IP packet received from the PC 101 to add an ECE flag, and make it appear to the network 202 side as if the PC 101 is compliant with ECN, thereby changing ECN of the network side into an active state.
- ECN control is performed between the network 202 and the communication device 50 .
- the communication device 50 operates so as to merely monitor the negotiation status and store whether ECN has become available. Operations of PC 101 When Congestion Occurs in Network 202 Side
- the communication device 50 detects that tokens for outputting upstream packets from the PC 101 to the network 202 side do not reach a predetermined amount, i.e. detects that the state of being no more than the second threshold value has continued for more than a predetermined time (Step ST 71 ).
- the communication device 50 can not output upstream packets to the network 202 side.
- the PC 101 Upon receiving the reply packet to which the ECE flag has been added, the PC 101 reduces the congestion window in accordance with ECN congestion control (Step ST 73 ).
- the communication device 50 removes the CWR flag from the TCP header of the received transmission packet, and transfers the packet to the network 202 side (Step ST 75 ).
- the communication device 50 can restrict the transmission rate of upstream packets even if the network 202 side is not compliant with ECN.
- the communication device 50 utilizes a token bucket mechanism for traffic control and a token rate, and in a case in which the tokens are in shortage, the communication device 50 performs congestion notification byway of ECN to the PC 101 side, and controls the transmission rate of the PC 101 side.
- the communication device 50 detects that tokens for outputting downstream packets from the network 202 side to the PC 101 do not reach a predetermined amount, i.e. detects that the state of being no more than the second threshold value has continued for more than a predetermined time (Step ST 81 ).
- the communication device 50 can not output downstream packets to the PC 101 .
- the network 202 side Upon receiving the reply packet to which the ECE flag has been added, the network 202 side reduces the congestion window in accordance with ECN congestion control (Step ST 83 ).
- the communication device 50 removes the CWR flag from the TCP header of the received transmission packet, and transfers the packet to the PC 101 (Step ST 85 ).
- the communication device 50 can restrict the transmission rate of downstream packets even if the PC 101 is not compliant with ECN.
- the communication device 50 utilizes a token bucket mechanism for traffic control and a token rate, and in a case in which the tokens are in shortage, the communication device 50 performs congestion notification byway of ECN to the network 202 side, and controls the transmission rate of the network 202 side.
Abstract
Provided is a communication device and method that is capable of utilizing ECN functions effectively. The communication device includes: a first communication unit 11; a second communication unit 12; a first determination unit 13 that determines whether a PC 101 to which the first communication unit 11 is connected and a PC 301 on a network 202 side communicating with the second communication unit 12 have a congestion control function against data congestion; a second determination unit 14 that determines whether data congestion is occurring in the PC 301; and a control unit 15 that adds first control data for activating the congestion control function provided in the PC 101 to data to be transmitted to the PC 101, and that causes the first communication unit 11 to transmit the data, in a case in which it is determined that the device to which the first communication unit 11 is connected has the congestion control function, but the PC 301 communicating with the second communication unit 12 does not have the congestion control function, and it is determined that data congestion is occurring in the PC 301.
Description
- This application is based on and claims the benefit of priority from Japanese Patent Application No. 2009-077262, filed on 26 Mar. 2009 and Application No. 2009-077267, filed on 26 Mar. 2009, the content of which is incorporated herein by reference.
- 1. Field of the Invention
- The present invention relates to a communication device and method having a function to control data congestion.
- 2. Related Art
- Data communication is performed in compliance with a predetermined protocol (for example, TCP (Transmission Control Protocol)) among electronic devices that perform communication via a network.
- Here, in a case in which data congestion (overcrowding) occurs on the network, and such a situation is left uncontrolled, a part of transmitted data will be discarded in a router.
- Here, one TCP congestion control method for avoiding such discarding of data is ECN (Explicit Congestion Notification) (for example, refer to Patent Document 1).
- ECN has been defined in RFC3168 as a TCP enhanced function, and is beginning to be provided in an OS (Operating System) of some electronic devices as well.
- ECN is a technique, in which, when a router has detected congestion, the router transmits the fact that the congestion has been detected to an electronic device on a data transmitting side, and make the electronic device control a data transmission rate, thereby avoiding congestion.
- More specifically, in an electronic device that is compliant with ECN, in a case in which congestion (jam) is occurring, a data transfer rate is slowed down by controlling a window size to be small; on the other hand, in a case in which congestion is not occurring, the data transfer rate is accelerated by controlling the window size to be large as usual, thereby making it possible to perform data communication efficiently without causing data to be discarded.
- Patent Document 1: Japanese Unexamined Patent Application, First Publication No. 2004-357177
- An object of the present invention is to provide a communication device and method that is capable of utilizing ECN functions effectively.
- In order to solve the aforementioned problem, a communication device according to the present invention is configured with: a first communication unit that is connected to an external device and relay data; a second communication unit that transmits data received from the first communication unit to a network side, and transmits data received from the network side to the first communication unit; and a processing unit that confirms whether a congestion control function against data congestion is provided to the external device to which the first communication unit is connected and an another party's device on the network side communicating with the second communication unit, in a casein which any one of the devices has the congestion control function, and congestion is occurring in an other one of the devices, the processing unit transmits control data for activating the congestion control function to the other one of the devices.
- Moreover, in the communication device, the processing unit is preferably configured with: a first determination unit that determines whether the external device to which the first communication unit is connected and the another party's device on the network side communicating with the second communication unit have the congestion control function against data congestion, based on data received via the first communication unit and data received via the second communication unit; a second determination unit that determines whether data congestion is occurring in the another party's device communicating with the second communication unit, based on data received via the second communication unit; and a control unit that adds, to data transmitted via the first communication unit to the external device, first control data for activating the congestion control function provided to the external device, and causes the first communication unit to transmit the data, in a case in which the first determination unit determines that the device to which the first communication unit is connected has the congestion control function, but the another party's device communicating with the second communication unit does not have the congestion control function, and the second determination unit determines that data congestion is occurring in the another party's device communicating with the second communication unit.
- In addition, the communication device is preferably configured such that the first determination unit determines whether the external device to which the first communication unit is connected has the congestion control function based on whether the data received via the first communication unit includes information indicating that the congestion control function is provided, and determines whether the another party's device communicating with the second communication unit has the congestion control function based on whether the data received via the second communication unit includes information indicating that the congestion control function is provided.
- Furthermore, the communication device is preferably configured such that the second determination unit determines whether data congestion is occurring in the another party's device communicating with the second communication unit based on whether a timing of receiving data via the second communication unit is delayed for more than a predetermined time.
- Moreover, the communication device is preferably configured such that the control unit deletes the information included in the data received via the first communication unit, the information indicating that the congestion control function is provided, and controls the second communication unit to transmit the data from which the information indicating that the congestion control function is provided has been deleted, in a case in which the first determination unit determines that the external device to which the first communication unit is connected has the congestion control function, and that the another party's device communicating with the second communication unit does not have the congestion control function.
- In addition, the communication device is preferably configured such that, after transmitting the first control data to the external device via the first communication unit, in a case in which the first communication unit has received, from the external device, second control data indicating that the congestion control function has been exercised, the control unit does not transmit the first control data when transmitting data via the first communication unit.
- Furthermore, the communication device is preferably configured such that, in a case in which the first determination unit determines that the external device to which the first communication unit is connected and the another party's device communicating with the second communication unit have the congestion control function, the control unit transmits data without changing the data, both in a case of transmitting the data received via the second communication unit to the external device to which the first communication unit is connected, and in a case of transmitting the data received via the first communication unit to the another party's device to which the second communication unit is connected.
- Moreover, in the communication device, the processing unit is preferably configured with: a first token generating unit that generates a token configured with a predetermined data amount; a first token storing unit that stores the token; a first detecting unit that detects an amount of tokens stored in the first token storing unit; a first control unit that determines whether an amount of tokens detected by the first detecting unit has reached a first threshold value, and in a case in which the first control unit determines that the amount of tokens has reached the first threshold value, the first control unit controls such that the data received via the first communication unit is transmitted, for only an amount corresponding to the amount of tokens, to the network via the second communication unit; and a first determination unit that determines whether the external device to which the first communication unit is connected has the congestion control function against data congestion, and in a case in which the first control unit determines that an amount of tokens detected by the first detecting unit is no more than a second threshold value, which is smaller than the first threshold value, and the first determination unit determines that the external device to which the first communication unit is connected has the congestion control function, the first control unit adds first control information for activating the congestion control function to data to be transmitted via the first communication unit, and causes the first communication unit to transmit the data.
- In addition, the communication device is preferably configured such that the first determination unit determines whether the device to which the first communication unit is connected has the congestion control function, based on whether the data received via the first communication unit includes second control information indicating that the congestion control function is provided.
- Furthermore, the communication device is preferably configured such that, in a case in which the first communication unit has received, from the external device connected thereto, data to which third control information has been added, indicating that a congestion window has been reduced, the first control unit deletes the third control information from the data, and transmits the data, from which the third control information has been deleted, to the network via the second communication unit.
- Moreover, in the communication device, the processing unit is preferably configured with: a second token generating unit that generates a token configured with a predetermined data amount; a second token storing unit that stores the token; a second detecting unit that detects an amount of tokens stored in the second token storing unit; a second control unit that determines whether an amount of tokens detected by the second detecting unit has reached a first threshold value, and in a case in which the second control unit determines that the amount of tokens has reached the first threshold value, the first control unit controls such that the data received via the second communication unit is transmitted, for only an amount corresponding to the amount of tokens, to the network via the first communication unit; and a second determination unit that determines whether the another party's device on the network side has the congestion control function against data congestion, and in a case in which an amount of tokens detected by the second detecting unit is no more than a second threshold value, which is smaller than the first threshold value, and the second determination unit determines that the another party's device on the network side has the congestion control function, the second control unit adds fourth control information for activating the congestion control function to the data received via the first communication unit, and causes the second communication unit to transmit the data.
- In addition, the communication device is preferably configured such that the second determination unit determines whether the device on the network side has the congestion control function, based on whether the data received via the second communication unit includes fifth control information indicating that the congestion control function is provided.
- Furthermore, the communication device is preferably configured such that, in a case in which the second communication unit has received, from the device on the network side, data to which sixth control information has been added, indicating that a congestion window has been reduced, the second control unit deletes the sixth control information from the data, and transmits the data, from which the sixth control information has been deleted, to the external device via the first communication unit.
- According to the present invention, ECN can be utilized effectively.
- In order to solve the aforementioned problem, a communication method according to the present invention is configured with:
-
- a relaying data from an external device connecting via the first communication unit; a transmitting data received from the first communication unit to a network side via the second communication unit, and data received from the network side to the first communication unit; and a processing that confirms whether a congestion control function against data congestion is provided to the external device to which the first communication unit is connected and an another party's device on the network side communicating with the second communication unit, in a casein which any one of the devices has the congestion control function, and congestion is occurring in an other one of the devices, the processing unit transmits control data for activating the congestion control function to the other one of the devices.
-
FIG. 1 is a diagram showing an aspect in which a communication device is connected to a PC, and is connected to a network; -
FIG. 2 is a sequence chart illustrating a TCP connection establishment sequence; -
FIG. 3 is a sequence chart illustrating a congestion control sequence by way of ECN; -
FIG. 4 is a block diagram showing functions of a communication device according to the present invention; -
FIG. 5 is a schematic diagram showing a configuration of a TCP header; -
FIG. 6 is a sequence chart illustrating a TCP connection establishment sequence in a case in which a PC on a data transmitting side is compliant with ECN and a PC on a data receiving side is not compliant with ECN; -
FIG. 7 is a sequence chart illustrating a TCP connection establishment sequence in a case in which both of the PC on the data transmitting side and the PC on the data receiving side are compliant with ECN; -
FIG. 8 is a sequence chart illustrating a TCP connection establishment sequence in a case in which the PC on the data transmitting side is not compliant with ECN; -
FIG. 9 is a sequence chart illustrating a congestion control sequence by way of ECN performed between the PC on the data transmitting side and the communication device; -
FIG. 10 is a block diagram showing a first function of the communication device according to the present invention; -
FIG. 11 is a block diagram showing a second function of the communication device according to the present invention; -
FIG. 12 is a sequence chart illustrating a TCP connection establishment sequence in a case in which the PC connected to the communication device is compliant with ECN and the network side is not compliant with ECN; -
FIG. 13 is a sequence chart illustrating a TCP connection establishment sequence in a case in which the PC connected to the communication device is not compliant with ECN and the network side is compliant with ECN; -
FIG. 14 is a sequence chart illustrating congestion control operations by a PC in a case in which congestion has occurred on the network side; and -
FIG. 15 is a sequence chart illustrating congestion control operations by the network side in a case in which congestion has occurred in the PC. - Embodiments of the present invention will be described in detail hereinafter.
- A
communication device 1 according to the present embodiment is utilized as a PC card having an antenna for radio communication, and as shown inFIG. 1 , for example, thecommunication device 1 is inserted into acard slot 102 of a PC (Personal Computer) 101, and is connected thereto, thereby being utilized by the PC 101 for connection to a network 202 (for example, the Internet) via abase station 201. - Firstly, a TCP peer is described.
- In three-way handshaking (three-step connecting procedure), TCP peers negotiate with each other regarding whether being compliant with ECN.
- More specifically, as shown in
FIG. 2 , a TCP (ECN) connection establishment sequence is performed by an ECN-compliant electronic device on the transmitting side setting an ECE flag and a CWR flag to a TCP header of SYN and performing transmission (Step ST101), and an ECN-compliant electronic device on the receiving side settings an ECE flag to a TCP header of SYN/ACK and replying thereto (Step ST102). - In addition, a congestion control sequence by way of
- ECN is performed as shown in
FIG. 3 . - In a case in which a used amount of a buffer for accumulating packets that are waiting for transfer exceeds a certain threshold value, an ECN-compliant router determines that congestion is occurring in the network. Then, the ECN-compliant router sets a bit (CE: Congestion Experienced), which indicates that congestion is being experienced, to a ToS (Type of Service) field of an IP (Internet Protocol) header of a forward packet, and transfers the packet to the receiving side (Step ST111).
- Upon receiving a packet in which CE has been set to an IP header, the electronic device on the receiving side sets an ECE (ECN-Echo) flag to a TCP header, and returns an acknowledgement to the transmitting side (Step ST112).
- This response is continued until the electronic device on the receiving side receives a packet, in which a CWR (Congestion Window Reduced) flag has been set to a TCP header, from the electronic device on the transmitting side.
- Upon receiving a packet in which an ECE flag has been set to a TCP header, the electronic device on the transmitting side determines that congestion is occurring, reduces a congestion window size to a threshold value (ssthresh) of a slow start, sets a CWR flag of a TCP header of the next packet, and transmits the packet (Step ST113).
- Upon receiving a packet in which a CWR flag has been set, the electronic device on the receiving side stops setting an ECE flag of the subsequent acknowledge packet (Step ST114).
- Embodiments of the present invention will be described in detail hereinafter.
- As shown in
FIG. 4 , thecommunication device 1 includes afirst communication unit 11, asecond communication unit 12, afirst determination unit 13, asecond determination unit 14 and acontrol unit 15. - It should be noted that the
first determination unit 13, thesecond determination unit 14 and thecontrol unit 15 comprehensively configure a processing unit. - The
first communication unit 11 is connected to an external device (hereinafter referred to as a PC 101) to relay data. - More specifically, the
first communication unit 11 is configured with a transmitting port that transmits data to thePC 101, and a receiving port that receives data transmitted from thePC 101. - The
second communication unit 12 transmits data, which has been received via thefirst communication unit 11, to thenetwork 202 side, and receives data from thenetwork 202 side. - More specifically, the
second communication unit 12 is configured with a transmitting port that transmits data to thenetwork 202 side, and a receiving port that receives data transmitted from thenetwork 202 side. - The
first determination unit 13 determines whether the -
PC 101 to which thefirst communication unit 11 is connected and an another party's device (hereinafter referred to as a PC 301) on thenetwork 202 side communicating with thesecond communication unit 12 have a congestion control function against data congestion (based on data received via thefirst communication unit 11 and data received via the second communication unit 12). - The
second determination unit 14 determines whether data congestion is occurring in thePC 301 communicating with the second communication unit 12 (based on data received via the second communication unit 12). - In a case in which the
first determination unit 13 determines that the device to which thefirst communication unit 11 is connected has the congestion control function, but thePC 301 communicating with thesecond communication unit 12 does not have the congestion control function, and yet thesecond determination unit 14 determines that data congestion is occurring in thePC 301 communicating with thesecond communication unit 12, thecontrol unit 15 adds first control data (for example, an ECE flag) for activating the congestion control function provided in thePC 101 to data transmitted via thefirst communication unit 11 to thePC 101, and causes thefirst communication unit 11 to transmit the data. - Here, a structure of a TCP header is described.
- As shown in
FIG. 5 , the TCP header is configured with, in order from the top, Source Port (source port number), Destination Port (destination port number), Sequence Number (sequence number), Acknowledgment Number (acknowledgement number), Data Offset (data offset), Reserved (reserve), Control Bits (control bits), Window (window size), Checksum (check sum), Urgent Pointer (urgent pointer), Options (option) and Padding (padding). - Moreover, the control bits are configured with CWR (congestion window reduction) that notifies of reduction of a congestion window, ECE (ECN-Echo) that notifies another party's device of the occurrence of congestion, URG (urgency flag) that instructs an urgent pointer field to be used, ACK (acknowledgement flag) that indicates that a segment is waiting for acknowledgement, PSH (transfer forcing flag) that is transmitted as soon as becoming ready for reception, RST (reset flag) that indicates an instruction to reset communication when an incorrect packet has been received, SYN (synchronization flag) that indicates transfer of a top sequence number, and FIN (finishing transfer flag) that indicates finishing transmission or being ready for reception.
- More specifically, the
control unit 15 sets the ECE flag in the control bits of the TCP header to “1”, and transmits it from thefirst communication unit 11 to thePC 101. - In this way, in a case in which the
network 202 side is not compliant with ECN, and thePC 101 is compliant with ECN, it is possible to make it appear to thePC 101 as if thenetwork 202 side is compliant with ECN when establishing a session. - Accordingly, although it has not been conventionally possible to exercise the congestion control function of the
PC 101 in a case in which thenetwork 202 side is not compliant with ECN, it is possible to exercise the congestion control function of thePC 101 even if thenetwork 202 side is not compliant with ECN according to thecommunication device 1. - In addition, the
first determination unit 13 determines whether thePC 101 to which thefirst communication unit 11 is connected has the congestion control function, based on whether the data received via thefirst communication unit 11 includes information indicating that the congestion control function is provided, and determines whether thePC 301 communicating with thesecond communication unit 12 has the congestion control function, based on whether the data received via thesecond communication unit 12 includes information indicating that the congestion control function is provided. - More specifically, in a case in which an ECE flag and a CWR flag have been added in control bits of a TCP header included in data received via the
first communication unit 11, thefirst determination unit 13 determines that thePC 101 has the congestion control function. - Furthermore, in a case in which an ECE flag and a CWR flag have been added in control bits of a TCP header included in data received via the
second communication unit 12, thefirst determination unit 13 determines that thePC 301 has the congestion control function. - Moreover, the
second determination unit 14 determines whether data congestion is occurring in thePC 301 communicating with thesecond communication unit 12, based on whether a delay of more than a predetermined time is occurring in a timing to receive data via the second communication unit 12 (a delay time of a response for transmitted data). - In data communication using TCP, a device transmits data by adding a sequence number (for example, Seq #=1000) to each TCP packet.
- The purpose thereof is to confirm continuity of the packets. In addition, the device on the receiving side replies by assigning the same number to an acknowledgement (Acknowledge) number (for example, Acq #=1000) in order to notify the device on the transmitting side of the fact that a TCP packet has arrived.
- The
second determination unit 14 detects a time from transmitting data until receiving response data, and in a case in which the time exceeds a predetermined time, thesecond determination unit 14 determines that data congestion is occurring in thePC 301 communicating with thesecond communication unit 12. - Furthermore, in a case in which the
first determination unit 13 determines that thePC 101 to which thefirst communication unit 11 is connected has the congestion control function, and that thePC 301 communicating with thesecond communication unit 12 does not have the congestion control function, thecontrol unit 15 deletes information indicating that the congestion control function is provided, the information being included in the data received via thefirst communication unit 11, and transmits the data, from which the information indicating that the congestion control function is provided has been deleted, via thesecond communication unit 12. - Here, in a device that is not compliant with ECN, in a case in which portions of an ECE flag and a CWR flag of control bits of a TCP header are not in a state in which a flag is not set, i.e. not in a state of “0 (zero)”, the device determines that there is no conformity in terms of the standard, and discards the packets in which an ECE flag and a CWR flag have been set.
- Accordingly, in the
communication device 1, in a case in which it is determined that thenetwork 202 side is not compliant with ECN, information indicating that the congestion control function is provided is deleted, i.e. portions of an ECE flag and a CWR flag of control bits of a TCP header are set to “0 (zero)”, and such data is transmitted to thenetwork 202 side via thesecond communication unit 12. - This makes it possible to prevent packets from being discarded on the
network 202 side. - Moreover, in a case in which the
first communication unit 11 received, from thePC 101, second control data (CWR flag) indicating that the congestion control function has been exercised after thefirst communication unit 11 has transmitted the first control data (ECE flag) to thePC 101, thecontrol unit 15 does not transmit the first control data when transmitting data by way of thefirst communication unit 11. - The
PC 101 confirms that congestion is occurring on thenetwork 202 side, reduces a congestion window, and outputs the second control data indicating it. - The
communication device 1 transmits acknowledgement data to thePC 101 without setting an ECE flag to the data. - It should be noted that an amount of data that is output from the
PC 101 will be reduced by reducing the congestion window. - In addition, after reducing the congestion window, the
PC 101 gradually increases the congestion window in accordance with an amount defined by the standard, and restores the window width over time. - Furthermore, in a case in which the
first determination unit 13 determines that both of thePC 101 to which thefirst communication unit 11 is connected and thePC 301 communicating with thesecond communication unit 12 have the congestion control function, thecontrol unit 15 transmits data received via thesecond communication unit 12 to thePC 101 to which thefirst communication unit 11 is connected, and transmits data received via thefirst communication unit 11 to thePC 301 to which thesecond communication unit 12 is connected, without changing the data. - By operating in this way, the
communication device 1 does not disturb the congestion control that is performed between thePC 101 and thePC 301, which are each compliant with ECN. - Here, a TCP connection establishment sequence in a case in which the
PC 101 is compliant with ECN and thePC 301 is not compliant with ECN is described with reference toFIG. 6 . - The
PC 101 transmits an SYN (Synchronize) packet in order to perform TCP establishment (Step ST1). - An ECE flag and a CWR flag indicating compliance with
- ECN have been added to the SYN packet.
- Moreover, the
communication device 1 stores the fact that thePC 101 is compliant with ECN by way of the SYN packet, and transfers the packet to thenetwork 202 without change (Step ST2). - In response to the transmitted SYN packet, the
network 202 transmits (returns) an SYN/ACK (SYN-Acknowledgement) packet (Step ST3). - Here, in a case in which the
network 202 is not compliant with ECN, an ECE flag is not added. - In addition, since the
PC 101 supports ECN, thecommunication device 1 adds an ECE flag to the header of the packet returned from thenetwork 202, and transmits the packet to thePC 101 so as to change its own ECN into an active state (Step ST4). - In other words, in three-way handshaking for TCP establishment, in a case in which an ECE flag is not added to the control bits of the header of the TCP/IP packet received from the
network 202, thecommunication device 1 changes ECN of thecommunication device 1 into an active state “ON”, and adds an ECE flag to the control bits of the header so as to make it appear to thePC 101 as if thenetwork 202 has ECN, thereby changing ECN of thePC 101 into an active state. - Thereafter, ECN control can be performed between the
-
PC 101 and thecommunication device 1. - With such a configuration, the
communication device 1 can make it appear to thePC 101 as if thenetwork 202 supports ECN. - Accordingly, after the TCP connection establishment sequence, data communication can be performed by way of ECN control between the
PC 101 and thecommunication device 1. - In addition, a TCP connection establishment sequence in a case in which the
PC 101 is compliant with ECN and thenetwork 202 side is also compliant with ECN is described with reference toFIG. 7 . - The
PC 101 transmits an SYN (Synchronize) packet in order to perform TCP establishment (Step ST11). - An ECE flag and a CWR flag indicating compliance with ECN have been added to the SYN packet.
- The
communication device 1 stores the fact that the PC is compliant with ECN by way of the packet, and transfers the packet to the network in the current state. - Moreover, the
communication device 1 stores the fact that thePC 101 is compliant with ECN by way of the SYN packet, and transfers the packet to thenetwork 202 in the current state (Step ST12). - In response to the transmitted SYN packet, the
network 202 transmits (returns) an SYN/ACK (SYN-Acknowledgement) packet (Step ST13). - Here, in a case in which the
network 202 is compliant with ECN, an ECE flag is added. - In addition, since both of the
PC 101 and thenetwork 202 are compliant with ECN, thecommunication device 1 changes its own ECN into an inactive state (Step ST14). - In other words, the
communication device 1 does not change a header of a TCP packet in a TCP connection establishment sequence. - In other words, in three-way handshaking of TCP establishment, in a case in which an ECE flag has been added to a header portion of the TCP/IP packet received from the
network 202, thecommunication device 1 changes its own ECN into an inactive state “OFF”, and does not change the header of the TCP packet when establishing a TCP connection. - With such a configuration, the
communication device 1 does not disturb the congestion control that is performed between thePC 101 and thePC 301, which are compliant with ECN. - Furthermore, a TCP connection establishment sequence in a case in which the
PC 101 is not compliant with ECN is described with reference toFIG. 8 . - The
PC 101 transmits an SYN (Synchronize) packet in order to perform TCP establishment (Step ST21). - Since the
PC 101 is not compliant with ECN, an ECE flag and a CWR flag have not been added to the SYN packet. - The
communication device 1 changes its own ECN into an inactive state, and transfers the SYN packet to thenetwork 202 in the current state (Step ST22). - In other words, in three-way handshaking of TCP connection establishment, in a case in which an ECE flag and a CWR flag have not been added to a header portion of the TCP/IP packet received from the
PC 101, thecommunication device 1 changes its own ECN into an inactive state “OFF”, and does not change the header of the TCP packet in a TCP connection establishment sequence. - Next, a congestion control sequence by way of ECN performed between the
PC 101 and thecommunication device 1 is shown inFIG. 9 . - The
communication device 1 detects that congestion is occurring in thenetwork 202 based on a delay time T to receive ACK from the PC 101 (Step ST31). - Here, the delay time T is calculated from an average time in the most recent N moves and a threshold value.
- The
communication device 1 adds an ECE flag to a header of an ACK packet that is received from thenetwork 202 side immediately after detecting the congestion, and transfers the packet to the PC 101 (Step ST32). - In a case in which the
PC 101 receives a packet in which an ECE flag has been set to a TCP header, thePC 101 determines that congestion is occurring in thenetwork 202 side, reduces the congestion window size to a threshold value (ssthresh) of a slow start, sets a CWR flag to a TCP header of the next packet in order to notify this fact, and transmits it (Step ST33). - Upon receiving the packet to which the CWR flag has been set, the
communication device 1 does not set an ECE flag to the ACK packet received from thenetwork 202, and transmits the packet to the PC 101 (Step ST34). - In this way, the
communication device 1 changes its own - ECN into an active state or an inactive state depending on an ECN compliance status of the
PC 101 and thenetwork 202 side in a TCP connection establishment sequence. - In a case in which both of the
PC 101 and thenetwork 202 are compliant with ECN, thecommunication device 1 changes its own ECN into an inactive state, and utilizes an existing technique. - Moreover, in a case in which the
PC 101 is compliant with ECN and thenetwork 202 side is not compliant with ECN, thecommunication device 1 exercises ECN with thePC 101. - Accordingly, with the
communication device 1 performing control by way of ECN with thePC 101 only, an effect of the congestion control by way of ECN can be obtained as an entire network even in a case in which thenetwork 202 side is not compliant with ECN. - Next, a token bucket mechanism is described first, before describing an example of using the token bucket mechanism.
- In a network to which a plurality of electronic devices is connected, a function (hereinafter referred to as a traffic control function) to control a transmission rate (throughput) is provided on a mobile device side (device that is connected to an electronic device and is connected to the network), such that a particular electronic device does not consume radio resources excessively.
- More specifically, the traffic control function has a token bucket mechanism in each of upstream and downstream sides, and is a function to respectively and independently control the throughput.
- The token bucket mechanism has a packet buffer that accumulates packets that have been input, and a token bucket that accumulates tokens.
- Tokens are supplemented to the token bucket at certain intervals, and the packets in the packet buffer cannot be output until a defined amount of tokens are accumulated.
- Moreover, if packets corresponding to the amount of tokens are output, tokens of the corresponding amount are deducted from the token bucket.
- In other words, the throughput of packets accumulated in the packet buffer is controlled by way of an amount of tokens to be supplemented to the token bucket in a unit time (token rate).
- The token rate is not constant, since it dynamically changes due to a network environment and parameters that have been set inside the mobile device.
- In an example of actual operation, control is performed such that the token rate is decreased in a case in which the network is being congested, and the token rate is increased in a case in which the network is not being congested.
- In addition, the token rate is calculated based on the mean throughput of inputs into the packet buffer.
- Accordingly, the token rate does not normally become a rate that is higher than the mean throughput.
- Furthermore, there is a function (hereinafter referred to as a forcible token addition function) in which tokens are temporarily borrowed in advance, and transmission and reception are enabled without restriction as long as the data is up to a certain amount.
- The forcible token addition function is a function that gives consideration to usability of a user performing communication of less than a certain amount only (a so-called light user).
- Once the forcible token addition function operates, all the data, which have been accumulated in the packet buffer inside the mobile device, are transmitted at first, and the token rate is suppressed until the tokens that have been advanced are subsequently returned.
- As shown in
FIG. 10 , acommunication device 50 includes afirst communication unit 51, asecond communication unit 52, a firsttoken generating unit 53, a firsttoken storing unit 54, a first detectingunit 55, afirst control unit 56 and afirst determination unit 57. - It should be noted that the first
token generating unit 53, the firsttoken storing unit 54, the first detectingunit 55, thefirst control unit 56 and thefirst determination unit 57 comprehensively configure a processing unit. - The
first communication unit 51 is connected to an external device (hereinafter referred to as a PC 101) to relay data. - More specifically, the
first communication unit 51 is configured with a transmitting port that transmits data to thePC 101, and a receiving port that receives data transmitted from thePC 101. - The
second communication unit 52 transmits data, which has been received via thefirst communication unit 51, to thenetwork 202 side, and receives data from thenetwork 202 side. - More specifically, the
second communication unit 52 is configured with a transmitting port that transmits data to thenetwork 202 side, and a receiving port that receives data transmitted from thenetwork 202 side. - The first
token generating unit 53 generates a token configured with a predetermined data amount. - The first
token storing unit 54 stores tokens generated by way of the firsttoken generating unit 53. - The first detecting
unit 55 detects an amount of tokens stored in the firsttoken storing unit 54. - The
first control unit 56 determines whether an amount of tokens detected by the first detectingunit 55 has reached a first threshold value, and in a case in which it is determined that the amount of tokens has reached the first threshold value, thefirst control unit 56 controls such that the data received via thefirst communication unit 51 is transmitted to thenetwork 202 by way of thesecond communication unit 52 for only an amount in accordance with the amount of tokens. - Here, a token is configured with a predetermined data amount per unit, and the tokens generated by way of the first
token generating unit 53 are sequentially accumulated in the firsttoken storing unit 54. - In addition, in a case in which the
first control unit 56 determines that the tokens accumulated in the firsttoken storing unit 54 have reached the first threshold value based on a detection result by a of the first detectingunit 55, thefirst control unit 56 controls such that data in accordance with the amount of the accumulated tokens is transmitted to thenetwork 202 by way of the second thesecond communication unit 52. - Furthermore, after the data has been transmitted, the
first control unit 56 reduces the tokens from the firsttoken storing unit 54 for an amount in accordance with the transmitted data. - Moreover, the
first determination unit 57 determines whether thePC 101 to which thefirst communication unit 51 is connected has the congestion control function against data congestion. - In a case in which an amount of tokens detected by the first detecting
unit 55 is no more than a second threshold value, which is smaller than the first threshold value, and thefirst determination unit 57 determines that thePC 101 to which thefirst communication unit 51 is connected has the congestion control function, thefirst control unit 56 performs the following operations. - The
first control unit 56 adds first control information for activating the congestion control function to the data transmitted via thefirst communication unit 51, and causes thefirst communication unit 51 to transmit the data. - It should be noted that the amount of tokens being no more than the second threshold value indicates a shortage of tokens.
- In a case in which the state of the amount of tokens being no more than the second threshold value continues for more than a predetermined time, the
first control unit 56 determines that congestion is occurring in thenetwork 202 side, adds the first control information to data, and transmits the data to thePC 101. - In a case in which the
PC 101 has received the first control information, thePC 101 reduces the congestion window. - Since the
PC 101 reduces the congestion window in this way, the amount of data (amount of packets) that is output to thecommunication device 50 is reduced. - In addition, after reducing the congestion window, the
-
PC 101 gradually increases the congestion window in accordance with an amount defined by the standard, and restores the window width over time. - It should be noted that the structure of the TCP header has been previously described with reference to
FIG. 5 . - More specifically, in a case in which an amount of tokens detected by the first detecting
unit 55 is no more than the second threshold value, which is smaller than the first threshold value, and thefirst determination unit 57 determines that thePC 101 to which thefirst communication unit 51 is connected has the congestion control function, thefirst control unit 56 sets an ECE flag (corresponding to the first control information) in control bits of a TCP header to “1” when thefirst control unit 56 transmits data to thePC 101. - In this way, in a case in which the
PC 101 is compliant with ECN, thecommunication device 50 can perform congestion control with thePC 101 in accordance with an amount of tokens (token rate). - Accordingly, in a conventional configuration that performs traffic control by utilizing a token rate, a data input rate becomes greater than a data output rate for a communication device, and a packet buffer inside the communication device overflows, thereby leading to a risk of packet loss; however, in the
communication device 50 according to the present embodiment, packet loss can be avoided. - Furthermore, in the
communication device 50, since the packet loss can be avoided as described above, re-transmission of packets due to packet loss can be suppressed, and effective utilization of line resources can be achieved. - Moreover, in the
communication device 50, since the need for the buffering processing for a packet buffer can also be eliminated, it is possible to achieve mitigation of the processing load as compared to the conventional configuration. - In addition, the
first determination unit 57 determines whether thePC 101 to which thefirst communication unit 51 is connected has the congestion control function, based on whether the data received via thefirst communication unit 51 includes second control information indicating that the congestion control function is provided. - More specifically, in a case in which an ECE flag and a CWR flag (corresponding to the first control information) are set in control bits of a TCP header included in data received via the
first communication unit 51, thefirst determination unit 57 determines that thePC 101 has the congestion control function. - Furthermore, in a case in which the
first communication unit 51 has received data, from thePC 101 connected thereto, the data added with third control information indicating that the congestion window has been reduced, thefirst control unit 56 controls such that the third control information is deleted from the data, and the data from which the third control information has been deleted is transmitted to thenetwork 202 by way of thesecond communication unit 52. - More specifically, in a case in which data is received from the
PC 101, in which a CWR flag (corresponding to the third control information) of control bits of a TCP header has been set to “1”, thefirst control unit 56 controls such that data in which the CWR flag has been reset to “0 (zero)” is transmitted to thenetwork 202. - With such a configuration, congestion control can be performed between the
PC 101 and thecommunication device 50 without affecting thenetwork 202 side. - In the aforementioned second embodiment, the control of the
communication device 50 has been described for a case in which congestion has occurred in thenetwork 202 side when transmitting data from thePC 101 to thenetwork 202 via thecommunication device 50. - In a third embodiment, control of the
communication device 50 is described for a case in which congestion has occurred in thePC 101 when transmitting data from thePC 301 of thenetwork 202 side to thePC 101 via thecommunication device 50. - It should be noted that the same reference numerals are assigned to the configurations and operations that are the same as those of the
communication device 50 in the following description. - As shown in
FIG. 11 , thecommunication device 50 includes thefirst communication unit 51, thesecond communication unit 52, a secondtoken generating unit 61, a secondtoken storing unit 62, a second detectingunit 63, asecond control unit 64 and asecond determination unit 65. - It should be noted that the
communication device 50 in the second embodiment may further include such a configuration. - Moreover, the second
token generating unit 61, the secondtoken storing unit 62, the second detectingunit 63, thesecond control unit 64 and thesecond determination unit 65 comprehensively configure a processing unit. - The
first communication unit 51 is connected to thePC 101 to relay data. - More specifically, the
first communication unit 51 is configured with a transmitting port that transmits data to thePC 101, and a receiving port that receives data transmitted from thePC 101. - The
second communication unit 52 receives, from thenetwork 202 side, data to be transmitted via thefirst communication unit 51, and transmits data, which has been received via thefirst communication unit 51, to thenetwork 202 side. - More specifically, the
second communication unit 52 is configured with a transmitting port that transmits data to thenetwork 202 side, and a receiving port that receives data transmitted from thenetwork 202 side. - The second
token generating unit 61 generates a token configured with a predetermined data amount. - The second
token storing unit 62 stores tokens generated by way of secondtoken generating unit 61. - The second detecting
unit 63 detects an amount of tokens stored in the secondtoken storing unit 62. - The
second control unit 64 determines whether an amount of tokens detected by the second detectingunit 63 reaches a first threshold value, and in a case in which it is determined that the amount of tokens has reached the first threshold value, thesecond control unit 64 controls such that the data received via thesecond communication unit 52 is transmitted to thePC 101 by way of thefirst communication unit 51 for only an amount in accordance with the amount of tokens. - In addition, in a case in which the
second control unit 64 determines that the tokens accumulated in the secondtoken storing unit 62 have reached the first threshold value based on a detection result by way of the second detectingunit 63, thesecond control unit 64 controls such that data in accordance with the amount of the accumulated tokens is transmitted to thePC 101 by way of thefirst communication unit 51. - Furthermore, after the data has been transmitted, the
second control unit 64 reduces the tokens from the secondtoken storing unit 62 for an amount in accordance with the transmitted data. - Moreover, the
second determination unit 65 determines whether a device (hereinafter referred to as a PC 301) on thenetwork 202 side has the congestion control function against data congestion. - With such a configuration, in a case in which an amount of tokens detected by the second detecting
unit 63 is no more than the second threshold value, which is smaller than the first threshold value, and thesecond determination unit 65 determines that thePC 301 on thenetwork 202 side has the congestion control function, thesecond control unit 64 adds fourth control information for activating the congestion control function to the data received via thefirst communication unit 51, and causes thesecond communication unit 52 to transmit the data. - It should be noted that the amount of tokens being no more than the second threshold value indicates the shortage of tokens.
- In a case in which the state of the amount of tokens being no more than the second threshold value continues for more than a predetermined time, the
second control unit 64 determines that congestion is occurring in thePC 101, sets an ECE flag (corresponding to the fourth control information) of control bits of a TCP header to “1”, the flag being added to data, and transmits the data to thenetwork 202. - In a case in which the
PC 301 has received the fourth control information, thePC 301 reduces the congestion window. - Since the
PC 301 reduces the congestion window in this way, the amount of data (amount of packets) that is transmitted to thecommunication device 50 via thenetwork 202 is reduced. - In addition, after reducing the congestion window, the
PC 301 gradually increases the congestion window in accordance with an amount defined by the standard, and restores the window width over time. - In this way, in a case in which the
PC 301 is compliant with ECN, thecommunication device 50 can perform congestion control with thePC 301 in accordance with an amount of tokens (token rate). - Accordingly, in a conventional configuration that performs traffic control by utilizing a token rate, a data input rate becomes greater than a data output rate for a communication device, and a packet buffer inside the communication device overflows, thereby leading to a risk of packet loss; however, in the
communication device 50 according to the present embodiment, packet loss can be avoided. - Furthermore, in the
communication device 50, since the packet loss can be avoided as described above, re-transmission of packets due to packet loss can be suppressed, and effective utilization of line resources can be achieved. - Moreover, in the
communication device 50, since the need for the buffering processing for a packet buffer can also be eliminated, it is possible to achieve mitigation of the processing load as compared to the conventional configuration. - The
second determination unit 65 determines whether thePC 301 on thenetwork 202 side has the congestion control function, based on whether the data received via thesecond communication unit 52 includes fifth control information indicating that the congestion control function is provided. - More specifically, in a case in which an ECE flag and a CWR flag (corresponding to the fifth control information) are set in control bits of a TCP header included in data received via the
second communication unit 52, thesecond determination unit 65 determines that thePC 301 has the congestion control function. - In addition, in a case in which the
second communication unit 52 has received data, from thePC 301 on thenetwork 202 side, the data added with sixth control information indicating that the congestion window has been reduced, thesecond control unit 64 controls such that the sixth control information is deleted from the data, and the data from which the sixth control information has been deleted is transmitted to thePC 101 by way of thefirst communication unit 51. - More specifically, in a case in which data is received from the
PC 301, in which a CWR flag (corresponding to the sixth control information) of control bits of a TCP header data has been set to “1”, thesecond control unit 64 controls such that data in which the CWR flag has been reset to “0 (zero)” is transmitted to thePC 101. - With such a configuration, congestion control can be performed between the
PC 301 and thecommunication device 50 via thenetwork 202 without affecting thePC 101. - Here, a TCP connection establishment sequence in a case in which the
PC 101 is compliant with ECN and thenetwork 202 side is not compliant with ECN is described with reference toFIG. 12 . - It should be noted that the
network 202 side is a concept of devices connected to thenetwork 202 including devices as transmission destination of thePC 101. - The
PC 101 transmits an SYN (Synchronize) packet in order to perform TCP establishment (Step ST51). - An ECE flag and a CWR flag indicating compliance with ECN have been added to the SYN packet.
- Moreover, the
communication device 50 stores the fact that thePC 101 is compliant with ECN by way of the SYN packet, and transfers the packet to the network without in the current state (Step ST52). - In response to the transmitted SYN packet, the
network 202 side transmits (returns) an SYN/ACK (SYN-Acknowledgement) packet (Step ST53). - Here, in a case in which the
network 202 side is not compliant with ECN, an ECE flag is not added. - In addition, since the
PC 101 supports ECN, thecommunication device 50 adds an ECE flag to the header of the packet returned from thenetwork 202 side, and transmits the packet to thePC 101 so as to change its own ECN into an active state (Step ST54). - In other words, in three-way handshaking for TCP establishment, in a case in which an ECE flag has not been added to control bits of a header of a TCP/IP packet received from the
network 202 side, thecommunication device 50 changes ECN of thecommunication device 50 into an active state “ON”, and adds an ECE flag to the control bits of the header so as to make it appear to thePC 101 as if thenetwork 202 side has ECN, thereby changing ECN of thePC 101 into an active state. - Thereafter, ECN control is performed between the
PC 101 and thecommunication device 50. - With such a configuration, the
communication device 50 can make it appear to thePC 101 as if thenetwork 202 side supports ECN. - Accordingly, after the TCP connection establishment sequence, data communication can be performed by way of ECN control between the
PC 101 and thecommunication device 50. - Next, a TCP connection establishment sequence in a case in which the
PC 101 is not compliant with ECN and thenetwork 202 side is compliant with ECN is described with reference toFIG. 13 . - It should be noted that the
network 202 side is a concept of devices connected to thenetwork 202 including devices as transmission destination of thePC 101. - The
PC 101 transmits an SYN packet in order to perform TCP establishment (Step ST61). - Since the
PC 101 is not compliant with ECN in this sequence, an ECE flag and a CWR flag have not been added to the SYN packet. - In addition, the
communication device 50 adds an ECE flag and a CWR flag to a header of an SYN packet, and transfers the packet to thenetwork 202 side (Step ST62). - With this operation, the
communication device 50 can make it appear to thenetwork 202 side as if thePC 101 is compliant with ECN. - Furthermore, in response to the received SYN packet, the
network 202 returns a reply packet for an SYN/ACK (SYN-Acknowledgement) packet (Step ST63). - An ECE flag indicating compliance with ECN has been added to the reply packet.
- Moreover, since the
PC 101 is not compliant with ECN, thecommunication device 50 removes the ECE flag from the header of the reply packet transmitted from thenetwork 202, and transfers the packet to the PC 101 (Step ST64). - In other words, in three-way handshaking for TCP establishment, the
communication device 50 can change a header of a TCP/IP packet received from thePC 101 to add an ECE flag, and make it appear to thenetwork 202 side as if thePC 101 is compliant with ECN, thereby changing ECN of the network side into an active state. - Thereafter, ECN control is performed between the
network 202 and thecommunication device 50. - It should be noted that, in a case in which both of the
PC 101 and thenetwork 202 side are not compliant with ECN, thecommunication device 50 operates so as to merely monitor the negotiation status and store whether ECN has become available. Operations ofPC 101 When Congestion Occurs inNetwork 202 Side - Next, operations of the
PC 101 in a case in which congestion occurs in thenetwork 202 side are described with reference toFIG. 14 . - The
communication device 50 detects that tokens for outputting upstream packets from thePC 101 to thenetwork 202 side do not reach a predetermined amount, i.e. detects that the state of being no more than the second threshold value has continued for more than a predetermined time (Step ST71). - It should be noted that, in a case in which the tokens do not reach a predetermined amount, the
communication device 50 can not output upstream packets to thenetwork 202 side. - In a case in which the
communication device 50 detects that the tokens do not reach a predetermined amount by way of the processing of Step ST71, thecommunication device 50 adds an ECE flag, which indicates that congestion has occurred, to a TCP header portion of the reply packet (Ack#=2000 inFIG. 14 ) that has been received thereafter from thenetwork 202 side, and transfers the packet to the PC 101 (Step ST72). - Upon receiving the reply packet to which the ECE flag has been added, the
PC 101 reduces the congestion window in accordance with ECN congestion control (Step ST73). - In addition, the
PC 101 adds a CWR flag, which indicates that the congestion window has been reduced, to a TCP header of a transmission packet (Seq #=6000 inFIG. 14 ) to be output after reducing the congestion window (Step ST74). - The
communication device 50 removes the CWR flag from the TCP header of the received transmission packet, and transfers the packet to thenetwork 202 side (Step ST75). - In this way, in a case in which it has been confirmed that the
PC 101 is compliant with ECN by way of the three-way handshaking, thecommunication device 50 can restrict the transmission rate of upstream packets even if thenetwork 202 side is not compliant with ECN. - More specifically, the
communication device 50 utilizes a token bucket mechanism for traffic control and a token rate, and in a case in which the tokens are in shortage, thecommunication device 50 performs congestion notification byway of ECN to thePC 101 side, and controls the transmission rate of thePC 101 side. - Operations of
Network 202 Side When Congestion Occurs inPC 101 - Next, operations of the
network 202 side in a case in which congestion occurs in thePC 101 are described with reference toFIG. 15 . - The
communication device 50 detects that tokens for outputting downstream packets from thenetwork 202 side to thePC 101 do not reach a predetermined amount, i.e. detects that the state of being no more than the second threshold value has continued for more than a predetermined time (Step ST81). - It should be noted that, in a case in which the tokens do not reach a predetermined amount, the
communication device 50 can not output downstream packets to thePC 101. - In a case in which the
communication device 50 detects that the tokens do not reach a predetermined amount by way of the processing of Step ST81, thecommunication device 50 adds an ECE flag, which indicates that congestion has occurred, to a TCP header portion of the reply packet (Ack#=2000 inFIG. 15 ) that has been received thereafter from thePC 101, and transfers the packet to thenetwork 202 side (Step ST82). - Upon receiving the reply packet to which the ECE flag has been added, the
network 202 side reduces the congestion window in accordance with ECN congestion control (Step ST83). - In addition, the
network 202 side adds a CWR flag, which indicates that the congestion window has been reduced, to a TCP header of a transmission packet (Seq #=6000 inFIG. 15 ) to be output after reducing the congestion window (Step ST84). - The
communication device 50 removes the CWR flag from the TCP header of the received transmission packet, and transfers the packet to the PC 101 (Step ST85). - In this way, in a case in which it has been confirmed that the
network 202 side is compliant with ECN by way of the three-way handshaking, thecommunication device 50 can restrict the transmission rate of downstream packets even if thePC 101 is not compliant with ECN. - More specifically, the
communication device 50 utilizes a token bucket mechanism for traffic control and a token rate, and in a case in which the tokens are in shortage, thecommunication device 50 performs congestion notification byway of ECN to thenetwork 202 side, and controls the transmission rate of thenetwork 202 side.
Claims (14)
1. A communication device, comprising:
a first communication unit that is connected to an external device and relays data;
a second communication unit that transmits data received from the first communication unit to a network side, and transmits data received from the network side to the first communication unit; and
a processing unit that confirms whether a congestion control function against data congestion is provided to the external device to which the first communication unit is connected and an another party's device on the network side communicating with the second communication unit,
in a case in which any one of the devices has the congestion control function, and congestion is occurring in an other one of the devices, the control unit transmits control data for activating the congestion control function to the other one of the devices.
2. The communication device according to claim 1 ,
wherein the processing unit includes:
a first determination unit that determines whether the external device to which the first communication unit is connected and the another party's device on the network side communicating with the second communication unit have the congestion control function against data congestion, based on data received via the first communication unit and data received via the second communication unit;
a second determination unit that determines whether data congestion is occurring in the another party's device communicating with the second communication unit, based on data received via the second communication unit; and
a control unit that adds, to data transmitted via the first communication unit to the external device, first control data for activating the congestion control function provided to the external device, and causes the first communication unit to transmit the data, in a case in which the first determination unit determines that the device to which the first communication unit is connected has the congestion control function, but the another party's device communicating with the second communication unit does not have the congestion control function, and the second determination unit determines that data congestion is occurring in the another party's device communicating with the second communication unit.
3. The communication device according to claim 2 ,
wherein the first determination unit determines whether the external device to which the first communication unit is connected has the congestion control function based on whether the data received via the first communication unit includes information indicating that the congestion control function is provided, and determines whether the another party's device communicating with the second communication unit has the congestion control function based on whether the data received via the second communication unit includes information indicating that the congestion control function is provided.
4. The communication device according to claim 2 ,
wherein the second determination unit determines whether data congestion is occurring in the another party's device communicating with the second communication unit based on whether a timing of receiving data via the second communication unit is delayed for more than a predetermined time.
5. The communication device according to claim 3 ,
wherein the control unit deletes the information included in the data received via the first communication unit, the information indicating that the congestion control function is provided, and controls the second communication unit to transmit the data from which the information indicating that the congestion control function is provided has been deleted, in a case in which the first determination unit determines that the external device to which the first communication unit is connected has the congestion control function, and that the another party's device communicating with the second communication unit does not have the congestion control function.
6. The communication device according to claim 2 ,
wherein, after transmitting the first control data to the external device via the first communication unit, in a case in which the first communication unit has received, from the external device, second control data indicating that the congestion control function has been exercised, the control unit does not transmit the first control data when transmitting data via the first communication unit.
7. The communication device according to claim 2 ,
wherein, in a case in which the first determination unit determines that the external device to which the first communication unit is connected and the another party's device communicating with the second communication unit have the congestion control function, the control unit transmits data without changing the data, both in a case of transmitting the data received via the second communication unit to the external device to which the first communication unit is connected, and in a case of transmitting the data received via the first communication unit to the another party's device to which the second communication unit is connected.
8. The communication device according to claim 1 , wherein the processing unit includes:
a first token generating unit that generates a token configured with a predetermined data amount;
a first token storing unit that stores the token;
a first detecting unit that detects an amount of tokens stored in the first token storing unit;
a first control unit that determines whether an amount of tokens detected by the first detecting unit has reached a first threshold value, and in a case in which the first control unit determines that the amount of tokens has reached the first threshold value, the first control unit controls such that the data received via the first communication unit is transmitted, for only an amount corresponding to the amount of tokens, to the network via the second communication unit; and
a first determination unit that determines whether the external device to which the first communication unit is connected has the congestion control function against data congestion,
wherein, in a case in which the first control unit determines that an amount of tokens detected by the first detecting unit is no more than a second threshold value, which is smaller than the first threshold value, and the first determination unit determines that the external device to which the first communication unit is connected has the congestion control function, the first control unit adds first control information for activating the congestion control function to data to be transmitted via the first communication unit, and causes the first communication unit to transmit the data.
9. The communication device according to claim 8 , wherein the first determination unit determines whether the device to which the first communication unit is connected has the congestion control function, based on whether the data received via the first communication unit includes second control information indicating that the congestion control function is provided.
10. The communication device according to claim 8 , wherein, in a case in which the first communication unit has received, from the external device connected thereto, data to which third control information has been added, indicating that a congestion window has been reduced, the first control unit deletes the third control information from the data, and transmits the data, from which the third control information has been deleted, to the network via the second communication unit.
11. The communication device according to claim 1 , wherein the processing unit includes:
a second token generating unit that generates a token configured with a predetermined data amount;
a second token storing unit that stores the token;
a second detecting unit that detects an amount of tokens stored in the second token storing unit;
a second control unit that determines whether an amount of tokens detected by the second detecting unit has reached a first threshold value, and in a case in which the second control unit determines that the amount of tokens has reached the first threshold value, the first control unit controls such that the data received via the second communication unit is transmitted, for only an amount corresponding to the amount of tokens, to the network via the first communication unit; and
a second determination unit that determines whether the another party's device on the network side has the congestion control function against data congestion,
wherein, in a case in which an amount of tokens detected by the second detecting unit is no more than a second threshold value, which is smaller than the first threshold value, and the second determination unit determines that the another party's device on the network side has the congestion control function, the second control unit adds fourth control information for activating the congestion control function to the data received via the first communication unit, and causes the second communication unit to transmit the data.
12. The communication device according to claim 11 , wherein the second determination unit determines whether the device on the network side has the congestion control function, based on whether the data received via the second communication unit includes fifth control information indicating that the congestion control function is provided.
13. The communication device according to claim 11 , wherein, in a case in which the second communication unit has received, from the device on the network side, data to which sixth control information has been added, indicating that a congestion window has been reduced, the second control unit deletes the sixth control information from the data, and transmits the data, from which the sixth control information has been deleted, to the external device via the first communication unit.
14. A communication method for a communication device having a first communication unit and a second communication unit, comprising:
a relaying data from an external device connecting via the first communication unit;
a transmitting data received from the first communication unit to a network side via the second communication unit, and data received from the network side to the first communication unit; and
a processing that confirms whether a congestion control function against data congestion is provided to the external device to which the first communication unit is connected and an another party's device on the network side communicating with the second communication unit,
in a case in which any one of the devices has the congestion control function, and congestion is occurring in an other one of the devices, the processing unit transmits control data for activating the congestion control function to the other one of the devices.
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009-077262 | 2009-03-26 | ||
JP2009-077267 | 2009-03-26 | ||
JP2009077267A JP5275107B2 (en) | 2009-03-26 | 2009-03-26 | Communication equipment |
JP2009077262A JP5405870B2 (en) | 2009-03-26 | 2009-03-26 | Communication equipment |
Publications (1)
Publication Number | Publication Date |
---|---|
US20100246400A1 true US20100246400A1 (en) | 2010-09-30 |
Family
ID=42784109
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US12/748,337 Abandoned US20100246400A1 (en) | 2009-03-26 | 2010-03-26 | Communication device and method |
Country Status (1)
Country | Link |
---|---|
US (1) | US20100246400A1 (en) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110075563A1 (en) * | 2009-09-30 | 2011-03-31 | Qualcomm Incorporated | Methods and apparatus for enabling rate adaptation across network configurations |
US20120147750A1 (en) * | 2009-08-25 | 2012-06-14 | Telefonaktiebolaget L M Ericsson (Publ) | Using the ECN Mechanism to Signal Congestion Directly to the Base Station |
US20140016461A1 (en) * | 2011-08-08 | 2014-01-16 | Alaxala Networks Corporation | Packet relay device and method |
US20140086059A1 (en) * | 2011-08-26 | 2014-03-27 | Huawei Technologies Co., Ltd. | Method, Node, and System for Controlling Network Traffic Based on Token Ring |
US9143457B2 (en) | 2010-10-06 | 2015-09-22 | Qualcomm Incorporated | Methods and apparatus for ECN receiver driven congestion control |
US9667548B2 (en) | 2013-11-15 | 2017-05-30 | Alaxala Networks Corporation | Relay apparatus and relay method |
CN108432194A (en) * | 2016-04-28 | 2018-08-21 | 华为技术有限公司 | A kind of method, host and the system of congestion processing |
US20190215276A1 (en) * | 2016-09-20 | 2019-07-11 | Huawei Technologies Co., Ltd. | Congestion control method, apparatus, and system |
US20230269183A1 (en) * | 2022-02-22 | 2023-08-24 | Cortina Access, Inc. | Apparatus and method for managing network flow congestion |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5625622A (en) * | 1995-12-27 | 1997-04-29 | Lucent Technologies Inc. | Apparatus and method for a generalized leaky bucket |
US20050041587A1 (en) * | 2003-08-20 | 2005-02-24 | Lee Sung-Won | Providing information on ethernet network congestion |
US20070133418A1 (en) * | 2005-12-12 | 2007-06-14 | Viasat Inc. | Transmission control protocol with performance enhancing proxy for degraded communication channels |
US7277963B2 (en) * | 2002-06-26 | 2007-10-02 | Sandvine Incorporated | TCP proxy providing application layer modifications |
US7295516B1 (en) * | 2001-11-13 | 2007-11-13 | Verizon Services Corp. | Early traffic regulation techniques to protect against network flooding |
US20080159129A1 (en) * | 2005-01-28 | 2008-07-03 | British Telecommunications Public Limited Company | Packet Forwarding |
-
2010
- 2010-03-26 US US12/748,337 patent/US20100246400A1/en not_active Abandoned
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5625622A (en) * | 1995-12-27 | 1997-04-29 | Lucent Technologies Inc. | Apparatus and method for a generalized leaky bucket |
US7295516B1 (en) * | 2001-11-13 | 2007-11-13 | Verizon Services Corp. | Early traffic regulation techniques to protect against network flooding |
US7277963B2 (en) * | 2002-06-26 | 2007-10-02 | Sandvine Incorporated | TCP proxy providing application layer modifications |
US20050041587A1 (en) * | 2003-08-20 | 2005-02-24 | Lee Sung-Won | Providing information on ethernet network congestion |
US20080159129A1 (en) * | 2005-01-28 | 2008-07-03 | British Telecommunications Public Limited Company | Packet Forwarding |
US20070133418A1 (en) * | 2005-12-12 | 2007-06-14 | Viasat Inc. | Transmission control protocol with performance enhancing proxy for degraded communication channels |
Non-Patent Citations (1)
Title |
---|
K. Ramakrishnan, RFC 3168 - The Addition of Explicit Congestion Notification (ECN) to IP, Netwrok Working Group, September 2001, Standards Track * |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120147750A1 (en) * | 2009-08-25 | 2012-06-14 | Telefonaktiebolaget L M Ericsson (Publ) | Using the ECN Mechanism to Signal Congestion Directly to the Base Station |
US8923115B2 (en) * | 2009-08-25 | 2014-12-30 | Telefonaktiebolaget L M Ericsson (Publ) | Using the ECN mechanism to signal congestion directly to the base station |
US20110075563A1 (en) * | 2009-09-30 | 2011-03-31 | Qualcomm Incorporated | Methods and apparatus for enabling rate adaptation across network configurations |
US9007914B2 (en) * | 2009-09-30 | 2015-04-14 | Qualcomm Incorporated | Methods and apparatus for enabling rate adaptation across network configurations |
US9143457B2 (en) | 2010-10-06 | 2015-09-22 | Qualcomm Incorporated | Methods and apparatus for ECN receiver driven congestion control |
US20140016461A1 (en) * | 2011-08-08 | 2014-01-16 | Alaxala Networks Corporation | Packet relay device and method |
US20140086059A1 (en) * | 2011-08-26 | 2014-03-27 | Huawei Technologies Co., Ltd. | Method, Node, and System for Controlling Network Traffic Based on Token Ring |
US9264363B2 (en) * | 2011-08-26 | 2016-02-16 | Huawei Technologies Co., Ltd. | Method, node, and system for controlling network traffic based on token ring |
US9667548B2 (en) | 2013-11-15 | 2017-05-30 | Alaxala Networks Corporation | Relay apparatus and relay method |
CN108432194A (en) * | 2016-04-28 | 2018-08-21 | 华为技术有限公司 | A kind of method, host and the system of congestion processing |
US20190068503A1 (en) * | 2016-04-28 | 2019-02-28 | Huawei Technologies Co., Ltd | Congestion processing method, host, and system |
EP3442180A4 (en) * | 2016-04-28 | 2019-03-06 | Huawei Technologies Co., Ltd. | Congestion processing method, host, and system |
US10826830B2 (en) * | 2016-04-28 | 2020-11-03 | Huawei Technologies Co., Ltd. | Congestion processing method, host, and system |
US20190215276A1 (en) * | 2016-09-20 | 2019-07-11 | Huawei Technologies Co., Ltd. | Congestion control method, apparatus, and system |
US10862817B2 (en) * | 2016-09-20 | 2020-12-08 | Huawei Technologies Co., Ltd. | Congestion control method, apparatus, and system |
US20230269183A1 (en) * | 2022-02-22 | 2023-08-24 | Cortina Access, Inc. | Apparatus and method for managing network flow congestion |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20100246400A1 (en) | Communication device and method | |
US8451727B2 (en) | Apparatus and method for controlling congestion occurrence in a communication network | |
EP3742690B1 (en) | Data transmission method, computing device, network device and data transmission system | |
US9674095B2 (en) | Communication node | |
JP4708978B2 (en) | Communication system, communication terminal, session relay device, and communication protocol realizing high throughput | |
JP5020076B2 (en) | High performance TCP suitable for low frequency ACK system | |
US7477675B2 (en) | Data communication apparatus | |
EP2109954B1 (en) | Ack prioritization in wireless networks | |
US7724750B2 (en) | Expedited data transmission in packet based network | |
EP1698087B1 (en) | Transparent optimization for tcp flow control | |
US8189532B2 (en) | Mobile node, a method or handover and a computer program | |
US20040192312A1 (en) | Communication system for voice and data with wireless TCP server | |
US7133361B2 (en) | Method and system for improvement of network performance over asymmetic links | |
CN113938945B (en) | Method and device for sending data packet | |
US9686716B2 (en) | Introducing simple RLC functionality to Node B | |
CA3152268A1 (en) | Managing transmission control protocol (tcp) traffic | |
WO2013125109A1 (en) | Communication device and communication system | |
JP5405870B2 (en) | Communication equipment | |
JP2001156795A (en) | Packet flow controller and method | |
US9385931B1 (en) | Determining a reordering timer | |
JP5848956B2 (en) | Communication device | |
JP2006279867A (en) | Adsl communication apparatus, program and method | |
JP5275107B2 (en) | Communication equipment | |
JP2008199431A (en) | Communication device | |
KR101231793B1 (en) | Methods and apparatus for optimizing a tcp session for a wireless network |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: KYOCERA CORPORATION, JAPAN Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:ONISHI, KAZUO;SHIKANAI, HIROSHI;SIGNING DATES FROM 20100405 TO 20100407;REEL/FRAME:024297/0784 |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |