• TeamViewer 的工作原理是什么?


    TeamViewer连接的主要原理分为三个部分,分别是:如何根据ID找到要连接的电脑;找到电脑之后如何内网间互联;如何能操作对方的电脑。

    一、如何根据ID找到要连接的电脑

    1.运行TeamViewer之后,电脑会先连接到TeamViewer的服务器,然后服务器对这台电脑分配一个唯一的ID。这个ID主要是以网卡的MAC地址为依据生成的,所以如果想要给电脑换ID,只要修改一下MAC地址就行了。

    TeamViewer中的ID
    图1:TeamViewer ID

    以上操作个人免费用户可以使用。小编提示:如果是商用TeamViewer的用户,建议还是购买TeamViewer正版,维护正版权益。

    2.当一个TeamViewer连接到另一个的时候,会先连接到服务器,通过ID与电脑的对应关系找到这台要连接的电脑。

    二、找到电脑后如何内网互联

    如果连接的其中任一方是有公网IP的网络环境,双方的连接就启用P2P连接。如果双方都是内网的话,TeamViewer数据就会通过TeamViewer自己的服务器进行中转。

    TeamViewer电脑互联
    图2:电脑互联

    这也是TeamViewer内网互通会在网络高峰期比较慢的原因。

    三、如何能操作对方的电脑

    原理和远程控制木马是一样的。这里的终端指被控制的电脑。

    连接建立之后,终端的电脑图像压缩后发回本地,这样本地就能看到画面,本地进行键鼠操作的动作封装成数据包发送给终端解开后还原成动作进行远程的模拟操作。终端反馈的画面通过压缩后继续发回给控制端。

    teamviewer控制电脑
    图3:TeamViewer控制电脑

    就终端的图像传输来说,早年终端都是直接进行JPEG截图后传输,所以速度不太理想。之后各种高手延伸出很多很厉害的基于截图的方式的屏幕传输的算法,传输效率进一步提高,通常是先加载一个虚拟屏幕驱动,然后对屏幕做逐行扫描,然后计算变化的部分,之后只传输变化的部分。

    本文为原创,转载请注明网址:http://www.yuanchengxiezuo.com/zhishi/gzyl-tv.html

  • 相关阅读:
    java标识符的作用和命名规则
    Java还是编程语言中的老大?凭什么长期霸占第一宝座?
    JavaScript基础内容中的函数详解
    SpringMVC配置文件 中 mvcview-controller 标签的使用
    说说JVM原理?内存泄漏与溢出的区别?何时产生内存泄漏?
    SpringMVC和Spring的配置文件扫描包详解
    Mybatis配置详解
    关于Redis的常见面试题解析
    jQuery杂谈一
    LeetCode-212 单词搜索 II
  • 原文地址:https://www.cnblogs.com/mjn1/p/11991568.html
Copyright © 2020-2023  润新知