TargetTCP-IPv4™
Embedded TCP/IP Protocol Stack with IPv4
Features
Blunk Microsystems' embedded TCP/IP protocol stack was designed from the ground up to be the highest performing embedded protocol stack. Network benchmarks have shown time and again that TargetTCP's per MHz data transfer rate tops all competition for TCP and UDP. We offer simply well engineered TCP and IP stacks designed for optimized harware drivers. Aside from being the fastest, Blunk Microsystems puts considerable effort into regresive code coverage, static analysis and fault testing for each protocol and the system as a whole. Each network protocol is matched to a testing procedure designed to excercise all code paths including the handling of protocol error paths. Interoperability tests with over six different operating systems is then performed simultaniously. During this final interoperability testing we activate third party attack tools and ensure operability is not compromised in even the most hostile operating environments.
TargetTCP-IPv4™, Blunk Microsystems' embedded TCP/IP protocol stack with IPv4, includes the following features:
- RFC-compliant with a full protocol suite. Supports TCP (SACK), UDP, IPv4, ICMP, multicasting, IGMPv3, ARP, AutoIP, Traceroute, NAT, Ethernet, PPP (with CHAP, CHAT, and PAP), and Wi-Fi (802.11b/g). Includes servers for PPPoE, FTP, TFTP, DHCP, RARP, Telnet, SNMPv1/2c (with MIB II/Mini-RMON) and mDNS/DNS-SD. Includes clients for FTP, TFTP, PPPoE, DNS, DHCP, SMTP, RARP, NTP, LPR and mDNS/DNS-SD.
- Standard Berkeley sockets application program interface 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 and allowing a single task to service both socket and other events.
- setsockopt() IP_TOS and IP_TTL options set the IP header type-of-service and time-to-live values on a per socket basis.
- setsourcefilter()/getsourcefilter(), an advanced IGMPv3 API, is also backward compatible with IGMPv1/2.
- getaddrinfo()/getnameinfo() allow applications to utilize DNS lookups without regard to whether the result is IPv4 or IPv6.
- Supports RISC processors with no extra data copy within the Ethernet driver to align packets. The IP, TCP, and UDP 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 Berkeley sockets API, only one copy of application data is performed. This applies to inbound and outbound transfers using both UDP datagrams and TCP streams. A zero-copy API is provided that eliminates the copy associated with the sockets API.
- Supports unnumbered serial links (RFC1716) to avoid having to waste IP addresses or create artificial subnets on targets with multiple network interfaces.
- Supports TCP out-of-band data and urgent data mark. Both socket callback functions and select() are used to notify applications 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.
- Integrated. The Telnet server is integrated with the TargetOS command line monitor, allowing full access to built-in commands and easy extensibility. The FTP server is integrated with TargetFFSTM, Blunk Microsystems' embedded flash file system. 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 performed within the stack. Matching of IP fragment lists, ARP address records, and TCP sockets is done with a fast hashing function. The 16-bit checksum for TCP and UDP is calculated in assembly language (for Power Architecture, ColdFire, and 68K). Access to the assembly language "add with carry" instruction enables the calculation to be done with fast 32-bit accesses.
- Clearly documented network driver interface supports concurrent use of multiple network interfaces. Ethernet and PPP drivers for the MCF5485/75, MCF5282, MCF5272, MC68360, MPC860, LAN91C111, DP83815, i82559, and other controllers are available separately. 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.
- Includes mDNS and DNS-SD client and server for a complete Bonjour solution. Includes integration into DNS cache for seamless .local lookups. Some TargetTCP network protocol clients such as LPR (Line Printer) will automatically use DNS-SD (if compiled) to search for local printers on startup.
- GATEWAY / ROUTER. Leverage TargetTCP's NAT, DHCP server and gateway functionality to add router support to your multi-interface device. Combine this with a secure management method (SNMP and/or TLS) for an enterprise class solution.
- Compact and configurable. Applications typically require approximately 30 KB of code from the TargetTCP library and can be configured to use as little as 32 KB of RAM data.
- Shipped with eight sample applications: an RFC868 time client, a chargen, discard, a echo client, a chargen, discard, and echo server and an HTML client that cycles through a list of URLs, downloading each site's home page. Also included is an IGMPv3 multicasting example with various options, a network benchmark application that calculates throughput and CPU utilizations as well as mDNS/DNS-SD client and server applications.
- Developed using TargetOSTM, Blunk Microsystems' real-time operating system, the source code is 100% ANSI C and is easily ported to both other real-time kernels and to polling environments that do not use a kernel. A pSOS port is provided for the Trimedia processor.
- Integrated with TargetTools™, the IDE for embedded development from Blunk Microsystems with an integrated compiler and kernel-aware debugger, visual code editor, search and replace tool, BDM for board bring-up, and fast Ethernet download.
- Royalty-free. Includes source code, User's Manual, sample applications, and one year of technical support.
Porting document (PDF)
This document provides details on how you can port TargetTCP into your OS environment.
|