在波兰,移动 ISP 通常会提供每月带宽有限的套餐,且不包括一些热门应用。例如,所有来自 YouTube 的流量均不计入数据上限。
除了网络中立性问题之外,我想知道在 HTTPS 时代如何实现这一点?ISP 如何知道哪些数据包应计入数据上限?
我知道只需查看 IP 地址即可完成此操作,但 YouTube 拥有大量 IP,而且我怀疑它们一直在变化。另外,如果 YouTube 的一些 IP 与其他 Google 服务共享,我不会感到惊讶,因为 ISP 并未对这些服务开放限制……
答案1
首先,他们知道 YouTube 的 IP 地址。
ISP 有一个 IP 数据库。例如,YouTube 的 ASN 是 AS15169。在服务器端,他们会为每个服务创建一个分组。其中一个是默认分组,这是计费组。当您使用默认组时,该使用情况会记录在系统中。
例如下面列出了一些 YouTube 地址。
root@server ~>whois -h whois.radb.net -- '-i origin AS15169' | grep ^route
route: 192.179.147.0/24
route: 192.179.148.0/23
route: 192.179.148.0/24
route: 192.179.149.0/24
route: 192.179.150.0/23
route: 192.179.150.0/
...
route6: 2607:f8b0:4016::/48
route6: 2604:31C0::/32
route6: 2620:33:c000::/48
route6: 2607:f8b0:4000::/48
route6: 2404:f340::/32
当您尝试访问 YouTube 或其他 YouTube 服务(Google 视频存储)时,您的手机将尝试访问这些 IP 地址。
ISP 会检查 IP 地址,如果该 IP 地址位于 YouTube 群组内,则他们不会对该群组收费。
另一个选择是在初始 HTTP 连接时检查 SNI 标头。当您与 HTTPS 站点建立连接时,并非所有数据都已加密。
例如,当您在 Google 上进行搜索时,您可以在浏览器中看到如下 URL https://www.google.com/search?q=hello+world
:。
加密数据是/search?q=hello+world
和所有页面内容。现在您正在访问像这样的网站www.google.com
,但他们不知道哪个页面或该页面内的内容。
一些 ISP 为此使用 SNI。例如,在土耳其,这种方法用于制定特定的互联网套餐,如 5GB 互联网 + 4GB Spotify 或 7GB 互联网和无限 WhatsApp。他们还使用 SNI 来禁止网站。一些网站使用相同的 IP 地址,如wikimedia.com
或wikipedia.org
。如果他们试图用 IP 地址封锁维基百科,他们就会封锁所有维基媒体服务。
答案2
HTTPS 掩盖了内容交通,但不是端点。因此,例如,我的 ISP 不知道我正在回答这个特定问题,因为我使用的是 HTTPS,但他们仍然知道我正在访问 serverfault.com 端口 443 上的内容。
在特定情况下(例如您描述的 ISP/Neflix 合作伙伴关系),Netflix 通常会将其一个端点共置在 ISP 的数据中心,然后其运行方式类似于 CDN - 当您连接到 Netflix 时,您会在 ISP 自己的网络上获得 Netflix 服务器,这使得他们更容易跟踪它以达成交易,因为您的流量永远不会离开他们自己的网络。(当然,共置服务器仍然需要从 ISP 网络之外的另一个 Netflix 服务器获取视频流,但通过共置服务器传输所有内容使他们能够缓存数据、使用专用连接、聚合流等,以降低成本和/或将部分成本作为合作协议的一部分转嫁给 Netflix。)
答案3
更简单一点——他们的 DNS 将使用本地代理的特定 IP 地址进行响应。这甚至可能不会破坏 HTTPS——他们可以从那里进行端口转发。但这允许您在特定 IP 地址上获得免费流量,并将其从计费中删除。
答案4
这是查看 IP 端点(即 IP 地址和 DNS)的混合体。这通常在所谓的 PGW(Packe Data Gateway,数据包网关)上完成。PGW 是每个移动网络的一部分。