Socket

Een socket staat bekend als een type software dat fungeert als een eindpunt dat functioneert bij het tot stand brengen van een bidirectionele netwerkcommunicatieverbinding tussen het uiteinde van de server en het ontvangende programma van de client.[1] Het wordt ook vaak aangeduid als één eindpunt in een tweerichtingscommunicatiekanaal. Deze contactdozen worden gemaakt en gemobiliseerd samen met een reeks programmeeropdrachten die worden geïdentificeerd als de functie-oproepen, die technisch wordt aangeduid als de application programming interface (API). Een stopcontact kan de werking van een programma vereenvoudigen, omdat programmeurs zich nu alleen nog maar zorgen hoeven te maken over het manipuleren van de functies van de stopcontacten, waardoor ze kunnen vertrouwen op het besturingssysteem om de berichten daadwerkelijk correct over het netwerk te transporteren.[2]

Functionaliteit

Typisch is dat een stopcontact een specifieke stroom van gebeurtenissen heeft om te werken. Voor een verbindingsgeoriënteerd client-to-server model, wacht de socket op het serverproces op het verzoek van een client. Om dit te doen, moet de server in de eerste plaats een adres vaststellen waarmee de clients de server kunnen vinden en verbinding kunnen maken met de server. Wanneer een verbinding met succes tot stand is gebracht, zal de server wachten tot de clients een service aanvragen. De client-to-server gegevensuitwisseling vindt plaats als de client via de socket verbinding maakt met de server. De server zal dan het verzoek van de cliënt beantwoorden en een antwoord sturen.[3]

Meestal worden URL's en hun verbindingen gebruikt om toegang te krijgen tot het internet. Programma's vereisen een eenvoudige communicatieverbinding tussen de client van het programma en de server. Deze rol wordt geassocieerd met een socket die de client en de server van het programma aan elkaar bindt. Als een client begint te communiceren met de server, wordt een betrouwbare server- en clientverbinding tot stand gebracht via het TCP-communicatiekanaal. Met dit type communicatie kunnen zowel de client als de server lezen of schrijven op sockets die verbonden zijn met een specifiek communicatiekanaal.[^04]

Soorten stopcontacten

De volgende zijn verschillende soorten stopcontacten:

Datagram Aansluitingen

Dit is een type netwerkaansluiting die een verbindingsloos punt biedt voor het verzenden en ontvangen van datapakketten. Elk pakket dat vanuit een datagramdoos wordt verzonden, wordt individueel gerouteerd en afgeleverd. Het kan ook worden gebruikt voor het verzenden en ontvangen van radioberichten.

Ruwe Stopcontacten

Dit stopcontact geeft toegang tot de onderliggende transportprovider. Deze zijn in staat om de gebruikers toegang te geven tot de onderliggende communicatieprotocollen die socketabstracties ondersteunen. Normaal gesproken zijn deze datagram georiënteerd, ook al zijn de exacte kenmerken ervan afhankelijk van de interface die het protocol biedt. Deze zijn niet bedoeld voor algemeen gebruik, maar ze zijn vooral bedoeld voor diegenen die geïnteresseerd zijn in het ontwikkelen van nieuwe communicatieprotocollen of het gebruik om toegang te krijgen tot sommige cryptische faciliteiten van reeds bestaande protocollen.

Opeenvolgende pakketjes Stopcontacten

Dit is echter vergelijkbaar met een stroomaansluiting, met uitzondering dat de grenzen van het record behouden blijven. Dit type socket laat de gebruikers toe om het sequence packet protocol (SPP) of de internet datagram protocol (IDP) headers op een pakket of zelfs een groep pakketten te manipuleren. Met deze aansluiting kan de gebruiker ook headers voor inkomende pakketten ontvangen.

Stroomaansluitingen

