虽然有类似的问题,但我无法找到一个能够总结数据传输协议的不同选项及其在速度,安全性和可靠性方面的优缺点。
作为开发人员,我创建了一个Web服务,它在服务器端生成一个文件,大小范围从500Mb到5Gb。我正在研究将文件传输到客户端的不同选项。
据我所知,传输层中最突出的两个解决方案是TCP和UDP,TCP提供更可靠的传输,并且成本准时,UDP牺牲了速度的可靠性。
在应用程序层中,我知道存在UDP的实现,提供可靠的传输,如RUDP和UDT。
提及可以使用的协议非常重要,无需客户端要求进行安装或特殊配置即可从服务器端获取数据。
我的问题是:
基于UDP的任何应用层协议是否在客户端开箱即用,如HTTP或FTP?
基于TCP的协议是否提供与UDP类似的速度?
UDP协议是否提供了像Https一样传输数据的安全方式?
目标是
对于实现,我目前正在使用JAX-WS和Glassfish作为应用程序服务器。
答案 0 :(得分:1)
你的整个问题看起来就像你已经确定TCP“太慢”而UDP是你的救星。您的问题缺少重要细节:
对于1,如果是,则忘记UDP。 TCP相对较慢因为它保证了数据的有序传递(只要连接存在),这是你永远不会使用UDP的东西。见Which socket programming is best (TCP/UDP)?
对于2和3,您可以通过应用不同的序列化程序,格式化程序或传输来解决您的一些问题,但这完全取决于您如何实施服务和客户端。
4,我不相信TCP太慢了。一旦窗口足够大并且速度很快,它将在使用适当大小的数据时使用所有可用带宽。请参阅示例UDP vs TCP, how much faster is it?。
现在提出您的问题:
基于UDP的任何应用层协议是否在客户端开箱即用,如HTTP或FTP?
取决于你的盒子。
基于TCP的协议是否提供与UDP类似的速度?
是的,例如video streaming protocols,其中损失是可控的。
UDP协议是否提供了一种安全的方式来传输数据,如Https?
TCP和UDP是传输,它们不关心您传输的内容。安全性是最重要的,例如参见Datagram Transport Layer Security。