Fri*_*Kim 4 networking internet cache
为了清楚地表明我的问题,我将使用相当高的数字。文件服务器通过 1 gbps 线路连接到 Internet。服务器正在向客户端发送一个 100 GB 的文件。该文件被分割成数据包并以 1 gbps 的速度发送到客户端 ISP。但是,客户端通过 1 mbps 线路连接到 ISP。这意味着 ISP 必须保存/缓存从文件服务器发送给它的所有数据,直到客户端接收到所有数据。
这是如何完成的,还是服务器以与服务器和客户端之间最慢的线路相同的速率发送数据包?
小智 12
Internet 不只使用一种协议。它甚至不是一次只使用一种协议:它实际上同时使用多种协议,它们相互叠加以做各种不同的事情。如果我们把事情简单化一点,你可以说它使用了四个。
我提到的那些文件传输协议通常堆叠在 TCP 之上(它本身堆叠在 IP 之上),这是我们解决您的特定问题的地方。TCP 尽其所能地尝试像机器之间的直接线路一样工作:当服务器发送数据包时,它可以确保客户端收到它,并且可以确保客户端以相同的顺序收到它的数据包服务器发送了它们。它执行此操作的部分方法是服务器发送的每个数据包都必须由客户端确认:它会发送一个小信号,说“好的,我收到了你发送的那个数据包;我已经准备好迎接下一个了。” 如果服务器没有得到那个确认,它会一直发送数据包直到它收到(或者决定这永远不会工作并放弃)。
这是回答你的问题的关键。直到它知道包1打通,这是不可能发生的,直到数据包1得到确认,且服务器不能发送数据包2是不可能发生的,直到数据包1真的完了。链中间的服务器不必缓存任何数据(无论如何一次不超过一个数据包),因为当一台机器甚至看到数据包 2 时,它就知道它不再需要数据包 1 .
最后一点:从技术上说,这只是意味着互联网不具有高速缓存数据你谈论的方式。如果有人真的想缓存所有这些数据,他们可以;协议中没有任何内容可以真正阻止它的发生。但是 Internet不需要这些缓存来工作。
| 归档时间: |
|
| 查看次数: |
1556 次 |
| 最近记录: |