理解问题
# 2. 理解问题
项目实现:实现一个基于 TCP 的自定义应用层协议的通信服务端。
输入是一个基于传输层自定义的应用层协议规范。由于 TCP 是面向连接的流协议传输机制,数据流本身没有明显的边界,这样定义协议时,就需要自行定义确定边界的方法,因此,基于 TCP 的自定义应用层协议通常有两种常见的定义模式:
- **二进制模式:**采用长度字段标识独立数据包的边界。采用这种方式定义的常见协议包括 MQTT(物联网最常用的应用层协议之一)、SMPP(短信网关点对点接口协议)等;
- **文本模式:**采用特定分隔符标识流中的数据包的边界,常见的包括 HTTP 协议等。
相比之下,二进制模式要比文本模式编码更紧凑也更高效,所以这个问题中的自定义协议也采用了二进制模式,协议规范内容如下图:
自定义协议的通信两端的通信流程:
这是一个典型的“请求 / 响应”通信模型。连接由客户端发起,建立连接后,客户端发起请求,服务端收到请求后处理并返回响应,就这样一个请求一个响应的进行下去,直到客户端主动断开连接为止。
上次更新: 2022/06/12, 15:48:09