科研思路应该具体化(120324)
精选
2012-3-24 11:02
阅读:6043
标签:互联网, 因特网, 科研方法
科研思路应该具体化(120324)
闵应骅
本文想了两个题目,一个是“因特网的问题在哪里?”;另一个题目是“科研思路应该具体化”。前一个着重本文的内容,但是似乎比较专业,不搞网络的人可能就没兴趣看。后一个着重科研方法,通过因特网的例子,说明怎么提出问题,解决问题,搞科研的人怎么思考问题。我觉得后一个可能吸引更多人看。当然,说得不一定对,供参考。
每当我讲因特网是指现在我们大家用的基于TCP/IP的包交换网络。我们在研究“下一代互联网”,而不是下一代因特网。当然,我们正是因为因特网有问题,我们才研究下一代互联网,企图来个大创新。那么,现在因特网到底有什么问题呢?笼统的说法多得很,都是些指导性意见,不是科研思路。本文要谈的是网速的问题。我家的网已经从4M提高到10M,但我没觉得提高了多少,好像和过去一样。
这个问题全世界都在关切。Jim Gettys 新造了一个词,叫 BufferBloat,暂且把它翻成“缓冲膨胀”吧!想当初,缓存容量才几百KB,在网速提高以后基本不能用。现在的缓存都是2MB和8MB,甚至达到了16MB、64MB等。这就是缓冲膨胀。喜欢逆向思维的科研人员的问题是:缓冲是不是越大越好呢?所谓“好”当然是体验到的网速快。
首先一个问题是:是不是缓冲越大,下载速度就越快?一个带宽测试表明信息潜在期可以达到1.2秒(你就需要开发测试潜在期的方法),不管装不装IPsec都是一样,可见不是因为装了IPsec引起的。而电话拨号的潜在期只有0.15秒。实验研究表明,这问题也不是由于电源控制、不同的光缆或电缆调制等问题产生,而是由于过度缓存产生。对于3G网络也如此,不过,到晚上就好一些。
做一个简单的测试:在10秒内,送出一个包,并等待回复包。每次收到一个回复包,就收到另外两个。如果送出大包,就收到小的回复包;而送出小包,却收到大包。在10秒钟的后面5秒钟,再测量不同负载下的潜在期。说明潜在期和负载有关系。缓冲加大,引起更长的存取缓冲的时间和启动时的错误动作。
测试潜在期或带宽,并不是一件容易的事情。因为它是动态的。你别看现在有所谓测网速的软件,其实那是在一种很特定情况下测出来的,真正下载的时候达不到那个速度。如果你只测有负载情况下的带宽,你可能不会注意潜在期。当网络中出现从快到慢的转换的时候,数据就会堆积,而形成很长的队列。这在因特网核心进入用户(像优酷视频)或者从用户上传的时候常有。一个高速的家庭网络如果是54M的无线网,实际可能只有1M到2M的因特网连接。一个Linux机器在2M的线上一般有兆位的数据在传输,带有几秒的时间延迟。家庭路由器如果缓冲太小,丢包率就高。不论是WiFi,路由器,还是终端系统,要想工作得好,就必须加大缓冲。但是,如果你只测量带宽,你见不到某些例行网络服务的失效,譬如IP地址的查找。大缓冲和长时延与现行的协议不一致。过大的缓冲严重破坏TCP的拥塞避免机制。因为TCP用若干包的延迟去检测拥塞。包到达拥塞点就缓冲,包来得快,传输得慢,队就加长。队越长,潜在期就长,最后,包丢失,以拥塞通知通信协议。缓冲膨胀允许队列很长而不丢包。但是,当缓冲里充满了包,排泄它们更需要时间,其他的包就进不来,终端用户看到的就是慢速的响应。而许多服务要求较低的潜在期,譬如网络游戏、VOIP、闲谈,太慢了就不可用了。如果缓冲无穷大,就永远没有返回包了。
怎么解决这问题?缓冲究竟多大算合适?不好回答。譬如对无线,其带宽可能变化2-3个数量级。宽带系统可以高达100M,到用户也就10M或更低。你可以时间,譬如多少微秒,而不是多少K字节来界定你缓冲的大小,而且让它动态变化。当然,对于核心路由器,可能需要同时传送若干个流,到10G的缓冲也许也是需要的。对于只占0.01%的超级计算机中心之间的互联,也是需要的,但对于只有2M缓存的广大用户,他们并不一定得到好处,这就是一个网络经济的问题了。
网络对同一个TCP流的间歇性行为使人头痛,因为它不稳定。像视频流或者系统备份常有,而Windows XP不支持视窗扩展。现在许多操作系统都在寻求视窗扩展,到多少G。
为了使缓冲大小动态化,需要硬件和软件的修改,譬如队列管理算法。这个问题的解决需要三方面的努力:用户动态规定缓冲大小;ISP希望给用户高质量的服务;说服设备与软件开发商注意这个事情。没有对所有环节都有效的解,用户需要傻瓜式的时延测量工具,以发现时延发生在哪里?网络边界路由器尤其需要。
为解决这一问题的每个环节,都蕴含着科研课题。
闵应骅
本文想了两个题目,一个是“因特网的问题在哪里?”;另一个题目是“科研思路应该具体化”。前一个着重本文的内容,但是似乎比较专业,不搞网络的人可能就没兴趣看。后一个着重科研方法,通过因特网的例子,说明怎么提出问题,解决问题,搞科研的人怎么思考问题。我觉得后一个可能吸引更多人看。当然,说得不一定对,供参考。
每当我讲因特网是指现在我们大家用的基于TCP/IP的包交换网络。我们在研究“下一代互联网”,而不是下一代因特网。当然,我们正是因为因特网有问题,我们才研究下一代互联网,企图来个大创新。那么,现在因特网到底有什么问题呢?笼统的说法多得很,都是些指导性意见,不是科研思路。本文要谈的是网速的问题。我家的网已经从4M提高到10M,但我没觉得提高了多少,好像和过去一样。
这个问题全世界都在关切。Jim Gettys 新造了一个词,叫 BufferBloat,暂且把它翻成“缓冲膨胀”吧!想当初,缓存容量才几百KB,在网速提高以后基本不能用。现在的缓存都是2MB和8MB,甚至达到了16MB、64MB等。这就是缓冲膨胀。喜欢逆向思维的科研人员的问题是:缓冲是不是越大越好呢?所谓“好”当然是体验到的网速快。
首先一个问题是:是不是缓冲越大,下载速度就越快?一个带宽测试表明信息潜在期可以达到1.2秒(你就需要开发测试潜在期的方法),不管装不装IPsec都是一样,可见不是因为装了IPsec引起的。而电话拨号的潜在期只有0.15秒。实验研究表明,这问题也不是由于电源控制、不同的光缆或电缆调制等问题产生,而是由于过度缓存产生。对于3G网络也如此,不过,到晚上就好一些。
做一个简单的测试:在10秒内,送出一个包,并等待回复包。每次收到一个回复包,就收到另外两个。如果送出大包,就收到小的回复包;而送出小包,却收到大包。在10秒钟的后面5秒钟,再测量不同负载下的潜在期。说明潜在期和负载有关系。缓冲加大,引起更长的存取缓冲的时间和启动时的错误动作。
测试潜在期或带宽,并不是一件容易的事情。因为它是动态的。你别看现在有所谓测网速的软件,其实那是在一种很特定情况下测出来的,真正下载的时候达不到那个速度。如果你只测有负载情况下的带宽,你可能不会注意潜在期。当网络中出现从快到慢的转换的时候,数据就会堆积,而形成很长的队列。这在因特网核心进入用户(像优酷视频)或者从用户上传的时候常有。一个高速的家庭网络如果是54M的无线网,实际可能只有1M到2M的因特网连接。一个Linux机器在2M的线上一般有兆位的数据在传输,带有几秒的时间延迟。家庭路由器如果缓冲太小,丢包率就高。不论是WiFi,路由器,还是终端系统,要想工作得好,就必须加大缓冲。但是,如果你只测量带宽,你见不到某些例行网络服务的失效,譬如IP地址的查找。大缓冲和长时延与现行的协议不一致。过大的缓冲严重破坏TCP的拥塞避免机制。因为TCP用若干包的延迟去检测拥塞。包到达拥塞点就缓冲,包来得快,传输得慢,队就加长。队越长,潜在期就长,最后,包丢失,以拥塞通知通信协议。缓冲膨胀允许队列很长而不丢包。但是,当缓冲里充满了包,排泄它们更需要时间,其他的包就进不来,终端用户看到的就是慢速的响应。而许多服务要求较低的潜在期,譬如网络游戏、VOIP、闲谈,太慢了就不可用了。如果缓冲无穷大,就永远没有返回包了。
怎么解决这问题?缓冲究竟多大算合适?不好回答。譬如对无线,其带宽可能变化2-3个数量级。宽带系统可以高达100M,到用户也就10M或更低。你可以时间,譬如多少微秒,而不是多少K字节来界定你缓冲的大小,而且让它动态变化。当然,对于核心路由器,可能需要同时传送若干个流,到10G的缓冲也许也是需要的。对于只占0.01%的超级计算机中心之间的互联,也是需要的,但对于只有2M缓存的广大用户,他们并不一定得到好处,这就是一个网络经济的问题了。
网络对同一个TCP流的间歇性行为使人头痛,因为它不稳定。像视频流或者系统备份常有,而Windows XP不支持视窗扩展。现在许多操作系统都在寻求视窗扩展,到多少G。
为了使缓冲大小动态化,需要硬件和软件的修改,譬如队列管理算法。这个问题的解决需要三方面的努力:用户动态规定缓冲大小;ISP希望给用户高质量的服务;说服设备与软件开发商注意这个事情。没有对所有环节都有效的解,用户需要傻瓜式的时延测量工具,以发现时延发生在哪里?网络边界路由器尤其需要。
为解决这一问题的每个环节,都蕴含着科研课题。
转载本文请联系原作者获取授权,同时请注明本文来自闵应骅科学网博客。
链接地址:https://wap.sciencenet.cn/blog-290937-551185.html?mobile=1
收藏
当前推荐数:9
推荐到博客首页
网友评论10 条评论