协议(Protocol)
协议 是计算机或通信系统中,不同实体(如设备、程序、服务等)之间进行交互和通信时,共同遵循的一套规则和标准。它定义了数据的格式、传输方式、错误处理、安全机制等,确保通信双方能够正确理解彼此的信息并完成协作。
协议的核心要素
- 语法(Syntax)
- 数据的结构或格式,例如报文如何排列、字段的长度和顺序等。
- *示例:HTTP 请求中,请求行、头部、正文的排列方式。
- 语义(Semantics)
- 数据的含义及操作逻辑,解释字段代表的动作或内容。
- *示例:HTTP 状态码
200表示请求成功,404表示资源未找到。
- 同步(Timing/Synchronization)
- 通信的顺序控制,如数据发送和响应的时序。
- *示例:TCP 三次握手建立连接时的顺序规则。
常见协议分类
| 类别 | 协议示例 | 作用 |
|---|---|---|
| 网络通信 | TCP/IP、HTTP、FTP | 实现数据传输和网络互联 |
| 安全协议 | SSL/TLS、SSH、HTTPS | 加密通信和身份验证 |
| 应用层协议 | SMTP(邮件)、DNS | 支持特定应用功能(如邮件解析域名) |
| 硬件协议 | USB、Bluetooth | 硬件设备间的交互规范 |
UDP 协议(用户数据报协议)
1. 基本定义
UDP(User Datagram Protocol) 是一种无连接的传输层协议,位于 TCP/IP 模型中的传输层(OSI 第 4 层)。它以最小化的协议机制提供高效的数据传输服务。
2. 核心特性
| 特性 | 说明 |
|---|---|
| 无连接 | 通信前无需建立连接,直接发送数据 |
| 不可靠传输 | 不保证数据顺序、不重传丢失报文、不检测拥塞 |
| 无状态 | 发送方和接收方不维护连接状态 |
| 头部开销小 | 固定 8 字节头部(TCP 至少 20 字节) |
| 支持广播/多播 | 可向多个主机同时发送数据 |
UDP 协议实现通信
服务器端
由于 UDP 协议是一种通过数据报在网络中传输的协议,所以我们在创建套接字的时候需要将参数设置为数据报类型。服务器端主要有几个功能,一个是初始化服务器,一个是启动服务器。在启动服务器的时候需要将服务器写成死循环,服务器可以一直接收外部发来的数据。因为在服务器中存在着很多需要将网络字节序转化为本地字节序,所以为了方便,我们将 IP 地址和端口号封装成一个类 InetAddr,这个类中的方法有网络字节序和本地字节序的转化,还有获取网络字节序和本地字节序,方便我们写代码的可读性。


