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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 罗宵 中级黑马   /  2012-7-27 12:58  /  2266 人查看  /  13 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

UDP 和TCP是怎么回事,为什么UDP服务端和客户端哪个先开都可以

13 个回复

正序浏览
TCP协议是基于连接的协议,在正式收发数据前,必须和对方建立可靠的连接,才能收发数据,适用于对可靠性要求高的数据通信体统

UDP协议是面向非连接的协议,在正式通信前不必与对方先建立连接,而是直接就把数据包发送过去,适用于一次传送少量数据、对可靠性要求不高的应用环境。
回复 使用道具 举报
两种不同的协议而已,UDP实现起来比TCP更加简单。TCP有连接,所以握手过程中会消耗资源,过程为可靠连接,不会丢失数据,适合大数据量交换。然而UDP为非可靠连接,会丢包,没有校验,速度快,不需要握手过程。UDP把需要发送的包忘网络上一发就不去管他,主要用于一些突发的小数据包,比如OICQ,而TCP还要实现差错控制,流量控制等,主要用于持续的数据流,如HTTP FTP等协议。UDP没有 客户端 和服务器的区分,随便那个先发都可以。
不同的机器发过来也行。只要发到相应的ip 和端口就行了。
因为UDP和TCP不同,UDP是不需要首先建立连接的。
其实这只是一些定义上的理解问题,不同人理解方式不一样,但是本质上是相同的,建议多看下原始定义。
回复 使用道具 举报
1,不需要建立连接,(面向无连接).不管有没有连接就是发数据,如果对方在会收到,如果不在就丢,
2,大小为64k
3,因为无连接速度快
4,不可靠

应用
聊天,视屏会议,桌面共享  步话机

TCP
1,必须面向连接
2,进行三次握手机制,进行连接通道,数据大量传输
3,如果断开,数据无法传输,
4,特点比较占用资源  应用  下载
回复 使用道具 举报
UDP(User Data Protocol,用户数据报协议)是面向无连接协议,这个协议不管你和对方有没有连上,只要自己连上就发数据,

TCP(Transmission Control Protocol )传输控制协议TCP是一种面向连接 ,这个协议要求通讯双方经过三次“握手”,确认都在线才能传数据。

所以  UDP服务端和客户端哪个先开多无所谓,连上了它就不管别的,就是有数据就传。
回复 使用道具 举报
楼上的各位兄弟都已经回答的很好了,我说一个我以前的实际项目中用到的例子。我们给物流部门做的GPS跟踪系统,用于后台监控车辆,计算行驶里程。其中车辆上都安装了GPS设备,这个GPS设备回传后台的数据就是用的UDP协议。GPS设置每隔三秒回传一次经纬度,后台会用这些经纬度连线然后计算整个行驶里程。UDP最重要的是理解,他是用在不需要高要求的地方,只要保证速度快,数据丢失一点没关系。有了实际例子,有助于更好的理解理论知识。
回复 使用道具 举报
...这么多人总结了...
我就通俗地说一下
UDP就好像村儿里头的大喇叭广播,只管放出声音,不管你听不听得到 广播式的哦 所以这种方法不会可靠
TCP就好像你网上下载 你跟服务器先建立一个通路 建好后就可以大数据量地安全传输了 这条虚拟的通路其它非专业人士是收不到滴
回复 使用道具 举报
陈雷 中级黑马 2012-7-27 15:58:52
8#
本帖最后由 陈雷 于 2012-7-27 16:13 编辑

TCP 和UDP协议属于传输层协议。其中TCP提供IP环境下的数据可靠传输,它提供的服务包括数据流传送、可靠性、有效流控、全双工操作和多路复用。通过面向连接、端到端和可靠的数据包发送。
UDP(User Data Protocol,用户数据报协议)是与TCP相对应的协议。它是面向非连接的协议,它不与对方建立连接,而是直接就把数据包发送过去!
TCP对应的是可靠性要求高的应用,而UDP对应的则是可靠性要求低、传输经济的应用。
TCP支持的应用协议主要有:Telnet、FTP、SMTP等;UDP支持的应用层协议主要有:NFS、SNMP、DNS、TFTP等。


用那个谁的话说  TCP是打电话 需要双方都在的时候才能通信   UDP是发短信  一方发给另一方 然后就完了  不管对方接到没有 (虽然现在有提示)
回复 使用道具 举报
UDP协议(面向无连接)
将数据及源和目的封装成数据包,不需要建立连接,数据会丢包。
每个数据包的大小都限制在64K内
因为是无连接的,所以是不可靠的协议,且速度快。
聊天,在线会议等就是用UDP协议。

TCP协议:
建立连接,形成传输数据的通道,在连接中进行大数据量传输。
通过三次握手完成连接,是可靠的协议。
且因为必须建立连接才能传输数据,所以效率会稍低。
下载用的就是TCP协议。

因为UDP是面向无连接的协议,所以UDP的客户端和服务端哪个先开都没有影响。就好像QQ的离线发送文件和离线消息,无连接也可以传输数据,就是采用UDP。
而TCP是必须建立连接才能传输数据的协议,所以必须先开服务端,否则无法建立连接。
回复 使用道具 举报
1、UDP协议:将数据及源和目的封装成数据包中,不需要建立连接。
   TCP协议:建立连接,形成传输数据的通道。
2、UDP协议:每个数据包的大小限制在64k内。
   TCP协议:在连接中进行大数据量传输。
3、UDP协议:因无连接,是不可靠协议。
   TCP协议:通过三次握手完成连接,是可靠协议。
4、UDP协议:不需要建立连接,速度快。
   TCP协议:必须建立连接,效率会稍低。
回复 使用道具 举报
UDP和TCP之间的区别:
UDP:面向无连接的。把数据打成数据包,一次包不能超过64k。不可靠。速度快。(聊天,凌波(桌面共享),网络视频会议,步话机(求速度,不求数据不丢失))
TCP:面向连接。大量数据。通过三次握手完成连接,可靠协议。必须建立,效率会稍低。(打电话,下载)
因为UDP是无面向连接,不怕数据丢失,所以服务端和客户端先开那个都可以,但是TCP是面向连接的,必须要先开启服务端,在开启客户端。

评分

参与人数 1技术分 +1 收起 理由
蒋映辉 + 1

查看全部评分

回复 使用道具 举报
TCP“面向连接”先建立连接 再传输, 更安全,它像和朋友打电话 接通才能说。


UDP是面向非连接的协议,它不与对方建立连接,而是直接就把数据包发送过去。可靠性不高,它像聊QQ 不管对方在不在线都能说,

评分

参与人数 1技术分 +1 收起 理由
蒋映辉 + 1

查看全部评分

回复 使用道具 举报
本帖最后由 sun~~ 于 2012-7-27 13:13 编辑

UDP协议是无面向连接的、不可靠的、无序的、无流量控制的传输层协议,UDP发送的每个数据报是记录型的数据报,所谓的记录型数据报就是接收进程可以识别接收到的数据报的记录边界。
TCP协议是面向连接的、可靠的、有序的、拥有流量控制的传输层协议,它是字节流的协议,无记录边界。

评分

参与人数 1技术分 +1 收起 理由
蒋映辉 + 1

查看全部评分

回复 使用道具 举报
UDP是面向无连接
TCP是面向有链接,必须连接成功才能发送接受数据
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马