Internetprotokollen Maria Kihl
Läsanvisningar Kihl & Andersson: 7.1-7.6, 10.1-3 Stallings: 14.1-4, 15.1-3 Forouzan 5th: 9.2.2, 18.1, 18.2.1, 18.4.1-3, 18.5.1, 19.1.1-2, 22.1.1, 22.2, 23, 24.1-3 2
Repetition Dator A Länkprotokoll 2 Dator E Nät 2 Dator B Dator C Nät 1 Nät 3 Dator F router Länkprotokoll 1 Länkprotokoll 3 Dator D 3
Internet-adresser Olika nät kan använda olika länkprotokoll och olika system för fysiska adresser. Varje host i ett specifikt nät måste ha en fysisk adress som matchar just det länkprotokollet som används i det nätet. Alla nät på Internet måste använda IP som nätprotokoll, och varje host måste ha en IP-adress för att kunna kommunicera med en host på ett annat nät. Det måste finnas en mappning mellan fysisk adress och IP-adress (beskrivs snart). 4
Fysisk adress (MAC-adress) för 802.x nät Alla terminaler med ett nätverkskort för IEEE 802.x har en fysisk adress, kallad MAC-adress. Har terminalen flera nätverkskort har den flera MAC-adresser. 5
IPv4-adresser Varje värddator och routrar som är ansluten till Internet har en unik IP-adress. Om IPv4 används så är adressen på 32 bitar. Adressen skrivs i så kallat dotted-decimal format. 6
Tentaexempel Följande Ethernet-ram bär ett IP-paket. Preamble och SFD är borttagna. Identifiera sändarens MAC-adress samt IPadress. 00 00 0c 07 ac 01 00 00 39 51 90 37 08 00 45 00 05 dc 48 00 20 00 20 01 94 67 82 eb 12 7f 82 eb 80 64 08 00 e3 fb 03 00 0c 00 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f 70 71 72 73 74 75 76 77 61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f 7
Hur mappar man IP-adress till fysisk adress? Internet IP-paket Router Nät Dator A Dator D Dator B Dator C 8
Address Resolution Protocol (ARP) För att hitta en specifik host inom ett nät krävs det att alla enheter kopplade till nätet kan mappa IP-adresser till de fysiska adresser som används inom nätet. Adress Resolution Protocol (ARP) används för detta inom nät som bygger på IEEE 802.x standarder. Notering: En host i ett nät vet alltid IP-adressen till den router som är kopplad till resten av Internet. Denna router kallas Default gateway. 9
ARP-funktioner Varje host/router har en ARP-cache (tabell) som används för att registrera MAC/IP-adresspar. En ARP query broadcastas varje gång en host/router behöver mappa en IP-adress till en MAC-adress (ARP broadcasts stoppas vid varje router). Den host som har den efterfrågade IP-adressen skickar tillbaka en ARP response med sin MAC-adress i unicast. 10
ARP-paket (Ethernet = 1) (IPv4 = (0800) 16 ) 11
ARP-funktion (1) Jag har IP-adress K! ARP response Internet IP-paket Router IP-adress K ARP query Vem har IP-adress K? Nät Dator A Dator D Dator B Dator C 12
ARP-funktion (2) Internet Router 1. Host finns på samma nät 2. Host finns på annat nät (identifieras av IP-adressen) Nät IP-paket IP-adress K Dator A Dator D Dator B Dator C 13
1. Host finns på samma nät Nät Internet Router Om en host sitter på samma nät skickas en ARP ut som vanligt. ARP query Dator A Dator D Vem har IP-adress K? Dator B Dator C 14
1. Host finns på annat nät Nät Internet Router Om en host sitter på ett annat nät skickas paketet till Default gateway. ARP skickas om det behövs. Dator A Dator D ARP query Dator B Dator C Vem har IP-adress Default gateway? 15
Hur får en host sin IP-adress? I denna kurs ingår inte hur en host får sin IP-adress. Vi antar bara följande: 1. Varje host kan sin egen IP-adress (nät-id och värdid) och MAC-adress. 2. Varje host kan IP-adressen till sin Default Gateway. Oftast används protokollet DHCP (Dynamic Host Configuration Protocol) för dessa funktioner. 16
Mappning från host namn till IP- address Applikationsprotokoll använder symboliska hostnamn (exempel, www.lth.se). Men, TCP/IP använder IP-adresser. Mappning från host-namn till IP-adresser genomförs av Domain Name System (DNS). 17
DNS grundläggande funktion 18
Domän-namn (Domain Name Space) DNS använder ett hierarkiska host-namn och hela Internet delas in i domäner och subdomäner (domains och subdomains). Ett domän-namn är en sekvens av labels separerade med punkter, e.g. www.eit.lth.se. 19
Domain Name Servers Domännamnen registreras i särskilda DNS-servrar. Dessa servrar är distribuerade och varje domän eller subdomän har sina egna servers. En host vet alltid IP-adressen till sin närmaste DNS-server. 20
Tentaexempel WWW Router DNS Anta att A vill skicka ett IPpaket till C och vet C:s IPadress. Alla adress-cacher är tomma. A Gizmo C B Beskriv vilka meddelanden som skickas på länken till B (vid pilen) om Gizmo är en (i) hub; (ii) switch; (iii) router. Motivera dina svar! 21
TCP/IP-modellen OSI-modellen Applikation Presentation Session Transport Nät Länk Fysiska skiktet TCP/IP-modellen Applikation Transport Nät Underliggande nät 22
TCP/IP-modellen i Forouzan Forouzan har inte korrekt beskrivning enligt oss... PHY och länkskiktet är inte del av TCP/IP-modellen. Numreringen av skikten ska vara enligt OSI-modellen. 23
TCP/IP-modellen TCP/IP-modellen illustreras ibland med ett timglas. 24
Internetprotokollen 25
ARP i TCP/IP-modellen ARP brukar placeras mellan lager 2 och lager 3 eftersom ARP hanterar både IP-adresser och MACadresser. 26
IPv4-adresser 27
Adress-metoder för IPv4 Det finns två sätt att definiera adresser: Klassindelad adressering (Classful addressing) Klassslös adressering (Classless addressing) 28
Klassindelad adressering Fem adressklasser: A, B, C, (D, and E) 29
Nät-id och värd-id i klassindelad adressering Klass A Klass B Klass C Klass D Klass E Byte 1 Byte 2 Byte 3 Byte 4 0 10 110 1110 1111 = Nät-id 30
Klassindelad adressering Det största problemet med klassindelad adressering var att en organisation bara kunde få ett block med adresser. Därför, 1996, infördes klasslös adressering. 31
Klasslös adressering I klasslös adressering, blir en organisation (liten eller stor) tilldelad ett block med adresser, med följande restriktioner: Adresserna i blocket måste följa på varandra. Antalet adresser måste vara av formen 2 x (1, 2, 4, 8, etc.). Den första adressen måste vara jämnt delbar med antalet adresser i blocket. Kallas även för Classless Interdomain Routing (CIDR) 32
Klasslös adressering, exempel 33
Mask Ett adress-block definieras av sin mask. En mask består av 32 bitar där en etta indikerar att adressbiten på motsvarande position ingår i nät-id. Ett block med adresser kan då definieras som: x.y.z.t /n där x.y.z.t definierar en av adresserna och /n definierar masken. 34
CIDR, exempel Adress: 11011110 00010111 01000011 01000100 Mask: 11111111 11111111 11000000 00000000 Nät-id: 11011110 00010111 01000000 00000000 Värd-id: 00000000 00000000 00000011 01000100 Decimal-dotted format: 232.23.67.68/18 35
CIDR adress-block 36
Klasslös v. Klassindelad adressering Klassindelad adressering kan också representeras av masker: 37
Tentaexempel Identifiera nät-id och värd-id för adressen 160.184.66.53/28 Identifiera även adressblocket som adressen ingår i. 38
Subnetting Idén med klasslös adressering kom av tekniken subnetting som användes för klass A- och B-nät. De var för stora att hantera som ett nät och för att kunna dela upp dem i flera mindre nät så infördes en adressmask. En organisation kan få ett adressblock enligt reglerna för klassindelad adressering, och sedan internt dela upp nätet i flera med tillhörande mask. 39
Subnetting, exempel Delnät 135.14.0.0 Delnät 135.14.64.0 Delnät 135.14.128.0 135.14.0.1 135.14.64.1 135.14.128.1 Nät: 135.14.0.0 R1 Till Internet 40
Routrar använder nätadressen Alla routrar måste kunna så kallad forwarding, dvs skicka vidare paket baserat på nätadressen. 41
Forwarding-tabell De n högsta bitarna för destinationsadressen (prefix) sparas och resten av bitarna (suffix) sätts till noll innan destinationsadressen jämförs med forwarding-tabellen. 42
Longest mask matching Forwarding-tabellen måste vara sorterad så att den längsta masken ligger först. 43
Fragmentering IP tillåter 65.535 bytes data (payload). Men IP-paket kan fragmenteras om den data som kommer från transportprotokollet inte kommer att få plats i en ram på länklagret. Tex. Ethernet tillåter max 1500 bytes (IEEE 802). Det är sändaren som fragmenterar data, och mottagaren (den host som ska ha IP-paketet) som sätter ihop data igen. Header-fälten identification, flags och fragmentation offset används 44
Header för IPv4-datagram 45
Fragmentering offset exempel 46
Motivering för IPv6 IPv4 har följande stora problem: Det finns inte tillräckligt med IPv4-adresser. IPv4 var inte utvecklat för realtidsapplikationer. IPv4 har inga funktioner för säkerhet. Detta är några anledningar till att IPv6 utvecklades. Men övergången till IPv6 går långsamt. Några operatörer i Sverige använder IPv6 inom sina nät. 47
Några fördelar med IPv6 Fler adresser: 128 bitars adresser. Bättre header format: IPv6 har en basheader konstant längd 40 bytes. Det går att lägga till options, men det finns regler för hur man gör det. Fler säkerhetsfunktioner: IPv6 har inbyggda säkerhetsfunktioner. Support för realtidsapplikationer: Routrar ska kunna specialhantera realtidsapplikationer för att dataöverföringen ska gå snabbare. 48
IPv6-paket 49
IPv6-adresser Hexadecimal colon notation 50
Förkortade IPv6-adresser Man får bara ta bort hela sektioner med nollor en gång per paket. 51
Tentaexempel Ange den kortaste formen på följande IPv6 adress: 0340:0000:0000:0000:000B:C003:0000:0234 52
Transportprotokoll 53
Logisk förbindelse Transportprotokollet skapar en logisk (virtual) förbindelse mellan sändare och mottagare. Nät Nät Nät Logisk förbindelse 54
User Datagram Protocol (UDP) UDP är ett förbindelsefritt transportprotokoll. Det enda UDP lägger till är en process-to-process kommunikation utöver IPs host-to-host kommunikation. Fördel: UDP är väldigt enkelt och lägger till ett minimum av overhead. 55
UDP-headern 8 bytes Header Data Sändarens portadress 16 bitar Längd 16 bitar Mottagarens portadress 16 bitar Kontrollsumma 16 bitar 56
Checksum UDP checksum beräknas på delar av IP-headern, UDP headern och data från applikationen (i multiplar av 16 bitar) 57
Transmission Control Protocol (TCP) TCP är ett förbindelseorienterat transport protokoll som tillhandahåller en tillförlitlig dataöverföring. TCP tillhandahåller funktioner för felhantering och flödeskontroll. 58
Stream delivery TCP ser till att sändarens och mottagarens processer (applikation) kan skicka data som en ström av bytes. 59
TCP-funktioner TCP packar in ett antal bytes i ett paket som kallas TCP-segment. Både sändare och mottagare använder buffertar för att kunna genomföra felhantering och flödeskontroll. TCP innehåller ett Go-back-N protocol där sekvensnumret är den första byte som finns i segmentet. ACK:et innehåller numret på nästa byte som mottagaren förväntar sig. ACKs kan vara piggybacked. 60
TCP buffert, exempel Sändare Applikation Mottagare Applikation TCP Ej ACK TCP Nät 61
TCP-header 20-60 bytes Header Data Längd 4 bitar Sändarens portadress 16 bitar Reserverad 6 bitar Kontrollsumma 16 bitar U R G A C K P S H Sekvensnummer 32 bitar ACK-nummer R S T S Y N 32 bitar F I N Eventuella tillval Mottagarens portadress 16 bitar Fönsterstorlek 16 bitar Urgent pointer 16 bitar 62
TCP sekvensnummer TCP tilldelar ett sekvensnummer till varje segment som skickas. Sekvensnummer för det första segmentet kallas Initial sequence number (ISN) och är ett slumpmässigt tal. Sekvensnummer för nästföljande segment är sekvensnummer för föregående segment + antal bytes som skickades i föregående segment. 63
Uppkoppling av TCP-förbindelse Dator 1 Dator 2 Skickar SYN sekv = x Tar emot SYN Skickar SYN sekv = y, ACK x+1 Tar emot SYN+ACK Skickar ACK y+1 Tar emot ACK 64
TCP dataöverföring om allt funkar Sändare Mottagare 65
TCP omsändning Sändare Seq: 501-900 Mottagare sparas sparas sparas Omsändning triggas av: 1. Retransmission time-out (RTO). Dynamisk, beroende på round-trip-time. 2. Duplicerade ACK (3 stycken) 66
Nedkoppling av TCP-förbindelse Dator 1 Dator 2 Skickar FIN x Tar emot FIN ACK x+1 Tar emot ACK x+1 Skickar FIN y Tar emot FIN Skickar ACK y+1 Tar emot ACK y+1 67
Flödeskontroll TCP har en avancerad flödes- och lastkontroll som inte ingår i denna kurs. De olika parametrar i Go-back-N-algoritmen är dynamiska och baseras på hur dataöverföringen fungerar. 68
Tentaexempel Följande Ethernet-ram bär ett TCP-segment (Preamble, SFD och CRC borttagna). Vad är destinationens portnummer? 00 00 0c 07 ac 01 00 08 74 41 af a7 08 00 45 00 00 30 88 14 40 00 80 06 d5 dc 82 eb 12 bd 82 eb 84 43 09 93 00 17 f2 d2 7a 29 00 00 00 00 70 02 40 00 2f a2 00 00 02 04 05 b4 01 01 04 02 69