我希望一劳永逸地弄清楚一些事情,这样我就可以安心地与他人分享这些知识,而不会让自己出丑:)
我的互联网提供商声称其 UL 速度高达 3 Mb/s。我读到,由于 1 字节 = 8 位,因此 3 Mb/s(3072 kb/s)的网络速度(容量)等于 ~384 KB/s,这是 3*1024/8 的结果。现在问题来了:
- 为什么网络提供商要以比特/秒来定义网络容量,而我们真正关心的是实际上传/下载的字节数?
- 是否有比 FTP 更快的协议可以向远程服务器发送大文件或从远程服务器发送大文件?
希望我说清楚了,如果需要的话我会详细阐述我的想法
编辑 我做了一些研究,发现我一定是因为单位理解错误而计算出了错误,因此前两个关于 UL 速度的问题毫无意义。但剩下的两个问题仍然困扰着我
答案1
以比特/秒为单位指定容量 -
David Schwartz 是正确的,比特早于互联网 - 这也是答案的一部分 - 旧系统并不总是使用 8 位来表示数据 - 例如,ASCII 只有 7 位(扩展 ASCII 是 8 位)。
此外,串行设备(以及调制解调器 - 最初是数据在长距离传输的方式)具有不同的数据表示方式(例如 N81 - 无奇偶校验、8 个数据位、1 个停止位,因此在此示例中一个“字节”的数据为 9 位)。
当然,还有压缩。如果您正在发送标准文本,那么通过线路可以获得比规定比特率更多的字节。
后来互联网出现,数据被分组到数据包中,每个数据包都有额外的开销。根据数据包的大小和封装,数据包开销可能很大。
因此,BPS 比每秒字节数/千字节数更真实地反映了销售量。
发送大文件的更快协议
这个问题没有唯一正确的答案。如果文件无法压缩,并且信道不拥塞且距离较短,FTP 就相当不错。
一旦你需要处理拥塞,游戏规则就会改变——拥塞通常意味着数据包丢失,这表明系统速度变慢。分成多个流的协议将提供更好的吞吐量(例如 bittorrent、某些 HTTP 下载实现),当然还有压缩。
也就是说,有时还可以进行调整,这在 FTP 工作的 TCP 级别以下会产生显著差异。(这是一个专家主题,但包括更大的 MTU、更多的数据包缓冲、QoS 标记等 - 并且性能只会与这些底层优化允许的一样好。
答案2
您可以测量两种不同的数据。一种是线路速度,通常以每秒十进制位数来衡量。另一种是有效数据速率,通常以每秒二进制字节数来衡量。
例如,什么是“千兆以太网”?它是线速为每秒十亿比特的以太网。千兆以太网上的数据流速度有多快?1,000,000,000 比特 = 1,000,000,000/8 字节。因此,每秒将有 125,000,000 字节流过。由于 1 千字节有 1,024 字节,因此每秒为 122,070 KB。再次除以 1,024,我们得到 119.2 MB/s。
这种区别早在 ISP 出现之前就存在了。ISP 提供线路并遵循现有的指定线路速率的惯例。
答案3
你是当然您的 torrent 每秒能获得 3 兆字节?如果没有真正好的压缩,在 3 兆位连接上这是不可能的。我怀疑您的 torrent 程序报告的速度是每秒 3 兆字节 (Mb/MBit/Mbit)。如果您不确定,请将文件大小(以兆字节为单位)除以下载所需的时间,这应该与您的平均下载速度相匹配。
提供商以比特为单位测量速度,因为您可以使用多种不同的方式对比特进行编码来获取字节 - 有些方式比其他方式更有效。您可以期望的未压缩的最佳方式是每字节 8 比特,但通常会有一些开销,具体取决于多种因素。一些下载协议具有更多的错误校正,这会占用更多每字节比特。有些人使用 VPN,这需要将数据放入其他数据中。有些协议比其他协议更频繁地检查状态,这也会增加开销。
不管字节编码的效率如何,最大速度取决于一次有多少比特可以通过管道,所以这就是提供商所使用的。
想象一下,当您在加油站购买 32 盎司的饮料时。他们卖给您的杯子只能装这么多。有些人用很多冰,有些人用得很少甚至不用。将苏打水视为您的数据,将冰视为开销。有充分的理由使用冰,也有充分的理由不使用冰,但事实是,您使用的冰越多,杯子中装的苏打水就越少。根据您在杯子中放入的东西向您收费并不符合商店的最佳利益。它将是苏打水、冰和空气的某种组合,不会超过 32 液量盎司。
答案4
为什么网络提供商要以比特/秒来定义网络容量,而我们真正关心的是实际上传/下载的字节数?
网络硬件(实际上所有硬件)基本上都是在比特级别上工作的。任何数字通信方法都与传输一串 1 和 0 有关,任何比这更抽象的东西(例如 8 位 = 1 字节等)都由发送者和接收者来关心。因此,从网络硬件设计师的角度来看,将事物视为比特流比潜在应用程序如何看待它更重要。
所有协议都有开销。您可以通过 TCP 传输 4K 字节,但由于协议标头等原因,实际传输的数据超过 4K 字节。要通过 TCP 获得 4 真正有意义的 KB/秒,实际速度必须略高于 4K 字节/秒。由于使用的协议种类繁多(TCP、FTP 会增加更多开销,HTTP 会增加更多开销,SSL 会增加一点开销等),因此很难向非技术用户简单地回答这个问题。
此外,ISP 最好向非技术人士提供更大的数字 - “此连接为每秒 300 万比特”,而不是“每秒 3 兆字节”
是否有比 FTP 更快的协议可以向远程服务器发送大文件或从远程服务器发送大文件?
如果多个主机有该文件,Bittorrent 会更快,因为它可以同时从多个源下载。如果只有一个主机有该文件,它不会给你带来速度优势,但会非常稳定。
压缩你的文件。
如果您正在执行诸如同步文件之类的操作,请尽可能使用仅发送增量信息的协议。
rsync
这样做。FTP 依赖于 TCP,而 TCP 更注重可靠性而非性能。UDP 的工作方式使其更注重性能而非可靠性。除了 TFTP 之外,没有其他常见的、得到良好支持的基于 UDP 的文件传输方法,因此您不应该在 Internet 上使用 TFTP。您可以查看这但是,这不是我尝试过的东西(编辑:进一步研究这个问题,不确定是否存在命令行或其他工具,它似乎是一个库。)