[riot-devel] Fragmentation support in IP

Adeel Mohammad Malik adeel.mohammad.malik at ericsson.com
Fri Aug 19 10:36:01 CEST 2016


Hi Martine and Thomas,

Martine, actually when I wrote the question I did not mean to imply that the 6LoWPAN standard has "lost fragment recovery". I did a quick search on it and I see no RFCs. Thanks for pointing it out.

Thomas, I agree that whether we do it on L2 or on the application layer depends on the problem scope. We are working on a prototype and would like to get things running with a decent performance in time. Hence the questions about what RIOT supports and what not. Perhaps we need to do some loss recovery implementation at the application layer to not have a poorly performing prototype.

/Adeel

> -----Original Message-----
> From: devel [mailto:devel-bounces at riot-os.org] On Behalf Of Thomas C.
> Schmidt
> Sent: Friday, August 19, 2016 10:16 AM
> To: RIOT OS kernel developers
> Cc: Börje Ohlman; Joakim Borgh
> Subject: Re: [riot-devel] Fragmentation support in IP
> 
> Hi Martine, Adeel,
> 
> there had been proposals in 6LowPan + Roll by Pascal Thubert for adding
> reliability to 6LowPan (recovering fragments) ... but if I see things correctly,
> they have never gotten anywhere -> Carsten?
> 
> In any case, the design discussion seems a bit out of focus: Whether to
> design a L2 protocol or an application layer (on top of CoAP) should be sorted
> out first. I guess these things depend on the problem scope and the
> objectives.
> 
> Cheers,
>    Thomas
> 
> On 19.08.2016 09:56, Martine Lenders wrote:
> > Hi Adeel,
> > What do you mean by "lost fragment recovery"? To my knowledge there is
> > no such thing in 6LoWPAN fragmentation.
> >
> > Regards,
> > Martine
> >
> >
> > Am 19.08.2016 12:59 vorm. schrieb "Adeel Mohammad Malik"
> > <adeel.mohammad.malik at ericsson.com
> > <mailto:adeel.mohammad.malik at ericsson.com>>:
> >
> >     Hi again Thomas,
> >
> >     Do you mean that 6LoWPAN in RIOT does not support lost fragment
> >     recovery? Assuming it does, what I had in mind was that we could
> >     segment data in the application to the IP MTU and leverage the lost
> >     fragment recovery feature in 6LoWPAN to get a decent performance.
> >     This way we may not need to implement lost segment recovery in the
> >     application. But if 6LoWPAN in RIOT does not support recovery of
> >     lost fragments we might as well run our application direclty on link
> >     layer (since we dont need IP routing).
> >
> >     /Adeel
> >     -------- Original message --------
> >     From: "Thomas C. Schmidt" <t.schmidt at haw-hamburg.de
> >     <mailto:t.schmidt at haw-hamburg.de>>
> >     Date: 8/18/2016 23:27 (GMT+01:00)
> >     To: RIOT OS kernel developers <devel at riot-os.org
> >     <mailto:devel at riot-os.org>>
> >     Cc: Börje Ohlman <borje.ohlman at ericsson.com
> >     <mailto:borje.ohlman at ericsson.com>>, Joakim Borgh
> >     <joakim.borgh at ericsson.com <mailto:joakim.borgh at ericsson.com>>
> >     Subject: Re: [riot-devel] Fragmentation support in IP
> >
> >     Hi Adeel,
> >
> >     adding to this: you should keep in mind that in LowPANs you may easily
> >     trigger multiple layers of fragmentation (loosing one fragment is
> >     loosing all!) ... and that receivers may not be ready to handle UDP
> >     datagrams of 'arbitrary' sizes.
> >
> >     So if you really want to stay away from upper layer protocols like
> >     CoAP,
> >     you should process data segmentation in your application (not sure this
> >     is the best idea, though).
> >
> >     Cheers,
> >       Thomas
> >
> >     On 18.08.2016 22:54, Carsten Bormann wrote:
> >     > Hi Adeel,
> >     >
> >     > IP fragmentation is usually a bad idea*), and more so on a constrained
> >     > network.  If you need to transfer payloads beyond a kilobyte or so,
> >     > maybe CoAP (RFC 7252) with the block-wise transfer protocol (currently
> >     > being published as RFC-to-be 7959) solves your problem.
> >     >
> >     > Which encryption expands a few bytes of plaintext to kilobytes of
> >     > ciphertext?  (You may be thinking about signatures; e.g., hash-based
> >     > signatures can be 3-6 KiB or even more.  These might occur in firmware
> >     > updates and are covered quite well by CoAP + block-wise.)
> >     >
> >     > Grüße, Carsten
> >     >
> >     > *)
> >     > https://tools.ietf.org/html/draft-mathis-frag-harmful-00
> >     <https://tools.ietf.org/html/draft-mathis-frag-harmful-00>
> >     > http://www.hpl.hp.com/techreports/Compaq-DEC/WRL-87-3.pdf
> >     <http://www.hpl.hp.com/techreports/Compaq-DEC/WRL-87-3.pdf>
> >     >
> >     > Adeel Mohammad Malik wrote:
> >     >> Hi Thomas,
> >     >>
> >     >> I agree that IP fragmentation is not an equivalent for data streaming.
> >     >> However it still facilitates transporting data that exceeds the MTU. The
> >     >> use case we are looking at is encryption of IoT data that may result in
> >     >> a few bytes of plaintext being converted to a few kilobytes of
> >     >> ciphertext. Had IP supported fragmentation in RIOT it would have
> been
> >     >> possible for us to send such data.
> >     >>
> >     >> /Adeel
> >     >>
> >     >>
> >     >> -------- Original message --------
> >     >> From: "Thomas C. Schmidt" <t.schmidt at haw-hamburg.de
> <mailto:t.schmidt at haw-hamburg.de>>
> >     >> Date: 8/18/2016 18:11 (GMT+01:00)
> >     >> To: devel at riot-os.org <mailto:devel at riot-os.org>
> >     >> Subject: Re: [riot-devel] Fragmentation support in IP
> >     >>
> >     >> Hi Adeel,
> >     >>
> >     >> GNRC in RIOT supports fragmentation, e.g. in the context of
> 6LowPAN.
> >     >>
> >     >> However, you seem to be interested in sending UDP datagrams that
> exceed
> >     >> the MTU payload size. I don't think this is common use ... and I don't
> >     >> think this is clever, either. IP fragmentation is not an equivalent for
> >     >> data streaming.
> >     >>
> >     >> Cheers,
> >     >>   Thomas
> >     >>
> >     >> On 18.08.2016 18:04, Adeel Mohammad Malik wrote:
> >     >>> Hi all,
> >     >>>
> >     >>>
> >     >>>
> >     >>> My question is about fragmentation support in IP in RIOT. Does IP in
> >     >>> RIOT support fragmentation? The use case I am after is transferring a
> >     >>> large blob of data (let’s say 5 kilobytes) on the UDP/IP stack in RIOT.
> >     >>> Is that possible?
> >     >>>
> >     >>>
> >     >>>
> >     >>> I know that 6LoWPAN supports fragmentation but that is below the
> IP
> >     >>> layer. I am interested in fragmentation at the IP layer so that
> >     >>> application running over it in RIOT can send large data.
> >     >>>
> >     >>>
> >     >>>
> >     >>> Regards,
> >     >>>
> >     >>> Adeel
> >     >>>
> >     >>
> >     >> --
> >     >>
> >     >> Prof. Dr. Thomas C. Schmidt
> >     >> ° Hamburg University of Applied Sciences                   Berliner Tor 7 °
> >     >> ° Dept. Informatik, Internet Technologies Group    20099 Hamburg,
> Germany °
> >     >> ° http://www.haw-hamburg.de/inet                   Fon:
> >     +49-40-42875-8452 <tel:%2B49-40-42875-8452> °
> >     >> ° http://www.informatik.haw-hamburg.de/~schmidt
> >     <http://www.informatik.haw-hamburg.de/~schmidt>    Fax:
> >     +49-40-42875-8409 <tel:%2B49-40-42875-8409> °
> >     >> _______________________________________________
> >     >> devel mailing list
> >     >> devel at riot-os.org <mailto:devel at riot-os.org>
> >     >> https://lists.riot-os.org/mailman/listinfo/devel
> >     <https://lists.riot-os.org/mailman/listinfo/devel>
> >     >>
> >     >> _______________________________________________
> >     >> devel mailing list
> >     >> devel at riot-os.org <mailto:devel at riot-os.org>
> >     >> https://lists.riot-os.org/mailman/listinfo/devel
> >     <https://lists.riot-os.org/mailman/listinfo/devel>
> >     > _______________________________________________
> >     > devel mailing list
> >     > devel at riot-os.org <mailto:devel at riot-os.org>
> >     > https://lists.riot-os.org/mailman/listinfo/devel
> >     <https://lists.riot-os.org/mailman/listinfo/devel>
> >     >
> >
> >     --
> >
> >     Prof. Dr. Thomas C. Schmidt
> >     ° Hamburg University of Applied Sciences                   Berliner
> >     Tor 7 °
> >     ° Dept. Informatik, Internet Technologies Group    20099 Hamburg,
> >     Germany °
> >     ° http://www.haw-hamburg.de/inet                   Fon:
> >     +49-40-42875-8452 <tel:%2B49-40-42875-8452> °
> >     ° http://www.informatik.haw-hamburg.de/~schmidt
> >     <http://www.informatik.haw-hamburg.de/~schmidt>    Fax:
> >     +49-40-42875-8409 <tel:%2B49-40-42875-8409> °
> >     _______________________________________________
> >     devel mailing list
> >     devel at riot-os.org <mailto:devel at riot-os.org>
> >     https://lists.riot-os.org/mailman/listinfo/devel
> >     <https://lists.riot-os.org/mailman/listinfo/devel>
> >
> >     _______________________________________________
> >     devel mailing list
> >     devel at riot-os.org <mailto:devel at riot-os.org>
> >     https://lists.riot-os.org/mailman/listinfo/devel
> >     <https://lists.riot-os.org/mailman/listinfo/devel>
> >
> 
> --
> 
> Prof. Dr. Thomas C. Schmidt
> ° Hamburg University of Applied Sciences                   Berliner Tor 7 °
> ° Dept. Informatik, Internet Technologies Group    20099 Hamburg, Germany °
> ° http://www.haw-hamburg.de/inet                   Fon: +49-40-42875-8452 °
> ° http://www.informatik.haw-hamburg.de/~schmidt    Fax: +49-40-42875-
> 8409 °
> _______________________________________________
> devel mailing list
> devel at riot-os.org
> https://lists.riot-os.org/mailman/listinfo/devel


More information about the devel mailing list