Cognitive radio (CR) is a promising technology to improve spectrum utilization. Most of previous work on CR networks concentrates on maximizing transmission rate in the physical layer. However, the end-to-end transmission control protocol (TCP) performance perceived by secondary users is also a very important factor in CR networks. In this paper, we propose a novel multi-channel access scheme in CR networks, where the channel access is based on the TCP throughput in the transport layer. Specifically, we formulate the channel access process in CR network as a restless bandit system. With this stochastic optimization formulation, the optimal channel access policy is indexable, meaning that the channels with highest indices should be selected to transmit TCP traffic. In addition, we exploit cross-layer design methodology to improve TCP throughput, where modulation and coding at the physical layer and frame size at the data-link layer are considered together with TCP throughput in the transport layer to improve TCP performance. Simulation results show the effectiveness of the proposed scheme.