Protocol Changes (was: Zoom / Scaling in VNC)

Jonathan Morton chromi "at" cyberspace.org
Thu, 16 Mar 2000 12:35:56 +0000


>On Wed, Mar 15, 2000 at 07:44:30PM -0600, Brandon Ibach wrote:
>>    It may be overkill for our purposes, but the basic idea with PPP is
>> an ACK, NAK, REJ model.  Each side sends a set of parameters for the
>> link to the other side, and the other side can either accept them
>> as-is (ACK), request different values for certain parameters (NAK), or
>> reject certain parameters altogether (REJ).  This process goes back
>> and forth until either both sides are happy or they determine that
>> they just can't come to an agreement, and the link is severed.
>
>Telnet negotiates features in a very similar way. (RFC 854 is it?)

Very interesting...  The cheif problem with the existing protocol, as I see
it, is that the current method of indicating the presence of a feature is
very terse, consisting simply of a list of numbers.  This of course
necessitates the provision of a look-up table, which partly stifles the
addition of new features due to fear over conflicts.

I suggest the uptake of a more verbose negotiation scheme should a v4
protocol be introduced.  That way we can say, taking for example my 8100
being talked to by that nice little Palm client someone was talking about:
(this also shows ACK/NACK in action)

Server:  "I support...
EncodingHexTile
EncodingCopyRect
EncodingRaw
FilterZlib
FilterSSH
Scaling
BitDepth = 16
ScreenWidth = 1024
ScreenHeight = 768
..."

Client:  "I want...
EncodingCopyRect
EncodingRaw
FilterZlib
Scaling = 0.25
BitDepth = 4
..."

Server:  "I don't support...
BitDepth = 4"

Client:  "I want...
BitDepth = 8"

Server:  "OK"
Client:  "OK"

<normal VNC service is resumed>

As far as "can't come to agreement" goes, why not try forcing all VNC
servers and clients to support a basic subset of the protocol, which is
guaranteed to work even is it requires translation (and loss of quality) at
both ends?  For example, forcing all servers to support BitDepth = 8,
EncodingRaw, and a mode without any other filters, and similarly forcing
clients to support the same, with the addition of accommodation of
arbitrary screen sizes (whether scrolling or scaling is necessary for
this)... will allow any client to connect to any server, unless the server
has deliberately been set to allow connections only via SSH, for example.
(hmmm, long rambly sentence there...)

Food for thought, anyone?

--------------------------------------------------------------
from:     Jonathan "Chromatix" Morton
mail:     chromi "at" cyberspace.org  (not for attachments)
uni-mail: j.d.morton "at" lancaster.ac.uk

The key to knowledge is not to rely on people to teach you it.
--------------------------------------------------------------
Contributing to the VNC Project - http://www.uk.research.att.com/vnc/
Macintosh VNCserver v3.3.2 beta2.2 now posted at:
	http://chromatix.autistics.org/vnc/



---------------------------------------------------------------------
To unsubscribe, send a message with the line: unsubscribe vnc-list
to majordomo "at" uk.research.att.com
See also: http://www.uk.research.att.com/vnc/intouch.html
---------------------------------------------------------------------