About

This chapter presents a quick introduction to the Micriµm Internet protocol suite also commonly known as µC/TCP-IP. 

TCP/IP Layer Model

Layers

The Internet Protocol suite regroups all the protocols used for communication across the Internet or similar networks. 

A TCP/IP stack is divided into layers of same functionality. Each communication protocol belongs to one of the layers. Table - TCP/IP Layer Model 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 Micriµm µC/TCP-IP stack supports. 


TCP/IP Layer Model
OSI ModelTCP/IP Model
(Dod)
µC/TCP-IP
Internet Protocol Suite
ApplicationApplicationHTTP, FTP, DNS, SMTP, POP3, SNTP, TELNET, TFTP, SSL, DHCP
Presentation
Session
TransportTransportTCP, UDP
NetworkInternetIPv4, IGMP, ICMPv4, ARPIPv6, MLDP, ICMPv6, NDP
DataLinkNetwork AccessIF / 802x
EthernetWiFi
PhysicalEthernet DriverPHY DriverWiFi DriverWiFi Manager


µC/TCP-IP Protocols

µC/TCP-IP consists of the following protocols:

  • Device drivers
  • Network interfaces (e.g., Ethernet, Wi-Fi, etc.)
  • Address Resolution Protocol (ARP)
  • Neighbor Discovery Protocol (NDP)
  • Internet Protocol (IPv4 and IPv6)
  • Internet Control Message Protocol (ICMPv4 and ICMPv6)
  • Internet Group Management Protocol (IGMP)
  • Multicast Listener Discovery Protocol (MLDP)
  • User Datagram Protocol (UDP)
  • Transport Control Protocol (TCP)
  • Sockets (Micriµm and BSD v4)

Interfaces

Actually µC/TCP-IP supports Ethernet interface that use 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, µC/TCP-IP only sends some commands to the module to scan for wireless networks, join or leave a specific network. The Wi-Fi 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 communication bus between the host and the wireless module.

Devices

µC/TCP-IP may be configured with multiple-network devices and network (IP) addresses. Any device may be used as long as a driver with appropriate API and BSP software is provided. The API for a specific device (i.e., chip) is encapsulated in a couple of files and it is quite easy to adapt devices to µC/TCP-IP.

IPv4 & IPv6

IPv4

The Micriµm Network Stack supports IPv4 as described in RFC #791, with the following restrictions/constraints:

  • ONLY supports a single default gateway per interface.

  • IPv4 forwarding/routing NOT currently supported.
  • Transmit fragmentation  NOT currently supported.
  • IPv4 Security options NOT  supported.

The IPv4 Layer also implements:

  • ICMPv4 protocol for Internet control messages;
  • ARP protocol for link layer address resolution;
  • IGMP protocol for multicast communication.

IPv6

The Micriµm Network Stack supports IPv6 as described in RFC #2460, with the following restrictions/constrains:

  • IPv6 Extension Headers is NOT currently supported.

The IPv6 layer also implements:

  • ICMPv6 protocol for Internet control messages;
  • NDP protocol for link layer address resolution;
  • MLDP protocol for multicast communication.

Socket API

The user application interfaces to µC/TCP-IP via a well known API called BSD sockets (or µC/TCP-IP’s internal 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 these reference can be applied to µC/TCP-IP socket programming. 

Network Application Protocols

Micrium Add-ons

Micrium offers application layer protocols as add-ons to µC/TCP-IP. A list of these network services and applications includes:

µC/DCHPcDHCP client
µC/DNScDNS client
µC/HTTPsHTTP server (web server)
µC/FTPcFTP client
µC/FTPsFTP server
µC/SMTPcSMTP client
µC/SNTPcNetwork Time Protocol client
µC/TELNETsTelnet server
µC/POP3cPOP3 client
µC/TFTPcFTP client
µC/TFTPcTFTP client
µC/IPerfNetwork testing tool

BSD Based Application

Any well known application layer protocols following the BSD socket API standard can be used with µC/TCP-IP.

RFC validation

µC/TCPIP is regularly validated via a popular automated network validation library provided by Ixia and called IxANVL. It guaranteed that RFCs are always respected and correctly implemented.