Files
bachelor-thesis/figures/system_overview.drawio
2026-05-27 23:38:36 +08:00

294 lines
26 KiB
Plaintext
Raw Permalink 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.
<mxfile host="app.diagrams.net" pages="2">
<diagram id="Ld0PZ8iOJT0iBC0hIplM" name="Page-2">
<mxGraphModel dx="635" dy="431" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1169" pageHeight="827" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="1rsUc46_5Y9y6vJJpw89-1" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;fontFamily=Microsoft YaHei;" value="" vertex="1">
<mxGeometry height="225" width="120" x="420" y="237.5" as="geometry" />
</mxCell>
<mxCell id="1rsUc46_5Y9y6vJJpw89-35" edge="1" parent="1" source="4BOI32kT3DeUbctDIWOm-3" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=1;entryDx=0;entryDy=0;strokeColor=#FF9933;strokeWidth=2;dashed=1;exitX=0.565;exitY=0.918;exitDx=0;exitDy=0;exitPerimeter=0;" target="1rsUc46_5Y9y6vJJpw89-12">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="559" y="480" />
<mxPoint x="480" y="480" />
</Array>
<mxPoint x="550" y="320" as="sourcePoint" />
<mxPoint x="540" y="220" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="1rsUc46_5Y9y6vJJpw89-23" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;fontFamily=Microsoft YaHei;" value="" vertex="1">
<mxGeometry height="225" width="120" x="650" y="237.5" as="geometry" />
</mxCell>
<mxCell id="4KGLoNyMlWUnwfG8zy26-1" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;fontFamily=Microsoft YaHei;" value="" vertex="1">
<mxGeometry height="180" width="120" x="210" y="260" as="geometry" />
</mxCell>
<mxCell id="4KGLoNyMlWUnwfG8zy26-2" parent="1" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;fontSize=25;fontFamily=Microsoft YaHei;" value="Node 1" vertex="1">
<mxGeometry height="30" width="105" x="217.5" y="270" as="geometry" />
</mxCell>
<mxCell id="1rsUc46_5Y9y6vJJpw89-5" edge="1" parent="1" source="4KGLoNyMlWUnwfG8zy26-3" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;strokeWidth=2;" target="4KGLoNyMlWUnwfG8zy26-4">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="4KGLoNyMlWUnwfG8zy26-3" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;fontSize=20;fontFamily=Microsoft YaHei;" value="TUN" vertex="1">
<mxGeometry height="40" width="95" x="222.5" y="310" as="geometry" />
</mxCell>
<mxCell id="4KGLoNyMlWUnwfG8zy26-4" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;fontSize=20;fontFamily=Microsoft YaHei;" value="FEC编码" vertex="1">
<mxGeometry height="40" width="95" x="222.5" y="390" as="geometry" />
</mxCell>
<mxCell id="1rsUc46_5Y9y6vJJpw89-7" edge="1" parent="1" source="4KGLoNyMlWUnwfG8zy26-4" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;strokeWidth=2;" target="1rsUc46_5Y9y6vJJpw89-6">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="1rsUc46_5Y9y6vJJpw89-9" connectable="0" parent="1rsUc46_5Y9y6vJJpw89-7" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontFamily=Microsoft YaHei;fontSize=20;" value="公网链路" vertex="1">
<mxGeometry relative="1" x="-0.064" y="-3" as="geometry">
<mxPoint as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="4KGLoNyMlWUnwfG8zy26-6" parent="1" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;fontSize=20;fontFamily=Microsoft YaHei;" value="用户" vertex="1">
<mxGeometry height="30" width="50" x="140" y="315" as="geometry" />
</mxCell>
<mxCell id="Brhk0VF70q9vH42PsAyj-1" edge="1" parent="1" source="4KGLoNyMlWUnwfG8zy26-6" style="endArrow=classic;html=1;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;strokeWidth=2;" target="4KGLoNyMlWUnwfG8zy26-3" value="">
<mxGeometry height="50" relative="1" width="50" as="geometry">
<mxPoint x="510" y="460" as="sourcePoint" />
<mxPoint x="560" y="410" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="1rsUc46_5Y9y6vJJpw89-2" parent="1" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;fontSize=25;fontFamily=Microsoft YaHei;" value="Node 2" vertex="1">
<mxGeometry height="30" width="105" x="427.5" y="247.5" as="geometry" />
</mxCell>
<mxCell id="1rsUc46_5Y9y6vJJpw89-26" edge="1" parent="1" source="1rsUc46_5Y9y6vJJpw89-6" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;strokeWidth=2;" target="1rsUc46_5Y9y6vJJpw89-12">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="1rsUc46_5Y9y6vJJpw89-6" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;fontSize=20;fontFamily=Microsoft YaHei;" value="FEC解码&lt;div&gt;丢包统计&lt;/div&gt;" vertex="1">
<mxGeometry height="60" width="95" x="432.5" y="287.5" as="geometry" />
</mxCell>
<mxCell id="1rsUc46_5Y9y6vJJpw89-11" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontSize=20;fontFamily=Microsoft YaHei;" value="速率控制" vertex="1">
<mxGeometry height="40" width="95" x="432.5" y="357.5" as="geometry" />
</mxCell>
<mxCell id="1rsUc46_5Y9y6vJJpw89-12" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;fontSize=20;fontFamily=Microsoft YaHei;" value="FEC编码" vertex="1">
<mxGeometry height="40" width="95" x="432.5" y="413" as="geometry" />
</mxCell>
<mxCell id="1rsUc46_5Y9y6vJJpw89-14" parent="1" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;fontSize=25;fontFamily=Microsoft YaHei;" value="Node N" vertex="1">
<mxGeometry height="30" width="105" x="657.5" y="247.5" as="geometry" />
</mxCell>
<mxCell id="1rsUc46_5Y9y6vJJpw89-27" edge="1" parent="1" source="1rsUc46_5Y9y6vJJpw89-18" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;strokeWidth=2;" target="1rsUc46_5Y9y6vJJpw89-25">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="1rsUc46_5Y9y6vJJpw89-18" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffe6cc;strokeColor=#d79b00;fontSize=20;fontFamily=Microsoft YaHei;" value="FEC解码&lt;div&gt;丢包统计&lt;/div&gt;" vertex="1">
<mxGeometry height="60" width="95" x="662.5" y="287.5" as="geometry" />
</mxCell>
<mxCell id="1rsUc46_5Y9y6vJJpw89-19" edge="1" parent="1" source="1rsUc46_5Y9y6vJJpw89-12" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;strokeWidth=2;" target="1rsUc46_5Y9y6vJJpw89-18">
<mxGeometry relative="1" as="geometry">
<mxPoint x="648" y="432" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="1rsUc46_5Y9y6vJJpw89-22" connectable="0" parent="1rsUc46_5Y9y6vJJpw89-19" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];fontSize=20;fontFamily=Microsoft YaHei;" value="若干次转发" vertex="1">
<mxGeometry relative="1" x="-0.0056" y="1" as="geometry">
<mxPoint as="offset" />
</mxGeometry>
</mxCell>
<mxCell id="1rsUc46_5Y9y6vJJpw89-24" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontSize=20;fontFamily=Microsoft YaHei;" value="速率控制" vertex="1">
<mxGeometry height="40" width="95" x="662.5" y="357.5" as="geometry" />
</mxCell>
<mxCell id="1rsUc46_5Y9y6vJJpw89-29" edge="1" parent="1" source="1rsUc46_5Y9y6vJJpw89-25" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;strokeWidth=2;" target="1rsUc46_5Y9y6vJJpw89-28">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="1rsUc46_5Y9y6vJJpw89-25" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;fontSize=20;fontFamily=Microsoft YaHei;" value="TUN" vertex="1">
<mxGeometry height="40" width="95" x="662.5" y="413" as="geometry" />
</mxCell>
<mxCell id="1rsUc46_5Y9y6vJJpw89-28" parent="1" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;fontSize=20;fontFamily=Microsoft YaHei;" value="用户" vertex="1">
<mxGeometry height="30" width="50" x="790" y="418" as="geometry" />
</mxCell>
<mxCell id="1rsUc46_5Y9y6vJJpw89-30" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;fontSize=25;fontFamily=Microsoft YaHei;" value="" vertex="1">
<mxGeometry height="100" width="230" x="380" y="100" as="geometry" />
</mxCell>
<mxCell id="1rsUc46_5Y9y6vJJpw89-31" edge="1" parent="1" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#FF9933;strokeWidth=2;dashed=1;entryX=0.75;entryY=1;entryDx=0;entryDy=0;" target="4BOI32kT3DeUbctDIWOm-3">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="576" y="320" />
</Array>
<mxPoint x="664" y="319" as="sourcePoint" />
<mxPoint x="510" y="100" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="1rsUc46_5Y9y6vJJpw89-32" edge="1" parent="1" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;strokeColor=#FF9933;strokeWidth=2;dashed=1;endArrow=none;endFill=0;">
<mxGeometry relative="1" as="geometry">
<Array as="points" />
<mxPoint x="527" y="320" as="sourcePoint" />
<mxPoint x="577" y="320" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="1rsUc46_5Y9y6vJJpw89-34" edge="1" parent="1" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=1;entryDx=0;entryDy=0;strokeColor=#FF9933;strokeWidth=2;dashed=1;" target="4KGLoNyMlWUnwfG8zy26-4">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="270" y="480" />
</Array>
<mxPoint x="480" y="480" as="sourcePoint" />
<mxPoint x="540" y="230" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="4BOI32kT3DeUbctDIWOm-1" parent="1" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;fontSize=25;fontFamily=Microsoft YaHei;" value="控制器" vertex="1">
<mxGeometry height="30" width="105" x="445" y="110" as="geometry" />
</mxCell>
<mxCell id="OVRyA5cAgbwWEsEiYZpN-1" edge="1" parent="1" source="4BOI32kT3DeUbctDIWOm-2" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;dashed=1;strokeWidth=2;fillColor=#e51400;strokeColor=#B20000;" target="4KGLoNyMlWUnwfG8zy26-1">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="4BOI32kT3DeUbctDIWOm-2" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;fontSize=20;fontFamily=Microsoft YaHei;" value="连接管理" vertex="1">
<mxGeometry height="40" width="95" x="390" y="150" as="geometry" />
</mxCell>
<mxCell id="4BOI32kT3DeUbctDIWOm-3" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;fontSize=20;fontFamily=Microsoft YaHei;" value="编码管理" vertex="1">
<mxGeometry height="40" width="95" x="505" y="150" as="geometry" />
</mxCell>
<mxCell id="OVRyA5cAgbwWEsEiYZpN-2" edge="1" parent="1" source="4BOI32kT3DeUbctDIWOm-2" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;dashed=1;strokeWidth=2;fillColor=#e51400;strokeColor=#B20000;" target="1rsUc46_5Y9y6vJJpw89-1">
<mxGeometry relative="1" as="geometry">
<mxPoint x="473" y="220" as="sourcePoint" />
<mxPoint x="330" y="330" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="OVRyA5cAgbwWEsEiYZpN-3" edge="1" parent="1" source="4BOI32kT3DeUbctDIWOm-2" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;dashed=1;strokeWidth=2;fillColor=#e51400;strokeColor=#B20000;" target="1rsUc46_5Y9y6vJJpw89-23">
<mxGeometry relative="1" as="geometry">
<mxPoint x="593" y="190" as="sourcePoint" />
<mxPoint x="450" y="300" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="1rsUc46_5Y9y6vJJpw89-36" parent="1" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;fontFamily=Microsoft YaHei;fontSize=20;" value="&lt;div&gt;收取丢包率信息&lt;/div&gt;下发编码参数" vertex="1">
<mxGeometry height="60" width="150" x="612.5" y="140" as="geometry" />
</mxCell>
<mxCell id="7D4wQrk56QkGn_iMHcGr-1" parent="1" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;fontFamily=Microsoft YaHei;fontSize=20;" value="&lt;div&gt;下发转发策略&lt;/div&gt;" vertex="1">
<mxGeometry height="30" width="126.5" x="253.5" y="155" as="geometry" />
</mxCell>
<mxCell id="7D4wQrk56QkGn_iMHcGr-2" edge="1" parent="1" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;strokeWidth=2;">
<mxGeometry relative="1" as="geometry">
<mxPoint x="200" y="90" as="sourcePoint" />
<mxPoint x="270" y="90" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="7D4wQrk56QkGn_iMHcGr-3" edge="1" parent="1" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0.25;exitY=0;exitDx=0;exitDy=0;strokeColor=#FF9933;strokeWidth=2;dashed=1;">
<mxGeometry relative="1" as="geometry">
<mxPoint x="200" y="120" as="sourcePoint" />
<mxPoint x="270" y="120" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="7D4wQrk56QkGn_iMHcGr-4" edge="1" parent="1" style="rounded=0;orthogonalLoop=1;jettySize=auto;html=1;dashed=1;strokeWidth=2;fillColor=#e51400;strokeColor=#B20000;">
<mxGeometry relative="1" as="geometry">
<mxPoint x="200" y="130" as="sourcePoint" />
<mxPoint x="270" y="130" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="7D4wQrk56QkGn_iMHcGr-5" parent="1" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;fontSize=20;fontFamily=Microsoft YaHei;" value="数据流量" vertex="1">
<mxGeometry height="30" width="87.5" x="272.5" y="70" as="geometry" />
</mxCell>
<mxCell id="7D4wQrk56QkGn_iMHcGr-6" parent="1" style="text;html=1;whiteSpace=wrap;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;rounded=0;fontSize=20;fontFamily=Microsoft YaHei;" value="控制指令" vertex="1">
<mxGeometry height="30" width="87.5" x="273" y="110" as="geometry" />
</mxCell>
</root>
</mxGraphModel>
</diagram>
<diagram name="GPT" id="system-overview">
<mxGraphModel dx="1119" dy="777" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
<root>
<mxCell id="0" />
<mxCell id="1" parent="0" />
<mxCell id="title" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;fontFamily=Microsoft YaHei;fontSize=20;fontStyle=1;" value="系统总体架构" vertex="1">
<mxGeometry height="30" width="170" x="330" y="60" as="geometry" />
</mxCell>
<mxCell id="coord" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#dae8fc;strokeColor=#6c8ebf;fontFamily=Microsoft YaHei;fontSize=14;fontStyle=1;" value="Coordinator&lt;div&gt;中心控制器&lt;/div&gt;" vertex="1">
<mxGeometry height="70" width="210" x="310" y="110" as="geometry" />
</mxCell>
<mxCell id="coord_path" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#6c8ebf;fontFamily=Microsoft YaHei;fontSize=12;" value="连接管理 / 路径配置&lt;div&gt;flow_id 分配&lt;/div&gt;" vertex="1">
<mxGeometry height="50" width="160" x="220" y="210" as="geometry" />
</mxCell>
<mxCell id="coord_fec" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#6c8ebf;fontFamily=Microsoft YaHei;fontSize=12;" value="FEC 参数计算&lt;div&gt;搜索 (d, k)&lt;/div&gt;" vertex="1">
<mxGeometry height="50" width="160" x="450" y="210" as="geometry" />
</mxCell>
<mxCell id="coord_to_path" edge="1" parent="1" source="coord" style="endArrow=classic;html=1;rounded=0;strokeColor=#6c8ebf;" target="coord_path">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="coord_to_fec" edge="1" parent="1" source="coord" style="endArrow=classic;html=1;rounded=0;strokeColor=#6c8ebf;" target="coord_fec">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="user_a" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;fontFamily=Microsoft YaHei;fontSize=13;" value="用户 A" vertex="1">
<mxGeometry height="40" width="70" x="30" y="520" as="geometry" />
</mxCell>
<mxCell id="tun_a" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#666666;fontFamily=Microsoft YaHei;fontSize=12;" value="TUN" vertex="1">
<mxGeometry height="40" width="55" x="125" y="520" as="geometry" />
</mxCell>
<mxCell id="node_a" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;fontFamily=Microsoft YaHei;fontSize=13;fontStyle=1;" value="Node A&lt;div&gt;转发节点&lt;/div&gt;" vertex="1">
<mxGeometry height="170" width="130" x="210" y="430" as="geometry" />
</mxCell>
<mxCell id="a_thread" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#9673a6;fontFamily=Microsoft YaHei;fontSize=12;" value="per-flow 线程" vertex="1">
<mxGeometry height="32" width="100" x="225" y="475" as="geometry" />
</mxCell>
<mxCell id="encoder" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;fontFamily=Microsoft YaHei;fontSize=12;" value="FEC 编码器&lt;div&gt;低质量片段启用&lt;/div&gt;" vertex="1">
<mxGeometry height="50" width="100" x="225" y="525" as="geometry" />
</mxCell>
<mxCell id="node_b" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;fontFamily=Microsoft YaHei;fontSize=13;fontStyle=1;" value="Node B&lt;div&gt;修复片段出口&lt;/div&gt;" vertex="1">
<mxGeometry height="210" width="150" x="410" y="410" as="geometry" />
</mxCell>
<mxCell id="decoder" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;fontFamily=Microsoft YaHei;fontSize=12;" value="FEC 解码器&lt;div&gt;丢包恢复 / 统计&lt;/div&gt;" vertex="1">
<mxGeometry height="55" width="120" x="425" y="450" as="geometry" />
</mxCell>
<mxCell id="pacer" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#d5e8d4;strokeColor=#82b366;fontFamily=Microsoft YaHei;fontSize=12;" value="Pacer&lt;div&gt;PI 匀速输出&lt;/div&gt;" vertex="1">
<mxGeometry height="55" width="120" x="425" y="535" as="geometry" />
</mxCell>
<mxCell id="node_c" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#e1d5e7;strokeColor=#9673a6;fontFamily=Microsoft YaHei;fontSize=13;fontStyle=1;" value="Node C&lt;div&gt;转发节点&lt;/div&gt;" vertex="1">
<mxGeometry height="100" width="110" x="630" y="450" as="geometry" />
</mxCell>
<mxCell id="tun_b" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#666666;fontFamily=Microsoft YaHei;fontSize=12;" value="TUN" vertex="1">
<mxGeometry height="40" width="55" x="765" y="520" as="geometry" />
</mxCell>
<mxCell id="user_b" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#fff2cc;strokeColor=#d6b656;fontFamily=Microsoft YaHei;fontSize=13;" value="用户 B" vertex="1">
<mxGeometry height="40" width="70" x="845" y="520" as="geometry" />
</mxCell>
<mxCell id="data_label" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;fontFamily=Microsoft YaHei;fontSize=13;" value="数据面TUN 虚拟网卡 + UDP 隧道转发" vertex="1">
<mxGeometry height="30" width="290" x="320" y="650" as="geometry" />
</mxCell>
<mxCell id="control_label" parent="1" style="text;html=1;strokeColor=none;fillColor=none;align=center;verticalAlign=middle;fontFamily=Microsoft YaHei;fontSize=13;" value="控制面:统计上报与参数 / 转发表下发" vertex="1">
<mxGeometry height="30" width="280" x="300" y="300" as="geometry" />
</mxCell>
<mxCell id="u_to_tun" edge="1" parent="1" source="user_a" style="endArrow=classic;html=1;rounded=0;" target="tun_a">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="tun_to_a" edge="1" parent="1" source="tun_a" style="endArrow=classic;html=1;rounded=0;entryX=0;entryY=0.65;entryDx=0;entryDy=0;" target="node_a">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="a_to_b" edge="1" parent="1" source="node_a" style="endArrow=classic;html=1;rounded=0;strokeWidth=2;strokeColor=#b85450;exitX=1;exitY=0.65;exitDx=0;exitDy=0;entryX=0;entryY=0.55;entryDx=0;entryDy=0;" target="node_b" value="公网 UDP 隧道&lt;div&gt;低质量链路片段&lt;/div&gt;">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="b_to_c" edge="1" parent="1" source="node_b" style="endArrow=classic;html=1;rounded=0;strokeWidth=2;strokeColor=#82b366;exitX=1;exitY=0.55;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" target="node_c" value="公网 UDP 隧道&lt;div&gt;普通转发&lt;/div&gt;">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="c_to_tun" edge="1" parent="1" source="node_c" style="endArrow=classic;html=1;rounded=0;exitX=1;exitY=0.7;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" target="tun_b">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="tun_to_user" edge="1" parent="1" source="tun_b" style="endArrow=classic;html=1;rounded=0;" target="user_b">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="fec_internal" edge="1" parent="1" source="decoder" style="endArrow=classic;html=1;rounded=0;strokeColor=#666666;" target="pacer">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="flow_config_a" edge="1" parent="1" source="coord_path" style="endArrow=classic;html=1;rounded=0;dashed=1;strokeColor=#6c8ebf;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" target="node_a" value="转发表 / flow_id / (d,k)">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="flow_config_b" edge="1" parent="1" source="coord_path" style="endArrow=classic;html=1;rounded=0;dashed=1;strokeColor=#6c8ebf;exitX=1;exitY=0.8;exitDx=0;exitDy=0;entryX=0.3;entryY=0;entryDx=0;entryDy=0;" target="node_b" value="转发表 / 解码配置">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="stats_to_coord" edge="1" parent="1" source="decoder" style="endArrow=classic;html=1;rounded=0;dashed=1;strokeColor=#b85450;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;" target="coord_fec" value="丢包统计上报">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="param_to_encoder" edge="1" parent="1" source="coord_fec" style="endArrow=classic;html=1;rounded=0;dashed=1;strokeColor=#b85450;exitX=0;exitY=0.8;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;" target="encoder" value="FEC 参数下发">
<mxGeometry relative="1" as="geometry" />
</mxCell>
<mxCell id="legend_control" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#6c8ebf;dashed=1;fontFamily=Microsoft YaHei;fontSize=12;" value="虚线:控制面" vertex="1">
<mxGeometry height="32" width="110" x="55" y="690" as="geometry" />
</mxCell>
<mxCell id="legend_data" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#ffffff;strokeColor=#666666;fontFamily=Microsoft YaHei;fontSize=12;" value="实线:数据面" vertex="1">
<mxGeometry height="32" width="110" x="180" y="690" as="geometry" />
</mxCell>
<mxCell id="legend_fec" parent="1" style="rounded=1;whiteSpace=wrap;html=1;fillColor=#f8cecc;strokeColor=#b85450;fontFamily=Microsoft YaHei;fontSize=12;" value="红色:修复链路" vertex="1">
<mxGeometry height="32" width="120" x="305" y="690" as="geometry" />
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>