Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

ping

TDAT2004 Datakommunikasjon med nettverksprogrammering. Oppgave nummer 51, omhandler verktøyet hjelpeprogrammet ping.

Skrevet av Olav Dahl Solstad og Tor Andreas Aasebø. 

Table of Contents

1. Innledning

Ping er et hjelpeprogram som brukes for å teste hvor godt man kan nå en tjener på et IP-nettverk. Dette foregår ved å sende pakker til tjeneren og vente på svar, og blir målt av tiden fra pakken blir sendt til svar er mottatt. Pakkene som sendes er av type ICMP og i retur får man ICMP Echo Reply. Typisk gis det informasjon om eventuelle feil, packet loss, og en statistisk oppsummering av minimum- maksimum- og gjennomsnittlig-tid samt standardavvik til snittet. 

 

2. Ønsket funksjonalitet  

Hjelpeprogrammet ble skrevet i 1983 for bruk i feilsøking av IP-nettverk. Det er da nyttig å få mest mulig relevant informasjon når man prøver å koble til en tjener, og ved bruk av ping får man informasjon om feil, pakketap og statistikk som beskriver tiden det tar fra ping sender en forespørsel til tjeneren og får svar.

 

3. Virkemåte

 

4. Referanser

Ping sender en ICMP-pakke med data til en tjener og venter på at tjeneren sender en ICMP-pakke med samme data tilbake. Dette gjøres gjerne flere ganger slik at man kan måle tap av pakker og svartid. ICPM ble definert i RFC 792 og illustreres under:

Image Added

Figur 1: Illustrasjon av en ICMP-pakke hentet fra Wikipedia

For ping er det mest sentralt å se på ICMP headeren og dataene som sendes.

Echo request

Når ping kjøres sendes echo request til tjeneren som en ICMP-melding som beskrevet under:

Type = 8 (8 bit)Kode = 0 (8 bit)Header sjekksum (16 bit)
Header (ID 16 bit og sekvensnummer 16 bit)
Data (32 bit)

Tabell 1: Oppbygging av en Echo Request

Dataene som sendes er som regel fylt med ASCII-tegn.

Echo reply

Når tjeneren mottar en echo request kan den svare med ICMP-meldingen echo reply som beskrevet under der data som sendes er de samme som ble mottatt i echo request:

Type = 0 (8 bit)Kode = 0 (8 bit)Header sjekksum (16 bit)
Header (ID 16 bit og sekvensnummer 16 bit)
Data (32 bit)

Tabell 2: Oppbygging av en Echo Reply

Resultat

I de fleste implementasjonene av ping vil prosessen med å sende en echo request og vente på svar i form av et echo reply gjøres flere ganger. Resultatene blir vist til brukeren som vist under (ping i Windows):

Pinging outlook.com [40.97.156.114] with 32 bytes of data:
Reply from 40.97.156.114: bytes=32 time=195ms TTL=233
Reply from 40.97.156.114: bytes=32 time=192ms TTL=233
Reply from 40.97.156.114: bytes=32 time=191ms TTL=233
Reply from 40.97.156.114: bytes=32 time=191ms TTL=233

Ping statistics for 40.97.156.114:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 191ms, Maximum = 195ms, Average = 192ms

Figur 2: Eksempel på bruk av ping

Feilmeldinger

Dersom ping ikke får svar fra tjeneren vil mange implementasjoner ikke vise noe resultat, mens andre vil skrive ut varsler om at forespørselen har brukt for lang tid.

Dersom man får svar men noe går feil vil man få tilbake en feilmelding/informasjon som en ICMP-pakke som vist i Tabell 3. Pakke inneholder navn på de ulike pakkene definert i RFC 792, Type beskriver "Type of Message" i ICMP-headeren og Kode beskriver "Code" i ICMP-headeren.

PakkeTypeKoder

Destination Unreachable Message

(Tjener kan ikke nåes)

3

0 = net unreachable

1 = host unreachable

2 = protocol unreachable

3 = port unreachable

4 = fragmentation needed and DF set

5 = source route failed

Time Exceeded Message

(Tidsgrense overskredet)

11

0 = time to live exceeded in transit

1 = fragment reassembly time exceeded

Parameter Problem Message

(Feil i Header)

120 = pointer indicates the error

Source Quench Message

(Ikke nok ressurser til å behandle forespørsel)

40

Redirect Message

(Gateway gir beskjed om at den har omdirigert pakken)

5

0 = Redirect datagrams for the Network

1 = Redirect datagrams for the Host

2 = Redirect datagrams for the Type of Service and Network

3 = Redirect datagrams for the Type of Service and Host

Tabell 3: ICMP-pakker som indikerer feil 

4. Referanser

https://tools.ietf.org/html/rfc792

https://en.wikipedia.org/wiki/Ping_(networking_utility)