ELKS Networking proposal

        _    _
From: Dragnuta Valentin,
            '
[EMAIL PROTECTED]  /*at my university */
[EMAIL PROTECTED]     /*at my highschool */



        Hello,guys !

    As I knew about ELKS acute need for networking /* :-)  */, here is
an idea I have to deal with the problem quite in a simple way.
First of all , if you find this idea not good or even _bad_, please do not
start a flame from that,I'm just a guy that tries to help.Also,I would be
glad to get your answer as long as it is not something like "Such a stupid thing,
 -- how could you say such a thing ?."
    And I please forget my bad english /*  :-(  */
    Thees being said, let us start :


1.   Introductuction.

    At this moment i have to get a use for some old 8086 based computer
    that got into my hands.Being such an old relict it would _realy_
    hard for me to find somethig useful with it.In fact somebody uses it
    for writing texts with it (in EDIT -remember msdos  edit ?- )
    Such a thing could be useful if it had some networking support so i could
    wire  it to the local network to use it as a terminal at our Linux server
    or to do even more than that.
    More exactly I would like it to transform it into a front end to a
    database server (Postgres) and to use it for managing the stuff in a
    deposit.For such a simple use, it is enough,as it has no graphics to
    display nor other bells and whistles.Just lists of products and stuff
    The main impediment in doing that is that it's quite (_very_) hard to
    make a _real_ network terminal (more than telnet or serial terminal) with 
    a 640k ram 8086,BECAUSE
        -It-s a laptop so only a parallel net adaptor could be used.
        -Even a for a desktop it would be hard to find a net card to _work_ in
        it.
        -If somehow we could deal with theese, the BIGgest problem is the 
        memory : a IP+TCP+UDP implementation would be _very_ expensive in memory,
        and this does not include my frontend<->backend postgres protocol, and
        does not include the frontend application.At most we could use some
        IPX+[SPX|NCP] to link it to a novell (sorry , to linux mars sever...)

    Details
    ... So this idea came up , and i intend to use it someway.
    It has the disadvantage of _low_ speed (could be improved,as we will see)
    and it's not so elegant, but it could work,and it would be really simple
    to implement it.It will not eventualy support serving but would work
    fine as a client.
    
    What is this all about:
        We're clear that a full TCP implementation would be expensive.
        Because IP is quite stuffy (quite many options to care about), and
        TCP is even more complex for a 8086 toy.TCP is good for long distance
        conections over the internet,but our elks will not need such long
        distance connections ever.
        So why do not we set up our OWN  PROTOCOL to use it to connect to our
        server ? Thiss protocol (let's name it KISS TCP) would do for
        local network connections.
        The simplest way to do that is having such a simple multichannel protocol
        running over a serial line to a bigger machine (a real Linux) with a
        multiport board who could do server tasks for us or routing for us ?
        Basicaly we had to set up a lowlevel serial protocol (not based on IP,
        no fragmentation,no options), a higher protocol to mantain several
        streamed connections simultaneous, and a kiss "socket library" for elks
        so that usual soft could be easy to port, with some modifications in
        the network part.
    MORE THAN THAT :
        We could make a rule that tryng to connect at the server over
        KISS TCP at one fixed port would make the real server make us a
        REAL TCP connection to the world (Kind of Masquerading+protocol translation 
TCP to 
        KISS TCP)Using this we could even port a much more comprehensive
        socket library on elks,as this only connects over the safe KISS TCP
        to the server that handles all the ugly parts for us. So making
        a real TCP connection using the emulated BSD socket library would mean
        just calling the native KISS TCP socket library by the emulated BSD socket
        library with some special parrametters...
        As this is made we even do not need another official protocol on the 
        server side : this is implemented in a minidaemon that watches one certain
        serial port on the server.(eventualy one minidaemon per port)
        
        Also it would be possible to make a KISS TCP over ipx or something 
        real new and simple to use on a real ether network ,but with much
        less memory usage than a full IP+TCP protocol stack implementations.
        
Here is a diagram of what I mean :
(use textmode or fixed size font and save the text in a regular file to
see it right )







+----------------------------------------------------+
|elks 1       +----------+-------------+-----------+ |
| <---------->|KISS TCP &|low level    |serial port| |
|        +----+native    |serial unsafe|or netcard | | serial line 1
|        | emu|sock lib. |protocol     |           | + <--------------\
| <----->|BSD |          |             |           | |                |
|        |sock|          |             |           | |                |
|        +----+----------+-------------+-----------+ |                |
+----------------------------------------------------+                |       THE REAL 
+LINUX SERVER
                                                                      |
                                                                      |
                                                                      |
                                                                      |
+----------------------------------------------------+                |       
++-----+---------------+
|elks 2       +----------+-------------+-----------+ |                |       
||MULTI|serial daemon 1|<----->native kiss tcp service
| <---------->|KISS TCP &|low level    |serial port| |                \-----> |PORT 
||---------------+
|        +----+native    |serial unsafe|or netcard | | serial line 2          |     
||---------------+   +-----------------------------+
|        | emu|sock lib. |protocol     |           | + <--------------------> |     
||serial daemnn 2|<->|TCP redirector (masquerading)|<-->Real tcp service,local
| <----->|BSD |          |             |           | |                        |     
||_______________+   +-----------------------------+    or over the internet
|        |sock|          |             |           | |               /------> |     
||_______________+
|        +----+----------+-------------+-----------+ |               |        
|+-----+serial daemon n+<-> inter elks packet switching (so that elks'es could 
+----------------------------------------------------+               |              
+|_______________+    'see' each other)
                                                                     |
      . . .                                                          |
                                                                     |
+----------------------------------------------------+               |
|elks n       +----------+-------------+-----------+ |               |
| <---------->|KISS TCP &|low level    |serial port| |               |
|        +----+native    |serial unsafe|or netcard | | serial line n |
|        | emu|sock lib. |protocol     |           | + <-------------/
| <----->|BSD |          |             |           | |
|        |sock|          |             |           | |
|        +----+----------+-------------+-----------+ |
+----------------------------------------------------+


Anyway, the main idea is to create a much simpler but safe protocol for local
low distance communication,and a protocol translator on the real linux side.
The real linux has of course a full TCP/IP stack, and could make long
distance connections for us,or just to link us to a pure tcp server 
running on the linux box itself.As the implementation is not very complicated
at all, it is posibble to implement it even on 8 bit computers (8080 or z80)
running CPM and transform them in simple clients for telnet or mail reading
(no more than that) or for a simple point-of-sale machine.


    The end:
    
    If you find this usable, feel free (please) mail me so we could
enter in some details.I really intend to make something like that for
that 8086 laptop ,i only do not know how long it will take to me ,as i
have a really hard program at school and some exams to sustain soon.
So if you find this could be useful for elks, let's discuss about the
lower level stuff, so that eventually both my msdos kiss tcp and elks
kiss tcp would be inter-operable.I would also contribute with that to the 
elks project, but i have just downloaded the source and i know nothing 
about it's internals and how it works, neither about how networking code
should be inserted into the kernel. 


    If you want to personally reply, please reply to both of the adresses
    shown at the top,as both servers will have to be unavailable for some
    days,but it's less probably that they will be down simultaneously.
    
    
                VAL,
                
                [EMAIL PROTECTED]
                [EMAIL PROTECTED]


        PS: Soon I will use another account at lgrim,
        [EMAIL PROTECTED]  instead of valy@...
        This is because valy sounds a little like a girlie's name... :-)
        So please reply to [EMAIL PROTECTED], as i will also unsubscribe
from valy@ and re-subscribe from vali@


Reply via email to