General remarks


STinG world 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.
internal picture


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