通信结点就是任何与移动结点相通信的结点,它可以是静止的,也可以是移动的。移动结点能够通知通信结点自己的当前位置,这个动作通过通信绑定过程来完成。作为这个过程的一部分,为了对绑定的建立进行授权,需要对返回路径可达进行测试。当向任一个IPv6目的地发送数据包时,结点必须在自己的绑定缓存中检查是否存在目的地地址的记录。如果存在有目的地地址的记录,这个结点就使用一种新的路由包头来向这个绑定中的转交地址发送数据包;否则,这个结点以通常的方式发送数据包,这个数据包将发送到归属代理,归属代理截获这个数据包,然后通过隧道把这个数据包发送到移动结点。本文对此过程进行了详尽阐述。
一、移动通信结点的概念描述
每个IPv6结点为其他结点维护一个用于绑定的绑定缓存;每个IPv6结点都应该为它的每一个IPv6地址维护一个独立的绑定缓存;每个“绑定缓存”条目应包含以下几个域。
1.移动结点的归属地址:该域是在绑定缓存中搜索一个发送数据包目的地址的主键;如果数据包的目的地址与绑定缓存条目中的归属地址相匹配,则该条目应该被用于路由这个数据包。
2.移动结点的转交地址:在绑定缓存条目中,移动结点的转交地址与归属地址域相关联;如果一个被结点路由的数据包的目的地址与该条目中的归属地址相匹配,则该数据包应该被路由到这个转交地址。
3.生存时间:生存时间域的值表示一个绑定缓存条目的剩余生存时间;生存时间域的值由生成或最后修改绑定缓存条目的绑定更新的生存时间域初始化,一旦一个条目的生存时间到期,则该条目必须从绑定缓存中删除。
4.标志域:表示该绑定缓存条目是否是归属注册条目。
5.从移动结点归属地址接收到的绑定更新中序号域的最大值:序号域长度为16位。
6.绑定缓存条目近来的使用信息:在绑定缓存中需要使用这些信息来实现绑定替换策略,并且帮助决定当一个条目的生存时间接近终止时是否应该发送一个绑定更新请求。
没有标记为归属注册的绑定缓存条目可以在任何时候依据可行的本地缓存替换政策被替换,但它不应该因为不必要的原因而被删除。在任何一个结点的绑定缓存中,最多为每一个移动结点的归属地址维护一个缓存。一个结点的绑定缓存的内容不能根据接收到数据包的归属地址选项而改变;当一个结点重新启动时,该结点所有的绑定缓存条目的内容都必须被清除。
二、接收来自移动结点的数据包
通信结点需要对移动结点发出的带有归属地址目的地选项或移动头的数据包进行特殊的处理:
1.处理移动头(MH)消息
所有的IPv6通信结点在处理移动头(MH)消息时都必须遵守下面的规则:
* 如果收到一个类型未知的MH消息,那么通信结点应向数据包的源地址发送一个绑定错误消息,状态域的值设为2;通信结点必须丢弃这一数据包。
* 如果下一个头域的值不是NO_NXTHDR(59),那么该数据包应被悄悄丢弃。
后续的检查依赖于特定的移动头消息,有两种类型的移动头消息。返回路径可达过程被用于验证移动结点的归属地址和转交地址的存活性,这种存活性的探测有助于保证绑定更新的安全;另一种移动头消息直接用于管理绑定。
2.接收带有归属地址目的地选项的数据包
如果通信结点有移动结点归属地址的绑定缓存条目,那么移动结点发送的数据包中可能会包含一个归属地址选项。当通信结点接收到一个包含归属地址选项的数据包时,它必须要处理这个选项,把这个选项中的归属地址域拷贝到IPv6的包头中,替换掉源地址的初始值。处理完数据包所携带的选项之后,对数据包的后续处理步骤不必知道原来的源地址是转交地址还是归属地址。对于一个包含了绑定更新消息和归属地址选项的数据包来说,如果绑定更新成功地创建或更新了绑定缓存条目,那么就可以认为该数据包通过了上面的检查。
如果一个数据包经过上面的测试被丢弃。那么通信结点应向包含归属地址选项的数据包的源地址发送一人绑定错误消息。该消息中的状态域的值应被设为1。这些消息的发送速率应受到限制。
一般来说,不需要对归属地址选项进行额外的认证,但是如果数据包的IPv6包头被认证所覆盖,那么这种认证也必须要覆盖归属地址选项,这种覆盖是通过归属地址选项中的选项类型编码的定义来自动实现的,这一编码指明了在数据包到达最终目的地之前这项数据不能被修改,因此该选项也就包含了在认证计算的范围之内。由于对IPv6包头的认证会覆盖归属地址选项,因此归属地址选项的出现不会降低IPv6包头中源地址域的安全性。当试图验证包含归属地址选项的数据包中的认证数据时,接受结点在计算时必须要假定归属地址选项中的地址是转交地址,而IPv6包头中的源地址是归属地址。
三、确定所选路由是否可达
在确定所选路由是否可达时,主要包括以下动作。
1.接收归属地址测试初始消息
当收到归属地址测试初始消息时,通信结点应进行如下的检验:
* 该消息的MH类型域的值为1;
* 数据包一定不能包含归属地址目的地选项。
在准备发送一个相应的归属地址测试消息之前,通信结点应检查它是否已经有了返回路径可达过程所需的要素。对于返回路径可达过程而言,通信结点必须有一个密钥Kcn和一个临时随机数N1。如果通信结点还没有这两个要素,那它就必须先生成Kcn和N1,然后才能继续进行返回路径可达过程。
2.接收转交地址测试初始消息
当收到转交地址测试初始消息时,通信结点应进行如下的检验:
* 该消息的MH类型域的值为2;
* 数据包一定不能包含归属地址目的地选项。
在准备发送一个相应的转交地址测试消息之前。通信结点应检查它是否已经有了返回路径可达过程所需的要素。对于返回路径可达过程而言。通信结点必须有一个密钥Kcn和一个临时随机数N1。如果通信结点还没有这两个要素,那它就必须先生成Kcn和N1,然后才能继续进行返回路径可达过程。
3.发送归属地址测试消息
如果通信结点没有创建一个转交Cookie和与之相关的归属临时随机数,那它必须先创建它们。然后才能创建一个归属地址测试消息并把它发送到移动结点最新的归属地址。
四、目的地地址在缓存中的绑定
通信结点处理的绑定缓存消息包括绑定更新、绑定更新请求、绑定确认等。
1.接收绑定更新
一个结点在接受绑定更新消息之前必须要按照以下步骤对绑定更新进行有效性检验;
* 该数据包中必须包含一个归属地址选项。
* 如果先前已经接收到同一归属地址的绑定更新,那么本次接收的绑定更新消息中序列号域的值必须大于先前收到的绑定更新中序列号域的值。序列号必须要对65536取模后才能进行比较。如果接收到的绑定更新中的序列号在先前接收的绑定更新中的序列号的范围内,那么就认为该序列号小于或等于最近接收的序列号,对于超出32767的值也是如此。
如果移动结点发送的绑定更新中的序列号小于或等于最近一个成功的绑定更新中的序列号,那么接收结点必须要回送一个状态编码为141的绑定确认,并在绑定确认中的序列号域填入最近接受的绑定更新的序列号。
如果移动结点发送的归属或转交临时随机数索引值不再被通信结点认可,那么接收结点必须要回送一个状态编码分别为144或145的绑定确认。
所有由于其他原因(除了序列号或临时随机数索引值较小)而不满足这些检验的绑定更新必须被忽略,并且携带这些绑定更新的数据包必须被丢弃。
2.请求缓存一个绑定
本文描述了请求结点缓存一个移动结点的绑定的有效绑定更新的处理过程,在这个绑定更新中归属注册位(H)没有被设置。在这种情况下,接收结点应当在它的绑定缓存中为这个移动结点生成一个新的缓存条目,如果已有这样的条目,那就应当更新现有的这一移动结点的绑定缓存条目。该绑定缓存条目的生存时间来自于绑定更新中的生存时间域,缓存这个绑定的结点可能会减少这个生存时间;该绑定缓存条目的生存时间必须不能够大于在绑定更新中规定的时间值,当绑定更新条目的生存时间过期时,这个绑定条目必须被删除。
从移动结点接收到的绑定更新中的序列号的值存储在通信结点中该移动结点的绑定缓存条目中;如果通信结点中没有该移动结点的绑定缓存条目,那么通信结点必须接受从移动结点接收到的绑定更新中的任何序列号的值。
3.请求删除一个绑定
本文描述了请求结点从绑定缓存中删除一个移动结点的绑定的有效绑定更新处理过程,在这个绑定更新中,归属注册位(H)没有被设置。在这种情况下,接收结点必须在绑定缓存中删除与这个移动结点有关的任何条目。在收到这样的绑定更新时,通信结点不能为移动结点生成绑定缓存条目。
如果绑定缓存条目是通过使用返回路径可达过程创建和,那么通信结点必须确保对于特定归属和转交地址的临时随机数不能再被使用。如果这两个临时随机数仍然是有效的,那么通信结点必须记住临时随机数索引、地址与序列号之间的特定联系。直到某一个临时随机数失效为止。
4.发送绑定确认
当任何结点接收到一个包含绑定更新消息的数据包,并且这个消息中的确认位(A)被设置时,它必须回送一个绑定确认消息以确认收到了绑定更新。如果这个结点接受了绑定更新,并为移动结点生成或者修改了一个绑定缓存条目,并且绑定更新中的确认位被设置,那么绑定确认的状态域必须设置为小于128的值,如果该结点接受了绑定更新,但绑定更新中的确认位没有设置,那么该结点不应发送绑定确认;如果这个结点拒绝了这个绑定更新,没有为移动结点生成或者修改一个绑定缓存条目,那么即使绑定更新中的确认位没有被设置,接收结点也必须要发送绑定确认,其中的状态域要设置成大于或等于128的值。
包含的绑定确认的返回数据包必须满足对绑定确认的特别的认证要求。此外,如果数据包被发往移动结点除了归属地址以外的任何其他地址,那么必须使用路由头(即使绑定被拒绝)。
数据包被发送到归属地址之前所经过的中间IP地址应由这些因素决定:只要带有非零生存时间的绑定更新被接受,就要使用转交地址业构造路由头,否则,如果包含绑定更新的数据包的源IP地址能被合法地包含在路由头中,那么就将使用这个IP地址来构造路由头。注意,不能在用于绑定确认的路由头中使用组播地址、本地链路地址、环回地址、映射到IPv4的地址和未规定的地址,否则,如果绑定更新中的生存时间为0,但是源IP地址不能被用于路由头中,那么绑定确认必须被发往移动结点的归属地址。当绑定缓存条目的生存时间过期时,这些条目必须从绑定缓存中删除。
5.发送绑定更新请求
如果一个被删除掉的条目仍在被使用着向一个移动结点发送数据包,那么发向移动结点的下一个数据包将被按通常的方法路由到移动结点的归属链路。虽然与移动结点的通信没有被打断,但是在归属网络通过隧道封装向移动结点发送数据包时会增加多余的开销和时延。
如果发送者知道这个绑定缓存条目仍然被使用,那么它可以向移动结点发送一个绑定更新请求消息,以试图避免由于删除和重新生成绑定缓存条目而带来的这种开销和时延。向移动结点发送绑定更新请求消息的方式与发送一般数据包的方式相同。
通信结点可以在速率的限制范围内重传绑定更新请求消息。当通信结点收到归属地址测试初始消息时应停止再发送绑定更新请求。因为这时移动结点已经做出了响应并开始了返回路径可达过程。
结束语
随着移动通信技术的不断发展,移动网络的发展方向是“全IP移动网”。IPv6已经被确定为构筑下一代移动网的基础和3G必须遵循的标准,成为IP多媒体业务中不可或缺的技术。人们普遍认为,IPv6(尤其是移动IPv6)技术必将为整个通信行业的发展带来明媚的春光。
作者:孙海英 闻卫军 来源:中国联通网站