Thanks Goran,
The knowledge that the algorithm is part of the OS was of great help. I
found several interesting articles, I think one of them may be the one
you mentioned: http://rdweb.cns.vt.edu/public/notes/tcpip2000.pdf
http://technet2.microsoft.com/WindowsServer/en/Library/8032dd80-9d51-4ad7-8b57-5
267d61f1b411033.mspx
The first link I got from this page:
http://rdweb.cns.vt.edu/public/notes/win2k-tcpip.htm
In this article, Carl Harris describes a shortcoming of the Win2k
implementation of tcp (which has been repaired in the 2003
implementation), which I believe may well be responsible for the
aforementioned claims that tcp is slow.
By now I'm quite convinced that the people at Microsoft have thought
things through pretty well and that it won't make much sense to write
any UDP stuff myself. Btw, Windows Vista will have a whole new
tcp-layer:
http://www.microsoft.com/technet/community/columns/cableguy/cg0905.mspx
Regards,
Zing
John Bailo - 14 Mar 2006 16:26 GMT
> By now I'm quite convinced that the people at Microsoft have thought
> things through pretty well and that it won't make much sense to write
> any UDP stuff myself. Btw, Windows Vista will have a whole new
> tcp-layer:
> http://www.microsoft.com/technet/community/columns/cableguy/cg0905.mspx
That may be the case. What would concern me more is their implementation
of sockets in .NET That's where you'd find your bottleneck.
Goran Sliskovic - 14 Mar 2006 17:21 GMT
> Thanks Goran,
> The knowledge that the algorithm is part of the OS was of great help. I
> found several interesting articles, I think one of them may be the one
> you mentioned: http://rdweb.cns.vt.edu/public/notes/tcpip2000.pdf
http://technet2.microsoft.com/WindowsServer/en/Library/8032dd80-9d51-4ad7-8b57-5
267d61f1b411033.mspx
> The first link I got from this page:
> http://rdweb.cns.vt.edu/public/notes/win2k-tcpip.htm
This is the one.
...
> By now I'm quite convinced that the people at Microsoft have thought
> things through pretty well and that it won't make much sense to write
> any UDP stuff myself. Btw, Windows Vista will have a whole new
> tcp-layer:
> http://www.microsoft.com/technet/community/columns/cableguy/cg0905.mspx
....
Be carefull when choosing. Do tests in early phase and verify against
requirements early. You may find your self in troubles later in the project
if you fail to. Also, consider separating low level transport from rest of
your code (abstractions), so you can change without lot of problems.
Networking is extremly complex subject.
Beware that TCP timeouts are long (in range of minutes). There is a
difference if you connect to unreachable host and host that is connected to
network but has no service started. Also, retransmission can take lot of
time. In some situations, you can allow some packet loss (e.g. video
streaming). What you will actually choose is dependant on the problem you
are solving and your requierements.
Regards,
Goran