说以太网延迟不好是个错误的命题

Sina WeiboBaiduLinkedInQQGoogle+RedditEvernote分享




 前言:

在陈首席的弯曲评论网站上看到一篇文章引发了一些讨论,其中谈到如何降低以太网的延迟,原文在这里aresta networks 数据中心 云计算

谁说以太网延迟不好

说到以太网的延迟,从我刚刚进入这个行业的时候就很多人在质疑,当然陪绑的还有IP网络的延迟。在我开始胡说八道之前我们先看看谁爱这么说,他们为什么这么说。

一般爱说这个话的人无非有两类,第一是搞以太网或者IP网的。另一种是搞竞争技术和产品的。

第一类人说这个话题的时候,一般的口气是原来不好,现在……而后会介绍他们的新技术和新产品,新技术比如说我们的新协议,百兆以太网、千兆以太网、万兆以太网,40GE、100GE。说产品的一般会说盒子和芯片,我们的新盒子如何如何,我们的新芯片如何如何,我们的新体系架构如何如何……

第二类人说这个话题的时候,就是否定的看,而且是习惯向后看,如果说确实是非常懂非常了解行业的也会把新的技术打击一下,但是点到为止,不说透。是啊,谁会跟一个IT记者说这些呢,他们眼里我们都是拿钱的爱找花边新闻的主。谁爱说以太网延迟不好呢?我刚刚入行的时候一般是搞ATM交换机的人会这么说,而后呢是搞SDH/SONET的人会说。后来大家知道会说这些的公司少了,接下来有人又扛起了大旗,比如搞FC的,比如搞Infiniband的。

我做了这么多年的记者,就没有人真的给你讲清楚。我不知道是不是因为我碰到的大多是洋买办的工程师,而且认为一个IT记者根本没有必要也没有那个智商理解这个问题,所以至今没有人给我深度的剖析这个问题,特别是在白纸或者白板上用上数据详细讲讲,加上我自己后来越来越不好学,所以这个问题我一直是懵懵懂懂的没有搞清。但愿我碰到的很多人是认为我没必要或者压根听不懂才跟我这样说的,而不是他们没搞懂。我也希望这篇拙文能够让大牛们给我讲讲清楚,让我也明白明白。

怎么提高以太网的延迟

因为我就没搞懂为啥说以太网延迟不好的技术机理,所以我就胡说八道一下如何提高一下以太网的延迟。

我探讨的延迟问题我觉得有两个层面,一个是基于RFC 1944/2544/2889的,趁着没忘光。另外呢我也觉得是从应用层的吧,这点比较含糊。

第一种是协议层面的。我觉得两条路,第一提高传输速度,比如从10Mbps-100Mbps-GE-10GE-100GE。第二呢是提高同等调制速率下的协议效率,比如开销更小,缩短一下Gap,一次传输的数据包货多些,内容多些,比如超大帧啊。前者对于2889来说看得明显,后者就看不出来了只能看上层应用的反应了。

第二种我觉得是提高盒子的硬件技术,比如芯片层面的,比如板子层面的,这个我就不班门弄斧了,反正是数据包从这边到那边速度更快。按照2889的说法大家都理解,sf和cutthrough的区别其实也不大。

第三种我觉得得搬个板凳站上去,从整体网络层面来看,而这里的技术提升所降低延迟呢也是对2889和应用都有帮助。总体来讲呢就是缩小网络的规模,尽可能的。要想跑得快除了跑得速度快以外,就是看距离和跑的路线是否曲折了。比如你从北京跑到上海,如果能够把上海修到北京边上那是最好,另外如果不能把上海搬家,就尽可能让北京直接到上海跑直线,别先绕趟**;另外中间少过城市,也就是减少必须减速或者要流控的点。对于上层应用来说还有一点是,尽可能减少丢包、乱序或者其他导致需要重传的概率,说白了就是又快又好的把数据送到目的地,别让上层应用等起来没完。坦率说这里我觉得问题比较复杂要降低延迟,主要和政治因素、设计网络的能力,以及网络协议、软件和硬件都相关。

坦率说政治最重要,如果你把上海直接搬到北京边上,不就省得修京沪高铁,也不用在列车和铁道上较劲了?如果让中国人都住在一起,那不是解决了城际交通的大问题了?

