Managing TCP Connections in Dynamic Spectrum Access Based Wireless LANs
2010年IEEE Secon的一篇文章。当然了,应该是之前就写好了,发表过,还是直接投到Secon了呢?直接投的吧,Secon不接受已发表过的吧。
本文的着笔点:有线网与DSAN(启用了DSA特性的WLAN)集成的情况下的TCP性能研究。就是DSAN网与传统网路通信时,其整体的TCP性能研究。场景就是“最后一英里”,典型的可以想象的是,家里的光纤到户,连一个BS,然后呢,所有的手机、PAD、Laptop等终端都通过BS上网。而这部分无线节点都启用了DSA特性,那这就是一个典型的本文要研究的一个场景。
有线——BS(负责有线网与DSAN的通信)——DSAN

好了。本文就是研究这种情形下,TCP的性能受到那些因素影响、并提出方案解决(DSASync)、再实验验证提出的方案就是好,这样一篇文章。
第一:TCP受那些影响呢。前一篇博文中提到过。这里只说,对无线网而言,主要是高误码率(high bit-error),当然已经研究的差不多了,所以不用担心。DSA中的TCP受哪些影响呢,时延和丢包(由DSA的基本操作引起的,如频谱嗅探、信道切换等等)
第二:文章重心在于提出的DSASync方案。其实就是链路层协议,利用缓存和流量控制(buffering、traffic-shipping)来给TCP做预处理。有两个模块,一个用于从DSA MAC/PHY协议收集参数、向上传递(DSASync_LL模块),一个接受参数,作分析决策(DSASync_TCP模块);然后才向上层传递给传输层的TCP协议。
注:DSASync是部署在BS上的,DSAN内部节点并没有部署(但正如文章future work所提出的,在以后的工作中,会尝试给每个节点部署DSASync,做成分布式)
重点说作决策的模块DSASync_TCP,这是核心所在。它自身又可以分为三个模块。
1、DSASync_TCP_CH-SH,就是管理从有线到DSAN网路的下行流量。它的输入是从DSASync_LL模块传入的参数,做决策的算法有两个,一个是根据参数决定包是被缓存还是被加入到传输队列,考虑的因素包括剩余缓存的大小、是否处于静默期等等;另一个算法是判断是否发送rwin=0(tcp的receive window)给CH,这样就可以达到控制流量的目的。
(这里可以有代码)
2、DSASync_TCP_SH_CH,就是上行流量。它核心的工功能是:把上行的包,均匀分配,在静默期也可以保持向CH发包,而不至于中断或有较大延迟。因为在静默期,整个DSAN内部是不能发包的,这时,BS可以依旧利用本地缓存的包,继续向CH发包。这样保持了上行线路的平稳。不至于在静默期触发CH端TCP的重发机制而导致信道利用率降低。
3、DSASync_TCP_CAP,这个是拥塞控制,主要发生在信道切换时。这个时候,信道的容量(capacity)可能会发生大幅的下降,而这一点,TCP是无法处理的。(传统情形下,TCP不会遇到信道性能经常出现很大起伏的情况,因而在出现小的起伏时,TCP只须重传即可。并不会持续很久,且浪费信道利用率。但在DSAN中信道切换时,大的信道性能起伏就会出现,这一点TCP协议中并没有做处理)。而解决方案也很简单,正如DSASync设计的那样,在判断出新的信道性能不能满足需求时,模块会传递给sender 3个重复的ACK,这样就触发tcp的快重传机制,cwin降为一半,而不是直接降为1(如果BS不发送3个重复的ACK,而receiver又无法返回确认信息(因为信道性能大幅下降),则导致sender TCP的慢恢复,cwin直接降为1),这样其实就减弱了信道切换对TCP性能的影响。
(这里可以有代码)
注:DSASync_TCP_CH_SH其实只对下行流量做处理即可。因为在发生信道切换导致的信道性能降低时,处于DSAN的上行流量本身就直接受到影响了,因为不需要去单独“警告”或通知。就好像从一条大路连着一条泥泞小道。从大路开过来的车,你要通知他,前方是小路,要开慢点;而从小路开向大路的车,你不用管他,因为它自己就在小路上呃,根本就开不快。。。
第三:实验效果
先说下实现(implementation),本文作者是把DSASync做成了linux kernel的一个模块,利用了强化的(启用了DSA特性的)The MadWifi device driver。
然后是实验设备参数:
6个laptop(SHs)无线网卡是Atheros-based Linksys WPC 55AGwireless card.
另一个laptop(AP)充当BS,连接有线网和DSAN。
还有个laptop,充当PU(incumbent transmitter),起干扰的角色。
Iperf产生TCP traffic,TCPdump用来观察记录。
PHY data-rate 24Mbps,AP buffer capacity 500M,
平均信道利用率20%(incumbent channel utilization)
SH的平均嗅探开销5%(sensing overhead)
初始的TCP send receive window 256KB
每个实验持续20s
其他。。。
性能度量:
1、主要的,应用层的throughput
2、从接受端观测到的端到端时延。
好了,现在是实验结果:
1.微观上(Microbenchmarks)四个




实际吞吐率和重发比率:
DSASync CH-SH有74%的显著提升。
端到端时延:
DSASync SH-CH有很明显的改善。
存在PU干扰情形下的吞吐率:
DSASync CH-SH有很好的表现。
PHY性能变化时的吞吐率:
DSASync CH-SH is good。
2、宏观上(Macrobenchmarks):scalability

