声明: 本人本科毕业不到一年,所以对研究不会有太高深的见解……欢迎拍砖
正式开始读研究生后,虽然第一年也没怎么做研究,但是看问题和本科生阶段还是有点区别了。至少,在各种压力下,开始学着系统地阅读paper,开始学着系统地做Survey。
作为网络研究的初学者,一年一年系统地按topoic地读论文,和其他人discuss,是一件帮助很大的事情。因为我不急着做研究了,所以也不是特别只看最新的研究成果,而是从80年代的paper看起。除了paper,老师推荐了一些Internet发展历史之类的参考资料,也开始和这些paper的作者以及业界的人有一点点交流。于是我不禁去比较一下网络paper发展史和实际网络发展史,里面有很多有趣的东西。
1. 发现问题 VS 解决问题
我发现好的paper包括这样两类(不局限于这样两类): 一类是发现问题型,一类是解决问题型。比较典型的发现问题的paper例如incast的paper,比如roofnet比较早的那些measurement的paper。拿incast来说,这篇paper一问世,很多研究者开始研究解决方案,导致之后一两年的各类网络会议充斥了大量其解决方案的paper,不乏很不错的会议的best paper。我个人很喜欢读这种发现问题,或者是measurement的paper,很有趣。以后看看能不能向这个方向发展发展。
解决问题的paper就是各种各样了。其实我感觉paper从类别来分,有design, modeling, implementation, experiment型paper; experiment的paper大多属于前面发现问题类。 国内很多学校喜欢做modeling,也许是因为门槛相对较低,不需要太高的硬件条件。modeling不乏好paper。比如很多TCP congestion control分析的paper。design的paper怎么说呢,看历史上的paper吧,有很多很不错的design,但是一直没有被实现。也有一些design,变成了我们现在使用的internet。仔细看这些design的paper的作者,大概就是那几个大牛: 估计也就这些人比较有影响力吧。现在人比较喜欢implementation。当然sigcomm这种会议的implementation很大程度属于“伪系统”, 就是假装是个系统,其实还是要说明某种理论,比如ExOR, XORs in the air. 这种建立在真实用户中的可以长时间运行的真实系统,比较受欢迎影响力也很大。
而很多解决问题的好paper,他们的问题并不是凭空编造的,而是站在巨人肩膀上的。比如09年某paper提出了数据中心中布线错误检测的问题,10年就冒出了相关paper。当然不是所有paper都这样,有些问题是不需要提出来就存在的。再说久远点,多少人为了改善编码效率去追求当年香农老人家提出来的那个界啊。
而很多不咋的paper,就会建立在一些不存在的问题上。想起个笑话,三鹿事件后,某博士生研究出了一套高效检测奶粉中是否存在三聚氯胺的方法,投到某国际期刊,被据稿,理由是:牛奶中本没有三聚氯胺,何必多此一举?
2. 什么样的paper会真正被应用
某某教授03年统计了一下最近几年sigcomm中真正实际应用了的paper的数量,结论是0篇:也就是一篇都没有!为什么没有被应用?因为网络上的研究,动一发则牵扯全身。拿TCP来说,这是一个End-to-end的实现。你要修改里面的congestion control,很可能就得同时修改上十亿TCP设备里面的protocol。不过,这种大的改变也不是不可能。网络最早的通信协议应该算是NCP而不是TCP。在TCP提出后N年,一个精心策划的日子,所有NCP同时转换成TCP。 当然,那个时候的网络规模不算大。
至少,现在看来,(1)一切导致网络可能会发生剧烈变化,影响现有稳定性的研究,都很难被真正应用。比如,LB-switch, 比如naming。这些研究可能会导致和现有系统,例如TCP不兼容。有些研究,比如i3,虽然现在还没有实现,但是这个东西至少是有希望在现存网络中实现,至少兼容所有东西,并且可以incremental deployment,所以在(1)类中还是可以实现。但是,(2) 人们貌似不希望恶化现在已有的任何东西。 比如i3,能够解决很多问题,但是会导致更大的delay。虽然这个delay是bound的,但是很难说服ISP之类的去放弃现有的去引入一个更高delay的。(3) 不是很急迫需要的东西,很难去改。 这点是说,很多paper有很长远的计划,可能希望解决的是即将出现的很多application的支持问题。可是,这个问题并不迫切,而现有东西还过得去,于是就这样了。
虽然网络研究受到如此多的限制,但是并没有走进死胡同。感觉之后的网络研究开始侧重于各种testbed的开发研究,比如openflow, sora。这种软件定义的网络比起传统网络更容易修改。虽然这个很难解决已有的,例如LB-switch和TCP不兼容的问题,但是假设我们有了建立在软件定义上的新的某种“TCP”,又发明了新的LB-switch,并且他们不兼容,我们要对那个新的“TCP"进行修改的日子,就不会像现在这么痛苦。除了testbed的研究,还有很多局部网络,比如数据中心的研究。这是小规模的网络,拥有者可以轻松地修改里面的所有东西,不像现在internet改起来如此痛苦。
说不定,当有了很好的test bed,很多成功运行的data center,我们也许可以去动动庞大的internet的根基。
3. 研究的原则
不得不说有些大家,经常会发表一些不错的文章,来强调各种网络设计的principal,仔细看看其实蛮有好处。虽然这些原则不能盲从,比如E2E,作者强调要分情况考虑,但是很多东西如果在自己开始做研究前看了,就不会出现做出很差很差的研究了。
举个例子,某早期交换机VOQ设计的论文中,提出了交换机设计的4个原则,其中一个原则就是一个成功的交换机的调度算法速度一定要快,得在5ns才能满足交换机需求。所以,那些早期的基于VOQ的调度算法都很简单,并不完美。很多失败的交换机调度论文,比如network coding的,很难最后被应用:即使像我自己写的,简化了编码降低了计算复杂度的,想要达到5ns还是很困难。虽然这些大牛说的未必就是不可违背的金科玉律。但是我的观察来看,违背了这些原则的paper,很多都不是好paper。
读那些大家的论文,也许你不觉得他的算法多么巧妙。但是凭着他们在网络研究领域里面多闯荡了数十年,对现在问题的把握比我们这些初学者要准确得多。顺着他们指的一些路,可以避免自己胡思乱想想出很多不切实际的东西。
-----------------------------------------------我是华丽的分割线----------------------------------------------------------
最后,说件事。前段时间国内寒假,很多小朋友跑到Stanford来参观。还有小朋友找上我,让我介绍申请经验和研究经验。其中他问了我个问题,你想idea需要多长时间。我突然觉得,其实本科时想个新的研究idea要不了太长时间的。不过本科毕业后到现在半年,大概我再也没有过去想过新的idea。这是进步呢,还是退步呢?
转载本文请联系原作者获取授权,同时请注明本文来自杨双科学网博客。 链接地址: https://blog.sciencenet.cn/blog-441887-412854.html
上一篇:
研究者的目标 下一篇:
暑期实习申请小结