| |
|
|
| |

Netzwerkgrundlagen - ping
Unix spricht viele Netzwerkprotokolle. Wie inzwischen fast überall, ist
aber das im Internet verwendete TCP/IP am beliebtesten und am
verbreitetsten.
Die Kommuniktaion zwischen den Computern läuft über kleine
Datenpakete, die von einem Computer zum anderen verschickt werden.
Typischerweise sind diese kleinen Pakete einige 100 bis 1500 Bytes lang.
Größere Datenstroeme werden aus mehreren Paketen zusammengesetzt.
Jedes der IP Pakete hat:
* eine Empfängeraddresse (anhand dieser findet das Paket im Netz sein
ziel)
* eine Absenderaddresse (anhand dieser weiss der Empfänger wem er eine
Antwort auf das Paket schicken soll)
Die beiden Addressen sind im normalen Internet 4 bytes (32 bit) lang
und werden per Konvention in 4 durch 3 Punkte getrennten Dezimalzahlen
geschrieben. z.b.:
198.182.196.56
* die Länge des Pakets
* Einige zusätzliche technische Informationen...
In diese IP Pakete hinein werden dann Datenpakete gepackt. Und zwar
folgendermaßen:
* TCP (transmission control protocol) Pakete: Für Verbindungen, die sich
nicht für die Pakete interessieren, sondern nur einen kontinuierlichen
Datenstrom benötigen. (Z.B. eine ssh oder telnet Verbindung) (TCP
Pakete sind z.b. durchnummeriert und das Betriebsystem (in unserem
Fall Unix) kümmert sich darum, dass falls ein Paket verloren geht, dass
es neu gesendet wird, etc..etc.. Der Benutzer von TCP muss sich also
nicht um die Details des Netzwerks kümmern...)
* UDP (user datagram protocol) Paket: Wo noch jedes Paket einzeln
gesendet und epfangen werden kann. Wer UDP-Pakete benutzt, muss damit
rechnen, dass seine Pakete eventuell auf dem Weg vom Sender zum
Empfänger verloren gehen, oder nicht in der selben Reihenfolge ankommen
in der sie gesendet wurden etc.. Dafür hat man aber einen etwas
direkteren Zugang zum Netz.
* ICMP (internet control message protocol). Diese Pakete dienen dem Netz
selbst als Information. Es gibt z.B. ICMP-Pakete, die Stau auf der
Datenautobahn melden. Für dich praktisch nützlich ist das ICMP echo
Paket, dass den Empfänger auffordert, mit einem ICMP-Reply-Paket zu
antworten. Das macht der ping Befehl:
Kapitän: "Geben sie mir ein Ping!"
Der Name "ping" kommt aus dem Sonarjargon. Ein kurzer Ultrashallimpuls,
der ausgesendet wurde, um andere U-Boote zu orten.. (die diesen Ton
reflektierten..)
ping schickt ein kurzes Netzwerkpaket zu einem anderen Computer im
Internet, und der sollte das wieder retour schicken. Und dann kann man die
Zeit messen, wie lange es gebraucht hat (oder ob es überhaupt retour
gekommen ist). Üblicherweise schaut man damit, ob sein eigenes Netzwerk
funktioniert, und ob man andere Computer erreichen kann.
Insofern ist der ping-Befehl vorallem dann nützlich, wenn mal was mit dem
Netzwerk nicht funktioniert, und man rausfinden will was.
z.B.:
ping 194.152.178.12
Ausgabe:
PING bozo.sil.at (194.152.178.12): 56 data bytes
64 bytes from 194.152.178.12: icmp_seq=0 ttl=59 time=11.9 ms
64 bytes from 194.152.178.12: icmp_seq=1 ttl=59 time=4.5 ms
64 bytes from 194.152.178.12: icmp_seq=2 ttl=59 time=4.5 ms
64 bytes from 194.152.178.12: icmp_seq=3 ttl=59 time=4.5 ms
--- bozo.sil.at ping statistics ---
4 packets transmitted, 4 packets received, 0% packet loss
round-trip min/avg/max = 4.5/6.3/11.9 ms
Die ausgesendeten Pakete sind durchnummeriert, da sieht man gleich ob
welche verloren gehen. Die Zeit gibt an, wieviele Millisekunden das Paket
vom Aussenden bis zum Empfangen gebraucht hat. (Im obigen Fall
durchschnittlich 6.3 ms. Auf großen Entfernungen oder langsamen Strecken
können schon mal einige 100ms oder 1000 ms zusammenkommen (1000 ms = 1
Sekunde).
Aus dem ttl-wert (time to life) kann man sehen, wieviel Computer (Router)
zwischen uns sind. Dabei hängt es davon ab, mit welchem Startwert der
andere Computer die Pakete wegschickt. 256, 128 oder 64 im obigen
Beispiel. Es waren 5 Computer zwischen meinem derzeitigen
Standort und dem www.sil.at (diese Zwischenstationen werden auch "hops"
(singular: hop) genannt.)
Falls du hinter einer Firewall sitzt, geht ping eventuell nicht, weil
deine Firewall keine pings durchlässt.
Anstatt einer IP Adresse in Form der 4 mit 3 Punkten getrennten Zahlen
kannst du auch einen Namen verwenden. z.b.:
ping www.sil.at
wäre das selbe. Wenn du mal irgendwo bist, wo zwar Nummern pingen
funktioniert, aber Namen nicht, dann funktioniert die Namensaufloesung
(DNS) nicht. Da sollte man dann z.b. ins /etc/resolv.conf schauen, ob nicht
ein falscher Nameserver eingetragen ist. Über die Umsetzung von Namen wie
www.sil.at">http://www.sil.at/">www.sil.at in Nummern wie 194.152.178.12 und
umgekehrt lernen wir später noch genauer...
Nützliche Optionen beim ping Befehl:
-c 20 verschickt genau 20 Pakete und beendet sich dann,
ohne, dass man es mit Control-c abbrechen muss.
-l 1000 verschickt Pakete mit einer Länge von 1000B
(das darf normalerweise nur root)
-f flood ping. Schickt soviele ping-Pakete wie möglich.
Darf normalerweise auch nur root. VORSICHT: -f sollte man nur
verwenden, wenn man genau weiß was man tut. Man kann sich sonst
BETRAECHTLICHEN ÄRGER mit den Netzwerkbetreuern einheimsen..
EXERCISES:
Verwende den ping Befehl um die Entfernung (gemessen in hops und in
zeitlicher Verzögerung (Millisekunden)) zu messen. Welche numerische IP
Adressen haben diese Websites?
REFERENCES:
http://www.cisco.com/univercd/cc/td/doc/cisintwk/ito_doc/ip.htm
http://www.shofar.uklinux.net/NELUG/resources/internet_protocols.html
IP: http://ietf.org/rfc/rfc791.txt
TCP: http://ietf.org/rfc/rfc793.txt
UDP: http://ietf.org/rfc/rfc768.txt
http://www.protocols.com/pbook/tcpip.htm
man ping
http://ftp.arl.mil/~mike/ping.html
http://www.ping127001.com/pingpage.htm
|
|
| |
|
|
|