摘要
当前的数据中心中大量存在多个发送端向一个接收端同时发送数据的通信模式,但是,这种多对一的通信模式会造成TCP incast问题.当数据中心网络发生TCP incast时,网络整体吞吐量将急剧下降甚至崩溃.软件定义网络(SDN)下的集中控制方法和网络全局视角是解决这一问题的有效途径.文中提出一种基于SDN的TCP拥塞控制机制,称为TCCS.当OpenFlow交换机检测到网络拥塞,将产生拥塞消息并发送至控制器,控制器将通过调整背景数据流ACK报文的接收窗口来限制相应数据流的发送速率.利用SDN的全局视角,TCCS可以精确地降低背景数据流的速率来保证突发数据流的性能.TCCS机制聚焦于网络侧解决TCP incast问题,因此对端系统是透明的.最后的实验表明,TCCS机制能够容纳更多的突发数据流,而且能够保证突发数据流的吞吐量.
TCP incast usually happens when a receiver requests the data from multiple senders simultaneously. This many-to one communication pattern constantly appears in the data center networks (DCN). However, when TCP ineast problem happens in DCN, DCN may suffer from hundreds of milliseconds delay and up to 90 % throughput degradation, severely affecting application performance. With Software Defined Networks (SDN) as a new paradigm for networking, the centralized control methods and the global view of the network can be an effective way to handle the TCP incast problem. In this paper, we propose a TCP congestion control mechanism based on SDN, referred to as TCCS, to solve the TCP incast problem. TCCS leverages the features of SDN to accurately assign sending rate for background flows and burst flows so as to accommodate more burst flows and improve the overall network performance and utilization. In particular, TCCS contains four modules including network congestion trigger module, elephant flows selection module, receive window estimation module, and receive window regulation module. We first design network congestion trigger module over an OpenFlow enabled switch. Once network congestion is discovered by assessing queue length, the congested switch will trigger a congestion notification message to our SDN controller. Subsequently, elephant flow selection module exploits the controller to differentiate the background flows from burst flows according to different flow traffic characteristics in DCN. After that, receive window estimation module at the controller side estimates the current bandwidth of these chosen background flows and then degrades their bandwidth to the desired one. We assess our desired bandwidth in terms of the network congestion level. Then, our controller generates a notification message containing new flow table entries that is used to regulate the background flow bandwidth to our desired one and sends them to the switch. Upon receiving the notification, the congested switch can deliberately manipulate the advertised window of TCP ACK packets of the corresponding background flows so as to effectively degrade the bandwidth of the background flows. TCCS is a centralized approach that does not revise the legacy TCP stack. Thus, it is transparent to the end systems and easy to deploy. By carefully deploying the location of our controller, our extensive analysis results show that the control delay between the switch and controller can be virtually ignored. Besides, the fairness of TCCS is discussed in our paper. We implement TCCS by revising the OpenFlow protocol. During TCP connection establishment, we can generate a Global-View flow Table (GVT) that includes all of the TCP flows information in the network. GVT consists mainly of BackGround flows Table (BGT). We also extend the standard OpenFlow protocol to support the congestion notification message, TCP ACK flag match function and ACK advertised window adjust action. Our experimental results show that TCCS is effective in improving the performance of burst flows, e. g. , reducing transmission time, increasing the number of concurrent flows, and providing high tolerance for burst flows while guaranteeing the bandwidth of background flows. Therefore, TCCS is an effective and scalable solution for TCP incast problem
出处
《计算机学报》
EI
CSCD
北大核心
2017年第9期2167-2180,共14页
Chinese Journal of Computers
基金
江苏省博士后基金
国家自然科学基金(61602243)资助~~
关键词
数据中心网络
SDN
TCP
拥塞控制
接收窗口
data center network
software defined networks
transmission control protocol
congestion control
receive window