Skip to content

Commit

Permalink
Create NetworkArchitecture.md
Browse files Browse the repository at this point in the history
  • Loading branch information
moky committed Oct 23, 2020
1 parent 40fa857 commit 2698f73
Showing 1 changed file with 71 additions and 0 deletions.
71 changes: 71 additions & 0 deletions zh-CN/NetworkArchitecture.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
# DIM Network

[![license](https://img.shields.io/github/license/mashape/apistatus.svg)](https://github.com/moky/DIMP/blob/master/LICENSE)
[![Version](https://img.shields.io/badge/alpha-0.1.0-red.svg)](https://github.com/moky/DIMP/wiki)

Copyright © 2020 Albert Moky

## 网络架构图
DIM 网络架构包含公网(Internet)和内网(Intranet)部分。

在公网部分,以 SP 作为不同子网(Subnet)的划分标志,可以认为每一个 SP 分管一个子网。

```
Internet
. . . SP 1 . . . . . . . . . . . . . . . SP 2 . . . .
. . . .
. +---------+ +---------+ . . +---------+ .
. | MTA 1 |<--->| MTA 2 | <========> | MTA 3 | .
. +---------+ +---------+ . . +---------+ .
. A A . . A A .
. . . . .|. . . . . . . .|. . . . . . . . .|. .|. . . .
| | | |
| . . . .|. . . . . | +-----+
| . V . | |
| . +---------+ . | V
| . | POD 2 | <-------\ | +----------+
| . +---------+ . \-------> | Client 4 |
| . A . | +----------+
| . | . |
~ ~ ~ ~ ~|~ ~ ~ ~ ~ ~ ~ ~|~ ~ ~ ~ ~ ~ ~ ~ ~ ~ | ~ ~ ~ ~ ~ ~ ~ ~
Intranet | . | . |
V . V . V
+----------+ . +----------+ . +----------+
| Client 1 | . | Client 2 | . | Client 3 |
+----------+ . +----------+ . +----------+
. . . . . . . . .
```

1. 客户端1与客户端2登录到同一个 SP 的不同基站,所有消息通过基站间转发通讯;
2. 客户端3与客户端4登录到同一个 SP 的相同基站,所有消息直接在基站内转发通讯;
3. 客户端1与客户端3登录到不同 SP 的不同基站,由于双方 SP 存在合作关系(已并网),所有消息通过 SP 之间的网络桥进行通讯;
4. 由于客户端4位于公网,而客户端2也在公网设置了一个 POD 协助收发消息,所以客户端2和客户端4无需依赖基站转发,可以直接通讯。

## 名词解析

### User 用户
每个 user 包含一个 DID,以及与之对应的公钥、私钥文件。
额外地,user 还可以包含 profile 信息,用于显示该用户的名称、图片等附加属性信息。

### Client 客户端
即用户终端,包括手机、电脑、物联网设备等。
一个客户端至少应该包含一个 user,特定需求下也可以支持在同一个客户端内同时使用多个用户账号。

### Station 基站
由于部分客户端可能不是 24 小时在线(比如移动终端),并且有可能隐藏在内网之中,外网无法直接联系,此时需要拥有公网 IP 地址的网络节点协助转发信息包,以及提供“离线消息支持”、“多终端登录支持”等增值服务。

一般地,一个 station 仅仅用做消息包转发服务,消息包转发成功后即删除缓存(支持多终端登录的情况下会继续保存缓存消息一定时间),并且缓存的所有消息内容都是已加密的,station 不会也不可能解密消息内容。

### Service Provider 服务提供商
虚拟概念(简称 SP),指拥有 1 个或以上的 station、并向部分或所有用户提供网络服务的个人或组织。

拥有多个 station 时,SP 负责解决内部多节点之间消息包的转发路径规划。
当网络中存在多个 SP 时,假如 SP 之间不存在合作关系,则连接到不同 SP 旗下 station 的用户则不能相互通讯;只有 SP 相互合作(也叫“并网”)的情况下才能相互通讯(消息包转发过程中,会通过接收方 SP 所指定的 bridge 桥节点进行转交)。

### Message Transfer Agent 消息传送代理
虚拟概念(简称 MTA),通常由 station 扮演该角色。
顾名思义,就是协助提供消息转发服务的网络节点。

### Personal Online Device 个人在线设备
虚拟概念(简称 POD),通常是一台具有公网 IP 的长期在线设备,作为不能长期在线的移动设备的助理,也可以在没有 station 的网络环境下扮演 MTA 角色。

0 comments on commit 2698f73

Please sign in to comment.