43
NÄTVERKSPROTOKOLL Föreläsning 5 - 17.9.2010 INNEHÅLL Mera protokoll på nätverksskiktet ARP(Address Resolution Protocol) ICMP (Internet Control Messaging Protocol) Transportskiktet TCP UDP

NÄTVERKSPROTOKOLL Föreläsning 5 - 17.9.2010

Embed Size (px)

DESCRIPTION

INNEHÅLL Mera protokoll på nätverksskiktet ARP(Address Resolution Protocol) ICMP (Internet Control Messaging Protocol) Transportskiktet TCP UDP. NÄTVERKSPROTOKOLL Föreläsning 5 - 17.9.2010. Mera protokoll på nätverksskiktet. - PowerPoint PPT Presentation

Citation preview

Page 1: NÄTVERKSPROTOKOLL Föreläsning 5 - 17.9.2010

NÄTVERKSPROTOKOLL

Föreläsning 5 - 17.9.2010INNEHÅLLMera protokoll på nätverksskiktet

ARP(Address Resolution Protocol)ICMP (Internet Control Messaging Protocol)

TransportskiktetTCPUDP

Page 2: NÄTVERKSPROTOKOLL Föreläsning 5 - 17.9.2010

Mera protokoll på nätverksskiktetFörutom IP som används för dataöverföring, finns det också ett

antal andra protokoll på nätverksskiktet, bl.a.: ARP (Address Resolution Protocol) och RARP (Reverse ARP)

– Används för att mappa IP-adresser till/från fysiska adresser (t.ex. MAC adresser i ethernet) eftersom nätverkskort inte förstår IP adresser

ICMP (Internet Control Message Protocol) – Meddelar när någonting gått snett vid dataöverföring

Page 3: NÄTVERKSPROTOKOLL Föreläsning 5 - 17.9.2010

ARP (Address Resolution Protocol)Används för att koppla samman en IP-adress och en MAC-adress

Är egentligen klassat som ett länknivå-protokoll men brukar anses som “klistret” mellan länkskiktet och nätverksskiktet i OSI-modellen

Ett nätverkskort för t.ex. Ethernet är ju länknivå utrustning som kan skicka ramar från en nog till en annan

Alla noder är adresserbara genom sina MAC-adresser

Applikationer som kommunicerar med varandra över nätet använder sig av IP-adresser

Page 4: NÄTVERKSPROTOKOLL Föreläsning 5 - 17.9.2010

ARP (Address Resolution Protocol)För att data som en applikation skickar adresserat med en IP

adress skall hitta fram, måste IP-adressen mappas till en MAC adress på länknivå

Det är alltså här ARP kommer in i bilden

ARP fungerar i korthet så här: En applikation på en värddator vill skicka ett meddelande till en

annan värddator som har IP-adress 193.167.33.25 På nätverksnivå delar IP-protokollet upp meddelandet i

delar/IP paket I varje IP paket sätts 193.167.33.25 som destinationsadress På länknivå görs IP paketen till ramar (frames) Som destinationsadress i en ram behövs fysiska adressen till

den dator man vill nå (MAC adressen)

Page 5: NÄTVERKSPROTOKOLL Föreläsning 5 - 17.9.2010

ARP (Address Resolution Protocol)ARP fungerar i korthet så här (forts...):

IP adressen fås från IP-paketets huvud från nätverksnivå men MAC-adressen är helt okänd

ARP skickar nu ut ett broadcast meddelande (på länknivå) till alla datorer i broadcast domänen och frågar “Vem har IP-adress 193.167.33.25”?

Datorn med IP-adress 193.167.33.25 svarar med ett unicast meddelande tillbaka där den meddelar sin MAC-adress

ARP trafik kan loggas med tcpdump

Page 6: NÄTVERKSPROTOKOLL Föreläsning 5 - 17.9.2010

ARP (Address Resolution Protocol)För att slippa göra en ARP-förfrågan för varje paket som skickas

cachar operativsystemet resultatet I en tabell

