Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.arch.embedded > #25626

Re: UDP Terminal Protocol

From Morten Reistad <first@last.name.invalid>
Newsgroups comp.arch.embedded
Subject Re: UDP Terminal Protocol
Date 2016-12-24 16:10 +0100
Organization Me, Myself and I
Message-ID <aof2jd-m4b.ln1@sambook.reistad.name> (permalink)
References <7phv4cd0dickoubm7k7rud6or7vtnft8rb@4ax.com> <o2p3bs$7fc$1@reader1.panix.com> <qs535ctbk361kav29rjd236dat22mo199e@4ax.com>

Show all headers | View raw


In article <qs535ctbk361kav29rjd236dat22mo199e@4ax.com>,
Robert Wessel  <robertwessel2@yahoo.com> wrote:
>On Tue, 13 Dec 2016 15:16:12 +0000 (UTC), Grant Edwards
><invalid@invalid.invalid> wrote:
>
>>On 2016-12-13, Robert Wessel <robertwessel2@yahoo.com> wrote:
>>
>>> OTOH, it's clear that a number of people have implemented a UDP-based
>>> protocol for handling the sort of things often done with a serial
>>> console attached to a device.  This has a number of advantages - you
>>> can fake UPD over Ethernet with very little code, especially if you
>>> define away things like fragmentation and options.  A simplified
>>> TELNET-ish protocol on top of that would be pretty simple, you just
>>> need some basic packet sequencing and acknowledgements.
>>
>>I know of people who have implemented that on top of IP rather than
>>UDP.  They call it TCP. ;)
>
>
>Well, yes, but the point is that TCP is a fair chunk of code, and for
>this function it has to go in a spot where it's less than convenient
>to update.  Hence the desire for maximum simplicity.  I used TFTP as
>an example, since it solves a similar problem (and you could
>certatinly trivially implemented a TCP version of TFTP), with similar
>constraints.

A rudimentary "simple-tcp" that is not quite compliant with
TCP but will interoperate with one that is is not much code.
You will have to handle a connection or maybe a handful, but not
very many. You will have to do retransmissions, but you can back
off to a constant, semi-high value (like 6 seconds) on the second
attempt. You can deny all options, and stay with a small window
of a few k, and send 512 bytes or less.

That should reduce the requirements to a few hundred lines of
code beyond implementing UDP.

You can also have a very rudimentary telnet negotiation, basically
enforcing a standard set of options and accepting nothing else.

>>> IOW, something with a relationship to TELNET sort of like TFTPs
>>> relationship to FTP.
>>
>>Just use a raw TCP connection. There's no need to implement the TELNET
>>protocol at all.  The Unix command line client will skip all the
>>handshaking stuff if you use a non-standard port.  Or you can use
>>netcat.  Or any number of terminal emulators or COM port redirectors
>>that support raw TCP connections.
>
>
>Given how little TELNET actually does (or at least, needs to do), if
>you have TCP, there would be no really issue implementing that.  Raw
>TCP is obviously an option, but again, the incremental cost to do
>actual TELNET is low.  And as I said, if you have TCP, why not just do
>this with HTTP, and really make things convenient for people.
>
>
>>If you're on a local Ethernet segment, just use raw UDP.  I've been
>>using both those approaches for close to 20 years, and have never had
>>any problems.
>
>
>Yet what exactly is the protocol?  How many characters can you put in
>a packet?  Any sequencing or recovery?  Acknowledgements?  Checksums
>on or off?  With UDP (and a bit of consideration at the protocol
>layer), you can even avoid any IP configuration requirements (at least
>on a single LAN) by doing everything with broadcasts.

You probably have to have some default IP address, which you can
change. Making a simple udp one-shot protocol to set such options
should be easy.

>I've simply never implemented anything with UDP that didn't take error
>handling into account - is the common practice just to assume that you
>will not lose/reorder/duplicate/mangle any packing so long as you're
>on a local segment?  Again, TFTP addresses those issues, at least as
>they apply to its requirements.
>
>
>>> OTOH, despite looking, I just don't see any standards for doing that
>>> sort of thing.  Am I just missing it?  Is there a defacto standard
>>> even if there's no RFC?
>>
>>If you want something reliable that works over WANs, use TCP: it's the
>>only way you're going to dependably make anything work through a
>>firewall.
>
>
>Sure, no disagreement there.  And no, operation over WANs is not a
>prime consideration, although it certainly wouldn't hurt if it could,
>even if the user had to deal with firewall issues, or set up a relay
>server of some sort.  But the scope would be within a data-center, or
>perhaps campus (assuming at least real IP address assignment - without
>that, local LAN).  Remember the idea here is to replace a serial
>console port.

A "simple-TCP" will handle this, and you could make a udp simple
config-setter like the ones digium does for the iaxys should be
an afternoon's work.

>>If you're going to assume local Ethernet, you can just use UDP.

You will be amazed on how much chatter, duplications and other
stuff I have found on ethernets.

-- mrr


Back to comp.arch.embedded | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread


Thread

