||The topic of this article may not meet Wikipedia's notability guidelines for products and services. (October 2010)|
|Initial release||November 2014|
NicheStack is a closed source IPv4 network layer and application implementation for operating systems, written in ANSI "C" and is one of three available from InterNiche Technologies, Inc., designed for use in embedded systems. Its Transport Layer implementation has historical roots in BSD and the IP layer was derived from a Carnegie Mellon University (CMU) implementation.
InterNiche's FTP server, Telnet server, DNS client, DHCP client, and IGMP (v1 and v2) components are included in the base software package. Supporting a wide variety of physical interfaces, NicheStack's IP layer can be configured as a standard client machine, an IP router, or a multi-homed server. NicheStack IPv4 provides a protocol platform for InterNiche's optional Point-to-Point Protocol (PPP), Web server, DHCP server, ESMTP protocols and SNMP. Also available to run on NicheStack are a number of security modules, including SSH, IPsec/IKE and two different implementations of SSL.
NicheStack is marketed as a small-footprint, RFC compliant embedded protocol stack, portable to commercial or proprietary non-MMU Operating Systems.
NicheStack's TCP layer is based on "mbufs" and BSD 4.4 Sockets. All socket operations can be made in a non-blocking mode, including connect(). The "mbuf" data, including headers, is organized into buffer chains, allowing more efficient memory usage than the fixed-sized buffers that characterized earlier versions of this product. Tunable parameters such as MSS (Maximum Segment Size) and the TCP window can be left to runtime logic or be customized by the application.
The IP layer includes
- Support for network address translation
- Fragmentation and re-assembly
- IP Routing: Routes set via ICMP, SNMP, IGP, etc.
- Loop back test driver
- Multi Homed IP support
- Support for Auto-IP Assignment
NicheStack also includes NicheTool, a menu driven utility that assists the process of optimizing NicheStack for the memory usage and performance characteristics of the application. It is customizable by the product development engineers.