Op deze pagina leer je over het systeem dat zorgt voor betrouwbare communicatie op het internet.
Computer, servers en routers zijn vrij betrouwbaar, maar soms raakt een datapakketje tijdens het transport verloren. Zulke fouten moet het internet aankunnen. Een manier om fouten te tolereren is je er niks van aan te trekken. Als je één frame in een video kwijtraakt, maakt dat bijvoorbeeld meestal niet veel uit voor een kijker. Een andere manier is om pakketjes te blijven versturen totdat aangegeven wordt dat ze ontvangen zijn. TCP is zo'n manier. TCP of voluit: Transmission Control Protocol, garandeert betrouwbare dataverzending door bij te houden welke pakketjes succesvol ontvangen zijn. Een verloren of beschadigd pakketje wordt opnieuw verstuurd. Daarnaast wordt ook aangegeven wat de volgorde van de datapakketjes is, om ze weer in de goede volgorde in elkaar te zetten bij de ontvanger.
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 verzenden en ontvangen zijn de enigen die geïnteresseerd zijn in de betekenis van de berichten.
Het Transmission Control Protocol (TCP) is een betrouwbaar verbindingenprotocol. Het is een verbinding tussen twee computers. ‘Het pakket komt over, want er ligt een directe link’.
Het internetprotocol (IP) is een best-effort-packet-protocol. Er is geen garantie dat het pakket aankomt. ‘We doen ons best, maar het kan misgaan’.
TCP en IP zijn twee netwerkprotocollen die voor abstractie
zorgen.
TCP voegt extra informatie toe aan ieder pakketje zodat de ontvanger (1) kan bijhouden hoeveel pakketjes er al ontvangen zijn, (2) missende pakketjes opnieuw kan aanvragen en (3) de pakketjes in de goeie volgorde kan zetten na ontvanst. 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.