General remarks
STinG's startup
The concept of STinG
The following diagram shows the conceptual design of STinG. The lower (circularly arranged) part shows the transport
section which is responsible for packets that go through the computer (come in via one port and leave via another). The
upper part contains the high level parts of the protocol stack, which is responsible for communicating and passing data
to software on the machine STinG is running on.
In the lower part you see an outer annulus which contains the names of the ports. This means the low level drivers for
the port hardware, which in the case of serial and parallel port are part of the operating system, or added by HSMODEM.
Inside this you see another annulus cut into some pieces. These pieces resemble the STinG port drivers, which are
loaded by STinG. Currently there is SERIAL.STX for serial ports, later CENTR.STX for the Centronics port, ETHER.STX for
Ethernet, LCLTLK.STX for LocalTalk and MIDI.STX for a Midi based network may be added. The SERIAL.STX also contains
protocol code for handling the SLIP, CSLIP or PPP protocols, as these make sense only for serial ports. The diagram
suggests a limit of seven external ports, however in STinG's reality this number is only limited by hardware.
Inside all this you see a star shaped structure which is the STinG kernel. This part communicates with all *.STX,
fetching IP datagrams from them and routing them to another *.STX, to be send out. In the middle is the router,
which basically determines for any given IP address the port the datagram is to be sent to.
The high level protocols, and clients on the same machine basically are just another port for the STinG kernel. This is
even internally arranged this way. At the end of this special port you see a big block standing for all the other parts
of an IP implementation : Reassembly, datagram header generation and evaluation, and the protocol multiplexer.
On top of this, but still interwoven with the IP layer, is ICMP, the internet control facility. For each of them a
programming interface is provided. Some miscellaneous services are provided by the kernel too, like memory
handling (KRmalloc), semaphores (set_flag, clear_flag), and some functions for port control. The broken line encircles
all parts with are located inside the STinG kernel.
On top of the IP part you will find the high level protocols TCP, UDP, and the DNS resolve facility as separate modules
to be loaded after the kernel has initialized itself. The filenames of these modules are TCP.STX, UDP.STX and
RESOLVE.STX. Other protocols can be added by just providing appropriate *.STX files.
Loading STinG
The way STinG loads and starts up works like the following :
From the AUTO folder STING.PRG (the kernel) is loaded and started. Then the kernel in turn loads STING.INF (also in the
AUTO folder), which points to a path everything else can be located. From here DEFAULT.CFG is loaded. Then the kernel
looks for all *.STX files, and loads and executes them in the sequence they are found (which is the physical sequence
inside the folder, just like AUTO folder execution, but this is of no significance). Each of the *.STX modules links
itself into internal kernel structures, and provides it's services this way. Finally ROUTE.TAB is loaded, which is a
human readable text file to be provided by the system administrator, that tells the router where to send a datagram
bound for a certain IP address. Startup is finished now, and STinG is operating. However, all ports are inactive. The
ports can be configured then via the AUTO folder program ConfSTinG (that does so via a provided *.INF file) or
(optionally interactively) via CPX. All permanent connections are working now, and thus you can use STinG for
Intranetworking. If you want to dial up a SLIP or PPP connection to some internet service provider you simply start the
dialer utility that does all the main work, and also configures the corresponding port.
STinG's new concept (Top of Page)
Opening Page