Abstract
With the wide spread of Internet of Things, efficient communication between the nodes is getting more important. Constrained Application Protocol was developed to accommodate the resource-constrained nodes and low-power communication links. Being an Internet protocol, Constrained Application Protocol must adhere to congestion control, primarily to keep the backbone network stable. An advanced congestion control mechanism for Constrained Application Protocol, called Congestion Control/Advanced, has also been recently developed. In this article, we propose a new round trip time–based adaptive congestion control scheme, which further improves Congestion Control/Advanced by utilizing the retransmission count in estimating the retransmission timeout value and the lower bound in round trip time variation. An experiment is conducted based on Californium Constrained Application Protocol framework and real devices, and the performance is compared with Constrained Application Protocol, Congestion Control/Advanced, and an existing scheme. It reveals that the proposed scheme significantly increases the throughput and rate of successful transactions in comparison with the other schemes. The approach of utilizing the option field of Constrained Application Protocol enables the proposed scheme to be implemented without any conflict with the existing protocol and extra overhead.
Keywords
Introduction
Internet of Things (IoT) is a prevalent paradigm conceived to interconnect a large number of devices including sensors. Here, various objects are connected together to deliver customized ubiquitous services. Typically, the nodes have small battery and operate in the presence of lossy and noisy communication links.1–3 The Internet Engineering Task Force (IETF) has been focusing on the standardization of different aspects of the communication protocol stack trimmed to fit the requirements of constrained devices. Constrained Application Protocol (CoAP) is the protocol designed in this end.4,5
CoAP is defined in a standard Request for Comments (RFC) 6 managed by a working group of IETF and uses the same RESTful principle as HTTP. It is, however, much lighter to be run on constrained devices.7,8 The base specification of CoAP adopts conservative value for the number of open requests, retransmission time, and transmission rate. The CoAP interaction is based on client–server model and handled asynchronously over a datagram transport such as User Datagram Protocol (UDP). A client sends a request specified by a method (GET, PUT, POST, or DELETE) on the resource (identified by URI) of the server. The CoAP server processes the requests and sends back a message containing the response code and payload.
One of the most important constraints on IoT is resource restriction of the nodes. The storage capacity and processing speed are limited, easily causing network congestion.9,10 To cope with this issue, CoAP RFC defines a congestion control mechanism, which doubles the retransmission timeout (RTO) value when timeout occurs. Currently, the network manager sets up the RTO value manually.
Congestion Control/Advanced (CoCoA)11,12 uses the round trip time (RTT) to set the RTO value automatically. CoCoA is effective when the packet transmission time increases linearly. Early research shows that its performance is better than CoAP in congested networks.13,14 Note that proper setting of RTO value is difficult especially during congestion, in which the congestion control scheme of CoCoA based on the actual RTT can display more effect. However, CoCoA still has a limitation in selecting a proper RTO value when burst traffic exists. This is because it cannot correctly identify the RTT of retransmitted request–response, which is essential in deciding the RTO value. Also, unnecessary retransmission might be needed for the measurement of RTO when RTT is small. 15
The main hurdle in observing the RTT of the retransmitted packet is the unavailability of the information required for identifying the origin of the response packet. This ambiguity was also discussed in Karn’s algorithm, 16 but CoCoA uses fixed RTO even for the retransmitted packet. To resolve this problem, we propose an advanced congestion control mechanism for CoAP by utilizing the retransmission count (RC) of the request packet. The proposed scheme uses the RC information to estimate the actual RTT by matching the request and response packet. The estimated RTT is then used to set up the RTO value with which the network congestion problem can be effectively handled. Another contribution of the proposed scheme is applying the lower bound to the variation in RTT, which effectively handles the fluctuation of RTT in relatively small range. In order to analyze the effectiveness of the proposed scheme, analytical model of it and CoAP have been developed. Also, an experiment is carried out which reveals that the proposed scheme can effectively increase the throughput of the network and reduce retry rate in comparison with CoAP and CoCoA. With 100 clients, the proposed scheme allows about 150% and 50% higher throughput than CoAP and CoCoA, respectively. The proposed approach utilizes the option field of the message of CoAP, and thus, it can be implemented without any conflict with the existing protocol or extra overhead.
The rest of the article is organized as follows. Section “Related work” provides an overview of the control mechanism for CoAP and CoCoA. In sections “The proposed scheme,” a new method for dynamic congestion control is proposed. Also, analytical model of the proposed scheme and CoAP are presented. Section “Performance evaluation” gives the performance evaluation of the proposed scheme in various operation scenarios and compares it with CoAP/CoCoA using open-source library and real IoT device implemented with Raspberry Pi. Finally, section “Conclusion” concludes the article and outlines future research direction.
Related work
CoAP is the communication protocol developed for constrained network of low-power and lossy environment. CoAP provides a request–response interaction model between the endpoints of the application. Here, Confirmable (CON) or Non-confirmable (NON) message is used for carrying the request. The response is carried in the Acknowledgement (ACK) message which includes the ID of the request message. CoAP RFC defines this flow as “Piggybacked Response.” 6 Based on this communication model, CoAP provides a default congestion control mechanism.
Message format of CoAP
CoAP provides RESTful functions such as HTTP, but it is much lighter to be used with constrained devices. 17 It employs a lightweight protocol structure, and the messages are encoded in a simple binary format consisting of Header, Option field, and Payload. Figure 1 shows the format of CoAP message.

