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 ...
随机推荐
- Django学习(六) 模板
下面是一个新闻的模板:mysite/news/templates/news/year_archive.html mysite/news/templates/news/year_archive.html ...
- 关于Keil C51中using关键字的使用心得
刚才看到一位很牛的师兄写的一篇日志中提到了Keil C51中using这个关键字的用法,粗心的我本来一直都没有留意它是用来干嘛的(因为我一般看见它都是在中断服务函数的定义开头处,好像没有了它也可以中断 ...
- Android中退出多个Activity的两个经典方法
这里介绍两种方法:一种把每个activity记住,然后逐一干掉:另一种思路是使用广播. 方法一.用list保存activity实例,然后逐一干掉 上代码: import java.util.Linke ...
- 基于spark的plsa实现
PLSA.py # coding:utf8 from pyspark import SparkContext from pyspark import RDD import numpy as np fr ...
- C pointers
指向整型数组指针int (*p)[10] = matrix;增加这个指针的值使它指向下一个整型数组 指向整型指针int *pi = &matrix[0][0];int *pi = &m ...
- InternetExplorer 表单及用户名密码提交
陆ftp或者其他类似需要输入密码的站点,可以在url中直接输入用户名密码,格式为: ftp://username:password@url 另外一种情况是,如果是表单提交的也可以通过url填写,如: ...
- 《你必须知道的495个C语言问题》知识笔记及补充
1. extern在函数声明中是什么意思? 它能够用作一种格式上的提示表明函数的定义可能在还有一个源文件里.但在 extern int f(); 和 int f(); 之间并没有实质的差别. 补充:e ...
- Elon Musk:同一时候颠覆几个行业的科技狂人
在苹果著名的"不同凡想"广告中,赞扬了那些改变世界的疯狂家伙们."他们不喜欢墨守成规,也不愿安于现状","他们改变了事物","他们 ...
- USACO Section 2.1 Sorting a Three-Valued Sequence
/* ID: lucien23 PROG: sort3 LANG: C++ */ #include <iostream> #include <fstream> #include ...
- Oracle SQL函数之字符串函数
1.SQL> ) from dual; --ASCLL(x)返回x的ASCLL码,CHR(x)返回ASCLL码为x的字符 ASCII() ---------- ---------- ------ ...