1、握手
1.1、服务器收到客户端TCP连接上后,服务器发送RFB的版本: 52 46 42 20 30 30 33 2e 30 30 38 0a RFB 003.008\n
1.2、客户端收到后回复: 52 46 42 20 30 30 33 2e 30 30 38 0a RFB 003.008\n
2、安全认证
2.1、服务器发送支持的认证方式
一般支持的类型如下:
2.2、客户端选择支持的类型
2.3、服务器回复结果
3、客户端初始化:是否与其他客户端共享
4、服务器初始化:告诉客户端桌面的信息
Framebuffer width: 图像像素宽度
Framebuffer height: 图像像素高度
Bits per pixel: 每个像素的位数
Depth: 每个像素的位深
Big endian flag: 是否大端
True color flag: 是否真彩色
Red maximum: 红色最大值
Green maximum: 绿色最大值
Blue maximum: 蓝色最大值
Red shift: 红色偏移量
Green shift: 绿色偏移量
Blue shift: 蓝色偏移量
Padding
Desktop name length: 桌面名称长度
Desktop name: 桌面名称
5、客户端告诉服务器支持的编码
Number of encodings: 支持的编码数量,每种编码4个字节
Encoding type: Tight (7)
Encoding type: CopyRect (1)
Encoding type: ZRLE (16)
Encoding type: Hextile (5)
Encoding type: RRE (2)
Encoding type: Raw (0)
Encoding type: JPEG quality level 6 (-26)
Encoding type: DesktopSize (pseudo) (-223)
Encoding type: LastRect (pseudo) (-224)
Encoding type: Rich Cursor (pseudo) (-239)
6、客户端发起区域更新的请求 命令类型:0x03
7、服务器发送光标数据和桌面的图像数据 命令回复类型:0x00
8、客户端发送键盘的数据 命令类型:0x04
9、客户端发送鼠标的数据 命令类型:0x05