Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1321
  • 博文数量: 1
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 20
  • 用 户 组: 普通用户
  • 注册时间: 2014-10-19 21:22
文章分类
文章存档

2014年(1)

我的朋友
最近访客

分类: 网络与安全

2014-10-19 21:32:36

      TCP协议在当今网络环境下主要存在对丢包和拥塞判断不准,以及相应的传输调节机制过于简单、机械和粗暴的问题,从而导致传输吞吐率比较低,传输波动比较大。因此,优化TCP协议是件很有意义的事情,但这件事情远没有那么简单!
       传统TCP和后来一些改进版本,对拥塞的判断要么基于丢包、要么基于时延,很难自适应网络环境的复杂变化,容易出现判断不准确、传输调节不合理的问题。而且丢包也有随机丢包和拥塞丢包之分,这个也是要区别对待的。对于随机丢包,一旦识别出来,就应该立即重传丢失的包(非整个报文)。对于拥塞造成的丢包,就得采用一系列拥塞避免或恢复机制。
       当然,仅凭丢包来判断拥塞是不够的。还是要综合考虑以TCP连接为单位的流特征带来的影响,因此拥塞判据的多元化是一种新的优化思路。流特征最好要涵盖网络传输路径外在特征(丢包、时延及其变化规律)和TCP传输参数(拥塞窗口、慢启动阈值等)两个方面。但这带来一个问题,拥塞判据多了,对网络的认知虽然更全面,但相应的判断逻辑变复杂了,而且如何设计这个逻辑也更难了。
      考虑用人工智能来解决这个问题。如何通过一系列学习算法来对流特征进行学习,获得对网络传输状况的准确认知,分类识别不同的丢包和拥塞场景,并基于对这些网络场景的准确认知,估计可用带宽大小,采取合理的窗口进行传输,既不加重拥塞,也不保守传输,确保带宽利用率最大化。
      如何分类识别丢包和拥塞场景?如果基于机器学习来实现,那么就需要带标签样本来训练学习机,可标签怎么打?根据每轮RTT传输采集到的流特征就能知道此刻是丢包还是没丢包?是随机丢包还是拥塞丢包?拥塞程度怎样?这个怎么实现啊?需要工程经验,还是有某种规律需要发现,抑或玩概率?人工打标签也不能拍脑袋定吧!如果不要标签,类似于无监督学习,那怎么实现对以上场景的识别?如果用概率的方式来实现,那怎么由输入的流特征来计算当前属于哪种场景的概率呢?
      另一种思路,通过状态机来实现流特征学习。将待分类的丢包和拥塞场景定义成几种状态。根据每个RTT采集的流特征向量,经过一系列算法确定状态机该转换到哪种状态?这个算法该怎么设计呢?假设基于连接生命周期内传输历史过程中,曾经采用的状态转换来确定当前应该转换到哪个状态,这个算法一般怎么实现啊?
      很困惑啊,有没有高人指点啊?谢谢啦!
阅读(324) | 评论(1) | 转发(0) |
0

上一篇:没有了

下一篇:没有了

给主人留下些什么吧!~~

ghao_yu2014-11-05 10:08:58

有没有对TCP协议优化和状态机设计比较熟悉的啊?期待交流。