Re: [colorforth] bulk transfer protocol
- Subject: Re: [colorforth] bulk transfer protocol
- From: "Robert Patten" <pattenre@xxxxxxxxxxx>
- Date: Sat, 1 May 2004 21:10:14 -0700
----- Original Message -----
From: "Mark Slicker" <maslicke@xxxxxxxxxxx>
To: <ColorForth@xxxxxxxxxxxxxxxxxx>
Sent: Saturday, May 01, 2004 4:38 PM
Subject: [colorforth] bulk transfer protocol
> This is an idea I had as an alternative to TCP. I would like TCP for
> compatibility but see no reason we should be restricted to it. I
> think this idea is an extension of Chuck's block get/put.
>
> Associate with each internet host a continuously addressable set of
data
> blocks.
>
> A request is an offset followed by a sequence of bits representing
> requests. Bit i corresponds to block number offset + i. If the payload
> size is 512 bytes, then one packet can request up to 4096 blocks (512
> bytes each) of data (2MB).
>
> A response is a block number followed by the payload.
>
> There should be an additional mechanism to cancel a grouped request.
>
> The difference from TCP is that this would be a conectionless
protocol.
> Data has a sequence number however this an absolute sequence number.
> Data can be requested and sent in any order. Retransmision involves an
> additional request. So long as data is being transfered at an expected
> rate there should not be a need to request retransmission of blocks
> immediately.
>
> I have no idea on flow/congestion control yet except for the data rate
> idea presented earlier.
>
> Assigning meaning to the block data may be the job of a seperate
protocol,
> perhaps similar to the way DNS will map a domain name to a host
address.
>
> Mark
Mark , This is from my notes. I have not made time to impliment.
A "device" may take a IP address and port number to set up.
All block I/O is then from or to that device and local memory
on this device.
These words take a block number. A device can be anything
that can accept or send a block.
"get" block from that device.
"put" block to that device.( actually a request for that device to
get the block from this device. Put is repeated until block
is sent in response to the get request from device.
This allows the device to allocate block
and to request block until received.)
"load" block on this device. ( append to program: binary objects
from this block according to the directive tags)
"+load" load relative block on this device.
"edit" block on this device.
"ana" block on device.
"run" block by loading block on that device. ( actually a request
for device to load local block)
"anas" words following "anas" is current definition of ana.
Works like "show"
"annex" ( blocks- )
Form: <red> groupName <yellow>6 annex ( exiting block to next group)
may be placed at beginning of first or second block of group.
may drop blocks.
Conditionally append this even block as a literal, and a call to
"ana"
to current program.
may "get" remaining blocks of group from device to local memory.
Possibly by putting code to get this block from device in each local
block.
When this block is loaded the get is executed when block arrives
restart load on block. If the editor displays block then user can
load block, retrieving block from device.
may delete from local memory this group of blocks
( From this even block for blocks )
then move load address to start of block, blocks away and
may display this load block for approval
( annex blocks to local memory or delete blocks from local
memory)
resume loading.
When a null cell is loaded, return to calling word.
calling word may get next two blocks from device then display for
load approval.
( executing annex )
"save" Save local blocks to the selected device.
When this device is powered on these blocks are placed in memory and "
18 load " executed allowing the environment to be restored to the save
environment.
Robert
---------------------------------------------------------------------
To unsubscribe, e-mail: colorforth-unsubscribe@xxxxxxxxxxxxxxxxxx
For additional commands, e-mail: colorforth-help@xxxxxxxxxxxxxxxxxx
Main web page - http://www.colorforth.com