Pages: [1]   Go Down
Print
Author Topic: [TIP] Improve streaming by activating TCP server settings  (Read 3622 times)
jer1956
Global Moder8or
Hero Member
*****
Offline Offline

Posts: 5 921


« on: November 13, 2010, 02:04:54 pm »

A Network is not a dedicated point to point link. It dosn't matter how fast it is, TCP which manages the network is always trying to share the bandwidth, and not allocate it to one PC or one transaction. Microsoft set up home users versions like a Work Station, with TCP optomised for lan input to make internet browsing faster. They turn off TCP functions  which improve lan output as they believe these should only be used by servers. But we want our PC's to work like a server when working with the med500x!

The latest microsoft operating systems have improved TCP output ( for servers!) by introducing a new contention manager which  ramps up the allocation of lan bandwidth to tranactions far quicker. This is called CTCP.  You can set it using the instructions on this webpage:-
http://www.speedguide.net/articles/windows-7-vista-2008-tweaks-2574#

They imply this is for lan inputs. It is not as this article states:-
http://technet.microsoft.com/en-us/library/bb878127.aspx

This may only benefit setups where the PC is connected by a higher bandwidth than a typical 100mbps lan port.  My pc is connected to  the network via N-300, and the med500 is connected via a 100 mbps port on the router. Those connected with the connections swapped over may not benefit.

In case the first link dissapears I shall paste the instructions  here:-

---------------------------------------------------------------------------------
Compound TCP - Improve throughput
Add-On Congestion Control Provider

The traditional slow-start and congestion avoidance algorithms in TCP help avoid network congestion by gradually increasing the TCP window at the beginning of transfers until the TCP Receive Window boundary is reached, or packet loss occurs. For broadband internet connections that combine high TCP Window with higher latency (high BDP), these algorithms do not increase the TCP windows fast enough to fully utilize the bandwidth of the connection.

Compound TCP (CTCP) is a newer method, available in Vista and Server 2008 (there is also a hotfix available for XP/2003). CTCP increases the TCP send window more aggressively for broadband connections (with large RWIN and BDP). CTCP attempts to maximize throughput by monitoring delay variations and packet loss. It also ensures that its behavior does not impact other TCP connections negatively.

By default, Vista and Windows 7 have CTCP turned off, it is only on by default under Server 2008. Turning this option on can significantly increase throughput.

To enable CTCP, in elevated command prompt type:

netsh int tcp set global congestionprovider=ctcp

To disable CTCP:

netsh int tcp set global congestionprovider=none

Possible options are:  ctcp, none, default (restores the system default value).
Recommended setting: ctcp

It is better to use this newer generation CTCP congestion control algorithm for most broadband connections, we highly recommend it being turned on.

 -----------------------------------------------------------------------------------------------------



I have found this to improve streaming. It still needs time to ramp up the bandwidth, which  can be helped by using the movie preview window. Don't try to play a network movie until after the preview window shows a non jerky playback, that is sufficient bandwidth has been allocated.

N.B. ECN (Explicit Congestion Notification, RFC 3168) can be a real bandwidth killer. It allows the router to lower connection speeds becuase of a few dropped frames, even if that means the video then stutters all the time.

« Last Edit: July 27, 2011, 01:06:33 pm by jer1956 » Logged
UUBee
Jr. Member
*
Offline Offline

Posts: 81


Technology is never an excuse for human error.


WWW
« Reply #1 on: November 14, 2010, 04:29:00 am »

Maybe thats why my transmit to mede8er performance is a little better then the average reports I read here. Always have set this first because it increases global network performance very much, also when making a backup to NAS etc.
Logged

2 liters of coca cola, 40 cl of Bacardi....
jer1956
Global Moder8or
Hero Member
*****
Offline Offline

Posts: 5 921


« Reply #2 on: November 14, 2010, 12:04:24 pm »

The rate at which bandwidth increases seems dependent upon the "spare" capacity TCP calculates your lan connection to have.  I tried it setting up my wireless-n to N-150 and it didn't push the connection speed high enough to avoid the jerks. At n-300 I rarely see a jerk at connections speeds of 81-108 mbps. These speeds should be possible with n-150 but don't get allocated as the loading would be too high for TCP to tolerate. It's frustrating. We have single user networks and TCP has a multi-user approach.
« Last Edit: November 14, 2010, 12:10:21 pm by jer1956 » Logged
jer1956
Global Moder8or
Hero Member
*****
Offline Offline

Posts: 5 921


« Reply #3 on: November 27, 2010, 08:01:02 pm »

In order to improve the accuracy of the bandwidth calculation TCP can use Timestamps attached to packages. I have used telnet on the med500 and found that it also has timestamps enabled. You do this using the following command:-

cat /proc/sys/net/ipv4/tcp_timestamps, and get the return 1.

So i have enabled timstamps on my PC using the following command:-

netsh int tcp set global timestamps=enabled

This seems to keep the bandwidth more stable. It may seem counter intuitive to improve thoughput by adding administrative overhead but it appears to work.
« Last Edit: November 27, 2010, 11:47:23 pm by jer1956 » Logged
Pages: [1]   Go Up
Print
Jump to: