@ fnii.cn

登录邮箱

张行功 HTTP-ICN信息中心网络探索和实践

发表日期:2015年12月11日      共浏览 802 次      编辑:


非常高兴今天有机会和大家分享一下我们在ICN方面做的工作。为什么ICNSDN的发展有这么大的差别?ICN到底是在做什么事情?我今天把我们对ICN这些年的理解和我们做的一些工作做一些介绍。

它的本质就是以信息和内容为中心的网络,能够把数据和位置分离,ICN是第一个能够从网络协议的角度实现了比较靠谱的分离。传统的网络是面相连接的,电话网等等,是端到端的数据的传输,到了ICN之后,是面向信息共享或者数据共享的网络,这一点从它的理念角度变化是最大的。它其实把数据和位置分离之后,最大的好处就是能够支持缓存。我们一直在讲NDNICN,怎么实现,ICN提出了一套自己的方法。

09年这个VAN提出了CCN,反响很大,但是后来置疑也很多,置疑主要集中在两个地方,到底可以解决什么问题,ICN做什么事情,这个事情一直没有很好的交代。第二个ICN说了很多优点,你怎么去实现?怎么根据海量的名字做路由寻址,这是当年提出CCN构想的时候是没有讲清楚的。我们能看到VAN提出来之后,关于ICNSDN置疑到现在。

我们先讲一下为什么我们需要ICN。第一点就是IP流量不用讲了,整个互联网的流量增加非常快,至少是20%的增长,互联网最早开始诞生的时候,它的数据是终端和主机之间控制数据,到现在90%以上都是媒体数据,而且媒体数据量增加的越来越快,数据的需求在互联网的传输是很明显的优势,之前我们做的案例,在一个中型城市,每个人看一个两兆的电影,大概是高清,如果是一百万个人,每个人看两兆,什么交换机可以承受这么大的流量。这个流量的需求是远远超过了网络发展的速度。现在的互联网还没有准备好支持大数据量媒体高清的数据的传输,昨天和CCTV讨论的时候,说马上要上4K了。

对未来网络提出了一个非常迫切的需求,缓存换带宽,先不管怎么实现,缓存换带宽是工业界已经在做了,第二点是移动性,移动设备终端的增加,如何支持移动终端数据的请求,不仅是说用户的移动,包括数据源的移动,这是一个很大的问题。未来网络既然是未来,怎么把这个问题解决掉。第三个是安全性,这也是一个很重要的问题。

关于这方面的工作,国内外做了很多的探索,一些未来网络的项目,包括国内也有很多机构。我碰到一个开会的公司的问什么叫ICN,我说ICN就是解决缓存的,ICN是不是要退款IPICN一上来要革我的命了,这个怎么能做呢。这个可能是一个误解。因为ICN的概念不是凭空而起的,之前我们可以看到基于缓存的网络,我们现在日常生活中可以看到很多,现在每天上网都在用CACHEICN已经占了互联网50%的流量,已经成了我们互联网的一部分了。基于缓存的网络,已经用了很多年了,所以说这个ICN绝对不是一种革命性的,或者是一种凭空出来的新的网络形态,只不过从理念上更近了。

P2P是泛在缓存,CDN是主动推送,集中式内容管理。既然已经有这么多已经具备缓存的处理,为什么还要做ICN呢?它们都有自己的优点。CACHE是很被动的,它是没有路由功能,比如说凤老师可能有这个数据,但是因为我不知道他有数据,我去服务器看过去。这个P2P的效率很高,但是它的问题也很明显,是一种很封闭的协议,从来没有在学术界提到网络协议的层面上讨论,它确实有这个问题,它太封闭了,而且太不遵守互联网规则。CDN是比较成功的网络应用。AKAMAI CDN在全球有1000多个P0P,无数台存储,它要去在全球这么多台的存储服务器上做管理,它的成本在这里,CDN的优点是什么?可以提前预测用户的需求,然后把数据主动的推过去,缺陷是什么?它是集中制的控制,管理成本非常高,就决定了它没有办法成为网络的基础设施,就是因为管理的协议是不一样的。

