Network - (Internet) (Socket|Endpoint)

> NetWork

1 - About

A socket is defined to be the unique identification to or from which information is transmitted in the network.

A network socket is an unique identifier of a network connection between a server (local machine) and a client (remote machine).

This connection is implemented by a software (not hardware) by creating a network interface.

A socket is therefore an endpoint of an inter-process communication flow across a computer network.

Today, most communication between computers is based on the Internet Protocol; therefore most network sockets are Internet sockets (ie TCP socket).

Socket communications are nowadays bidirectional (full duplex) (With Tcp sure, udp ???)

Advertising

3 - Id

An socket on a operating system level is characterized by a unique combination of the following:

The output of netstat showing a socket Id with its state. They are all TCP socket

4 - Address

In the standard Internet protocols TCP and UDP, a socket address is the combination of

5 - Type

The type of socket is defined by the protocol that implements it. (ie a TCP socket is a socket implemented by TCP)

There are several Internet socket types available:

  • Datagram sockets, also known as connectionless sockets
  • Stream sockets, also known as connection-oriented sockets, which use Transmission Control Protocol (TCP) or Stream Control Transmission Protocol (SCTP).
  • Raw sockets (or Raw IP sockets), typically available in routers and other network equipment. Here the transport layer is bypassed, and the packet headers are made accessible to the application.

There are also non-Internet sockets, implemented over other transport protocols, such as:

  • Systems Network Architecture (SNA).
  • Unix domain sockets (UDS), for internal inter-process communication.
Advertising

6 - State

Socket lifecycle.

A state is an information that is given for a protocol that supports a connection. It means that this is often about a TCP socket because UDP is connection less

List:

  • Listening: Computer processes that provide application services are called as servers, and create sockets on start up that are in listening state. These sockets are waiting for initiatives from client programs. See TCP Listening state
  • Established:

The operating system forwards the payload of incoming IP packets to the corresponding application by extracting the socket address information from the IP and transport protocol headers and stripping the headers from the application data.

7 - Management

7.1 - List

The output of netstat showing a socket Id with its state

7.2 - Count

  • Number of open sockets with netstat
netstat | grep port

where:

Advertising

8 - Language

  • Java: For IPC, you could also use ObjectOutputStream and ObjectInputStream connected to network sockets and exchange Java objects directly between the two programs. Or you could design your own protocol.

9 - Documentation / Reference