理解UDP套接字

原创 2016年06月02日 08:06:55
TCP 是面向连接的传输协议,建立连接时要经过三次握手,断开连接时要经过四次握手,中间传输数据时也要回复ACK包确认,多种机制保证了数据能够正确到达,不会丢失或出错。

UDP 是非连接的传输协议,没有建立连接和断开连接的过程,它只是简单地把数据丢到网络中,也不需要ACK包确认。

UDP 传输数据就好像我们邮寄包裹,邮寄前需要填好寄件人和收件人地址,之后送到快递公司即可,但包裹是否正确送达、是否损坏我们无法得知,也无法保证。UDP 协议也是如此,它只管把数据包发送到网络,然后就不管了,如果数据丢失或损坏,发送端是无法知道的,当然也不会重发。

既然如此,TCP应该是更加优质的传输协议吧?

如果只考虑可靠性,TCP的确比UDP好。但UDP在结构上比TCP更加简洁,不会发送ACK的应答消息,也不会给数据包分配Seq序号,所以UDP的传输效率有时会比TCP高出很多,编程中实现UDP也比TCP简单。

UDP 的可靠性虽然比不上TCP,但也不会像想象中那么频繁地发生数据损毁,在更加重视传输效率而非可靠性的情况下,UDP是一种很好的选择。比如视频通信或音频通信,就非常适合采用UDP协议;通信时数据必须高效传输才不会产生“卡顿”现象,用户体验才更加流畅,如果丢失几个数据包,视频画面可能会出现“雪花”,音频可能会夹带一些杂音,这些都是无妨的。

与UDP相比,TCP的生命在于流控制,这保证了数据传输的正确性。

最后需要说明的是:TCP的速度无法超越UDP,但在收发某些类型的数据时有可能接近UDP。例如,每次交换的数据量越大,TCP 的传输速率就越接近于 UDP。
版权声明:本文为芝麻软件工作室原创文章,未经芝麻软件工作室允许不得转载。

UDP的主要特点、首部格式及功能

UDP协议全称是用户数据报协议,在网络中它与TCP协议一样用于处理数据包,是一种无连接的协议。在OSI模型中,在第四层——传输层,处于IP协议的上一层。UDP有不提供数据包分组、组装和不能对数据包进行...
  • why_still_confused
  • why_still_confused
  • 2016年06月13日 16:46
  • 3225

TCP与UDP的特点和区别

面向连接的TCP       TCP面向连接通信,所以握手过程会消耗资源,过程为可靠连接,不会丢失数据,适合大数据量交换       “面向连接”就是在正式通信前必须要与对方建立起连接...
  • kevinxxw
  • kevinxxw
  • 2014年02月26日 17:36
  • 5132

TCP和UDP的区别和优缺点

1、TCP与UDP区别总结: 1、TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前不需要建立连接 2、TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不...
  • xiaobangkuaipao
  • xiaobangkuaipao
  • 2017年08月06日 20:32
  • 1720

20、TCP与UDP的概念,相互的区别及优劣

1、TCP(Transmission Control Protocol)的概念      TCP是一种面向连接的,提供可靠交付服务和全双工通信的,基于字节流的端到端的传输层通信协议。 TC...
  • xie294777315
  • xie294777315
  • 2014年04月27日 22:17
  • 1486

rtsp 、udp之间的关系 (比较清晰)

http://blog.sina.com.cn/s/blog_7404e0130102v7ki.html IP:网络协议。只管发data TCP:传输控制协议。只管发正确的...
  • STN_LCD
  • STN_LCD
  • 2017年04月01日 09:43
  • 968

Socket UDP疑惑梳理

1 UDP的传输方式:面向报文 面向报文的传输方式决定了UDP的数据发送方式是一份一份的,也就是应用层交给UDP多长的报文,UDP就照样发送,即一次发送一个报文。那么UDP的报文大小由哪些影响因素呢...
  • lixiaoguang20
  • lixiaoguang20
  • 2017年01月12日 14:17
  • 406

计算机网络-UDP协议

UDP协议特点 无连接 不可靠 面向数据报 协议格式源端口与目的端口:可与TCP端口重复。 UDP长度:包括首部长度和数据长度,单位为字节,注意数据长度可以为0。 UDP检验和:校验的是UDP首部...
  • u012619640
  • u012619640
  • 2016年01月30日 21:29
  • 333

QT开发之UDP协议

众所周知,UDP协议是轻量级,不可靠,面向数据包,无连接的协议.通过两个应用程序,一个实现发送数据,一个接受数据.新建Qt Gui应用项目,工程文件后面添加   QT  +=network.  以后就...
  • qq_21792169
  • qq_21792169
  • 2016年12月10日 15:53
  • 1151

TCP与UDP的区别

TCP和UDP是OSI模型中的运输层中的协议。TCP提供可靠的通信传输,而UDP则常被用于让广播和细节控制交给应用的通信传输。 UDP(User Datagram Protocol)   ...
  • yipiankongbai
  • yipiankongbai
  • 2014年04月24日 21:29
  • 52079

TCP和UDP区别通俗理解

TCP协议与UDP协议的区别     首先咱们弄清楚,TCP协议和UCP协议与TCP/IP协议的联系,很多人犯糊涂了,一直都是说TCP/IP协议与UDP协议的区别,我觉得这是没有从本质上弄清楚网络通信...
  • u014682691
  • u014682691
  • 2016年07月29日 09:46
  • 3839
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:理解UDP套接字
举报原因:
原因补充:

(最多只允许输入30个字)