Sockets 通过Web传输单个大文件。应用层和传输层选项

Sockets 通过Web传输单个大文件。应用层和传输层选项,sockets,networking,tcp,network-programming,udp,Sockets,Networking,Tcp,Network Programming,Udp,虽然也有类似的问题,但我无法找到一个能够总结数据传输协议的不同选项及其在速度、安全性和可靠性方面的优缺点的问题 作为一名开发人员,我创建了一个web服务,在服务器端生成一个大小从500Mb到5Gb的文件。我正在检查用于将文件传输到客户端的不同选项 据我所知,传输层中两个最突出的解决方案是TCP和UDP,TCP提供了更可靠的传输,同时节省了时间成本,而UDP则牺牲了速度的可靠性 在应用层,我知道UDP的实现提供了可靠的传输,比如RUDP和UDT 提及可以使用的协议非常重要,这些协议无需客户机进行安

虽然也有类似的问题,但我无法找到一个能够总结数据传输协议的不同选项及其在速度、安全性和可靠性方面的优缺点的问题

作为一名开发人员,我创建了一个web服务,在服务器端生成一个大小从500Mb到5Gb的文件。我正在检查用于将文件传输到客户端的不同选项

据我所知,传输层中两个最突出的解决方案是TCP和UDP,TCP提供了更可靠的传输,同时节省了时间成本,而UDP则牺牲了速度的可靠性

在应用层,我知道UDP的实现提供了可靠的传输,比如RUDP和UDT

提及可以使用的协议非常重要,这些协议无需客户机进行安装或特殊配置即可从服务器端获取数据

我的问题是:

  • 是否有任何基于UDP的应用层协议在客户端开箱即用,如HTTP或FTP

  • 是否有基于TCP的协议提供与UDP协议类似的速度

  • UDP协议是否提供了一种安全的数据传输方式,如Https

  • 目标是

  • 交付数据时不丢失任何包
  • 以安全(加密)的方式交付数据

  • 对于实现,我目前使用JAX-WS和Glassfish作为应用服务器。

    您的整个问题看起来好像您已经决定TCP“太慢”,UDP是您的救星。您的问题缺少重要的细节:

  • 文件发送时接收是否重要
  • 您在web服务中使用了哪些技术/框架
  • 您可以在客户端使用哪些技术/框架
  • 您目前在传输速度方面是否存在任何问题?这是谁的错,序列化的错,代码的错,网络的错还是TCP的错
  • 对于1,如果是,则忘记UDP。TCP相对较慢,因为它保证了数据的有序传输(只要连接存在),这是使用UDP永远无法实现的。看

    对于2和3,一些问题可以通过应用不同的序列化程序、格式化程序或传输来解决,但这完全取决于您如何实现服务和客户机

    对于4,我不认为TCP太慢。一旦窗口足够大并且达到了最快速度,当输入适当大小的数据时,它将使用所有可用带宽。例如,见

    现在回答您的问题:

    是否有任何基于UDP的应用层协议在客户端开箱即用,如HTTP或FTP

    取决于你的箱子

    是否有基于TCP的协议提供与UDP协议类似的速度

    是的,例如,在损失可控的情况下

    UDP协议是否提供了一种安全的数据传输方式,如Https


    TCP和UDP都是传输,它们不关心您传输什么。安全性是分层的,请参见示例。

    非常感谢您的编辑和回复。我将尝试添加您报告中缺失的信息。您能否根据您的方框定义您的意思这意味着,由于最常见的传输协议默认安装在任何现代操作系统上,并且在其上分层的协议通常由应用程序提供,因此它取决于您要在其中安装客户端的环境。