On 9/27/07, Jose A. Amador <[EMAIL PROTECTED]> wrote:
> In my personal experience, JNOS first, and Linux in second place, have

You probably mean "Linux kernel-mode" AX.25, since JNOS runs fine on Linux =)

> been a fairly good match to the radio channel characteristics for e-mail
> and web browsing over AX.25 packet radio.
>
(snip)

> But something is clear to me: it is IMPOSSIBLE to pass TCP traffic
> coming from a LAN, keeping LAN access parameters, timers, segment and
> window sizes without grinding the radio link to HALT with endless
> retries and repeats. TCP windows sizes up to 32767 may be acceptable on
> a LAN, but not on a 2 meters voice radio or a 3 kHZ HF radio.

Absolutely true! Two or three possibilities: Do what is sometimes done
for "internet satellite" terminals and "spoof" the TCP state machine
by locally generating ACKs, etc then committing to transfer the frames
yourself however you see fit. This works fine for some things,
terribly for other things. This is great for conditions where the TCP
client and server will break if their assumptions are tested
(Remember, 99.5% of modern internet apps *assume* ubiquitous high
bandwidth, low delay, low loss connectivity, and the timings that go
with it)

Alternatively, you can create "protocol gateways" that do non-TCP over
the air, with the other end acting like a "remote-controlled" TCP
client. The HMTP smtp-variant can be thought of as one take on this,
and it's not too hard to implement a similar thing for straight POP or
HTTP. The result will work better (since neither the local-to
radiobridge TCP connection nor the remote-radiobridge-to-internet TCP
connection needs to have its timing fiddled with), but there are a LOT
of non-trivial edge conditions to deal with if you want the thing to
work with the internet "in the wild". Sadly, not reads internet RFCs
every night before bed... =)

(snip)
> packet sizes. Even on 2 meters 1200 baud links, it creates havoc.

Heh, you want a feel for exactly how bad the problem is? Try using a
GSM/GPRS (others might do this too, but GSM/GPRS guarantees this
ability) cellphone to make a 9600 baud "dial up" connection to an ISP
modem (or whatever you have handy). Note, this is *not* whatever "high
speed" connection your provider offers. This is 9600 baud, fairly long
latency with occasional latency spikes due to scrambled-and-resent
data frames. A lot of modern software does *not* function over this
vastly better connection. I've actually seen a client (a chat client,
not that it matters) successfully connect, then queue up so much XML
status information that the connection *never* succeeded at passing
any actual information.

(snip)

> But it is clear to me that you CANNOT expect that a bandwidth bottleneck
> like a radio link, particularly a HF radio, to perform as a 10 or 100
> Mb/s (say) wired LAN. Otherwise, mating a LAN with a radio link without
> the appropiate traffic downsizing is doomed to failure.

A: You need applications that are aware of their link resource, or
else are OK with batching traffic and offloading actual delivery to
some other tool.

B: even 802.11b/g has to significantly adjust the timings "under the
hood" in any enterprise campus location. Much of the inefficiency a
large wifi location sees is due to the fact that the actual layer 3
protocol (TCP in this case) timings aren't dynamically adjustable, so
layer 2 has to try to provide what layer 3 has been tuned to expect.

C: Amateur radio networks aren't best modeled by the modern TCP view
of the internet anyway. They're a much better approximation to the old
asynchronous-bundle-delivery UUCP days (although we have learned a few
things since those days; no need to be "mistake-compatible" with UUCP
=) Most useful things can be turned into bundles that can be
transferred to the peer whenever the peer can be reached. Unlike UUCP,
however, there must be at least some ability for ad-hoc
pathing-peering discovery, since HF is much different than a scheduled
telco-hardline dialup link.

(snip)


> There is no problem with RFC821 or RFC822, it is just a matter of what
> kind of channel access parameters are used. If they are matched to the
> channel properties, it may be OK, but otherwise, it will be entirely flawed.

Yes, in general, rather than trying to cram a legal ham HF/VHF link
under the existing internet layer 2 protocols, which at best results
in *terrible* efficiency, average throughput (whatever the peak may
be), etc, it's usually better to implement application protocols that
are a better fit to the channel constraints. Yes, you *can* adapt IP
protocols enough so that they'll work; once you've done that, almost
all applications written with the internet in mind will break anyway.
Just for fun, go look up the timings embedded in the HTTP/1.1 spec,
and imagine trying to meet the timeouts over a HF channel. Now note
that a large subset of the internet is unreachable from a HTTP/1.0
client... specifically *every* host that uses "name-based virtual
hosting", which is almost everything. Just one example. Expect to trip
over hundreds more.



-- 

Regards, Robert Thompson

Reply via email to