The format of CoAP message.
As shown in Figure 1, a CoAP message is started with a 4-byte header. Here “V” denotes the version, “T” the type, and “TKL” the token length in fixed size, respectively. The detail information of each field is given in Table 1.
CoAP header.
CoAP: Constrained Application Protocol.
Other fields are optional except the header. The “Token” field is used for correlating the request and response, and the “Option” field is used for handling the communication. At the end of the Option field, there is 1 byte 0xFF value payload marker used as a separator between the Option and “Payload” field.
The Option field takes an important role in the proposed scheme, which was set aside to support flexible communication. It consists of Option delta, Option length, extended Option delta, extended Option length, and Option value. The CoAP RFC defines the Options as follows. Option delta is used for identifying the Option numbers, while Option length determines the length of the subsequent Option value. The length and format of the Option value depend on the definition of each Option. An example of Option field is the content-format which represents the format of the data of the payload. The Option number of the content-format is 12, the Option length is 0–2 bytes, and the Option value is unsigned integer.
Default congestion control of CoAP
In low-power and lossy network environment, it is common that unexpected packet loss or packet delay occurs. 18 To handle these problems, CoAP provides basic congestion control based on exponential backoff mechanism. After transmitting the CON message, if the sender does not receive an ACK before RTO expires, CON message is retransmitted. The format and data of the retransmitted message are the same as the initial one, while the RTO value is doubled and RC is incremented. The sender keeps retransmitting the CON message until the RC reaches MAX_RETRANSMIT, for which the default value is 4. CoAP also provides a modifiable option for RTO setup.
The initial RTO value is randomly set between ACK_TIMEOUT and ACK_RANDOM_FACTOR× ACK_TIMEOUT, with a default value of 2 s. Figure 2 shows the default congestion control mechanism adopted by CoAP. Normally, the client sends CON right after receiving the ACK message, which means that the interval of CON is the same as RTT. If congestion occurs, the interval is increased until the client receives ACK message. Because the default congestion control scheme doubles the RTO value each time, the client may need to retransmit CON several times until right RTO value is found. In the worst-case scenario, the client retransmits packet whenever the RTO value is less than RTT. The shortcoming of the default scheme is that the RTO value is not set automatically but by network manager. If a wrong RTO value is selected, some packets might be retransmitted unnecessarily.

