

Taking advantage of TCP loopback fast path in Windows - rbanffy
http://mail.openjdk.java.net/pipermail/net-dev/2014-September/008685.html

======
chollida1
It was refreshing to read the entire thread and not see a negative comment
about the source of the patch.

The entire thread was limited to discussing the actual patch implementation.

Good for the patch submitter for doing two things:

1)sticking around and answer any questions about the patch. Some people dump
their patch and leave.

2) For making their modification stay behind an input flag, ie they aren't
pushing this as the default, though it looks like maybe it should be.

And today I found out about "Microsoft Open Technologies, Inc." I've never
heard of that group before!

~~~
pionar
> And today I found out about "Microsoft Open Technologies, Inc." I've never
> heard of that group before!

Open Tech is the MS group that is trying to push open source as a culture both
inside Microsoft and also among traditional .NET developers. They're the
reason you can run Node on Azure, can reliably run Redis on Windows, and
they're the ones leading the drive on ASP.NET vNext, the next version of
ASP.NET.

It makes it a really exciting time to be a .NET dev.

(Not affiliated, just a fan)

~~~
stuaxo
How does one contact them, maybe they could help with some python issues on
windows ?

------
blinkingled
So the app needs to set a flag to optimize network code paths if both
endpoints are on same local loopback network. Why can't Windows detect that
internally and enable the shorter code paths automatically? At that level it
should be an implementation detail to the app so doing it transparently
shouldn't be an issue.

Also they should have posted some numbers in support of this change - what's
improved and how much.

~~~
fenesiistvan
The answers for your questions:

[http://blogs.technet.com/b/wincat/archive/2012/12/05/fast-
tc...](http://blogs.technet.com/b/wincat/archive/2012/12/05/fast-tcp-loopback-
performance-and-low-latency-with-windows-server-2012-tcp-loopback-fast-
path.aspx)

~~~
colanderman
Would you mind copy + pasting the paragraph that answers the GP's first
question? I read that whole article and found nothing indicating why the
Windows socket library can't automatically use this fast path on all
connections to 127.0.0.1.

~~~
blinkingled
I think the below one hints to it being for compat reasons but you're right no
explanation as to what possibly could go wrong if they did it automagically -

> Existing Applications and Loopback Fast Path The default behavior of the TCP
> loopback interface is unchanged in Windows Server 2012 thereby preserving
> compatibility.

Microsoft being overly compatibility cautious as they should be - it's worked
well for them. But on the other hand they should have pondered on what sort of
compat issues might pop up if they defaulted to setting the flag for everyone
and disabled it on per app blacklist basis or something like that.

~~~
MichaelGG
Or provided some sort of override setting so the sysadmin could force this
behaviour on all or some apps, without having to rewrite the app.

------
zurn
Fun fact:

The message is misformatted in the archive beacause the mail client bungled
the MIME type (just "text/plain" which means "preformatted, don't reflow
lines", instead of "text/plain; format=flowed" which would have been correct
here).

Apple's Mail had this bug at some point as well.

 _edit_ : Seems there's more to it - the format=flowed part was also, until a
2010 release of MailMan, stripped out by the mailing list sw even if the
original mail had it correctly. And then the web archiving part (Pipermail)
dutifully follows the specs. Can't easily tell if this is a case of outdated
MailMan installation or mail client bug. See this 2006-vintage bug:
[https://bugs.launchpad.net/mailman/+bug/266341](https://bugs.launchpad.net/mailman/+bug/266341)

~~~
_wmd
The text/plain MIME type predates the specification of format=flowed by at
least 7 years.

------
flashgordon
Hmmm wouldnt it have been better (for portability reasons) to implement the
equivalent of unix domain sockets instead?

------
atomheart
It's a trap!

