Patent Publication Number: US-8983498-B2

Title: Communication apparatus and method for controlling communication system

Description:
CROSS-REFERENCE TO RELATED APPLICATION 
     This application is based upon and claims the benefit of priority of the prior Japanese Patent Application No. 2012-094778, filed on Apr. 18, 2012, the entire contents of which are incorporated herein by reference. 
     FIELD 
     The embodiment discussed herein is related to a communication apparatus and a method for controlling a communication system. 
     BACKGROUND 
       FIG. 1  depicts an example of a configuration of a radio communication system of LTE (long term evolution). 
     The radio communication system  100  depicted in  FIG. 1  includes, for example, a plurality of radio base stations (eNode B, referred to below as eNB)  300 - 1  to  300 - 3  capable of communicating with a radio terminal as an example of UE (user equipment) via a wireless link, and MME (mobility management entity)/SGW (serving gateway)  200 - 1  and  200 - 2 , which are higher level devices to the eNBs  300 - 1  to  300 - 3 . When the eNB  300 - 1  to the eNB  300 - 3  are not distinguished, they are referred to below as the eNB  300 . When the MME/SGW  200 - 1  and the MME/SGW  200 - 2  are not distinguished, they are referred to as the MME/SGW  200 . 
     In the above radio communication system  100 , communication between the eNB  300  and the MME/SGW  200  is performed via an inter-device interface called the S1 interface. On the other hand, communication between the eNBs  300  is performed via an inter-device interface called the X2 interface. 
     The S1 interface is used to connect between the eNB  300  and the MME/SGW  200  using the IP (Internet protocol) to transfer a signal of a control plane (C-plane) and/or a user plane (U-plane). On the other hand, the X2 interface is used to connect between the eNB  300 - 1 , eNB  300 - 2 , and eNB  300 - 3  using the IP to transfer a signal of a control plane and/or a user plane. 
     One communication protocol used when a control signal is transferred in the S1 interface, X2 interface, or the like is SCTP (Stream Control Transmission Protocol). 
     SCTP is a transport layer communication protocol that avoids duplicate transmission, loss, or the like of a packet as much as possible and enables reliable information transfer by validating a packet on the basis of a sequence number and checksum over the IP. 
     A network entity (also referred to below as a node) with the SCTP function has one or more of logical terminal points called endpoints and establishes a logical connection (SCTP link), which is called an association, with an endpoint of another node. At this time, a node (endpoint) is in one of two states: a client and server. A node in the state of a client is requested to operate as a transmission side of a request for establishing a connection (association) and a node in the state of a server is requested to operate as a reception side of the request. 
     A packet in SCTP includes an SCTP common header and one or more of data blocks called chunks that follow the SCTP common header. There are two types of chunks: a control chunk in which a control signal (message) is stored and a data chunk in which user data is stored. A control chunk is transmitted when, for example, an association is established (initialization: INIT) or released. 
     For example, when an association is established, an INIT chunk, INIT-ACK chunk, COOKIE-ECHO chunk, COOKIE-ACK chunk, or the like is used as a control chunk. On the other hand, when an association is released, a SHUTDOWN chunk, SHUTDOWN-ACK chunk, SHUTDOWN-COMPLETE chunk, or the like is used as a control chunk. 
     Next, an example of a protocol stack of the control plane of the S1 interface in LTE is depicted in  FIG. 2  and an example of a protocol stack of the control plane of the X2 interface in LTE is depicted in  FIG. 3 . 
     As depicted in  FIG. 2 , in the S1 interface, the physical (PHY) layer, data link (MAC: media access control) layer, IP layer, SCTP layer, and S1-AP (application) layer are defined, in order from the lowest layer, as the protocol stack of the control plane. On the other hand, as depicted in  FIG. 3 , in the X2 interface, the physical (PHY) layer, data link (MAC) layer, IP layer, SCTP layer, and X2-AP (application) layer are defined, in order from the lowest layer, as the protocol stack of the control plane. 
     In Internet networks, TCP (transmission control protocol) and UDP (user datagram protocol) are often used as a protocol that provides the function of the transport layer (layer  4 ). These are standard communication protocols used in Internet networks. 
     UDP supports a connectionless service. Therefore, UDP is not used to transfer a message. On the other hand, TCP supports a connection-oriented service. Therefore, TCP allows reliable data transfer. However, a transfer delay may occur and prioritized transfer is not allowed. Accordingly, it is difficult to use TCP for message transfer. 
     On the other hand, SCTP is a highly reliable communication protocol capable of performing congestion control. SCTP has, for example, the following characteristics. 
     (1) SCTP is a message-oriented communication protocol. That is, framing per message is enabled, avoiding missing the structure and order of a datagram. 
     (2) SCTP avoids duplicate transmission of a packet or the like and ensures reliability by validating a packet on the basis of a sequence number and checksum. 
     (3) SCTP is a multihoming-enabled communication protocol that allows one stream to have a plurality of communication paths, so SCTP has an outstanding fault recovery function. 
     In SCTP, a communication connection (association) is established between the transmission side and the reception side of a message to perform communication. 
     An association is different from a TCP connection in that a plurality of separate communication channels (streams) may be logically supported for one association internally. 
     All streams (for example, stream # 01 , stream # 02 , stream # 03 , and stream # 04 ) in an association are independent of each other as illustrated in  FIG. 4 , but these streams are associated with a certain association. Each of the streams is given a stream number (for example, # 01  to # 04 ) and each stream number is encoded in an SCTP packet flowing through the association. 
     In multi-streaming, it is important that a blocked stream does not affect other streams in the association. 
     A stream is assigned for each user and is used when, for example, data of a call connection processing is transmitted or received. 
     As a technique related to SCTP, a method has been proposed in that a message with an urgency higher than urgencies of other communications is preferentially processed in a layer in which streams are controlled. 
     Another method has also been proposed in that data in communication between stations is transmitted depending on the priority. 
     Japanese Laid-open Patent Publication No. 2010-087990 and Japanese Laid-open Patent Publication No. 2011-044800 disclose related techniques. 
     The following non-patent documents also disclose related techniques: L. Ong et al., “An Introduction to the Stream Control Transmission Protocol (SCTP)”, online, Internet (URL: https://www.ietf.org/rfc/rfc3286.txt), May 2002 (searched on Feb. 21, 2012), R. Stewart et al., “Stream Control Transmission Protocol (SCTP) Specification Errata and Issues”, online, Internet (URL: https://www.ietf.org/rfc/rfc4460.txt), April 2006 (searched on Feb. 21, 2012), and R. Stewart, Ed., “Stream Control Transmission Protocol”, online, Internet (URL: https://www.ietf.org/rfc/rfc4960.txt), September 2007 (searched on Feb. 21, 2012). 
     Recently, with the spread of radio terminals such as mobile phones, the number of emergency telephone calls to emergency contact departments such as the police, ambulance, and fire departments from radio terminals is increasing year by year. 
     According to a research by the Tokyo Metropolitan Police Department, the number of emergency telephone calls to the police received from January to November 2010 in Japan is 8,491,285, which is greater than in the same period in 2009 by 236,958 (2.3%). 
     Of 8,491,285 emergency calls above, the number of calls from radio terminals is 5,593,241, which is more than half of the total. 
     In the case of, for example, a disaster or the like, radio base stations may be congested by general calls having a relatively low priority. Since communication that depends on the priority is not defined for communication using SCTP, a delay may occur in processing of emergency calls having a relatively high priority. 
     SUMMARY 
     According to an aspect of the present invention, provided is a method for controlling a communication system. The communication system includes a transmission device and a reception device. In the method, the reception device reports a first size of a free space of a buffer in the reception device to the transmission device. The transmission device controls transmission of first data with a first priority to the reception device based on the first size. The transmission device controls transmission of second data with a second priority lower than the first priority to the reception device based on a threshold less than the first size. 
     The object and advantages of the invention will be realized and attained by means of the elements and combinations particularly pointed out in the claims. 
     It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory and are not restrictive of the invention, as claimed. 
    
    
     
       BRIEF DESCRIPTION OF DRAWINGS 
         FIG. 1  depicts an example of a configuration of a radio communication system of LTE; 
         FIG. 2  depicts an example of a protocol stack of a control plane of the S1 interface; 
         FIG. 3  depicts an example of a protocol stack of a control plane of the X2 interface; 
         FIG. 4  depicts an example of an SCTP association; 
         FIG. 5  depicts an example of a case where an emergency call delays; 
         FIG. 6  depicts an example of a case where an emergency call delays; 
         FIG. 7  depicts an example of a configuration of a communication system according to an embodiment; 
         FIG. 8  depicts an example of a configuration of an eNB depicted in  FIG. 7 ; 
         FIG. 9  depicts an example of a control method according to an embodiment; 
         FIG. 10  depicts relationship among a_rwnd, a_rwnd_em, a_rwnd_nm, and em_buf_min; 
         FIG. 11  depicts an example of a control method according to an embodiment; 
         FIG. 12  depicts an example of a control method according to an embodiment; 
         FIG. 13  depicts an example of dynamic control of a high priority buffer capacity; 
         FIG. 14  depicts an example of a control method according to an embodiment; 
         FIG. 15  depicts an example of a control method according to an embodiment; 
         FIG. 16  depicts an example of a hardware configuration of eNB; and 
         FIG. 17  depicts an example of a hardware configuration of opposing nodes. 
     
    
    
     DESCRIPTION OF EMBODIMENT 
     An embodiment will be described below with reference to the drawings. The embodiment described below is only an example and various modifications and application of techniques that are not indicated clearly by the embodiment are not excluded. That is, the embodiment may be modified if there is no departure from the main spirit of the embodiment. 
     Embodiment 
     Example of Occurrence of Delay in an Emergency Call 
       FIG. 5  depicts an example of a delay in an emergency call. It is assumed that, for example, an SCTP association (communication link) is established between an eNB and an MME that perform call processing control, a plurality of streams (for example, stream # 01 , stream # 02 , stream # 03 , and stream # 04  as illustrated in  FIG. 4 ) are set, and one (for example, stream # 01 ) of the plurality of streams that were set is used for setting control of an emergency call with a priority higher than a priority of a general call. 
     In this case, when a request for setting a general call is transmitted from a UE to the eNB as illustrated in  FIG. 5  (A 1 ), the S1-AP layer and the SCTP layer of the eNB transmit a connection request to the S1-AP layer and the SCTP layer of the MME (A 2 ). 
     At this time, when there is a free space in a reception buffer in the MME, which is an example of an opposing node of the eNB, the MME returns a SACK (selective acknowledgement) response indicating that a free space is present in the reception buffer to the eNB (A 3 ). 
     This establishes a communication path (at least one of streams # 02  to # 04 ) for a general call between the UE and an SGW (A 4 ). 
     At this time, if control (changing the communication type, performing hand over, or the like) for the established general call occurs, the S1-AP layer and the SCTP layer of the eNB transmit a control message to the S1-AP layer and the SCTP layer of the MME (A 5 ). 
     In some cases, there is no free space in the reception buffer in the MME. In such a case, the MME returns a SACK response indicating that no free space is present in the reception buffer to the eNB (A 6 ). 
     Upon receiving the SACK response indicating that no free space is present in the reception buffer from the MME, the eNB detects that the above control has not completed and, after a certain time from the transmission of the above control message, retransmits the control message (A 7 ). 
     When a request for setting an emergency call with a priority higher than a priority of a general call is transmitted from another UE to the eNB (B 1 ), the SCTP layer of the eNB suspends the transmission of the connection request of the emergency call until a free space is generated in the reception buffer in the MME (B 2 ). 
     When a free space is generated in the reception buffer in the MME, the SCTP layer of the MME transmits a SACK response indicating that a free space is present in the reception buffer to the SCTP layer of the eNB (A 8 ). 
     This completes control corresponding to the above control message between the eNB and the MME (A 9 ). 
     Next, the SCTP layer of the eNB detects, based on the SACK response received in A 8 , that a free space has been generated in the reception buffer in the MME, and transmits the connection request of the emergency call to the S1-AP layer and the SCTP layer of the MME (B 3 ). 
     The MME returns a SACK response indicating that a free space is present in the reception buffer to the eNB (B 4 ). 
     This establishes a communication path (stream # 01 ) for an emergency call between the UE and an SGW (B 5 ). Here, the SGW in B 5  is not necessarily the same as the SGW in A 4 . 
     As described above, when the reception buffer in the MME is insufficient, processing of an emergency call may be delayed. 
     Another Example of Occurrence of Delay in an Emergency Call 
       FIG. 6  depicts another example of a delay in an emergency call. As in the above example, it is assumed that, for example, an SCTP association (communication link) is established between the eNB and the MME that perform call processing control, a plurality of streams (for example, stream # 01 , stream # 02 , stream # 03 , and stream # 04  as illustrated in  FIG. 4 ) are set, and one (for example, stream # 01 ) of the plurality of streams that were set is used for setting control of an emergency call with a priority higher than a priority of a general call. 
     When a request for setting a general call is transmitted from a UE to the eNB as illustrated in  FIG. 6  (C 1 ), the S1-AP layer and the SCTP layer of the eNB transmit a connection request to the S1-AP layer and the SCTP layer of the MME (C 2 ). 
     At this time, when there is a free space in a reception buffer in the MME, which is an example of an opposing node of the eNB, the MME returns a SACK response indicating that a free space is present in the reception buffer to the eNB (C 3 ). 
     This establishes a communication path (at least one of streams # 02  to # 04 ) for a general call between the UE and an SGW (C 4 ). 
     At this time, if control (changing the communication type, performing hand over, or the like) for the established general call occurs, the S1-AP layer and the SCTP layer of the eNB transmit a control message to the S1-AP layer and the SCTP layer of the MME (C 5 ). 
     When there is a free space in the reception buffer in the MME, the MME returns a SACK response indicating that a free space is present in the reception buffer to the eNB (C 6 ). 
     However, when the processing power of the MME is insufficient for data processing, the above control message is buffered (C 7 ) and no control processing is performed. 
     At this time, if a request for setting an emergency call with a priority higher than a priority of a general call is transmitted from another UE to the eNB (D 1 ), the S1-AP layer and the SCTP layer of the eNB transmit a connection request of the emergency call to the SCTP layer of the MME (D 2 ). 
     However, when the processing power of the MME is insufficient for data processing, the connection request of an emergency call is buffered as in the above control message (D 3 ) and no connection processing is performed. 
     When the MME becomes able to process the above control message, the SCTP layer of the MME starts processing the above control message (C 8 ) and the control corresponding to the control message is completed (C 9 ). 
     Next, when the MME becomes able to process the above connection request of the emergency call, the SCTP layer of the MME starts processing the above connection request (D 4 ) and, when there is a free space in the reception buffer in the MME, the MME returns a SACK response indicating that a free space is present in the reception buffer to the eNB (D 5 ). 
     This establishes a communication path (stream # 01 ) for the emergency call between the UE and an SGW (D 6 ). Here, the SGW in D 6  is not necessarily the same as the SGW in C 4 . 
     As described above, when available capacity for data processing in the MME is insufficient, the processing of an emergency call may be delayed. 
     Accordingly, in this embodiment, a control method described below is proposed with the object of suppressing occurrence of a delay for data with a relatively high priority. 
     Communication System According to the Embodiment 
       FIG. 7  depicts an example of a configuration of a communication system  1  according to the embodiment. 
     As illustrated in  FIG. 7 , the communication system  1  includes UE  2 , an eNB  3 , an MME  4 , and an SGW  5 , and is connected to a core network  6 . 
     The UE  2  is a radio terminal that wirelessly communicates with the eNB  3 . The UE  2  is a communication apparatus that, for example, the user is able to move and the UE  2  is therefore synonymous with a radio mobile terminal or a mobile station (MS). 
     The UE  2  transmits a request for establishing a call to the eNB  3  when wirelessly communicating with the eNB  3 . The call is, for example, a general call with a relatively low priority or an emergency call with a priority higher than a priority of a general call. 
     The eNB  3  provides a communication service area (radio area) including cells, sectors, and the like and wirelessly communicates with a UE  2  located in this communication service area. In addition, the eNB  3  performs wire communication with another eNB  3  via the X2 interface. In addition, the eNB  3  performs wire communication with the MME  4  and the SGW  5  via the S1 interface. 
     The MME  4  manages the location registration, calling, hand-over, and the like of the UE  2  and the SGW  5  relays user data. 
     The core network  6  is an external network connected to the communication system  1 . The core network  6  has, for example, a PGW (packet data network gateway) and a HSS (home subscriber server). The PGW is a device that is connected to an external network and the HSS is a device that manages user information such as terminal identification numbers. 
     The eNB  3  in this example communicates with the MME  4 , the SGW  5 , or another eNB  3  using the SCTP. 
     That is, the eNB  3  functions as an example of a transmission device that communicates via a communication link established using the SCTP and opposing nodes such as the MME  4  and the SGW  5  function as examples of a reception device that communicates via a communication link established using the SCTP. 
     Example of Configuration of eNB  3   
       FIG. 8  depicts an example of a configuration of the eNB  3 . 
     The eNB  3  depicted in  FIG. 8  includes, for example, an antenna  301 , which transmits and receives a radio signal, and a radio frequency (RF) unit  302 , which performs radio reception processing of a radio signal received by the antenna  301  and performs radio transmission processing of a radio signal to be transmitted from the antenna  301 . 
     In addition, the eNB  3  includes, for example, a digital to analog converter (DAC)  303 , which converts a digital signal to an analog signal, and an analog to digital converter (ADC)  304 , which converts an analog signal to a digital signal. 
     In addition, the eNB  3  includes, for example, a base band (BB) unit  305  and a radio communication control unit  308 . The BB unit  305  includes a transmission unit  306  and a reception unit  307 , and performs base band processing. The radio communication control unit  308  controls radio communication. 
     In addition, the eNB  3  includes, for example, a radio area control unit  309 , a call processing control unit  310 , a network communication control unit  311 , and a wire interface (IF) unit  316 . The radio area control unit  309  controls a radio area including cells, sectors, and the like provided by the eNB  3 . The call processing control unit  310  controls processing of a call set between the eNB  3  and the UE  2 . The network communication control unit  311  controls communication with opposing nodes such as the MME  4  and the SGW  5 . The wire IF unit  316  provides a function of interfacing with opposing nodes such as the MME  4  and the SGW  5 . 
     The network communication control unit  311  includes, for example, a buffer management unit  312 , a data type determination unit  313 , a window size calculation unit  314 , and a processing power estimation unit  315 . 
     The buffer management unit  312  manages availability of the reception buffer in opposing nodes such as the MME  4  and the SGW  5  and, based on the result of management, performs data transmission control. The buffer management unit  312  may perform data transmission control on the basis of the result of estimation by the processing power estimation unit  315  described later. 
     The data type determination unit  313  determines the data type of transmission data. More specifically, the data type determination unit  313  determines, for example, whether transmission data is data related to a general call or data related to an emergency call with a priority higher than a priority of a general call on the basis of information about the type of transmission data specified by the S1-AP layer or X2-AP layer. The result of determination is reported from the data type determination unit  313  to the buffer management unit  312  and this result is used for data transmission control. 
     The window size calculation unit  314  regularly or irregularly calculates the usage condition or availability of the reception buffer in opposing nodes such as the MME  4  and the SGW  5 . More specifically, the window size calculation unit  314  calculates, for example, the usage condition or availability of the reception buffer in the opposing node  4  or  5  on the basis of the Advertised Receiver Window Credit (a_rwnd) reported arbitrarily from opposing nodes such as the MME  4  and SGW  5  and the size of transmission data, and the like. The result of calculation is reported from the window size calculation unit  314  to the buffer management unit  312  and this result is used for data transmission control. 
     The processing power estimation unit  315  estimates available capacity for data processing in opposing nodes such as the MME  4  and the SGW  5 . More specifically, the processing power estimation unit  315  estimates, for example, the available capacity for data processing in the opposing node  4  or  5  on the basis of the transmission data amount, the data transmission interval, and the a_rwnd value reported from the opposing node  4  or  5 . The result of estimation is reported from the processing power estimation unit  315  to the buffer management unit  312  and this result is used for data transmission control. 
     Example of Transmission Control Operation of eNB  3   
     Next, reservation of a buffer for high priority communication (for an emergency call) will be described as an example of transmission control operation of the eNB  3  with reference to  FIG. 9 . 
     When the network communication control unit  311  starts transmission control (S1), the buffer management unit  312  sets a buffer size (minimum guaranteed buffer size: em_buf_min) of the opposing node  4  or  5 , which is the minimum buffer size to be ensured for high priority communication such as an emergency call (S2). The em_buf_min value may be determined based on the frequency of occurrence of an emergency call, the number of occurrences of an emergency call, the data size of an emergency call, and the like. 
     Then, the eNB  3  exchanges (handshakes) control chunks such as an INIT chunk and INIT-ACK chunk with opposing nodes such as the MME  4  and SGW  5  and receives the Advertised Receiver Window Credit (a_rwnd) included in the control chunk from the opposing node  4  or  5  via the antenna  301  via the antenna  301  (S3). The a_rwnd is an SCTP variable in which the transmission side of data stores the size of the reception window obtained by the opposing node  4  or  5  in the latest calculation. The transmission side may grasp the usage condition (availability) of the reception buffer in the opposing node  4  or  5  on the basis of the a_rwnd value. The a_rwnd value may be included in an SACK from opposing node  4  or  5 . In addition, since the SCTP defines that the reception side has to receive at least 1500 bytes for one SCTP packet, the a_rwnd value is equal to or more than 1500 bytes. 
     Next, the buffer management unit  312  compares em_buf_min set in S2 with a_rwnd received in S3 and determines whether a_rwnd is more than em_buf_min (S4). 
     When the buffer management unit  312  determines that a_rwnd is equal to or less than em_buf_min (No in S4), the buffer management unit  312  does not reserve a buffer for high priority communication because the size of the reception buffer in the opposing node  4  or  5  is insufficient for buffering the high priority data such as an emergency call. 
     On the other hand, when the buffer management unit  312  determines that a_rwnd is more than em_buf_min (Yes in S4), the buffer management unit  312  reserves a buffer for high priority communication because the size of the reception buffer in the opposing node  4  or  5  is sufficient for buffering the high priority data such as an emergency call. More specifically, the buffer management unit  312  adopts, for example, the a_rwnd value received in S3 as the size (a_rwnd_em) of a buffer for high priority communication (for an emergency call) and adopts the value obtained by subtracting em_buf_min from a_rwnd_em, as the size (a_rwnd_nm) of a buffer for low priority communication (for general call) (S5). 
     That is, the relationship between the size (a_rwnd) of the current reception window, the size (a_rwnd_em) of a buffer for high priority communication (for an emergency call), the size (a_rwnd_nm) of a buffer for low priority communication (for a general call), and the minimum guaranteed buffer size (em_buf_min) in the opposing node  4  or  5  is depicted in  FIG. 10 . 
     Returning to  FIG. 9  again, the eNB  3  establishes an SCTP association with the opposing node  4  or  5  (S6) and determines whether the size (a_rwnd_em) of a buffer for high priority communication (for an emergency call) was set (S7). 
     When the eNB  3  determines that the size (a_rwnd_em) of a buffer for high priority communication (for an emergency call) was not set, that is, the processing proceeded to No in S4 (No in S7), the eNB  3  ends the processing without reserving a buffer for an emergency call (S9). In this case, the eNB  3  may perform, for example, SCTP transmission control without priority. 
     On the other hand, the eNB  3  determines that the size (a_rwnd_em) of a buffer for high priority communication (for an emergency call) was set, that is, the processing proceeded to Yes in S4) (Yes in S7), the eNB  3  sets any one stream (for example, stream # 01 ) in the SCTP association as a stream for communication for an emergency call (S8) and end the processing (S9). 
     Next, data transmission control to be performed in the SCTP association established as described above will be described with reference to  FIG. 11  and  FIG. 12 . 
     When a transmission opportunity of SCTP data such as a call connection request occurs, the data transmission control starts (S10) and the data type determination unit  313  determines whether the transmission data is data with a relatively low priority (for example, data related to a general call) or data with a relatively high priority (for example, data related to an emergency call) (S11). Determination of a data type is performed based on, for example, information related to the data type specified by the application layer of the eNB  3 . 
     When the transmission data is determined to be data related to a general call (“GENERAL CALL” in S11), the buffer management unit  312  compares the size (a_rwnd_nm) of a buffer for low priority communication (for a general call) with the size (d_size_nm) of this data and determines whether a_rwnd_nm is equal to or more than d_size_nm (S12). 
     When the buffer management unit  312  determines that a_rwnd_nm is equal to or more than d_size_nm (Yes in S12), the buffer management unit  312  transmits the new data chunk related to a general call to the opposing node  4  or  5  because the size of the reception buffer in the opposing node  4  or  5  is sufficient for buffering the low priority data such as a general call (S15). 
     On the other hand, when the buffer management unit  312  determines that a_rwnd_nm is less than d_size_nm (No in S12), the buffer management unit  312  transmits (queues) the new data chunk related to a general call to a transmission queue for a general call and suspends the transmission because the size of the reception buffer in the opposing node  4  or  5  is insufficient for buffering the low priority data such as a general call (S14). 
     When the transmission data is determined to be data related to an emergency call (“EMERGENCY CALL” in S11), the buffer management unit  312  compares the size (a_rwnd_em) of a buffer for high priority communication (for an emergency call) with the size (d_size_em) of this data and determines whether a_rwnd_em is equal to or more than d_size_em (S13). 
     When the buffer management unit  312  determines that a_rwnd_em is equal to or more than d_size_em (Yes in S13), the buffer management unit  312  transmits the new data chunk related to an emergency call to the opposing node  4  or  5  because the size of the reception buffer in the opposing node  4  or  5  is sufficient for buffering the high priority data such as an emergency call (S16). At this time, it is desirable for the new data chunk related to an emergency call and the new data chunk related to a general call not to be joined with each other. 
     On the other hand, when the buffer management unit  312  determines that a_rwnd_em is less than d_size_em (No in S13), the buffer management unit  312  transmits (queues) the new data chunk related to an emergency call to a transmission queue for an emergency call and suspends the transmission because the size of the reception buffer in the opposing node  4  or  5  is insufficient for buffering the high priority data such as an emergency call (S17). The eNB  3  has the transmission queue for a general call separately from the transmission queue for an emergency call in the above example, but one transmission queue may be used for a general call and emergency call. However, it is desirable to have the transmission queue for a general call separately from the transmission queue for an emergency call because of a delay caused by the suspended transmission in the eNB  3 . 
     That is, the buffer management unit  312  performs control for transmitting data (for example, an emergency call) with the first priority on the basis of a size (a_rwnd=a_rwnd_em) of the free space of the reception buffer in the opposing node (reception side)  4  or  5 . The buffer management unit  312  also performs control for transmitting data (for example, a general call) with the second priority, which is less than the first priority, on the basis of the a threshold (a_rwnd_nm) less than the size of the free space of the reception buffer in the opposing node (reception side)  4  or  5 . 
     Following the processing in S14 to S17, the window size calculation unit  314  updates the size (a_rwnd_em) of a buffer for high priority communication (for an emergency call) and the size (a_rwnd_nm) of a buffer for low priority communication (for a general call). More specifically, for example, the window size calculation unit  314  sets, as a new size (a_rwnd_em) of a buffer for high priority communication (for an emergency call), a value obtained by subtracting the size (d_size_em) of transmission data related to an emergency call from the current a_rwnd_em value. The window size calculation unit  314  also sets, as a new size (a_rwnd_nm) of a buffer for low priority communication (for a general call), a value obtained by subtracting the size (d_size_nm) of transmission data related to a general call from the current a_rwnd_nm value (S18). 
     When the eNB  3  receives SACK from the opposing node  4  or  5  (S20), the window size calculation unit  314  updates the a_rwnd value. More specifically, for example, the window size calculation unit  314  sets, as a new a_rwnd value, a value obtained by subtracting the size of transmission data waiting for a response from the a_rwnd value included in the received SACK (S21). 
     The buffer management unit  312  compares em_buf_min set in S2 with the new a_rwnd value set in S21 and determines whether a_rwnd is more than em_buf_min (S22). 
     When the buffer management unit  312  determines that the new a_rwnd set in S21 is equal to or less than em_buf_min (No in S22), the buffer management unit  312  determines that the size of the reception buffer in the opposing node  4  or  5  becomes insufficient for buffering the high priority data such as an emergency call. 
     On the other hand, when the buffer management unit  312  determines that the new a_rwnd value set in S21 is more than em_buf_min (Yes in S22), the buffer management unit  312  determines that the size of the reception buffer in the opposing node  4  or  5  is sufficient for buffering the high priority data such as an emergency call. 
     In this case, the buffer management unit  312  updates the size (a_rwnd_em) of a buffer for high priority communication (for an emergency call) with the new a_rwnd value set in S21 and updates the size (a_rwnd_nm) of a buffer for low priority communication (for a general call) with a value obtained by subtracting em_buf_min from the a_rwnd_em value (S23). 
     Next, the buffer management unit  312  determines whether the size (a_rwnd_em) of a buffer for high priority communication (for an emergency call) was set (updated) (S24). 
     When the buffer management unit  312  determines that the size (a_rwnd_em) of a buffer for high priority communication (for an emergency call) was not set, that is, the processing proceeded to No in S22 (No in S24), the eNB  3  releases the reserved one (for example, stream # 01 ) of the streams in the SCTP association that were set for communication for an emergency call (S26) and ends the processing (S27). As a result, one (for example, stream # 01 ) of the streams in the SCTP association that were set for communication for an emergency call may be used for communication for a general call. 
     On the other hand, when the buffer management unit  312  determines that the size (a_rwnd_em) of a buffer for high priority communication (for an emergency call) was set, that is, the processing proceeded to Yes in S22 (Yes in step S24), the eNB  3  sets one (for example, stream # 01 ) of the streams in the SCTP association again for communication for an emergency call (S25) and ends the processing (S27). 
     As described above, in this example, communication control that depends on the priority is enabled in communication using SCTP. More specifically, for example, the buffer full state caused by a general call may be avoided by suppression of the frequency of data transmission for a general call. In addition, the processing delay of an emergency call is suppressed by giving a higher priority to data transmission processing of an emergency call than to data transmission processing of a general call. 
     Dynamic Control of a_rwnd_nm and em_buf_min 
     As illustrated in  FIG. 10 , the values of a_rwnd_em, a_rwnd_nm, and em_buf_min are set during establishment of an SCTP association in this example. When, for example, an emergency call occurs frequently, a reserved buffer of the minimum guaranteed buffer size (em_buf_min) for high priority communication (for an emergency call) may be immediately used up. 
     On the other hand, if a large part of the reception buffer in the opposing node  4  or  5  is assigned as a buffer of the minimum guaranteed buffer size (em_buf_min) for high priority communication (for an emergency call), the size (a_rwnd_nm) of a buffer for low priority communication (for a general call) becomes insufficient. 
     Accordingly, for example, the number of occurrences of high priority signaling such as an emergency call and the number of occurrences of low priority signaling such as a general call are measured for a certain period and, based on the result of the measurement, the size (a_rwnd_nm) of a buffer for low priority communication (for a general call) may be increased or decreased dynamically. 
     More specifically, for example, the buffer management unit  312  measures the number of occurrences of a general call and the number of occurrences of an emergency call at regular time intervals. Then, the buffer management unit  312  dynamically sets the values of a_rwnd_em, a_rwnd_nm, and em_buf_min so that the ratio between a_rwnd_nm and em_buf_min equals the ratio between the number of occurrences of a general call and the number of occurrences of an emergency call. 
     However, when a_rwnd_nm calculated as described above satisfies the expression “a_rwnd−a_rwnd_nm&lt;(the first set value of the em_buf_min)”, it is desirable that the first set value of em_buf_min is reserved by setting a_rwnd_nm so that the expression “a_rwnd_nm=a_rwnd_em−(the first set value of the em_buf_min)” is satisfied. 
     An example of the above dynamic control will be described in  FIG. 13 . 
     As illustrated in  FIG. 13 , this example is able to manage the buffer dynamically depending on the number of occurrences of a general call and the number of occurrences of an emergency call while keeping the em_buf_min value that was set first, thereby enabling more flexible communication control. 
     Another Example of Transmission Control Operation of eNB  3   
     Next, estimation of the available capacity for data processing in the opposing node  4  or  5  will be described as an example of another example of transmission control operation of the eNB  3  with reference to  FIG. 14 . 
     When processing is started on, for example, a start of establishment of an SCTP association (S30), the eNB  3  obtains the a_rwnd value included in an INIT-ACK chunk transmitted from the opposing node  4  or  5  (S31). 
     In addition, the processing power estimation unit  315  of the eNB  3  records the reception time of the a_rwnd value (S32). 
     When the eNB  3  receives a data transmission request from the UE  2  (S33), the processing power estimation unit  315  of the eNB  3  records accumulated value of the transmission data size (S34). 
     Then, according to the transmission request from the UE  2 , the eNB  3  transmits data to the opposing node  4  or  5  (S35), receives SACK from the opposing node  4  or  5  (S36), and extracts the a_rwnd value included in the received SACK (S37). The extracted a_rwnd value is reported to the processing power estimation unit  315 . 
     In addition, the processing power estimation unit  315  of the eNB  3  records the reception time of the above SACK (S38). 
     Then, the processing power estimation unit  315  estimates available capacity for data processing in the opposing node  4  or  5  (S39). More specifically, for example, the processing power estimation unit  315  estimates the available capacity for data processing in the opposing node  4  or  5  on the basis of the amount of transmission data, the data transmission interval, and the a_rwnd value reported from the opposing node  4  or  5 . 
     As an example, the processing power estimation unit  315  may estimate the available capacity for data processing in the opposing node  4  or  5  on the basis of the following expression (1).
 
 X =( A+B )/ T   (1)
 
     In the above expression (1), X represents the available capacity for data processing per unit time in the opposing node  4  or  5 , A represents the total amount of transmission data between the reception time of the previous a_rwnd and the reception time of the current a_rwnd, B represents the difference between the previous a_rwnd and the current a_rwnd, and T represents the difference between the reception time of the previous a_rwnd and the reception time of the current a_rwnd. The result of this estimation is reported from the processing power estimation unit  315  to the buffer management unit  312 . 
     When the eNB  3  receives a new data transmission request from the UE  2  (S40), the buffer management unit  312  determines whether the size of transmission data is equal to or less than a product (result of multiplication) of the available capacity for data processing per time unit in the opposing node  4  or  5  estimated in S39 and the elapsed time from the previous data transmission (S41). 
     When the buffer management unit  312  determines that the size of transmission data is equal to or less than the product of the available capacity for data processing per time unit in the opposing node  4  or  5  estimated in S39 and the elapsed time from the previous data transmission (Yes in S41), the buffer management unit  312  transmits all the data specified by the transmission request from the UE  2  (S42) and ends the processing (S44). 
     On the other hand, when the buffer management unit  312  determines that the size of transmission data is more than the product of the available capacity for data processing per time unit in the opposing node  4  or  5  estimated in S39 and the elapsed time from the previous data transmission (No in S41), the buffer management unit  312  transmits, to the opposing node  4  or  5 , a part of data of the size equivalent to the product of the available capacity for data processing per time unit in the opposing node  4  or  5  estimated in S39 and the elapsed time from the previous data transmission (S43) and ends the processing (S44) without transmitting the remaining data. The data that was not transmitted may be transmitted at the next transmission timing. 
     That is, the buffer management unit  312  performs data transmission control on the basis of the available capacity for data processing in the opposing node (reception side)  4  or  5  estimated based on the size of the free space of the reception buffer in the opposing node (reception side)  4  or  5  and a size of data which has been transmitted to the opposing node (reception side)  4  or  5 . 
     An example of the above transmission control is depicted in  FIG. 15 . 
     When three pieces of data were transmitted for six seconds and the reported a_rwnd value indicates that the free space equivalent to two pieces of data increased in the reception buffer in the opposing node  4  or  5  as illustrated in  FIG. 15 , the processing power estimation unit  315  estimates that the opposing node  4  or  5  is able to process five pieces of data for six seconds. That is, the processing power estimation unit  315  estimates the available capacity for data processing per time unit in the opposing node  4  or  5  to be approximately 0.83 (=5/6) (pieces/second). 
     When 12 pieces of data have to be transmitted for the next 17 seconds, the eNB  3  is able to transmit all of the 12 pieces of data to the opposing node  4  or  5 , since the previously estimated available capacity for data processing per time unit in the opposing node  4  or  5  multiplied by 17 seconds equals approximately 14.17 pieces of data. 
     If the reported a_rwnd indicates that the free space equivalent to five pieces of data decreased in the reception buffer in the opposing node  4  or  5  as a result of this transmission, the processing power estimation unit  315  estimates that the opposing node  4  or  5  is able to process seven (=12−5) pieces of data for 17 seconds. That is, the processing power estimation unit  315  estimates the available capacity for data processing per time unit in the opposing node  4  or  5  to be approximately 0.41 (=7/17) pieces/second. 
     When five pieces of data have to be transmitted for the next eight seconds, the eNB  3  transmits three of five pieces of data to the opposing node  4  or  5  and suspends the transmission of two pieces of data, since the previously estimated available capacity for data processing per time unit in the opposing node  4  or  5  multiplied by eight seconds equals approximately 3.29 pieces of data. 
     Since this example controls the amount of transmission data on the basis of the result of estimation of the processing power of the opposing node  4  or  5 , occurrence of a processing delay in the opposing node  4  or  5  is suppressed. As a result, an emergency call may be processed immediately. 
     Example of Hardware Configuration 
       FIG. 16  depicts an example of a hardware configuration of the eNB  3 . 
     As depicted in  FIG. 16 , the eNB  3  includes, for example, an antenna  31 , a wireless IF unit  32 , a base band processing unit  33 , a processor  34 , a memory  35 , and a wire IF unit  36 . 
     The wireless IF unit  32  is, for example, an interface device that wirelessly communicates with the UE  2  via the antenna  31 . The base band processing unit  33  is a circuit that applies a certain base band processing to a radio signal received by the antenna  31  and the wireless IF unit  32  and applies a certain base band processing to a signal to be transmitted via the antenna  31  and the wireless IF unit  32 . The base band processing unit  33  includes, for example, an LSI (large scale integration), an FPGA (field programmable gate array), and the like. The processor  34  is a device that processes data. The processor  34  includes, for example, a CPU (central processing unit), a DSP (digital signal processor), and the like. The memory  35  is a device that stores data. The memory  35  includes, for example, a ROM (read-only memory), a RAM (random access memory), and the like. The wire IF unit  36  is an interface device that performs wire communication with a network (a so-called backhaul network) on the core network  6  side of the communication system  1 . 
     The correspondence between components of the eNB  3  illustrated in  FIG. 8  and components of the eNB  3  illustrated in  FIG. 16  will be described below, for example. 
     The antenna  31  corresponds to, for example, the antenna  301 . The wireless IF unit  32  corresponds to, for example, the RF unit  302 , the DAC  303 , and the ADC  304 . 
     The base band processing unit  33  corresponds to, for example, the BB unit  305 , the transmission unit  306 , and the reception unit  307 . The processor  34  and the memory  35  correspond to, for example, the radio communication control unit  308 , the radio area control unit  309 , the call processing control unit  310 , the network communication control unit  311 , the buffer management unit  312 , the data type determination unit  313 , the window size calculation unit  314 , and the processing power estimation unit  315 . 
     In addition, the wire IF unit  36  corresponds to, for example, the wire IF unit  316 . 
     That is, the antenna  31  functions as an example of a reception unit that receives information about the size of the free space of the reception buffer on the reception side. The processor  34  functions as an example of a processor that performs control for transmitting data with the first priority based on the size of the free space of the reception buffer on the reception side and performs control for transmitting data with the second priority, which is lower than the first priority, based on a threshold less than the size of the free space of the reception buffer. 
     The processor  34  also functions as an example of a processor that performs data transmission control based on the available capacity for data processing on the reception side, which is estimated based on the size of the free space of the reception buffer on the reception side and the size of data which has been transmitted to the reception side. 
       FIG. 17  depicts an example of a hardware configuration of the opposing node  4  or  5 . 
     As depicted in  FIG. 17 , the opposing node  4  or  5  includes, for example, a processor  41 , a logic circuit  42 , a memory  43 , and a wire IF unit  44 . 
     The processor  41  is a device that processes data. The processor  41  includes, for example, a CPU, a DSP, and the like. The logic circuit  42  is an electronic circuit that performs logical operation. The logic circuit  42  includes, for example, an LSI, an FPGA, and the like. The memory  43  is a device that stores data. The memory  43  includes, for example, a ROM, a RAM, and the like. The wire IF unit  44  is an interface device that performs wire communication with the eNB  3 . 
     That is, the memory  43  functions as an example of the reception buffer and the wire IF unit  44  functions as an example of a transmission unit that reports the size of the free space of the reception buffer in the opposing node  4  or  5  to the eNB (transmission device)  3 . 
     Others 
     The components and functions of the eNB  3  and the opposing node  4  or  5  in the above embodiment may be selected or may be combined as appropriate. That is, the above components and functions may be selected or combined as appropriate to achieve the functions of the embodiment. 
     In addition, a general call is adopted as an example of data with a relatively low priority and an emergency call is adopted as an example of data with a relatively high priority in the example described above, but these priorities may be changed by, for example, the user, system administrator, or the like. Accordingly, it will be appreciated that the embodiment is not limited to the above example. 
     In addition, the embodiment has been described using an example in which the communication control in this example is applied between the eNB  3  and the opposing node  4  or  5  in the above example, but the embodiment may be applied between other devices that communicate with each other using SCTP. Accordingly, it will be appreciated that the embodiment is not limited to the above example. 
     A computer (including a CPU, information processing apparatus, and various types of terminal equipment) may achieve the above functions operating as the eNB  3  by executing a program. 
     That is, the above program is an exemplary program that causes a computer incorporated in a communication apparatus that communicates via a communication link established using SCTP to perform control for transmitting data with the first priority on the basis of the size of the free space of the reception buffer on the reception side and to perform control for transmitting data with the second priority, which is lower than the first priority, on the basis of a threshold less than the size of the free space of the reception buffer. 
     In addition, the above program is an exemplary program that causes a computer incorporated in a communication apparatus that communicates via a communication link established using SCTP to estimate the available capacity for data processing on the reception side on the basis of the size of the free space of the reception buffer on the reception side and the size of data which has been transmitted to the reception side and to perform data transmission control on the basis of the result of the estimation. 
     The above program may be stored in and provided, for example, in the form of a computer-readable recording medium such as a flexible disk, CD (compact disc) including CD-ROM, CD-R (CD recordable), CD-RW (CD-ReWritable), and the like, DVD (digital versatile disk) including DVD-ROM, DVD-RAM, DVD-R, DVD-RW, DVD+R (DVD plus R), DVD+RW (DVD plus RW), and the like, etc. In this case, the computer uses the above program by reading it from such a recording medium and transferring it to and storing it in an internal storage device or external storage device. The program may be recorded in a storage device (recording medium) such as, for example, a magnetic disk, optical disk, or magnetic optical disk so that the program in the storage device is provided for the computer via a communication line. As the recording medium, in addition to the above flexible disk, CD, DVD, magnetic disk, optical disk, and magnetic optical disk, it is possible to use computer-readable media such as an IC (integrated circuit) card, ROM cartridge, magnetic tape, punch card, internal storage device (memory such as a RAM or ROM) or external storage device etc. of a computer, or printed matter or the like on which a code such as a barcode is printed. 
     In addition, a computer represents a concept including hardware and OS (operating system) on which the hardware operates. In such a case where only a program drives hardware without using an OS, the hardware corresponds to a computer. Hardware includes at least a processor such as a CPU and a reader that reads a computer program recorded in a recording medium. 
     The above program further includes a program code that causes a computer as described above to achieve the function operating as eNB  3 . An OS may cause a computer to achieve a part of the function. 
     All examples and conditional language recited herein are intended for pedagogical purposes to aid the reader in understanding the invention and the concepts contributed by the inventor to furthering the art, and are to be construed as being without limitation to such specifically recited examples and conditions, nor does the organization of such examples in the specification relate to a showing of the superiority and inferiority of the invention. Although the embodiment of the present invention has been described in detail, it should be understood that the various changes, substitutions, and alterations could be made hereto without departing from the spirit and scope of the invention.