[Ns-developers] release update [feedback needed]
Mathieu Lacage
mathieu.lacage at sophia.inria.fr
Wed Jun 10 11:26:39 PDT 2009
On Wed, 2009-06-10 at 18:21 +0200, Tommaso Pecorella wrote:
> That's ok, thanks for the clarification.
>
> I think this should be highlighted in the documentation, as from the
> user point of view the packets have their tags simply lost. From the
> application-level point of view, there is no knowledge (nor it should
> be) that in some point in the network a device did some form of
> aggregation/deaggregation, thus it could be seen as an unexpected and
> unreliable behaviour.
Patches to the documentation are most welcome.
> From an architectural point of view, I perfectly agree with you. The
> aggregate packet should not have any of the subpackets' packet tags.
> I'd say that even the tags of the first one should not be propagated
> to the aggregate packet.
>
> On the other hand, the de-aggregated packets are (should be) exact
> copies of the original packets, thus with all the packet tags back in
> place.
Unfortunately, there are many more use-cases where what should happen is
not as clear.
> If you ask me, I'd say that the PacketTags should be saved as
> belonging to a specific aggregated packet and re-added during the
> deaggregation. This would be more consistent, and it would allow to:
>
> 1) free the aggregated packet from the hassle of the PacketTags of it
> subpackets. They're private and not even accessible. IF the
> aggregation function needs/wants to tag the aggregated packet in some
> way, it should be its responsibility to mark the aggregated packet in
> some way. The PacketTag would be lost anyway during the deaggregation,
> as the aggregated packet is no more.
>
> 2) maintain the subpacket's PacketTags when the packets are
> deaggregated back to their original form.
>
>
> Note that it is totally unneeded to be able to peek a subpacket
> PacketTag from an aggregate packet. As you noted, the aggregated
> packet and its subpackets are different entities and should not share
> tags.
And what happens if you re-fragment your new aggregated packet on
boundaries which do not match the original subpackets ? And then, you
re-aggregate them with other fragments, and, then, re-fragment ?
[snip]
> PS: Use case - measure the packet delay in a network.
>
> Simulation scenario: Mixed CSMA - WiFi networks
>
> Test to carry out: check the packet delay / jitter at the receiver and
> in various points of the network.
>
> Solution 1 [best one]: implement the RTP protocol.
> Solution 2 [fastest one]: add a TimeTag corresponding to the packet
> creation time.
>
> TimeTags are PacketTags or ByteTags ?
>
> If they're PacketTags, they could be lost in the WiFi network part. So
> this option is a no-go.
>
> If they're ByteTags they're not lost. However the packet creation time
> is not a "byte" related information for real, and I could be
> interested to read it in various network points regardless of the
> protocol stack implemented.
>
> In both cases if the packets are aggregated they'll be obfuscated to
> the nodes, so there is no real need to check out the original
> TimeTags. At best I'd be interested to check out an aggregate's
> TimeTag, but that would be the time when the aggregate has been
> created. Not the time when the aggregated packets have been created.
You can do this with 'byte' tags: you can read them all with the byte
tag iterator.
> A network node could implement just the IP stack (not the UDP) and
> still should be able to read the tag for pure simulation purposes. If
> it's a ByteTag it's not so easy to do that. BTW, in a real system I
> would had added an RTP header, so intermediate nodes needing the infos
> SHOULD had the UDP/RTP stack. But that's another point.
Mathieu
More information about the Ns-developers
mailing list