RE: LZ: Teleconferece
[Prev][Next][Index][Thread]
RE: LZ: Teleconferece
-
Subject: RE: LZ: Teleconferece
-
From: Micah/Richard Brodsky <Micahbro@msn.com>
-
Date: Sun, 14 Jul 96 04:42:51 UT
-
In-Reply-To: <>
Why use a server? Why not just set up a calc as an initiator, and one as a
client just to start it? The system could use packets, each with a unique
'starter byte' for each type and then the netID (or proposed one) next. The
initiator and client would run the ZShell program. Each calc would choose a
netname and netID. The initiator's user would choose 0 for the netID and the
client would then automatically choose 1 (after the next step). The initiator
would open a 1 user 0 server network. The client would then wait for an 'end
of cycle packet' to be transmitted, and in the short delay that followed (like
maybe 1/10 second), it would send a login packet, containing it's name. The
login packet would be as minimal as possible to reduce conflicts. The
initiator would send a login acknowledgment packet (that way the initiator
would be able to blacklist users, but not have any extra work to do that would
make it miss things posted) containing the new client's netID and immediately
terminate the delay. It would then send its 'data packet,' containing any data
it wanted or was requested to send, any requests, any rerequests (if something
was lost due to interference), and a 'go signal' at the end. The calculator
with the next highest netID would respond with a 'go acknowledgment packet'
and then it's 'data packet.' In the event of interference, the 'go
acknowledgment packet' would not be sent, and the previous calculator would
resend its 'data packet.' This process would repeat.
Additional notes:
1) A calculator would logoff by sending a special 'subpacket' in its 'data
packet.'
2) If a login failed (interference or blacklisting), the client would either
wait for the cycle to complete again and retry, or it would forget about it.
3) 'Error notification packets' could also be implemented in the event of a
problem in the place of a data or acknowledgment packet, optionally followed
by the displaced packet.
4) In the event of total confusion during the login delay (from multiple users
logging in at once), the initiator would wait for maybe 1 half of a second and
send an 'error notification packet,' followed by its 'data packet.'
5) Each packet could optionally be followed by a checksum to prevent the
consequences of undetected interference.
6) Each submission of data in the 'data packet' would have an/some address
netID(s) or be global and the receivers would store it then, saving 'error
notification packets' and rerequests for their turn to send a 'data packet.'
7) Each calculator would keep its own list of netIDs and netnames. All
calculators would pay attention to the 'login acknowledgment packet' and take
down the new user's info.
8) This system could be implemented with interrupts, necessitating a short
period of resending the 'starter byte' (Only by the clients with interrupt
using calcs next. This could conceivably be too hard to implement, so when
interrupts are allowed, all clients would have to do this) with intervening
special bytes that would be illegal as a 'starter byte' (such as all 1s). The
system could also be implemented with a client program system, or both. Use of
interrupts would slow the whole network, though.
9) If a client would not respond to its 'go signal,' a specified number of
times, the frustrated sender would automatically send a 'kickoff signal' and
every calculator would remove the dead client from their lists. The same thing
would occur by the hands of the second of two of the clients if the first
would not finish its data packet in a specified amount of idle time.
Cool advantages:
1) Interference would not be a problem.
2) NO SYNCHRONIZING NECESSARY!!!
3) No calculator would have to be constantly managing the servers duties and
not be workable as a client. The initiator would be like everyone else, other
than it would have to acknowledge logins and store the 'blacklist,' but
nothing would happen on the network while it was doing it's tiny chore.
4) You could have a popup menu available at all times, and it could be used to
request files, open a chat session, send files, send email, receive email, or
to return to network use as a full time thing.
Minor disadvantages:
1) It could end up to be slightly slower than the alternative.
2) If a person had the patience, they could rewrite the client program and be
able to do annoying things to the other clients, but blacklisting could solve
that (mostly). However, one unavoidable thing with any radio network is that
someone could just broadcast a heck of a lot of interference and ruin the net.
I think that I've thought this out pretty completely. Please excuse any
punctuation or spelling errors. If you would like to comment to me, send mail
directly to my account. I WILL BE AWAY FOR 3 WEEKS, starting tomorrow, back
for a weekend, and away again.
Have fun with this protocol! (Call it Micah's Protocol, if you like. PLEASE;)
<HUGE TRUE BOAST>
By the way, I program QuickBASIC, Visual Basic, QuickC, TASM Z80 for ZShell,
TI-BASIC, I used to know Applesoft Basic and Apple Pascal, and I'm learning
Visual C++ and Jet 3.0 DAO for Visual Basic.
</HUGE TRUE BOAST>
--MZB (micahbro@msn.com)
----------
From: owner-list-zshell@defiant.rbk.sollentuna.se on behalf of Clegg
Sent: Saturday, July 13, 1996 9:29 PM
To: list-zshell@defiant.rbk.sollentuna.se
Subject: Re: LZ: Teleconferece
Eric P. Anderson wrote:
>
> I think that we need to create some sort of "y adapter" for the link port so
> that we can plug multiple things in at once (i.e. the rtlink and the
> speaker). Maybe even a daisy chain type of thing, but I don't know if that
> would be possible. I think that the IRC thing would be much more difficult
> to implement.
>
> Any futher input, anyone?
>
> ************************************************************
> * Eric P. Anderson "Who is General *
> * crusader@mo.net Failure and why *
> * http://walden.mo.net/~crusader/ is he reading *
> * Finger for PGP public key. drive C?" *
> * Fprint:3E 3C 52 A2 C1 3F 61 B5 71 7F 10 F1 09 B4 D4 D7 *
> * This is a public notice that all unsolicited and/or *
> * commercial emailers will be charged an archival and *
> * downloading fee of U.S. $500. Emailing me signifies *
> * agreement to these terms. *
> * "The price of freedom is eternal vigilance." -Jefferson *
> ************************************************************
I have been thining of it...
and I dont know how to program in ASM, but I do in Basic. SO I have some
understanding
of programing, adn from what I knwo it wouldent be that hard. that is to build
a program
to run the Teleconf. The sync'n would take soem work but wouldent be that
hard to
overcome. I also am a future Network Engineer so I know how a network runs.
and if you
could get the program to "Listen" to what is happening on the channel you
could sync the
data quite easly. adn then you could also have the "server calc" listen to
hear if ther
are any Additional calc joining. cause on the "workstation" calcs when you
initalize the
teleconf program they will need to wait and listen first to hear if there is
a "All
clear" signal sent out by the server (which it would ever couple times a sec
adn woudl
alow time for additional calcs to login.) so that teh workstation calcs know
there is no
data being exchanged. (this would prevent talking over and grabling data) for
this
system to work teh server would need to send all commands out. meaning: that
all the
workstation cals would now accept info from ANY calc but the server.(so teh
server would
have a data paket that says "this form teh server" and all the other calcs
would listen.
Each calc would have its own name. that will be transmited durring the login.
adn that
is how the server calc will control all the data. Since this si a VERY data
intensive
adn computational intensive program (server) teh person using the server calc
MUST be
accelerated. all the other calcs can run accelerated or not. all they will be
doing is
listening and recieving.
On teh workstation side:
You will haev a list on the screen that says whos all on the network, adn then
you could
send private messages to one adn another or groups. or just everyone. BUT the
person
with the server can see every message.
On the Server side:
Ther server calc will have the power to lock people out of the group or not
allow them
to hear some stuff.
Static, adn interfearence.:
This is a problem.. btu actually its not. as I sit here typing this I am
thinking...
The workstation calcs will nto be affected by interfearence in anyway but they
might
miss some info. The static would not screw with teh sync rate because all
the
workstations do is.. sit there and listen for a message from the server. if it
is not
properly transmited or garbled the WC (workstation clac) will just ignore it.
same with
the SC(server calc) and if you are tansmiting a message from a WC or the SC
the calc
will transmit a sorta init code to tell teh calc "I am ready to send data are
you
ready?" adn it will listen for a answer.. if there is static adn it is lost in
it.. well
it resends it latter(couple times a second).
it si a pretty passive RF network. these are my ideas, adn if I coupld
program in ASM
goo di sure as hell would and give it to everyone!
If you decide to take this on please E-mail me so I can give you soem more
details. adn
there will need to be 2 versions of the program 1 server and 1 workstation. or
you could
get REAL nifty and have a prompt when you start the program if you want it to
be the
server or a WS. (intigrate both programs into 1)
Well Please tell me what you think.
----/\=Clegg=/\----
Clegg@newrock.com
"Everything under the sun is in tune,
But the sun is eclipsed by the moon"
--Pink Floyd, DSOTM
'96