Wanneer een host een pakket ontvangt, vindt er een reeks gebeurtenissen plaats, waarbij doorgaans de netwerkinterfacekaart (NIC), het besturingssysteem (OS) en mogelijk toepassingen betrokken zijn. Hier is een overzicht:
1. Fysieke ontvangst:
* NIC ontvangt het pakket: De NIC ontvangt het fysieke signaal dat het pakket draagt. Hierbij wordt het elektrische of optische signaal omgezet in bits.
* Controleer op fouten: De NIC voert een controlesomverificatie uit om fouten tijdens de verzending te detecteren. Als er significante fouten worden gedetecteerd, kan het pakket worden weggegooid.
2. Verwerking van datalinklaag:
* MAC-adrescontrole: De NIC onderzoekt het MAC-adres van de bestemming in de Ethernet-frameheader (of het equivalent daarvan voor andere datalinktechnologieën). Als het MAC-adres overeenkomt met het eigen MAC-adres van de host (of als het adres een broadcast/multicast-adres is dat van toepassing is op de host), wordt het pakket geaccepteerd. Anders wordt het weggegooid.
* Frame verwijderen: De NIC verwijdert de frameheader en trailer van de datalinklaag, waardoor alleen het netwerklaagpakket overblijft.
3. Netwerklaagverwerking:
* IP-adrescontrole: De netwerkstack van het besturingssysteem onderzoekt het bestemmings-IP-adres in de IP-pakketheader. Er wordt een routeringsbeslissing genomen, maar aangezien het pakket al is ontvangen, is deze routering in de eerste plaats bedoeld om te bepalen waar het pakket *volgende* binnen het systeem naartoe moet gaan. Als het IP-adres voor de host zelf bestemd is, wordt de verwerking ervan voortgezet.
* IP-headerverwerking: Andere componenten van de IP-header worden onderzocht, inclusief het protocolveld, dat het protocol van de bovenste laag aangeeft (bijvoorbeeld TCP, UDP, ICMP). De checksum wordt ook geverifieerd.
4. Transportlaagverwerking (indien van toepassing):
* Poortcontrole: Als het protocol op de bovenste laag TCP of UDP is, onderzoekt het besturingssysteem het nummer van de bestemmingspoort in de TCP/UDP-header. Dit identificeert het specifieke toepassingsproces waarvoor het pakket bedoeld is.
* Segmenthermontage (TCP): Als het pakket bij TCP deel uitmaakt van een groter bericht, wordt het opnieuw samengesteld tot zijn volledige vorm. TCP verzorgt ook de foutcontrole, de stroomcontrole en de volgorde van segmenten.
* Checksum-verificatie (TCP/UDP): Er wordt een checksum-verificatie uitgevoerd om de gegevensintegriteit te garanderen.
5. Verwerking van applicatielaag:
* Pakketbezorging: Zodra het pakket volledig door de transportlaag is verwerkt, wordt het afgeleverd bij de juiste toepassing. Dit omvat het kopiëren van de gegevens van de kernelruimte naar de gebruikersruimte waar de applicatie draait.
* Applicatiespecifieke verwerking: De applicatie verwerkt de gegevens vervolgens volgens haar ontwerp.
6. Dankbetuigingen (voor sommige protocollen):
* TCP-erkenning: Bij TCP wordt een bevestigingspakket (ACK) teruggestuurd naar de afzender om de ontvangst te bevestigen.
Potentiële resultaten:
* Succesvolle levering: Het pakket wordt succesvol verwerkt en de gegevens worden afgeleverd bij de beoogde toepassing.
* Pakketoverdracht: Het pakket kan op elk moment worden verwijderd vanwege fouten, beperkte bronnen of onjuiste adressering.
* Foutmelding: Het besturingssysteem kan een ICMP-foutmelding genereren (bijvoorbeeld ICMP Destination Unreachable) als het het pakket niet kan bezorgen.
Dit is een vereenvoudigd overzicht. De exacte details kunnen variëren, afhankelijk van het besturingssysteem, de netwerkhardware en de specifieke betrokken protocollen. Bovendien kunnen aspecten als firewalls en inbraakdetectiesystemen ook pakketten onderscheppen en verwerken voordat ze de applicatielaag bereiken. |