Re: Sockets mit C unter FreeBSD

From: Bernd Walter <ticso(at)cicely12.cicely.de>
Date: Wed, 14 Sep 2005 10:47:05 +0200

On Wed, Sep 14, 2005 at 04:44:48AM +0200, Matthias Fechner wrote:
> Hallo Peter,
>
> * Peter Ross <Peter.Ross(at)alumni.tu-berlin.de> [14-09-05 09:43]:
> > Suchst Du das?
> >
> > setsockopt(2)
> >
> > http://www.freebsd.org/cgi/man.cgi?query=getsockopt&sektion=2&apropos=0&manpath=FreeBSD+5.4-RELEASE+and+Ports
> >
> > SO_RCVBUF set buffer size for input
>
> ah super, genau das habe ich gesucht.
> Ich habe jetzt gesehen, das der Buffer per default auf 64kB steht.
> (Laut sysctl sind max. 256kB moeglich).
>
> Was wuerde denn passieren, wenn ich 64kB im Buffer habe und es kommen
> noch mehr Daten, sagt dann das TCP/IP Protokol, Buffer voll und der
> Sender schickt die Daten erneut, ueberschreibt er die Daten oder wirft
> er einfach Daten weg?

Der Empfänger teilt dem Sender bei TCP jederzeit mit wieviel Platz er
noch hat.
Receive Window nennt sich das - kannst du gut per tcpdump verfolgen.
Kurz gesagt, es haben nicht mehr Daten zu kommen - wenn doch wird es
verworfen und der Sender bekommt keine Bestätigung, damit er es erneut
sended.
Allerdings haben einige TCP Implementationen Probleme mit mehr als 64k.
Das ganze gilt nur bei TCP, UDP z.B. kann die Packete nur noch verwerfen
und es muss in einer anderen Ebene behandelt werden.

-- 
B.Walter                   BWCT                http://www.bwct.de
bernd(at)bwct.de                                  info(at)bwct.de
To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Wed 14 Sep 2005 - 10:48:40 CEST

search this site