TargetTCP™ IPv4 TCP/IP Protocol Stack

Overview

TargetTCP is a RFC-compliant high-performance TCP/IP protocol stack with a proprietary zero-copy architecture developed by Blunk Microsystems for embedded applications.

Features

  • BSD Socket API with enhancements:

    • connect(), recv(), and send() timeouts can be set by setsockopt().
    • MSG_WAITALL flag makes recv() block until all requested bytes have been received.
    • setsockfunc() installs a socket callback function, supporting event driven programming.
    • setsockopt() IP_TOS and IP_TTL options set the IP header type-of-service and time-to-live values on a per socket basis.
    • getaddrinfo()/getnameinfo() for IPv4/IPv6 agnostic DNS lookups
  • Standard core protocols: IPv4, ARP, ICMP, UDP, TCP, DHCP, AutoIP

    • IPv4 data addressing and routing using 32-bit addresses
    • ARP converts Ethernet addresses to IP addresses
    • ICMP transfers error messages and operational information
    • UDP transports datagrams across IP network
    • TCP provides reliable stream data transmission
    • DHCP client for IP address assignment
    • AutoIP link-local IP address assignment
  • Other included protocols:

    • DNS client converts name string to IP address
    • RARP client for using MAC address to get IPv4 address
    • ACD - IP Address Conflict Detection
    • Multicasting support
    • Supports Raw Sockets and Packets
  • Included Services

    • TFTP - Trivial File Transfer Protocol
    • FTP - File Transfer Protocol
    • NTP client for network time synchronization
    • SNTP - Simple Network Time Protocol
    • Telnet client
    • SMTP send mail client
    • Traceroute
  • Add-on Options

    • IGMPv3 - Internet Group Management Protocol version 3
    • mDNS - Multicast DNS
    • SNMPv2c - Simple Network Management Agent with MIB-2
    • PPP Protocol Stack
    • SSL/TLS
  • Supports RISC processors with no extra data copy due to misalignment caused by the 14 byte Ethernet header. The IP, TCP, UDP, and other headers are 4-byte aligned within the stack, allowing fast access to the 32-bit fields in these structures. Application data remains unaligned, eliminating an extra copy required by Berkeley derived implementations.

  • Using the Sockets API, only one data copy is performed between a send/recv call and a DMA-based network interface. This applies to inbound and outbound transfers using UDP datagrams or TCP streams. A non-standard zero-copy API addition eliminates the copy required by the Sockets API.

  • Supports TCP out-of-band data and urgent data mark. Both select() and socket callback function can be used to detect when a connected peer has entered urgent mode.

  • Easy to administer. The DHCP client may be configured to use gateway and DNS server addresses supplied by the server. The RARP client may be configured to use the RARP server as a default gateway. PPP connections can be configured to be a default gateway and to request a DNS server address from the remote peer.

  • The Telnet server is integrated with a command line shell, providing built-in commands and easy extensions. The FTP server is integrated with file systems using a POSIX API. The TFTP client is integrated with the TargetOS™ runtime library, allowing access to remote files via fopen(), and with the TargetOS loader, which accepts both ELF and S-record formats.

  • High Performance. No data copies are required for the core protocols. Matching of IP fragments, ARP address records, and TCP sockets by fast hashing functions. The 16-bit Internet checksum is optionally calculated in assembly language. Access to the assembly language “add with carry” instruction enables the calculation to use fast 32-bit accesses/sums.

  • Well documented network driver interface. TargetTCP supports multiple concurrent network interfaces. Includes Ethernet and PPPs drivers for populer controllers. Blunk Microsystems provides low cost bids on custom drivers.

  • Built-in TCP/IP protocol decoder. When enabled by a compile-time flag, a short summary of every received or transmitted packet is printed to stdout on an ongoing basis.

  • Optional SSL/TLS protocol enables FTP over TLS, Telnet over TLS, and HTTPS. Add TLS client or server security to any TCP connection using a single ioctl call. Application Socket calls (recv(), send(), etc.) use plain text while data over the wire travels in TLS packets. No separate API for using TLS. TSL security is transparently added with minimal changes to application code.

  • SNMPv2c Network management with complete MIB-II integration for TargetTCP. Interface SNMP to Telnet shell commands and/or TargetWeb’s HTML forms and use the same underlying management functions for a reliable and redundant management scheme across multiple network protocols.

  • Compact and configurable. Applications typically require approximately 60 KB of code from the TargetTCP library and can be configured to use as little as 64 KB of RAM data.

  • Shipped with multiple example clients and servers. Includes a network benchmark application for measurement of throughput and CPU utilization.

  • Developed using TargetOS-Lite™, Blunk’s free RTOS. Easily ported to other RTOSes or used in polled mode, without a kernel.

  • Source code is 100% Standard C (except optional assembly language checksum routines) and has been tested using PC-lint and multiple Standard C compilers, including GCC.

  • Royalty-free license. Includes complete source code, sample applications, sample drivers, user’s manual, and one year of technical support. Electronic delivery via customer-specific web portal.

  • Porting manual provides details on integrating TargetTCP into your environment.

  • Bundled in liteTCP™.