ABSTRACT: eine erste einfuehrung in TCP/IP unter unix mit dem ping befehl als beispiel. AUDIENCE: beginners SYSTEM: any unix SECTION: basic unix commands AUTHOR: mond COPYRIGHT: GNU Free Documentation Licence http://www.gnu.org/licenses/fdl.txt ping. heute machen wir mal unser erstes netzwerkkomando. vorher haber einige netzwerkgrundlagen: unix spricht viele netzwerkprotokolle. wie inzwischen fast ueberall ist aber das im internet verwendete TCP/IP am beliebtesten und am verbreitetsten. die kommuniktaion zwischen den computern laueft in ueber kleine datenpackete die von einem computer zum anderen verschickt werden. typischerweise sind diese kleinen packete einige 100 bis 1500 bytes lang. groessere datenstroeme werden aus mehreren packten zusammengesetzt. jedes der IP packte hat: * eine empfaengeraddresse (anhand dieser findet das packet im netz sein ziel) * eine absenderaddresse (anhand dieser weiss der empfaenger wem er eine antwort auf das packet schicken soll) die beiden addressen sind im normalen internetz 4 bytes (32 bit) lang und werden per convention in 4 durch 3 punkte getrennten dezimalzahlen geschrieben. z.b.: 198.182.196.56 * die laenge des packets * einige zusaetzliche technische informationen... in diese IP packete hinein werden dann datenpackte gepackt. und zwar folgende meist folgende arten: * TCP (transmission control protocol) packete: fuer verbindungen die sich nicht fuer die packte interessieren sonder nur einen kontinuierlichen datenstrom benoetigen. (z.b. eine ssh oder telnet verbidnung) (TCP packete sind z.b. durchnummeriert und das betriebsystem (in unserem fall unix) kuemmert sich darum dass fals ein packet verlorgen geht dass es neu gesendet wird, etc..etc.. der benutzer von TCP muss sich also nicht um die schmutzigen details des netzwerks kuemmern...) * UDP (user datagram protocol) packte: wo noch jedes packet einzeln gesendet und epfangen werden kann. wer UDP packete benutzt muss damit rechnen dass seine packete eventuell auf dem weg vom sender zum empfaenger verlorgen gehen oder nicht in der selben reihenfolge ankommen wie sie gesendet wurden etc.. dafuer hat man aber einen etwas direkteren zugang zum netz. * ICMP (internet control message protocol). diese packte dienen dem netz selbst als information. es gibt z.b. ICMP packete die stau auf der datenautobahn melden.. fuer dich praktisch nuetzlich ist das ICMP echo packet dass den empfaenger auffordert mit einem ICMP reply packet zu antworten. das macht der ping befehl: kapitaen: "geben sie mir ein ping!" der name "ping" kommt aus dem sonar jargon. ein kurzer ultrashall impuls der ausgesendet wurde um andere uboote zu orten.. (die diesen ton reflectirten..) ping schickt ein kurzes netzwerkpacket zu einem anderen computer im internet und der sollte das wieder retour schicken. und dann kann man die zeit messen wielange es gebraucht hat (oder ob es ueberhaupt retour gekommen ist). ueblicherweise schaut man damit ob sein eigenes netzwerk funktioniert und ob man andere computer erreichen kann. insofern ist der ping befehl vorallem dann nuetzlich 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 ausgesendenten packte sind durchnummeriert da sieht man gleich ob welche verlorgen gehen. die zeit gibt an wieviele millisekunden das packte vom ausssenden bis zum epmfangen gebraucht hat. (im obigen fall durchschnittlich 6.3 ms. auf grossen entfernungen oder langsamen strecken koennen 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 haengt es ab mit welchem startwert der gegencomputer die packete wegschickt meist. 256, 128 oder 64 in obigen beispiel eher 64 d.h. es waeren 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 das ping ebentuell nicht weil deien firewall keine pings durchlaesst. anstatt einer IP addresse in form der 4 mit 3 punkten getrennten zahlen kannst du auch einen namen verwenden. z.b.: ping www.sil.at waere das selbe. wenn du mal irgendwo bist wo zwar nummern pingen aber namen nicht dann funktinioert die namensaufloesung (DNS) nicht. da sollte man dann z.b. ins /etc/resolv.conf schaun ob nicht ein falscher "nameserver" eingetragen ist. ueber die umsetzung von namen wie www.sil.at in nummer wie 194.152.178.12 und umgekehrt lernen wir spaeter noch genauer... nuetzliche optionen beim ping befehl: -c 20 wuerde genau nur 20 packete verschicken und sich dann beenden ohne dass man es mit control-c abbrechen muss. -l 1000 wuerde packte mit einer laenge von 1000 bytes schicken (das darf normalerweise nur der root user) -f flood ping. schickt soviele ping packete wie moeglich. darf normaler weise auch nur der root user. VORSICHT: -f sollte man nur verwenden wenn man genau weiss was man tut. man kann sich sonst BETRAECHTLICHEN AERGER mit den netzwerkbetreuern heinheimsen.. EXERCISES: verwende den ping befehl um die entfernung (gemessen in hops und in zeitlicher verzoegerung (millisecunden)) zu messen. welche numerische IP addressen 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