Socket
Een socket is een softwareonderdeel dat computerprogramma's helpt communiceren via een netwerk. De term "socket" doet denken aan een fysieke aansluiting waarop je een netwerkkabel aansluit en waar alle gegevens doorheen gaan. Toepassingen maken softwarematige netwerksockets voor een vergelijkbaar doel: alle gegevens die een toepassing via een netwerkverbinding verzendt en ontvangt, gaan door de socket.
Sockets bieden een standaardmethode waarmee een programma netwerkverbindingen tot stand kan brengen. Softwareontwikkelaars kunnen een API gebruiken om een socket te maken die wordt beheerd door het besturingssysteem, zodat ze niet zelf vanaf nul een manier hoeven te schrijven. Wanneer de toepassing gegevens via het netwerk moet verzenden, schrijft deze die gegevens naar de socket alsof het een bestand naar een schijf schrijft. Het besturingssysteem merkt dit op en stuurt het gegevenspakket automatisch via het netwerk door naar de bestemming.
Elke socket heeft een uniek socketadres dat een IP-adres en een poortnummer combineert. Dit adres identificeert zowel de specifieke computer waarop de socket actief is als de toepassing die deze heeft gemaakt. Toepassingen die op een server draaien, maken sockets wanneer ze worden gestart en houden deze in een luisterstatus, terwijl toepassingen op clients sockets naar behoefte kunnen openen en sluiten. Zolang een socket geopend is, controleert het besturingssysteem deze op inkomende en uitgaande gegevenspakketten en bekijkt het het socketadres van elk pakket om te bepalen waar het moet worden doorgestuurd.
Wanneer je bijvoorbeeld met je webbrowser een website bezoekt, maakt deze een socket die via het IP-adres en poortnummer verbinding maakt met een andere socket op een externe webserver 80 voor (HTTP-verbindingen en 443 voor HTTPS-verbindingen). De browser stuurt via deze socket een verzoek voor een specifieke webpagina, wat het besturingssysteem detecteert en doorstuurt naar de webserver. Wanneer de webserver de aangevraagde pagina terugstuurt naar je computer, bekijkt het besturingssysteem het socketadres en weet het dat de pagina naar de webbrowser moet worden teruggestuurd.
Test je kennis