Chinaunix

标题: udp自己实现tcp的功能有什么好处? [打印本页]

作者: bandaotidejia    时间: 2014-08-20 18:23
标题: udp自己实现tcp的功能有什么好处?
如题  一些应用需要使用udp 但同时需要可靠 保序  但为何不直接使用TCP
呢?
作者: crazyhadoop    时间: 2014-08-20 18:25
没啥好处,一旦网络情况不太好,拥塞,用UDP简直是雪上加霜
作者: bandaotidejia    时间: 2014-08-20 18:38
不可能把 很多成熟的公司采用这样的技术 肯定有他的理由
作者: Dannysd    时间: 2014-08-20 20:32
可能是因为tcp有时候会粘包
作者: windoze    时间: 2014-08-20 20:35
当然是穿防火墙啊
作者: koolcoy    时间: 2014-08-20 20:36
为了做防火墙、NAT穿透
作者: bandaotidejia    时间: 2014-08-20 20:37
本帖最后由 bandaotidejia 于 2014-08-20 20:41 编辑

tcp就穿不了吗?
我知道有些网络设备会把一些不知名协议给禁掉,那样封装成http不就行了吗
作者: sxcong    时间: 2014-08-21 19:48
回复 7# bandaotidejia

不是穿不了,但很多情况下UDP成功率高。另外,普通的P2P,比如传文件,用TCP没问题,但实时性要求高的,比如RTP传实时视频,都用UDP。原则就是尽快地向外发,丢包无所谓,别影响后面的帧。注意,是实时的视频,比如视频聊天,不是在线看电影,可以下载缓冲一段时间再看。



   
作者: sxcong    时间: 2014-08-21 19:52
回复 7# bandaotidejia


HTTP每请求就创建一个连接,这个开销不小吧,而且还是单方向的。
不过TCP也有用,同样上面的说RTP用来传视频,但统计信息之类的是RTCP,就用TCP传。
归纳来说,小数据量,但对可靠性要求高的,就用TCP。数据量大的,不管可靠还是不可靠,现在大多数软件用UDP比较多,比如常用的QQ传文件,传视频,传语音。
作者: bandaotidejia    时间: 2014-08-23 08:35
哦,多谢,这样就清楚多了
作者: starwing83    时间: 2014-08-23 16:15
还有一点,TCP是有拥堵控制的,意思是,如果发现丢包严重,会自动降低占用的带宽,防止网络堵死,但是如果其中一个网络成员不是TCP,那么你懂的

上迅雷就发现网页都打不开了(当然这是几年前的事情了)就是这个原因。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2