ARP används I 4 fall när två noder vill kommunicera1.När två noder är på samma nätverk2.När två noder är på olika nätverk och behöver anända sig av

en router för att nå den andra noden3.När en router behöver vidarebefordra ett paket åt en nod

genom en annan router4.När en router behöver vidarebefodra ett paket från en nod till

en annan på samma nätverk

Page 7: NÄTVERKSPROTOKOLL Föreläsning 5 - 17.9.2010

ARP - Paketstrukturen

Page 8: NÄTVERKSPROTOKOLL Föreläsning 5 - 17.9.2010

ARP - PaketstrukturenHardware type (HTYPE) – Hårdvarutyp, Varje protokoll för

hårdvara på länknivå identifieras med en nummer, t.ex. Ethernet = 1

Protocol type (PTYPE) – Protokolltyp. Varje protokoll på nätverksnivå identifieras med en nummer, t.ex. IP = 0x0800

Hardware length (HLEN) – Hårdvarulängd. Längden angiven i bytes på hårdvaruadressen (t.ex. MAC)

Protocol length (HLEN) – Protokolllängd. Längden i bytes på den logiska adressen, t.ex. En Ipv4 adress är 4 bytes lång (32 bit)

Page 9: NÄTVERKSPROTOKOLL Föreläsning 5 - 17.9.2010

ARP - PaketstrukturenOperation – Åtgärd. Definierar den operation som avsändaren villl

utföra: 1 = begära (requst) och 2 = svara (reply)

Sender hardware address (SHA) – Avsändarens hårdvaruadress.

Sender protocol address (SPA) – Avsändarens protkolladress

Target hardware address (THA) – Mottagarens hårdvaruadress

Target protocol address (TPA) – Mottagarens protokolladress

Page 10: NÄTVERKSPROTOKOLL Föreläsning 5 - 17.9.2010

ARP - Exempelförfrågan

Page 11: NÄTVERKSPROTOKOLL Föreläsning 5 - 17.9.2010

ARP - Exempelsvar

Page 12: NÄTVERKSPROTOKOLL Föreläsning 5 - 17.9.2010

RARP (Reverse ARP)RARP är ett länknivåprotokoll som till sin funktion är raka

motsatnsen till ARP

Används för att få tag på en IP adress för en specifiik hårdvaruadress

RARP har dock övertagits av andra protokoll såsom Bootstrap Protocol och Dynamic Host Configuration Protocol (DHCP)

Page 13: NÄTVERKSPROTOKOLL Föreläsning 5 - 17.9.2010

ICMP (Internet Control Protocol)Är ett protokoll som används för:

Felmeddelanden Routingkontroll Diagnostik

Anses vara en viktig del av IP trots att det egentligen är tekniskt sätt ett protokoll som är byggt ovanpå IP

ICMP används inte direkt av applikationer, men finns vissa undantag såsom:

Ping Traceroute

Page 14: NÄTVERKSPROTOKOLL Föreläsning 5 - 17.9.2010

ICMP (Internet Control Protocol) ICMP meddelanden skapas alltid på nätverklagret som svar på

någon form av IP relaterad händelse

IP paketet som genererade händelsen kapslas in i ett ICMP-meddelande som i sin tur kapslas in i ett nytt IP paket för att sedan skickas på vanligt sätt till dess destination

Meddelelandetyper: Typ 0 – Svar på eko förfrågan Typ 3 – Destination onåbar. Genereras av en värd eller router

när ett IP pakets destiniation av någon anledning inte går att nå. Anledningen specificeras I ICMP meddelandets kod (tas upp senare)

Page 15: NÄTVERKSPROTOKOLL Föreläsning 5 - 17.9.2010

ICMP (Internet Control Protocol)Meddelelandetyper (...forts):

Typ 4 – Flödeskontroll. Syftet är att e router skall kunna signalera en värd at skicka ett paket t.ex. I en lägre hastighet. Denna typ av meddelande används dock inte idag på Internet

Typ 5 – Omdirigering. Ett meddelande som informerar en värd att skicka paket en annan väg, dvs routing information