UDP Terminal Protocol Robert Wessel <robertwessel2@yahoo.com> - 2016-12-13 04:23 -0600
  Re: UDP Terminal Protocol Dimiter_Popoff <dp@tgi-sci.com> - 2016-12-13 17:10 +0200
    Re: UDP Terminal Protocol Robert Wessel <robertwessel2@yahoo.com> - 2016-12-14 13:33 -0600
  Re: UDP Terminal Protocol Grant Edwards <invalid@invalid.invalid> - 2016-12-13 15:16 +0000
    Re: UDP Terminal Protocol upsidedown@downunder.com - 2016-12-13 18:51 +0200
      Re: UDP Terminal Protocol Grant Edwards <invalid@invalid.invalid> - 2016-12-13 21:13 +0000
        Re: UDP Terminal Protocol Clifford Heath <no.spam@please.net> - 2016-12-14 09:05 +1100
      Re: UDP Terminal Protocol Rob Gaddi <rgaddi@highlandtechnology.invalid> - 2016-12-13 13:23 -0800
    Re: UDP Terminal Protocol Robert Wessel <robertwessel2@yahoo.com> - 2016-12-14 13:28 -0600
      Re: UDP Terminal Protocol Don Y <blockedofcourse@foo.invalid> - 2016-12-14 15:29 -0700
        Re: UDP Terminal Protocol Robert Wessel <robertwessel2@yahoo.com> - 2016-12-15 00:34 -0600
          Re: UDP Terminal Protocol Don Y <blockedofcourse@foo.invalid> - 2016-12-15 01:10 -0700
        Re: UDP Terminal Protocol Les Cargill <lcargill99@comcast.com> - 2016-12-15 21:52 -0600
          Re: UDP Terminal Protocol Don Y <blockedofcourse@foo.invalid> - 2016-12-15 22:00 -0700
      Re: UDP Terminal Protocol Paul Rubin <no.email@nospam.invalid> - 2016-12-14 15:22 -0800
        Re: UDP Terminal Protocol Robert Wessel <robertwessel2@yahoo.com> - 2016-12-15 00:00 -0600
      Re: UDP Terminal Protocol antispam@math.uni.wroc.pl - 2016-12-15 01:49 +0000
        Re: UDP Terminal Protocol Robert Wessel <robertwessel2@yahoo.com> - 2016-12-15 00:17 -0600
      Re: UDP Terminal Protocol Grant Edwards <invalid@invalid.invalid> - 2016-12-15 02:06 +0000
        Re: UDP Terminal Protocol Paul Rubin <no.email@nospam.invalid> - 2016-12-14 21:09 -0800
          Re: UDP Terminal Protocol Grant Edwards <invalid@invalid.invalid> - 2016-12-15 17:38 +0000
        Re: UDP Terminal Protocol Robert Wessel <robertwessel2@yahoo.com> - 2016-12-14 23:58 -0600
      Re: UDP Terminal Protocol Les Cargill <lcargill99@comcast.com> - 2016-12-15 21:49 -0600
      Re: UDP Terminal Protocol Morten Reistad <first@last.name.invalid> - 2016-12-24 16:10 +0100
        Re: UDP Terminal Protocol Grant Edwards <invalid@invalid.invalid> - 2016-12-24 18:53 +0000
          Re: UDP Terminal Protocol Theo Markettos <theom+news@chiark.greenend.org.uk> - 2016-12-25 13:45 +0000
            Re: UDP Terminal Protocol Don Y <blockedofcourse@foo.invalid> - 2016-12-25 11:44 -0700
  Re: UDP Terminal Protocol Don Y <blockedofcourse@foo.invalid> - 2016-12-13 12:53 -0700
    Re: UDP Terminal Protocol Robert Wessel <robertwessel2@yahoo.com> - 2016-12-14 14:03 -0600
      Re: UDP Terminal Protocol Don Y <blockedofcourse@foo.invalid> - 2016-12-14 15:09 -0700
        Re: UDP Terminal Protocol Robert Wessel <robertwessel2@yahoo.com> - 2016-12-15 00:50 -0600
          Re: UDP Terminal Protocol Don Y <blockedofcourse@foo.invalid> - 2016-12-15 11:01 -0700
        Re: UDP Terminal Protocol Morten Reistad <first@last.name.invalid> - 2017-01-15 16:08 +0100
      Re: UDP Terminal Protocol upsidedown@downunder.com - 2016-12-15 15:08 +0200
  Re: UDP Terminal Protocol wzab01@gmail.com - 2016-12-14 13:16 -0800
  Re: UDP Terminal Protocol upsidedown@downunder.com - 2016-12-15 12:56 +0200
    Re: UDP Terminal Protocol Don Y <blockedofcourse@foo.invalid> - 2016-12-15 11:06 -0700
      Re: UDP Terminal Protocol Robert Wessel <robertwessel2@yahoo.com> - 2016-12-26 16:34 -0600
        Re: UDP Terminal Protocol upsidedown@downunder.com - 2016-12-27 07:45 +0200
        Re: UDP Terminal Protocol Don Y <blockedofcourse@foo.invalid> - 2016-12-26 23:00 -0700
          Re: UDP Terminal Protocol Robert Wessel <robertwessel2@yahoo.com> - 2017-01-03 18:48 -0600
  Re: UDP Terminal Protocol Les Cargill <lcargill99@comcast.com> - 2016-12-15 21:42 -0600
    Re: UDP Terminal Protocol Robert Wessel <robertwessel2@yahoo.com> - 2016-12-26 17:21 -0600

csiph-web