TCP/IP Fundamentals 7 december 2001 Internet Society, Zoetermeer Iljitsch van Beijnum Copyright 2001 Iljitsch van Beijnum Er zijn onderdelen opgenomen uit RFC's 768, 791, 792, 793 en 2460, copyright Internet Society
TCP/IP Fundamentals ➢ bits ➢ geschiedenis ➢ protocollen ➢ routerspel ➢ privacy en beveiliging ➢ standaardisatieproces ➢ toekomst ➢ Q & A
bit Een bit is de kleinste eenheid van informatie. Een bit kan twee waarden bevatten: ➢ 0 of 1 ➢ ja of nee ➢ hoog of laag ➢ zwart of wit
1 bit: 2 combinaties
2 bits: 4 combinaties
3 bits: 8 combinaties
groepen van bits ➢ Byte: 8 bits, 256 combinaties ➢ Octet: 8 bits ➢ Nibble: 4 bits, 16 combinaties ➢ Woord: varieert, vaak 16 of 32 bits ➢ 16 bit woord: combinaties ➢ 32 bit woord: combinaties
groepen van bits ➢ 10 bits: 1024 combinaties (kilo) ➢ 20 bits: combinaties (mega) ➢ 30 bits: combinaties (giga)
geschiedenis ➢ Rond 1960: mainframe computers ➢ Time sharing: meerdere terminals ➢ Terminals verbonden over steeds langere afstanden
packet switching ➢ Los van elkaar uitgewerkt door: ➢ Paul Baran, RAND ➢ David Watts Davies, National Physical Laboratory
ARPAnet ➢ Department of Defense Advanced Research Projects Agency ➢ Netwerk om computers van research- instellingen te verbinden (geen militair doel) ➢ IMPs tussen de computers en het netwerk ➢ 50 kbps ➢ Nog geen TCP/IP, maar NCP
ARPAnet december 1969
ARPAnet juni 1970
ARPAnet augustus 1972
ARPAnet juli 1977
ARPAnet packet forwarding ➢ het zware werk gebeurt op de eindpunten! ➢ alle communicatie opgedeeld in pakketten ➢ pakketten kunnen kwijtraken ➢ pakketten kunnen in de verkeerde volgorde binnenkomen
Interface Message Processors ➢ IMPs = tegenwoordig routers ➢ bijhouden wat waarheen moet ➢ pakketten de goede kant op sturen ➢ kijkt dus alleen naar het adres in het pakket ➢ host kijkt dieper in het pakket
applicaties ➢ Telnet: inloggen op een andere computer ➢ FTP: File Transfer Protocol ➢ later pas: mail
(un)reliable ➢ routers kunnen niet garanderen dat er niks mis gaat: "unreliable datagram service" ➢ connectionless ➢ applicaties willen dat de data goed aankomt ➢ "end-to-end principle"
ARPAnet vs internet ➢ ARPAnet: 1 homogeen netwerk beheerd door 1 organisatie ➢ internet: netwerk van netwerken ➢ heterogeen, dus minimale set eisen
hoe ziet een pakket eruit Welke informatie moet er in een pakket zitten?
hoe ziet een pakket eruit Welke informatie moet er in een pakket zitten? ➢ waar moet het naartoe (adres) ➢ welk programma behandelt het (poort) ➢ welk deel van het totaal is het (sequence)
TCP/IP ➢ onderverdeling functies TCP en IP ➢ IP: adressering en fragmentatie ➢ IP: in alle systemen onderweg (routers) ➢ IP: stateless, ieder pakket staat op zichzelf ➢ TCP: overige functies ➢ TCP: alleen in bron en bestemming ➢ TCP: houdt relatie tussen pakketten bij
Internet Protocol (IP) header |Version| IHL |Type of Service| Total Length | | Identification |Flags| Fragment Offset | | Time to Live | Protocol | Header Checksum | | Source Address | | Destination Address |
Internet Protocol (IP) header |Version| IHL |Type of Service| Total Length | | Identification |Flags| Fragment Offset | | Time to Live | Protocol | Header Checksum | | Source Address | | Destination Address | Version (4 bits): de waarde 4 ofwel: dit is een IPv4 pakket
Internet Protocol (IP) header |Version| IHL |Type of Service| Total Length | | Identification |Flags| Fragment Offset | | Time to Live | Protocol | Header Checksum | | Source Address | | Destination Address | Internet Header Length (4 bits) grootte van de header in 32 bit woorden
Internet Protocol (IP) header |Version| IHL |Type of Service| Total Length | | Identification |Flags| Fragment Offset | | Time to Live | Protocol | Header Checksum | | Source Address | | Destination Address | Type of service (8 bits): 3 bits Precedence, bits voor Low Delay, High Throughput, High Relibility en 2 bits Reserved for Future Use.
Internet Protocol (IP) header |Version| IHL |Type of Service| Total Length | | Identification |Flags| Fragment Offset | | Time to Live | Protocol | Header Checksum | | Source Address | | Destination Address | Total Length: lengte van het pakket, inclusief header
Internet Protocol (IP) header |Version| IHL |Type of Service| Total Length | | Identification |Flags| Fragment Offset | | Time to Live | Protocol | Header Checksum | | Source Address | | Destination Address | Identification: groepeert fragmenten van hetzelfde pakket
Internet Protocol (IP) header |Version| IHL |Type of Service| Total Length | | Identification |Flags| Fragment Offset | | Time to Live | Protocol | Header Checksum | | Source Address | | Destination Address | Flags: DF: don't fragment, MF: more fragments
Internet Protocol (IP) header |Version| IHL |Type of Service| Total Length | | Identification |Flags| Fragment Offset | | Time to Live | Protocol | Header Checksum | | Source Address | | Destination Address | Fragment Offset: welk deel van het oorspronkelijke pakket is dit?
Internet Protocol (IP) header |Version| IHL |Type of Service| Total Length | | Identification |Flags| Fragment Offset | | Time to Live | Protocol | Header Checksum | | Source Address | | Destination Address | Time to Live: voorkomt eindeloos rondzingen
Internet Protocol (IP) header |Version| IHL |Type of Service| Total Length | | Identification |Flags| Fragment Offset | | Time to Live | Protocol | Header Checksum | | Source Address | | Destination Address | Protocol: wat zit er in dit pakket?
Internet Protocol (IP) header |Version| IHL |Type of Service| Total Length | | Identification |Flags| Fragment Offset | | Time to Live | Protocol | Header Checksum | | Source Address | | Destination Address | Header Checksum: voorkomt pakketten met foute headers
Internet Protocol (IP) header |Version| IHL |Type of Service| Total Length | | Identification |Flags| Fragment Offset | | Time to Live | Protocol | Header Checksum | | Source Address | | Destination Address | Source Address: bron van dit pakket, om te kunnen antwoorden
Internet Protocol (IP) header |Version| IHL |Type of Service| Total Length | | Identification |Flags| Fragment Offset | | Time to Live | Protocol | Header Checksum | | Source Address | | Destination Address | Destination Address: waar de routers het pakket heen moeten sturen
ICMP | Type | Code | Checksum | | unused | | Internet Header + 64 bits of Original Data Datagram | Internet Control Message Protocol: om fouten te signaleren
Transport Control Protocol ➢ Basic Data Transfer ➢ Reliability ➢ Flow Control ➢ Multiplexing Connections ➢ Precedence and Security
TCP header | Source Port | Destination Port | | Sequence Number | | Acknowledgment Number | | Data | |U|A|P|R|S|F| | | Offset| Reserved |R|C|S|S|Y|I| Window | | | |G|K|H|T|N|N| | | Checksum | Urgent Pointer | | Options | Padding | | data |
TCP header | Source Port | Destination Port | | Sequence Number | Source Port: identificeert het programma op het systeem dat het pakket verzendt (meestal willekeurig gekozen)
TCP header | Source Port | Destination Port | | Sequence Number | Destination Port: identificeert het programma op het systeem dat het pakket ontvangt (bijvoorbeeld: poort 80, WWW server)
TCP header | Source Port | Destination Port | | Sequence Number | Sequence Number: geeft aan welk deel van de data in dit pakket zit
TCP three way handshake 1) A --> B SYN my sequence number is X 2) A <-- B ACK your sequence number is X 3) A <-- B SYN my sequence number is Y 4) A --> B ACK your sequence number is Y En de verbinding staat. Stappen 2 en 3 worden in één pakket gecombineerd.
User Datagram Protocol | Source | Destination | | Port | Port | | | | | Length | Checksum | | | data octets Om applicaties de mogelijkheid te geven losse datagrammen (pakketten) uit te wisselen. Wel poorten en een checksum, maar verder geen foutcontrole.
routers ➢ sturen pakketten door aan de hand van de routing tabel ➢ met de hand ingevoerde statische routes ➢ protocollen wisselen dynamische routes uit
RIP ➢ Routing Information Protocol ➢ Simpel! ➢ Stuurt elke 30 seconden de inhoud van de routing tabel uit over iedere verbinding ➢ Inkomende routing updates worden toegevoegd aan de eigen routing tabel met vermelding van het aantal "hops"
RIP
routerspel
IP adressen ➢ Klasse A: (128 netwerken met hosts per netwerk) ➢ Klasse B: (16384 netwerken met hosts per netwerk) ➢ Klasse C: ( netwerken met 254 hosts per netwerk)
klassen problematisch ➢ Klasse A: veel te groot ➢ Klasse B: raakt te snel op (begin jaren '90 al de helft in gebruik) ➢ Klasse C: te veel, routergeheugens hielden het niet bij
CIDR ➢ Classless Interdomain Routing ➢ Klassen worden opgeheven ➢ Grootte van het netwerk expliciet vermeld met aantal bits
CIDR ➢ /32: 32 bits voor netwerk, 0 bits voor hosts: 1 host (los IP adres) ➢ /24: 24 bits voor netwerk, 8 bits voor hosts: 254 hosts (komt overeen klasse C) ➢ /16: 16 bits voor netwerk, 16 bits voor hosts: hosts (komt overeen klasse B) ➢ /0: 0 bits voor netwerk: het hele internet
OSI model ➢ ISO: International Standards Organization ➢ OSI: Open Systems Interconnect ➢ Familie netwerkprotocollen uit de hoek van de telecombedrijven ➢ OSI model: conceptuele kijk op netwerken
OSI model ➢ Applicatielaag ➢ Presentatielaag ➢ Sessielaag ➢ Transportlaag ➢ Netwerklaag ➢ Datalinklaag ➢ Fysieke laag
1: fysieke laag ➢ Houdt zich bezig met het transport van bits over een kabel ➢ Voorbeelden: ADSL, huurlijn
2: datalinklaag ➢ Houdt zich bezig met het versturen van pakketten informatie tussen twee punten ➢ Maakt gebruik van de diensten van laag 1 ➢ Voorbeelden: Ethernet (maar bevat tevens laag 1), PPP (modemverbindingen)
3: netwerklaag ➢ Houdt zich bezig met adressering. ➢ Voorbeeld: IP!
4: transportlaag ➢ Houdt zich bezig met verschillende aspecten van de betrouwbaarheid van de verbinding ➢ Voorbeelden: TCP, UDP
5 en 6: sessie en presentatie ➢ De sessie- en presentatielagen zijn niet als zodanig in de TCP/IP familie terug te vinden
7: applicatielaag ➢ Dit is het terrein van de applicaties die van het netwerk gebruik maken ➢ Voorbeelden: HTTP (web), SMTP (mail), FTP, Telnet. Maar ook: DNS
laag-interactie
Ethernet ➢ Ontwikkeld door Xerox PARC ➢ 10 megabits per seconde ➢ Carrier Sense, Multiple Access with Collision Detect (CSMA/CD) ➢ Origineel dikke coaxkabels
Ethernet header
CSMA/CD ➢ Carrier sense: kijken of er niet al iemand aan het zenden is ➢ Multiple access: iedereen mag zenden als de kabel vrij is ➢ Collision detect: kijken of niet toch twee stations tegelijk zenden ➢ Exponential backoff: bij collision even wachten en opnieuw proberen
Ethernet collisions
IP versie |Version| Traffic Class | Flow Label | | Payload Length | Next Header | Hop Limit | | + Source Address + | | + Destination Address + | Adressen zijn 128 bits!
IP versie |Version| Traffic Class | Flow Label | | Payload Length | Next Header | Hop Limit | | + Source Address + | | + Destination Address + | Version (4 bits): 6 natuurlijk!
IP versie |Version| Traffic Class | Flow Label | | Payload Length | Next Header | Hop Limit | | + Source Address + | | + Destination Address + | Traffic class (8 bits): voorheen type of service
IP versie |Version| Traffic Class | Flow Label | | Payload Length | Next Header | Hop Limit | | + Source Address + | | + Destination Address + | Flow Label (20 bits): om verkeersstromen te herkennen
IP versie |Version| Traffic Class | Flow Label | | Payload Length | Next Header | Hop Limit | | + Source Address + | | + Destination Address + | Payload Length (16 bits): Lengte van de inhoud van het pakket
IP versie |Version| Traffic Class | Flow Label | | Payload Length | Next Header | Hop Limit | | + Source Address + | | + Destination Address + | Next Header (8 bits): was: protocol
IP versie |Version| Traffic Class | Flow Label | | Payload Length | Next Header | Hop Limit | | + Source Address + | | + Destination Address + | Hop Limit (8 bits): was: time to live
privacy en beveiliging ➢ anonimiteit ➢ ➢ web ➢ DDOS ➢ IPsec
anonimiteit ➢ IP adres gaat mee in elk pakket! ➢ Vroeger geen probleem: bij inbellen steeds een ander IP adres ➢ Kabel en ADSL: vast IP adres
➢ Asoluut niet veilig! ➢ Makkelijk te vervalsen ➢ Veilige mail bestaat al lang, maar je kan bijna niemand veilig mailen... ➢...dus gebruikt bijna niemand het... ➢...dus kan je bijna niemand veilig mailen
web ➢ Cookies ➢ Meestal onschadelijk, soms ook niet ➢ Gaten in browsers!
denial of service ➢ Simpeler dan hacken: gewoon heel veel verkeer sturen ➢ Distributed Denial of Service attack: heel veel systemen inzetten voor gezamelijke aanval ➢ Meestal door systemen van anderen te misbruiken of hacken ➢ Moeilijk tegen te beschermen
IPsec ➢ IP Security Protocol ➢ Iets anders dan IP Security Option! ➢ Pakketten worden versleuteld ➢ Pakket in een pakket: extra overhead ➢ Wel eerst weten met wie je communiceert! ➢ Public Key Infrastructure
standaardisatieproces ➢ IETF: Internet Engineering Task Force ➢ IAB: Internet Architecture Board ➢ IESG: Internet Engineering Steering Group ➢ ISOC: Internet Society
standaardisatieproces ➢ The goals of the Internet Standards Process are: ➢ technical excellence; ➢ prior implementation and testing; ➢ clear, concise, and easily understood documentation; ➢ openness and fairness; and ➢ timeliness.
namen en nummers ➢ IANA: Internet Assigned Numbers Authority ➢ ICANN: The Internet Corporation for Assigned Names and Numbers ➢ RIRs: Regional Internet Registries: ARIN, RIPE, APNIC
toekomst ➢ multicast, multimedia, anycast ➢ IPv6? ➢ adressen en routing table ➢ access technologien: kabel, adsl, fiber to the home, wireless ➢ variatie toegangssnelheden (10 kbps / gigabit)
Q & A