Ports / Protokolle
-
Hallo,
ähm mir scheint die Geschichte mit den Ports und ihr Zusammenspiel mit den Protokollen noch nicht ganz klar zu sein.
Es gibt ja viele Ports (ca 65000 oder so, richtig??), und davon sind die ersten 1024 Ports mit Standartfunktionen belegt, richtig?
So!1. Was genau muss ich mir unter einem Port vorstellen? Ist das ein Programm?? (Bitte jetzt nicht mit der Türen-variante kommen
).2. Sind alle Ports gleich (Größe, Möglichkeiten etc.).
3. Und warum kann man Ports nach außen und nach innen öffnen / sperren??
Ich verstehe das nicht??4. Wie funktioniert das mit den Protokollen genau? Wenn ich ins Inet gehe, dann öffne ich ja den ie, also den Browser. Was genau macht der dann? Öffnet er dann das HTTPprotokoll, oder öffnet er das IPprotokoll oder öffnet er das TCPprotokoll oder mehrere gemeinsam???

Und was genau muss ich mir unter so einem Protokoll vorstellen? Wieder ein Programm oder eine Bibliothek?? Und wo befinden sich diese Protokolle??
Und wenn vom Internetserver die Rede ist, welcher Server ist dann damit gemeint?? Es gibt ja schließlich viele Server im Internet, oder? Oder gibt es da einen Server, welcher für die Übertragung von Daten im Internet verantwortlich ist??5. Wenn ich mir ein kleines Client-Serverprogramm schreibe, und als Port 123456789 angebe, dann funktioniert das trotzdem, aber wieso?
Und wenn ich Port 5190 nehme, so wird beim Beenden des Programms die Meldung "Gegenseite hat die Verbindung beendet" angezeigt! Wenn ich jedoch Port 12345 nehme, kommt stets die Meldung "Fehler beim Empfangen von Datenpaketen"! (PS: Thread: Netzwerkprogrammierung Teil2)
Und wenn ich bei meinem Server bei den zugelassenen IPs anstatt ADDR_ANY 192.168.1.11 eingebe, und es über meinen Homeserver laufen lasse, so müsste der Client doch eigentlich über die Adresse 192.168.1.11 und über die Adresse 127.0.0.1 akzeptiert werden, oder?? Es geht ja schließlich nur um die HerkunftsIP des Clienten, und diese ist ja sowohl 127.0.0.1 als auch 192.168.1.11....aber es geht natürlich aus irgendeinem Grund nur, wenn ich beim Clienten die ZielIP 192.168.1.11 eingebe...Ich wäre für eine Erläuterung sehr sehr dankbar! Denn ich habe das Gefühl, dass ich sonst in der Netzwerkprogrammierung scheitere, wenn ich nicht mal richtig über die Ports bzw. Protokolle und dessen Zusammenspiel bescheit weiß.
Viele Grüße
Gapa
-
Gapa schrieb:
1. Was genau muss ich mir unter einem Port vorstellen? Ist das ein Programm?? (Bitte jetzt nicht mit der Türen-variante kommen
).Damit nicht ein Programm mit allem was so übers Netzwerk kommt zu tun hat, gibt es eben Ports. Du horchst auf einem Port und ignorierst den Rest. Ist im Grunde eine Form der Selektion.
2. Sind alle Ports gleich (Größe, Möglichkeiten etc.).
Ja. Im Grunde schon.
3. Und warum kann man Ports nach außen und nach innen öffnen / sperren??
Ich verstehe das nicht??Um bestimmte Programme zu sperren/zu erlauben. HTTP geht (meist) über Port 80. Sperre den Port und dein Browser wird sich "beschweren". Die Ports die Programme benutzen die dafür bekannt sind das man damit Schabernack betreibt, sollte man daher sperren. Oder anders herum nur die öffnen die nicht gefährlich sind.
4. Wie funktioniert das mit den Protokollen genau? Wenn ich ins Inet gehe, dann öffne ich ja den ie, also den Browser. Was genau macht der dann? Öffnet er dann das HTTPprotokoll, oder öffnet er das IPprotokoll oder öffnet er das TCPprotokoll oder mehrere gemeinsam???

Und was genau muss ich mir unter so einem Protokoll vorstellen? Wieder ein Programm oder eine Bibliothek?? Und wo befinden sich diese Protokolle??IP beschreibt die Form wie die Rechner kommunizieren. Wie die Rechner identifiziert werden, wie die Routen berechnet werden usw. TCP beschreibt wie die Pakete der einzelnen Nachrichten übermittelt werden, während ein Protokoll wie HTTP im Grunde die Sprache ist, die übermittelt wird. Also bestimmt wie eine Nachricht aufgebaut ist, was für Typen es gibt usw.
Und wenn vom Internetserver die Rede ist, welcher Server ist dann damit gemeint?? Es gibt ja schließlich viele Server im Internet, oder? Oder gibt es da einen Server, welcher für die Übertragung von Daten im Internet verantwortlich ist??
Nein, das Internet ist dezentral, es gibt keinen "Überserver". Das Routing ist auf eine bestimmte Menge an Knoten verteilt, so daß dies auch funktioniert wenn welche ausfallen.
5. Wenn ich mir ein kleines Client-Serverprogramm schreibe, und als Port 123456789 angebe, dann funktioniert das trotzdem, aber wieso?
Vermutlich weil das Toolkit das du verwendest das dann einfach ummappt auf eine gültige Zahl.
Und wenn ich bei meinem Server bei den zugelassenen IPs anstatt ADDR_ANY 192.168.1.11 eingebe, und es über meinen Homeserver laufen lasse, so müsste der Client doch eigentlich über die Adresse 192.168.1.11 und über die Adresse 127.0.0.1 akzeptiert werden, oder?? Es geht ja schließlich nur um die HerkunftsIP des Clienten, und diese ist ja sowohl 127.0.0.1 als auch 192.168.1.11....aber es geht natürlich aus irgendeinem Grund nur, wenn ich beim Clienten die ZielIP 192.168.1.11 eingebe...
127.0.0.1 ist immer der eigene Rechner. Daher wird dein Server dies wohl nie als Herkunfts-IP bekommen, wenn der Client auf einem anderen Rechner läuft.
Gibt übrigens keine Garantie für das was ich gesagt habe.
