Forstå ICMP-protokollen (del 1)

Hvis du ønsker å lese neste artikkel i denne serien så kan du sjekke ut Forstå ICMP-protokollen (del 2).

Bare hva er ICMP, og hva betyr det for? Vel, først av, ICMP står for Internet Control Message Protocol. Hva gjør det? Du kan bli overrasket etter å ha lest denne artikkelen, på akkurat hvor mye ICMP faktisk gjør for oss. Kall det unheralded helten av de fire kjerne protokoller. De fire sentrale protokoller som IP, TCP, UDP, og ICMP. Hvis du tenker på det, alle disse protokollene, i virkeligheten, er arbeidshester på datamaskinen-til-maskin-kommunikasjon verden.

Hva er det du kommer til å dekke?

Det er et godt spørsmål. I denne artikkelen på ICMP vil vi definere akkurat hvor ICMP bor i OSI referansemodell, og gå over ulike pakketyper som inneholder ICMP-protokollen. Endelig, vil de ulike feiltilstander som blir kommunisert av denne protokollen forklares slik som å utvide på dem. Du kan ha kommet til den konklusjon nå at jo mer du lærer om dataprotokoller, jo mer vil du være i stand til å forstå akkurat hvordan en datamaskin kommuniserer. Mye som alle fagområde hjelper det å først oppnå en kritisk masse av kunnskap. Når dette kritisk masse er oppnådd svært mange andre konsepter blir tydeligere, og derfor forstått på det teoretiske plan. Forhåpentligvis når du er ferdig med å lese den serien av artikler som jeg har skrevet om TCP /IP kjerne protokoller vil du har oppnådd nettopp det; en kritisk masse av kunnskap.

La oss komme videre med det da!

Bruke OSI referansemodell igjen som vår mal for å få litt orden på denne massen av kunnskap, bare hvor kommer ICMP passer i? Vel mange anser det å være en del av nettverket laget der IP ligger. Selv om det blir sagt noen ICMP feiltilstander vil bli tatt hensyn til transportlaget dvs .: TCP og UDP. I tilfelle du aldri har sett OSI referansemodell inkludert nedenfor er en slanket versjon av den.

applikasjonslaget protokoller som HTTP, SMTP, FTPPresentation lags protokoller som JPEG, MPEGSession lags protokoller som NFS, SQL, RPCTransport Layer protokoller som TCP, og UDPNetwork Layer protokoller som IP og ICMPData link laget protokoller som HDLC og PPPPhysical Layer Ingen protokoller på dette laget
nå ICMP feilmeldinger er selv faktisk innkapslet i en IP-pakke. Det er en ganske funky leter pakke faktisk, og har en tendens til å være forvirrende for de som bare begynner å lære om ICMP. Frykt ikke skjønt, for vi vil dekke ulike typer ICMP feilmeldinger på pakkenivå. De fire første byte med en ICMP feilmelding alltid har samme format. Det følgende skjønt kan variere som det er avhengig av feilen blir rapportert. Det blir sagt at ICMP echo forespørsel, er ekko svar pakke forskjellig som det er relatert til overskriften selv. Den pingpakke som ICMP echo request /ekko er også kjent som, har en header størrelse på åtte byte vice fire. Dette er fordi andre spesifikk informasjon er nødvendig. Mer om det ICMP innfall å følge senere. På dette notatet la oss se utformingen av de fire første byte som forblir den samme

1 byte 1 byte 2 byte
_____________________
. | Skriv inn | Kode | Checksum |
--------------------------------

Så kan vi se at det er fire byte i en ICMP feilmelding som forblir konstant. Hvis du krysser av TCP /IP og tcpdump brosjyren som jeg anbefaler deg å laste ned, vil du se en representasjon som den ovenfor. Husk at det finnes under "Andre ressurser" nederst på siden.

Se, ICMP pakke

00: 00: 09,696930 192.168.1.100 > 192.168.1.200: ICMP: echo forespørsel (ttl 126, id 6655
, len 60)
0x0000 4500 003c 19ff 0000 7e01 1ce8 c0a8 0164 E .. < .... ~ .... ...
0x0010 c0a8 01c8 0800 d9c3 0300 7889 3031 3233 .......... x.0123
0x0020 3435 3637 3839 6162 6364 6566 6768 696a 456789abcdefghij
0x0030 6b6c 6d6e 6f70 7172 7374 7576 klmnopqrstuv

det vi har over oss er trolig en av de mest kjente typer ICMP pakke. Care å ta en gjetning på hva denne typen er? Dette ICMP pakke er den mye omtalte "ping" pakke. Hva er "echo request" brukt for selv? Vel først og fremst pingpakke brukes til å bekrefte om en IP-adresse er tildelt eller ikke dvs .: er det en datamaskin på en bestemt IP-adresse? Hvis det er så et svar vil bli utstedt av at IP-adressen, og hvis ikke så en ICMP feilmelding vil bli generert og returnert. Dette er en av de få tilfeller hvor en ICMP pakke vil lokke fram en ICMP feilmelding i retur. Normalt en ICMP feilmelding vil ikke i sin tur genererer en annen. Ville være litt av en endeløs sløyfe ville ikke det, hvis det kan skje. Unntaket fra denne regelen er ovenfor sett ICMP echo request-pakke.

Vel hva responsen på en ekkoforespørsel ICMP se ut da? Ikke bare det, men hvordan datamaskinen som sendte opprinnelse ICMP echo request vet at innkommende ICMP respons er for sin første ekkoforespørsel? Det er et veldig godt spørsmål faktisk. La oss se på pakken under for å få et svar så

00: 00: 09,697192 192.168.1.100 > 192.168.1.200: ICMP: echo svar (ttl 255, id 6655
, len 60)
0x0000 4500 003c 19ff 0000 ff01 9be7 c0a8 01c8 E .. < ......... ...
0x0010 c0a8 0164 0000 e1c3 0300 7889
3031 3233 .......... x.0123
0x0020 3435 3637 3839 6162 6364 6566 6768 696a 456789abcdefghij
0x0030 6b6c 6d6e 6f70 7172 7374 7576 klmnopqrstuv

La oss raskt oppsummere hva beregningene sett ovenfor er. Fra den første linjen på venstre har vi vår tidsstempel som nevnt av mottakerdatamaskinen. Da kilde adresse, og kildeport. Dette etterfølges av måladressen og destinasjon port. Selve ICMP melding som nevnt i ASCII. Da har vi TTL-verdien, ID-nummeret som er tildelt ICMP feilmelding, og generelle pakkelengde.

Så, la oss nå se på ICMP packet header, og gå gjennom verdiene. De er understreket, som vist i pakken direkte ovenfor.

0000

De to første byte sett ovenfor er knyttet til type og kodefeltet i ICMP packet header. Hvis du går til bunnen av TCP /IP jukselapp som jeg anbefaler du laster ned vil du se en del for PING (Echo /Echo Svar). Det 00 betyr da at dette er en Echo svar, og den følgende byte av 00 bryter ut til kodeverdien. Koden verdi av 00 er da som det skal være 00. De andre hex verdier er det som blir sendt i ASCII nyttelast ie: x.0123456 og så videre som vist i ASCII. Det vil bryte opp denne artikkelen, og i den siste delen vil vi dekke andre typer ICMP feilmeldinger på pakken nivå, og forklare hva de egentlig mener. Inntil da!

Hvis du ønsker å lese neste artikkel i denne serien så kan du sjekke ut Forstå ICMP-protokollen (del 2).