About

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 Model

TCP/IP Model
(Dod)

µC/TCP-IP
Internet Protocol Suite

Application

Application

HTTP, FTP, DNS, SMTP, POP3, SNTP, TELNET, TFTP, SSL, DHCP

Presentation

Session

Transport

Transport

TCP, UDP

Network

Internet

IPv4, IGMP, ICMPv4, ARP

IPv6, MLDP, ICMPv6, NDP

DataLink

Network Access

IF / 802x

Ethernet

WiFi

Physical

Ethernet Driver

PHY Driver

WiFi Driver

WiFi 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/DCHPc

DHCP client

µC/DNSc

DNS client

µC/HTTPs

HTTP server (web server)

µC/FTPc

FTP client

µC/FTPs

FTP server

µC/SMTPc

SMTP client

µC/SNTPc

Network Time Protocol client

µC/TELNETs

Telnet server

µC/POP3c

POP3 client

µC/TFTPc

FTP client

µC/TFTPc

TFTP client

µC/IPerf

Network 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.