Netty权威指南:Netty总结-私有协议栈开发

第十二章 私有协议栈开发

通信协议可以分为公有协议和私有协议,私有协议比较有灵活性,会在公司内部使用,按需定制。

绝大多数私有协议都基于TCP/IP,利用Netty可以非常方便的进行私有协议的定制和开发。

12.1 私有协议介绍

本质是厂商内部发展和采用的标准,除非授权不然其他厂商无权使用。具有封闭性、垄断性、排他性等特点。

12.2 Netty 协议栈功能设计

Netty协议栈用于内部各模块之间的通信,它基于TCP/IP协议栈,是一个类HTTP 协议的应用层协议栈,相比于传统的标准协议栈,它更加轻巧、灵活和实用。

12.2.1 网络拓扑图

Netty节点并没有服务端和客户端的区分,谁先发起连接谁就作为客户端。取决于业务场景
在这里插入图片描述

12.2.2 协议栈功能描述

Netty协议栈承载了业务内部各模块之间的消息交互和服务调用,它的主要功能如下

  1. 基于Netty的NIO通信框架,提供高性能的异步通信能力;
  2. 提供消息的编解码框架,可以实现POJO的序列化和反序列化;
  3. 提供基于IP地址的白名单接入认证机制;
  4. 链路的有效性校验机制;
  5. 链路的断连重连机制。

12.2.3 通信模型

在这里插入图片描述

具体步骤:

  1. Netty协议栈客户端发送握手请求消息,携带节点ID等有效身份认证信息
  2. Netty协议栈服务端对握手请求消息进行合法性校验,包括节点ID有效性校验节点重复登录校验和IP地址合法性校验,校验通过后,返回登录成功的握手应答消息
  3. 链路建立成功之后,客户端发送业务消息
  4. 链路成功之后,服务端发送心跳消息;
  5. 链路建立成功之后,客户端发送心跳消息:
  6. 链路建立成功之后,服务端发送业务消息
  7. 服务端退出时,服务端关闭连接,客户端感知到对方关闭连接后,被动关闭客户端连接

建立链接后,双方进行全双工通信。心跳采用Ping-Pong机制,链路处于空闲状态时,客户端主动发送消息Ping给服务端,服务端接收消息后回送Pong给客户端,如果连续发送N条消息都没有回应,客户端认为链路挂死或对方处于异常状态,关闭链接并间隔周

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值