Dit type contactdoos vertrouwt op TCP om gegevens te verzenden. Als het aanleveren van gegevens onmogelijk is, krijgt de afzender een indicatie dat de verbinding tot een fout heeft geleid. De datarecords hebben geen grenzen.[4] Deze socket biedt een verbindingsgeoriënteerde, geordende en unieke datastroom zonder recordgrenzen, met goed gedefinieerde mechanismen voor het creëren en/of vernietigen van verbindingen en voor het opsporen van fouten. Het verzendt betrouwbare gegevens, in volgorde en zonder out-of-band mogelijkheden. Processen worden verondersteld alleen te communiceren tussen contactdozen van hetzelfde type, maar er is geen beperking die de communicatie tussen deze contactdozen van verschillende types verhindert.

Actief stopcontact

Dit is een contactdoosverbinding met de op afstand actieve contactdozen via een open dataverbinding. Als deze verbinding gesloten wordt, zullen de actieve contactdozen op elk punt ook vernietigd worden. Dit wordt gebruikt door de klanten die een verbindingsaanvraag willen indienen om verbinding te maken. Dit actieve stopcontact kan echter ook worden omgevormd tot een passief stopcontact door met het bind-macro een naam aan het stopcontact te binden en door aan te geven dat men bereid is om verbindingen met het luister-macro te accepteren.

Passief stopcontact

Deze contactdoos wordt niet aangesloten, maar wacht op een inkomende verbinding die een nieuwe actieve contactdoos zal voortbrengen. Dit wordt door de servers gebruikt om verbindingsverzoeken met de connect-macro te accepteren. Dit passieve stopcontact kan niet worden gebruikt voor het initiëren van verbindingsaanvragen. De begrippen actieve en passieve contactdozen voor stroomdozen zijn niet van toepassing op de andere soorten contactdozen, zoals de datagramcontactdoos.[5]

Havens en stopcontacten

Een socket is een interface voor het verzenden en ontvangen van gegevens op een specifieke poort, terwijl een poort een numerieke waarde is die aan een specifiek proces of een toepassing in het apparaat wordt toegekend.[6] Hoewel er een nauwe relatie bestaat tussen een stopcontact en een poort, is het stopcontact eigenlijk geen poort. Elke poort kan een enkele passieve stekkerdoos hebben die wacht op de inkomende verbindingen en meerdere actieve stekkerdozen die elk op een open verbinding in de poort staan.[1:1] Tegenwoordig maakt het stopcontact de communicatie gemakkelijker en efficiënter. Het maakt het mogelijk om een verbinding te maken tussen twee verschillende processen op dezelfde of verschillende machines. Simpel gezegd, het is een manier om met een andere computer te praten.

Geschiedenis

Het gebruik van de term "Socket" begon in 1971, waar het werd gebruikt tijdens de ontwikkeling van ARPANET. De meeste stopcontacten die vandaag de dag worden geïmplementeerd zijn gebaseerd op Berkerley stopcontacten, die in 1983 werden ontwikkeld. De stopcontacten die gebruikt werden om een internetverbinding tot stand te brengen, zijn echter gemodelleerd naar de Winsock-modellen die in 1991 werden gemaakt. Berkerley-aansluitingen worden ook wel BSD-aansluitingen genoemd. In 1989 bracht Berkerley versies van zijn besturingssysteem en hun netwerkbibliotheek uit als vrij van licentiebeperkingen. Andere vroege implementaties werden geschreven voor TOPS-20, MVS, VM en IBM-DOS.


  1. https://www.techopedia.com/definition/16208/socket ↩︎ ↩︎

  2. https://www.webopedia.com/TERM/S/socket.html ↩︎

  3. https://www.ibm.com/support/knowledgecenter/ssw_ibm_i_72/rzab6/howdosockets.htm ↩︎

  4. https://www.tutorialspoint.com/unix_sockets/what_is_socket.htm ↩︎

  5. https://www.ibm.com/support/knowledgecenter/en/SSLTBW_2.3.0/com.ibm.zos.v2r3.hala001/astream.htm ↩︎

  6. http://pediaa.com/difference-between-socket-and-port/ ↩︎