TCP over scarce transmission opportunity in cognitive radio networks
Transmission control protocol (TCP) is the most popular transport layer protocol for applications that require reliable and ordered data delivery essentially. In this paper we consider the deployment of TCP to secondary users (SUs) in overlay cognitive radio networks (CRNs), and address its performance degradation; in CRNs, SU's transmissions are frequently disrupted by the detection of primary user's transmission, and which makes the SU experience consecutive retransmission-timeout and its exponential backoff. Subsequently, the TCP in SU does not proceed with the transmission even after the disruption is over or the SU hands over to other idle spectrum. To tackle this problem, we propose a cross-layer approach called TCP-Freeze-CR; lower layer protocols send the overlying TCP two different cross-layer signals, freeze on the detection of primary user's transmission, and unfreeze after handing over to an idle spectrum. Moreover we consider a practical situation where either secondary transmitter (ST) or secondary receiver (SR) detects primary user's transmission; therefore additional message exchanges are needed between ST and SR to retrieve and resynchronize to other idle spectrum, i.e., spectrum synchronization. This situation is more complex than the case where both ST and SR detect primary user's transmission. Hereby, we develop a spectrum synchronization procedure coupled with TCP-Freeze-CR into a finite state machine. All of our proposals are implemented and evaluated on a real CRN consisting of 6 software radio platforms. In the implementation, we deploy 802.15.4 implementation as a target physical layer protocol, and couple it with TCP-Freeze-CR using Unix Domain Socket. The experimental results illustrate that standard TCP suffers from significant performance degradation in CRNs, and show that TCP-Freeze-CR can greatly alleviate the degradation; e.g., for 1200 s, ST with TCP-Freeze-CR can send about 10 times more packets than ST with standard TCP.