2024年2月9日发(作者:)
QQ远程协助原理
让位于NAT后的两台主机都与处于公共地址空间的、众所周知的第三台服务器相连,然后,一旦NAT设备建立好UDP状态信息就转为直接通信,并寄希望于NAT设备会在分组其实是从另外一个主机传送过来的情况下仍然保持当前状态。
这项技术需要一个完全圆锥型NAT设备才能够正常工作。受限圆锥型NAT和对称型NAT都不能使用这项技术。
这项技术在P2P软件和VoIP电话领域被广泛采用。它是Skype用以绕过防火墙和NAT设备的技术之一。
假设有两台分别处于各自的私有网络中的主机:A和B;N1和N2是两个NAT设备;S是一个使用了一个众所周知的、从全球任何地方都能访问得到的IP地址的公共服务器
步骤一:A和B分别和S建立UDP连接;NAT设备N1和N2创建UDP转换状态并分配临时的外部端口号
步骤二:S将这些端口号传回A和B
步骤三:A和B通过转换好的端口直接联系到对方的NAT设备;NAT设备则利用先前创建的转换状态将分组发往A和B
猜测:
简单来说,就是截图加鼠标键盘模拟,这些函数Windows的API函数都有,应该是TCP
截图(压缩)->发送->客户接收(解压显示)->返回鼠标在截图上对应的位置和动作、键盘动作->在被控端用API函数模拟鼠标键盘相对应行为
TCP,UDP都可以打洞的,不过一般来说,像这种多媒体传输,UDP是比较常用的
楼主所说的 “没有独立的ip地址” ,我解释一下,NAT(网络地址映射)
路由器都有这功能,它把内网机器的 IP:端口, 映射成外网的 IP:端口。
但外网想通过路由访问内网的机器,路由是不同意的,这就要用到内网穿透,就是楼上各位说的“打洞”
TCP 和 UDP 都可以 打洞的,不过TCP比较麻烦
VNC原理
很早就有这个了 vnc,VNC(Virtual Network Computing,虚拟网络计算)最早是一套由英国剑桥大学ATT实验室在2002年开发的轻量型的远程控制计算机软件,其采用了 GPL 授
权条款,任何人都可免费取得该软件。VNC软件主要由两个部分组成:VNC server及VNC
viewer。用户需先将VNC server安装在被控端的计算机上后,才能在主控端执行 VNC viewer
控制被控端。
VNC server 与 VNC viewer 支持多种操作系统,如 windows,Linux,MacOS 及 Unix
系列(Unix,Solaris等),因此可将 VNC server 及 VNC viewer 分别安装在不同的操作系统中进行控制。RealVNC 的优越性还在于如果操作系统的主控端计算机没有安装 VNC
viewer,也可以通过一般的网络浏览器(如 IE 等)来控制被控端(需要 Java 虚拟机的支持)。
整个 VNC 一般运行的工作流程如下:
(1) VNC 客户端通过浏览器或 VNC Viewer 连接至 VNC Server。
(2) VNC Server 传送一对话窗口至客户端,要求输入连接密码(可能为空),以及存取的 VNC Server 显示装置。
(3) 在客户端输入连接密码后,VNC Server 验证客户端是否具有存取权限。
(4) 若是客户端通过 VNC Server 的验证,客户端即要求 VNC Server 显示桌面环境。
(5) 被控端将画面显示控制权交由 VNC Server 负责。
(6) VNC Server 将把被控端的桌面环境利用 VNC 通信协议送至客户端,并且允许客户端控制 VNC Server 的桌面环境及输入装置。
发布评论