On Wed, 8 Sep 2004 17:18:17 +0530 (IST), Philip Tellis philip.tellis@gmx.net wrote:
Sometime Today, Rony Bill assembled some asciibets to say:
Frankly I don't know what is latency in a satellite but if Philip could elaborate more and provide points on why it has a problem in sat transmission, it would help a lot in making improvements to this system.
geostationary satellites are at an altitude of 36000Km. Speed of light is 300000Km/s. That's approx. 200 ms round trip time to send a packet via a satellite.
Given this base delay, you need to have a large window for tcp acknowledgements to be sent. That means that a transmission error could go unnoticed for a much longer period of time.
I may be wrong, so someone correct me.
Yes you are right. High delay and high bandwidth networks such as satellite networks need some changes(patches or using sysctl) in the TCP/IP stack of the host operating system. This has been there in FreeBSD since version 4.4. This has also been described in the book "TCP/IP Illustrated volume 2" by the venerable Richard Stevens. Just look up the index for "long fat pipe". a quick look at the sources also reveals that Linux also has this support. You might have to turn on window scaling using proc fs. echo 1 > /proc/sys/net/ipv4/tcp_window_scaling
Window scaling means a 32 bit field is used in the TCP header for window size instead of the usual 16-bit field.
You may also have to change tcp send and receive buffer sizes using the following variables. /proc/sys/net/core/wmem_max /proc/sys/net/core/rmem_max /proc/sys/net/ipv4/tcp_rmem /proc/sys/net/ipv4/tcp_wmem
Also some other safeguards such as PAWS (Protection against wrapped sequence numbers) also have to be in the kernel. Long fat pipe support is described in RFC 1323. http://www.faqs.org/rfcs/rfc1323.html
--> Vinayak Hegde