我运行的是 Windows 操作系统,并且在我的 PC 上安装了 uTorrent 应用程序。我来自印度。印度有一个名为“Reliance Jio”的 ISP 提供商。我住在政府宿舍,宿舍有 JioNet 的 Wi-Fi 连接。当我们学生使用我们的电话号码登录这个 JioNet Wi-Fi 时,这个 Wi-Fi 每天为我们提供 34MB 的数据用于正常的网络浏览。要登录,我们遵循几个简单的步骤
- 连接到 Wi-Fi
- 之后浏览器打开并自动显示注册门户......我们只需输入我们的电话号码......然后我们得到一个验证码......然后我们就可以获得全天 34MB 的数据限制的互联网访问权限。
现在让我们来看看我发现的奇迹!
有一天,我连接了 Wi-Fi,但跳过了注册过程(我没有连接互联网。我只是连接了 Wi-Fi)。
我打开 uTorrent 应用程序并恢复下载。令我惊讶的是,几分钟内,我看到下载已开始,速度为 2MB/秒,而且无需通过旅馆 Wi-Fi 登录互联网。我刚刚连接到 Wi-Fi。浏览器中显示我仍未连接到互联网。但在 uTorrent 中,我正在以非常快的速度下载文件,而且几分钟内就下载完成了。那天,我在几分钟内下载了 2.3GB,没有通过 Wi-Fi 连接到互联网。电脑仍然显示没有互联网访问符号……但与此同时,我正在 uTorrent 上下载大文件。使用这个神奇的 uTorrent 应用程序,我完全免费下载了一个 13GB 的种子文件!
我很想知道 uTorrent 应用程序是如何创造这个奇迹的。它太神奇了!难以置信!
请告诉我这个奇迹究竟是如何发生的。uTorrent 遵循了哪些步骤来实现这个很酷的事情。拜托,我迫切希望得到你的回答。
答案1
您可以在连接 WIFI 且未登录的情况下浏览互联网吗?如果显示无法访问互联网,可能只是意味着您无法通过 HTTP/HTTPs 访问互联网,HTTP 使用 TCP 端口 80,HTTPs 使用 TCP 端口 443,如果这些端口在您未登录时被禁止,您将无法浏览互联网,但您可以通过 uTorrent 下载文件这一事实表明其他端口是开放的并且没有被禁止,标准 BitTorrent 协议使用端口 6881 到 6889,但实际上 BitTorrent 客户端可能会使用任何可用的端口(最大可能的 TCP 端口号为 65535),也许这些端口没有被禁止并且可以允许通信。
验证这一理论的一个可能方法是尝试在连接到 WIFI 而不是互联网时 ping 外部公共 IP 地址,我不知道印度的情况,但在 GFW 后面,即使关闭 VPN,我仍然可以 ping 8.8.8.8,所以我认为 ping 8.8.8.8 是好的。如果结果不是超时,则意味着您有网络连接,但如果显示无互联网访问,则无法浏览网页,也许该消息实际上意味着“无法通过端口 80,443(对于 FTP 可能为 20, 21)连接到互联网”,意味着没有 HTTP(s) 和 FTP 访问,但并不表示其他协议不起作用。
注意 Ping 请求使用 ICMP 而不使用 TCP 端口。
好的,TCP(传输控制协议)端口号是一个 16 位无符号整数(0 - 65535 或 2^16-1),作为 IP(互联网协议)数据包头中的标签,与 IP 地址(IPv4 为 32 位无符号整数,IPv6 为 128 位无符号整数)一起使用,表示数据包应发送到何处,例如 151.101.1.69:80,第一个是 superuser.com 的 IPv4 地址之一,第二个是端口号。IP 地址表示哪台机器应该接收数据包,端口号表示哪个应用程序。
当你在地址栏中输入网站地址时,例如superuser.com,网页地址会自动通过DNS服务器解析为IP地址,这样计算机就知道该发送到哪里了。
我不知道互联网的早期情况,但今天,在 2020 年代,网络浏览器会自动完成网页地址和协议,例如在地址栏中输入 google.com,它会自动解析为https://www.google.com,并且它与https://www.google.com:443,端口号根据协议自动添加,HTTPS(超文本传输协议安全)为443,HTTP为80,FTP(文件传输协议)为20。
如今,网络浏览器会自动使用 HTTPS 连接,输入 google.com 并按 Enter 键将自动引导您https://www.google.com:443,即使你指定了协议和端口号:http://www.google.com:80,它会自动将您重定向到 HTTPS(以锁定的锁符号表示,点击地址栏将显示完整地址)。
网络请求作为出站 IP 数据包发送到服务器,网站地址会由 DNS(域名系统)服务器自动转换为 IP 地址(如果它首先找到该网络地址的条目,则转换为您的 hosts 文件),通常直接在地址栏中使用 IP 地址是行不通的,然后您的数据包会经过路由器调制解调器和防火墙,有很多防火墙,通常防火墙会检查接收者的 IP 地址,如果接收者的 IP 被禁止,则会阻止数据包到达其接收者,等等。
但是在您的情况下,数据包首先通过您本地 WIFI 的防火墙,防火墙会检查接收方的端口,如果是 20、80、443、6875 或可能还有其他端口(当您未登录时),它就会结束数据包的传输;要访问网站,您需要向服务器发送一个出站数据包,服务器必须向您发送回一个入站数据包,现在出站数据包永远不会到达目的地,但是并非所有端口都被禁止,正如您所发现的,端口 6885、48000 和 50000 并未被禁止,因此防火墙只会拦截黑名单中的端口,而不会拦截黑名单之外的端口。
诊断的这一步很聪明,确实,更改 uTorrent 使用的端口号是正确的步骤,关于 ping 超时,有两种可能性:1,您所在国家的防火墙或您与 Google 之间的任意多个防火墙都禁止了 8.8.8.8(不太可能);2,除了 TCP/UDP 端口外,ICMP 也被禁止了(最有可能)。要知道是哪种情况,请登录您的 WIFI 并再次 ping 8.8.8.8,如果仍然超时,则第一个是正确的,如果不正确,则第二个是正确的。
至于防火墙如何阻止你的数据包到达目的地,这很简单;互联网没有中央服务器,互联网不是由一个大型 ISP 提供的,而是由多个 ISP 提供的,并且由天知道有多少个跳跃、节点、路由器和计算机、智能手机等等组成,这些东西相互连接形成了互联网。
将 IP 数据包想象成信件,信件放在信封里,信封上有收件人的大楼地址(IP 地址)和房间号(端口号),用于指定信件应发送到哪里,只有收件人有权打开信封并查看信件内容,但是每个人都可以看到信件的目的地(以便他们可以将其转发),您将信件交给第一位邮递员(为您提供 WIFI 的路由器),他的职责是将其转发给排队的下一位邮递员(互联网中的节点),经过许多邮递员,信件将到达目的地,现在您的信件没有盖章,第一位邮递员看到只有在信件盖章后才可以到达的房间号,所以他拒绝将其发送给下一位邮递员,就是这样。