Files
platform/docs/服务网络建立流程图v2.excalidraw
2025-10-29 17:56:37 +08:00

1357 lines
34 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.
{
"type": "excalidraw",
"version": 2,
"source": "https://excalidraw.com",
"elements": [
{
"id": "YQSFOzXAIoimZKDRAMPdO",
"type": "rectangle",
"x": 736,
"y": 370,
"width": 151.00000000000003,
"height": 86,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"index": "a0",
"roundness": {
"type": 3
},
"seed": 340768131,
"version": 234,
"versionNonce": 1778796772,
"isDeleted": false,
"boundElements": [
{
"type": "text",
"id": "6yN0B8axFJVKs58rLflfz"
},
{
"id": "dEVrjkg326aOu-z_V79TO",
"type": "arrow"
},
{
"id": "X0pOWHu2Eq03pkuAdCXG8",
"type": "arrow"
},
{
"id": "XPyBOS_LqtMOCnawJu_WA",
"type": "arrow"
}
],
"updated": 1758249961760,
"link": null,
"locked": false
},
{
"id": "6yN0B8axFJVKs58rLflfz",
"type": "text",
"x": 756.5600433349609,
"y": 388,
"width": 109.87991333007812,
"height": 50,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"index": "a1",
"roundness": null,
"seed": 1905217116,
"version": 204,
"versionNonce": 954814308,
"isDeleted": false,
"boundElements": [],
"updated": 1758246519357,
"link": null,
"locked": false,
"text": "代理端口\nsocks/http",
"fontSize": 20,
"fontFamily": 5,
"textAlign": "center",
"verticalAlign": "middle",
"containerId": "YQSFOzXAIoimZKDRAMPdO",
"originalText": "代理端口\nsocks/http",
"autoResize": true,
"lineHeight": 1.25
},
{
"id": "4Bnah8890hn5qWFx2u44d",
"type": "rectangle",
"x": 730.2857142857142,
"y": 88.57142857142856,
"width": 154.00000000000003,
"height": 86,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"index": "a14",
"roundness": {
"type": 3
},
"seed": 326248028,
"version": 221,
"versionNonce": 2145532252,
"isDeleted": false,
"boundElements": [
{
"type": "text",
"id": "J19S0nmuMJhEz2C9bfDz7"
},
{
"id": "_gOmU_mvoRmSpG8q2QkAO",
"type": "arrow"
},
{
"id": "9V22f7KfKiXD-7Ponl3Bj",
"type": "arrow"
}
],
"updated": 1758250553687,
"link": null,
"locked": false
},
{
"id": "J19S0nmuMJhEz2C9bfDz7",
"type": "text",
"x": 747.2857142857142,
"y": 119.07142857142856,
"width": 120,
"height": 25,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"index": "a18",
"roundness": null,
"seed": 1469381340,
"version": 195,
"versionNonce": 42642908,
"isDeleted": false,
"boundElements": [],
"updated": 1758250553687,
"link": null,
"locked": false,
"text": "节点控制端口",
"fontSize": 20,
"fontFamily": 5,
"textAlign": "center",
"verticalAlign": "middle",
"containerId": "4Bnah8890hn5qWFx2u44d",
"originalText": "节点控制端口",
"autoResize": true,
"lineHeight": 1.25
},
{
"id": "iB-y0pvq-AaVD3LCLJmqs",
"type": "rectangle",
"x": 1317.142857142857,
"y": 132.57142857142856,
"width": 189.99999999999991,
"height": 86,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"index": "a18V",
"roundness": {
"type": 3
},
"seed": 1138502628,
"version": 445,
"versionNonce": 2137352540,
"isDeleted": false,
"boundElements": [
{
"type": "text",
"id": "VOjVUBIFmkZ1WVuiIQN3k"
},
{
"id": "WicNdCeUUK-PbTuBnAbYh",
"type": "arrow"
},
{
"id": "_gOmU_mvoRmSpG8q2QkAO",
"type": "arrow"
},
{
"id": "X0pOWHu2Eq03pkuAdCXG8",
"type": "arrow"
},
{
"id": "bOO8NghHhpbsbwMizWHMg",
"type": "arrow"
}
],
"updated": 1758250845080,
"link": null,
"locked": false
},
{
"id": "VOjVUBIFmkZ1WVuiIQN3k",
"type": "text",
"x": 1338.552868434361,
"y": 150.57142857142856,
"width": 147.1799774169922,
"height": 50,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"index": "a19",
"roundness": null,
"seed": 515182436,
"version": 455,
"versionNonce": 170384860,
"isDeleted": false,
"boundElements": [],
"updated": 1758250845080,
"link": null,
"locked": false,
"text": "节点池(m)\n数据连接池(m*j)",
"fontSize": 20,
"fontFamily": 5,
"textAlign": "center",
"verticalAlign": "middle",
"containerId": "iB-y0pvq-AaVD3LCLJmqs",
"originalText": "节点池(m)\n数据连接池(m*j)",
"autoResize": true,
"lineHeight": 1.25
},
{
"id": "OVHWjR9Ict69KRGCXnx98",
"type": "rectangle",
"x": 736,
"y": 206,
"width": 151.00000000000003,
"height": 86,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"index": "a1A",
"roundness": {
"type": 3
},
"seed": 1057591140,
"version": 232,
"versionNonce": 2106648804,
"isDeleted": false,
"boundElements": [
{
"type": "text",
"id": "HUNCyASpZDNQzoCkWchR_"
},
{
"id": "WicNdCeUUK-PbTuBnAbYh",
"type": "arrow"
},
{
"id": "rqWZ5ArAtwKR6dmJc9PxO",
"type": "arrow"
}
],
"updated": 1758250847667,
"link": null,
"locked": false
},
{
"id": "HUNCyASpZDNQzoCkWchR_",
"type": "text",
"x": 751.5,
"y": 236.5,
"width": 120,
"height": 25,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"index": "a1C",
"roundness": null,
"seed": 627704548,
"version": 215,
"versionNonce": 483011684,
"isDeleted": false,
"boundElements": [],
"updated": 1758250847667,
"link": null,
"locked": false,
"text": "节点数据端口",
"fontSize": 20,
"fontFamily": 5,
"textAlign": "center",
"verticalAlign": "middle",
"containerId": "OVHWjR9Ict69KRGCXnx98",
"originalText": "节点数据端口",
"autoResize": true,
"lineHeight": 1.25
},
{
"id": "3RO_1ekdwosRo148aHQ16",
"type": "rectangle",
"x": 984.7142857142858,
"y": 438.42857142857144,
"width": 127,
"height": 82,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"index": "a1G",
"roundness": {
"type": 3
},
"seed": 107993436,
"version": 279,
"versionNonce": 1632928476,
"isDeleted": false,
"boundElements": [
{
"type": "text",
"id": "93RiXfPuNKKvd0vvL6UJk"
},
{
"id": "dEVrjkg326aOu-z_V79TO",
"type": "arrow"
},
{
"id": "FLnYPnmPXglTjS5CET7I1",
"type": "arrow"
}
],
"updated": 1758250855820,
"link": null,
"locked": false
},
{
"id": "93RiXfPuNKKvd0vvL6UJk",
"type": "text",
"x": 1014.5242985316686,
"y": 466.92857142857144,
"width": 67.37997436523438,
"height": 25,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"index": "a1V",
"roundness": null,
"seed": 644107740,
"version": 261,
"versionNonce": 1643628380,
"isDeleted": false,
"boundElements": [],
"updated": 1758250855820,
"link": null,
"locked": false,
"text": "入栈(n)",
"fontSize": 20,
"fontFamily": 5,
"textAlign": "center",
"verticalAlign": "middle",
"containerId": "3RO_1ekdwosRo148aHQ16",
"originalText": "入栈(n)",
"autoResize": true,
"lineHeight": 1.25
},
{
"id": "xAMHk9JEjcpvIH98p7v8j",
"type": "rectangle",
"x": 1174.7142857142858,
"y": 436.42857142857144,
"width": 127,
"height": 82,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"index": "a1X",
"roundness": {
"type": 3
},
"seed": 1496533852,
"version": 320,
"versionNonce": 314455260,
"isDeleted": false,
"boundElements": [
{
"type": "text",
"id": "-VRZdhbMIC--ASDeMgqyP"
},
{
"id": "FLnYPnmPXglTjS5CET7I1",
"type": "arrow"
},
{
"id": "NF8UY--pQucfBdNyMcDOr",
"type": "arrow"
}
],
"updated": 1758250855830,
"link": null,
"locked": false
},
{
"id": "-VRZdhbMIC--ASDeMgqyP",
"type": "text",
"x": 1218.2142857142858,
"y": 464.92857142857144,
"width": 40,
"height": 25,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"index": "a1Z",
"roundness": null,
"seed": 1944682460,
"version": 316,
"versionNonce": 1599813980,
"isDeleted": false,
"boundElements": [],
"updated": 1758250855830,
"link": null,
"locked": false,
"text": "认证",
"fontSize": 20,
"fontFamily": 5,
"textAlign": "center",
"verticalAlign": "middle",
"containerId": "xAMHk9JEjcpvIH98p7v8j",
"originalText": "认证",
"autoResize": true,
"lineHeight": 1.25
},
{
"id": "hS8KJjHGigL9_n9Y0k3VW",
"type": "rectangle",
"x": 1364.7142857142858,
"y": 438.42857142857144,
"width": 127,
"height": 82,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"index": "a1d",
"roundness": {
"type": 3
},
"seed": 1737661148,
"version": 667,
"versionNonce": 1354688220,
"isDeleted": false,
"boundElements": [
{
"type": "text",
"id": "JLCPdqk2XPDxgz1YTgllV"
},
{
"id": "NF8UY--pQucfBdNyMcDOr",
"type": "arrow"
},
{
"id": "bOO8NghHhpbsbwMizWHMg",
"type": "arrow"
}
],
"updated": 1758250855830,
"link": null,
"locked": false
},
{
"id": "JLCPdqk2XPDxgz1YTgllV",
"type": "text",
"x": 1394.5242985316686,
"y": 466.92857142857144,
"width": 67.37997436523438,
"height": 25,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"index": "a1l",
"roundness": null,
"seed": 682811228,
"version": 615,
"versionNonce": 1047898972,
"isDeleted": false,
"boundElements": [],
"updated": 1758250855830,
"link": null,
"locked": false,
"text": "出栈(n)",
"fontSize": 20,
"fontFamily": 5,
"textAlign": "center",
"verticalAlign": "middle",
"containerId": "hS8KJjHGigL9_n9Y0k3VW",
"originalText": "出栈(n)",
"autoResize": true,
"lineHeight": 1.25
},
{
"id": "WicNdCeUUK-PbTuBnAbYh",
"type": "arrow",
"x": 900,
"y": 247.26817677368138,
"width": 400.1428571428571,
"height": 74.6792487773674,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"index": "a3",
"roundness": {
"type": 2
},
"seed": 1324742628,
"version": 193,
"versionNonce": 453967844,
"isDeleted": false,
"boundElements": [],
"updated": 1758250847678,
"link": null,
"locked": false,
"points": [
[
0,
0
],
[
400.1428571428571,
-74.6792487773674
]
],
"lastCommittedPoint": null,
"startBinding": {
"elementId": "OVHWjR9Ict69KRGCXnx98",
"focus": 0.25908480084792057,
"gap": 13
},
"endBinding": {
"elementId": "iB-y0pvq-AaVD3LCLJmqs",
"focus": 0.3925884319900834,
"gap": 17.000000000000227
},
"startArrowhead": null,
"endArrowhead": "arrow",
"elbowed": false
},
{
"id": "_gOmU_mvoRmSpG8q2QkAO",
"type": "arrow",
"x": 896.7142857142856,
"y": 128.13124020624997,
"width": 406.74329009001895,
"height": 23.325633595104506,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"index": "a4",
"roundness": {
"type": 2
},
"seed": 2138089692,
"version": 223,
"versionNonce": 280434396,
"isDeleted": false,
"boundElements": [],
"updated": 1758250845095,
"link": null,
"locked": false,
"points": [
[
0,
0
],
[
406.74329009001895,
23.325633595104506
]
],
"lastCommittedPoint": null,
"startBinding": {
"elementId": "4Bnah8890hn5qWFx2u44d",
"focus": -0.16388743702333297,
"gap": 12.428571428571331
},
"endBinding": {
"elementId": "iB-y0pvq-AaVD3LCLJmqs",
"focus": 0.3678709146278951,
"gap": 13.747703262535307
},
"startArrowhead": null,
"endArrowhead": "arrow",
"elbowed": false
},
{
"id": "dEVrjkg326aOu-z_V79TO",
"type": "arrow",
"x": 901.7470562438845,
"y": 420.58516699539945,
"width": 75.79716730376038,
"height": 25.394126619390647,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"index": "a5",
"roundness": {
"type": 2
},
"seed": 2014425188,
"version": 337,
"versionNonce": 1723759580,
"isDeleted": false,
"boundElements": [],
"updated": 1758250855830,
"link": null,
"locked": false,
"points": [
[
0,
0
],
[
75.79716730376038,
25.394126619390647
]
],
"lastCommittedPoint": null,
"startBinding": {
"elementId": "YQSFOzXAIoimZKDRAMPdO",
"focus": -0.32587746813723606,
"gap": 14.747056243884572
},
"endBinding": {
"elementId": "3RO_1ekdwosRo148aHQ16",
"focus": 0.15464786110134618,
"gap": 9.297238455994918
},
"startArrowhead": null,
"endArrowhead": "arrow",
"elbowed": false
},
{
"id": "FLnYPnmPXglTjS5CET7I1",
"type": "arrow",
"x": 1121.7142857142858,
"y": 480.34174696108755,
"width": 42.00000000000023,
"height": 2.2830995593715784,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"index": "a6",
"roundness": {
"type": 2
},
"seed": 31689564,
"version": 406,
"versionNonce": 868330852,
"isDeleted": false,
"boundElements": [],
"updated": 1758250856847,
"link": null,
"locked": false,
"points": [
[
0,
0
],
[
42.00000000000023,
2.2830995593715784
]
],
"lastCommittedPoint": null,
"startBinding": {
"elementId": "3RO_1ekdwosRo148aHQ16",
"focus": -0.0693390746587104,
"gap": 10
},
"endBinding": {
"elementId": "xAMHk9JEjcpvIH98p7v8j",
"focus": -0.2080017633064551,
"gap": 10.999999999999773
},
"startArrowhead": null,
"endArrowhead": "arrow",
"elbowed": false
},
{
"id": "X0pOWHu2Eq03pkuAdCXG8",
"type": "arrow",
"x": 1297.2895331841237,
"y": 199.0677585090273,
"width": 400.28953318412357,
"height": 197.28657807993912,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"index": "a7",
"roundness": {
"type": 2
},
"seed": 845357788,
"version": 139,
"versionNonce": 803724124,
"isDeleted": false,
"boundElements": [],
"updated": 1758250845107,
"link": null,
"locked": false,
"points": [
[
0,
0
],
[
-400.28953318412357,
197.28657807993912
]
],
"lastCommittedPoint": null,
"startBinding": {
"elementId": "iB-y0pvq-AaVD3LCLJmqs",
"focus": 0.3682776729522173,
"gap": 19.885703820119716
},
"endBinding": {
"elementId": "YQSFOzXAIoimZKDRAMPdO",
"focus": 0.3268336531314281,
"gap": 10
},
"startArrowhead": null,
"endArrowhead": "arrow",
"elbowed": false
},
{
"id": "VFny9yVS5m6V0OnXFA-nu",
"type": "text",
"x": 1536.5714285714284,
"y": 111,
"width": 482.6399841308594,
"height": 225,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"index": "a9",
"roundness": null,
"seed": 731652836,
"version": 1189,
"versionNonce": 325042020,
"isDeleted": false,
"boundElements": [],
"updated": 1758252253877,
"link": null,
"locked": false,
"text": "1. 网关监听控制端口和数据端口,节点主动建立控制连\n接如果网关可建立连接数已满则响应拒绝\n2. 接收节点连接后,网关下发连接配置,节点根据配\n置建立多条数据连接整个流程完成后节点才会被记\n入可用列表\n3. 网关上报节点信息,以便平台分配用户连接\n4. 用户建立连接,控制通道发送连接指令,节点返回\n连接结果并选择一条数据通道服务端开始将用户数据\n写入指定数据通道",
"fontSize": 20,
"fontFamily": 5,
"textAlign": "left",
"verticalAlign": "top",
"containerId": null,
"originalText": "1. 网关监听控制端口和数据端口,节点主动建立控制连接,如果网关可建立连接数已满,则响应拒绝\n2. 接收节点连接后,网关下发连接配置,节点根据配置建立多条数据连接(整个流程完成后,节点才会被记入可用列表)\n3. 网关上报节点信息,以便平台分配用户连接\n4. 用户建立连接,控制通道发送连接指令,节点返回连接结果并选择一条数据通道,服务端开始将用户数据写入指定数据通道",
"autoResize": false,
"lineHeight": 1.25
},
{
"id": "KdL3Wzz4ZJb7d_ef-tWBu",
"type": "text",
"x": 262.714285714286,
"y": -122.28571428571428,
"width": 316.47998046875,
"height": 250,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"index": "aA",
"roundness": null,
"seed": 1020522460,
"version": 1005,
"versionNonce": 831608292,
"isDeleted": false,
"boundElements": [],
"updated": 1758250815223,
"link": null,
"locked": false,
"text": "1. 节点连接网关控制端口(域名负\n载均衡网关下发连接配置节\n点根据配置建立数据连接池\n2. 收到网关发送的连接命令后,节\n点尝试连接然后选择一个可用通\n道建立绑定将选择结果发送给服\n务端\n3. 如果连接池已耗尽,则自动请求\n新连接如果连接已达到允许最大\n量则返回失败以及原因",
"fontSize": 20,
"fontFamily": 5,
"textAlign": "left",
"verticalAlign": "top",
"containerId": null,
"originalText": "1. 节点连接网关控制端口(域名负载均衡),网关下发连接配置,节点根据配置建立数据连接池\n2. 收到网关发送的连接命令后,节点尝试连接,然后选择一个可用通道建立绑定,将选择结果发送给服务端\n3. 如果连接池已耗尽,则自动请求新连接,如果连接已达到允许最大量,则返回失败以及原因",
"autoResize": false,
"lineHeight": 1.25
},
{
"id": "NF8UY--pQucfBdNyMcDOr",
"type": "arrow",
"x": 1312.7142857142858,
"y": 478.42857142857144,
"width": 36,
"height": 0,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"index": "aB",
"roundness": {
"type": 2
},
"seed": 1192023012,
"version": 51,
"versionNonce": 2117641316,
"isDeleted": false,
"boundElements": [],
"updated": 1758250856847,
"link": null,
"locked": false,
"points": [
[
0,
0
],
[
36,
0
]
],
"lastCommittedPoint": null,
"startBinding": {
"elementId": "xAMHk9JEjcpvIH98p7v8j",
"focus": 0.024390243902438533,
"gap": 11
},
"endBinding": {
"elementId": "hS8KJjHGigL9_n9Y0k3VW",
"focus": 0.024390243902438533,
"gap": 16
},
"startArrowhead": null,
"endArrowhead": "arrow",
"elbowed": false
},
{
"id": "bOO8NghHhpbsbwMizWHMg",
"type": "arrow",
"x": 1425.9261337543624,
"y": 425.42857142857144,
"width": 0.9723216160143693,
"height": 186.85714285714286,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"index": "aC",
"roundness": {
"type": 2
},
"seed": 1853068380,
"version": 57,
"versionNonce": 856654940,
"isDeleted": false,
"boundElements": [],
"updated": 1758250855830,
"link": null,
"locked": false,
"points": [
[
0,
0
],
[
-0.9723216160143693,
-186.85714285714286
]
],
"lastCommittedPoint": null,
"startBinding": {
"elementId": "hS8KJjHGigL9_n9Y0k3VW",
"focus": -0.03296703296703676,
"gap": 13
},
"endBinding": {
"elementId": "iB-y0pvq-AaVD3LCLJmqs",
"focus": -0.12657091561938946,
"gap": 20
},
"startArrowhead": null,
"endArrowhead": "arrow",
"elbowed": false
},
{
"id": "qCWZNmKtzDfMv4AC8D0oG",
"type": "rectangle",
"x": 293.42857142857144,
"y": 141.9999999999999,
"width": 196,
"height": 93,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"index": "aD",
"roundness": {
"type": 3
},
"seed": 223069020,
"version": 110,
"versionNonce": 2035763292,
"isDeleted": false,
"boundElements": [
{
"type": "text",
"id": "vbeA_KNhf7f_atLlrD2cH"
},
{
"id": "9V22f7KfKiXD-7Ponl3Bj",
"type": "arrow"
},
{
"id": "rqWZ5ArAtwKR6dmJc9PxO",
"type": "arrow"
}
],
"updated": 1758249983798,
"link": null,
"locked": false
},
{
"id": "vbeA_KNhf7f_atLlrD2cH",
"type": "text",
"x": 336.3685814993722,
"y": 175.9999999999999,
"width": 110.11997985839844,
"height": 25,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"index": "aE",
"roundness": null,
"seed": 1562058852,
"version": 61,
"versionNonce": 1216732380,
"isDeleted": false,
"boundElements": [],
"updated": 1758249983798,
"link": null,
"locked": false,
"text": "边缘节点(m)",
"fontSize": 20,
"fontFamily": 5,
"textAlign": "center",
"verticalAlign": "middle",
"containerId": "qCWZNmKtzDfMv4AC8D0oG",
"originalText": "边缘节点(m)",
"autoResize": true,
"lineHeight": 1.25
},
{
"id": "7xwPc3ATVg-eoVidGgx-9",
"type": "rectangle",
"x": 301.57142857142867,
"y": 352,
"width": 196,
"height": 93,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"index": "aEG",
"roundness": {
"type": 3
},
"seed": 309943132,
"version": 130,
"versionNonce": 289974884,
"isDeleted": false,
"boundElements": [
{
"type": "text",
"id": "vRsFuYuNDx59Pnnc5uKTk"
},
{
"id": "XPyBOS_LqtMOCnawJu_WA",
"type": "arrow"
}
],
"updated": 1758250199757,
"link": null,
"locked": false
},
{
"id": "vRsFuYuNDx59Pnnc5uKTk",
"type": "text",
"x": 365.8814413888115,
"y": 386,
"width": 67.37997436523438,
"height": 25,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"index": "aEV",
"roundness": null,
"seed": 971870172,
"version": 93,
"versionNonce": 1140024924,
"isDeleted": false,
"boundElements": [],
"updated": 1758250204070,
"link": null,
"locked": false,
"text": "用户(n)",
"fontSize": 20,
"fontFamily": 5,
"textAlign": "center",
"verticalAlign": "middle",
"containerId": "7xwPc3ATVg-eoVidGgx-9",
"originalText": "用户(n)",
"autoResize": true,
"lineHeight": 1.25
},
{
"id": "9V22f7KfKiXD-7Ponl3Bj",
"type": "arrow",
"x": 499.42857142857144,
"y": 181.43307642485092,
"width": 215.85714285714278,
"height": 46.76792076656196,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"index": "aF",
"roundness": {
"type": 2
},
"seed": 441123420,
"version": 116,
"versionNonce": 1252386524,
"isDeleted": false,
"boundElements": [],
"updated": 1758250553709,
"link": null,
"locked": false,
"points": [
[
0,
0
],
[
215.85714285714278,
-46.76792076656196
]
],
"lastCommittedPoint": null,
"startBinding": {
"elementId": "qCWZNmKtzDfMv4AC8D0oG",
"focus": 0.2349897268092233,
"gap": 10
},
"endBinding": {
"elementId": "4Bnah8890hn5qWFx2u44d",
"focus": 0.28164678722585557,
"gap": 15
},
"startArrowhead": null,
"endArrowhead": "arrow",
"elbowed": false
},
{
"id": "rqWZ5ArAtwKR6dmJc9PxO",
"type": "arrow",
"x": 501.42857142857144,
"y": 211.53561243889487,
"width": 217.57142857142856,
"height": 32.90264193875478,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"index": "aG",
"roundness": {
"type": 2
},
"seed": 2008806116,
"version": 99,
"versionNonce": 812475236,
"isDeleted": false,
"boundElements": [],
"updated": 1758250847687,
"link": null,
"locked": false,
"points": [
[
0,
0
],
[
217.57142857142856,
32.90264193875478
]
],
"lastCommittedPoint": null,
"startBinding": {
"elementId": "qCWZNmKtzDfMv4AC8D0oG",
"focus": 0.10279065698539035,
"gap": 12
},
"endBinding": {
"elementId": "OVHWjR9Ict69KRGCXnx98",
"focus": -0.17283172540844574,
"gap": 17
},
"startArrowhead": null,
"endArrowhead": "arrow",
"elbowed": false
},
{
"id": "XPyBOS_LqtMOCnawJu_WA",
"type": "arrow",
"x": 514.5714285714287,
"y": 408.6007028205131,
"width": 208.42857142857133,
"height": 3.7734231403638887,
"angle": 0,
"strokeColor": "#1e1e1e",
"backgroundColor": "transparent",
"fillStyle": "solid",
"strokeWidth": 2,
"strokeStyle": "solid",
"roughness": 1,
"opacity": 100,
"groupIds": [],
"frameId": null,
"index": "aH",
"roundness": {
"type": 2
},
"seed": 1876458332,
"version": 72,
"versionNonce": 434397540,
"isDeleted": false,
"boundElements": [],
"updated": 1758250199757,
"link": null,
"locked": false,
"points": [
[
0,
0
],
[
208.42857142857133,
3.7734231403638887
]
],
"lastCommittedPoint": null,
"startBinding": {
"elementId": "7xwPc3ATVg-eoVidGgx-9",
"focus": 0.15820297449333562,
"gap": 17
},
"endBinding": {
"elementId": "YQSFOzXAIoimZKDRAMPdO",
"focus": -0.012406110220272623,
"gap": 13
},
"startArrowhead": null,
"endArrowhead": "arrow",
"elbowed": false
}
],
"appState": {
"gridSize": 20,
"gridStep": 5,
"gridModeEnabled": false,
"viewBackgroundColor": "#ffffff",
"lockedMultiSelections": {}
},
"files": {}
}