多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
[TOC] ## TCP报文请求头部 ![](https://img.kancloud.cn/e9/90/e990d6fd5909fd3be3c6984d0ee35c55_700x289.jpg) ![](https://img.kancloud.cn/2a/fc/2afc31ad92e05f832a24acade967860a_699x336.png)![](https://img.kancloud.cn/8e/e7/8ee7b559881e1b8b3e44c79b4a33be6a_674x360.png) ## UDP报文请求头部 ![](https://img.kancloud.cn/2a/52/2a527fec04505f1d7fd09b24d77c00da_892x379.png) 1. 源端口号,目的端口号:发送端和接收端的端口号 2. 长度:UDP用户数据报的长度,最小值是8字节(只有首部) 3. 校验和:检测UDP用户数据报在传输中是否出错,出错就丢弃 ## TCP和UDP有啥区别? \*\* UDP 的主要特点\*\* * UDP 是`无连接的`,即发送数据之前不需要建立连接(发送数据结束时也没有连接可释放),减少了开销和发送数据之前的时延 * UDP 使用`尽最大努力交付`,即不保证可靠交付,主机不需要维持复杂的连接状态表 * UDP 是`面向报文`的,发送方的 UDP 对应用程序交下来的报文,在添加首部后就向下交付 IP 层。UDP 对应用层交下来的报文,既不合并,也不拆分,而是`保留这些报文的边界` * UDP`没有拥塞控制`,网络出现的拥塞不会使源主机的发送速率降低。这对某些实时应用是很重要的 * UDP 支持一对一、一对多、多对一和多对多的交互通信 * UDP 的`首部开销小`,只有8个字节,比 TCP 的20个字节的首部要短 \*\* TCP 的主要特点\*\* * TCP 是`面向连接的运输层协议`。应用程序在使用 TCP 协议之前,必须先建立 TCP 连接。在传送数据完毕后,必须释放已经建立的 TCP 连接 * 每一条 TCP 连接只能有两个`端点`,每一条 TCP 连接只能是`点对点`的(一对一) * TCP 提供`可靠交付`的服务。通过 TCP 连接传送的数据,无差错、不丢失、不重复,并且按序到达 * TCP 提供`全双工通信`。TCP 允许通信双方的应用进程在任何时候都能发送数据。TCP 连接的两端都设有发送缓存和接受缓存,用来临时存放双向通信的数据 * `面向字节流`。TCP 中的“流”指的是`流入到进程或从进程流出的字节序列` | 对比项 | UDP | TCP | | --- | --- | --- | | 连接性 | 无连接 | 面向连接 | | 可靠性 | 不可靠 | 可靠 | | 报文 | 面向报文-数据报模式 | 面向字节流-流模式 | | 双工性 | 一对一、一对多、多对一、多对多 | 全双工 | | 流量控制 | 无 | 有(滑动窗口) | | 拥塞控制 | 无 | 有(慢开始、拥塞避免、快重传、快恢复) | | 传输速度 | 快 | 慢 | | 资源要求 | 较少 | 较多 | | 首部开销 | 8字节 | 20字节 | | 数据顺序 | 不保证 | 保证 | ## UDP、TCP适用场景 UDP 适用场景 面向数据报方式、网络数据大多为短消息、拥有大量 Client、对数据安全性无特殊要求、网络负担非常重,但对响应速度要求高 TCP 适用场景 文件传输(FTP HTTP 对数据准确性要求较高,速度可以相对慢) 发送或接收邮件(POP IMAP SMTP 对数据准确性要求高,非紧急应用) 远程登录(telnet SSH 对数据准确性有要求,有连接的概念)