[理学]VNC协议分析.ppt

  1. 1、本文档共51页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[理学]VNC协议分析

可以任意映射像素值到RGB亮度的转换。 编码 编码指一个矩形的像素数据如何通过网线传输。每个像素数据的矩形都加上了一个头,给定矩形在屏幕上的X、Y坐标、矩形的宽和高,以及指定的编码类型。而后数据本身就是采用这种特定的编码方式。 数据本身遵循特定的编码。目前的编码方式主要有Raw、CopyRect、RRE、Hextile 和ZRLE.在实际应用中我们一般使用ZRLE、Hextile 和CopyRect,因为它们提供了典型桌面的最好压缩。其他可能的编码方式还包括,用于静态图片的JPEG和用于动态图像有效传输的MPEG。 协议可以通过增加新的编码方式来进行扩展。 远程桌面在客户端的显示的过程不是一蹴而就,而是一个渐变的过程,先是传输色彩低分辨率的图片过来,然后再传输跟客户端设置的色彩条件一样的图片过来。 共享远程桌面请求: 请求共享远程桌面 如图所示,客户端收到服务器端发来的的通过认证的消息之后,马上就会向服务器发送共享桌面的请求标志帧,该标志帧的VNC数据段只有8位表示客户向服务器请求共享桌面。 服务器的帧缓存参数: 服务器在收到客户端的请求之后,马上做出响应,给客户端发送服务器的帧缓存参数,包括帧缓存的宽、高、像素位数,远程桌面的名字等信息。数据分析如下图: 请求共享远程桌面 帧结构: 服务器的帧缓存参数 字节 内容 表示的意义 1-2 20 帧缓存的宽度 3-4 58 帧缓存的高度 5 20 每像素位 6 18 色彩深度 7 00 Big endian flag 8 01 真彩色标志 9-10 00 ff 红色的最大值 11-12 00 ff 绿色的最大值 13-14 00 ff 蓝色的最大值 15 10 Red shift 16 08 Green shift 17 00 Blue shift 18-20 00 00 00 填充位 21- 24 00 00 00 0e 远程桌面的名称的长度 24-38 58 50 56 4c 4b 2d 4c 49 41 4e 47 47 45 53 远程桌面的名称,长度随名称的变化而变化。 客户端在收到服务器送来的帧缓存参数之后,向服务器发送帧像素的设置参数,注意,这个是低质量图像参数 客户端设置的像素格式 数据帧 客户端设置的像素格式 字节 内容 表示的意义 1 00 客户端信息类型,设置像素格式 2-4 00 00 00 填充位 5 08 每像素位,注意此帧的每像素位,比服务器的32位少了24位 6 08 颜色深度 7 00 Big endian flag 8 01 真彩色标志 9-10 00 03 红色的最大值 11-12 00 03 绿色的最大值 13-14 00 03 蓝色的最大值 15 04 Red shift 16 02 Green shift 17 00 Blue shift 18-20 00 00 00 填充位 客户端向服务器发送了客户端的编码格式信息帧。针对不同的事件图片,客户端支持7种编码格式。 客户端设置编码格式 数据帧: 字节 内容 表示的意义 1 02 客户端信息类型,02:表示设置编码格式 2 00 填充位 3-4 00 07 客户端所支持的编码格式的数量 5-32 Ff ff 11 ff ff 21 00 00 00 10 00 00 00 01 00 00 00 05 00 00 00 0 2 00 00 00 00 每四个字节表示一种编码方式 上图表示客户端的帧缓存更新请求。主要包括的信息有原点的相对位置(x,y),宽和高等。注意,这里的客户短信息类型03表示帧缓存更新请求。 客户端的帧缓存更新请求 这个帧的数据结构跟前面第一次设置像素格式是相同的,但 客户端设置像素格式 是其参数发生了变化,这里面的设置的是高质量图片的参数。所以我们猜测,在这个共享远程桌面的过程中,图像的传输是先传输低质量的,再传高质量的。然后紧接着的紧接着的几个关键帧跟第一次更新的时候是一样的。 截图如下:设置编码格式和帧缓存更新请求在整个过程总都是一样的,没有变化。 客户端设置像素格式 当数据包传输完毕之后,在此帧中所有的数据包将重组,重组得到的图像将显示在客户端。从下图可以看到,帧缓存更新的信息以一个矩形为基本单位,包括矩形的原点位 服务器帧缓存更新信息 宽和高,以及矩形内的图像数据,上图所示的第一个为鼠标的图像,就类似与PS等图片处理软件那样,一个图层一个Rectang

文档评论(0)

qiwqpu54 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档