Typ 8 – Ekoförfrågan. En central del av Ping verktyget som används för att diagnostisera nätverk

Typ 11 – TTL överskridning. Genereras av en router när ett IP paket har blivit bortkastat pga att TTL (Time To Live) fältet I IP huvudet har nått 0

Typ 13 – Tidssynkronisering. En förfrågan om synkronisering av tid

Typ 14 – Svar på tidssynkronisering. Svar på meddelande av typ 13. Skickar “current time” I systemet till avsändaren

Page 16: NÄTVERKSPROTOKOLL Föreläsning 5 - 17.9.2010

ICMP (Internet Control Protocol)Meddelelandetyper (...forts):

Typ 17 – Subnätmask förfrågan. Skickas normalt av en värd till en router för att få reda på rätt subnätmask

Typ 18 – Svar på subnätmask förfrågan

Ett ICMP paket ser ut enligt följande:

Page 17: NÄTVERKSPROTOKOLL Föreläsning 5 - 17.9.2010

ICMP paketetTyp – ICMP meddelandets typ, se slide 31-33

Kod – En vidare specificering av meddelandets typ

Kontrollsumma – En kontrollsumma för ICMP huvudet, används för att kontrollera att ICMP paketet inte ändrats på vägen.

Kroppen – Innehållet I kroppen beror på ICMP meddelandets typ. Ofta innehåller detta fält IP huvudet + de första 8 bitanra av IP paketet som genererade ICMP meddelandet.

Page 18: NÄTVERKSPROTOKOLL Föreläsning 5 - 17.9.2010

TransportskiktetHär sköts all transport av allt data

Har som ansvar att se till att: data kommer från sändare till mottagare Det finns en tillförlitlig förbindelse Paketen kommer fram i rätt ordning och att ingenting förloras

Tillförlitlighet på transportskiktet inkluderar bl.a. omsändningar och checksummor

Felkontroller och checksummor osv. Har redan förekommit på lägre nivåer, varför igen?

Page 19: NÄTVERKSPROTOKOLL Föreläsning 5 - 17.9.2010

Transportskiktet Kan uppstå problem vid routingen Köer kan bli fulla Paket kan kastas bort Osv.

Page 20: NÄTVERKSPROTOKOLL Föreläsning 5 - 17.9.2010

TransportskiktetTransportskiktet erbjuder tjänster direkt åt tillämpningar

Måste därför finnas ett sätt för transportskiktet att särskilja mellan tillämpningarna

Ett vanligt sätt att göra detta är med datakanaler (sockets) och portar

En socket är ett gränssnitt mellan en tillämpning och transportskiktet

En port är en adress inom ett datorsystem som anges i kommunikationen mellan sändare och mottagare

Page 21: NÄTVERKSPROTOKOLL Föreläsning 5 - 17.9.2010

TransportskiktetEn tillämpning som vill använda en viss port binder en socket till

denna port

Genom bindningen vet transportskiktet att alla paket adresserade till en viss port skall skickas via socketen till en viss tillämpning på andra sidan

Exempel: alla paket adresserade till port 80 skickas till webservern

Page 22: NÄTVERKSPROTOKOLL Föreläsning 5 - 17.9.2010

Transportskiktet – Förbindelselös komm.Tjänster på transportskiktet kan vara

Förbindelselösa förbindelseorienterade

I förbindelselös kommunikation innebär transporttjänsten i princip endast hantering av portar och sockets

Ett exempel på ett förbindelselöst transportprotokoll är UDP (User Datagram Protocol)

Page 23: NÄTVERKSPROTOKOLL Föreläsning 5 - 17.9.2010

Transportskiktet – Förbindelseorienterad komm.Vid förbindelseorienterad kommunikation måste sändaren och

mottagaren på något sätt komma överens om att upprätta en förbindelse bl.a.:

den passiva sidan måste på någåt sätt kunna tala om att den är beredd att ta emot förbindelser (LISTEN)

