A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 李娟 黑马帝   /  2011-12-20 14:06  /  2315 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 李娟 于 2011-12-22 09:12 编辑

TCP是以流的方式发送数据的,而UDP是通过字节数组方式发送,但为什么是UDP发送效率高呢?

评分

参与人数 1技术分 +1 收起 理由
吴上储 + 1

查看全部评分

7 个回复

倒序浏览
因为UDP包发送出去后,就不管了,是否出错,是否发送给对方了都不管了。而TCP有确认机制,对发送出去的数据有许多确认的判断,所以udp效率高点。

评分

参与人数 1技术分 +1 收起 理由
吴上储 + 1

查看全部评分

回复 使用道具 举报
李娟 黑马帝 2011-12-20 14:12:59
藤椅
f64412300 发表于 2011-12-20 14:10
因为UDP包发送出去后,就不管了,是否出错,是否发送给对方了都不管了。而TCP有确认机制,对发送出去的数据 ...

谢谢,回答我很满意:)

评分

参与人数 1黑马币 +1 收起 理由
1253431283 + 1

查看全部评分

回复 使用道具 举报
发送模式不一样,Tcp是流模式,UDP是数据报模式,TCP保证数据正确性,UDP可能丢包,TCP保证数据顺序,UDP不保证,TCP是面向连接的,有比较高的可靠性,一些要求比较高的服务一般使用这个协议,所以它整体上速度比较慢,而UDP是面向无连接的通信协议,该协议使得数据传输的速度得到了大幅度提高。因为它不考虑接受端将一某种方式接受,它只负责进行发送。所以效率要的高

评分

参与人数 1技术分 +1 收起 理由
吴上储 + 1

查看全部评分

回复 使用道具 举报
李娟 黑马帝 2011-12-20 14:28:32
报纸
海中的游弋草 发表于 2011-12-20 14:26
发送模式不一样,Tcp是流模式,UDP是数据报模式,TCP保证数据正确性,UDP可能丢包,TCP保证数据顺序,UDP不 ...

这是按照基本属性进行的回答,我也很满意,谢谢:)
回复 使用道具 举报
刘健 黑马帝 2011-12-20 21:55:27
地板
因为TCP传输之前还要先建立连接,USP是不需要的

评分

参与人数 1技术分 +1 收起 理由
吴上储 + 1

查看全部评分

回复 使用道具 举报
陈帅雷 黑马帝 2011-12-21 18:43:17
7#
UDP数据包发送出去之后,就不再管是否丢失,是否出错,是否发送给对方了。也就是说他只管发送。而TCP有确认机制,对发送出去的数据有许多确认的判断,这当然是需要时间来处理的,虽然时间对我们来讲很快,但对网络中,大量数据延时是必然的了。所以UDP发送的数据效率要高,尤其是对现在网络传送介质较之以前有大量提高的前提下,出错的机会也减少了不少

评分

参与人数 1技术分 +1 收起 理由
吴上储 + 1

查看全部评分

回复 使用道具 举报
韩军博 黑马帝 2011-12-21 23:06:08
8#
其实建议楼主认真学习一下计算机网络这门课程。对此就会深刻理解。
网络一般都是五层:应用层(最高层)--》运输层--》网络层--》数据链路层--》物理层(最底层)。
首先TCP,和UDP都是运输层的协议,都是将应用层的数据在运输层加一个TCP或是UDP的头部,然后在网络层加一个IP数据报的头部变为IP数据报,再在数据链路层加上头部和尾部,封装成帧,以帧的形式在网络间传递,等到了目的主机,然后在将这些头部一层层的拆解,从底层的物理层传送到应用层的相应的进程。
其中在网络层以下的都是做的尽最大努力交付,而运输层的TCP提供了差错检测和一系列的重传机制,保证传输是可靠的,即数据是完整和正确的,所以这就会浪费主机的内存和CPU,当然效率会低。TCP仅仅用在一对一的通信。
而UDP则是没有提供很多重传机制等来保证数据的准确性和完整性,如果检测数据出错了,仅仅是丢弃掉,多用在视频会议,或是实时的视频等对信息要求不是很严厉的场合。
楼主用到的TCP相关的类和UDP相关的类和网络中的协议是不太相同的,不要混淆。

评分

参与人数 1技术分 +1 收起 理由
吴上储 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马