Where does loopback short circuit ?
Neil Horman
nhorman at redhat.com
Fri Aug 30 11:48:03 UTC 2013
On Fri, Aug 30, 2013 at 07:09:16AM -0400, Steve Clark wrote:
> On 08/29/2013 04:28 PM, Neil Horman wrote:
> >On Thu, Aug 29, 2013 at 01:06:23PM -0700, Les Howell wrote:
> >>On Thu, 2013-08-29 at 18:04 +0100, Richard W.M. Jones wrote:
> >>>On Thu, Aug 29, 2013 at 10:02:27AM -0700, John Chludzinski wrote:
> >>>>I've had a debate with some co-workers about whether or not a message
> >>>>that's sent to the loopback interface makes it way into the IP layer and
> >>>>is fragmented before flowing back up the network stack. Does it?
> >>>Can you please not keep creating new top level threads.
> >>>
> >>>Furthermore, this is not an appropriate mailing list to discuss any
> >>>general (not even Linux) networking issues that you may have. It's
> >>>more appropriate for a venue such as stackoverflow.
> >>>
> >>>Rich.
> >>I am unsure of the standards for this. I am also curious about the
> >>Fedora implementation. I would suspect that the loopback mechanism
> >>would be implementation dependent, and that the method used on a
> >>particular system would provide valuable information.
> >>
> >>A usergroup such as stackoverflow would not likely have that
> >>information. Therefore this would seem to be the most accurate source
> >>for such information IMO.
> >>
> >>A short and reasonable answer would be beneficial to the group.
> >>
> >The answer is simple, and as always, contained in the source. lo is defined in:
> >drivers/net/loopback.c
> >
> >It registers an interface using the network driver api, and contains a transmit
> >routine. Therefore, all frames that go to the loopback interface go through the
> >entire routing stack, and get looped at the driver.
> >
> >honestly, doing anything less tends to get pretty messy anyway, as you start to
> >have to handle all sorts of special cases. Consider the possibility that a
> >packet socket is listening on lo when you transmit a tcp frame out of it. If
> >you looped it back higher in the stack, you'd have to be sure to clone the skb
> >and offer the packet to the packet protocol somewhere in the ip stack. Multiply
> >that by every protocol listener available in the kernel and the fan out gets
> >unmanageable. Its better to just go down to the driver layer and loop there.
> >
> >Neil
> >
> >>--
> >>devel mailing list
> >>devel at lists.fedoraproject.org
> >>https://admin.fedoraproject.org/mailman/listinfo/devel
> >>Fedora Code of Conduct: http://fedoraproject.org/code-of-conduct
> Hello,
>
> I believe in later kernels there is the option to bypass the tcp stack on the loopback
> which will be enabled by default. See this thread.
> http://marc.info/?l=linux-netdev&m=134456025709318&w=3
>
It didn't work properly, for exactly the reason I pointed out above and
several others, so it never got integrated. See:
http://marc.info/?l=linux-netdev&m=134572202724967&w=3
Note the thread is from last september, and it never got picked up.
Neil
>
>
> --
> Stephen Clark
> *NetWolves*
> Director of Technology
> Phone: 813-579-3200
> Fax: 813-882-0209
> Email: steve.clark at netwolves.com
> http://www.netwolves.com
More information about the devel
mailing list