emailconfirmed, nsInternRO, nsInternRW, Administrators
3,356
edits
m (→IPs & Ports) |
(sockets) |
||
Line 1: | Line 1: | ||
== IPs | == IPs == | ||
IP steht für Internet Protocol und bezeichnet eine Adresse in einem [[Netzwerk|Netzstrukturen]]. Aktuell sind noch IPv4-Adressen im Einsatz, aufgrund der rasant ansteigenden Zahlen vorhandener Computer stößt man auch mit Konzepten wie dynamisch vergebenen IP-Adressen langsam an die Grenzen der maximalen Anzahl zu vergebender Nummern. In Zukunft wird jeder Rechner eine IPv6-Adresse haben. | IP steht für Internet Protocol und bezeichnet eine Adresse in einem [[Netzwerk|Netzstrukturen]]. Aktuell sind noch IPv4-Adressen im Einsatz, aufgrund der rasant ansteigenden Zahlen vorhandener Computer stößt man auch mit Konzepten wie dynamisch vergebenen IP-Adressen langsam an die Grenzen der maximalen Anzahl zu vergebender Nummern. In Zukunft wird jeder Rechner eine IPv6-Adresse haben. | ||
Line 14: | Line 14: | ||
Ein DNS (Domain Name Server) hilft dabei, eine Adresse wie uni-weimar.de in eine IP Adresse aufzulösen. | Ein DNS (Domain Name Server) hilft dabei, eine Adresse wie uni-weimar.de in eine IP Adresse aufzulösen. | ||
Weiterführende Links: | |||
* [http://de.wikipedia.org/wiki/IP-Adresse IP-Adressen] inkl. Übersicht über reservierte IP-Adressräume | |||
* [http://de.wikipedia.org/wiki/DNS DNS - Domain Name Server] | |||
* IP-Adress-Typen: | |||
** [http://de.wikipedia.org/wiki/Unicast Unicast]: Senden an einen bestimmten Empfänger im Netzwerk | |||
** [http://de.wikipedia.org/wiki/Broadcast Broadcast]: Senden an alle Geräte im selben Netz (Subnetz) | |||
** [http://de.wikipedia.org/wiki/Multicast Multicast]: Senden an einige Geräte im selben Netz | |||
== Ports == | |||
Jeder Rechner verfügt über Ports, sozusagen Postfächer, an denen verschiedene Programme lauschen, ob für sie eine Nachricht eintrifft. Eigene Ports sollten am besten im Bereich von 49152 bis 65535 vergeben werden; eine [http://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers Übersicht vergebener TCP und UDP Port Nummern] findet man auf Wikipedia. Übliche Ports sind z.B. 80 für http, 21 für ftp, 110 für POP3, 5190 für ICQ usw... | Jeder Rechner verfügt über Ports, sozusagen Postfächer, an denen verschiedene Programme lauschen, ob für sie eine Nachricht eintrifft. Eigene Ports sollten am besten im Bereich von 49152 bis 65535 vergeben werden; eine [http://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers Übersicht vergebener TCP und UDP Port Nummern] findet man auf Wikipedia. Übliche Ports sind z.B. 80 für http, 21 für ftp, 110 für POP3, 5190 für ICQ usw... | ||
* 0-255: TCP/IP-Anwendungen (System, reserviert) | * 0-255: TCP/IP-Anwendungen (System, reserviert) | ||
Line 20: | Line 29: | ||
* 49152-65535: Dynamische Port-Nummern für den "privaten" Gebrauch | * 49152-65535: Dynamische Port-Nummern für den "privaten" Gebrauch | ||
Weiterführende Links: | |||
* [http://de.wikipedia.org/wiki/Port_(Protokoll) Ports] inkl. Übersicht üblicher Ports | * [http://de.wikipedia.org/wiki/Port_(Protokoll) Ports] inkl. Übersicht üblicher Ports | ||
* [http://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers Übersicht vergebener TCP und UDP Port Nummern] | * [http://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers Übersicht vergebener TCP und UDP Port Nummern] | ||
== TCP == | == TCP == | ||
TCP/IP (Transmission Control Protocol / Internet Protocol) ist (v.a. im Unterschied zu UDP) ein '''verbindungsorientiertes Transportprotokoll'''. D.h. es wird zuerst eine Verbindung aufgebaut, bevor der eigentliche Datentransfer beginnt. Dies ist zwar sicher (damit ist nicht sicher im Sinne von verschlüsselt oder abhörsicher gemeint!), aber bringt auch einen gewissen Overhead mit. | TCP/IP (Transmission Control Protocol / Internet Protocol) ist (v.a. im Unterschied zu UDP) ein '''verbindungsorientiertes Transportprotokoll'''. D.h. es wird zuerst eine Verbindung aufgebaut, bevor der eigentliche Datentransfer beginnt. Dies ist zwar sicher (damit ist nicht sicher im Sinne von verschlüsselt oder abhörsicher gemeint!), aber bringt auch einen gewissen Overhead mit. | ||
Weiterführende Links: | |||
* [http://de.wikipedia.org/wiki/TCPIP Wikipedia:TCP/IP] | * [http://de.wikipedia.org/wiki/TCPIP Wikipedia:TCP/IP] | ||
* [http://netzmafia.de/skripten/netze/netz8.html TCP/IP @ netzmafia.de] | * [http://netzmafia.de/skripten/netze/netz8.html TCP/IP @ netzmafia.de] | ||
Line 45: | Line 47: | ||
Man kann ein Datenpaket z.B. an eine bekannte IP Adresse und einen bestimmten Port im lokalen (oder globalen) Netzwerk senden. Eine Besonderheit bei UDP ist die Möglichkeit Nachrichten an die IP 0.0.0.0 zu senden, was einer "Rundmail" gleichkommt. Natürlich empfangen nur Rechner diese Nachricht, auf denen ein Programm läuft, das auf Nachrichten an dem entsprechenden Port wartet (Port-Listener). | Man kann ein Datenpaket z.B. an eine bekannte IP Adresse und einen bestimmten Port im lokalen (oder globalen) Netzwerk senden. Eine Besonderheit bei UDP ist die Möglichkeit Nachrichten an die IP 0.0.0.0 zu senden, was einer "Rundmail" gleichkommt. Natürlich empfangen nur Rechner diese Nachricht, auf denen ein Programm läuft, das auf Nachrichten an dem entsprechenden Port wartet (Port-Listener). | ||
<source lang=" | <source lang="C"> | ||
127.0.0.0:4444 // Eigener Rechner (IP 127.0.0.0), Port# 4444 | 127.0.0.0:4444 // Eigener Rechner (IP 127.0.0.0), Port# 4444 | ||
192.168.1.11:5555 // IP im lokalen Netzwerk 192.168.1.11, Port# 5555 | 192.168.1.11:5555 // IP im lokalen Netzwerk 192.168.1.11, Port# 5555 | ||
Line 53: | Line 55: | ||
Achtung: Eigene Ports sollten am besten im Bereich von 1024 bis 49151 vergeben werden; eine [http://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers Übersicht vergebener TCP und UDP Port Nummern] findet man auf Wikipedia. | Achtung: Eigene Ports sollten am besten im Bereich von 1024 bis 49151 vergeben werden; eine [http://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers Übersicht vergebener TCP und UDP Port Nummern] findet man auf Wikipedia. | ||
Weiterführende Links UDP | |||
* [http://de.wikipedia.org/wiki/User_Datagram_Protocol User Datagram Protocol] | * [http://de.wikipedia.org/wiki/User_Datagram_Protocol User Datagram Protocol] | ||
* [http://www.abc.se/~m6695/udp.html Writing a simple UDP client/server in a Unix Environment] | * [http://www.abc.se/~m6695/udp.html Writing a simple UDP client/server in a Unix Environment] | ||
* [[OSC]] - Open Sound Control | * [[OSC]] - Open Sound Control | ||
== | == Sockets == | ||
* [http://www.uni-weimar.de/medien/webis/teaching/lecturenotes/web-technology/unit-de-network-protocol1.pdf Lecture Notes Network Protocols] von Prof. Benno Stein | Protokolle wie TCP und UDP sind abstrakte Dienste, die die Struktur von Computer-Kommunikation definieren. Programmierer benutzen für TCP und UDP Operationen ''[http://de.wikipedia.org/wiki/Socket_(Software) Sockets]'', manchmal auch BSD-Sockets genannt. Sockets sind in jedem Betriebssystem zu finden. | ||
* [http:// | |||
=== Socket-Beispiel JAVA === | |||
Die [http://de.wikipedia.org/wiki/Java (Programmiersprache) Java] als plattformunabhängige [[Category:Programmiersprachen|Programmiersprache]] unterstützt im Paket <code>java.net</code> die Socket-Programmierung: Folgendes Kurzbeispiel zeigt die Verwendung der Klassen <code>Socket</code> und <code>ServerSocket</code>: | |||
<source lang="java"> | |||
ServerSocket serverSocket = new ServerSocket(port); // Serversocket mit bestimmter Port-Nummer erstellen | |||
while(true) { | |||
Socket clientSocket = serverSocket.accept(); // auf Anfragen warten | |||
InputStream input = clientSocket.getInputStream(); // InputStream-Objekt öffnen | |||
byte[] data = new byte[1024]; // Datenpuffer deklarieren (anlegen) | |||
int NumBytes = 0; // Variable für Anzahl der tatsächlich gelesenen Bytes | |||
NumBytes = input.read(data); // Daten lesen | |||
/*** gelesene Daten verarbeiten ***/ | |||
clientSocket.close(); // Verbindung schließen | |||
} | |||
</source> | |||
weiterführende Links: | |||
* [http://de.wikipedia.org/wiki/Socket_(Software) BSD Sockets] | |||
== Links == | |||
siehe "weiterführende Links" unter den einzelnen Sektionen und: | |||
* [http://www.uni-weimar.de/medien/webis/teaching/lecturenotes/web-technology/unit-de-network-protocol1.pdf Lecture Notes Network Protocols 1] von Prof. Benno Stein | |||
* [http://www.uni-weimar.de/medien/webis/teaching/lecturenotes/web-technology/unit-de-network-protocol1.pdf Lecture Notes Network Protocols 2] von Prof. Benno Stein | |||
[[Category:Internet]] | [[Category:Internet]] |