Het TCP/IP referentiemodel 2 Heterogene Netwerken Hoorcollege 2 13-11-2001
Multiplexen Het dataveld bij IP-pakketten kan bestaan uit: TCP segmenten UDP datagrammen ICMP management info (later) RIP berichten (later) IP Data Veld IP Header 13-11-2001
Multiplexen Stroom van IP-pakketten UDP IP-H TCP IP-H UDP IP-H ICMP Pakket stroom 13-11-2001
Multiplexen De processen op de IP-laag zijn er verantwoordelijk voor om de inhoud van de pakketten op de juiste plaats aft te leveren. TCP UDP UDP IP-H IP ICMP Aankomst van pakketten IP Proces 13-11-2001
Multiplexen Het IP-proces aan de ontvangstkant moet dus weten wat er in het dataveld zit. IP Data Veld IP Header 13-11-2001
Multiplexen De IP Header heeft een 8-bit Protocol veld. Dit veld identificeert de inhoud van het dataveld.1=ICMP (later), 6=TCP, 17=UDP, etc.Zie RFC 1700. Version (4) Hdr Len (4) TOS (8) Total Length in bytes (16) Identification (16 bits) Flags (3) Fragment Offset (13) Time to Live (8) Protocol (8) Header Checksum (16) Source IP Address Destination IP Address … 13-11-2001
Multiplexen Bij TCP/UDP velden die analoog zijn. TCP enUDP Identificatie van het type info in het dataveld. TCP enUDP Zogenaamde Poort nummers (TCP-term voor TSAP) Voor identificatie van het applicatieproces (bijv. 80=HTTP); poortnummers in RFC 1700 Source Port # (16) Destination Port # (16) Sequence Number (32 bits) Acknowledgement Number (32 bits) Hdr Len (4) Reserved (6) Flags (6) Window Size (16) 13-11-2001
Terug naar TCP Sequence Number Field Initial Sequence Number Acknowledgement Number Field 13-11-2001
TCP TCP is betrouwbaar De volgorde van IP-pakketten is niet gegarandeerd. TCP is hiervoor verantwoordelijk. 5 3 4 2 1 13-11-2001
TCP TCP is betrouwbaar Ieder correct TCP-segment wordt bevestigd. Bron Transport Proces Bestemming Transport Proces ACK 13-11-2001
TCP Segment 3? Elk TCP-segment moet een volgnummer hebben. Eenvoudigst: 1,2,3,4,5,6,7 Handig om verloren segmenten of problemen in de volgorde te ontdekken TCP doet het echter complexer 3? 1 4 2 5 13-11-2001
Sequence Number (32 bits) TCP sequence nummers 32 bits veld sequence number identificeert een specifiek segment. Source Port # (16) Destination Port # (16) Sequence Number (32 bits) Acknowledgement Number (32 bits) Hdr Len (4) Reserved (6) Flags (6) Window Size (16) TCP Checksum (16) Urgent Pointer (16) Options (if any) PAD Data Field 13-11-2001
Met eerste Sequence Nummer (79) TCP Sequence Nummers Het eerste sequence-nummer is niet 1 maar een random-getal geselecteerd door het zendend TCP-proces (bijv. 79). TCP Header 79 TCP Data veld Sequence Nummer veld Met eerste Sequence Nummer (79) 13-11-2001
TCP Sequence Nummers De telling van de sequence nummers gaat aan de hand van het aantal octetten in het dataveld. TCP Segment 1 79 TCP Segment 2 80 81 82 TCP Segment 3 83 84 3 Octetten in Data Veld 2 Octetten in Data Veld 13-11-2001
TCP Sequence nummers Supervisory segmenten zijn TCP-segmenten met een leeg dataveld (denk aan de SYN, FIN, enz.) Voor de sequence nummering wordt er vanuit gegaan dat deze uit 1 octet bestaan. 13-11-2001
TCP Acknowledgements ACK’s geven aan welk segmenten bevestigd zijn. TCP Segment Bron TCP Proces Bestemming TCP Proces ACK 13-11-2001
Acknowledgement Number (32 bits) TCP Acknowledgements TCP header bevat een 32-bit Acknowledgement Number veld Source Port # (16) Destination Port # (16) Sequence Number (32 bits) Acknowledgement Number (32 bits) Hdr Len (4) Reserved (6) Flags (6) Window Size (16) TCP Checksum (16) Urgent Pointer (16) Options (if any) PAD Data Field 13-11-2001
TCP Acknowledgement Nummers Acknowledgement Number field bevat het volgende octet dat verwacht wordt. TCP 1 79 TCP 2 80 81 82 TCP 3 83 84 80 is AckNum waarde 83 is AckNum waarde 85 is AckNum waarde 13-11-2001
TCP Acknowledgement Nummer Vraag: Een TCP segment bevat de volgende data-octetten. 567, 568, 569, 570, 571, 572, 573, 574 Welk getal komt in het sequence nummer veld van het zendend TCP-proces te staan? Welk getal komt in het acknowledgement nummer veld van het TCP-proces te staan dat de ontvangst bevestigd? Ga uit van correcte overdracht. 13-11-2001
TCP Flow Control Flow Control Een TCP proces zend te snel De ontvanger moet de transmissiesnelheid regelen. Dit heet flow control Te veel Data TCP Proces TCP Proces Flow Control bericht 13-11-2001
TCP Flow Control Een TCP segment heeft een Window Size veld. Gebruikt in combinatie met acknowledgements Source Port # (16) Destination Port # (16) Sequence Number (32 bits) Acknowledgement Number (32 bits) Hdr Len (4) Reserved (6) Flags (6) Window Size (16) TCP Checksum (16) Urgent Pointer (16) Options (if any) PAD Data Field 13-11-2001
Acknowledgement met Window Size veld TCP Flow Control Hoeveel octetten mag de zender sturen gerekend vanaf het laatste bevestigde segment. Data TCP Proces TCP Proces Acknowledgement met Window Size veld 13-11-2001
TCP Flow Control Voorbeeld TCP segment bevat octetten 45-89 Ack-nummer wordt 90 Als de waarde in het Window Size veld 50 is, dan: Mag de zender doorgaan tot octet 140 (90 plus 50) Moet de zender stoppen bij 50 tenzij de window-size opnieuw wordt vastgesteld. 13-11-2001
TCP Flow Control Dit wordt het glijdend venster protocol genoemd (sliding window) 1-44 45-79 80-419 420-630 Doorgaan tot 480 400 1-44 45-79 80-419 420-630 Doorgaan tot 920 500 13-11-2001
Applicatie Laag bericht TCP Fragmentatie Het dataveld in een TCP-segment heeft een maximum omvang. Elk segment moet in een IP-dataveld passen (65535 bytes max) en moet ook in de MTU passen. Applicatie Laag bericht TCP Data Veld Max TCP Header 13-11-2001
TCP Fragmentatie Applicatielaag bericht moet gefragmenteerd worden. Komt in afzonderlijke TCP segmenten App Frag 1 App Frag 2 App Frag 3 TCP Data Veld Max TCP Header 13-11-2001
TCP Fragmentatie De transportlaag verzorgt de feitelijke fragmentatie. Transparantie op het niveau van de applicatielaag. Applicatie Applicatie Bericht Transport TCP Segment TCP Segment Internet 13-11-2001
TCP Fragmentatie Wat is nu de maximum grootte van het TCP data veld? Complex Maximum Segment Size (MSS) Maximum grootte van het dataveld in het TCP segment. NIET de maximum grootte van het segment als geheel! 13-11-2001
TCP Fragmentatie MSS Default-waarde is 536 octetten Minimum IP pakketgrootte dat elk netwerk moet ondersteunen is 576 octetten. Grotere IP pakketten KUNNEN gefragmenteerd worden. Afhankelijk van de MTU. IP en TCP header zijn elk 20 octetten (zonder opties) Dit resulteert in de default MSS van 536 Als er opties zijn ingeschakeld in de TCP of IP-header, wordt MSS dan groter of kleiner? 13-11-2001
MTU Maximale Transfer Unit (MTU) Grootste IP pakket dat een netwerk accepteert. MTU IP Pakket 13-11-2001
IP Fragmentatie Als het IP pakket langer is dan de MTU, dan maakt de router er IP-fragmenten van. Een fragment is nog steeds een IP pakket MTU IP Pakket 3 2 1 IP Pakketten Fragmentatie 13-11-2001
IP Fragmentatie Wat wordt gefragmenteerd? Alleen het oorspronkelijke IP data veld Nieuwe headers MTU IP Pakket 3 2 1 IP Pakketten Fragmentatie 13-11-2001
IP Fragmentaties Kan meer dan 1 keer voorkomen. Bron Host Internet Proces Bestemming Host Internet Proces Fragmentatie 13-11-2001
Defragmentatie Defragmentatie gebeurt maar 1 keer! Alleen bij de bestemmings host! Bron Host Internet Proces Bestemming Host Internet Proces Defragmentatie 13-11-2001
Fragmentatie en IP velden More Fragments veld (1 bit) flags-veld 1 als er meerdere fragmenten zijn. 0 als dat niet zo is. IP-proces bij host zet MF-veld op 0. Routers zetten MF veld op 1 behalve bij het laatste fragment. Daar wordt MF op 0 gezet. 1 1 Originele IP Pakket Fragmenten 13-11-2001
Identification (16 bits) Identification Field IP pakket heeft een 16-bit Identification field Version (4) Hdr Len (4) TOS (8) Total Length in bytes (16) Identification (16 bits) Flags (3) Fragment Offset (13) Time to Live (8) Protocol (8) Header Checksum (16) Source IP Address Destination IP Address Options (if any) PAD Data Field 13-11-2001
Identification Field Het IP-proces op de source plaatst een random-getal in dit veld. Is bij ieder IP-pakket weer anders. Version (4) Hdr Len (4) TOS (8) Total Length in bytes (16) Identification (16 bits) Flags (3) Fragment Offset (13) Time to Live (8) Protocol (8) Header Checksum (16) 13-11-2001
Identification Field Als een router fragmenteert, dan wordt het originele IF-getal gekopieerd in alle fragmenten. 47 47 47 47 Original IP Packet Fragments 13-11-2001
Identification Field Doel is simpel Het IP-proces weet op zo’n manier welk fragment bij welk pakket hoort. Werkt natuurlijk ook goed als er vaker gefragmenteerd wordt (kopie van kopie) 13-11-2001
Fragmentatie: IP Fragmentatie Data veld van een groot IP pakket wordt gefragmenteerd. Fragmenten passen binnen de MTU Fragmentatie wordt gedaan door routers Fragmentatie mag meer dan 1 keer plaatsvinden 13-11-2001
Defragmentatie: IP Defragmentatie Defragmentatie wordt maar 1 keer gedaan, namelijk bij de ontvangende host. 13-11-2001
Defragmentatie: Alle gefragmenteerde pakketten die bij hetzelfde oorspronkelijke pakket behoren, hebben hetzelfde IF getal. More Fragments veld maakt duidelijk of er nog meer fragmenten komen die tot hetzelfde pakket behoren. 13-11-2001
ICMP Internet Control Message Protocol ICMP is het protocol voor transport van management-informatie. IP en ICMP zijn ontworpen om samen te werken. ICMP-berichten getransporteerd in het dataveld van een IP-pakket. Dus ICMP zelf zit op de transportlaag (TCP). 13-11-2001
ICMP Verschillende soorten ICMP Berichten 1. Error messages. Let op: het gaat hier niet om de foutcorrectie van data, maar management-informatie. Error Message 13-11-2001
ICMP Verschillende soorten ICMP berichten ICMP query request vraagt of de host actief is. Host stuurt een query response terug. Ook “Echo” en “Ping” genoemd. Echo Request Echo Response 13-11-2001
ICMP Verschillende ICMP berichten. Flow control: Source quench bericht vraagt om snelheid te verlagen. Source Quench 13-11-2001
Source Quench Eenvoudige vorm van flow-control Als een zendende host een source quench krijgt dan gaat hij langzamer zenden Als er nog een source quench bericht komt dan gaat hij nog langzamer zenden Als de source quench berichten stoppen, gaat de snelheid weer langzaam omhoog. 13-11-2001
ICMP ICMP kent nog meer management-berichten. Alleen een paar belangrijke zijn genoemd. 13-11-2001
IP- en Datalink laag adressen. Iedere host en router in een subnet hebben een datalink-laag adres. Dit adres staat in het frame wat op de datalink-laag actief is (bijv. HDLC) Bijv. 48-bit 802.3 MAC-adres voor LANs of HDLC-adres in point-point verbindingen. Subnet DA DL Frame voor Subnet 13-11-2001
Adressen Elke host en router hebben ook een IP- adres. Specificeert lokatie in het wereldwijde internet. 128.171.17.13 Subnet Subnet Subnet 13-11-2001