TCP与UDP

TCP和UDP的区别

TCP是面向连接的通信服务
UDP是面向无连接的通信服务

TCP提供可靠的数据传输
UDP是不可靠的数据传输,可能会丢包

TCP传输速度慢
UDP传输速度快

TCP是面向字节流的
UDP是面向报文的

TCP的报头长度至少20字节
UDP报头长度只有8字节

TCP一对一
UDP可以一对一,一对多

传输方式的不同

UDP是面向报文的
应用层交给UDP多长的报文,UDP就照样发送,即一次发送一个报文。

TCP是面向字节流的:
虽然应用层和TCP的交互也是一次一个数据块,但是TCP并不会总是一次发送一个数据块;TCP有一个缓冲区,当应用层传送的数据块太长的话,TCP会把它划分短一点再传送;如果应用层一次直发送一个字节的话,TCP也会累积到足够多的字节后在再发送。

连接方式的不同

UDP是面向无连接的
UDP传输数据时并不建立连接,而是通过简单地抓取应用程序的数据,然后尽可能快的把数据包扔到网络上,属于不可靠的连接。

TCP是面向连接的
TCP需要经过三次握手建立连接、四次挥手断开连接,是可靠的连接。


补充

为什么UDP比TCP快?
1. TCP需要三次握手
2. TCP有拥塞控制,控制流量等机制

为什么TCP比UDP可靠?
1. TCP是面向有连接的,建立连接之后才发送数据;而UDP则不管对方存不存在都会发送数据。
2. TCP有确认机制,接收端每收到一个正确包都会回应给发送端。超时或者数据包不完整的话发送端会重传。UDP没有。因此可能丢包。

什么时候使用TCP?
当对网络通讯质量有要求的时候,比如:整个数据要准确无误的传递给对方,这往往用于一些要求可靠的应用,比如HTTP、HTTPS、FTP等传输文件的协议,POP、SMTP等邮件传输的协议。

什么时候应该使用UDP?
当对网络通讯质量要求不高的时候,要求网络通讯速度能尽量的快,这时就可以使用UDP。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 在使用Xcode写代码的时候我们经常需要重复写一些代码或者项目结构,这时候我们可以使用Xcode的自定义代码块和文...
    南调江南阅读 7,906评论 0 1
  • 近期学习刘润老师的专栏,越发觉得实用性很强,虽然个人目前还用不到,近期系列文章将以笔记+个人思考的方式记录,加深学...
    蜜糖771阅读 6,732评论 0 1
  • 快到正午,太阳出来了,气温还在零度以下。阳光照在脸上,只觉得刺眼,没觉得丝毫暖意。 即便吹着的一点儿微风都让人像有...
    成不熟阅读 1,337评论 0 0

友情链接更多精彩内容