[linux-l] sockets und ip's

Kendy Kutzner kendy.kutzner at e-technik.tu-chemnitz.de
Mo Okt 13 10:45:36 CEST 2003


On 2003-10-10T10:21:02+0200, Steffen Dettmer wrote:
> Richtiger wäre wohl: 
> 
> TCP-Socket-Adresse := IP-Adresse + Port

Von TCP-Socket-Adressen hab ich noch nie gehoert.

> Hier kann ja eine remote-socket-adresse assoziert sein. Aber auch
> nur genau eine, oder?

Was auf der Gegenseite passiert, weisst Du nicht, dementsprechend
ist der Begriff remote-socket irrefuehrend. Alles was Du weisst
ist das die Gegenseite auch TCP spricht. Wie das implementiert
ist (== welche (Kernel-)Schnittstellen es gibt, ob es ueberhaupt
sockets gibt) ist egal.

> Bitte Beispiel, wie Du mit einem Socket zwei IPs gleichzeitig
> auswählst - wie geht das? Zweimal "bind" benutzen? 

Nein, Wildcard-Adressen. Beispiel von hier, 'netstat -ant'

tcp        0      0 0.0.0.0:22              0.0.0.0:*          LISTEN
tcp        0      0 :::22                   :::*               LISTEN

sshd lauscht auf allen Netzwerkschnittstellen gleichzeitig.

> UDP ist doch stateless?

eben, ein sehr gutes Argument warum Sockets nur bedingt was mit
dem Protokoll untendrunter zu tun haben. UDP ist stateless, UDP
Sockets sind in unterschiedlichen Zustaenden nach den Aufrufen
von socket(), bind(), connect(). Siehe hierzu die man-pages der
Funktionen und 'man udp'.

Wie ich schon schrieb, sind Sockets eher vergleichbar mit
Datei-Deskriptoren. Diese haben auch nicht direkt etwas mit
Dateinamen zu tun.

Kendy

-- 




Mehr Informationen über die Mailingliste linux-l