 |
Optional Components
|
The following protocols can be supported by the KwikNet TCP/IP Stack
with the addition of the specified optional KwikNet component.
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 |
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.
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 |
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.
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.
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.
 |
 |
 |
|
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.
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.
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.
|