TCP 是否提高了 IP 发送真正大文件的能力?

网络工程 通讯协议 ip 网络核心
2021-07-07 01:40:03

TCP 如何提高 IP 发送真正大文件的能力?给我看数学。(计算 IP 可以发送的最大数据包并乘以最大片段。将其与 TCP 可以做的比较。)

3个回答

IP是三层协议,TCP是四层协议。两种协议都不能理解文件。应用程序将数据发送到第 4 层 (TCP),TCP 会将数据分成块并将其封装在 TCP 段中。TCP 会将分段传递到第 3 层 (IP),后者又将分段封装在数据包中。IP 会将数据包传递到第 2 层(以太网),后者将数据包封装在帧中。然后以太网将帧传递给硬件(驱动程序),硬件(驱动程序)将帧序列化为线路上的位。

TCP 是许多第 4 层协议之一。它是一种面向连接的协议,它在另一端创建与 TCP 的双向对话。TCP 为乱序段的交付和重组提供保证,这就是为什么它经常用于文件传输,但应用程序可以使用像 UDP 这样的东西,它没有任何保证。使用 UDP,应用程序必须负责获取所有数据并将其重新组合成正确的顺序。

这篇维基百科文章可能会帮助您理解 OSI 模型。

TCP 提供了 IP 本身不具备的三个特性:

  1. 保证交货。如果数据包丢失,TCP 将检测并重新发送它。
  2. 包订购。如果数据包无序到达,TCP 可以按正确的顺序重新组装它们。
  3. 传输速率控制。TCP 允许接收方根据需要告诉发送方减速或加速。

实际上 TCP 运行在 IP 之上(即,您不能在没有 IP 的情况下专门运行 TCP)。

长话短说:在文件传输过程中涉及多种协议,并且假设 TCP/IP 总是比 UDP/IP 更适合大文件传输在技术上并不准确。

这是因为,如上所述,我们涉及许多协议(请查看http://docs.oracle.com/cd/E23823_01/html/816-4554/ipov-6.html#ipov-7),并且它们中的每一个都可以以彼此独有的、互补的甚至重复的方式实现功能。

实际例子:

  • FTP:运行在 TCP/IP 之上,它在网络不可靠的情况下是可靠的(当有谣言时,当 Internet 上的设备或链接出现故障等时)
  • TFTP:运行在 UDP/IP 之上,设计更简单,完全无法管理不可靠的网络(以及数据包未按正确顺序传递的情况),但开销较小

如果您在本地传输文件 - 可靠且确定性 - LAN,您使用 TFTP 所需的时间可能比使用 FTP 少,但如果出现问题,结果将是文件损坏或连接中止(需要您重新启动所有内容并丢失更多时间)。

即使从实际角度来看有问题,也没有人会阻止您使用 UDP,而是编写实现 TCP 功能的应用程序协议,如重传、窗口化、拥塞避免等。

现在,顺便说一句,我想说最有前途的协议是 WEBDAV (HTTP),它运行在 TCP/IP 上。

但回到你的问题,我的回答是:TCP 可以被认为是开发大型文件传输应用程序协议的更好选择,因为它具有一些我们可以开箱即用的内置功能,例如:

  • 拥塞避免:如果一个链接变得拥塞,两个对等点可以动态降低速度
  • 排序:如果包含文件有效载荷的数据包跨越不同的路径并以不同的顺序到达目的地,TCP 可以正确地重建有效载荷
  • 错误管理:实际管理与其他协议互补,如果部分传输丢失或损坏,则自动执行这些数据的重传