[SensorNetArch] Re: Fragmentation & Reassembly

Cheng Tien Ee ct-ee at eecs.berkeley.edu
Thu Sep 23 13:53:33 PDT 2004


I agree that using OSI for sensor networks is not entirely suitable. 
Perhaps what we can do is to identify the important functionalities 
provided by OSI to help guide what we should have in the sensornet 
architecture. Again I think that letting SP have payload sizes being the 
same as that of the MAC layer is good. However, if an SP packet travels 
across a network with different MAC layers having different packet 
lengths then we have to decide which of the lengths it should be. 
Suppose we start with the larger one, then we would definitely need to 
fragment the packet when it subsequently travels to the part of the 
network that have MACs using smaller packets. The MAC layer can either 
fragment, then force the forwarding of each fragment to the same next 
hop and reassemble, or forward to different next hops depending on the 
current link status. Since it is possible that the latter happen, then 
the only chance of reassembling would be at the destination mote. Thus 
the frag+reassembly problem.

> I think it's unlikely that transparent fragmentation/defragmentation 
> (strict layering) will be an effective mechanism. I also think we need 
> to be careful to not conflate the idea of an architecture with that of 
> a uniform API; I would assume that SP provides datagrams of a size 
> corresponding to the underlying layer 2, as opposed to an a single 
> (and inherently inefficient) constant size.
>
Hmm, I think ChannelMonM is below Encoding (perhaps I'm wrong). Anyway, 
refering to the diagram on pg 6 of the proposal, I think 1 and 3 
corresponds to the "Physical architecture", 2, 4 and 5 to "data-link", 
and 6 to "SP" (duh).

> I suspect that discussing network protocols is going to start to 
> become difficult if we constrain ourselves to the OSI model. We need 
> to effectively distinguish the lowest level datagram format from media 
> sensing from communication scheduling from SP. A strawman:
>
> 6: SP (e.g., AM, dispatch)
> 5: Scheduling Layer (e.g., S-MAC)
> 4: Datagram Layer (e.g, 802.15.4 format)
> 3: Carrier Layer (e.g. ChannelMonM, some of CC1000RadioIntM)
> 2: Encoding Layer (e.g., SecDed)
> 1: Physical Layer

Since SP (is supposed to) corresponds to IP in the Internet, I would 
think routing (between networks of different tech) takes place there. 
And even though in the Internet congestion control is at the transport 
layer, I believe that in sensor networks that functionality should 
co-exist with SP. The reason is that congestion control in the Internet 
being at transport layer makes sense because TCP manages each end hosts' 
traffic injection into the network, whereas in sensor networks both 
route-through and self-generated traffic have to be managed locally (and 
downstream, as opposed to end-to-end), and since routing takes place at 
SP I would put CC there as well. Okay so this assumes that nobody is 
going to write TCP for sensor networks (I believe I once saw someone in 
TinyOS-help talking about doing that).

I've also been wondering if the different types of traffic in a sensor 
network requires the network to provide various types of services. For 
instance, are there applications that absolutely require end-to-end 
reliability (though I don't see any at this time)? Or traffic that can 
be delayed to allow others of a time-critical nature to be sent first? I 
think it would be good to identify all the possible services an 
application can possibly (and reasonably) require from the network (like 
finding which mote in the network has a particular piece of 
information), and break them down into components each providing 
dedicated functionalities, combinations of which provide the required 
services, much like what has happened in the layers below SP.


Ee


More information about the SensorNetArch mailing list