[ home | contact | products | services | partners | news ]
[ snmp | snmpv3 | java-snmp | mib-compiler | mibs | http/web | ipstack | tcp | download ]


DMH Software

UDP/IP Stack


Table of Content of this page

UDP/IP STACK

The UDP/IP source-package provides the basic software modules that are needed by an IP Node on the Internet. It gives a system an IP "identity". The UDP/IP stack serves as a basis for SNMP implementation over UDP. The product can be used for other purposes, such as BOOTP for system bootstrapping, Memory-Image down-load using Trivial File Transfer Protocol (TFTP), or other user applications. This product conforms to the relevant up-to-date RFCs (generally, all of the components conform to RFC 1122, and RFC 1123 ).

Back to Table of Content

DMH IP-stack main features:

IPstack optional components and additional features

Back to Table of Content

Product Description and Architecture

Background and Overview

It is no longer a statement of the future to say that the computer is the network. More and more, computer systems have the capability to become a node on a network and exchange data with other nodes on the network.

One of the most popular computer networks is the TCP/IP Internet. In order to be able to exchange data on the internet, a computer system must support a minimum set of services and protocol stack. In the internet environment, a node can take advantage of a large variety of services provided by other nodes, which we call servers.

One of today's focuses is Network Management, and in particular, the Simple Network Management Protocol (SNMP), which is used in the internet TCP/IP based networks. Many organizations require that any node on the network must be visible, and in some cases also be controlled by the Network Manager.

But Network Management capability is not the only reason for having a minimum TCP/IP stack implementation. Services such as file transfers, bootstrapping and updating software versions across the network are only a few examples of services that nodes on the internet can use.


Back to Table of Content

Purpose and Motivation

The UDP/IP source-package provides the basic software modules that are needed by an IP Node on the internet network. It gives a system an IP identity.

The software package is a relatively small, simple, portable software product that is easy to integrate as a sub-component in a larger system. Naturally, the product serves as a basis for SNMP implementation over UDP. The product can be used for other purposes, such as code down-loading using Trivial File Transfer Protocol (TFTP).

Back to Table of Content

Conformity

This product conforms to the relevant up-to-date RFCs. Generally, all of the components conform to RFC 1122 - Requirements for Internet hosts - communication layers, and RFC 1123 - Requirements for Internet hosts - application and support.

Back to Table of Content

Management Information Base (MIB)

Each component of this product supports MIB objects defined by MIB-II. Simple interface for the SNMP agent/manager to read/write the various MIB objects is implemented inside the package modules.

Basic Components (modules)

ARP
Address Resolution Protocol - the TCP/IP protocol used to dynamically bind a high level IP Address to a low-level physical hardware address. RFCs: 826, 925, 1027, 1042, 1103. According to RFC 1122, ARP keeps the last unresolved IP datagram and re-transmits it when the corresponding reply arrives. The canonical physical address representation is supported by ARP module. This feature is important for TOKEN-RING topology networks such as FDDI and Token-Ring. In addition, ARP module implements a set of private MIB objects that enables the Network Manager to monitor the ARP operation.

IP
Internet Protocol - The TCP/IP standard protocol that defines IP datagram as the unit of information passed across an internet and provides the basis for connectionless, best-effort delivery service. RFCs: 791, 950, 1071. The IP module supports sub networking and uses an `Address Mask' to determine how to route an IP datagram. The IP module supports point-to-point networking.

ICMP
Internet Control Message Protocol - Integral part of IP standard that handles errors and control messages. ICMP is used by gateways and hosts to send reports of problems about datagrams back to the original source that sent the datagram. RFCs: 792, 950. ICMP supports `ICMP Mask Reply' (see RFC 950). It will set the `Address Mask' (only upon the arrival of the first inbound Mask-Reply) to the received `Address Mask' (see RFC 1122). ICMP also includes an echo request/reply used to test whether a destination alive. It may be used for implementation the `PING' program.

UDP
User Datagram Protocol - The TCP/IP standard protocol that allows an application program on one machine to send a datagram to an application program on another machine. UDP uses the IP to deliver datagrams. UDP includes a protocol port number, allowing for multiplexing. RFCs 768, 1071.

IP-System
The IP-System module is a collection of all internal services needed by the various protocols. It is also responsible for the initialization and the IP-System data-base. IP-System supports multiple `interfaces' with a different IP Address per `interface'.

Back to Table of Content

Portability to Different Platform Architectures

This package supports both big-endian and little-endian machines. By setting a single compile-time flag, the CPU architecture is selected. The code was ported, compiled and exercised on both the INTEL-based and Motorola-based systems.

Interfaces and API

The hosting-system interfaces with the UDP/IP package through a well defined, relatively narrow interface. It interfaces with the following modules:

Back to Table of Content

Events Diagnostics and Verbose messages

This software package provides a high degree of diagnostic capability. It uses a function supplied by the hosting-system as a means to send events, diagnostic and verbose messages, which are ultimately controlled by the hosting-system. They can be turned on and off by setting the appropriate run-time flags.

Severity Levels

The events and messages are classified into four severity levels: Informational, Warnings, Errors and Fatal errors.

Back to Table of Content

Network Events

Network events are those which occur with regard to network activities. For example:

These types of events help the system administrator monitor what is going on in the network.

Verbose Messages

Verbose messages are helpful for debugging and network monitoring. Every module has a separate Verbose Flag that can be turned on or off. The Verbose messages can also be taken out of the code by setting a compilation flag.

Software Errors

Software errors are events that indicate some inconsistency in the way a function is called, or point out that the program has reached an invalid state. For example: the IP System initialization function is called with an incorrect combination of IP-Address and its associated Address-Mask. Such a call causes a fatal-software-error because IP cannot setup its database tables.

Back to Table of Content

Services supplied by the hosting-system

The hosting-system is the system that hosts the IP-stack. The IP-stack, being a passive component, requires the following services from the hosting-system system:

1. Data-Link-Level (Layer-2) Services


In the inbound direction, when the hosting-system Layer-2 encounters either ARP (type=0x806) or IP (type=0x800) packets, it will call process_arp() or process_ip() primitives supplied by the IPstack. In the outbound direction, IP sends IP datagrams by way of the primitive send_dll(). IP specifies to the Layer-2 the physical destination, Layer-2 data-length, and where the DATA resides. The Layer-2-USER-DATA is the IP datagram to be transmitted.

2. UDP Inbound and UDP sessions.


Udp offers a light weight connection manager. It maintains a udp-listen-table. A udp_open() inserts an entry to the table and associate the user-udp-handler with the udp port. The user handler is called when a udp datagram with the registered port is received. In most cases this service is sufficient and no additional management is required.

3. ARP Tick Timer


The hosting-system is responsible for calling arpTick() periodically (usually every minute). This function ages old entries in the ARP table (see RFC 1027). This approach is simpler than requiring timer services from the hosting-system.

4. ICMP Inbound Echo


Upon arrival of an ICMP-ECHO-REPLY, ICMP calls the function icmp_echo_rcv. This function allows the hosting-system to implement the Ping command. It is optional and may be replaced by the function supplied by the IP-stack.

5. Event Messages


The IP-stack uses send_event to send events. The hosting-system implementation handles IP-events according to its policy. It print the event TEXT, send it to an event server, store it in a file, etc. The events are ultimately controlled by the hosting-system.

6. Software Error Messages


Similar to EVENTS, the hosting-system supplies a handler for Software Error messages.


Back to Table of Content

ANSI "C" and Non-ANSI

The code is ANSI "C" compatible and contains function prototype definitions. Upon customer request, they can be taken out for use with compilers that do not support function prototypes. For compilers that do not support the declaration of parameters inside a function parentheses, those declarations can be modified.

Creating the Program Objects

The program object(s) are the result of compiling and linking the package source code. The objects may be a set of libraries or intermediate objects. They are linked together with the hosting-system objects to create the entire hosting-system program.

The entire source package is broken down into several sub-modules. Each sub-module has its own makefile that specifies the dependencies and the make targets to create the specific sub-module object. The Master-Makefile recursively invokes each sub-makefile to create the intermediate sub-objects. At the master level, all of the sub-objects are linked together to an intermediate IP-system-object (maybe a library) that is linked together with the system objects.

Finally, a set of makefile Default-Rules is used tailor specific development tools such as the compiler, linker, librarian, etc. It also defines the various command syntaxes.

Upon request the IP-system can be organized and created in a flat single directory. This approach, however, is not recommended.



Back to Table of Content

IPstack optional components and additional features:


Back to Table of Content
[ home | contact | products | services | partners | news ]
[ snmp | snmpv3 | java-snmp | mib-compiler | mibs | http/web | ipstack | tcp | download ]


Last edit: Apr 21 2008

Copyright © 1997-2008 DMH Software.