Performance of Transport Control Protocol over Dynamic Spectrum Access Links
2007 IEEE
这篇论文主要就是分析了几个版本的TCP协议在DSA网络中的性能问题。
得出的结论是:
大部分现在在用的几个版本的TCP协议,都是能够较好地适应DSA环境,吞吐率都能达到95%。当然,是在满足几个前提下:
1)BS(基站)的buffer足够大(并不是一个不可实现的值,是一个实际能够满足的值。)
2)TCP是采用了SACK的。
另外的一个结论是,如果延迟相当大,一切都扯淡。而PU的出现,就可能引起相当大的延迟,从而导致TCP性能的严重降低。作者指出了这一点。
其中,还有其他的结论,比如,嗅探时间的长短对TCP性能的影响,因为本文采取的是”完美嗅探“,因为嗅探时间短并没有造成什么负面影响;但当嗅探时间很长时,延迟就不可避免的增大了(因为嗅探期是不能发包的,即使采用了buffer,不至于丢包,但延迟足够大,一切又都扯淡。)
当然,从头看这篇文章,它使用的模型是这样子的:

Sender->BS 是有线网络,带宽10Mbit/s,一个恒定延迟用来表征现实中在链路传输中可能遇到的延迟。另外的延迟包括链路队列延迟、传输延迟。DSA中不计传播延迟。(带过,木有给具体值~)
BS->Receiver DSA网络,M信道,总带宽2.4Mbit/s,带宽平均分配,当M变化时,每个信道的带宽随之变化(M的不同主要是实验对比)。PU到来离去参数是λ、μ.
Receiver->BS 2.5Mbit/s的恒定无线网络,从而使得TCP的ACK信息得以稳定传输。
DSA没有链路错误,BS利用“energy detection”进行信道选择,“完美选择”。
在此场景下,试验TCP Vegas,New Reno ,NS Reno with SACK的不同表现。
结果在最开始已经说过了。
要讨论的问题是:这个DSA网络不符合真实场景?
Receiver->BS的通信,这么设计?真实场景中是这样,还是只是为了实验?应该来说,在选定信道后通信,数据的传输都是在同一个信道的,因而这种模拟应该不符合实际场景的,因为其结论应该也是有待商榷的。
那么之所以结论中的TCP能很好的适应DSA,应该就是基于这样一种假设,同时加上:
BS的buffer足够大。
嗅探时长保持很小,不会带来明显的TCP延迟。
PU带来的延迟足够小,不影响TCP的性能。
而实际情况中,
嗅探时间是需要权衡准确率与时间的。模拟中不考虑时间的操作,采用完美嗅探,可以把时间设计的足够小,以不会造成明显延迟。这种设计可取,但不完美。
PU带来的延迟,应该来说是DSA中最要考虑的因素。一个是PU自身的到达离去特征本身决定了频谱切换的频繁程度;一个是频谱切换本身涉及到的空出信道、嗅探、获得新信道的时延。这是重要的一部分。这部分时延应该是足以引起TCP反馈的。
(这是时延引起的TCP性能下降;另外的一个问题是,切换信道后,TCP可能并不能够充分使用新的信道容量。具体地?)
所以,要关注的点是:切换到底需要多长时间,会不会给TCP带来可感知的延迟。
(如果极快而不可感知,TCP的性能不会受到影响。那就不需要研究这一块了。)
Performance of Transport Control Protocol over Dynamic Spectrum Access Links的更多相关文章
- Internet History,Technology,and Security -Transport Control Protocol(TCP)(Week6)
Week6 Technology: Transport Control Protocol(TCP) Welcome to Week 6 of IHTS. We are in our second we ...
- A Survey of Dynamic Spectrum Access
这是2007年IEEE Signal Process 杂志上的一篇文章.综述DSA的.正如文章最后所说,DSA/OSA(Opportunity Spectrum Access)还处于襁褓期,在技术.政 ...
- Internet History, Technology, and Security(week6)——Technology: Transport Control Protocol(TCP)
前言: 这周开始学习分层网络模型的第三层,传输层. Transport/Reliability: Transport Layer TCP层的目的是补偿IP层中可能出现的错误,并充分利用可用资源.由于I ...
- DSASync: Managing End-to-End Connections in Dynamic Spectrum Access Wireless LANs
其实跟上一篇是同一篇文章.不过上一篇是发表在IEEE Secon2010了,这篇是后来又增加了部分内容后的一版,收录在IEEE/ACM TRANSACTIONS ON NETWORKING, VOL. ...
- Managing TCP Connections in Dynamic Spectrum Access Based Wireless LANs
2010年IEEE Secon的一篇文章.当然了,应该是之前就写好了,发表过,还是直接投到Secon了呢?直接投的吧,Secon不接受已发表过的吧. 本文的着笔点:有线网与DSAN(启用了DSA特性的 ...
- OSA-MAC: A MAC Protocol for Opportunistic Spectrum Access in Cognitive Radio Networks
This full text paper was peer reviewed at the direction of IEEE Communications Society subject matte ...
- [Twisted] transport和protocol解耦
Twisted中transport和protocol完全解耦. 这样设计的优点: 1.不同的Protocol协议实现可以重用相同类型的transport. 2.方便测试:假如测试一个协议实现,可以使用 ...
- 传输控制协议--- Transmission Control Protocol (TCP)
Transmission Control Protocol (TCP) 用于网络通信的传输控制和网络协议套件,包括很多协议,其中最主要的是TCP和IP协议.TCP/IP属于UNIX类系统的内置协议,被 ...
- TCP(Transmission Control Protocol)学习笔记
一.TCP(Transmission Control Protocol)原理介绍(参考维基百科) TCP连接包括三种状态:连接建立.数据传送和连接终止. TCP用三路握手(three-way hand ...
随机推荐
- 无聊写了一个最简单的MVC4+Highcharts连数据库例子
乱搞了个数据库 后面发现没定INT类型 直接将ID当数据显示了 效果图: 前端 @{ Layout = null; } <!DOCTYPE html> <html> <h ...
- 百度首页top设置
html: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w ...
- IClone地形编辑器结合T4M插件在Unity3D使用
通过IClone编辑器打造的地形,经过T4M插件的转化后,资源占用极少,比在Unity中自己刷出来的地形再通过T4M转化的要小的的多多了,非常适合用在手机上. IClone地形编辑器下载地址: 如果对 ...
- LeetCode_Roman to Integer
Given a roman numeral, convert it to an integer. Input is guaranteed to be within the range from 1 t ...
- T-SQL 基于列的逻辑表达式 (CASE)
CASE简介 基于列的逻辑表达式,其实就是CASE表达式.可以用在SELECT,UPDATE,DELETE,SET以及IN,WHERE,ORDER BY和HAVING子句之后.由于这里讲的是T-SQL ...
- C# 伪造 referer 提交数据
private string SendRequest(string account, string cardNumber, string cardPass) { string targetUrl = ...
- app行业发展趋势
近日,移动开放平台发布了2014年第一季度App开发行业报告.报告中对目前国内app开发者的分布情况,个人开发者和企业开发者的开发领域,相应比例以及提交应用过程中出现的问题做出统计,为如何建立一个更好 ...
- GNU C - 关于8086的内存访问机制以及内存对齐(memory alignment)
一.为什么需要内存对齐? 无论做什么事情,我都习惯性的问自己:为什么我要去做这件事情? 是啊,这可能也是个大家都会去想的问题, 因为我们都不能稀里糊涂的或者.那为什么需要内存对齐呢?这要从cpu的内存 ...
- 导入时如何定制spring-boot依赖项的版本
spring-boot通过maven的依赖管理为我们写好了很多依赖项及其版本,我们可拿来使用.spring-boot文档介绍了两种使用方法,一是继承,二是导入. 通过<parent>继承: ...
- No enclosing instance of type Outer is accessible. Must qualify the allocation with an enclosing instance of type Outer (e.g. x.new A() where x is an instance of Outer)
之前看内部类的时候没发现这个问题,今天写代码的时候遇到,写个最简单的例子: 下面这一段代码 红色的部分就是编译报错: No enclosing instance of type Outer is ac ...