代理使用限制
代理使用限制决定服务能为你传输多少数据、你能以多快的速度通过它执行任务,以及它能访问哪些目标。同一项任务可能同时受多项规则约束。不限流量的服务仍可能限制并发连接数,并禁止访问特定网站或端口。每项条件控制服务的不同方面。
选择代理服务时,应将这些条件与你的应用程序实际执行的工作进行比较。IP 数量或一次成功测试只能反映部分情况。了解每项限制的计量对象,有助于估算服务容量,并在任务无法满足要求时判断需要调整哪项条件。
服务商可以限制哪些方面
有些限制针对你在一段时间内消耗的资源;另一些限制控制某个时刻的工作负载,或者直接决定是否允许建立连接。即使套餐只宣传其中一两项参数,区分以下概念仍然很有帮助。
| 参数 | 计量对象 | 决定的内容 |
|---|---|---|
| 流量用量 | 传输的字节数 | 根据产品规定,不限量或设有额度 |
| 请求额度 | 额度有效期内计入用量的操作 | 包含多少计入用量的操作 |
| 传输速率 | 每秒传输的比特数或字节数 | 数据传输能有多快 |
| 请求速率 | 每秒或每分钟的请求数 | 允许以多高的频率提交新任务 |
| 并发连接 | 同一时刻计入数量的连接 | 可同时保持多少个连接 |
| 目标访问权限 | 请求的网站、地址或操作 | 允许访问哪些资源和功能 |
| 端口访问权限 | 目标端口及传输协议 | 代理可以访问哪些网络服务 |
服务商通过这些规则分配网络容量和处理资源、控制成本并限制不希望出现的活动。各项规则的作用不同:提高连接数上限可允许同时建立更多连接,而允许访问原本被阻止的目标则会改变服务能执行的任务。调整一项条件不会自动改变其他条件。
并发连接
并发连接数上限规定同一时刻可以保持多少个连接。浏览器或其他应用程序可能为一项任务建立多个连接。因此,标签页、浏览器配置文件或程序线程的数量,无法准确反映已占用多少连接额度。
在两次请求之间,连接可以保持打开,HTTP/2 也可以通过一个连接传输多个请求。减少每分钟发送的请求数,不一定会释放已经占用的连接。并发连接一文说明哪些情况会占用连接额度,以及连接数为什么不同于请求数。
各项限制可能相互影响。如果大型响应需要更长时间传输,其连接占用时间也可能延长。程序若继续启动新任务,即使请求速率不变,也可能达到连接数上限。此时增加并行任务,可能只会增加等待和失败次数,而不会提高实际完成量。
被阻止的网站和应用
服务商可以限制访问特定网站、地址或操作。即使流量不限量、连接容量也有余量,某个目标仍可能列在服务商的屏蔽名单中。同一服务商的不同产品也可能具有不同的访问权限。被阻止的网站和应用一文解释这些名单的由来,以及哪些因素决定能否访问特定资源。
一个应用可能使用多个目标:主页面可以打开,但某项独立功能却无法使用。即使代理服务商允许访问,目标网站也可能自行实施限制。要了解失败原因,应先确认哪个资源无法访问,以及是哪一方拒绝了请求。
被阻止的端口
能访问某个网站,并不代表可以访问同一服务器上的所有网络服务。服务商可能允许网页流量,却阻止邮件提交端口。这里关键的是应用程序请求的目标端口。被阻止的端口一文说明它与连接代理服务器本身所用端口的区别。
是否支持所需的传输协议,也是访问权限的一部分。TCP 和 UDP 是不同的数据传输方式,能访问某个编号的 TCP 端口,并不代表能访问相同编号的 UDP 端口。产品必须支持并允许使用所需的传输协议。增加 IP 数量或提高连接额度,无法补足缺失的访问权限。
数据量、传输速度和请求数
流量用量
根据服务商和产品的规定,流量可能不限量,也可能设有数据额度。有些服务商销售固定数据量,例如以吉字节计量的月度套餐。对于此类套餐,应查看有效期、额度重置时间,以及未用完的数据能否结转。这些计量规则适用于设有数据额度的产品,并非所有代理服务都采用的通用条件。
保存结果的大小并不能可靠地代表流量用量。提取一条简短的价格或商品名称,可能需要下载整个页面。浏览器还可能请求图片、脚本及其他文件。重复尝试也可能再次传输数据。测量实际应用程序的用量,有助于估算网络负载。如果产品按流量计费,还应确认服务商会计算哪些传输字节。
传输速度
传输速率限制控制单位时间内可以通过多少数据。它通常以每秒比特数(如 Mbps)或每秒字节数(如 MB/s)表示。1 字节包含 8 比特:不计协议开销时,80 Mbps 相当于 10 MB/s。这些是速度单位;以 GB 表示的月度额度衡量的是另一件事。
宣传速度的适用范围很重要。服务器端口标称某个速度,并不代表每位客户或每个连接都能获得该速率。多项传输可能共享同一额度。实际速度还取决于网络路径、目标服务器以及客户端自身的连接。因此,服务商公布的上限并不保证每次下载都能达到。
除了传输速度,响应时间也很重要。即使有足够的容量传输数据,服务器也可能让应用程序等待一段时间后才发送一个很小的响应。大型下载对持续传输速率更敏感;由许多短请求组成的工作负载,则可能更受响应延迟和允许的请求速率影响。
请求额度和请求速率
请求额度规定包含多少次计入用量的操作。请求速率限制则规定这些操作可以多密集地发送。剩余额度很大,并不代表可以在很短时间内一次性用完。两项限制可以独立存在,即使产品不按流量计费也是如此。
计入用量的操作也需要明确定义。点击、页面访问、HTTP 请求和完成一次数据抓取任务,都是不同的事件。访问一个页面可能产生许多 HTTP 请求;一次托管 API 任务可能包含服务商执行的多次尝试。这些尝试是否消耗客户额度,取决于产品的计量规则。
速率限制还涉及时间窗口以及对短时突发请求的处理规则。将每分钟上限除以六十只能得到平均值,无法说明服务会如何处理一次性发送的一批请求。将允许的任务分散到一段时间内执行,可以在不改变总量的情况下满足速率限制,但不能恢复已经消耗的请求额度。
哪些账户、IP 或产品共享限制
只有知道哪些使用者共享某个额度,数值才有意义。服务商可以将限制应用于账户、订单、单个代理 IP、获授权的客户端 IP,或其他明确定义的范围。例如,账户的总传输速率额度由使用该账户的程序共享。为这些程序分配不同的出口 IP,并不会让每个程序都获得一份独立额度。
多个层级的限制可以同时生效。服务可能为每个代理 IP 设置一个上限,同时为整个套餐再设置一个上限。将任务分配到不同 IP,有助于应对第一项限制,但套餐总上限仍然适用。基于客户端公网 IP 的限制,也可能由通过该地址上网的多台设备共同承担。
产品规则同样重要。同一服务商销售的直接代理连接、托管数据抓取 API 和其他网络,可能具有不同的额度与访问权限。API 计量的单位可能是任务或结果,而非网络连接。应阅读你打算使用的具体产品的限制,包括专门应用于你账户的设置。
达到限制后会发生什么
服务的处理方式取决于具体规则。达到传输速率上限后,数据可能继续以受限速度传输。达到请求速率限制后,超出的任务可能等待或被拒绝。达到连接数上限后,服务可能拒绝新连接,而现有连接仍可使用。对于设有流量或请求额度的产品,额度耗尽后可能需要续订或额外购买;可选方案由服务商条款决定。
因此,“不限量”需要说明具体对象:流量不限量、请求不限量,还是连接不限量。每种说法只描述一个参数。不限流量的套餐仍可能限制传输速度和连接数。如果服务商通过公平使用条件,在持续高强度使用后调整额度,这些条件也是套餐的一部分。单凭“不限量”一词无法确定完整规则。
服务商给出的明确提示,比笼统的失败信息更有用。HTTP 429 表示作出响应的服务认为请求数量超过了其规则允许的范围。应先确定响应来自代理服务还是目标网站。超时也可能有其他原因,例如目标响应缓慢或网络故障。用量统计、错误详情和尝试时间,有助于区分额度问题与其他环节的故障。
反复重发被拒绝的任务,可能加剧速率问题,并消耗额外额度。有效调整应针对已经确认的条件:降低发送速率、关闭不再需要的连接、补充已耗尽的额度,或确认目标的访问权限。只有套餐升级能改变该项具体条件时,升级才有帮助。
让限制与完整任务相匹配
先确定所需结果和完成期限。举个计算示例,假设一项任务需要发送 6,000 个 HTTP 请求,并在 30 分钟内完成,平均响应为 0.5 MB。这相当于平均每分钟 200 个请求,采用十进制单位计算时,响应数据约为 3 GB。此估算不包括发送出去的数据、浏览器额外加载的资源和重复尝试。如果实际任务会产生这些数据,且服务会计入用量,就必须一并计算。
这些总量还不能确定所需的连接额度。应测试应用程序实际的并行活动,以及连接被占用的时长。还要计入共享同一上限的其他程序,以及多个任务同时启动时产生的短时峰值。分别测量数据量、请求速率和并发连接数;一个计数器不能代替全部三项指标。
使用计划中的产品和目标进行测试,并覆盖完成任务所需的应用功能。一次小规模成功检查,只能证明某个操作成功过。具有代表性的一轮运行,才能进一步反映持续负载、峰值和完整任务所需的资源。应根据测试中观察到的波动保留一定余量,不要将平均值视为安全上限。
如果某项要求不明确,应向客服提供具体信息:产品、目标主机、目标端口和传输协议、预计数据量、请求速率、连接峰值,以及准确的错误信息。这有助于服务商检查相关额度或访问权限。最终需要确认的是:服务公布的限制能否满足你计划运行的工作负载。
