1.命名数据MANET网络中一种降低冗余数据包传输方法,其特征在于:该方法包括以下步骤:
步骤1:修改NDM网络中的兴趣包结构,添加应答字段ACK用于存放消费者上一次收到的数据包名,该应答字段ACK内容记为Name‑ACK;在NDM网络中的每个节点设置计数器,计数器的阈值为T;
步骤2:消费者生成请求兴趣包,兴趣包中的ACK字段内容为空,然后采用NDM网络中的广播转发机制,传输该请求兴趣包,并等待相应数据包应答;
步骤3:消费者在收到应答回来的数据包时,将该数据包的名字保存在消费者端,记为Last‑Name;
步骤4:消费者生成请求兴趣包,此时ACK字段存放上一次保存的数据包名Last‑Name,然后采用NDM网络中的广播转发机制,传输该请求兴趣包;
步骤5:路由节点收到上一步发送的兴趣包后,根据该兴趣包ACK字段中存放的名字Name‑ACK,将路由节点中对应名字的计数器自增1;
步骤6:判断计数器是否达到预先设定的阈值T,如果达到阈值,就删除PIT表中关于名称为Name‑ACK的请求记录;
步骤7:当网络中冗余的数据包到达被删除PIT记录的路由节点时,因为查找不到对应名字的转发记录,则不再进行冗余数据包的转发。
2.根据权利要求1所述的命名数据MANET网络中一种降低冗余数据包传输方法,其特征在于:在NDM网络中,一个兴趣包从当前路由节点广播给周围所有节点,之后会有多个携带相同数据的数据包返回给消费者,对于消费者只有第一个返回的数据包是有用的,之后收到的相同数据包都是冗余的。
3.根据权利要求1所述的命名数据MANET网络中一种降低冗余数据包传输方法,其特征在于:模拟NDM网络中单个消费者节点请求获取数据的过程如下;消费者节点R发送兴趣包请求数据,网络中有数据源S1和S2能满足R的请求;假定兴趣包和数据包在路由节点上经过每一跳的时间都是相同的;模拟消费者节点R广播兴趣包videoX/f1后的四个结点;第一阶段,A、B、G三个节点收到兴趣包videoX/f1,添加PIT表项;第二阶段,S1、C、H三个节点收到兴趣包videoX/f1,C、H向PIT表中添加表项,生产者节点S1收到兴趣包videoX/f1后准备发送相应的数据包videoX/f1;第三阶段,S1发送数据包videoX/f1到A节点,A节点接收到数据包videoX/f1后把内容存在cs表中,将数据包videoX/f1转发给消费者R,删除PIT中的videoX/f1表项,H、C节点继续转发兴趣包videoX/f1给节点I、D和F;第四阶段,至此消费者R最终收到了所请求的内容,同时生产者节点S2此时才收到兴趣包videoX/f1;模拟消费者节点R广播携带了ACK为videoX/f1的兴趣包videoX/f2后,网络中的数据传输情况;第一阶段,节点A、B、G收到了带有ACK字段的兴趣包videoX/f2,分别删除三个节点中名称为videoX/f1的PIT表项,添加名字为videoX/f2的PIT表项;同时I节点收到了生产者结点S2返回的数据包videoX/f1,因为消费者已经收到过数据包videoX/f1,所以这个数据包是冗余的,但是这个数据包还会继续转发;第二阶段,S1、C、H三个节点收到ACK为videoX/f1的兴趣包videoX/f2,分别删除三个节点中名称为videoX/f1的PIT表项,而此时从I节点发出的数据包videoX/f1也恰好到达了H结点,因为H节点中已经删除了名字为videoX/f1的PIT表项,所以这个冗余的数据包不会再继续转发,通过减少冗余数据包的传输提升NDM网络的整体性能。
4.根据权利要求1所述的命名数据MANET网络中一种降低冗余数据包传输方法,其特征在于:当网络中某些具有相同兴趣请求的消费者获取到请求的数据包后,接下来发送的兴趣包会拦截部分消费者已经获取到的数据包的传输。
5.根据权利要求1所述的命名数据MANET网络中一种降低冗余数据包传输方法,其特征在于:在每个路由节点增加了一个计数器,数据结构为哈希表map
6.根据权利要求1所述的命名数据MANET网络中一种降低冗余数据包传输方法,其特征在于:转发策略流程分为消费者节点兴趣请求流程、路由节点接收处理兴趣包流程和路由节点接收处理数据包流程;
消费者节点兴趣请求流程和路由节点接收处理兴趣包流程如下;
首先消费者生成请求数据的兴趣包,将消费者端保存的Last‑Name赋值给兴趣包中的ACK字段,如果这是消费者发送的第一个兴趣包,ACK字段内容应该为空;消费者节点将生成的数据包进行广播,路由节点收到后会根据ACK的内容与相应计数器的值对PIT表项进行处理,以达到拦截冗余数据包的目的;经过中间路由节点对兴趣包的转发,含有请求内容的节点生成相应的数据包返回给消费者节点,消费者节点收到返回的数据包后,将Last‑Name替换为当前收到数据包内容的名称;
当路由节点收到兴趣包之后,首先查看PIT中是否有ACK对应的兴趣项,如果没有,则表示该节点不含转发冗余数据包的PIT表项,路由节点直接以NDM默认机制处理该兴趣包即可;如果PIT中含有ACK对应的兴趣项,就表示该路由节点可能会转发冗余数据包,节点中ACK对应的计数器自增1,当计数器达到阈值T,就表示该节点在将来传播ACK对应名称的冗余数据包的可能性很大,删除PIT中对应的兴趣表项,以拦截将要到来的冗余数据包;接下来在NDM默认的兴趣包处理机制下,节点对兴趣包进行处理之后的再广播出去。