前言
TCP协议:TCP协议是传输控制协议,它是面向连接的可靠传输层协议,在传输数据之前必须建立连接
UDP协议:UDP协议是用户数据报协议,它是无连接的不可靠传输层协议,在传输数据之前不需要建立连接
区别
TCP协议 | UDP协议 |
面向连接 | 无连接 |
可靠 | 不可靠 |
只支持点对点 | 支持一对一、一对多、 多对一和多对多的交互通信 |
字节流形式传输 | 数据报文段形式传输 |
具备流量控制、拥塞控制等功能 | 不使用拥塞控制 |
所需资源较多 | 所需资shubu |
首部字节最小为20字节最多为60字节 | 协议首部字节为8字节 |
TCP协议是面向连接的,而UDP协议是无连接的
TCP协议面向连接体现在,在数据传输之前必须要通过“三次握手”与服务器建立连接,而UDP是无连接的,随时都可以发送数据。
TCP协议是传输可靠的,UDP协议是传输不可靠的
TCP的可靠性是体现在,在数据传输的过程中,TCP协议将数据分出若干报文段来进行传输,而当出现网络延迟、网络情况复杂等特殊情况时,出现丢包情况,TCP协议会在网络恢复时,将丢包重新进行发送,而UDP协议不考虑传输的数据是否准确,因从TCP协议是可靠传输,而UDP协议是不可靠传输。
TCP协议是以字节流形式传输的,UDP协议是以数据报文段形式传输的
TCP协议是把引用层传下来的报文看作是字节流,把字节流组织成大小不等的报文段,而UDP协议是面向报文传输
TCP传输效率较低,而UDP传输效率较高
TCP协议由于要保证数据的可靠性传输,因此在底层代码处理中要比UDP协议复杂的多,所以“以效率换安全”,因此TCP协议相对与UDP协议传输效率较低
TCP协议所需资源较多,UDP所需资源较少
正如分析TCP效率低一样,在维护TCP协议数据传输的可靠性这一方面,底层采用多种方式进行控制可靠性,例如:重传机制、滑动窗口、检验和、序列号等多种方式,因此TCP协议是所需资源较多的,而UDP协议是不保证可靠的,因此所需资源较少
TCP首部字节最小为20字节最多为60字节,UDP协议首部字节为8字节
在TCP首部中有一个数据偏移,该数据偏移是四字节,最大是1111表示15×4=60个字节,即表示TCP首部最大长度为60个字节,UDP的首部开销较小,只有8字节
TCP协议使用场景要求通信数据可靠,UDP协议要求通信速度快
TCP协议:文件传输、邮件传输等
UDP协议:音频、视频通话、直播等