TCP 和 UDP 都是运输层的协议,负责运输应用层产生的数据。
UDP(user datagram protocol),用户数据报协议。不需要 握手 操作,通信速度快,允许网络上的其他主机在接收方同意通信之前传输数据。特点如下:
- 能够支持容忍数据包丢失的宽带密集型应用程序
- 速度快
- 能够发送大量的数据包
- 允许DNS查找
TCP(transmission control protocol),传输控制协议。能确定计算机连接到 internet 及它们之间的数据传输。通过三次握手(用来启动和确认TCP连接的过程)建立TCP连接,连接建立后才可发送数据,数据传输完成后再关闭虚拟电路来断开连接。特点如下:
- 能够确保连接的建立和数据包的发送
- 支持错误重传机制
- 支持拥塞控制,能够在网络拥堵的情况下延迟发送。
- 能够提供错误校验和甄别有害的数据包。
两者的区别整理
TCP | UDP |
是面向连接的协议 | 是无连接的协议 |
在发送数据前需要先建立连接再发送数据 | 无需建立连接就可以直接发送大量数据 |
会按照特定顺序重新排列数据包 | 数据包没有固定顺序,数据包相互独立 |
传输速度较慢 | 传输速度较快 |
头部字节:20个字节 | 头部字节:8个字节 |
会进行错误校验,能够错误恢复 | 会错误检查,但是会丢弃错误的数据包 |
有发送确认 | 没有发送确认 |
会使用握手协议:SYN、SYN_ACK、ACK | 无握手协议 |
可以确保将数据传送到路由器 | 不能保证将数据传送到目标 |
以上整理参考:https://mp.weixin.qq.com/s/qetBsYmDqwi_nJVnKmBw8Q