網路TCP/IP軟體
NUCLEUS NET
Nucleus NET is a feature-rich TCP/IP stack for
applications built on Nucleus real-time kernels. Every possible
affordance for the performance, efficiency and security requirements
of embedded systems is built into Nucleus NET.
The basic protocol stack is highly versatile, small in
size, quick in execution and designed for multi-tasking environments.
Extreme caution has been taken to avoid excessive operating system
overhead, so tasks spend little time in the stack itself. Nucleus NET
handles time-consuming processes like check summing and data copies
very efficiently, so even slower processors can maintain high data
rates. It supports many IP addresses and many MAC layer drivers, but
is stingy on memory usage. It contains routing facilities and supports
IP multicasting, IGMP and DHCP services. The result is a fast
networking stack that can be scaled and configured to meet the needs
of practically any embedded system, from the smallest connected device
to network equipment like routers, switches and bridges.
Nucleus NET is delivered as C source code and
implemented as a function library, so only the features you need are
compiled into your system. The sources are well structured and easy to
understand, and of course, complete tutorial and reference
documentation is included. Going even further to help you get started
on application development, demonstration applications are provided
that illustrate how to create basic network clients and servers.
The protocols included with Nucleus NET are:
- TCP
- UDP
- IPv4
- ICMP
- IGMPv3
- ARP
- RARP
- BOOTP Client
- DNS Resolver
- DHCP Client
- RIP/RIP II
- TFTP Client

In addition to the standard TCP/IP package,
Nucleus NET is the foundation for Nucleus network software that
supports protocols and applications like Telnet, FTP, SNMP and e-mail.
It also underlies Web-related applications like Nucleus WebServ and
Nucleus SSL.
Some of Nucleus NET’s best features are
described below.
Highly Portable
Nucleus NET is the most portable network stack
available today. Porting the networking stack to any
particular hardware platform is very easy. No
changes are required to the Nucleus NET source code, only a recompile
with the required toolset is needed to make it work on a particular
CPU architecture.
Standards Compliant
Providing a standards-compliant protocol stack
can be a difficult task, especially one with as many features as
Nucleus NET. Even more difficult is proving that the implementation
is, in fact, standards compliant. To facilitate this, the Automated
Network Validation Library (ANVL) from Ixia is applied to every
revision of Nucleus NET, along with tests created by our in house
experts. The testing is performed on a number of different hardware
architectures such as ARM, Freescale, Renesas, x86 and with a number
of different toolsets to ensure that not only is Nucleus NET standards
compliant, but it is also stable and error free across any
hardware/toolset combination.
Fully Configurable
Care has been taken to isolate configuration
options and to modularize many features of the networking stack. If a
protocol is not used by the application, it can be removed from the
stack in order to lower the memory requirements. Timeout values, cache
sizes, retry limits and many other options can be tuned for optimal
performance in a particular network environment.
Simple Driver Interface
Due to the large number of potential platforms
for Nucleus NET and the complexities of combining CPU and network
controller options, the interface between Nucleus NET and the driver
is as straightforward and simple as possible. A comprehensive template
can be provided with Nucleus NET to minimize the effort required to
port a new networking device to Nucleus NET.
Sockets API
The Nucleus NET interface is modeled after the
BSD socket implementation. The interface is easy to use, implements
the standard networking features of sockets and is very efficient.
Zero Copy API
The BSD style socket interface requires at least
one copy of data for each packet that is sent or received. A data copy
is an expensive operation and can negatively affect network
throughput. For applications that require greater data throughput, the
zero copy interface can be used instead of the normal BSD send and
receive functions to avoid any copy operations on packet data below
the application layer.
Enhanced TCP Support
Nucleus NET supports the following enhancements
to TCP:
- Slow Start
- Congestion Avoidance
- Fast Retransmit
- Fast Recovery
- Keep-Alive
- Path MTU Discovery
TCP Security
In response to the vulnerabilities found in TCP
by CERT Advisory TA04-111A, Nucleus NET supports draft 0 of the
“Transmission Control Protocol Security Considerations” Internet Draft
released on April 19, 2004 and will be updated as the draft is
revised.
IP Multicasting
Nucleus NET supports multicast packet
transmission and reception. An interface is provided that allows the
application to join and leave multicast groups. Internet Group
Management Protocol version 3 (IGMPv3) is used to notify routers of
the request for multicast packets.
IPv6 Add-On
| The next generation of the
Internet Protocol, IPv6, is being deployed around the world.
Vendors of network-enabled devices are making the transition to
this replacement Internet protocol. Nucleus NET has been updated
to support IPv6, available as an add-on package, to ensure its
place in the development of these devices and support the vendors
that are making this change. Nucleus IPv6 has been certified as
“IPv6 Ready” by the IPv6 Forum, demonstrating its standards
compliant and interoperable implementation. |
 |
Efficient Packet Buffering
Nucleus NET stores packets in a chain of memory
buffers to minimize wasted memory space per packet. This buffering
scheme also helps to lower the total amount of memory required to
perform network communication.
Multiple Physical Interfaces
Nucleus NET supports multiple network interfaces
at the same time. This means that Nucleus NET can be used in products
like routers and switches, which by definition have more than one
physical network interface.
Hardware Offloading
Many new Ethernet interfaces provide hardware
offloading of costly operations formerly performed in software.
Nucleus NET is capable of using checksum offloading for sending and
receiving of the TCP, UDP and IP layer headers.
Ping Application
Nucleus NET includes a simple ping application
that allows the network device to send an ICMP Echo Request and wait
for a response. Ping has many uses such as basic network diagnostics.
It is a simple tool yet very handy to application developers.
VLAN Support
Virtual LANs are used to create a simulated LAN
of individual end nodes attached to real LANs. The overall intention
is to reduce unwanted message traffic between members of the VLAN
group, thus aiding in increasing overall network performance.
Sidebar: Nucleus NET Protocols and RFCs
Nucleus NET supports the following Internet
Engineering Task Force (IETF) recommendations:
RFC 793: Transmission
Control Protocol (TCP)
RFC 791: Internet Protocol (IP)
RFC 768: User Datagram Protocol (UDP)
RFC 792: Internet Control Message Protocol (ICMP)
RFC 894: Transmission of IP Datagrams over Ethernet
Networks
RFC 1034: Domain Names – Concepts and Facilities
(DNS)
RFC 1035: Domain Names – Implementation and
Specification (DNS)
RFC 951: Bootstrap Protocol (BOOTP)
RFC 826: An Ethernet Address Resolution Protocols
(ARP)
RFC 903: Reverse Address Resolution Protocol (RARP)
RFC 2131: Dynamic Host Configuration Protocol (DHCP)
RFC 2132: DHCP Options and BOOTP Vendor Extensions
RFC 1112: Host Extensions for IP Multicasting (IGMPv1
level 2)
RFC 1191: Path MTU Discovery
RFC 1350: Trivial File Transfer Protocol Rev. 2 (TFTP
client implementation only)
RFC 2347: TFTP Option Extension
RFC 2348: TFTP Blocksize Option
RFC 2349: TFTP Timeout Interval and Transfer Size
Options
RFC 2453: Routing Information Protocol Version 2
(RIPv2)
RFC 2474: Definition of the Differentiated Services
Field in the IPv4 and IPv6 Headers
RFC 2988: Computing TCP’s Retransmission Timer
RFC 2581: TCP Congestion Control
RFC 2923: TCP Problems with Path MTU Discovery
(except 2.2)
RFC 3376: Internet Group Management Protocol, Version
3 (host support only)
draft-ietf-tcpm-tcpsecure-00.txt: Transmission
Control Protocol security considerations
 |