TCP segmentation offload
TCP segmentation offload oder TSO ist eine Technologie, um die CPU-Last von TCP/IP in schnellen Computernetzwerken zu reduzieren. TSO wird auch häufig als large segment offload (LSO) oder generic segmentation offload (GSO) bezeichnet.
Wenn große Datenmengen über ein Computernetzwerk versandt werden, müssen Obergrenzen für die Paketgröße beachtet werden, damit alle Bereiche des Netzwerks, wie z. B. Switches und Router, die Paketgröße handhaben können. Dazu werden die Daten in kleinere Segmente aufgeteilt, dieser Prozess wird in der Fachsprache als segmentation bezeichnet.
Die Segmentation wird herkömmlich von der Transportschicht (Transmission Control Protocol) des sendenden Computers übernommen und beansprucht dann teils beträchtliche CPU-Last. Wird diese Funktion vom Computer an seine Netzwerkkarte übergeben, so heißt es TCP segmentation offload (TSO). Die Rechengeschwindigkeit des Computers und/oder die Netzwerkgeschwindigkeit kann dadurch beschleunigt werden, dieses wird umso relevanter, desto höher die Netzwerkgeschwindigkeit steigt (beispielsweise Gigabit-Ethernet).
Beispielsweise wird ein 64 Kilobyte großes Paket normalerweise in 46 Segmente von 1448 Byte aufgeteilt, bevor es über die Netzwerkkarte versandt wird. Mit einer intelligenten Netzwerkkarte kann der Computer die vollen 64 Kilobyte in einem Stück an die Netzwerkkarte übergeben und die Netzwerkkarte ihrerseits teilt das große Paket dann in kleinere Pakete à 1448 Byte auf. Dabei werden dann noch die TCP/IP-Header und andere Verwaltungsinformationen von der Netzwerkkarte den einzelnen Segmenten hinzugefügt. Viele neuere Netzwerkkarten unterstützen TSO.
Allerdings unterstützen nicht alle Betriebssysteme TSO vollständig. Die Firma Microsoft rät vom Einsatz von TSO auf Windows 2000 und Windows XP ab.[1]
Unter Linux sind bei manchen Netzwerkkarten die TSO-Funktionen nur in nicht-freien Treiberpaketen vorhanden. Hier wird vom freien Linuxtreiber nur die herkömmliche Netzwerkfunktion unterstützt, die Benutzung von TSO kann die Einbindung eines nicht-freien Hersteller-Treibers bedingen.[2]