命名数据网络(NDN)上的路由转发过程

时间:2024-04-08 08:30:29

      NDN的路由器需要维护3个表:Content Store(CS)、Pending Interest Table(PIT)和Forwarding Information Base(FIB). 在NDN中,有两个重要的角色,消费者(Consumer)和生产者(Producer),前者是发送兴趣包(Interest Packets)的数据消费者,后者是提供数据包(Data Packets)的数据生产者。通信是有消费者通过发送兴趣包来驱动的,通信转发过程如下图所示,用户想要获取数据时,首先发出一个兴趣包(包含所需数据的名称),路由器接收到这个包后,首先在CS中查找是否有与当前名称匹配的内容,如果有,则直接将匹配的数据包返回给发起请求的节点;如果没有,路由器会在PIT中记录下当前名称对应的兴趣包是从哪个接口进入的,同时路由器在FIB表中查找与当前名称匹配的记录,以确定从哪些接口把这个兴趣包转发出去。当某个节点拥有与名称匹配的数据时,就返回数据包。这个包会沿着刚才兴趣包经过的路径返回,当路由器接收到数据包时,它会根据这个包的名称在PIT中查询匹配的记录,将这个包从所有匹配的接口发出。这样,所有之前请求过相同数据的节点都可以的到所需的数据,PIT中匹配的记录都将被删除。路由信息和用户请求过的内容都保存在路由器中,这种方式最大限度地挖掘了路由器的存储能力。如果链路发生故障,恢复后可以从中间节点的缓存中取得数据,而不需要路由到原始数据生产者,以减少延时和带宽消耗,提高内容分发的效率。                           

                                      命名数据网络(NDN)上的路由转发过程