Guten Abend!
Ich bin am überlegen, wie der Ping-Befehl genau funktioniert. Und zwar
möchte ich in einem 10 MBit Ethernet einer Last auf der Leitung von 10
MBit erreichen. Der Befehl z.B. ping 192.168.1.20 sendet nur viermal ein
Packet aus 56 Bytes + 8 Bytes ICMP data.
Wie bekomme ich den Kanal voll?
Sind die Befehle bei Linux und bei Windows die gleichen?
Ich bekomme es nur hin, dass mehr als 64 Bytes gesendet werden:
ping 192.168.1.20 -l 1250
Jetzt werden 1250 Bytes gesendet. Das entspricht einer Last von
Dieser Parameter ist laut
http://help.expedient.com/broadband/mtu_ping_test.shtml auf 1462
begrenzt.
Ich meine, es gäbe noch einen Befehl, mit dem die Datengröße anstatt 8
Bytes vergrößert werden kann.
Vielen Dank!
Jürgen
Unter Linux kann der Ping etwas mehr als unter windows.
Z.B Ping -s 4096 host
setzt einen Ping mit 4096 Bytes Paketgrösse ab.
Mit dem Parameter -f kann ein flood ping erzeugt werden.
Ein flood ping wartet nicht auf die Antwort des letzten Pings sondern
schiebt sofort das nächste Paket raus.
Achtung: Ich muß wohl nicht dazu sagen dass ein flood ping auf einen
fremden HOST sehr unhöflich ist.
Nonsense schrieb:> chau dir mal Iperf und DITG an, sind Lastgeneratoren, die sind für> sowas besser geeignet meiner Meinung nach.
Hi!
Ja es ging mir mehr um die Befehle! Ich will auch gar keinen flood-Ping
auf einen Fremden Host senden.
Ich habe ein Praktikumsversuch, und muss das dafür verwenden.
Dort wird mit Linux-PCs gearbeitet, das kann ich also im Vorfeld gar
nicht ausprobieren....
ping 192.168.1.20 -s 1250 -l 1000
So, jetzt beträgt die Paketgröße 1250 Bytes = 10 Kbit.
Das ganze sende ich 1000 mal hintereinander, sodass ich 10 Mbit
erreiche.
Ist das so korrekt?
Jürgen Hems schrieb:> Das ganze sende ich 1000 mal hintereinander, sodass ich 10 Mbit> erreiche.> Ist das so korrekt?
kommt darauf an ob die 10Mbit/s meinst oder insgesmat 10Mbit. Als
nächsten muss dir dir noch überlegen wie du die größe überhaupt angibst.
Ein Ping mit 1000byte Nutzlänge hat noch ein offset ist also länger als
1000byte. Als nächstes kommt noch das Problem das 1000byte != 1kbyte
sind.
http://de.wikipedia.org/wiki/Bin%C3%A4rpr%C3%A4fix
Peter schrieb:> Als nächstes kommt noch das Problem das 1000byte != 1kbyte> sind.
Genau das sind sie aber, wie der von Dir verlinkte Wikipedia-Beitrag
beschreibt.
1000 Byte != 1 kiByte, das ja. Aber 1000 Byte == 1 kByte.
Die Menge der übertragenen Daten ist aber trotzdem eine andere, weil die
übertragenen IP-Pakete noch einiges an Overhead enthalten, vom
Ethernet-Overhead ganz abgesehen.
Peter schrieb:> kommt darauf an ob die 10Mbit/s meinst oder insgesmat 10Mbit. Als> nächsten muss dir dir noch überlegen wie du die größe überhaupt angibst.
Ja, ich möchte 10 Mbps erreichen.
Stimmt denn die Theorie wenigstens, mit dem Befehl
ping 192.168.1.20 -s 1250 -l 1000
dies zu bezwecken?
Wenn
Jürgen Hems schrieb:> Ja, ich möchte 10 Mbps erreichen.> Stimmt denn die Theorie wenigstens, mit dem Befehl> ping 192.168.1.20 -s 1250 -l 1000> dies zu bezwecken?
nein weil du ping nicht dazu bringen kannst das ganze in 1 sekunde
auszuführen.
Jürgen Hems schrieb:> Ja, ich möchte 10 Mbps erreichen.> Stimmt denn die Theorie wenigstens, mit dem Befehl>> ping 192.168.1.20 -s 1250 -l 1000>> dies zu bezwecken?
Nein, weshalb hat der Vorredner schon festgestellt.
Was du mit "Bordmitteln" machen kannst ist mittels Download eine
ungefähre Auslastung auf dem Link erreichen, z.B. mit wget oder curl.
Bei curl kannste dazu --limit-rate verwenden, wget hat auch sowas. RTFM.
:)
Hmm ich soll irgednwie in einem selber aufgebauten 10 Mbps Netzwerk
Kollisionen erzwingen, um auszuwerten, was dabei geschieht.
Dazu senden 2 Hosts an einen 3. Host Daten. Die Wahrscheinlichkeit, dass
es zu Kollisionen kommt, ist mit dem normalen ping Befehl eher gering.
Deshalb muss man die Kanal irgendwie auf volle Belastung bringen, so,
dass beide Rechner mit 10 Mbps senden.
Jürgen Hems schrieb:> Hmm ich soll irgednwie in einem selber aufgebauten 10 Mbps Netzwerk> Kollisionen erzwingen, um auszuwerten, was dabei geschieht.
Für häufige Kollisionen brauchst du viele kleine Pakete, nicht wenige
grosse. Und mehrere Stationen müssen diese senden. Zudem besteht ein
Zusammenhang zwischen der Signallaufzeit im Kabel und der
Kollisionswahrscheinlichkeit: wenn zwei Stationen (zeitlich) dicht
beieinander sitzen, dann ist eine Kollision dazwischen weniger
wahrscheinlich als bei grossem Abstand.
A. K. schrieb:> Für häufige Kollisionen brauchst du viele kleine Pakete, nicht wenige> grosse. Und mehrere Stationen müssen diese senden. Zudem besteht ein> Zusammenhang zwischen der Signallaufzeit im Kabel und der> Kollisionswahrscheinlichkeit: wenn zwei Stationen (zeitlich) dicht> beieinander sitzen, dann ist eine Kollision dazwischen weniger> wahrscheinlich als bei grossem Abstand.
Okay, aber wenn ein PC mit 10 Mbps sendet und die Kanalbandbreite voll
ausnutzt, so kommt es doch auch zu Kollisionen. Die PCs befinden sich
direkt nebeneinander, aber es wird ein etwa 120m langes Kabel verwendet.
Mir geht es jetzt noch um den ping befehl, mit dem ich die Übertragung
zu Kollisionen bringen kann ;-)
Das mit den kurzen Paketen klingt schlüssig, da ja dann öfter gesendet
wird und der Kanal dann zu viel mehr Zeiotpunkten frei ist, sodass
Kollisionen wohl auch öfter auftreten können.
Dann würde ich es so probieren:
ping 192.168.1.20 -s 8 -f
Jetzt werden dauerhaft 8 Bytes versendet...mit überflutungsbefehl
Keine Ahnung, warum du dich so am Ping festkrallst. Für die Erzeugung
von Netzlast ist es jedenfalls nicht besonders geeignet. Oben wurden
schon diverse Tools genannt, alternativ ganz simpel große Dateien über
das Netzwerk kopieren. Mehr Last geht fast nicht...
Jürgen Hems schrieb:> Hmm ich soll irgednwie in einem selber aufgebauten 10 Mbps Netzwerk> Kollisionen erzwingen, um auszuwerten, was dabei geschieht.
Du erwartest aber keine Schwarzen Löcher oder so? Was "passiert" steht
doch schon in der Netzwerkspezifikation.
Und wenn das ganze, wie heute üblich, über einen Switch läuft hast du
vermutlich sowieso keine "echten" Kollisionen. Also wäre es mal
interessant was genau du da "irgendwie auswerten" willst.
oszi40 schrieb:> Wobei eigentlich große Pakete allgemein anfälliger sind gegen Störungen.
Bei mieser Leitung ja, aber mit Kollisionen hat das dann überhaupt
nichts zu tun. Eine Node plappert ja nicht einfach so mittel in die Rede
rein, sondern wartet höflich bis der Sprecher durch ist. Zur Kollision
kommt es, wenn dann mehrere gleichzeitig zur Rede ansetzen. Die erwähnte
lange Leitung braucht es, damit die Wahrscheinlichkeit steigt, dass die
eine Node nicht rechtzeitig merkt, dass die andere schneller war.
unter unix-artigen OS gibt es häufig auch ein tool namens bing ja mit b.
dieses kann die geschwindigkeit eines links mittels icmp nachrichten
messen.
gruss
TH