Co je to socket

Pokud jste četli něco o internetu, nebo o linuxu, pravděpodobně jste narazili na slovo socket. Víte ale co tento termín znamená?

TCP socket je koncový bod (endpoint) spojení. Je definován IP adresou a portem. Port je identifikátor konkrétní služby (programu). Cílem portu je rozlišit mezi více koncovými body na stejné IP adrese. Ve stejný čas může existovat pouze jeden socket pro IP a port, ale může existovat více spojení. TCP spojení je definováno dvěma koncovými body (endpointy, sockety)

It is the socket pair (the 4-tuple consisting of the client IP address, client port number, server IP address, and server port number) that specifies the two endpoints that uniquely identifies each TCP connection in an internet. (TCP-IP Illustrated Volume 1, W. Richard Stevens)

In most C-derived languages, TCP connections are established and manipulated using methods on an instance of a Socket class.
https://stackoverflow.com/…/what-is-the-difference-between-a-port-and-a-socket

Unix domain socket (IPC socket – inter-process communication socket) je koncový bod pro datovou komunikaci mezi procesy na stejném operačním systému. Je to způsob, jak procesy na stejném stroji mohou mezi sebou komunikovat. A jelikož v linuxu je vše buď adresář nebo soubor, socket je soubor (speciální soubor).

When Unix programs do any sort of I/O, they do it by reading or writing to a file descriptor. A file descriptor is simply an integer associated with an open file. But (and here’s the catch), that file can be a network connection, a FIFO, a pipe, a terminal, a real on-the-disk file, or just about anything else. Everything in Unix is a file! So when you want to communicate with another program over the Internet you’re gonna do it through a file descriptor, you’d better believe it.
http://beej.us/guide/bgnet/html/#what-is-a-socket

Obecně řečeno je tedy socket endpoint sloužící pro komunikaci. Mohli jste ale ještě narazit na slovo WebSocket. To je jiný příběh. WebSocket je komunikační protokol, umožnující obousměrnou full-duplex komunikaci, který je umístěn v 7 vrstvě OSI modelu (podobně jako HTTP protokol).

Další zdroje: Unix domain socket, WebSocket

Napsat komentář