请问BT服务器是如何介绍两个内网用户完成握手并且相互共享数据的呢?(200分)

  • 主题发起人 主题发起人 Orber
  • 开始时间 开始时间
O

Orber

Unregistered / Unconfirmed
GUEST, unregistred user!
我本身是内网用户,而提供某下载资源种子的也是一位内网用户,但是我使用BT软件通过BT服务器就可以下载到他所提供的数据,而同时其他内网用户也能借此取得我提供的数据,我觉得作为BT服务器应该只是起一个介绍握手的作用吧,他不会一个bit一个bit的把数据中转吧~(公网IP种子用户不在此问题之列,因为让他们握手很容易)

大家对此有什么研究么?
如果此问题得到解决,我们很容易通过一个公网IP的服务器来实现众多内网用户想搞web和ftp服务的愿望。
 
补充以下,我们这里讨论的是基于所有Windows操作系统的(Win98/2k/XP),而且我们假设没有对于内网网关的控制权,可能有的朋友看到过关于 UPnP自动端口映射 的介绍,但此功能仅限于XP系统,其他系统并不支持。

希望大家集思广益……
我仍然不相信我们内网用户之间的数据传送都是通过中转的……,这个数据量对于中转服务器,很难想象。
 
我又找到一些资料 但仍旧是数据中转

内网域名及端口映射的原理


内网网站web服务器 <==> 科迈内网客户端 <==> 科迈代理服务器 <==> internet用户


内网网站安装科迈动态域名内网客户端,登录并连接科迈代理服务器。内网域名都被解析到科迈代理服务器上。当internet用户要访问内网网站的时候,通过域名解析,连接科迈代理服务器。科迈代理服务器根据域名把访问请求发送到内网客户端,内网客户端再把访问请求发送到内网网站的web服务器(例如IIS),取得访问结果,再送回代理服务器,由代理服务器返回给internet用户。这样就可以穿透NAT网关和防火墙的阻隔。整个过程可以用一句话描述:internet用户通过科迈代理服务器间接地访问内网网站。


因为一台代理服务器负责多个内网网站的数据中转,所以,需要使用端口映射来解决端口重叠的问题。在所有服务中,web服务(80端口)和smtp服务(25端口)的访问请求里带有域名信息,这两个端口不需要做映射,其他端口都需要通过端口映射来访问。


我们为每个内网域名分配5个端口(加上80端口和25端口,总共可以使用7个端口)。这5个端口可以随意映射到任何一个服务,例如ftp。


端口映射网络图如下:
(以ftp为例。假设域名是user.dns0755.net,分配给ftp的端口号是12345)



内网ftp服务器
127.0.0.1:21
<==>
内网客户端
127.0.0.1:xxxxx
<==>
科迈代理服务器
user.dns0755.net:12345
<==>
internet用户
x.x.x.x:xxxxx


如上图所示,内网ftp通过端口映射,把本地的21端口映射到代理服务器的12345端口上。internet用户通过连接user.dns0755.net的12345端口,来访问内网网站的21端口。


如果要使用端口映射来开通一个服务,该服务必须要满足下面的条件:


1、必须是基于tcp协议的服务。端口映射不支持udp协议。


2、服务的客户端必须可以自由设定端口。因为映射后的端口号已经改变了。例如上图中,ftp在本机的端口号是21,映射后的端口号是12345,internet用户在ftp客户端里要把端口设为12345才能访问。
 
后退
顶部