一种分布式防ddos软件的简要设计说明

简要设计说明

MarkdownHTML

一、验证服务器

验证服务器位于CDN网络中,用于客户端合法性校验。

1. 禁止高危客户端(唯一标识)连接。(高危客户端列表)

2. 解密客户端连接请求。

3. 时间戳校验(三分钟有效)。

4. 校验通过后向调度服务器发送请求。

二、调度服务器

调度服务器不直接面向客户端,主要实现以下功能:

1. 地址池管理

所有的节点服务器注册到zookeeper,通过zookeeper监控节点。

2. 分配节点服务器IP给客户端

a. 该id为首次登录,从地址池中根据算法挑选出三条记录,发送给客户端。

b. 该id为非首次登录,若分配的ip有任一一个可用,则发送历史ip。若分配的ip都不可用,则标记该用户为高危用户(要求分配ip的算法不会分配同一批ip给一个客户端)。

三、 节点服务器(隧道server)

1. 提供隧道接入口

2. 注册zookeeper临时节点。

四、 客户端SDK

1. 获得手机唯一标识

2. 加密所有连接数据。

3. 解析节点服务器IP,并建立隧道连接。

# 需求说明

## 一、客户端合法性校验

服务端持有私钥,数据均以私钥加解密;客户端持有公钥,数据均以公钥加解密。服务    端接收到客户端请求后,解密该请求,当解密出的数据符合条件后方可进行连接。

## 二、中转机 ip 分配### 1、中转机池

将大量的中转机连接信息分组,形成不同的中转机池。通过中转机池的切换策略(如时    间维度:一周切换一次中转机池,中转机存活数维度:中转机存活数量<50)来切换中转机    池。

### 2、ip 分配

通过组合算法将中转机池中的所有中转机连接信息组合(如三台中转机为一组合,可配置),从组合中挑选未分配的组合(要求组合中至少存在一台中转机存活)发送给客户端。

### 3、分配信息缓存

分配信息缓存到 redis 中。如果客户端重复请求,且缓存中的中转机存在一台可用,则直接从缓存中提取信息发送给客户端。如果都不可用,则重新进行 ip 分配,并更新缓存。缓存信息需要设置超时时间(可配置)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值