Erhöhung der TCP-Fenstergröße

Habe ich einige Zweifel über die zunehmende Größe des TCP-Fensters in der Anwendung. In meiner C++ - software-Anwendung, wir senden die Datenpakete der Größe rund 1k vom client zum server über TCP/IP blocking socket. Vor kurzem stieß ich auf dieses Konzept Größe des TCP-Fensters. Also habe ich versucht, erhöhen Sie den Wert auf 64 KB mit setsockopt() für beide SO_SNDBUF und SO_RCVBUF. Nachdem Sie diesen Wert erhöhen, bekomme ich einige Verbesserungen in der performance für WAN-Verbindung, aber nicht in der LAN-Verbindung.

Gemäß meinem Verständnis in TCP-Window-Size,

Client sendet Datenpakete an den server. Bei erreichen dieser Größe des TCP-Fensters, wird er warten, um sicher ACK vom server empfangen für das erste Paket im Fenster Größe. Im Falle von WAN-Verbindung, der ACK ist immer verzögert, die vom server an den client wegen der Latenz in RTT von etwa 100ms. Also in diesem Fall, die Erhöhung der Größe des TCP-Fensters gleicht das ACK warten Sie Zeit und verbessern dadurch die Leistung.

Ich möchte verstehen, wie verbessert sich die performance meiner Anwendung.

In meiner Anwendung, obwohl die TCP-Fenstergröße (Senden und Empfangen Puffer) erhöht sich mit setsockopt auf socket-Ebene, die wir immer noch erhalten die gleiche Paket-Größe von 1k (ich.e die bytes, die wir senden, vom client zum server in einem single-socket senden). Auch wir Behinderte Nagle-Algorithmus (eingebaute option, um zu konsolidieren, kleine Pakete in ein großes Paket dabei vermeidet häufige socket-Aufruf).

Meine Zweifel sind wie folgt:

  1. Da bin ich mit blockierenden socket, der für jedes Datenpaket senden von 1k sollte es blockieren, wenn ACK kommt nicht vom server. Wie funktioniert dann die Leistung zu verbessern, nach der Verbesserung die Größe des TCP-Fensters in WAN-Verbindung allein ? Wenn ich das falsch verstanden, das Konzept der TCP-Window-Größe, bitte korrigieren Sie mich.
  2. Für das senden von 64 Kb an Daten, ich glaube, ich muss noch call-Buchse send-Funktion 64 mal ( da bin ich senden 1k pro senden durch blockierenden socket), obwohl ich erhöhte meine TCP-Window-Größe auf 64 Kb. Bitte bestätigen Sie diese.
  3. Was ist die maximale Anzahl von TCP-Fenster mit der windows-Skalierung aktiviert RFC 1323-Algorithmus ?

Ich bin nicht so gut in mein Englisch. Wenn Sie konnte nicht verstehen, alle der oben genannten, lassen Sie es mich bitte wissen.

InformationsquelleAutor der Frage Prabu | 2013-01-17

Schreibe einen Kommentar