* In the client-server model, the client runs a program to request a service and the server runs a program to provide the service. These two programs communicate with each other.
* One server program can provide services for many client programs.
* Clients can be run either iteratively (one at a time) or concurrently (many at a time).
* Servers can handle clients either iteratively (one at a time) or concurrently (many at a time).
* A connectionless iterative server uses UDP as its transport layer protocol and can serve one client at a time.
* A connection-oriented concurrent server uses TCP as its transport layer protocol and can serve many clients at the same time.
* When the operating system executes a program, an instance of the program, called a process, is created.
* If two application programs, one running on a local system and the other running on the remote system, need to communicate with each other, a network program is required.
* The socket interface is a set of declarations, definitions, and procedures for writing cleint-server programs.
* The communication structure needed for socket programming is called a socket.
* A stream socket is used with a connection-oriented protocol such as TCP.
* A datagram socket is used with a connectionless protocolsuch as UDP.
* A raw socket is sued by protocols such as ICMP or OSPF that directly use the services of IP.