The default congestion control of CoAP.
CoCOA
To dynamically cope with the variation in the network condition, the RTO value needs to be adjusted considering the RTT of the packet. For dynamic congestion control, the IETF Constrained RESTful Environments (CoRE) working group released the draft specification of CoAP Simple CoCoA. CoCoA provides a scheme for estimating the RTO value for CON request using the RTT information. CoCoA considers two types of RTO estimator based on the algorithm defined in RFC 6298: 19
Strong estimator: for packet exchanges without before retransmission, the actual RTT is used.
Weak estimator: for retransmission, the time between initial request and received response is used.
Recent research on the CoAP20,21 uses equations (1)–(3) in the estimation of RTO with CoCoA. Here, X stands for the strong or weak estimator
CoCoA sets α to 0.25. When a new RTT value, RTTX_new, is obtained, the next RTT value is calculated using equation (1).RTTVARX is the variation in RTT defined in RFC 6298
Here, β is set to 0.125 by CoCoA. RTTx and RTTVARx are used to update RTOx by equation (3)
Kx is the weight associated with the estimator, and it is Kstrong = 4 and Kweak = 1. CoCoA calculates the overall RTO, RTOoverall, as follows
In CoCoA draft, the response after third retransmission is not used to update the estimated value. This is because it is not known whether the response is for the initial transmission or retransmission.
The RTO value cannot be calculated until the sender receives a response packet. When timeout occurs, CoCoA uses variable backoff factor (VBF) to set up the RTO value, which is also based on RFC6298. It is to make the interval regular
CoCoA calculates the retransmission RTO using equation (6). Here, VBF is 3 when RTOoverall is under 1 s, 2 between 1 and 3 s, or 1.5 higher than 3 s. Figure 3 depicts the overall flow of congestion control of CoCoA. During the normal condition, RTO is updated using RTOstrong estimator and original RTT. If a packet is retransmitted once, RTOweak estimator is used with the estimated RTT. If retransmission occurs more than twice, RTO is not updated. This policy works well with linearly increasing traffic, but not for burst traffic. A research improves CoCoA by modifying the weak estimator with different weight values of RTT. 22

The flow of congestion control of CoCoA.
When the number of incoming packets increases rapidly, the overall processing time is delayed and the RTT of each packet increases unexpectedly. Note that the processing time of resource-constrained device is significantly influenced by the number of incoming requests causing several retransmissions of the request. In this case, CoCoA avoids RTO update because CoAP cannot tell whether the response packet is for the original request or not. The right-hand side of Figure 3 shows the flow of congestion control of CoCoA with burst traffic.
Another problem with CoCoA is redundant retransmissions when the RTT is small. As shown in equations (1)–(6), the calculated RTO of CoCoA is close to the actual RTT with the margin, RTTVAR. In the case of small RTT, however, the calculated RTO is almost the same as the original RTT. Note that RTT usually fluctuates even when the network is stable.23,24 Therefore, the probability of redundant retransmission increases if the RTT value is small. Burst traffic is generated when unexpected events occur in a monitoring system, for example, while non-burst traffic is generated during normal routine operation. The proposed scheme effectively enhancing CoCoA is presented next.
The proposed scheme
In this section, we present the proposed scheme which dynamically updates RTO based on packet matching and the lower bound on RTTVAR. The proposed scheme utilizes RC to correctly estimate the RTT of every packet of burst traffic. In addition, the lower bound is applied to RTT to handle the fluctuation even in stable network condition. The adopted approaches effectively improve the accuracy of RTO estimation, and as a result enhance the performance of CoAP.
Overview
In section “Related work,” the issues of congestion control with CoAP were introduced. The proposed scheme improves the congestion control mechanism of CoCoA by applying the following features:
Insertion of RC of a packet to the Option field;
Dynamic RTO update with packet matching based on RC;
Elimination of RTOweak estimator of CoCoA;
Application of the lower bound on RTTVAR for RTO update of stable network.
Figure 4 shows the flow of RTO update with the proposed scheme. When the RTO value is smaller than RTT of a packet, the client retransmits the request. After receiving the response, it measures the RTT by matching the RC of the request and response packet. Here, RTOobserve estimator is used to adjust RTO. While updating RTO based on the RTT, a lower bound in the variation of RTT is imposed to cover the fluctuation of RTT. In the proposed scheme, the estimator can be used for handling multiple retransmitted packets because the matching process is based on RC used as a unique identifier of every packet.

