Op deze pagina, ga je leren over het systeem dat zorgt voor betrouwbare communicatie op het internet.
Computer, servers en routers zijn vrij betrouwbaar, maar soms raakt een pakket verloren. Zulke fouten moet het internet aankunnen. Een manier om fouten aan te pakken is om er niks om te geven. (Als je één frame van een video kwijtraakt, maakt het bijvoorbeeld niet heel veel uit.) Een andere manier (TCP genaamd) is om pakketjes te blijven versturen totdat aangegeven wordt dat ze ontvangen zijn. TCP (Transmission Control Protocol in het Nederlands, Verzendingcontroleprotocol) garandeert betrouwbare dataverzending door bij te houden welke pakketjes succesvol ontvangen zijn, een verloren of beschadigd pakkeetje wordt opnieuw verstuurd. Daarnaast wordt ook aangegeven wat de volgorde van de data is om het weer in de goede volgorde elkaar te zetten bij de ontvanger.
TCP en IP zijn een paar protocollen die voor abstractie zorgen. Met IP doet je computer alsof het een directe verbinding heeft met een andere computer. Met TCP doet je computer alsof het een betrouwbare verbinding heeft met een andere computer.
Het end-to-endprincipe van TCP en IP is een abstractie:
De routers weten niks over de berichten die ze doorsturen. De computers die de berichten sturen en ontvangen zijn de enige die geïnteresseerd zijn in wat de berichten betekenen.
TCP voegt extra informatie toe aan ieder pakketje zodat de ontvanger kan bijhouden hoeveel pakketjes er al ontvangen zijn, missende pakketjes opnieuw kan aanvragen en de pakketjes in de goeie volgorde kan terugzetten. In de simulatie hierboven arriveert een pakket correct (niet per se in de goede volgorde) of het arriveert nooit. Dus als we een 'B' versturen komt er óf een 'B' aan of niks, het is niet mogelijk dat er een 'C' arriveert. Maar op het internet is zoiets wel mogelijk. Het kan zo maar zijn dat een pakket arriveert met fouten in de data dus het TCP moet controleren of er fouten in het pakket zitten en vragen of het pakketje opnieuw verzonden kan worden.