Network Overview#
Specifications#
Layer Model#
A TCP/IP stack is divided into layers of same functionality. Each communication protocol belongs to one of the layers. Table - Network Layer Model in the Network Overview page shows the different layers of the TCP/IP model and also the OSI model. At the right, a list of the protocols associated with each layer that the Micrium OS Network module supports.
Table - Network Layer Model#
Network Protocols#
Here is a list of the network protocols and their corresponding RFC that the Network module supports.
Network Interface#
Currently, the Network module supports Ethernet interface that uses Ethernet frame and/or IEEE 802.4.
Also, WiFi interfaces can be used as long as the device implements by itself IEEE 802.11. Basically, the network stack only sends some commands to the module to scan for wireless networks, join or leave a specific network. The WiFi module must be able to encrypt and decrypt by itself all the network data. The network data between the host and the wireless module is transferred using IEEE 802.4. Currently, only SPI is supported as a communication bus between the host and the wireless module.
Socket API#
The user application interfaces to the Micrium's network stack via a well known API called BSD sockets (or our native socket interface). The application can send and receive data to/from other hosts on the network via this interface. Many books and tutorials exist about BSD sockets programming, mostly the concepts explained in those can be applied to Micrium OS Network module socket programming.
Features#
Sockets#
BSD 4.x API
Many socket options (Blocking mode, keep Alive, windows size, timeouts, etc.)
Possible to secure a connection (SSL/TLS) by simply using socket options API.
TCP#
Congestion control
Delayed ACKs
Nagle Algorithm (Slow Start)
Keepalive option
MSS and Windows options
MSL option
Listen queue size and child limitation option
IPv4#
Multiple IP addresses per interface
Automatic routing
IP fragmentation re-assembly support
Multicast transmission and reception (IGMPv2)
ICMP (Echo request/response)
IPv6#
IPv6 Node
Multiple IP addresses per interface
IPv6 Multicast (MLD)
Neighbor Discovery (NDP)
ICMPv6 (Echo request/response)
IPv6 Stateless Address Auto configuration
Duplicate Address Detection
IP addresses configuration's function with an option to non-blocking.
Network Interface#
Loopback
Ethernet (802.3 & Ethernet)
WiFi Module*
Custom interface
*WiFi module must embed 802.11 protocol (Authentication, Encryption, etc.). It must be possible to bypass the module's TCP/IP stack.
Limitations#
Socket#
Socket errno not supported.
IPv4#
ONLY supports a single default gateway per interface.
IPv4 forwarding/routing NOT currently supported.
Transmit fragmentation NOT currently supported.
IPv4 Security options NOT supported.
IPv6#
Transmit fragmentation NOT currently supported.
IPv6 Extension Headers is NOT currently supported.
IPv6 Path MTU not supported.
Network Applications#
For more information on the specifications and limitations of the available network applications, refer to the following sections: