Home

  Optional Components

The following protocols can be supported by the KwikNet TCP/IP Stack with the addition of the specified optional KwikNet component.

DNS Domain Name System
DNS Client
PPP Point to Point Protocol
PPP Network Driver
FTP File Transfer Protocol
FTP Client and Server
TFTP Trivial File Transfer Protocol
TFTP Client and Server
TELNET Terminal Emulation Protocol
TELNET Client and Server
HTTP HyperText Transport Protocol
HTTP Web Server
SNMP Simple Network Management Protocol
SNMP Agent and MIB Compiler
SMTP Simple Mail Transfer Protocol
SMTP Client and Server

The following additional protocols, although not described in this booklet, are also available as optional KwikNet components.

IPv4/v6 Dual Mode Stack
IEEE 802.3 Ethernet Framing
AutoIP Automatic IP Address Assignment
IGMP Group Management
NAT Address Translator
DHCP Client for IPv4/v6 operation
POP3 Client
IPsec Security
IKE Key Management
SSL Secure Sockets API
FTP Client with SSL Security

  DNS Client

To use TCP/IP or just the IP protocol, your product must have the IP addresses of the foreign hosts with which it wishes to communicate. Hosts can be assigned domain names (such as "www.kadak.com") which map to one or more IP addresses through which the host can be reached. DNS servers maintain lists of these known domain names and their corresponding IP addresses. The KwikNet DNS client can interact with these DNS servers to dynamically acquire the IP address for a particular domain name. The DNS servers which the KwikNet DNS client uses can be dynamically added and removed as required by your application.


  PPP Network Driver

The KwikNet PPP Network Driver is an optional component which can be used on any network managed by KwikNet to provide a full range of PPP services. The PPP stack can use Van Jacobson (VJ) header compression. Concurrent PPP network operations on multiple networks is standard assuring proper multi-homed operation.

The KwikNet PPP Stack supports the following negotiation and authentication protocols:

LCP Link Control Protocol
IPCP (IP) Control Protocol
PAP Password Authentication Protocol
CHAP MD5 Challenge - Handshake Authentication Protocol
MS-CHAP Microsoft variant of CHAP
EAP Extensible Authentication Protocol


  FTP Client and Server

The KwikNet FTP option can add sophisticated file service capablities to your embedded application. The popular FTP protocol provides one of the most reliable methods of file transfer. It can be used to transfer large quantities of information to or from your product easily and efficiently with standard tools.

The KwikNet FTP option uses the TCP/IP sockets interface to provide client or server file service capabilities across a network. The FTP server can handle multiple FTP sessions concurrently. Both active and passive data connections are supported by the FTP client and server.

The KwikNet FTP Sample Program provided with this product uses the Treck RAM file system. Using this approach, you too can immediately start testing your application, even before you have incorporated an actual file system into your product.

The FTP client and server are ready for use with AMX and the AMX/FS File System. When used with AMX 86 on PC hardware, the KwikNet FTP option can provide access to the underlying MS-DOS file system. Of course, the KwikNet Universal File System Interface makes it very simple to attach your own file system for use by the FTP client or server.


  TFTP Client and Server

The Trivial File Transfer Protocol (TFTP) is a standard protocol that uses UDP datagrams for transferring files between networked machines. The KwikNet TFTP option implements this protocol using UDP services provided by the KwikNet TCP/IP Stack.

TFTP provides reliable file transfers, despite the fact that it operates using the unreliable User Datagram Protocol (UDP) layer. TFTP implements a simple peer-to-peer handshaking strategy to ensure that UDP datagrams are ordered correctly and are retransmitted if necessary.

A remote target may use TFTP to dynamically load operational parameters from a host computer. The host can use standard TFTP server or client software to provide the data. Using TFTP also eliminates the need to use the Transport Control Protocol (TCP) for reliable data transfer. By eliminating TCP and the TCP sockets interface from the application, code size and complexity can be reduced in the target.

