Fwd: Re: Programmieren: Daten im TCP gebuffert?

Christian Weddeling christian.weddeling at web.de
Thu May 27 09:56:30 CEST 2004


Jan-Benedict Glaw <jbglaw at lug-owl.de> schrieb am 26.05.04 11:20:44:
> 
> On Wed, 2004-05-26 10:03:09 +0200, Christian Weddeling <christian.weddeling at web.de>
> wrote in message <1065826580 at web.de>:
> 
> [...die längste Prali^WZeile der Welt:-]

Sorry. Jetzt hoffentlich besser.

> > Ich habe hier eine Anwendung (Client, Server) geschrieben, die über
> > eine TCP-IP-Socket kommuniziert. Gelegentlich kommt es vor, das ein
> > Datenpacket vom Client an den Server geschickt wird, dort aber nicht
> > vollständig ankommt. Der Rest wird aber erst dann geschickt, wenn
> > wieder ein weiteres Datenpacket geschickt wird. Das kann dann schon
> > mal einige Minuten dauern und bis dahin hängt die Anwendung ziemlich
> > in der Luft
> 
> Du solltest wohl select() benutzen, um erstmal zu prüfen, ob denn
> gelesen werden kann. Kommt zu lange nichts, shutdown() und alles von
> vorn.

Das mit select() mache ich schon. Sind ja ~50 Verbindungen zu überwachen. Was ist shutdown
()...? Ach so, hm, ich versuch mal TCP_NODELAY. Shutdown zieht erheblichen 
Implementierungsaufwand nach sich.

> Es kann aber auch sein, daß einfach Daten nicht sofort gesendet werden.
> Da gibt's Verfahren, um mehrere schnell aufeinanderfolgende
> send()/...-Aufrufe zu kombinieren (Stichwort "Nagle-Algorithmus"). Das
> kannst Du über TCP_NODELAY ausschalten. Guck' mal, ob's damit besser
> wird.

Okay, werde ich mal versuchen.

> > Das nicht unbedingt alle Daten in ein IP-Packet passen, ist mir ja
> > klar, aber wieso bleibt denn aber der Rest stecken?
> 
> U.U. wg. Nagle:)

Ich dachte immer, daß Nagle ein paar Millisekunden lang die Daten sammelt und dann 
weiterschickt. Das es da eine Mengenbregrenzung gibt war mir nicht bekannt.
-- 

        Ciao
                Christian

-- 

        Ciao
                Christian
_____________________________________________________________________
Endlich SMS mit Bildern versenden! Das Bild selbst ist dabei gratis,
Sie bezahlen lediglich den Versand. http://freemail.web.de/?mc=021195




More information about the Linux mailing list