Network Component  Version 7.19.0
MDK Middleware for IPv4 and IPv6 Networking
Network Component

Overview

The Network Component v7 contains services, protocol sockets, and physical communication interfaces for creating IPv4 and IPv6 networking applications.

Network Overview

The various services provide program templates for common networking tasks:

  • The HTTP Server supports static and dynamic page content using scripting, AJAX and SOAP technologies. Web resource files are accessed either via the File System (for component Web Server) or are directly stored in ROM (for component Web Server Compact). Using the ARM mbed TLS component, you can enable secure communication for both web servers using HTTPS.
  • FTP server/client and TFTP server/client are used for file transfer. TFTP supports only file upload and download and is typically used for boot-loading remote devices in a closed LAN. It has very low memory requirements. FTP provides full file access including sub-directories, log-in and a set of manipulation commands.
  • The Telnet Server realizes a simple Command Line Interface (CLI) over an IP network.
  • Devices are often monitored using the Simple Network Management Protocol (SNMP). The SNMP Agent helps to report vital information of a device to the network manager.
  • The DNS Client resolves domain names like www.arm.com to the respective IP address. It makes use of a freely configurable name server.
  • The SNTP Client synchronizes clocks and enables a device to get an accurate time signal over the data network.
  • The SMTP Client helps you to send out for example status updates or alerts via e-mail to freely configurable e-mail addresses. Using the ARM mbed TLS component, you can enable secure communication and send e-mails using publicly available services like Gmail, Yahoo, etc.

All services rely on a network socket for communication. The Network Component supports these sockets:

  • TCP is a connection-oriented, reliable full-duplex protocol. This means that packets delivered using TCP are error-checked and delivered in the right order.
  • UDP is a transaction-oriented and stateless protocol. Data streaming or time-critical applications commonly use UDP. With UDP you can multicast a datagram to a group of devices.
  • The BSD Socket API is a programming interface, which implements a standard Berkeley Socket communication interface (using TCP and UDP sockets for communication).

The physical interface can be either Ethernet, WiFi or a serial connection.

  • Ethernet Interface is widely used for connecting local area networks (LAN). It can utilize different media as means of transmission.
  • The serial connection supports two different protocols:
    • The SLIP Interface implements the Internet Protocol over a serial connection.
    • The PPP Interface connects two network devices directly and provides authentication.
  • WiFi Interface is often used for wireless networking of local networks or to connect to the Internet of Things.

A driver provides the interface to the microcontroller peripherals or external components (for example an external PHY chip or WiFi module).

  • For Ethernet an Ethernet MAC and an Ethernet PHY is required.
  • PPP or SLIP interfaces use a USART and a Modem.
  • For WiFi interface a WiFi module is required.
Note
Usually, WiFi chips and modules have their own networking stack incorporated. This means that payload data is sent via a serial interface to the WiFi chip/module and the Ethernet frames are assembled inside. If you intend to use the MDK-Middleware Network component with a WiFi chip/module, make sure that its WiFi driver supports the bypass mode (currently only available for the Qualcomm QCA400x). This mode allows to send the Ethernet frames assembled by the Network component transparently through the WiFi chip/module. Some devices may support transparent mode at a higher level, such as TCP - this will not work with the Network component.

The Network CORE is available in a Debug variant with extensive diagnostic messages. The Release variant omits this diagnostic information.

For mass production, the Runtime Configuration option can be used to assign individual network addresses to every device that is produced. Unique identifiers are required for proper network operation.

A list of implemented RFCs is also available.

MDK Editions

MDK Middleware is available to all users of MDK-Professional and MDK-Plus. The following table shows the differences in Network component availability:

MDK-Professional MDK-Plus
Network (IPv4) Available Available
Network (IPv4/IPv6) Available
Network (SSL/TLS) Available
Note
A compatibility mode is available that enables you to use the old v6 API with only minor modifications in a v7 project.

Documentation Structure

This user's guide contains the following chapters:

  • Creating a Network Application explains the necessary steps to develop a network project from scratch.
  • Troubleshooting a Network Application shows best practice when debugging general network/connection issues.
  • Secure Communication shows how to use mbed TLS together with the Network Component to secure your communication channels. It also explains how to create your own SSL/TLS certificates.
  • The chapter Cyber Security explains how to test the TCP/IP stack with industry-standard tools against common vulnerabilities.
  • Network Examples are a good starting point for implementing your own networking device.
  • The Migration compares "migration guide" contains information how to migrate from previous versions to the Network Component v7.