Fragmentation & Reassembly

DTN fragmentation and reassembling are designed to impove the efficiency of bundle transfers by ensuring that contact volumes are fully utilized and by avoiding retransmissions of partially-forwarded bundles.There are two forms of DTN fragmentation/reassembly:

Proactive Fragmentation:Used primarily when contact volumes are known(or predicted ) in advance.

Reactive Fragmentation:DTN nodes sharing an edge in the DTN graph may fragment a bundle cooperatively when a bundle is partially transferred.In this case, the receiving bundle layer modifies the incoming bundle to indicate it is a fragment, and forwards it normally. The previous-hop sender may learn that only a portion of the bundle was delivered to the next hop, and send the remainning portions when subsequent contacts become available(possibly to different next-hops if routing changes). This is called reactive fragmentation because the fragmentation process occurs after an attempted transmission has taken place.

 

The reactive fragmentation capability is not required to be avaible in every DTN implementation, as it requires a certain level of support from underlying protocols that may not be present, and presents significant challenges with respect to digital signatures and authentication codes on messages. When a signed message is only partially received, most message authentication codes will fail.

 

Even if reactive fragmentation is not present in an implementation, the ability to reassemble fragments at a destination is required in order to support DTN fragmentation.

 

Furthermore, for contacts with volumes that are small compared to typical bundle sizes, some incremental delivery approach must be used(e.g., checkpoint/restart) to prevent data delivery livelock. Reactive fragmentation is one such approach, but other protocol layers could potentially handle this issue as well.

[RFC4838 Section 3.9]

References:

livelock:http://zhidao.baidu.com/question/18561008

posted on 2010-09-30 11:31  扶蘇  阅读(286)  评论(0编辑  收藏  举报

导航