栾凯 左会军 曹孝元 苗信凯
(1.中国电子科技集团公司第十五研究所 北京市 100083 2.中国人民解放军96901 部队26 分队 北京市 100094)
网络的传统协议设计基于端到端通信模型,应用于终端间的信息交互。而伴随着网络技术的快速发展和各种新型应用的不断出现,网络的主要应用已从传统端到端的信息交互转变为内容的分发与获取。未来信息系统逐步向云化发展,应用需求也呈现多样化特点,既包含传统的端到端通信,也包含如信息等内容的获取与分发、文件的一对多传输等。
传统的TCP/IP 网络关注端到端的主机通信,在一对多的文件传输等应用场景下会导致数据在物理链路上多次传输,造成链路带宽的浪费。同时,在端到端的链路出现拥塞、闪断等情况下,可能会导致数据在最后一段链路被阻塞,从而引发端到端的重传,造成端到端时延增大以及链路带宽资源的浪费。如何解决未来信息系统的端到端通信问题,同时利用新型网络协议补充增强TCP/IP 在内容分发通信模式下的不足,面向高可靠、低时延、抗干扰/丢包等不同应用需求,提出具备灵活适应能力的传输优化策略是本文要解决的关键问题。
ICN[1,2]是面向当前网络所存在的这些问题而提出的一种新型未来网络架构设想。其设计采用以信息为中心的网络细腰结构取代传统网络以IP 为中心的结构,即将网络关注的重点从哪里获取信息转变为用户和应用所更为关心的信息本身。互联网研究任务组成立了专门工作组研究ICN 标准化工作,并提出了多项技术草案。国际电信联盟同样聚焦ICN 设计并形成了相关的建议书。这些不同设计的主要目标都是实现具备更好内容分发模式的新型网络结构,网络中数据内容的传输由用户、消费者的请求所驱动。而具体所需的数据内容,可能从内容源处获取,亦可能由网络内广泛存在的内部缓存的内容副本所提供。因而网内缓存是这些ICN 结构的重要设计考虑,诸多ICN 架构均对网络内节点具备缓存能力提出了需求,即网络内节点不仅具备转发传输数据的能力,同时还具备缓存内容的能力,从而可以实现更高效的内容交付、降低带宽消耗并避免拥塞。
互联网已经从最初以主机设计实现端到端的通信网络转变成主要提供内容分享与获取的基础设施。随着信息技术的飞速发展,网络应用的主体逐步向内容获取和信息服务演进。同时相关的硬件与通信技术的发展,为网络具有更多的计算和存储能力提供了基础。ICN 可实现内容与位置分离,网络内置缓存等功能,从而更好满足大规模网络内容分发、移动内容存取、网络流量均衡等需求。ICN作为未来网络的一种重要形态,正引起各国研究者的关注,著名的ICN 系列项目包括NDN、DONA、NetInf、PURSUIT 等[3]。
ICN 以互联网的主要需求为导向,以信息/内容为中心构建网络体系架构,解耦信息与位置关系,增加网络存储信息能力,从网络层面提升内容获取效率、移动性支持和面向内容的安全机制能力,以期获得高效的信息共享与获取能力。它颠覆了互联网基础架构以长连接和端到端原则为基础、以主机为中心的网络范式。ICN 关键技术包括信息的命名、基于名字而非IP 的信息传送、网内信息缓存和基于信息的安全机制等。
ICN 利用信息内容唯一标识实现面向信息使用者的网络信息的寻址方式,从而实现信息内容和信息存储位置的分离,其中一项重要的原则就是网内缓存。通过使用网内缓存,实现快速可靠的内容分发。目前已有的ICN 网络策略,如LCE、WAVE、Pro 策略等,不适用于SDN 技术[4]部署的ICN,因为ICN 采用的是分布式决策,SDN 采用的是集中式控制。
我们提出通过结合ICN 和传统IP 网络,实现基于TCP/IP 网络和ICN 的网内缓存机制[5]。其中一个重要特点是,其各个节点能够缓存信息对象的副本,这样后续同一信息的请求可以通过一定的路由路径在缓存节点直接返回请求应答,降低了平均请求的跳数,提升了整个网络的内容分发效率,如图1所示。
本模型以ICN 为基础,建立在TCP/IP 协议栈之上,实现了数据平面与控制平面的分离。控制平面实现路由、缓存控制,数据平面实现数据缓存、数据包和请求包的转发,控制平面和数据平面通过扩展的OpenFlow 协议进行信息交互。扩展的OpenFlow 协议支持的缓存操作包含预先缓存、公告缓存等信息、处理请求包及缓存决策;路由操作包含基于信息标识的转发、转发表的更新与维护。控制平面的命名路由系统(NRS)通过OpenFlow 扩展协议向ICN 节点下发指令,包含添加/删除交换机中的流表项和内容副本缓存,查询缓存空间剩余容量,当前的缓存策略配置等;ICN 节点根据指令执行相应的动作,包含转发请求包、数据包和缓存中的内容副本等;ICN 节点可以向NRS 询问信息包含信息ID 匹配信息,公告缓存信息。在节点缓存副本中通过内容流行度等策略控制副本的数量,提升网络的缓存性能。通过控制平面集中控制网络,利用OpenFlow 交换机中的多级流表实现网内缓存、请求聚合。
在缓存副本的删除和替换过程中,考虑邻近节点的缓存空间,实现邻近节点间的协同操作。通过选择合适的缓存节点,降低缓存替换率,提高缓存命中率,减轻信息内容服务器的负载,减小端上用户获取信息内容所需要的时间,降低网络带宽的占用,提升网络整体性能。
ICN 网络的实现步骤如下所示:
(1)数据信息提供者发布数据信息,以内容的哈希值作为信息标识(数据信息ID)。网络内在某个节点将数据内容缓存后,在路由信息表中记录一条相应的路由信息。
(2)缓存了数据信息的节点,将其记录的路由信息向其领域或父域进行扩散,这样最终在全网建立了该数据信息的的路由表。
(3)当终端用户需要某个数据信息时,发送一个信息查找报文,报文中包含了数据信息ID(即数据信息的哈希值)。
(4)网络节点解析报文获取数据信息ID,并转发报文。
(5)当某个节点查找到该节点缓存了所需数据信息ID 对应的数据信息时,将数据信息包按照信息查找报文的来源反向路径返回至用户,并在所经路径上的路由器节点缓存该内容。
(6)终端用户最终收到了数据信息ID 对应的数据包。
(7)当另一个用户请求同样的数据信息ID 时,该请求可以在逻辑距离最近的路由器中被查找到,返回至终端用户。
在云端部署了应用服务后,来自分域的用户客户端和应用服务端可通过应用层传输协议实现数据的传输,如图2所示。
基于网内缓存的传输协议实现以下功能:
(1)网内缓存。在分域以及一些重要网络路由节点上部署缓存服务器,缓存数据信息。当客户端通过应用层传输协议请求该内容时,某个网络路由节点即可满足用户的内容请求,而不需要将用户的请求转发至内容服务器。
(2)请求聚合。当客户端通过应用层传输协议请求相同数据信息时,ICN 网络按照用户请求信息的ID 进行数据信息查找。这样,网络节点能够将针对同一信息ID 的请求聚合,无需路由和转发每一个请求包,而只转发第一个请求包,待相应数据包返回后,一次性对所有相同的请求进行数据包应答。请求聚合是ICN 实现高效内容分发的一个重要特征,从而达到减少内容服务器的压力,减少网络开销,降低用户请求响应时间。
(3)基于内容名称的路由。用户通过客户端向应用层传输协议提交内容名称,例如/data/org/test/file/a.pdf,应用层传输协议按照统一的规则生成数据的唯一ID,在组装的数据请求包中压入此数据ID,ICN 网络按照此数据信息ID 进行信息路由,直到找到最近的缓存节点,返回数据应答包。
实际的信息网络在使用中会发生网络抖动、网络中断以及链路变化,这些网络变化可能引起上层应用数据重传、失败重试,从而引起网络带宽、存储等其他资源的无效占用,同时,随着网络通信链路手段增加、性能差异较大,也对端对端的数据传输带来了挑战。传输协议需要实现一体化的透明传输,就需要屏蔽这些问题,因此我们提出基于消息路由的云端一体逐跳路由机制。
3.2.1 逐跳传输的消息路由
为了满足数据的可靠传输策略,通过维护消息路由表,并将路由表信息发布至各路由节点,上层应用只需发布或订阅相关主题的消息即可完成端对端的数据传输。应用将消息发布至消息代理节点上,消息代理节点不需要知道网络上所有的代理节点,只需将消息发送至上联的路由节点,由当前路由节点按照路由表信息进行逐跳数据传输发送至目的地,同理也可通过消息节点按需订阅网络上发送的消息。
(1)路由模式下的消息发布。如图3所示,路由模式下消息发布由消息服务节点按照消息路由信息进行逐跳消息传输。
首先客户端X 发布主题为TEST.MSG 的消息,由代理A 匹配主题TEST.MSG 并将消息转发给路由节点1,之后路由节点1 匹配主题TEST.MSG,并结合路由表信息将消息转发给路由节点2,然后路由节点2 匹配主题TEST.MSG 并将消息转发给代理B,最后代理B 匹配主题TEST.MSG 并将其转发给客户端Y。
(2)路由模式下的消息订阅。如图4所示,路由模式下消息订阅由路由节点按照订阅主题进行全局消息订阅,将获取到的消息逐跳传输并返回给客户端。
首先客户端Y 在代理B 上订阅TEST.MSG,由代理B 汇聚订阅主题在路由节点上订阅TEST.MSG,然后路由节点2 检查其路由表并在路由节点1 上订阅新主题TEST.MSG,最后路由节点1 在代理A 上订阅主题TEST.MSG。
图1:ICN 网内缓存
图2:基于网内缓存的传输协议功能示意图
图3:路由模式下消息发布示意图
图4:路由模式下消息订阅示意图
3.2.2 逐跳传输路由算法
逐跳传输链路路由所经过的节点类型有云端骨干网络节点,有线边缘网络节点和无线边缘网络节点。逐跳传输路由的目的是寻找一跳从起点到目的地的网络性能最优或相对最优的路径,在边缘网络中网络性能与数据报文成功发送的概率密切相关,较好的逐跳路由算法必须兼顾减少逐跳路由中的路由跳数与降低链路上发生丢包/错包的概率。考虑到实际网络状况的差异较大、通信链路手段多样的情况,逐跳传输的路由链路的建立,还需要考虑不同网络的边缘网关、网络的实际负载以及路由开销等因素。常用的路由算法包括:非自适应算法,如固定式路由选择和泛洪算法;主动路由自适应算法;按需路由自适应算法等。
3.2.3 逐跳路由传输策略
我们提出的基于逐跳路由的传输协议用于解决跨网络环境下的端对端业务、末端用户对云端数据的需求,以及多个边缘节点间进行跨网信息共享的数据传输。不同的上层应用业务类型对逐跳路由的需求也不尽相同,这就需要逐跳协议需要具有以下传输特征。
(1)“按需路由”与“主动路由”结合。对于端对端业务,其数据流量小且移动性高,按需路由协议开销较小;对于末端用户对云端数据的需求,数据流量较大且节点的移动性较小,此时使用主动路由协议开销较小。通过结合“按需路由”和“主动路由”的结合使用,达到充分利用跨网环境下的网络资源,同时将两种逐跳协议策略的总开销降到最低。
(2)混合路由。对于云端向边缘节点进行数据发送的情况,采用混合路由策略建立逐跳网络。云端在开始发送数据时,先通过传输协议获取到达目的地址的部分网络拓扑及有效路由路径。如果有可达的路径且不需要进行协议转换,则直接发送,否则发起逐跳路由请求,同时通过主动路由算法建立逐跳网络。当逐跳路由请求得到响应后,比较两者的开销,选择开销较小的逐跳路径传输数据。
本文通过对ICN 络的架构、关键技术进行分析,提出了基于ICN 网内缓存的传输策略优化机制,通过结合ICN 和传统IP 网络,实现基于TCP/IP 网络和ICN 的网内缓存机制,并实现了数据平面与控制平面的分离以适应SDN 网络的部署。通过网内缓存机制,降低了内容请求的平均跳数,提升了整个网络的内容分发效率。针对信息网络在使用中会发生网络抖动、网络中断以及链路变化的情况,本文提出了基于消息路由的逐跳路由传输优化策略,对上层应用屏蔽了网络抖动、网络中断,以及通信链路多样化和性能差异带来的影响,从而提升了网络传输的可靠性。