Fragmentation and reassemble packets at higher layer

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Good morning everyone,

If I'm not wrong sk_buff is used by lower layer and socket to buffer 
incoming packets or out-going to higher layer.

Am I right to say that higher layer cannot access sk_buff struct --> data  
directly??

Consider the following case (kernel space):

Passing a extremely huge data block down to UDP, then IP will fragement it 
and out to the net dev. Since UDP has no flow control, if any fragment is 
lost. The whole data block is useless. Ok .. by now some of you might ask .. 
why use UDP, not TCP? I guess I would say is the overheads issue. I don't 
need all the TCP flow controls.

What I want to just a simple frag and reassemble and retransmit.

Ok .. I am thinking .. before passing the whole huge data block to UDP, I 
will fragment it first into much smaller blocks. Follow by UDP - -> IP. The 
other side will reassemble back the data block from UDP. Even if any 
fragment is lost, retransmit will de done.

So now I need a method to store these fragments (fragmented by my progam, 
not the IP layer), so that retransmit and reassemble can be done.

Can I use a ordered linked list, or make use of the struct iovec ???

Sorry for such a long email. :p

Lee

_________________________________________________________________
Get your FREE download of MSN Explorer at http://explorer.msn.com/intl.asp

-
Kernelnewbies: Help each other learn about the Linux kernel.
Archive:       http://mail.nl.linux.org/kernelnewbies/
IRC Channel:   irc.openprojects.net / #kernelnewbies
Web Page:      http://www.kernelnewbies.org/


[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]
  Powered by Linux