TCP和UDP的区别
1. TCP 是什么
TCP 的全称是Transmission Control Protocol ,传输控制协议。它能够帮助你确定计算机连接到 Internet 以及它们之间的数据传输。通过三次握手来建立 TCP 连接,三次握手就是用来启动和确认 TCP 连接的过程。一旦连接建立后,就可以发送数据了,当数据传输完成后,会通过关闭虚拟电路来断开连接。
TCP 的主要特点有
- TCP 能够确保连接的建立和数据包的发送
- TCP 支持错误重传机制
- TCP 支持拥塞控制,能够在网络拥堵的情况下延迟发送
- TCP 能够提供错误校验和,甄别有害的数据包。
TCP数据报格式:
16位源端口
16位目的端口
32位序号
32位确认序号
6个标志位
16位滑动窗口
存储空间:
2. UDP 是什么
UDP 的全称是 User Datagram Protocol,用户数据报协议。它不需要所谓的握手操作,从而加快了通信速度,允许网络上的其他主机在接收方同意通信之前进行数据传输。
数据报是与分组交换网络关联的传输单元。
UDP 的特点主要有
- UDP 能够支持容忍数据包丢失的带宽密集型应用程序
- UDP 具有低延迟的特点
- UDP 能够发送大量的数据包
- UDP 能够允许 DNS 查找,DNS 是建立在 UDP 之上的应用层协议。
UDP数据包格式:
16位源端口:
16位目的端口:
3. TCP 和 UDP 的不同
TCP | UDP |
---|---|
TCP是面向连接的协议 | UDP是无连接的协议 |
TCP在发送数据前先需要建立连接,然后再发送数据 | UDP无需建立连接就可以直接发送大量数据 |
TCP会按照特定顺序重新排列数据包 | UDP数据包没有固定顺序,所有数据包都相互独立 |
TCP传输的速度比较慢 | UDP传输会更快 |
TCP的头部字节有20字节 | UDP头部字节只需要8个字节 |
TCP是重量级的,在发送任何用户数据之前,TCP需要三次握手建立连接 | UDP是轻量级的,没有跟踪连接、消息排序等 |
TCP会进行错误校验,并能够进行错误恢复 | UDP也会错误检查,但会丢弃错误的数据包 |
TCP有发送确认 | UDP没有发送确认 |
TCP会使用握手协议,例如SYN、SYN-ACK,ACK | 无握手协议 |
TCP是可靠的,因为它可以确保将数据传送到路由器 | 在UDP中不能保证数据传送到目标 |