The flow of RTO update of the proposed scheme.
Estimation of RTO
The main difficulty of CoAP in obtaining the RTT of the retransmitted packet is the lack of the information on the origin of the response packet. When a request is retransmitted, it has the same message ID and data as the initial one. Also, the response packet generated by the piggyback method has the same message ID as the request.
Figure 5 compares the transaction of default CoAP with the proposed scheme. Figure 5(a) shows that Device A with default CoAP cannot obtain the correct RTT because there is no information in the final ACK packet which is a response of the second CON request. To identify the origin of a request packet, the RC is used in the proposed scheme as shown in Figure 5(b). Observe from the figure that when retransmission occurs at Device A, RC is put in the request packet. Device B generates ACK packet with the copied RC using the piggyback mechanism. If timeout occurs for a packet, the count value of the first retransmitted CON request is 1. While Device B is sending an ACK packet, another timeout occurs at Device A. The count value of the second retransmitted request is 2. When Device A receives an ACK packet, it contains the RC copied from the original request. By comparing the transmission time of CON and reception time of ACK of the same count value, Device A can obtain the correct RTT of the packet.

The flow of retransmission in congested network: (a) default CoAP transaction and (b) proposed scheme transaction.
To minimize the operation overhead, the insertion occurs only with retransmitted request. Equation (7) is for the calculation of RTT with the proposed scheme
For properly reflecting the network condition in the estimation of RTT, the previous RTT and the currently observed RTT value are combined. Here, the weight value α is set to 0.25 by following the guideline of CoCoA. RTTx_new is decided by matching the request and response packet based on the count value.
Another shortcoming of CoCoA exists with small RTT in which the effect of RTO estimation is reduced. As shown in equation (3), the RTO value is decided by RTT and RTTVAR with CoCoA. The RTTVAR value depends on the RTT value as described in equation (2). Therefore, small size RTT leads shrunk RTO which cannot cover the entire range of fluctuation in RTT. Figure 6(a) depicts the problem of CoCoA with small RTT.

The two schemes of RTO update with small size RTT: (a) CoCoA and (b) proposed scheme.
To avoid excessively shrunk RTO causing uncovered RTT, a lower bound is adopted for RTTVAR. In the communication of typical wireless sensor network, RTTs of the packets fluctuate with a similar range. The range varies according to the structure of the network, and thus, the lower bound is decided when the network is given. Figure 6(b) shows how the lower bound is used with the proposed scheme
The calculation of the lower bound starts from adjusting the RTT value as equation (8). Here, β is set to 0.125. RTTx and RTTVARx are used to update the RTO value
Equation (9) shows how the lower bound, L, is applied. RTTVARx is multiplied by the weight variable, K. Note that the proposed scheme eliminates the weak estimator because it does not need to calculate RTT, and thus, K is fixed to 4. The value is then compared with the lower bound, and the larger one is decided as the final RTTVAR which is added to RTTx to get the RTO value.
For final RTO update, the mechanism employed by CoCoA is used with RTOobserve estimator even when an ACK packet is received after retransmission occurs. Also, VBF is used for RTO during retransmission. As a result, the RTO estimation model is similar to RTOstrong estimator of CoCoA. Eliminating RTOweak estimator also reduces the resource required for the communication
In equation (10), RTOp is the RTO estimation model of the proposed scheme. Equation (11) is the RTO for retransmission, RTOre. Since the model is the same as CoCoA specification, the proposed scheme does not cause any conflict.
RC
The option field of CoAP is utilized with the proposed scheme for avoiding any implementation overhead. Note that the operation of the proposed scheme is based on the congestion control of CoCoA. In order to put the RC, the option registry policy described in CoAP RFC 7252 is used. Table 2 shows the properties of the RC option of the proposed scheme. Here, C, U, N, and R indicate the property of Critical, Unsafe, NoCachKey, and Repeatable, respectively. With this option, the proposed scheme readily generates the request and response packet containing RC. Figure 7 shows an example of a transaction message.
The properties of retransmission count option.

