home .. forth .. colorforth mail list archive ..

Re: [colorforth] TCP State Engine


maslicke@xxxxxxxxxxx wrote:

Thanks for reiterating the obvious. A Web Browser is an example use of TCP, unless you want to create a Forth web which I don't think can compete content wise. A local Linux based proxy was once mentioned, this is just shuffling the complexity elsewhere, not solving the actual problem.

Sorry if it was too obvious.

The point is, if you want a web browser you have to be compatible with as much of the existing complexity as you want to browse. That isn't going to be any 3-block solution. You might get TCP in 3 blocks, maybe, but you aren't going to get much of a web browser that way.

If the messages you want to send and receive over TCP are your own kind, then you can do it the way you want. It won't compete with web browsers but it might be perfect for refrigerators and stoves and such to communicate over the net. You might find a better way for a bunch of Motes to communicate than what they have already. There are lots of potential applications besides web browsers. And there's the question whether you need more than one UDP packet at a time. If you can put everything into one UDP packet then you don't need to implement all of TCP. You still want to confirm that packets get through, but you don't need much packet reordering etc. So implementing just the part of TCP that you need first might split the problem into easy pieces.

From: Jonah Thomas <j2thomas@xxxxxxxxxx> maslicke@xxxxxxxxxxx wrote:
From: Albert van der Horst <albert@xxxxxxxxxxxxxxxxxx>

All this sounds horrible. What could we simplify if we use only the network hardware to communicate between two Forth boxes?

I wouldn't give up yet. Chuck sugests on his page that TCP/IP could be done in 3 blocks. We have one block for IP,so maybe two blocks for TCP.

Complexity here is perhaps the price of admision for communicating with the world. There is no doubt things could be simpler.

The question becomes, who do you want to communicate with?

If it's only between Forth boxes over the net, then you need the minimum it takes to keep the foreign machines along the route from choking, plus whatever you want to do.

If you want to communicate with others then you need to be able to send them what you want to send, and you need to handle whatever garbage they throw back. In general the simpler you send things the less trouble they'll have with it. (But sometimes they'll demand arcane standards.) There's no telling what they'll send you, but you can reject whatever you aren't willing to deal with.



---------------------------------------------------------------------
To unsubscribe, e-mail: colorforth-unsubscribe@xxxxxxxxxxxxxxxxxx
For additional commands, e-mail: colorforth-help@xxxxxxxxxxxxxxxxxx
Main web page - http://www.colorforth.com