前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >TCP和UDP的区别

TCP和UDP的区别

作者头像
WahFung
发布2022-05-11 17:00:24
5840
发布2022-05-11 17:00:24
举报
文章被收录于专栏:前端技术分享前端技术分享

前言

我们都知道TCP和UDP作为传输协议,被广泛应用于网络通信。这些基础的网络知识也是需要了解,既然两种传输协议都可以用于通信,那它们两者又有何区别。本文将以下面5个点进行对比:

  • 连接特点
  • 交互通信
  • 数据处理
  • 传输服务
  • 报头开销

UDP和TCP在TCP/IP模型中的位置

在比较这两者的区别之前,有必要了解下TCP/IP模型,这有利于我们理解下面的内容。

网络模型并非一开始就有的,在网络发展初期,网络协议都是互联网公司自己定义的。由于各家公司的网络协议不同,没有统一标准的网络协议来规定,各个公司的协议都不能互通。这对于网络发展很不利,为了解决这个问题,国际标准化组织 1984 提出的模型标准,简称 OSI(Open Systems Interconnection Model),这是一个标准,并非实现。TCP/IP 协议就是基于此模型设计。

TCP/IP模型是一个四层模型,自底而上分别是网络接口层、网络层、传输层和应用层

  • 网络接口层:实现网卡接口的网络驱动程序,以处理数据在物理媒介(比如以太网、令牌环等)上的传输
  • 网络层:实现数据包的选路和转发
  • 传输层:为主机的应用程序提供端到端的通信,传输层只关心通信的起始端和目的端,而不在乎数据包的中转过程
  • 应用层:负责处理应用程序的逻辑

连接特点

UDP

UDP是一种无连接的传输层协议,因为在使用UDP发送报文段时,发送端和接收端的传输层实体之间没有进行握手。所谓的握手,就是发送端和接收端通过发送一些特定的报文段来互相确认,从而为发送做准备。由于UDP可以不用任何准备即可进行数据数据传输,因此UDP的数据传输速度会比TCP快。

TCP

TCP是一种面向连接的传输层协议,网络系统需要在两台计算机之间发送数据之前先建立连接。类似于我们打电话一样,通信之前需要呼叫和应答。其过程分为建立连接(三次握手)、使用连接(数据传输)、释放连接(四次挥手)三个过程。由于这些机制,TCP数据传输会比UDP可靠,即确保双方都互通后再发送数据,保证数据包能够完整的发送过去。

交互通信

UDP

UDP是无连接的传输协议,不需要维护连接状态,包括收发状态,可以实现一对一,一对多,多对一和多对多的交互通信。

TCP

TCP是面向连接的传输协议,发送数据需要双方建立连接,属于端到端的通信,实现的是一对一的交互通信。

数据处理

UDP

UDP是面向报文的。发送端的传输层对应用层交下来的报文,在添加报头后就向下交付给IP层。既不拆分,也不合并,而是保留这些报文的边界。接收端传输层接收到报文会去掉报头,将数据部分交给应用层。

TCP

TCP是面向字节流的。发送端的应用层将数据字节流交付到传输层的缓存区,根据发送策略对字节流分片,添加报头发送TCP报文。接收端传输层收到报文后,去掉报头存储到接收缓存。接收缓存将字节流片段交给应用层,应用层再将字节流片段重组还原为可用的数据。

传输服务

UDP

UDP提供无连接的不可靠服务。在发送端到接收端的传递过程中出现数据包丢失或接收误码的情况,协议本身并不能做出任何检测或提示。UDP只是尽可能快地把数据扔到网络上,并不保证数据包的完整性。因此UDP没有可靠性保证、顺序保证和流量控制字段。

TCP

TCP提供面向连接的可靠服务。在发送端到接收端的传递过程中出现数据包丢失或接收误码的情况,接收端在定时器超时后没有收到相应的确认,发送端会重新发送数据包。TCP连接每一方的接收缓冲空间大小都固定,接收端只允许另一端发送接收端缓冲区所能接纳的数据,TCP在此基础上提供流量控制,防止较快主机致使较慢主机的缓冲区溢出。

报头开销

UDP

UDP传输的段有8个字节的报头和有效载荷字段构成。UDP报头由4个域组成,其中每个域各占用2个字节,具体包括源端口号、目标端口号、数据报长度、校验和。

  • 端口号:使用端口号为不同的应用保留其各自的数据传输通道
  • 长度:数据报的长度是指包括报头和数据部分在内的总字节数
  • 校验和:使用报头中的校验值来保证数据的安全

TCP

TCP传输的段有最小20字节的报头和有效载荷字段构成。TCP具体组成包括端口号、序号、确认号、保留域、标志域、窗口、校验和、紧急指针构成,另外可扩展首部包括选项和填充。

总结

UDP

特点

  • 无连接
  • 支持一对一,一对多,多对一和多对多的通信
  • 面向报文
  • 不可靠传输,不使用流量控制和拥塞控制
  • 报头开销小,仅8字节

应用场景

常用于实时应用。例如视频直播、IP电话,QQ语音和QQ视频就是使用UDP的协议。

TCP

特点

  • 面向连接
  • 一对一通信
  • 面向字节流
  • 可靠传输,使用流量控制和拥塞控制
  • 报头最小20字节,最大60字节

应用场景

常用于对可靠性要求高的通信。例如文件传输。

本文部分配图来源于https://www.bilibili.com/video/av40163489

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-02-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • UDP和TCP在TCP/IP模型中的位置
  • 连接特点
    • UDP
      • TCP
      • 交互通信
        • UDP
          • TCP
          • 数据处理
            • UDP
              • TCP
              • 传输服务
                • UDP
                  • TCP
                  • 报头开销
                    • UDP
                      • TCP
                      • 总结
                        • UDP
                          • 特点
                          • 应用场景
                        • TCP
                          • 特点
                          • 应用场景
                      相关产品与服务
                      云直播
                      云直播(Cloud Streaming Services,CSS)为您提供极速、稳定、专业的云端直播处理服务,根据业务的不同直播场景需求,云直播提供了标准直播、快直播、云导播台三种服务,分别针对大规模实时观看、超低延时直播、便捷云端导播的场景,配合腾讯云视立方·直播 SDK,为您提供一站式的音视频直播解决方案。
                      领券
                      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档