The request and response message with RC.
RC is not used if retransmission does not occur because it is used only for the retransmitted packet. Utilizing the count information will also be effective for handling unexpected delay and loss.
Implementation
The proposed scheme is pluggable to CoAP protocol stack without changing any operational mechanism. It has three main features: (1) extraction of the actual RTT of the retransmitted packet, (2) estimation of RTO by properly reflecting the change in network condition, and (3) application of the lower bound to the variation in RTT to avoid overly shrunk RTO. The proposed scheme starts to measure RTT when the client sends a request message to the server. If the client does not receive a response until RTO expires, the client updates RTO using equation (11) and retransmits the request. After receiving the response message, RTO is updated. The entire scheme is summarized in the following, and Table 3 lists the variables used in the scheme.
The notation used in the proposed scheme.
RTT: round trip time; RTO: retransmission timeout.
Initialization stage
In this stage, CoAP sets up the RTO value by randomly selecting a value between ACK_TIMEOUT and ACK_TIMEOUT × f (f ≥ 1). Here, f is the ACK_RANDOM_FACTOR which is described in CoAP RFC.
RTT measurement stage
Here, the client transmits a request message and waits for the response. During this transaction, RC is put in the retransmitted packet. After receiving the response, the client calculates RTT by matching the message ID and RC of the request and response.
RTO update stage
To properly reflect the network condition, the proposed scheme updates RTO by merging the current RTT and previous RTO. The updated RTO is used for the next transaction. Refer to equations (7)–(10).
Since the proposed mechanism adheres to the guideline of CoAP RFC for option registry, it can be implemented without any extra overhead.
Transmission rate
Transmission rate is the rate of transmitting request packet from a client. It is one of the most important metrics affecting the network quality.25,26 As shown in Figure 3, the transmission rate is bounded by RTT in normal operation condition. For congested network, finding proper RTO is a key to maximize the network performance. In this section, the model of the transmission rate of CoAP and the proposed scheme are developed using an approach similar to the work of Balandina et al. 22
CoAP
Let Tt denote the total time of packet transmission. If congestion occurs during Tt, the relationship between the time interval for normal transmission, Tn, and the waiting time due to packet loss, Tto, is as follows. Assume that St, Sn, and Sto are the total number of packets sent during Tt, Tn, and Tto, respectively
Using equations (12) and (13), the transmission rate, Rb, is calculated as follows
As shown in the default operation of Figure 2, the client sends a request right after receiving the response packet. This means that the operation time during the normal condition can be decided by multiplying the average RTT, RTTavg, and the number of packets, i
In congested network, timeout may occur continuously. Let p be the probability of successful transmission between the CoAP client and server and k the number of retransmissions. The number of failures until the first successful packet transmission can be modeled using geometric distribution as follows
The expected value of Sto, E[Sto], is then
CoAP RFC sets the default retransmission limit, n, to 4. However, it is not fixed in the proposed scheme. During retransmission, CoAP keeps doubling the initial RTO, RTOinit. Therefore, the wait time for k packet retransmissions, Wk, is as follows
By calculating the wait time and the probability of retransmission, the expected packet wait time during congestion condition, E[Tto], is obtained by combining equations (16) and (18)
The transmission rate of CoAP, Rb(p), can be rewritten based on RTT and RTO with the probability of successful transmission
Proposed scheme
As shown in Figure 5, the difference between CoAP and the proposed scheme is the interval of retransmission in the congested network. Therefore, equations (14) and (15) are reused. The transmission rate of the proposed scheme is derived starting from the following equation
As shown in equation (8), the proposed scheme uses VBF to calculate RTO when retransmission occurs. Note that VBF changes based on the value of RTOoverall. As mentioned earlier, the weak estimator is not used for RTO update in the proposed scheme unlike CoCoA. In other words, equation (7) is used with the proposed scheme instead of the overall RTO estimator of CoCoA which contains the strong and weak estimators. The wait time during nth retransmission, Wn, is then decided as follows
The expected wait time during congestion condition is obtained by equation (19). By combining equation (22) and the probability of successful transmission
Finally, the transmission rate of the proposed scheme, Rp(p), is derived as follows
Note that Tto and Sto of equation (21) are changed in equation (24). It reveals that the waiting time due to packet loss (Tto) depends on VBF and the RTO estimator in the proposed scheme. Also, the total number of packets sent during Tto is affected by the probability of packet loss.
Performance evaluation
In this section, an experiment is conducted to evaluate the performance of the proposed scheme. Also, the performance is compared with CoAP, CoCoA, and an enhancement scheme of CoCoA 22 named as CoCoA-E.
Experiment environment
To properly evaluate the proposed congestion control scheme, the devices of limited resource need to be tested in congested network. For this, Raspberry Pi is used as a server generating congestion condition. 27 The specification of the server is 700 MHz CPU, 512 MB SDRAM, 10/100 BaseT Ethernet, and 8 GB Micro SD card with Raspbian Linux OS. For the client, multiple clients are implemented based on threads. The specification of client PC is 3.2 GHz quad core CPU, 8 GB RAM, 64-bit Windows 7 Ultimate K OS. Between the client and server, UDP is used for Ethernet communication. Figure 8 shows the overall structure of the experiment environment, which is implemented with the open-source library of CoAP. At the server side, libCoAP is used which is the lightweight CoAP communication library based on C. For the clients, Californium library is used with customized multithread packet generator. 28