什么是ICN呢?它就是一个缓存的网络,或者可以认为它就是一个CATCHE,把存储和路由作为一体。从技术角度的核心是什么?就是基于内容的一种路由寻址,把CDNICN都可以拉到这个范畴。

ICN的基本运行规定,它的特点有很多,我觉得最主要的三个特点,位置和数据分离,它是基于内容来做路由和寻址的,提供了一种可行的方案。第二点是网络内置缓存,都可以把它作为一个缓存的服务器,来提供就近的数据服务。第三个特点就是就近服务。这三个特点比P2P也好,它能够做到缓存的自主制。每个路由器只要遵守统一的规则,这个网络就可以架起来。所有的ICN只要遵守同样的协议,这些缓存就会自组织了,不需要集中像CDN一样统一的管理,管理成本就降低了。这是ICN运行的原理。

前面讲了ICN的优点,看着很美,怎么去实现?我们这几年在这上面做的工作,首先加了一句话,后IP网不是非IP网,大家总是说ICN是不是要革SDN的命,后IP网不是要革SDN的命。我们从这个角度的理解,ICN不是一种革命的架构或者演进的架构。把缓存加进来了,的确对缓存会产生影响。它的实现是不是一定要把IP推翻呢?我们认为它的实施和实现是有可演进的,是一种IP的基础之上,再支持缓存而做的IP的扩展,所以它的实现是可演进的方式。大家一问我这个东西ICN是革命还是演进,这个问题是挺难回答的。

我们基于这种想法,我们就开始做ICN的实施,我们希望大家不要总在讨论ICN的概念,我们去做一下,然后把ICN落地了,看一下它的效果,我们在IP网的基础上假设一个ICN的架构网络,这就是我们现在做的工作。它是基于IP的基础上做的,就会接入所有网络的设施,都可以兼容。在这个基础之上,我们逐步的把基于地址和名字混合路由。

我们开发了一个HTTP-ICN的原型系统,这个信息中心网络具备了几个特点,任何一个节点都是一个缓存服务器,第二个不是光通过地址获取数据,很多方案,其实所谓很多的ICN方案,都是通过地址获取数据的,通过名字的路由的方式获取数据。通过这种方式,我们去验它可以实现自主分发,自主服务,这一点会比和CDN来比,P2P来比,更有可能成为未来互联网基础设施的角色,它还是比他们要大一点。

因为我们做这个系统,一方面是为了验证ICN的一些原理,包括一些算法,另外一方面,我们也希望在863项目的支持下,它成为一个可提供一定服务的平台,这也是我们做这系统的目标。

这就是我们一个很简单的架构,我们是基于HTTP-ICN协议来做的,现在的任何浏览器就可以连上这个HTTP-ICN这个网,在我们这个内容路由器发出请求之后,会转发路由里面的请求。整个技术架构,它是基于标准的HTTP的服务器,比较好的接入ICN协议,包括它的缓存,包括它的FIB表。

这是我们目前在做测试阶段的部署情况,现在已经在北大搭设了两个点,在美国设了一个点,在上个月开会的时候在全国再增加五个点。

