当前位置:  开发笔记 > 程序员 > 正文

流和UDP

如何解决《流和UDP》经验,为你挑选了2个好方法。

为什么UDP协议不支持TCP协议之类的流?



1> Jon Skeet..:

其他人给出了非常好的答案,但我认为类比可能会有所帮助.

想象一下,UDP有点像邮递员 - 在人们的门口放置信件,但从不检查他们是否真正看到了这封信,或者该人甚至存在.这很便宜,适用于发送给很多人的垃圾邮件(读取:广播包).

TCP更像是一个信使,他会敲门并亲自传递信息.如果你不在,他会回来试试一下.最终,你会收到消息 - 或者信使会知道他没有交付信息.您还可以通过信使向发件人发送邮件.

不要试图在我的类比中过多地阅读 - 它不像TCP中实际上只有一个"信使" - 但它可能有助于思考事物.特别是,想象一下你要向某人发送一系列信件,他们必须按顺序阅读 - 这对于邮递员来说无法工作(可靠),因为你可能会找到10个字母放在你的门垫上,不知道是什么命令来阅读它们.邮递员也可能在途中放弃了一些 - 而且没有人会知道.这不是可靠流的合适基础.

(另一方面,它是报纸发行的一个很好的模型.如果你碰巧错过了一些,这不是问题 - 你仍然会得到后者,那时你会更有趣.这就是为什么一些流媒体媒体解决方案使用UDP,尽管它没有提供可靠的实际流.)



2> unwind..:

好 ...

UDP是一种数据报协议.它旨在让应用程序发送不变数据报,而不需要高级协议来控制发生的事情.

"流"是一个高级概念,因此UDP无法支持.

许多应用程序最终在UDP上重新实现TCP的部分,以获得所需的延迟,顺序独立性,错误处理和带宽的特定混合.

推荐阅读
135369一生真爱_890
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有