Erhöhen Sie das TCP-Empfangsfenster für einen bestimmten Socket

8

Wie erhöhe ich das TCP-Empfangsfenster für einen bestimmten Socket? - Ich weiß, wie man das für alle Sockets macht, indem ich den Registrierungsschlüssel TcpWindowSize einstelle, aber wie macht man das für einen bestimmten?

Laut MSFT-Dokumenten ist der Weg

  

Aufrufen der Windows Sockets-Funktion   setsockopt, das den Empfang festlegt   Fenster pro Socket-Basis.

Aber in setsockopt wird über SO_RCVBUF erwähnt:

  

Gibt den gesamten Puffer pro Socket an   Platz reserviert für empfängt. Das ist   unabhängig von SO_MAX_MSG_SIZE und tut dies   entspricht nicht unbedingt der Größe   des TCP-Empfangsfensters.

So ist es möglich? Wie?

Danke.

    
rkellerm 05.05.2010, 14:32
quelle

3 Antworten

5

SO_MAX_MSG_SIZE ist für UDP. Hier ist von MSDN :

SO_MAX_MSG_SIZE - Gibt die maximale ausgehende Nachrichtengröße für vom Protokoll unterstützte nachrichtenorientierte Sockets zurück. Hat keine Bedeutung für Stream-orientierte Sockets.

Es ist auch nicht einstellbar .

Für TCP verwenden Sie einfach SO_(SND|RCV)BUF .

    
Nikolai Fetissov 05.05.2010, 16:26
quelle
1

Ich bin ziemlich sicher, dass SO_RCVBUF das ist, was Sie wollen. Der erste Link besagt, dass SO_RCVBUF die höchste Priorität beim Ermitteln der TCP-Fenstergröße hat, die über die im System festgelegten Werte hinausgeht. Von der Art, wie ich es lese, denke ich, dass der zweite Teil sagt, dass die Größe von SO_RCVBUF nicht mit der Größe des Empfangsfensters des Systems übereinstimmen muss. Mit anderen Worten, es kann eine andere Größe sein, die Sie einstellen.

    
Genesis 05.05.2010 15:05
quelle
0

Sie müssen vorsichtig sein und das Ergebnis testen. Windows Vista und höher verfügen über eine intelligente Funktion zur automatischen Anpassung der Fenstergröße, die speziell die Fenstergröße so einstellt, dass sie sowohl in LANs als auch in stark frequentierten Netzwerken wie 3G und High-Loss-Netzwerken gut funktioniert. Wenn Sie die Fenstergröße selbst festlegen, wird dies überschrieben, sodass Windows die Fenstergröße nicht mehr automatisch anpassen kann. Dies kann Ihre Leistung beeinträchtigen, sollten Sie jemals über ein Netzwerk mit besonders hoher Latenz wie z. B. einem Mobilfunknetz laufen müssen.

    
Stewart 06.05.2010 19:34
quelle

Tags und Links