The following points highlight the five main terms that are used in networking analysis. The terms are: 1. Entities 2. Primitives 3. Services 4. Protocols 5. Sockets used in connection with networking.
1. Entities:
While designing networks (or even understanding them), it is worthwhile to break up the problem into simpler elements—a method often used by engineers to study a large problem. Engineers often draw or think of, a ‘free body diagram’ of the portion relating to the problem and proceed to solve it. Similarly, a network is partitioned into layers. Each layer provides some service.
The active elements of each layer are called entities. An entity may be a software element—such as a software process or a hardware element such as an intelligent I/O device.
Entities in the same layer are called peer entities. An entity in any layer provides some service to the layer above it. Thus, the layer in which the entity is located is called the service provider and the layer to which it provides the service is called the service user.
2. Primitives:
ADVERTISEMENTS:
A primitive is an operation available to the user (the user may be an entity) to access the service. The primitive may tell the service to perform some action or to report on some action taken by a peer entity.
A service primitive may be classed as one of four types:
Request, indication, response and confirmation.
A request implies that an entity wants a particular service to do some work an indication means that an entity requires information about an event, a response means that an entity wants to respond to some event and a confirmation means that a response to an earlier request has come back.
3. Services:
ADVERTISEMENTS:
These are functions and facilities provided to each layer by the layer just below it. It is a set of operations that a layer provides to the layer above it. It defines what operations the layer is prepared to perform on behalf of its users, but it says nothing at all about how these operations are to be implemented. Services can be connection-oriented or connectionless.
A connection-oriented service is one in which the service user first establishes a connection, uses the connection and on completing the task, releases the connection. An accurate example would be a telephone connection. A connectionless service, on the other hand, is like a post-office system.
Each message carries the full destination address and each one is routed through an established and fixed procedure. In case of a connectionless service, however, if two messages are sent one after the other, there is no certainty that the message sent first will arrive first, whereas in case of a connection-oriented service, such a mistake cannot occur.
4. Protocols:
The service to be performed defines what operations are to be performed but not how they are to be implemented. Protocols are a set of rules governing the format and meaning of the frames, packets or messages that are exchanged by the peer entities within a layer. Entities use protocols in order to be able to implement their service definitions.
5. Sockets:
ADVERTISEMENTS:
The concept of sockets and socket programming was developed in the 1980s in the Unix environment as the Berkeley Sockets Interface. In essence a socket enables communication between a client and server process and may be either connection-oriented or connectionless.
A socket can be considered an endpoint in a communication. A client socket in one computer uses an address to call a server socket on another computer. Once the appropriate sockets are engaged, the two computers can exchange data.
Typically, computers with server sockets keep a TCP or UDP port open, ready for unscheduled incoming calls. The client typically determines the socket identification of the desired server by finding it in a Domain Name System (DNS) Data Base. Once a connection is made, the server switches the dialogue to a different port number to free up the main port number for additional calls.
Some Internet applications make use of sockets, with the details hidden from the user. However, sockets can be constructed from within a program (in C or Java), enabling the programmer to easily support networking functions and applications. The sockets-programming mechanism includes sufficient semantics to permit unrelated processes on different hosts to communicate.
ADVERTISEMENTS:
The Berkeley Sockets Interface is a standard application programming interface (API) for developing networking applications, spanning a wide range of operating systems. The sockets API provide generic access to inter-process communications services.