TCP/IP

TCP/IP er den netværksprotokol, der anvendes stort set alle steder. Derfor kan det være vigtigt at du har en forståelse for den dens opbygning og funktion.

TCP/IP modellen blev oprindeligt beskrevet i 1974 af Vint Cerf og Bob Kahn, og den version vi anvender i dag er RFC 1122 Internet STD3.

TCP/IP sørger for, at data kommer frem frem til det rigtige sted og at der ikke er fejl i de data der modtages:

TCP/IP modellen

TCP/IP modellen er opdelt i 4 lag (arbejdsgange), som vi kan opstille på følgende måde:

  1. Applikation
  2. Transport
  3. Internet
  4. Link

Applikation og transport foregår på enheden (kaldet en host). Internet og Link foregår på selve netværket.

Opbygningen af TCP/IP pakkerne kan vises på følgende måde:

Lad os se hvad der sker på de enkelte trin, når data gøres klar til netværket. Når pakken modtages fra netværket går processen den anden vej.

Applikation

På dette lag bliver filen inddelt i mindre pakker der er maks 1500 bytes.

Transport

Pakken får tildelt enten en TCP-header eller en UDP-header:

TCP - Transmission Control Protocol
Fejlkontrol - sikrer at pakken indeholder de korrekte data
UDP - User Datagram Protocol
Har modsat TCP ingen fejlkontrol. Bruges til f.eks. streamning af tv signal. Evt. kontrol foregår på applikationsniveau

Internet

Modtagerens IP-adresse sættes på (IP-header)

Link

Her sætter computeren modtagerens MAC-adresse på. Er det på det lukkede netværk finder computeren selv ud af hvad Mac-adressen er. Findes adressen ikke her, anvendes MAC-adressen på netværkets gateway, som kan få pakken korrekt frem.

Det fysiske netværket

Det fysisk netværk består af switche og routere, når vi ser bort fra kabler og trådløse forbindelser.

Switche

Switche ved hvor netværkets enheder er ved hjælp af MAC-adresser. Så snart en enhed kobler sig på netværket husker switchen det. Switchen kan kun denne ene ting, men er rigtig effektiv til det.

I forhold til datapakken gør switchen det, at den kikker i dens Frame header, lukker den igen og sender den til modtageren

Routere

Routeren fungerer som en adgangsportal (gateway) mellem to netværk, og har en tabel over de computere der er i dem.

Routeren har adgang til andre netværk, og har en tabel over de adresser den skal sende til, for at nå modtageradressen. Findes modtageradressen ikke i det netværk den sidder på, så sender den til dette netværks gateway. Denne proces fortsætter indtil pakken kommer til modtageren.

Et konkret eksempel

Herunder er et output fra en traceroute forspørgsel, der viser de hop der skal til for at nå www.google.com.

På Ubuntu skal tracerouter installeres først:

sudo apt install traceroute -y
tj@server1:~$ traceroute www.google.dk traceroute to www.google.dk (172.217.23.131), 30 hops max, 60 byte packets 1 _gateway (192.168.0.1) 2.588 ms 6.301 ms 6.363 ms 2 100.73.128.3 (100.73.128.3) 5.921 ms 5.875 ms 6.015 ms 3 be201.aba-pe31.link.stofa.net (178.155.255.250) 6.689 ms 6.645 ms 7.344 ms 4 be208.koldt-cor03.link.stofa.net (178.155.255.225) 7.995 ms 8.083 ms 8.361 ms 5 be101.koldt-br01.link.stofa.net (212.10.45.200) 8.116 ms 8.053 ms 8.704 ms 6 100.127.255.233 (100.127.255.233) 8.395 ms 4.773 ms 6.673 ms 7 be300-4094.koldt-br01.link.stofa.net (212.112.132.26) 6.574 ms 6.696 ms 6.653 ms 8 * be102.koldb-cor03.link.stofa.net (212.10.45.203) 16.896 ms be101.koldt-cor03.link.stofa.net (212.10.45.201) 16.991 ms 9 89.184.134.181 (89.184.134.181) 16.956 ms 17.280 ms 17.244 ms 10 212.10.11.15 (212.10.11.15) 17.706 ms 18.179 ms 19.138 ms 11 108.170.252.65 (108.170.252.65) 20.315 ms 108.170.251.193 (108.170.251.193) 20.125 ms 108.170.252.65 (108.170.252.65) 20.176 ms 12 216.239.54.63 (216.239.54.63) 15.359 ms 15.300 ms 15.291 ms 13 fra16s18-in-f131.1e100.net (172.217.23.131) 15.249 ms 14.653 ms 14.700 ms