目前在这个平台上做了一些简单的实验,做了什么事情。第一个就是FIB的域名路由,我们知道很多ICN出新之后,很多服务,很多网站的服务IP是跳动的,比如在北京访问的时候会给你选一个北京的IP,很多网站服务商比较恶劣,这个服务只针对没有用户开放,不对中国用户开放。访问一些学术网站,因为北大的校园网IP服务是交了钱的,只对北大校园网进行开放,这个就很麻烦。我们实验五所有两个出口,上教育网慢,我们更喜欢从左工网出去,它就要收费,你没有办法从路由器角度锁定这个IP一定走校园网,用IP做路由很困难。它来检查HTTP的请求,根据你这个名字去解决你的下一条走校园网还是工网,这样就解决本身跳动的问题。这是个很特例的,只有我们碰到了。从本质上是说现在互联网上的内容已经是多个数据,多元了。原来我们理解互联网上的内容,只要获取IP就可以获取,现在不是分在一个IP上,实际上是经过了翻译之后,今天用这个IP获取的,明天可能是用那个IP获取的。如果还是把数据和IP绑定,就会增加很多麻烦。这就是这个问题的本身。如果我们把数据和这个IP分离了,我们用名字获取,这个事情解决起来就非常简单。

ICN最需要做什么?就是需要做大数据量的缓存和共享,比如说看个电影能不能快点,或者上网能不能快点,确实很快,不仅能快,还可以看各个视频网站,都可以通过HTTP-ICN平台进行浏览。这个地方的原理前面也讲了,只要有一个人看懂内容,离你最近的缓存上就会有这个数据,下次再访问的时候,从缓存直接过去这个数据,所以就快了。原理上非常简单。

前面是两个HTTP-ICN能做的事情,后面分析一下从目前取得的这些结果反思一下,现在的HTTP-ICN的设计有哪些缺陷。第一个问题,名字路由是否可用。我们一般根据名字做路由是不是可行?传统的都是根据地址。根据我们现在的实验来讲,根据域名或者名字做路由,肯定是有用的,能够把数据和位置做分离,它的优势非常明显,支持多数据源的数据获取。同时也支持数据缓存。内容名字路由,它一定是一个非常有用的一种方式,我觉得这个内容名字的路由应该要考虑。

有了名字路由之后,是不是就要把IP的命革掉呢?我的答案是否,不能把这个地址丢掉,为什么不能丢掉?很简单,因为名字空间不好占。内容名字本身是扁平的,虽然我们要把名字做成一个层次化的,名字本身就是扁平的,不可能做成层次化的。置疑ICN最多的几点就是它的层次化,地址路由一定要有,而且是层次化的网络地址加上扁平化的内容名字,这ICN未来做命名方式最佳的组合。

第三个问题,ICN路由表是有状态的。NDNPIT记录路径的状态,是用来支持广播用的,做互联网最反对在路由器里加状态,这的确是现在ICN设计的问题,对于海量内容的请求要加状态,基本上不太可能实现的。由于NDN里面有了缓存之后,缓存本身已经从时间空间上把发送吻合了,不需要状态解这个事情,所以PIT表确实有点多余。未来ICN状态里是无状态的转换。

我们在HTTP-ICN里面解决了两个问题,一个是内容寻址,我们是层次化位置+扁平化内容名字,优先名字路由,缺省位置路由的寻址。仅路由最热门的内容名字。无转发。

针对整个路由算法,加了缓存之后的网络,已经和传统的网络路由不一样了,有了缓存之后,比如最短路径,都已经不适用了,所以我们考虑了重新提出来一套带概率的路由。这是我们在HTTP-ICN框架下针对于ICN的路由协议和寻址方式做了一些优化。

传统的基于名字,在CCN提出的名字是两种,一种是FLOODING,再就是DNS无,域名解析。我们提出一个混合路由,优先内容路由,其次是位置路由。这是我们在HTTP-ICN框架中做的工作。

这个工作的核心,我们把位置和内容结合起来,实现了在现在互联网上的寻址的查找过程。缓存是动态的,如果从缓存里定位一个内容,这个代价非常大,不可能根据名字做内容,我们提出一种内容缓存概率。

我们其实做了一个很简单的工作,我们把ICN在现在的互联网上用HTTP实现了信息中心网络,提供内容自动分发和缓存等服务,验证ICN名字路由等的问题,下一步希望能够更大规模的做更多的验证,欢迎大家一起做这个工作。

谢谢大家。