可惜,这不可能,谁打算这么干,别说IT记者了,就是街边的大妈都能跳出来骂你白痴。

这一段写完了也省了我本打算单拿出来写的如何从全网的角度看以太网延迟。

比较以太网还有IP和其他网络技术的延迟有意义吗?

好接下来进入到核心挨砖头区域,简称和蔼专区。我觉得如果拿着FC、Infinitiband等技术来对比看以太网的延迟这个观点是个不好的方法,很不好,不科学,听要偏听,看你要偏看,但是搞以太网的还是要想办法把速度搞上去,广大人民群众还是盼着呢。

协议层面和硬件层面的问题我不讨论,我只是说整个网络的延迟问题。

首先是以太网覆盖的区域太大,IP网更是。而FC和Infinitiband一般联接的区域都有限,联接的计算机数量也有限。换句话说,以太网讨论延迟的时候是中国或者俄罗斯一地到一地的延迟问题,说延迟比较大,而FC、Infinitiband则是讨论的是日本、新加坡平均城市之间的延迟问题。覆盖的区域大,链接的终端多,复杂还带来的问题就是网络设计复杂,层级会更多,如果FCoE发展之后,会发现在数据中心通常就要进行多级的设计,而在存储侧同样要多级设计,也就是从服务器到存储的最终设备要有多个多级设计的网络经过。

也就是说以太网/IP从端到端跑得会距离更长,由于联接的设备太多,导致网络层级会比较多,这样就必然引入更多的拥塞点和减速点,而且还可能会因为一些问题导致绕路情况的发生。

还有,由于以太网/IP的向前兼容性很好外由于这个技术比较简单,可扩展性特别好,网络中非常复杂,有可能有10M、100M、1000M等多种接口,从网络整体层面面临的问题也更多,而且还接入了很多特殊的设备,比如IPS、防火墙、加速设备等等,一群步调不一致的人在一个网络中跳舞……所以从应用的角度去比端到端的延迟,以太网和另外的技术没有任何的可比性。

要想延迟低我觉得无外乎,第一做得要专、第二尽可能小控制范围、第三就是协议硬件上下功夫了。这个对于以太网/IP这样的东西不可能。所以说以太网能够有这样的技术水平已经很牛了,要是别的像ATM、infiniband、FC其实是取了专和小的巧。

以太网和IP不能改变的现状,就如中国zhengfu来说不可能让10多亿人都住在北京周边,真能住下肯定是世界上最大的温室气体排放地了。

创新之路何在?

再多喷两句,除了提高传输速率和盒子的处理能力,还有什么办法能够降低延迟?

只能从全网的角度来调整架构,说白了就是做小,做短、做专。

做小和做短,最好的方法,我想是把数据中心里所有的服务器都连接到一个超强的大交换机上,最好是有一个超级强大的交换矩阵和转发引擎,所有的终端到另一个终端都是一跳完成,而且带宽不受损耗。这个看来暂时没戏,不说芯片的能力,就说以太网的布线传输距离也很难,除非说,每个服务器做得都非常小,服务器到这个超级交换机都用光纤传输,不用担心距离。这个基本上不现实。

那么就是虚拟到一起,其实我觉得思科、 Juniper还有华为、中兴以及最早的Avici做得核心路由器就是这样想的。如果有一个超大的基本上无阻塞的交换矩阵把若干个交换机连接在一起,这些交换机之间跑私有协议,压缩带宽开销和提高使用效率,降低端到端的跳数。不过在企业网可能没人接受得了如此高的成本。不过现在在企业网领域,这个是现在努力的大方向。比如虚拟机箱的技术,在一个多层级联的网络中,使用一些私有协议,提高原来作为冗余的电路使用效率,加快故障后收敛的速度,提高整体的稳定性,同时还有比较好的链路负载均衡技术,提高节点间带宽使用效率,降低乱序和丢包的出现……

喷完了,砖头来吧。

(4个打分, 平均:5.00 / 5)

雁过留声

