Föreläsning 5 Mål: Förstå begreppet vägval Känna till vägvalsstrategier förstå växlingen i Internet Förstå grundfunktionaliteten i TCP och UDP Först skillnaderna mellan TCP och UDP Förstå grundfunktionaliteten i ICMP Vägval I ett flerlänksnät måste man hitta en väg genom nätet för att förbinda två noder Det kan finnas flera vägar mellan två noder Funktionen att bestämma en väg genom ett nät kallas för vägval Vägval: önskvärda egenskaper korrekt möjligast enkel robust stabil rättvis pålitlig optimal 1
Vägvalstrategier Väljartabeller statiska ( fast vägval ) dynamiska ( anpassningsbart vägval ) kräver kommunikation mellan noderna sändarbaserat vägval (source routing) sändaren specifierar hela vägen översvämning(flooding): skicka varje paket på samtliga vägar tillförlitligt en kopia går alltid den kortaste vägen belastar samtliga vägar istället för en enda Vägvalstrategier (2/2) trafikspridning (random routing): använd samtliga vägar, men endast en åt gången tillförlitligt jämn fördelning av belastningen i nätet medelfördröjningen ges av medellängden på vägarna Växling i Internet (1/2) statisk väljartabellen fast en förvald rutt (default route) som används ifall IP adressen inte motsvaras av något annat värde i tabellen statiskt vägval typiskt i kanterna av nätverket t ex för arbetsstationer dynamisk dynamiska väljartabeller vägvalsprotokoll används för att överföra information om topologin mellan routers 2
Växling i Internet (2/2) Hierarkisk växling växling mellan självständiga nät växling inom självständiga nät Självständigt nät (Autonomous system, AS) avskiljer skilda administrativa enheter: varje enhet kan kontrollera en grupp nätverk och routrar ISP, universitet, stora företag fördelar mindre växlingstabeller i basnätverket mindre växlingstabeller i det lokala nätverket isolerar nätverksproblem Vägvalsprotokoll inom självständiga nät (1/2) Interior Gateway Protocols varje länk måste ha en känd kostnad Distansvektorprotokoll skicka information till närliggande routers om vilka routers kan nås och vad kostnaden är baserad på Bellman-Ford-Fulkerson algoritmen exempel: Routing Information Protocol (RIP) Vägvalsprotokoll inom självständiga nät (2/2) länktillståndsprotokoll (link state protocol) routrarna skickar information om länktillstånd till alla andra närliggande routrar varje router har fullständig information om topologin varje router räknar ut den bästa kostnaden till varje nätverk baserad på Dijkstras algoritm exempel: Open Shortest Path First (OSPF) 3
Vägval mellan självständiga nät Exterior Gateway Protocols Routrarna skickar information om vilka nät (delar av IP addressrymden) kan nås via dem Border Gateway Protocol (BGP) Utmaningar/problem med växling in Internet Tillväxten IPv4 adresser konsumeras snabbt har lett till användning av Network Address Translators (NAT) NAT bryter mot end-to-end principen Växlingstabellen växer i basnätverket idag kring 232 000 nätidentiteter (för 1,5 år sedan ca 183 000) CIDR ett sätt att försöka påverka situationen ruttstormar (route storms) felaktiga ruttmeddelanden AS routrar måste filtrera konfigurationsfel inte trivialt att konfigurera växling ruttöglor (route loops) default route saknas i statiska tabeller Transportskiktet Transportprotokoll otillförlitlig överföring: User Datagram Protocol (UDP) tillförlitlig överföring: Transmission Control Protocol (TCP) Tillämpningar inom en värddator nås genom portar möjliggör kommunikation mellan processer IP adress + portnummer identifierar en socket 4
Portar (1/2) välkända portar används av servar för att identifier allmänna tjänster allokeras av IANA (Internet Assigned Numbers Authority) kräver vanligtvis superuser rättigheter 1-1023 exempel SSH 22 DNS 53 HTTP 80 Portar (2/2) reserverade portar IANA förser en lista kan användas i program eller processer som körs av normala användare 1024-49151 dynamiska/privata portar 49152-65535 tillfälliga portar (ephemeral ports) portar som används tillfälligt under en session User Datagram Protocol (1/2) Otillförlitlig överföring inga bekräftelser, UDP meddelanden kan förloras förbindelsefri inga sekvensnummer UDP meddelanden kan anlända i oordning ingen flödeskontroll enkelt protokoll Tillämpningar som använder UDP måste ta dessa egenskaper i beaktande 5
User Datagram Protocol (2/2) Enkelt huvud portarna längd: inkluderar UDP huvudet och nyttolasten kontrollsumman inte obligatorisk räknas över UDP pseudo-huvudet (bl a IP adresserna inkluderade), UDP huvudet och nyttolasten 0 16 31 Sändarport Mottagarport Längd Kontrollsumma Transmission Control Protocol (1/2) Tillförlitlig överföring positiva bekräftelser och omsändning används paket bekräftas med sekvensnummer, anger numret på nästa oktett av data som förväntas (positiv bekräftelse) om ett segment av data inte bekräftas inom en tidsfrist så skickas det på nytt tidsfristen kan ändra dynamiskt via uppskattningar av rundresetiden sändfönster används för att få bättre genomströmning sändfönstrets storlek kan minskas vid stockning TCP delar upp tillämpningens data i segment Transmission Control Protocol (2/2) förbindelse etableras mellan sändare och mottagare förbindelsen identifieras av dess ändpunkter genom (värddator adress, port nummer) Till exempel (128.3.4.2, 3444) - (45.234.1.90, 5000) Ett socketpar TCP erbjuder flödeskontroll mellan ändpunkterna sköts genom att ändra fönsterstorleken 6
TCP huvudet HL Sändarport Reserverat Kodbitar Kontrollsumma Tillval Sekvensnummer Bekräftelse Mottagarport Fönsterstorlek Brådskande Utfyllnad TCP huvudets fält (1/2) portar Sekvensnummer: sekvensnummer för den första oktetten i segmentet Bekräftelse: sekvensnummer för nästa oktett som förväntas HL: Huvudlängd Kodbitar (flaggor) URG: brådskande fältet bör beaktas ACK: paketet bekräftar mottagen information PSH: datan borde skickas direkt till mottagaren. TCP huvudets fält (2/2) RST: reset SYN: indikerar synkronisering (sekvensnummer bör synkroniseras) FIN: avslutar förbindelsen Fönsterstorlek: anges i antal oktetter som mottagaren är villig att acceptera Kontrollsumma: samma princip som i UDP Brådskande: data kan betecknas som brådskande Tillval: bl. a. en option för att indikera maximal segmentstorlek 7
Sätta upp en TCP förbindelse Three-way handshake Klient Server SYN SYN + ACK ACK Avsluta en TCP förbindelse Klient Server FIN ACK FIN ACK half-close: endast klienten avslutar förbindelse, server kan ännu sända före servern avslutar förbindelsen Omsändning Klient Server vänta på bekräftelse paketen förloras omsändning ACK 8
TCP och UDP UDP är ett enkelt protokoll UDP lämpar sig för överföring av små mängder data TCP kräver synkroniseringsmeddelanden (SYN) i början och meddelanden om att kommunikationen avslutas (FIN) Det är viktigt att känna till hur UDP och TCP när man bygger en tillämpning val av transportprotokoll bör baseras på trafikkarakteristiken för tillämpningen Stream Control Transmission Protocol (SCTP) möjliggör flera samtidiga dataströmmar stöder noder med flera addresser (flera nätverksgränssnitt) (multihomed hosts) mera egenskaper än i TCP bli av med vissa av svagheterna i TCP Internet Control Message Protocol (ICMP) för fel- och kontrollmeddelanden användning även för tillämpningar som hjälper i att monitorera nätet, t. ex. ping och traceroute Typ Kod Data Kontrollsumma typen indikerar vilket meddelande det är fråga om (t.ex. echo request, destination unreachable koden indikerar orsaken (t. ex. host unreachable, port unreachable datan innehåller en del av det IP paket som orsakade ICMP meddelandet 9