den aktiva sidan måste tala om att den vill koppla upp en förbindelse (CONNECT)

den passiva sidan måste accetpera och vänta på en förbindelse (ACCEPT)

när en förbindelse avslutas måste den kopplas ner (DISCONNECT)

Ett exempel på ett förbindelseorienterat transportprotokoll är TCP(Tansport Control Protocol)

Page 24: NÄTVERKSPROTOKOLL Föreläsning 5 - 17.9.2010

TCP (Transmission Control Protocol)Ett förbindelseorienterat dataöverföringsprotokoll som används för

huvuddelen av all kommunikation över Internet

Tillhandahåller en pålitlig dataström mellan två noder och används t.ex. För:

HTTP FTP E-post (SMTP, IMAP POP3)

Är mindre lämpligt för tillämpningar där dess felkorrigerande egenskaper kan orsaka oönskade fördröjningar

Datorspel är ett exempel på en sådan tillämpning och använder därför ofta i stället UDP protokollet för överföring

Page 25: NÄTVERKSPROTOKOLL Föreläsning 5 - 17.9.2010

TCP (Transmission Control Protocol)TCP erbjuder kommunikationsservice mellan applikationsprogram

och Internet Protocol (IP)

Används egentligen tillsammans med IP för att sända data över Internet

IP skickar data i form av paket Varje paket innehåller en liten mängd data (ofta 1500 bytes)

samt avsändarens och mottagarens adresser Ger inga garantier för att paket som skickas över nätverket

kommer fram Paket som skickas behöver inte nödvändigtvis komma fram i

samma ordning som de skickades

Page 26: NÄTVERKSPROTOKOLL Föreläsning 5 - 17.9.2010

TCP (Transmission Control Protocol)När TCP skickar data delas det upp i lämpliga stycken (brukar

kallas segment) där varje segment skickas i ett eget IP-paket

När IP paketet komer fram till mottagaren skickar denna ett ACK-segment tillbka till sändare för att indikera att datat kommit fram

Om sändaren inte får tillbaka ett ACK-segement inom en viss tid antas det att datapaketet försvunnit i nätet och datapaketet skickas pånytt

På detta sätt uppnås pålitlighet hos TCP

Page 27: NÄTVERKSPROTOKOLL Föreläsning 5 - 17.9.2010

TCP (Transmission Control Protocol) För att se till att IP-paket kommer tas emot på mottagarsidan i rätt ordning

anvnder TCP sekvensnummer

Varje paket som skickas tilldelas ett 32-bitars nummer vilket används av mottagaren för att sortera de mottagna datapaketen

TCP innehåller också mekanismer för att begränsa hur fort data skickas för att inte överbelasta nätet

Varje gång nätverket tappar ett datapaket antas detta bero på att nätverket ligger på gränsen för att överbelastas

TCP drar då ned på sändningstakten till hälften av den nuvarande

När inga datapaket går förlorade ökar protokollet takten igen

Page 28: NÄTVERKSPROTOKOLL Föreläsning 5 - 17.9.2010

TCP - AnslutningEn TCP-session innehåller tre faser

Anslutning Dataöverföring Nedkoppling

Det krävs tre steg för att ansluta två datorer (brukar även kallas för trestegshandskakning)

Som första steg, skickar den anslutande datorn (klienten) ett så kallat SYN segment till den dator som förbindelsen skall sättas upp mot (servern)

I SYN segmentet är SYN-flaggen aktiverad

Page 29: NÄTVERKSPROTOKOLL Föreläsning 5 - 17.9.2010

TCP - AnslutningSYN segmentet kan innehålla ett antal optioner som beskriver

vilka specialfunktioner som klienten stöder, samt den maximala paketstorleken som klienten är beredd att ta emot.

SYN-segmentet innehåller dessutom sekvensnumret för den första databyte som klienten skickar över förbindelsen

Om servern är villig att ta emot förbindelsen svarar den med ett SYNACK-segment.

I ett SYNACK-segment är både SYN- och ACK-flaggorna aktiverade

