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 Layer Model

Network Protocols#

Here is a list of the network protocols and their corresponding RFC that the Network module supports.

Network Protocols

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#

  1. ONLY supports a single default gateway per interface.

  2. IPv4 forwarding/routing NOT currently supported.

  3. Transmit fragmentation NOT currently supported.

  4. 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: