Computer network programming involves writing computer programs that enable processes to communicate with each other across a computer network.[1]

Connection-oriented and connectionless communications

edit

Very generally, most of communications can be divided into connection-oriented, and connectionless. Whether a communication is connection-oriented or connectionless, is defined by the communication protocol, and not by application programming interface (API). Examples of the connection-oriented protocols include Transmission Control Protocol (TCP) and Sequenced Packet Exchange (SPX), and examples of connectionless protocols include User Datagram Protocol (UDP), "raw IP", and Internetwork Packet Exchange (IPX).

Clients and servers

edit

For connection-oriented communications, communication parties usually have different roles. One party is usually waiting for incoming connections; this party is usually referred to as "server". Another party is the one which initiates connection; this party is usually referred to as "client".

For connectionless communications, one party ("server") is usually waiting for an incoming packet, and another party ("client") is usually understood as the one which sends an unsolicited packet to "server".

edit

Network programming traditionally covers different layers of OSI/ISO model (most of application-level programming belongs to L4 and up). The table below contains some examples of popular protocols belonging to different OSI/ISO layers, and popular APIs for them.

OSI/ISO Layer Protocol API
L3 (network) IP Raw socket
L4 (transport) TCP, UDP, SCTP Berkeley Sockets
L5 (session) TLS OpenSSL
L7 (application) HTTP Various

See also

edit

References

edit
  • W. Richard Stevens: UNIX Network Programming, Volume 1, Second Edition: Networking APIs: Sockets and XTI, Prentice Hall, 1998, ISBN 0-13-490012-X
  1. ^ "Chapter 12 - Network Programming". COMP1406 (PDF). 2017. Archived from the original (PDF) on 2020-03-05. Network Programming involves writing programs that communicate with other programs across a computer network.

📚 Artikel Terkait di Wikipedia

Berkeley sockets

Berkeley sockets is an application programming interface (API) for Internet domain sockets and Unix domain sockets, used for inter-process communication

Network socket

application programs that utilize this API is called socket programming or network programming. Internet socket APIs are usually based on the Berkeley sockets standard

Unix domain socket

A Unix domain socket (UDS), also called a local socket or inter-process communication (IPC) socket, is a communication endpoint used for data exchange

Winsock

In computing, the Windows Sockets API (WSA), later shortened to Winsock, is an application programming interface (API) that defines how Windows network

Socket

communication Berkeley sockets, an application programming interface for networking and inter-process communication CPU socket, the connector on a computer's

AC power plugs and sockets

AC power plugs and sockets connect devices to mains electricity to supply them with electrical power. A plug is the connector attached to an electrically

Web scraping

retrieved by posting HTTP requests to the remote web server using socket programming. Many websites have large collections of pages generated dynamically

Zero insertion force

is a type of IC socket or electrical connector that requires very little (but not literally zero) force for insertion. With a ZIF socket, before the IC