“说以太网延迟不好是个错误的命题”有7个回复

  1. droplet 于 2009-10-27 2:28 上午

    不错,很涨知识。楼主的想法已经是目前很cutting-edge idea了,有很多公司在向这个方向做。

  2. 陈怀临 于 2009-10-27 6:26 上午

    荣总的文风太狠了。典型的北京小。。。的风格。我喜欢。不学究,但事情还都说明白了。狠人呀。。。

  3. 理客 于 2009-10-27 7:38 上午

    可能叫“伪命题”更学术味浓浓一点。
    包交换有很多好处,比较关键的有成本低,从上行到下行可携带的控制信息多,信元开销少。
    但是包交换肯定有问题,比较明显的是小包时延不可控,导致的抖动,这个对一般应用是没有问题的,但是对于目前把的包时钟技术,就可能有问题了,传统TDM时钟还问题不大,主要是3G,尤其是4G,为了在手机从基站间漫游的时候保证高带宽下的高速,对时钟精度要求很高,所以对抖动也时延要求更高。
    还有就是交换网的QOS和组播处理。
    其实我也没有很仔细的分析过,也许我上面说的也是伪命题。我之前也一直觉得为什么要上昂贵的信元交换,咨询过一些专家也没得到很好的答案,但是我现在大体相信信元交换是必须的,好像许多客户也相信,不用太多忽悠,还没碰到很较真的。
    有时间仔细研究一下,不过希望在弯曲中有隐藏的高手给同学们解解惑,答答疑。

  4. igp2bgp 于 2009-10-27 9:23 上午

    arista的switch更多的是为DC做的,所以latency还是他们很看中的一个指标. 在chip级连一个量的级别上,就是拼延时.

  5. foxmail 于 2009-10-27 5:05 下午

    楼主的确是IT记者.
    一些基于队列调度的Qos也会造成延时.

  6. 大荣 于 2009-10-27 6:00 下午

    to foxmail,呵呵,本人如果算是记者也算是之前的记者,这几年干了不少杂事儿,很不专业。不过我倒没觉得说有的所谓专家真正怎样。况且我不是做盒子的,也不是做芯片的,如果非要分类算是没事儿爱挑刺儿的。要想降低延迟,最好的方法就是每个终端到每个终端都直接连根线。毕竟现在已知还是光或者电磁波跑得快,如果再提速只能靠搞物理乃至哲学的同志们努力了。如果面对人与人通信的需求,那就是鼓励大家练好眼睛,同时让世界减少碳排放,提高空气透明度,并且求各国神仙减少降雨,同时最好的方法是把地球敲平了。针对计算机联网,降低延迟的最好方法要不连线要不用无线,搞网络通信的朋友别费劲研究盒子了,直接练着织毛衣的或者做挖沟的功夫更好!
    to 理克。如果在讨论一个技术要在普遍联网的这个命题下,如何提供低延迟的新技术,的确很头疼。有的人会去在网络和盒子上想办法,有的人会去在别的地方去取巧。记得当年对pal ntsc几种电视技术有过讨论。我觉得比较形象的比喻是中餐和西餐。从食材的处理上,很多西餐呢是厨子相对省事儿,然后发刀叉给最终用户,切成什么样算是你自己的刀工水平。中餐的大部分做法是厨子相对费事儿,比如切肉条、肉丝、肉块,然后发给食客一对儿木棍儿,抱歉最近在看牙,所以对这个比较敏感。
    搞TDM的同志我很敬佩,现在的问题不是他们不值得敬佩,而是说这个世道乱了。举个3G/4G的例子吧,现在3G乃至4G想提高你们阿普值的业务多聚焦在视频、音乐和游戏。但是有这些业务的那些人呢,基本上对电信的人是爱答不理,比如搞游戏的比如youtube比如facebook,有你最好没有呢也不求着你来。而且老百姓也不太识货,比如现在的网上语音和视频应用吧,他只在乎流畅,并不关心现在看到听到的东西,是几分之一或者几秒前隔壁兄弟的动作。换句话说,一群中国厨子遇到一些西方拿着刀叉的食客,没人懂得欣赏你的刀工。
    纯属瞎喷。

  7. 大荣 于 2009-11-02 6:42 下午

    一个朋友的问题,不知道谁能解答一下:
    我觉得TCP协议在40GE的长距离高速网络中会造成数据交互的明显延时,这个问题现在是否已经解决了?