-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathzerotier-one.drawio
113 lines (113 loc) · 9.4 KB
/
zerotier-one.drawio
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
<mxfile host="app.diagrams.net" modified="2020-08-13T06:18:36.775Z" agent="5.0 (X11)" etag="O93XTPtJu4zHRFfA3qiq" version="13.6.2" type="github">
<diagram id="Zo-XHowbz03e_hiTDd_9" name="Page-1">
<mxGraphModel dx="2073" dy="1344" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="0" pageScale="1" pageWidth="1920" pageHeight="1200" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="4FT7oaL6MmFUpqDjCZYJ-40" value="" style="rounded=1;arcSize=10;dashed=1;strokeColor=#000000;fillColor=none;gradientColor=none;dashPattern=8 3 1 3;strokeWidth=2;" parent="1" vertex="1">
<mxGeometry x="552.5" width="200" height="700" as="geometry" />
</mxCell>
<mxCell id="4FT7oaL6MmFUpqDjCZYJ-31" value="" style="rounded=1;arcSize=10;dashed=1;strokeColor=#000000;fillColor=none;gradientColor=none;dashPattern=8 3 1 3;strokeWidth=2;" parent="1" vertex="1">
<mxGeometry x="840" width="200" height="700" as="geometry" />
</mxCell>
<mxCell id="4FT7oaL6MmFUpqDjCZYJ-2" value="OneService<br>osdep和Node桥梁" style="rounded=0;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="140" y="330" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="4FT7oaL6MmFUpqDjCZYJ-3" value="平台无关" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;" parent="1" vertex="1">
<mxGeometry x="615" y="75" width="70" height="20" as="geometry" />
</mxCell>
<mxCell id="4FT7oaL6MmFUpqDjCZYJ-4" value="osdep<br>各平台专有API 实现" style="whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="880" y="15" width="120" height="70" as="geometry" />
</mxCell>
<mxCell id="4FT7oaL6MmFUpqDjCZYJ-8" value="callback" style="endArrow=classic;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;exitX=-0.003;exitY=0.514;exitDx=0;exitDy=0;exitPerimeter=0;" parent="1" source="4FT7oaL6MmFUpqDjCZYJ-40" target="4FT7oaL6MmFUpqDjCZYJ-2" edge="1">
<mxGeometry x="0.1396" relative="1" as="geometry">
<mxPoint x="500" y="360" as="sourcePoint" />
<mxPoint x="210" y="270" as="targetPoint" />
<Array as="points">
<mxPoint x="300" y="360" />
</Array>
<mxPoint as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="4FT7oaL6MmFUpqDjCZYJ-13" value="函数事件注入" style="whiteSpace=wrap;html=1;shape=mxgraph.basic.document" parent="1" vertex="1">
<mxGeometry x="290" y="375" width="90" height="40" as="geometry" />
</mxCell>
<mxCell id="4FT7oaL6MmFUpqDjCZYJ-16" value="<div>Trace</div><div>跟踪记录<br></div>" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="590" y="230" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="4FT7oaL6MmFUpqDjCZYJ-17" value="<font color="#FF0000"><b>Switch<br>管理数据进出</b></font>" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="590" y="340" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="4FT7oaL6MmFUpqDjCZYJ-18" value="Multicaster<br>发送消息" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="590" y="460" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="4FT7oaL6MmFUpqDjCZYJ-19" value="Topology<br>网络拓扑" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="590" y="570" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="4FT7oaL6MmFUpqDjCZYJ-20" value="SelfAwareness<br>网络状态维护回调" style="rounded=1;whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="590" y="130" width="120" height="60" as="geometry" />
</mxCell>
<mxCell id="4FT7oaL6MmFUpqDjCZYJ-21" value="one 客户端" style="whiteSpace=wrap;html=1;" parent="1" vertex="1">
<mxGeometry x="140" y="160" width="120" height="30" as="geometry" />
</mxCell>
<mxCell id="4FT7oaL6MmFUpqDjCZYJ-25" value="NetworkState" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
<mxGeometry x="905" y="360" width="70" height="20" as="geometry" />
</mxCell>
<mxCell id="4FT7oaL6MmFUpqDjCZYJ-26" value="EthernetTap(Tap 虚拟网卡)" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
<mxGeometry x="825" y="380" width="230" height="30" as="geometry" />
</mxCell>
<mxCell id="4FT7oaL6MmFUpqDjCZYJ-36" value="包含所有客户端,主要基于Http 和 OneService通信" style="whiteSpace=wrap;html=1;shape=mxgraph.basic.document" parent="1" vertex="1">
<mxGeometry x="240" y="230" width="90" height="70" as="geometry" />
</mxCell>
<mxCell id="4FT7oaL6MmFUpqDjCZYJ-37" value="" style="endArrow=classic;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;" parent="1" source="4FT7oaL6MmFUpqDjCZYJ-21" target="4FT7oaL6MmFUpqDjCZYJ-2" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="180" y="170" as="sourcePoint" />
<mxPoint x="80" y="240" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="4FT7oaL6MmFUpqDjCZYJ-41" value="Node服务" style="whiteSpace=wrap;html=1;shape=mxgraph.basic.document" parent="1" vertex="1">
<mxGeometry x="605" y="30" width="90" height="40" as="geometry" />
</mxCell>
<mxCell id="4FT7oaL6MmFUpqDjCZYJ-44" value="Binder" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
<mxGeometry x="920" y="480" width="40" height="20" as="geometry" />
</mxCell>
<mxCell id="4FT7oaL6MmFUpqDjCZYJ-45" value="TcpRelay" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
<mxGeometry x="910" y="460" width="60" height="20" as="geometry" />
</mxCell>
<mxCell id="4FT7oaL6MmFUpqDjCZYJ-47" value="Phy" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1">
<mxGeometry x="920" y="410" width="40" height="20" as="geometry" />
</mxCell>
<mxCell id="4FT7oaL6MmFUpqDjCZYJ-53" value="" style="html=1;verticalAlign=bottom;endArrow=open;dashed=1;endSize=8;" parent="1" source="4FT7oaL6MmFUpqDjCZYJ-25" target="4FT7oaL6MmFUpqDjCZYJ-17" edge="1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="840" y="390" as="sourcePoint" />
<mxPoint x="760" y="390" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="bhILbmvNSMo4NeSS-7qC-2" value="" style="rounded=1;arcSize=10;dashed=1;strokeColor=#000000;fillColor=none;gradientColor=none;dashPattern=8 3 1 3;strokeWidth=2;" vertex="1" parent="1">
<mxGeometry x="-280" width="200" height="700" as="geometry" />
</mxCell>
<mxCell id="bhILbmvNSMo4NeSS-7qC-4" value="监听服务器端/客户端指令" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
<mxGeometry x="-260" y="85" width="160" height="25" as="geometry" />
</mxCell>
<mxCell id="bhILbmvNSMo4NeSS-7qC-5" value="<div>Http Handler<br></div>" style="whiteSpace=wrap;html=1;shape=mxgraph.basic.document" vertex="1" parent="1">
<mxGeometry x="-260" y="20" width="160" height="50" as="geometry" />
</mxCell>
<mxCell id="bhILbmvNSMo4NeSS-7qC-6" value="" style="endArrow=classic;html=1;entryX=1;entryY=0.514;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" source="4FT7oaL6MmFUpqDjCZYJ-2" target="bhILbmvNSMo4NeSS-7qC-2">
<mxGeometry relative="1" as="geometry">
<mxPoint x="61" y="360" as="sourcePoint" />
<mxPoint x="-70" y="360" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="bhILbmvNSMo4NeSS-7qC-7" value="PhyTemplate 实现" style="edgeLabel;resizable=0;html=1;align=center;verticalAlign=middle;" connectable="0" vertex="1" parent="bhILbmvNSMo4NeSS-7qC-6">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="bhILbmvNSMo4NeSS-7qC-10" value="<ol><li>multipath<br></li><li>data compress<br></li><li>数据流量加密<br></li></ol>" style="text;strokeColor=none;fillColor=none;html=1;whiteSpace=wrap;verticalAlign=middle;overflow=hidden;" vertex="1" parent="1">
<mxGeometry x="870" y="170" width="140" height="100" as="geometry" />
</mxCell>
<mxCell id="bhILbmvNSMo4NeSS-7qC-11" value="<div>Switch 最为核心,流量枢纽,其次是Peer::getAppropriatePath 获取发送流量的路径<br></div>" style="shape=ext;rounded=1;html=1;whiteSpace=wrap;dashed=1;dashPattern=1 4;" vertex="1" parent="1">
<mxGeometry x="220" y="640" width="270" height="80" as="geometry" />
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>