The structure of the experiment.
Here, each client generates CoAP message with one of the three types of congestion control schemes. The first one is the default CoAP, which is provided by Californium as a default with MAX_RETRANSMIT (MR) as 4. The second scheme is the CoCoA with NSTART value of 1. It means that the packet does not send multiple requests in one transaction as in default CoAP. MR is also set to 4 for CoCoA. The last one is the proposed scheme with the same parameter values as the others for fair comparison of the schemes in handling network congestion.
The performance metrics adopted in the experiment include the throughput and cumulative distribution function (CDF) of successful communication. The throughput is calculated as the number of successful transactions divided by the total time of transactions. The CDF measures the effectiveness of congestion control. If a scheme sets a proper RTO value, the communication will be successful with few retransmissions.
Results of experiment
First, the performance of the scheme is investigated during congestion condition, which occurs with the requests generated by multiple clients at the same time. For this, 10 request packets are generated for each client thread, while the number of threads is increased from 1 to 100. Every client employs the same congestion control mechanism. The communication flow based on each congestion control mechanism is then observed.
Figure 9 compares the throughputs of the four schemes. When the number of clients is smaller than 25, congestion does not occur and almost every communication is successful. Some packets might be retransmitted with CoCoA and the proposed scheme even when the network is stable due to dynamic RTO estimation. The RTT usually fluctuates and thus RTO needs to be updated which may cause retransmission and decrease the throughput. If RTO is fixed like default CoAP, there is no retransmission until RTT becomes less than RTO. Note that CoAP was designed for constrained environment of limited resource and unstable network. As revealed by the experiment, request packets are not retransmitted with less than 25 clients. Also, non-retransmitted request does not trigger congestion control. Therefore, the performance of the schemes needs to be tested for congested network, which may occur with more than 50 clients. With congested network of 100 clients, the proposed scheme allows about 150%, 50%, and 25% higher throughput than CoAP, CoCoA, and CoCoA-E, respectively. Note also from Figure 9 that the throughput of default CoAP and CoCoA drops dramatically while the decrease rate of the proposed scheme is much smaller.

The comparison of throughputs with multiple clients.
Figure 10 shows similar result as Figure 9 which compares the rate of successful transaction. Higher rate of successful transaction implies less retransmission. A rapid drop in the rate of default CoAP with increasing number of clients reveals that fixed RTO is not effective in handling congested network. Note that RTT-based RTO update allows to sustain the rate. Observe that the proposed approach is quite effective in improving the existing schemes.

The comparison of the rate of successful transaction.
The distributions of retransmissions and RTO value with 100 clients of the four schemes are compared in Figure 11. Here, the CDFs of successful transactions are shown for the given number of transactions. 20 During the experiment with 100 clients, some jobs may not be able to be completed, and thus, 1500 transaction logs are checked for each scheme. The RTO value is limited to 25 s. In the graphs, the solid line and “x” mark represent the CDF and the RTO of the retransmitted packet, respectively.

The RTO and CDF of successful transaction: (a) CoAP, (b) CoCoA, (c) CoCoA-E, and (d) proposed scheme.
Observe from Figure 11(a) that three groups of RTOs exist, where the first RTO group exists at the bottom and the third RTO group at the top. Note that fixed RTO causes a large number of retransmissions. On the other hand, Figure 11(b) of CoCoA displays alleviation of this problem. Until about 1200 transactions, a proper value of RTO seems to be found. After that, the CDF value of CoCoA quickly rises. Figure 11(c) of CoCoA-E shows better result than CoCoA in the number of retransmissions. Also, the entire job can be successfully completed under 1400 transactions. Figure 11(d) reveals the effectiveness of the proposed scheme. A proper RTO value is found under 400 transactions and the rate of CDF becomes almost linear afterward. As a result, the proposed scheme completes the job with the least number of transmissions.
Figure 12 shows the transmission rate and CDF of successful transactions with 100 clients. Here, the transmission rates are obtained using equations (20) and (24), with the data of 100 clients shown in Figure 11. The CDFs of successful transactions are reused to show the performance of the schemes. In Figure 12(a), the transmission rates are similar after 200 transactions, and also the CDF value does not grow much.

