2021-04-11 12:39:02 +08:00

44 lines
1.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 设计目标
- Xray 内核提供了一个平台,支持必要的网络代理功能,在其之上可以进二次开发,以提供更好的用户体验;
- 以跨平台为首要原则,以减少二次开发的成本;
## 架构
![Architecture](./framework.png)
内核分为三层:应用层、代理层和传输层。
每一层内包含数个模块,模块间互相独立,同类型的模块可无缝替换。
### 应用层
应用层包含一些代理层中常用的功能,这些功能被抽象出来,以便在不同的代理模块中复用。
应用层的模块应为纯软件实现,与硬件或平台相关的技术无关。
重要模块列表:
- Dispatcher: 用于把入站代理所接收到的数据,传送给出站代理;
- Router: 路由模块,详见 [路由配置](../../config/routing.md)
- DNS: 内置的 DNS 服务器模块;
- Proxy Manager: 代理管理器;
### 代理层
代理层分为两部分入站代理Inbound Proxy和出站代理Outbound Proxy
两部分相互独立,入站代理不依赖于某个特定的出站代理,反之亦然。
#### 入站代理
- 实现 [proxy.Inbound](https://github.com/xtls/Xray-core/blob/main/proxy/proxy.go) 接口;
#### 出站代理
- 实现 [proxy.Outbound](https://github.com/xtls/Xray-core/blob/main/proxy/proxy.go) 接口;
### 传输层
传输层提供一些网络数据传输相关的工具模块。