Page 30: NÄTVERKSPROTOKOLL Föreläsning 5 - 17.9.2010

TCP - Anslutning SYNACK-segmentet innehåller sekvensnummern för den första databyte

som servern skickar, samt sekvensnumern som klienten skickade + 1

Detta synkroniserar sekvensnummern så att båda parter vet vilken sekvensnummer som motparten använder sej av

SYNACK-segmenten kan också innehålla svar på de optioner som klienten skickade, om servern stöder dem

Om servern inte accepterar den inkommande förbindelsen svarar den i stället med ett RST-segment vilket avbryter förbindelseförsöket med klienten

När SYNACK-segmentet når klienten skickar klienten i sin tur ett ACK-segment och förbindelsen övergår till dataöverföringsfasen

Page 31: NÄTVERKSPROTOKOLL Föreläsning 5 - 17.9.2010

TCP - Dataöverföring I denna fas finns det inte längre någon skillnad mellan rollerna hos

klient och server, denna skillnad finns endast i anslutningsfasen

All data som skickas delas upp i segment och skcikas i var sitt IP-paket

När mottagaren tar emot ett datasegment svarar den med ett ACK-segment till avsändaren för att indikera att segmentet har kommit fram

Om sändaren inte får tillbaka ett ACK-segment inom en viss tid så har paketet troligen tappats bort av nätverket och sändaren skickar om segmentet.

Page 32: NÄTVERKSPROTOKOLL Föreläsning 5 - 17.9.2010

TCP – NerkopplingEn TCP-förbindelse kan kopplas ned av båda eller endast den

ena av ändpuntkerna av förbindelsen

När en av endpunkterna (klienten eller servern) inte vill avsluta en förbindelse skickar den ett FIN-segment

FIN-segmentet bekräftas av mottageren med ett ACK-segment

Vanligen stänger då även mottagaren sin del av föbindelsen genom att skicka ett FIN-segment men det finns inget krav på detta

Ett vanligt programmeringsfel är att man glömmer att stänga avena endan av förbindelsen!!

Page 33: NÄTVERKSPROTOKOLL Föreläsning 5 - 17.9.2010

TCP segmentEtt TCP segment består, liksom ett IP-paket, av

Huvud (header) Data

Page 34: NÄTVERKSPROTOKOLL Föreläsning 5 - 17.9.2010

TCP segment Source port (16 bitar) – Definierar den port via vilken TCP segmentet

avsänds

Destination port (16 bitar) – Definierar den port via vilken TCP segmentet tas emot på mottagarsidan

Sequence number (32 bitar) – Anger ordningen på segmenten Om SYN flaggan är aktiv är sekvensnummern den begynnande

sekvensnummern och sekvensnummern för första databyte är denna sekvensnummer + 1

Om SYN flaggan ej är aktiv så är detta sekvensnummern för den första databyten

Acknowledgment number (32 bitar) – Om ACK-flaggan är aktiv är värdet i detta fält sekvensnummern för nästa byte som mottagaren förväntar sej få

Page 35: NÄTVERKSPROTOKOLL Föreläsning 5 - 17.9.2010

TCP segment Data offset (4 bitar) – Definierar storleken på TCP huvdet angett i words

Data offset (4 bitar) – För framtida ändamål, bör vara 0

Flaggor (8 bitar): CWR (1 bit) – Congestion Window Reduced flaggan aktiveras av en dator

för att indikera att den tagit emot ett TCP segment med ECE flaggan aktiverad

ECE (1 bit) – Indikerar att en nod är ECN kapabel under trestegshandskakningen

URG (1 bit) – Är satt till 1 om URG-pekaren är i bruk. En URG-pekare (Urgent Pointer) ger offset för sekvensnumret var brådskande data kan hittas

ACK (1 bit) – Är 1 om segmentet i fråga är ett ACK-segment. ACK-segment används för att kvittera uppkoppling och emottagande av datapaket

PSH (1 bit) – Push funktion

Page 36: NÄTVERKSPROTOKOLL Föreläsning 5 - 17.9.2010