TFTP is a peer-to-peer protocol. A file transfer is initiated between two peers in client-server fashion. One machine, the client, initiates a file transfer by sending a request to another machine, the server. The direction of the transfer (to or from the server) is indicated in the request. If the server grants the request, the designations of client and server become meaningless and the transfer proceeds with one peer assuming the role of sender and the other assuming the role of receiver. Once the file sender has completed the transfer, it severs the connection with the receiver. At any time during the transfer, either peer can abort the session and terminate the connection.

The KwikNet TFTP option provides a simple collection of services which make the transfer of data between peers independent of any particular file system. In fact, when using KwikNet TFTP, there is no need for an actual file system, a feature making KwikNet TFTP ideally suited for use in embedded applications which have no file system. Frequently such systems simply use the file name as an identifier which specifies the particular information (data) to be transferred.

The KwikNet TFTP option is best used with a real-time operating system (RTOS) such as KADAK's AMX Real-Time Multitasking Kernel. However, the KwikNet TFTP option can also be used in a single threaded environment without an RTOS. The KwikNet Porting Kit User's Guide describes the use of KwikNet with your choice of RTOS or OS.


  TELNET Client and Server

The KwikNet Telnet option can add simple terminal emulation capablities to your embedded application. The popular TELNET protocol allows two remote processes to communicate. A Telnet client (user) at a terminal with a virtual keyboard and display at one location is connected through a Telnet server at another location to an application running at the server's location.

The KwikNet Telnet option uses the TCP/IP sockets interface to provide client or server terminal services across a network. The Telnet server can handle multiple Telnet sessions concurrently.

When memory is a limiting factor, the Telnet client and server can each be trimmed to eliminate features deemed unnecessary by your application. For example, support for error message logging can be removed, thereby reducing the memory footprint.

The KwikNet Telnet option includes support for all Telnet features. Both text and binary modes of transmission are supported. In text mode, you have full control over the end of line strings (CR, LF or CR LF) to be used by your application. You also specify the characters to be used for Telnet's erase character and erase line editing purposes.

Both client and server applications can send Telnet commands. Each receives notification of commands received from the other. Full support for Telnet's option negotiation facility is provided. Either client or server can initiate the modification of any Telnet option. KwikNet handles the negotiation protocol; you handle the subnegotiation, if any, required by the particular Telnet option of interest.

Unlike most Telnet implementations, KwikNet also allows your application to detect urgent requests from a client or server. Of course, your application can also initiate such an urgent signal. An urgent Telnet command is sent within a TCP packet marked with the TCP urgent flag. When such an urgent Telnet command is received by the KwikNet client or server, it is immediately presented to your application for service.


  HTTP Web Server

With the addition of the KwikNet Web Server, your product immediately becomes accessible, worldwide, allowing it to be configured and monitored using any web browser. Since support for SSI and CGI is standard, you can easily incorporate custom routines to meet your specific requirements. Server-Side Includes (SSI) allow you to dynamically adapt your HTML pages to suit changing needs or to reflect current operating conditions. The CGI interface lets you add embedded services which are unique to your application. KwikNet's simple user password authorization features permit you to restrict access to your embedded web pages.

The KwikNet Web Server Sample Program provided with this product uses the Treck RAM file system. Using this approach, you too can immediately start testing your application, even before you have incorporated an actual file system into your product.

The Web Server is integrated seamlessly with the KwikNet Virtual File System (VFS) which is ideal for systems with limited memory or no disk subsystem. The VFS permits access to virtual HTML files embedded within your application. Files which cannot be located using VFS services can still be accessed using your application's file system, if one exists.

Virtual files can be predefined by you or dynamically constructed by your application to meet the KwikNet VFS specification. A much simpler solution is to use the KwikNet VFS Generator to create virtual files for inclusion with your application. The VFS Generator is a software generation utility which operates under MS-DOS or Windows. It translates and compresses standard HTML text files into a form suitable for compilation by your C compiler. Once compiled, the resulting virtual files, in object format, can be linked with your application ready for access by the KwikNet Virtual File System.

Of course, you can also use the KwikNet Web Server with the AMX/FS File System and its RAM drive and optional hard disk driver. When used with AMX 86 on PC hardware, the server can also access the underlying MS-DOS file system. Alternatively, the KwikNet Universal File System Interface makes it very simple to attach your own file system for use by the KwikNet Web Server.


  SNMP Agent and MIB Compiler

The Simple Network Management Protocol (SNMP) is a standard protocol used by network administrators to observe and control interconnected network devices. SNMP version 1 is formally defined by the IETF document RFC-1157. The optional KwikNet SNMP v1 Agent is compliant with this specification, implementing the SNMP features typically required for use by a managed device in an embedded application.

KwikNet also offers SNMP v2 and v3 Agents as optional components which support the SNMP v2 and v3 enhancements. The SNMP v2 Agent includes complete support for SNMP v1. Similarly, the SNMP v3 Agent also supports SNMP v1 and v2.

SNMP uses the connectionless UDP transport protocol. One machine, the network SNMP manager, sends a request to another machine, the SNMP agent. The agent handles the request and, if necessary, sends a separate response message to the manager. The SNMP agent can also send a special message called a trap, to an SNMP manager, informing the manager of a specific event or error condition which has occurred within the managed device.

The KwikNet SNMP Library provides the services needed to implement an SNMP agent capable of servicing requests from multiple SNMP managers.

Network devices are managed using a very simple strategy. An artificial element called a variable is assigned to each feature of a device which is subject to observation or control. Every such variable has an associated value. The SNMP manager monitors and controls the managed device by reading and writing these management variables.

The management variables are maintained within the managed device in a Management Information Base (MIB). The managed data supported by the KwikNet SNMP Agent conforms to the standards described in RFC-1155, RFC-1212 and RFC-1213. In particular, KwikNet provides built-in support for the MIB-II variables defined by RFC-1213 and used to monitor the TCP/IP stack and its related protocols.

For your network device to be managed using SNMP, you must provide a MIB which defines your device and its capabilities. The KwikNet MIB Compiler is used to create the MIB from your MIB Definition File, a text file which decribes your MIB variables and their organization. This process is fully described in the KwikNet SNMP Agent User's Guide which you are invited to download and peruse.

Included in the KwikNet SNMP Library are a collection of service procedures which your application can use to interact with the SNMP Agent. As you would expect, you can generate SNMP traps to inform your network administrators of events occurring within your device. You can even dynamically change the SNMP communities to which your managed device belongs.


  SMTP Client and Server

The KwikNet SMTP option can add simple mail transfer capablities to your embedded application. The SMTP protocol allows two remote processes to communicate with standard email messages.

With an SMTP client incorporated into your device, it can easily send a mail message to any SMTP server to which it has network access, informing the recipient of the status or needs of the device. Different types of messages can be directed to the appropriate destination mailbox address.

With an SMTP server built into your device, it can accept mail messages from any SMTP client which knows your device's IP address and its acceptable mailbox address(es). Since the message content is completely up to you, you can easily use the mail message to configure the device or adjust its operating characteristics.

The KwikNet SMTP option uses the TCP/IP sockets interface to provide the reliable transfer of client or server mail across a network. The SMTP server can handle multiple SMTP client sessions concurrently.

When memory is a limiting factor, the SMTP client and server can each be trimmed to eliminate features deemed unnecessary by your application. For example, support for error message and statistics logging can be removed, thereby reducing the memory footprint.


Copyright © 1996-2007

















































RTOS
TCP/IP
Graphics
File System
License
Showcase
Targets
Toolsets
Memory
Manuals
Demos
Support
What's New
Press
Newsletters
White Papers
Tools
Alliances
Dealers
Contractors
Site Map
Company
Support
Home
FAQ
Get Info