NeL Network Layers
Introduction
The NeL network library provides a single solution which caters for all of the Server -> Client, Client -> Server and Server -> Server communication requirements.
This solution is structured as a number of layers that are stacked on top of each other. The API gives the app programmers direct access to all of the layers.
The higher the number of the layer is, the higher the abstraction is. It means that Layer 5 added lot of more features than Layer 0 but also have overhead in CPU load and in bandwidth.
Layers
Layer 0 (Bottom Layer)
Data transfer layer. Abstraction of the network API and links (PC may be across a network, or local messaging).
[Layer 0] includes the following classes:
- CSock : Base interface and behavior definition for hierarchical descendants
- CTcpSock : Implementation of a socket class for the TCP/IP protocol
- CUdpSock : Implementation of a socket class for the UDP protocol
- CUdpSimSock : Same implementation as CUdpSock but with some user parameters to simulate lag, packet loss...
Layer 1
Data block management layer (buffering and structuring of data with generic NeL serialization system). Also provides multi-threading listening system for services.
Layer 1 includes the following classes:
- CBufNetBase : Buffer functionality common to client and server
- CBufClient : Implements client-specific buffer functionality
- CBufServer : Implements server-specific buffer functionality
Layer 2
Deprecated This layer was removed from NeL.
Layer 3
Message management layer (Handling of asynchronous message passing, and callbacks).
[Layer 3] includes the following classes:
- CCallbackNetBase : Functionality common to client and server
- CCallbackClient : Client-specific functionality
- CCallbackServer : Server-specific functionality
Layer 4
Deprecated This layer was removed from NeL.
Layer 5
Inter-Service message addressing layer. Handles routing of messages to services, encapsulating connection to naming service and handling of lost connections.
[Layer 5].