Transmission rate and CDF of successful transactions: (a) CoAP and (b) proposed scheme.
On the other hand, Figure 12(b) shows that the proposed scheme allows more than 100% higher CDF than CoAP even with lower transmission rate. Figure 12 confirms that proper RTT-based adjustment of the transmission rate of the proposed scheme significantly affects the rate of successful transactions.
In order to test the effectiveness of employing the lower bound for covering the variation in RTT, the responses are randomly delayed from 5 to 500 ms. The lower bound of the experiment is set to 5000 ms.
To compare the schemes, 30 clients are activated at the same time and each client generates 100 requests. Table 4 summarizes the results of the experiment. Note that the success rate of the transactions of the proposed scheme is highest through effective handling of the fluctuation.
The comparison of success rates of the transactions.
CoAP: Constrained Application Protocol; CoCoA: Congestion Control/Advanced.
Figure 13 shows the relationship of RTO and CDF of each scheme with the same setup employed for obtaining the data of Table 4. To reveal the effect of the lower bound mechanism, the RTO value of every packet is marked unlike Figure 11.

The RTO and CDF of successful transactions: (a) CoAP, (b) CoCoA, (c) CoCoA-E, and (d) proposed scheme.
The upper three groups of xs of Figure 13(a) show the vulnerability of the default scheme with fluctuated network. Observe from Figure 13(c) of CoCoA-E that the RTO values also follow the fluctuating RTT. Figure 13(b) and (d) displays that RTT-based RTO estimation allows to decide proper RTO value.
The CDFs of Figure 13(b)–(d) are similar, but the distribution of RTO of the proposed scheme indicates that employing the lower bound for RTT is quite effective in the long run.
To reveal the relative effectiveness of each of the two mechanisms of the proposed scheme, the success rate of transactions with each of them is compared in Figure 14. Here, RTTestimate is implemented with equation (7) only, while equation (9) only for Lowerbound. Other settings are the same as Figure 13. Observe from the figure that the effectiveness of Lowerbound is slightly better, while the rate of both of them drops significantly with 90 clients because of the congested network. On the other hand, the composition of them (the proposed scheme) allows to sustain the rate.

The comparison of the two mechanisms.
Conclusion
In this article, we have presented a novel congestion control scheme for CoAP by utilizing RTT. Here, the correct RTT is obtained using the option field of the message which includes the RC. Also, applying the lower bound to cover the variation in RTT allows to obtain proper RTO value and as a result effective congestion control. The approach of utilizing the option field of CoAP enables the proposed scheme to be implemented without any conflict with the existing protocol and extra overhead. Also, the model of the transmission rate of CoAP and the proposed scheme have been developed. An experiment with the actual IoT devices reveals that the proposed scheme significantly improves the efficiency of congestion control compared with CoAP, CoCoA, and an enhancement scheme of CoCoA.
Congestion control is a crucial issue for CoAP since the deployed nodes have limited resource. Continuous retransmissions make the congestion condition worse, and as a result reduce the lifetime of the devices. In the future, more comprehensive performance model based on queuing theory will be investigated for the proposed scheme. It can be used to decide the various parameter values of the proposed scheme for maximizing the performance. Enhancement of the proposed scheme with respect to RTO will also be investigated, including formal estimation of the range of the fluctuation of the RTT for setting proper lower bound.
Footnotes
Academic Editor: Eleonora Borgia
Declaration of conflicting interests
The author(s) declared no potential conflicts of interest with respect to the research, authorship, and/or publication of this article.
Funding
The author(s) disclosed receipt of the following financial support for the research, authorship, and/or publication of this article: This research was supported by Basic Science Research Program through the National Research Foundation of Korea (NRF) funded by the Ministry of Education, Science and Technology (2014R1A1A2040257 and 2014R1A1A 2060398), the second Brain Korea 21 PLUS project, and Samsung Electronics.