参数:6个终端,各开4个TCP连接,频谱共有4个信道
DSASync CH-SH 有明显优势。
注:从上面的结果我们看到,DSASync的优势主要体现在了CH-SH上吞吐量的提升、或在恶劣情形下依旧保持较好的性能。主要原因在于BS可以对CH-SH的流量做出调整,从而影响这个方向上的TCP性能。而从SH-CH,DSASync唯一做到的是在静默期依旧发包,这样在试验中端到端时延这一指标上,做出了明显改进(在这一指标上只有它显示了明显改进),SH-CH也仅在这一指标上显示了优势。其他三个指标上表现一般,因为部署在BS上的DSASync无法对DSAN内部的网络情况做任何改进,它只是在边界上起调节作用,因为更多的是起到了辅助CH的作用,故而在CH-SH上在三个指标上都有明显优势。(future work考虑在DSAN内部每个节点部署DSASync就是考虑到要提升SH-CH的性能,单靠BS是无法实现的,因为无法对DSAN内部网路做出改变。)
第四:future work
正如上面注释提到的,第一个future work就是做成分布式的DSASync,以期在SH-CH线路上做出明显改进。
第二个是横向拓展。对UDP进行优化(UDP、不可靠传输、主要用于多媒体传输)。
Managing TCP Connections in Dynamic Spectrum Access Based Wireless LANs的更多相关文章
- DSASync: Managing End-to-End Connections in Dynamic Spectrum Access Wireless LANs
其实跟上一篇是同一篇文章.不过上一篇是发表在IEEE Secon2010了,这篇是后来又增加了部分内容后的一版,收录在IEEE/ACM TRANSACTIONS ON NETWORKING, VOL. ...
- A Survey of Dynamic Spectrum Access
这是2007年IEEE Signal Process 杂志上的一篇文章.综述DSA的.正如文章最后所说,DSA/OSA(Opportunity Spectrum Access)还处于襁褓期,在技术.政 ...
- Performance of Transport Control Protocol over Dynamic Spectrum Access Links
2007 IEEE 这篇论文主要就是分析了几个版本的TCP协议在DSA网络中的性能问题. 得出的结论是: 大部分现在在用的几个版本的TCP协议,都是能够较好地适应DSA环境,吞吐率都能达到95%.当然 ...
- Configure the max limit for concurrent TCP connections(转)
To keep the TCP/IP stack from taking all resources on the computer, there are different parameters t ...
- 【转载】Configure the max limit for concurrent TCP connections
转载地址:http://smallvoid.com/article/winnt-tcpip-max-limit.html To keep the TCP/IP stack from taking al ...
- Method for training dynamic random access memory (DRAM) controller timing delays
Timing delays in a double data rate (DDR) dynamic random access memory (DRAM) controller (114, 116) ...
- Resource Access Based on Multiple Credentials
A collection of multiple user credentials each associated with one of multiple different users is ob ...
- Using HttpClient properly to avoid CLOSE_WAIT TCP connections
Apache的HttpComponent组件,用的人不在少数.但是能用好的人,却微乎其微,为什么?很简单,TCP里面的细节实现不是每个人都能捕获到的(细节是魔鬼),像并发请求控制&资源释放,N ...
- FIN vs RST in TCP connections different
question: The way I understand this, there are 2 ways to close TCP connection: send FIN flag send RS ...
随机推荐
- 传智播客学习之HTML基础语法
一.基本格式 1.不用区分大小写. 2.HTML代码由<html>开始</html>结束.里面由头部分<head></head>和体部分<body ...
- PyCharm 4.0下载(附keygen)
百度网盘:http://pan.baidu.com/s/1nvAdEM9 密码:xfz9
- 关于DevExpress的gridControl的简单使用
数据绑定 首先生成table,然后更改列名,最后添加一个选择列,类型为"System.Boolean",这样在绑定上gridcontrol的时候会出现一列选择框 table.Col ...
- hdu4126Genghis Khan the ConquerorGenghis Khan the Conqueror(MST+树形DP)
题目请戳这里 题目大意:给n个点,m条边,每条边权值c,现在要使这n个点连通.现在已知某条边要发生突变,再给q个三元组,每个三元组(a,b,c),(a,b)表示图中可能发生突变的边,该边一定是图中的边 ...
- JavaScripts学习日记——ECMAscript
1.Function对象 Function是一个很特殊的对象,特殊在该对象就像java中的方法一样,可以运行,可以传参数. 三种定义function对象的方法: 1.function fun1(a,b ...
- Linux的目录结构及其作用
/bin bin是Binary的缩写.这个目录存放着最经常使用的命令. /boot这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件. /dev dev是Device(设备) ...
- Sass@规则
@importSass 支持所有 CSS3 的 @ 规则, 以及一些 Sass 专属的规则,也被称为“指令(directives)”.Sass 扩展了 CSS 的 @import 规则,让它能够引入 ...
- js 操作剪切板
1.IE浏览器 window.clipboardData: setData() //设置值 getData()//获取值 clearData()//删除值 /******* ** IE 浏览器下支持w ...
- 操作Action
Action就是Controller的一个方法 包含对应请求的最终结果 Action里代码从Model层拿到数据 最后把数据结果Actionresult 返回用户
- 如何在pl/sql developer 7运行到oracle存储过程设置断点的地方
如何高效调试oracle存储过程,尤其是父子网状调用的存储过程 1,在需要设置断点的oracle存储过程处设置断点 如何设置断点:直接在某行oracle存储过程处单击行首,会在行首显示 ...