You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 4 Next »

ping

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

Skrevet av Olav Dahl Solstad og Tor Andreas Aasebø. 

1. Innledning

Ping er et hjelpeprogram som brukes for å teste hvorvidt man kan nå en tjener på et IP-nettverk. Dette foregår ved å sende pakker til tjeneren og vente på svar. 

 

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

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 består av:

  • IP header
  • ICMP header
    • Type melding
    • Kode
    • Sjekksum
    • Header data
  • ICMP data

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)

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

Echo reply

Når tjeneren mottar en echo request er den pålagt å 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)

 

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

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 er det mange feilkoder tilgjengelige for å beskrive hva problemet er. En fin oversikt finnes på Wikipedia.

4. Referanser

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

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


  • No labels