Der er i alt 13 hop

Hop 1
Til min lokale gateway
Hop 2-8
Interne hop i Stofas netværk
Hop 9-12
Hop udenfor Stofas netværk
Hop 13
Endeligt fremme ved www.google.dk

Her vil vi se på hvad der sker i to forskellige sammenhænge:

  1. Lukket netværk, der ikke har adgang til andre netværk
  2. Det routede netværk Et netværk der har adgang til andre netværk.

Det lukkede netværk

På et lukket netværk bliver pakken genkendt af switchen og sendt direkte videre til modtageren.

Det sker ved at switchen kigger i pakkens frame-header.

Det routede netværk

På det routede netværk vil pakker med ukendte MAC-adresser blive sendt til gateway'en. Den sørger så for, at sende den videre i den netværk.

I illustrationen herunder har jeg udeladt switchen, da den ikke er relevant for hvordan TCP/IP pakkerne bliver routed.

Læg mærke til, at routerne på nettet ikke åbner hele TCP/IP pakken. Så snart de har tjekket IP-adressen, så ved routen om pakken skal sendes videre eller sendes ind i routerens eget netværk.

OSI

Læser du om netværk, vil du støde på OSI modellen (Operation Interconnection Reference). OSI modellen består af 7 trin:

  1. Application
  2. Presentation
  3. Session
  4. Transport
  5. Network
  6. Data link
  7. Physical

Du kan se sammenhængen med TCP/IP modellen i tabellen herunder, som er en modificeret udgave af: http://en.wikipedia.org/wiki/OSI_model

OSI TCP/IP
RFC 1122 Internet STD3
Cisco
Acadamy
Host
Layer
Application Applikation Applikation
Presentation
Session
Transport Transport Transport
Media
Layer
Network Internet Internetwork
Data link Link Network Interface
Physical (n/a)

IP versioner (IPv4 og IPv6)

Oprindeligt blev IP systemet designet til at have 4,3 mia. forskellige adresser (\( 32 bit = 2^{32} \)). Det har man forlængst erkendt var for få, så derfor har man designet IPv6 der mange flere adresser, nemlig \( 128 bit = 2^{128} = 3,402 \cdot 10^{38} \). Det antal er så stort at der er rigeligt.

Du kan se et eksempel på adresser her

IPv4
192.168.1.17
IPv6
2001:DB8:AC10:FE01::20

Subnetting

Her kommer et afsnit om subnetting

Forudsætningen for at læse dette afsnit er, at du kender til ovenstående og grundlæggende netværk (se: network.html)

Beregninger i netværk

Til at lave beregninger til et IP netværk findes der smarte programmer. F.eks. http://www.iptools.dk/ip-calc/

Når man starter programmet op får man en menu hvor man kan taste sin netværksadresse ind, og trække en skyder indtil man opnår den ønskede mængde adresser i sit subnet.

Henvisninger

Osi modellen (eng): http://en.wikipedia.org/wiki/OSI_model

Osi modellen (da): http://da.wikipedia.org/wiki/OSI-model

Classfull network: http://en.wikipedia.org/wiki/Classful_network

Subnetting: http://en.wikipedia.org/wiki/Subnetwork

Supernetwork: http://en.wikipedia.org/wiki/Supernetwork

Internet protocol (eng): http://en.wikipedia.org/wiki/Internet_Protocol

Internet protocol (da): http://da.wikipedia.org/wiki/Internetprotokol

OSI Model forklaret med James Bond (side 2): http://www.lewistech.com/rlewis/Resources/james.aspx

Internet Protocol Suite: http://en.wikipedia.org/wiki/Internet_protocol_suite

CIDR: http://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing

Video om subnetting: https://www.youtube.com/watch?v=GSX1GlaznKM

Litteraturliste

Stein-Olsen & Stalheim s. 9 (1998): Netværk, Geir Steen-Olsen & Arnie Stalheim, IDG Bøger A/S, 1. udg. 1.oplag, ISBN: 87-7843-121-2
http://www.libris.dk/produkt/Introduktion_til_netvaerk_3_udgave.htm