我想知道是否有任何方法可以使用 IPv4 发送大于 65,536 字节的文件
问问题
328 次
3 回答
3
您不应该使用原始 IP。
TCP/IP 的实现通常被称为“堆栈”是有原因的。通信通常是通过在彼此之上分层协议来完成的。每一层都采用它下面的层,要么抽象出低层协议的某些方面,要么添加有用的功能。
例如,Web 服务器最终会使用多层协议:
- 以太网、WiFi 或其他此类协议,它们提供物理(或无线电)连接和信令规则,使机器能够相互交谈。
- IP,增加了路由和全局可用地址的概念。
- TCP,其中
- 增加了“端口”的概念,允许多个应用同时使用同一个IP地址,而不会互相干扰;
- 将 IP 的离散数据包抽象为全双工、任意长度的字节流;和
- 添加了对错误和丢失/重复数据的检测和纠正。
- SSL 和/或 TLS(有时),增加半透明加密(一旦建立);
- HTTP,它通过将其内容组织成消息(请求和响应)来为流添加结构,这些消息可能(并且几乎总是)包含有关如何解释消息正文的元数据。
在 API 级别,您几乎总是从传输层协议开始,例如 TCP、UDP 或有时是 SCTP。出于安全原因,操作系统很少允许您直接通过 IP 进行通信。
因此,为了传输文件,您需要
- 与另一台机器建立 TCP“连接”,该机器通常在某个已知端口上运行服务。(对于 HTTP,通常为 80。)这本身就消除了 IP 对数据大小施加的任何限制。
- 如果另一端需要,请设置 SSL 或 TLS。不过,您可能不应该打扰他们。这是一个可选的、重要的附加功能,大多数服务器都提供了一些没有它的通信方式。
- 使用另一端理解的应用层协议来发送存储文件(当然还有文件内容)的请求。
于 2013-09-03T15:54:20.673 回答
1
您使用的IP版本与您可以传输的文件大小没有关系,请做好功课。
于 2013-09-03T14:57:37.853 回答
0
这取决于您所说的“文件”是什么意思。每天都会通过网络发送大文件,它仍然像 99% 的 IPv4,所以我想最正确的答案是“是”。您可能想阅读传输协议,其中最突出的是TCP。
于 2013-09-03T14:57:57.457 回答