【概要】
首先解释一下什么是broadcast-based self-learning,首先通过广播Interest,并且观察数据包返回路径,记录在相应table中,那么未来相同的Interest便不会广播,而是通过已有的路径单播。
这篇文章主要是讲如何在NDN中运用broadcast-based self-learning。作者主要从下面几个方面介绍。
- The name-prefix granularity
- The trust problem
- Self-learning on switched Ethernet
Prefix Granularity
一、 Chanllenge——How to determine the name prefix of an inserted FIB entry from the Data name?
假设图中B可以提供前缀为/A/B的内容,当有一个请求/A/B/C/1的请求时,可以从B中获取内容,那么在中间的节点的FIB表中prefix应该如何设置呢?如果设置成了/A/B/C,那么对于/A/B/D的请求会产生不必要的广播,如果设置成/A,那么对于/A/E/F/1的请求又会出错,找到节点B。
二、 Solutions
- k-shorter Prefix
这种方法简单粗暴,直接选取前k节,但是对于不同的应用k的取值是不同的,在现实的网络中,由于应用过多,也不好专门设置一个表记录每一个应用的k。
通常取k比较小,因为不必要的广播比转发错误的代价更小。
- FIB Aggregation
如果在某个节点的FIB表中发现有很多的长的类似的前缀,它们的下一跳相同,那么我们便可以合并这些前缀。Eg. /A/B/C,/A/B/D,/A/B/F…可以合并为/A/B,当然这还是有一定几率犯错,可能会有未出现的/A/B/X,它的实际下一跳和选用的下一跳不同。
- Prefix Announcements
就是让producer将自己服务的前缀告诉给网络。在返回数据包时,附上自己的Prefix announcement。这种方法可以适应各种粒度的前缀,但是缺点也很明显,会增大带宽的overload。
可行变种:类似于tracing。consumer先发一个寻找它所要内容的包,定位后,沿着路径再发请求包。
Trust of annoncement and data
-
-
- Chanllenge
- ARP spoofing 通过传递虚假信息,是的consumer发的Interest包经过某一节点,通过此节点可以获取Data包,从而达到监控等目的。
- Producer spoofing 这类攻击可以通过NDN强制data认证机制来解决。
- Trust model for announcement
在NDN中,所有节点都会从网络管理者那里申请一个 announcement signer certificate. 这个证书里面包含的prefix name便是合法的。
-
-
- Trust schema for application data
每一个prefix annoncement 会携带在这个prefix name下的合法data。
Self-Learning on switched Ethernet
-
-
- Building forwarding tables in the data plane
类似于flood-and-learn.
Ethernet 在处理bridge loops时采用了Fast Spanning Tree Protocol(FSTP).FSTP的缺点在于严重的降低了可用带宽以及不利于Ethernet的性能。
NDN中利用<name,nonce>对来解决loop问题。如果一个节点在某一时间段内接收到了相同的<name,nonce>,那么它只会处理一次,其余的全部抛弃。
-
-
- Minimizing flooding overhead
减少overload的途径之一便是减少广播次数。
每一个Interest有一个tag,“discovery”/”non-discovery”.只有当Interest的这个tag为”discovery”,并且节点不知道通往producer的path时,节点才回flood。否则,就是通过unicast。
-
-
- Fast reaction to link failures
如何确定是link failures? NDN-BFD。如果在一定时间内没有任何数据包或者“idle packet”返回,那么认定为link failure。
解决办法:
-
-
- 如果FIB表中有alternative path,那么沿这条path转发
- 如果FIB表中没有alternative path,并且这个包“discovery”,那么就flood。
- 如果没有alternative path,而这个包是“non-discovery”,那么就发送一个Nack给downstream。交由上一跳来处理,直至consumer。
- Consumer retransmission
两种重发情形:
-
-
- Nack;当Nack包传到consumer,那么consumer会发一个”discovery”的Interest。
- Retransmission timer: 根据TCP算法算出一个time threshold.超过这个阈值就重发。
- Handling producer mobility
当成link failure处理,原来的路径作为alternative path.
Caching of Internet contents
cache相关的基本内容不变,关于content retrieval,引入了一个gateway,这里没有看懂T_T
Diverting Interests to off-path caches
由于CS有限,那么很有可能原来cache的内容被替换出去了,但是在它后面的节点(off-path)中可能还cache。为了在off-path中选出最有可能cache的节点,引入了一个counter.也就是通过该节点的数据包的数目,counter越大,替换一般越多,那么原来的内容被cache的几率越小。