TCP segment Flaggor (...forts)

RST (1 bit) – Reset. Överföringen kommer att återkopplas, vanligen p.g.a. något problem

SYN (1 bit) – Används vid uppkoppling tillsammans med ACK-flaggan för att synkronisera sekvensnummren

FIN (1 bit) – Meddelar att det ej finns mera data att sända → sessionen skall kopplas ner

Page 37: NÄTVERKSPROTOKOLL Föreläsning 5 - 17.9.2010

UDP (User Datagram Protocol)Används för att skicka datagram mellan två applikationer på två

nätverksdatorer

Är ett förbindelselöst protokoll

Garanterar inte pålitlighet som TCP

Skapar inte kvitterad (säker) överföring

Ger ingen garanti för att paket kommer fram

UDP prioriterar i stället snabbhet

Page 38: NÄTVERKSPROTOKOLL Föreläsning 5 - 17.9.2010

UDP (User Datagram Protocol)Vanliga nätverksapplikationer som använder UDP protokollet är:

DNS Streming media applikationer såsom IPTV och VoIP Online spel

UDP använder sig av portar för att möjliggöra applikation-till-applikation kummunikation

En port representeras i UDP av ett 16 bitars värde vilket gör att portarna kan variera mellan 0 och 65535

Port nr 0 är reserverad men kan användas om den applikation som skickar data inte förväntar sig ett svarsmeddelande

Page 39: NÄTVERKSPROTOKOLL Föreläsning 5 - 17.9.2010

UDP (User Datagram Protocol)Portarna 1 till 1023 är s.k. “well-known” portar och i Unix-baserade

operativsystem krävs dett root-rättigheter för att kunna binda en UDP förbindelse till en sådan port

Portarna 1024-49151 är registrerade portar som är registrerade av Internet Corporation for Assigned Named and Numbers (ICANN)

Portarna 49152 – 65535 är temporära portar som närmast används av klienter när de kommunicerar med servrar

Page 40: NÄTVERKSPROTOKOLL Föreläsning 5 - 17.9.2010

UDP - Paketstrukturen

Source port (16 bitar) – Definierar porten för avsändaren, eventuellt svarsdata skall skickas tillbaka till denna port. Om inget svarsdata förväntas skall värdet vara 0

Destination port (16 bitar) – Identifierar destinationsporten och är obligatorisk

Page 41: NÄTVERKSPROTOKOLL Föreläsning 5 - 17.9.2010

UDP - Paketstrukturen Length (16 bitar) – Definierar längden I bytes för hela paketet (huvud +

data

Checksum (16 bitar) – Används för feldetektering för hela paketet

Page 42: NÄTVERKSPROTOKOLL Föreläsning 5 - 17.9.2010

TCP vs. UDP TCP

Förbindelseorienterat För att kunna kommunicera krävs hanskakning för att sätta upp en

end-to-end förbindelse mellan en klient och en server Pålitligt

Meddelandekvittans, omskickning och timeout Paketen organsierade I rätt ordning Tungt

Krävs tre paket endast för att sätta upp en förbindelse och före det kan sändas nåt data överhuvudtaget. Kvittanspaketen kräver extra kommunikation

Streaming Data läses som en ström där inget indikerar var ett paket slutar

och var ett annat börjar. Datapaket kan bli spjälkta upp I mindre delar eller förenade till större paket

Page 43: NÄTVERKSPROTOKOLL Föreläsning 5 - 17.9.2010

TCP vs. UDP UDP

Förbindelselöst Ingen förbindelse behöver sättas upp och kommunikationen

behöver inte ske mellan en klient och en server Opålitligt

När data sänds kan man inte veta om det når sin destination eller inte

Finns inga koncept för kvittans, omskickning eller timeout Paketen ej organiserade Smidigt

Eftersom ingen felkontroll eller paketkvittans förekommer Datagram

Paket sänds individuellt och garanteras vara I sin helhet om de kommer fram. Data kan inte spjälkas upp I mindre delar eller förenas med andra paket