From 3991269dcd0d4301aa5cb29aaeb474eed9e1a89e Mon Sep 17 00:00:00 2001 From: "kts of kettek (POWERQWACK)" Date: Sun, 27 Jun 2021 17:48:15 -0700 Subject: [PATCH] Add diagram section with excalidraw file --- diagrams/accord-210219-1.excalidraw | 2563 +++++++++++++++++++++++++++ 1 file changed, 2563 insertions(+) create mode 100644 diagrams/accord-210219-1.excalidraw diff --git a/diagrams/accord-210219-1.excalidraw b/diagrams/accord-210219-1.excalidraw new file mode 100644 index 0000000..6e320d8 --- /dev/null +++ b/diagrams/accord-210219-1.excalidraw @@ -0,0 +1,2563 @@ +{ + "type": "excalidraw", + "version": 2, + "source": "https://excalidraw.com", + "elements": [ + { + "type": "rectangle", + "version": 459, + "versionNonce": 1303879278, + "isDeleted": false, + "id": "iBsOeHh_qqZO_mnwZ0Rw9", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 10, + "angle": 0, + "x": -1518, + "y": 21.125, + "strokeColor": "#d9480f", + "backgroundColor": "#fd7e14", + "width": 195, + "height": 93.75000000000001, + "seed": 116865425, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [] + }, + { + "type": "rectangle", + "version": 430, + "versionNonce": 1105872754, + "isDeleted": false, + "id": "bxlduMU9sQoQPQJK0o00c", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 10, + "angle": 0, + "x": -1661.75, + "y": 17.375, + "strokeColor": "#d9480f", + "backgroundColor": "#fd7e14", + "width": 135, + "height": 98.75, + "seed": 1610760241, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [] + }, + { + "type": "rectangle", + "version": 386, + "versionNonce": 1582669998, + "isDeleted": false, + "id": "7sP8ouwk_qO07n-Ra15F_", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 10, + "angle": 0, + "x": -1663, + "y": 128.625, + "strokeColor": "#d9480f", + "backgroundColor": "#fd7e14", + "width": 133.75000000000006, + "height": 32.50000000000001, + "seed": 1310857759, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [] + }, + { + "type": "rectangle", + "version": 359, + "versionNonce": 332695858, + "isDeleted": false, + "id": "QON1YXICAWxI8zSIUwisG", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 30, + "angle": 0, + "x": 234, + "y": 226, + "strokeColor": "#000000", + "backgroundColor": "#82c91e", + "width": 328, + "height": 180, + "seed": 107680127, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [] + }, + { + "type": "rectangle", + "version": 418, + "versionNonce": 679041774, + "isDeleted": false, + "id": "oHLfHQWZbru1hnBA3oVGb", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 30, + "angle": 0, + "x": 233, + "y": -137, + "strokeColor": "#000000", + "backgroundColor": "#15aabf", + "width": 327, + "height": 136, + "seed": 542852959, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [] + }, + { + "type": "rectangle", + "version": 554, + "versionNonce": 982553330, + "isDeleted": false, + "id": "AQNkqmwsJsXbwSLb6KjQG", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 30, + "angle": 0, + "x": 232, + "y": 7.999999999999943, + "strokeColor": "#000000", + "backgroundColor": "#fab005", + "width": 328, + "height": 205.00000000000006, + "seed": 381258207, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [] + }, + { + "type": "text", + "version": 342, + "versionNonce": 1655426350, + "isDeleted": false, + "id": "z5GxS4ZiHT06NRXuK0rN2", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 154, + "y": -169.5, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 73, + "height": 32, + "seed": 1522021023, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [], + "fontSize": 20, + "fontFamily": 1, + "text": "client A", + "baseline": 23, + "textAlign": "left", + "verticalAlign": "top" + }, + { + "type": "rectangle", + "version": 752, + "versionNonce": 1218798770, + "isDeleted": false, + "id": "qmD4baVtl18qfKN7-xEpa", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 112, + "y": -131, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 132, + "height": 625, + "seed": 412821553, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [ + "qx5eSUV_a-Kr2QqaYxh08", + "cWncaEPtw9ToDdtqBA_mP", + "i7kQVlx6oJJ2N_BhQygit", + "j0U-NYoT10Pwnr6RGX8yG", + "pt5o-bfysPk1LMAzVnK8m", + "TrZe1QdV-QLB2ueucIYIY", + "h25jFYabI75XJqi2waRvU", + "5MkfzaOeEWPEYTgmQeCY1", + "OkxGtdraEKp9uhgPxxA4E", + "ypv3pPUp8KLQC1e7hxJqj", + "aMZppMCDOLth5BHQF3T1Q", + "3XY2tjUiIsFbB0UqkFIdm" + ] + }, + { + "type": "text", + "version": 207, + "versionNonce": 173406062, + "isDeleted": false, + "id": "UIJmNrmhshUCw_6MyOZTs", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 583, + "y": -164.5, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 74, + "height": 32, + "seed": 1004723665, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [], + "fontSize": 20, + "fontFamily": 1, + "text": "client B", + "baseline": 23, + "textAlign": "left", + "verticalAlign": "top" + }, + { + "type": "rectangle", + "version": 447, + "versionNonce": 1740242546, + "isDeleted": false, + "id": "kpX3LbcK5WMV9WpB9yzf7", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 551, + "y": -133, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 152, + "height": 628, + "seed": 1485260927, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [ + "qx5eSUV_a-Kr2QqaYxh08", + "cWncaEPtw9ToDdtqBA_mP", + "i7kQVlx6oJJ2N_BhQygit", + "j0U-NYoT10Pwnr6RGX8yG", + "pt5o-bfysPk1LMAzVnK8m", + "TrZe1QdV-QLB2ueucIYIY", + "h25jFYabI75XJqi2waRvU", + "5MkfzaOeEWPEYTgmQeCY1", + "OkxGtdraEKp9uhgPxxA4E", + "ypv3pPUp8KLQC1e7hxJqj", + "aMZppMCDOLth5BHQF3T1Q", + "3XY2tjUiIsFbB0UqkFIdm" + ] + }, + { + "type": "text", + "version": 482, + "versionNonce": 130079150, + "isDeleted": false, + "id": "mmm790EgwKi25IIHUU6Ru", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 312, + "y": -111.5, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 180, + "height": 64, + "seed": 1589549215, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [ + "qx5eSUV_a-Kr2QqaYxh08" + ], + "fontSize": 20, + "fontFamily": 1, + "text": "\n{GREET, pubkeyA}", + "baseline": 55, + "textAlign": "left", + "verticalAlign": "top" + }, + { + "type": "text", + "version": 789, + "versionNonce": 1955946546, + "isDeleted": false, + "id": "U7MyCa2vEM-bZHiyP63g6", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 289, + "y": 15.5, + "strokeColor": "#c92a2a", + "backgroundColor": "transparent", + "width": 216, + "height": 64, + "seed": 1981825905, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [], + "fontSize": 20, + "fontFamily": 1, + "text": "pubkeyA ENCRYPTED\n{GREET, pubkeyB}", + "baseline": 55, + "textAlign": "left", + "verticalAlign": "top" + }, + { + "type": "text", + "version": 973, + "versionNonce": 1377137646, + "isDeleted": false, + "id": "MTbO0iAcWmqLEPow0A0Ov", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 263, + "y": 116.5, + "strokeColor": "#c92a2a", + "backgroundColor": "transparent", + "width": 217, + "height": 64, + "seed": 448400785, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [], + "fontSize": 20, + "fontFamily": 1, + "text": "pubkeyB ENCRYPTED\n{AES token}", + "baseline": 55, + "textAlign": "left", + "verticalAlign": "top" + }, + { + "type": "arrow", + "version": 503, + "versionNonce": 454986226, + "isDeleted": false, + "id": "5MkfzaOeEWPEYTgmQeCY1", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 245, + "y": -44, + "strokeColor": "#000000", + "backgroundColor": "#82c91e", + "width": 305, + "height": 1, + "seed": 188913471, + "groupIds": [], + "strokeSharpness": "round", + "boundElementIds": [], + "startBinding": { + "elementId": "qmD4baVtl18qfKN7-xEpa", + "focus": -0.7203982029493021, + "gap": 1 + }, + "endBinding": { + "elementId": "kpX3LbcK5WMV9WpB9yzf7", + "focus": 0.7199778811844001, + "gap": 1 + }, + "points": [ + [ + 0, + 0 + ], + [ + 305, + -1 + ] + ], + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "type": "arrow", + "version": 509, + "versionNonce": 324847150, + "isDeleted": false, + "id": "OkxGtdraEKp9uhgPxxA4E", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 548, + "y": 93, + "strokeColor": "#c92a2a", + "backgroundColor": "#82c91e", + "width": 304, + "height": 4, + "seed": 1280732767, + "groupIds": [], + "strokeSharpness": "round", + "boundElementIds": [], + "startBinding": { + "elementId": "kpX3LbcK5WMV9WpB9yzf7", + "focus": 0.2760651629072681, + "gap": 3 + }, + "endBinding": { + "elementId": "qmD4baVtl18qfKN7-xEpa", + "focus": -0.2979509573396036, + "gap": 1 + }, + "points": [ + [ + 0, + 0 + ], + [ + -304, + -4 + ] + ], + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "type": "arrow", + "version": 511, + "versionNonce": 1918663602, + "isDeleted": false, + "id": "ypv3pPUp8KLQC1e7hxJqj", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 246, + "y": 185, + "strokeColor": "#c92a2a", + "backgroundColor": "#82c91e", + "width": 305, + "height": 1, + "seed": 1248580241, + "groupIds": [], + "strokeSharpness": "round", + "boundElementIds": [], + "startBinding": { + "elementId": "qmD4baVtl18qfKN7-xEpa", + "focus": 0.010479300890661944, + "gap": 2 + }, + "endBinding": { + "elementId": "kpX3LbcK5WMV9WpB9yzf7", + "focus": -0.016703879139452874, + "gap": 1 + }, + "points": [ + [ + 0, + 0 + ], + [ + 305, + 1 + ] + ], + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "type": "text", + "version": 637, + "versionNonce": 1283444846, + "isDeleted": false, + "id": "TYEPsBH8kmagfGmgCTZlz", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 338, + "y": 236.5, + "strokeColor": "#364fc7", + "backgroundColor": "#82c91e", + "width": 102, + "height": 32, + "seed": 155093713, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [], + "fontSize": 20, + "fontFamily": 1, + "text": "{FRIEND}", + "baseline": 23, + "textAlign": "left", + "verticalAlign": "top" + }, + { + "type": "arrow", + "version": 557, + "versionNonce": 410400114, + "isDeleted": false, + "id": "aMZppMCDOLth5BHQF3T1Q", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 549, + "y": 268, + "strokeColor": "#364fc7", + "backgroundColor": "#82c91e", + "width": 304, + "height": 1, + "seed": 608034193, + "groupIds": [], + "strokeSharpness": "round", + "boundElementIds": [], + "startBinding": { + "elementId": "kpX3LbcK5WMV9WpB9yzf7", + "focus": -0.2776661223464388, + "gap": 2 + }, + "endBinding": { + "elementId": "qmD4baVtl18qfKN7-xEpa", + "focus": 0.27270527843813774, + "gap": 1 + }, + "points": [ + [ + 0, + 0 + ], + [ + -304, + -1 + ] + ], + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "type": "text", + "version": 361, + "versionNonce": 2034733742, + "isDeleted": false, + "id": "emLFydH8C-yixIWzQMcdC", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 268, + "y": 311.5, + "strokeColor": "#364fc7", + "backgroundColor": "#82c91e", + "width": 102, + "height": 32, + "seed": 787642737, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [], + "fontSize": 20, + "fontFamily": 1, + "text": "{FRIEND}", + "baseline": 23, + "textAlign": "left", + "verticalAlign": "top" + }, + { + "type": "arrow", + "version": 541, + "versionNonce": 1320335154, + "isDeleted": false, + "id": "3XY2tjUiIsFbB0UqkFIdm", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 247.99999999999997, + "y": 353, + "strokeColor": "#364fc7", + "backgroundColor": "#82c91e", + "width": 301, + "height": 1, + "seed": 2005196497, + "groupIds": [], + "strokeSharpness": "round", + "boundElementIds": [], + "startBinding": { + "elementId": "qmD4baVtl18qfKN7-xEpa", + "focus": 0.5476715341262212, + "gap": 3.9999999999999716 + }, + "endBinding": { + "elementId": "kpX3LbcK5WMV9WpB9yzf7", + "focus": -0.5513373506713184, + "gap": 2 + }, + "points": [ + [ + 0, + 0 + ], + [ + 301, + 1 + ] + ], + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "type": "text", + "version": 836, + "versionNonce": 878513390, + "isDeleted": false, + "id": "LTAMbpxlNoGXalgDinjnv", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 564, + "y": 75.5, + "strokeColor": "#c92a2a", + "backgroundColor": "#82c91e", + "width": 98, + "height": 32, + "seed": 1108497266, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [], + "fontSize": 20, + "fontFamily": 1, + "text": "RSA-OAEP", + "baseline": 23, + "textAlign": "left", + "verticalAlign": "top" + }, + { + "type": "text", + "version": 453, + "versionNonce": 360251634, + "isDeleted": false, + "id": "m1dHqnEE981sO4lteZH-m", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 130, + "y": -64.5, + "strokeColor": "#000000", + "backgroundColor": "#82c91e", + "width": 92, + "height": 32, + "seed": 1400971758, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [], + "fontSize": 20, + "fontFamily": 1, + "text": "Plaintext", + "baseline": 23, + "textAlign": "left", + "verticalAlign": "top" + }, + { + "type": "text", + "version": 315, + "versionNonce": 1531526958, + "isDeleted": false, + "id": "oHz_bYkqQYD1Cgr_4ImN7", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 570, + "y": 340.5, + "strokeColor": "#364fc7", + "backgroundColor": "#82c91e", + "width": 38, + "height": 32, + "seed": 282779954, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [], + "fontSize": 20, + "fontFamily": 1, + "text": "AES", + "baseline": 23, + "textAlign": "left", + "verticalAlign": "top" + }, + { + "type": "text", + "version": 162, + "versionNonce": 1213207218, + "isDeleted": false, + "id": "TryeMkpCehzAqrNlT9RoN", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 268, + "y": -214.5, + "strokeColor": "#000000", + "backgroundColor": "#82c91e", + "width": 268, + "height": 32, + "seed": 928852977, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [], + "fontSize": 20, + "fontFamily": 1, + "text": "pubkey->AES token greeting", + "baseline": 23, + "textAlign": "left", + "verticalAlign": "top" + }, + { + "type": "text", + "version": 48, + "versionNonce": 846539118, + "isDeleted": false, + "id": "GBupDB8TweNlUSVv5bjWe", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -635, + "y": -206.5, + "strokeColor": "#000000", + "backgroundColor": "#82c91e", + "width": 202, + "height": 32, + "seed": 626925745, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [], + "fontSize": 20, + "fontFamily": 1, + "text": "UDP NAT Traversal", + "baseline": 23, + "textAlign": "left", + "verticalAlign": "top" + }, + { + "type": "rectangle", + "version": 321, + "versionNonce": 970910834, + "isDeleted": false, + "id": "ubeGmwQ1srGKZJX-c-MkA", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -778, + "y": -152, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 582, + "height": 256, + "seed": 1131438289, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [] + }, + { + "type": "text", + "version": 37, + "versionNonce": 153734062, + "isDeleted": false, + "id": "TooWCMZWcd7PFcv28y3qX", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -736, + "y": -120.5, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 63, + "height": 32, + "seed": 1741275153, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [ + "nXu3vfHy0PjxI5zvPEjQR" + ], + "fontSize": 20, + "fontFamily": 1, + "text": "clientA", + "baseline": 23, + "textAlign": "left", + "verticalAlign": "top" + }, + { + "type": "text", + "version": 133, + "versionNonce": 1340902962, + "isDeleted": false, + "id": "swWXmQ4wJ-CrOXcnVsNgK", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -742, + "y": -14.5, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 64, + "height": 32, + "seed": 1410993873, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [ + "vmtcqvAp9iv2l8mJbBfkz" + ], + "fontSize": 20, + "fontFamily": 1, + "text": "clientB", + "baseline": 23, + "textAlign": "left", + "verticalAlign": "top" + }, + { + "type": "text", + "version": 115, + "versionNonce": 1569727982, + "isDeleted": false, + "id": "oUW3tKOZJbCumt_meec0p", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -404, + "y": -53.5, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 83, + "height": 32, + "seed": 1966543857, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [ + "nXu3vfHy0PjxI5zvPEjQR", + "vmtcqvAp9iv2l8mJbBfkz" + ], + "fontSize": 20, + "fontFamily": 1, + "text": "mediator", + "baseline": 23, + "textAlign": "left", + "verticalAlign": "top" + }, + { + "type": "arrow", + "version": 96, + "versionNonce": 526383090, + "isDeleted": false, + "id": "nXu3vfHy0PjxI5zvPEjQR", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -663, + "y": -99, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 253, + "height": 68, + "seed": 1719220671, + "groupIds": [], + "strokeSharpness": "round", + "boundElementIds": [], + "startBinding": { + "elementId": "TooWCMZWcd7PFcv28y3qX", + "focus": -0.23109854604200325, + "gap": 10 + }, + "endBinding": { + "elementId": "oUW3tKOZJbCumt_meec0p", + "focus": -0.7095342066957788, + "gap": 6 + }, + "points": [ + [ + 0, + 0 + ], + [ + 253, + 68 + ] + ], + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "type": "arrow", + "version": 295, + "versionNonce": 11614254, + "isDeleted": false, + "id": "vmtcqvAp9iv2l8mJbBfkz", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -671, + "y": 13.153550321918, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 262, + "height": 44.98352286479208, + "seed": 2050883761, + "groupIds": [], + "strokeSharpness": "round", + "boundElementIds": [], + "startBinding": { + "elementId": "swWXmQ4wJ-CrOXcnVsNgK", + "focus": 0.8539309954751131, + "gap": 7 + }, + "endBinding": { + "elementId": "oUW3tKOZJbCumt_meec0p", + "focus": 0.10005033979360684, + "gap": 5 + }, + "points": [ + [ + 0, + 0 + ], + [ + 262, + -44.98352286479208 + ] + ], + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "type": "text", + "version": 346, + "versionNonce": 138422706, + "isDeleted": false, + "id": "Y2J3ZLqvwfp6dzzY10hzX", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -707, + "y": 38.5, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 427, + "height": 64, + "seed": 330499057, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [], + "fontSize": 20, + "fontFamily": 1, + "text": "both clients have a reliable UDP connection\nto the mediator", + "baseline": 55, + "textAlign": "left", + "verticalAlign": "top" + }, + { + "type": "rectangle", + "version": 122, + "versionNonce": 980812398, + "isDeleted": false, + "id": "2-chYscD9SQKoLKEayg0U", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -780, + "y": 150, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 585, + "height": 230, + "seed": 702725759, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [] + }, + { + "type": "text", + "version": 39, + "versionNonce": 1370760050, + "isDeleted": false, + "id": "WCzp-SCyTsa4SI0A6p8me", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -354, + "y": 249.5, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 83, + "height": 32, + "seed": 1701781937, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [ + "Mny3L3VSLeNImwwJm3X80", + "rcyyyUKeqcrMZ5irlTfgC", + "sdQd-trJBBMK-eLDF-KtC" + ], + "fontSize": 20, + "fontFamily": 1, + "text": "mediator", + "baseline": 23, + "textAlign": "left", + "verticalAlign": "top" + }, + { + "type": "text", + "version": 332, + "versionNonce": 1839695022, + "isDeleted": false, + "id": "9rx1dVjyqPOn4W4q7VsJY", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -717, + "y": 316.5, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 418, + "height": 64, + "seed": 303842463, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [], + "fontSize": 20, + "fontFamily": 1, + "text": "clientA asks to talk to clientB\n(mediator returns address:port to clientA)", + "baseline": 55, + "textAlign": "left", + "verticalAlign": "top" + }, + { + "type": "text", + "version": 37, + "versionNonce": 1174594866, + "isDeleted": false, + "id": "Rjicr83PupuPJyLVNOCSX", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -732, + "y": 168.5, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 63, + "height": 32, + "seed": 325174161, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [ + "Mny3L3VSLeNImwwJm3X80", + "sdQd-trJBBMK-eLDF-KtC" + ], + "fontSize": 20, + "fontFamily": 1, + "text": "clientA", + "baseline": 23, + "textAlign": "left", + "verticalAlign": "top" + }, + { + "type": "text", + "version": 40, + "versionNonce": 1005502190, + "isDeleted": false, + "id": "ck_DMWYvjFM2UvoCg8v1a", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -731, + "y": 276.5, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 64, + "height": 32, + "seed": 308619633, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [ + "rcyyyUKeqcrMZ5irlTfgC" + ], + "fontSize": 20, + "fontFamily": 1, + "text": "clientB", + "baseline": 23, + "textAlign": "left", + "verticalAlign": "top" + }, + { + "type": "arrow", + "version": 118, + "versionNonce": 1318285042, + "isDeleted": false, + "id": "Mny3L3VSLeNImwwJm3X80", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -658, + "y": 170.98655159625656, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 300, + "height": 67.01168397748802, + "seed": 527808177, + "groupIds": [], + "strokeSharpness": "round", + "boundElementIds": [], + "startBinding": { + "elementId": "Rjicr83PupuPJyLVNOCSX", + "focus": -0.9987212959259695, + "gap": 11 + }, + "endBinding": { + "elementId": "WCzp-SCyTsa4SI0A6p8me", + "focus": 0.6861242682527529, + "gap": 11.50176442625542 + }, + "points": [ + [ + 0, + 0 + ], + [ + 300, + 67.01168397748802 + ] + ], + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "type": "rectangle", + "version": 206, + "versionNonce": 701804846, + "isDeleted": false, + "id": "Gz9ztk8-GIEpUkrCpbpvQ", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -782, + "y": 414, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 585, + "height": 243.00000000000006, + "seed": 1797994527, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [] + }, + { + "type": "text", + "version": 126, + "versionNonce": 267174066, + "isDeleted": false, + "id": "3usLJN7DGoe_oofvgs3-h", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -349, + "y": 518.5, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 83, + "height": 32, + "seed": 1692921087, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [ + "Mny3L3VSLeNImwwJm3X80", + "rcyyyUKeqcrMZ5irlTfgC" + ], + "fontSize": 20, + "fontFamily": 1, + "text": "mediator", + "baseline": 23, + "textAlign": "left", + "verticalAlign": "top" + }, + { + "type": "text", + "version": 125, + "versionNonce": 1120033646, + "isDeleted": false, + "id": "ViDZArZJy-ajnS5TFVhZ7", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -727, + "y": 437.5, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 63, + "height": 32, + "seed": 844012447, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [ + "Mny3L3VSLeNImwwJm3X80", + "-fPSjn_ObFDAWKG_MtRWN" + ], + "fontSize": 20, + "fontFamily": 1, + "text": "clientA", + "baseline": 23, + "textAlign": "left", + "verticalAlign": "top" + }, + { + "type": "text", + "version": 131, + "versionNonce": 95804018, + "isDeleted": false, + "id": "WhtHrNl-HweG3QLWcuTX4", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -726, + "y": 545.5, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 64, + "height": 32, + "seed": 2113844351, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [ + "rcyyyUKeqcrMZ5irlTfgC", + "-fPSjn_ObFDAWKG_MtRWN" + ], + "fontSize": 20, + "fontFamily": 1, + "text": "clientB", + "baseline": 23, + "textAlign": "left", + "verticalAlign": "top" + }, + { + "type": "arrow", + "version": 61, + "versionNonce": 1023458734, + "isDeleted": false, + "id": "-fPSjn_ObFDAWKG_MtRWN", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -695, + "y": 479, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 1, + "height": 59, + "seed": 1111605215, + "groupIds": [], + "strokeSharpness": "round", + "boundElementIds": [], + "startBinding": { + "elementId": "ViDZArZJy-ajnS5TFVhZ7", + "focus": -0.0021339023739663913, + "gap": 9.5 + }, + "endBinding": { + "elementId": "WhtHrNl-HweG3QLWcuTX4", + "focus": 0.012342436974789917, + "gap": 7.5 + }, + "points": [ + [ + 0, + 0 + ], + [ + 1, + 59 + ] + ], + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "type": "text", + "version": 270, + "versionNonce": 515226674, + "isDeleted": false, + "id": "CKDtHG90-LBcCSlfbLsYX", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -719, + "y": 581.5, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 467, + "height": 64, + "seed": 39767697, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [], + "fontSize": 20, + "fontFamily": 1, + "text": "clientA uses mediator connection to send to\nclientB's address:port as given by the mediator", + "baseline": 55, + "textAlign": "left", + "verticalAlign": "top" + }, + { + "type": "text", + "version": 169, + "versionNonce": 498653166, + "isDeleted": false, + "id": "Tq8Nzi2ix_Zq0Td2Ndl2U", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0.21018258666216916, + "x": -611, + "y": 173.5, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 200, + "height": 32, + "seed": 1873245425, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [], + "fontSize": 20, + "fontFamily": 1, + "text": "do you know clientB?", + "baseline": 23, + "textAlign": "left", + "verticalAlign": "top" + }, + { + "type": "arrow", + "version": 181, + "versionNonce": 1490249202, + "isDeleted": false, + "id": "sdQd-trJBBMK-eLDF-KtC", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -367, + "y": 295, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 310, + "height": 87, + "seed": 235260671, + "groupIds": [], + "strokeSharpness": "round", + "boundElementIds": [], + "startBinding": { + "elementId": "WCzp-SCyTsa4SI0A6p8me", + "focus": -1.620267195612858, + "gap": 13.5 + }, + "endBinding": { + "elementId": "Rjicr83PupuPJyLVNOCSX", + "focus": 0.6805402246607364, + "gap": 7.5 + }, + "points": [ + [ + 0, + 0 + ], + [ + -310, + -87 + ] + ], + "lastCommittedPoint": null, + "startArrowhead": null, + "endArrowhead": "arrow" + }, + { + "type": "text", + "version": 371, + "versionNonce": 1559472686, + "isDeleted": false, + "id": "J5v5efJsEwp0i64pTGqnp", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0.27714053574787556, + "x": -663.2539286441457, + "y": 250.56229654578607, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 282, + "height": 32, + "seed": 836388625, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [], + "fontSize": 20, + "fontFamily": 1, + "text": "sure, clientB is address:port", + "baseline": 23, + "textAlign": "left", + "verticalAlign": "top" + }, + { + "type": "text", + "version": 43, + "versionNonce": 1561712562, + "isDeleted": false, + "id": "JjI_3tJcglu-OavY-1y9A", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -739, + "y": -94.5, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 50, + "height": 32, + "seed": 432711775, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [], + "fontSize": 20, + "fontFamily": 1, + "text": ":xxxx", + "baseline": 23, + "textAlign": "left", + "verticalAlign": "top" + }, + { + "type": "text", + "version": 119, + "versionNonce": 161100910, + "isDeleted": false, + "id": "YOlKa9kd5EVPxWyAPiAct", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -174, + "y": -124.5, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 203, + "height": 64, + "seed": 1802891089, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [], + "fontSize": 20, + "fontFamily": 1, + "text": ":xxxx\ndenotes random port", + "baseline": 55, + "textAlign": "left", + "verticalAlign": "top" + }, + { + "type": "text", + "version": 25, + "versionNonce": 463737202, + "isDeleted": false, + "id": "W3Zvi1VkWYoQtL-TZlN33", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -401, + "y": -21.5, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 69, + "height": 32, + "seed": 1986197695, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [], + "fontSize": 20, + "fontFamily": 1, + "text": ":@@@@", + "baseline": 23, + "textAlign": "left", + "verticalAlign": "top" + }, + { + "type": "text", + "version": 53, + "versionNonce": 1836414638, + "isDeleted": false, + "id": "fm3RGJKB9jS11sTXyjoou", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -176, + "y": -46.5, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 182, + "height": 96, + "seed": 319285265, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [], + "fontSize": 20, + "fontFamily": 1, + "text": ":@@@@\ndenotes known and\nopen port", + "baseline": 87, + "textAlign": "left", + "verticalAlign": "top" + }, + { + "type": "text", + "version": 25, + "versionNonce": 1740968754, + "isDeleted": false, + "id": "AZNIOMnNmieb2rDlJjzK9", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -742, + "y": 8.5, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 50, + "height": 32, + "seed": 1009326143, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [], + "fontSize": 20, + "fontFamily": 1, + "text": ":xxxx", + "baseline": 23, + "textAlign": "left", + "verticalAlign": "top" + }, + { + "type": "text", + "version": 442, + "versionNonce": 825127150, + "isDeleted": false, + "id": "MJpdCSvAqHeT17Z6EFOyj", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -190, + "y": 140, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 284, + "height": 250, + "seed": 492805375, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [], + "fontSize": 16, + "fontFamily": 1, + "text": "This should probably have a\ncache for clientA, wherein\nclientA leaves a pending\nmessage of \"I wanna talk to\nclientB\". If clientB is connected\nto the mediator, then clientA\ngets an immediate response. If not,\nthe mediator will remember and\nlet clientA know whenever clientB\nconnects to the mediator.", + "baseline": 243, + "textAlign": "left", + "verticalAlign": "top" + }, + { + "type": "text", + "version": 191, + "versionNonce": 333438194, + "isDeleted": false, + "id": "WSSVDcv7l4fNsRmW_Zk1C", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -1421.75, + "y": -344.125, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 193, + "height": 32, + "seed": 589112593, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [], + "fontSize": 20, + "fontFamily": 1, + "text": "Simple Reliable UDP", + "baseline": 23, + "textAlign": "left", + "verticalAlign": "top" + }, + { + "type": "text", + "version": 558, + "versionNonce": 5120814, + "isDeleted": false, + "id": "xZx2NBeeWJgDVwW3pNfeB", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -1654.25, + "y": -301.625, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 672, + "height": 160, + "seed": 682218129, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [], + "fontSize": 20, + "fontFamily": 1, + "text": "Designed to provide a bi-directional stream.\n\n * Sequence Number per message, per-side, per-host(address+port)\n * Ack, somehow\n", + "baseline": 151, + "textAlign": "left", + "verticalAlign": "top" + }, + { + "type": "text", + "version": 203, + "versionNonce": 226193074, + "isDeleted": false, + "id": "4wSGNBH4A3GWQ1mifkfPi", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -1655.5, + "y": 38.375, + "strokeColor": "#e67700", + "backgroundColor": "transparent", + "width": 118, + "height": 32, + "seed": 1784949503, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [], + "fontSize": 20, + "fontFamily": 1, + "text": "LSEQUENCE", + "baseline": 23, + "textAlign": "left", + "verticalAlign": "top" + }, + { + "type": "text", + "version": 434, + "versionNonce": 759008622, + "isDeleted": false, + "id": "fPQWYSKbG8eZXN0n5AuJD", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -1655.5, + "y": 128.375, + "strokeColor": "#e67700", + "backgroundColor": "transparent", + "width": 119, + "height": 32, + "seed": 570737279, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [], + "fontSize": 20, + "fontFamily": 1, + "text": "RSEQUENCE", + "baseline": 23, + "textAlign": "left", + "verticalAlign": "top" + }, + { + "type": "text", + "version": 312, + "versionNonce": 2034157682, + "isDeleted": false, + "id": "OqUPnHIb9K6nxPj-VPQZ0", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -1510.5, + "y": 39.625, + "strokeColor": "#e67700", + "backgroundColor": "transparent", + "width": 181, + "height": 32, + "seed": 14441759, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [], + "fontSize": 20, + "fontFamily": 1, + "text": "PAYLOAD LENGTH", + "baseline": 23, + "textAlign": "left", + "verticalAlign": "top" + }, + { + "type": "text", + "version": 450, + "versionNonce": 1430630318, + "isDeleted": false, + "id": "xNBo0ssjS9C1CJYqP4pci", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 60, + "angle": 0, + "x": -1296.75, + "y": 38.375, + "strokeColor": "#862e9c", + "backgroundColor": "transparent", + "width": 164, + "height": 32, + "seed": 78086975, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [], + "fontSize": 20, + "fontFamily": 1, + "text": "PAYLOAD CHUNK", + "baseline": 23, + "textAlign": "left", + "verticalAlign": "top" + }, + { + "type": "text", + "version": 2923, + "versionNonce": 1324411442, + "isDeleted": false, + "id": "GLmvV33KMl5NZ6uMpyWgz", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -1942.2142857142856, + "y": 249.66071428571428, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 549, + "height": 416, + "seed": 570249759, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [], + "fontSize": 20, + "fontFamily": 1, + "text": "LSequence is iterated with each packet sent.\n\nOn receive, send LSequence back as RSequence ACK.\nIf RSequence ACK is not received within 1 second,\nconsider it lost and add original Sequence message into\nthe RESEND QUEUE.\n\nSending can be of arbitrary length, but is sent in\n468 byte chunks. If a message is less than the\nbyte amount, it is sent as a FULLCHUNK. If the\nmessage is more, then a BEGIN type is sent,\nfollowed by 0 or more CHUNK types, and ended\nwith an END type.", + "baseline": 407, + "textAlign": "left", + "verticalAlign": "top" + }, + { + "type": "text", + "version": 95, + "versionNonce": 76515822, + "isDeleted": false, + "id": "5e4_evfmGxi2x1ghPzrhR", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -1406.75, + "y": 170.875, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 156, + "height": 32, + "seed": 1306578559, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [], + "fontSize": 20, + "fontFamily": 1, + "text": "500 bytes max", + "baseline": 23, + "textAlign": "left", + "verticalAlign": "top" + }, + { + "type": "text", + "version": 130, + "versionNonce": 1970852850, + "isDeleted": false, + "id": "CDkLKs0FA0iSLe2CtGk-q", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -1724.25, + "y": -25.375, + "strokeColor": "#000000", + "backgroundColor": "#fd7e14", + "width": 57, + "height": 32, + "seed": 287083551, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [], + "fontSize": 20, + "fontFamily": 1, + "text": "TYPE", + "baseline": 23, + "textAlign": "left", + "verticalAlign": "top" + }, + { + "type": "text", + "version": 105, + "versionNonce": 1512315950, + "isDeleted": false, + "id": "63EU5oolq5tk-ZVgCkcuT", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -1731.75, + "y": -56.625, + "strokeColor": "#c92a2a", + "backgroundColor": "#fd7e14", + "width": 59, + "height": 32, + "seed": 955568657, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [], + "fontSize": 20, + "fontFamily": 1, + "text": "8 bits", + "baseline": 23, + "textAlign": "left", + "verticalAlign": "top" + }, + { + "type": "text", + "version": 134, + "versionNonce": 1591575986, + "isDeleted": false, + "id": "AS-zRCTxXP7CHXR_RP3yi", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -1718, + "y": 132.125, + "strokeColor": "#e67700", + "backgroundColor": "#fd7e14", + "width": 43, + "height": 32, + "seed": 1537755825, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [], + "fontSize": 20, + "fontFamily": 1, + "text": "ACK", + "baseline": 23, + "textAlign": "left", + "verticalAlign": "top" + }, + { + "type": "text", + "version": 112, + "versionNonce": 736913006, + "isDeleted": false, + "id": "bMu1sFTptawdoXz2oTMEk", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -1735.5, + "y": 39.625, + "strokeColor": "#e67700", + "backgroundColor": "#fd7e14", + "width": 66, + "height": 32, + "seed": 1695826001, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [], + "fontSize": 20, + "fontFamily": 1, + "text": "BEGIN", + "baseline": 23, + "textAlign": "left", + "verticalAlign": "top" + }, + { + "type": "text", + "version": 144, + "versionNonce": 608567154, + "isDeleted": false, + "id": "b3x6jzKSyZtlOlyewh_OL", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -1736.75, + "y": 67.125, + "strokeColor": "#e67700", + "backgroundColor": "#fd7e14", + "width": 65, + "height": 32, + "seed": 1261805009, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [], + "fontSize": 20, + "fontFamily": 1, + "text": "CHUNK", + "baseline": 23, + "textAlign": "left", + "verticalAlign": "top" + }, + { + "type": "text", + "version": 188, + "versionNonce": 716269742, + "isDeleted": false, + "id": "mWJ9N_Ff7VvNfOIBIi57L", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -1718, + "y": 93.375, + "strokeColor": "#e67700", + "backgroundColor": "#fd7e14", + "width": 45, + "height": 32, + "seed": 1131979327, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [], + "fontSize": 20, + "fontFamily": 1, + "text": "END", + "baseline": 23, + "textAlign": "left", + "verticalAlign": "top" + }, + { + "type": "text", + "version": 203, + "versionNonce": 569983282, + "isDeleted": false, + "id": "q3lSX8-5hZytMWyivwysS", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -1645.5, + "y": -21.625, + "strokeColor": "#000000", + "backgroundColor": "#fd7e14", + "width": 106, + "height": 32, + "seed": 1521852159, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [], + "fontSize": 20, + "fontFamily": 1, + "text": "SEQUENCE", + "baseline": 23, + "textAlign": "left", + "verticalAlign": "top" + }, + { + "type": "rectangle", + "version": 537, + "versionNonce": 102507246, + "isDeleted": false, + "id": "DnVj-bxL8_mD3uiUsxzTF", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 10, + "angle": 0, + "x": -1311.75, + "y": 21.125, + "strokeColor": "#0b7285", + "backgroundColor": "#15aabf", + "width": 195, + "height": 98.75, + "seed": 371607345, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [] + }, + { + "type": "text", + "version": 31, + "versionNonce": 324946674, + "isDeleted": false, + "id": "Wh8DP8zwnXIDu17DfrkwS", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -1644.25, + "y": -49.125, + "strokeColor": "#c92a2a", + "backgroundColor": "#15aabf", + "width": 64, + "height": 32, + "seed": 1879594353, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [], + "fontSize": 20, + "fontFamily": 1, + "text": "15 bits", + "baseline": 23, + "textAlign": "left", + "verticalAlign": "top" + }, + { + "type": "text", + "version": 265, + "versionNonce": 280335662, + "isDeleted": false, + "id": "VAl9rhf_PJmGIHsaXs_QE", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -1470.5, + "y": -20.375, + "strokeColor": "#000000", + "backgroundColor": "#fd7e14", + "width": 61, + "height": 32, + "seed": 235874545, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [], + "fontSize": 20, + "fontFamily": 1, + "text": "DATA", + "baseline": 23, + "textAlign": "left", + "verticalAlign": "top" + }, + { + "type": "text", + "version": 61, + "versionNonce": 788274354, + "isDeleted": false, + "id": "Hdd4g8e0VWUem_NWGF3rU", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -1471.75, + "y": -49.125, + "strokeColor": "#c92a2a", + "backgroundColor": "#15aabf", + "width": 57, + "height": 32, + "seed": 700357471, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [], + "fontSize": 20, + "fontFamily": 1, + "text": "9 bits", + "baseline": 23, + "textAlign": "left", + "verticalAlign": "top" + }, + { + "type": "text", + "version": 253, + "versionNonce": 1676066670, + "isDeleted": false, + "id": "m-IvWcrMRZNuEUuYCjDQ-", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -1778, + "y": 13.375, + "strokeColor": "#e67700", + "backgroundColor": "#fd7e14", + "width": 111, + "height": 32, + "seed": 1371140113, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [], + "fontSize": 20, + "fontFamily": 1, + "text": "FULLCHUNK", + "baseline": 23, + "textAlign": "left", + "verticalAlign": "top" + }, + { + "type": "text", + "version": 96, + "versionNonce": 1115272818, + "isDeleted": false, + "id": "U-rcRMhKXjaTEP3w1S4wP", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -1688, + "y": -94.125, + "strokeColor": "#c92a2a", + "backgroundColor": "#15aabf", + "width": 266, + "height": 32, + "seed": 822651281, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [], + "fontSize": 20, + "fontFamily": 1, + "text": "4 BYTE PACKET HEADER", + "baseline": 23, + "textAlign": "left", + "verticalAlign": "top" + }, + { + "type": "text", + "version": 233, + "versionNonce": 66625966, + "isDeleted": false, + "id": "iz8UJXq339BKE2_T7qkH4", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -1318, + "y": -86.625, + "strokeColor": "#c92a2a", + "backgroundColor": "#15aabf", + "width": 294, + "height": 32, + "seed": 1563378353, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [], + "fontSize": 20, + "fontFamily": 1, + "text": "468 BYTE PACKET PAYLOAD", + "baseline": 23, + "textAlign": "left", + "verticalAlign": "top" + }, + { + "type": "rectangle", + "version": 512, + "versionNonce": 1318983730, + "isDeleted": false, + "id": "JW8enIwQn1ZJFkV2NCC4-", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 10, + "angle": 0, + "x": -1515.5, + "y": 129.875, + "strokeColor": "#d9480f", + "backgroundColor": "#fd7e14", + "width": 187.50000000000003, + "height": 32.50000000000001, + "seed": 1514526929, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [] + }, + { + "type": "text", + "version": 509, + "versionNonce": 68434926, + "isDeleted": false, + "id": "mfVaYz9NXVOuOMiXSDOt3", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -1480.5, + "y": 129.625, + "strokeColor": "#e67700", + "backgroundColor": "transparent", + "width": 94, + "height": 32, + "seed": 1577160977, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [], + "fontSize": 20, + "fontFamily": 1, + "text": "EMPTY :(", + "baseline": 23, + "textAlign": "left", + "verticalAlign": "top" + }, + { + "type": "text", + "version": 42, + "versionNonce": 592462322, + "isDeleted": false, + "id": "tYuLW_5hrRh_rclbfGItj", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -1303, + "y": -22.875, + "strokeColor": "#000000", + "backgroundColor": "#15aabf", + "width": 75, + "height": 32, + "seed": 1828453375, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [], + "fontSize": 20, + "fontFamily": 1, + "text": "optional", + "baseline": 23, + "textAlign": "left", + "verticalAlign": "top" + }, + { + "type": "text", + "version": 3220, + "versionNonce": 709004846, + "isDeleted": false, + "id": "yWPwX5AwLetJInu74djfD", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": -1365.7142857142856, + "y": 246.91071428571433, + "strokeColor": "#000000", + "backgroundColor": "transparent", + "width": 528, + "height": 832, + "seed": 8848287, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [], + "fontSize": 20, + "fontFamily": 1, + "text": "Packets are stored in an OUTBOUND QUEUE,\na PENDING QUEUE and a RESEND QUEUE.\n\nUntil a Message is fully consumed, it continues\nadding to the OUTBOUND QUEUE, providing the\nlength of the PENDING+RESEND does not\nexceed a particular Threshold.\n\nThreshold should likely be determined by some\nsort of metric achieved by total pack send\nrate combined with round-trip-time from the\ntarget. If the RTT is higher, then the packet\nsend rate should be reduced. If the RTT is\nstable, then send rate could be increased up\nto a percentage of decline from its stable value.\n\nProbably assume a 20 packets/second minimum? Then\nthrottle up from there providing the RTT doesn't\nincrease by any great threshold (250ms is probably\nthe upper limit?)\n\nPackets are removed from the PENDING QUEUE\nonce they receive their ACK. Packets are removed\nfrom the RESEND QUEUE once they are sent.\nPackets are moved from the OUTBOUND QUEUE\ninto the PENDING QUEUE once there is room.", + "baseline": 823, + "textAlign": "left", + "verticalAlign": "top" + }, + { + "type": "text", + "version": 922, + "versionNonce": 1465604782, + "isDeleted": false, + "id": "6HtLHZJxGGcgbZzZqNEbI", + "fillStyle": "solid", + "strokeWidth": 1, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 126, + "y": 167.49999999999994, + "strokeColor": "#c92a2a", + "backgroundColor": "#82c91e", + "width": 98, + "height": 32, + "seed": 1804022719, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [], + "fontSize": 20, + "fontFamily": 1, + "text": "RSA-OAEP", + "baseline": 23, + "textAlign": "left", + "verticalAlign": "top" + }, + { + "type": "text", + "version": 518, + "versionNonce": 1654615858, + "isDeleted": false, + "id": "-Uof9BU--dd_YuuVwxN-U", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 577, + "y": -63.5, + "strokeColor": "#000000", + "backgroundColor": "#82c91e", + "width": 92, + "height": 32, + "seed": 1260128511, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [], + "fontSize": 20, + "fontFamily": 1, + "text": "Plaintext", + "baseline": 23, + "textAlign": "left", + "verticalAlign": "top" + }, + { + "type": "text", + "version": 382, + "versionNonce": 750245102, + "isDeleted": false, + "id": "f8s5uR1Pw_U8qDkdyI5xC", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "angle": 0, + "x": 177, + "y": 253.5, + "strokeColor": "#364fc7", + "backgroundColor": "#82c91e", + "width": 38, + "height": 32, + "seed": 1050019711, + "groupIds": [], + "strokeSharpness": "sharp", + "boundElementIds": [], + "fontSize": 20, + "fontFamily": 1, + "text": "AES", + "baseline": 23, + "textAlign": "left", + "verticalAlign": "top" + }, + { + "id": "XVkI5j_8PWAYYuXHKASYZ", + "type": "text", + "x": 166.6666666666656, + "y": 540.2499999999998, + "width": 545, + "height": 160, + "angle": 0, + "strokeColor": "#000000", + "backgroundColor": "#ced4da", + "fillStyle": "solid", + "strokeWidth": 2, + "strokeStyle": "solid", + "roughness": 0, + "opacity": 100, + "groupIds": [], + "strokeSharpness": "sharp", + "seed": 1488843118, + "version": 329, + "versionNonce": 594719342, + "isDeleted": false, + "boundElementIds": null, + "text": "Note: It might make more sense to have the GREET\nmessage actually encrypted with client B's hub\npublic key? And client B would probably also already\nknow client A's hub public key from the mediator step...\nHmm", + "fontSize": 20, + "fontFamily": 1, + "textAlign": "left", + "verticalAlign": "top", + "baseline": 151 + } + ], + "appState": { + "gridSize": null, + "viewBackgroundColor": "#ffffff" + } +} \ No newline at end of file