.net - Teamviewer 如何使用防火墙后的直接端口共享图像

标签 .net service port remote-desktop

我找到了这个:
How does teamviewer find my computer
但我无法理解,答案也不是我想要的。
我正在 .net 中寻找解决方案。

如果我有一个 image-Sender-app,Teamviewer 如何连接到 image-Receiver-app?是否包括任何隧道系统?还是 Teamviewer 只使用端口 80?

Skype 是否使用相同的方法进行语音聊天?

* 示例 *

我在 PC-A 上,这里有一个 50KB 的图像作为 Screenshot-Frame,想将它发送到我的 PC-B。现在,如果有任何端口可以连接到 SERVER-PC,TV (teamviewer) 会查看从 1 到 65,000 的整个端口范围。我认为最小端口 80 会成功,对吗?但是在我的电脑上也打开了 4001 端口,电视将使用 4001 作为该功能。在 PC-B 上,它还会检查开放端口并找到端口 80 和 6500,并将使用 6500 作为该功能。我现在的问题是,数据要去哪里?我的图像是否首先使用端口 4001 发送到 SERVER-PC,并且 50KB 会在那里短时间存储,而 PC-B 将在端口 6500 上下载它?我无法相信这是事实,因为它会产生过多的 TV-SERVER-PC 流量。但它怎么能工作呢?

Image of Port switcher

问候

最佳答案

另一个答案确实涵盖了要点。

This article (旧的,但仍然相关)描述了 Skype 如何绕过防火墙 - 也许它有助于更​​好地解释该方法。

据我所知,TeamViewer 采用完全相同的方法 - TeamViewer 客户端应用程序主动连接到中央服务器,然后按照文章中的描述协商连接。

My question is now, where are data going to? Is my image first going to SERVER-PC by using port 4001 and the 50KB is stored for short time there and PC-B will download it on port 6500? I cannot believe that that is the truth because it would create too much TV-SERVER-PC traffic. But how can it work?



PC-A 和 PC-B 直接相互通信。 SERVER-PC 仅用于在两者之间建立通信,以在两台计算机的防火墙中打洞。文章中的关键技巧是这个(重点是我的):

Bob's Skype program then punches a hole in its own network firewall: It sends a UDP packet to 1.1.1.1 port 1414. This is discarded by Alice's firewall, but Bob's firewall doesn't know that. It now thinks that anything which comes from 1.1.1.1 port 1414 and is addressed to Bob's IP address 2.2.2.2 and port 2828 is legitimate - it must be the response to the query which has just been sent.

关于.net - Teamviewer 如何使用防火墙后的直接端口共享图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6191012/

相关文章:

.net - 如何根据进程ID获取进程描述?(c#.net)

service - AngularJS ng-repeat 与来自服务的数据

linux - "searchd"显示 "FATAL: bind() failed on 0.0.0.0: Address already in use"

docker - 端口不可用 : listen tcp 0. 0.0.0/50070:绑定(bind):尝试以访问权限禁止的方式访问套接字

.net - 在 Windows 窗体中调用

.net - 处理不准确的系统时钟

delphi - 将 Delphi 应用程序转换为作为服务运行 - 有必要吗?

Android服务无限期运行

kubernetes - Kubernetes服务指向ReplicaSet的特定实例

c# - 通过网络复制文件(需要身份验证)