-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
179 changed files
with
82,214 additions
and
1,133 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,46 +1,3 @@ | ||
<component name="ProjectRunConfigurationManager"> | ||
<configuration default="false" name="ugate" type="CloudCodeCloudRunConfigurationType" factoryName="CloudCodeCloudDeployRunConfigurationFactory" show_console_on_std_err="false" show_console_on_std_out="false" gcpProject="{"googleUsername":"[email protected]","projectId":"dmeshgate","projectName":"dmeshgate","projectNumber":584624515903}" imageBuilder="{"name":"Docker","payload":{"path":"Dockerfile"}}"> | ||
<option name="allowRunningInParallel" value="false" /> | ||
<option name="buildEnvironment" value="Local" /> | ||
<option name="buildpacksEnv"> | ||
<map /> | ||
</option> | ||
<option name="cloudSqlConnections"> | ||
<list /> | ||
</option> | ||
<option name="concurrency" value="1000" /> | ||
<option name="cpuAllocated" value="1" /> | ||
<option name="customCpuAllocated" value="" /> | ||
<option name="dockerBuildArgs"> | ||
<map /> | ||
</option> | ||
<option name="dockerTarget" value="" /> | ||
<option name="environmentVariables"> | ||
<map /> | ||
</option> | ||
<option name="gcbSettings"> | ||
<GoogleCloudBuildSettings /> | ||
</option> | ||
<option name="gkeClusterLocation" /> | ||
<option name="gkeClusterName" /> | ||
<option name="gkeClusterNamespace" value="default" /> | ||
<option name="gkeConnectivity" value="EXTERNAL" /> | ||
<option name="imagePath" value="gcr.io/dmeshgate/ugate" /> | ||
<option name="loadingAvailableBuilders" value="false" /> | ||
<option name="managedAuthentication" value="ALLOW_UNAUTHENTICATED" /> | ||
<option name="managedRegion" value="us-central1" /> | ||
<option name="maxInstances" value="1" /> | ||
<option name="memoryAllocated" value="MIB_256" /> | ||
<option name="minInstances" value="" /> | ||
<option name="platform" value="FULLY_MANAGED" /> | ||
<option name="projectPathOnTarget" /> | ||
<option name="selectedOptions"> | ||
<list /> | ||
</option> | ||
<option name="serviceAccount" value="" /> | ||
<option name="serviceName" value="ugate" /> | ||
<option name="timeout" value="900" /> | ||
<option name="vpcConnector" value="" /> | ||
<method v="2" /> | ||
</configuration> | ||
<configuration /> | ||
</component> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,32 +1,53 @@ | ||
# Low level protocols used | ||
|
||
UGate primary/target protocol is H3 - it is most flexible and most likely the future. | ||
|
||
## H3 frames | ||
One of the goals of a gateway is to support multiple protocols, for interop and | ||
connectivity. | ||
|
||
A brief summary of the low levels of each protocol and overhead. | ||
|
||
## H2/H3 frames | ||
|
||
H2 frame format - 9 byte header: | ||
- Len(24) | ||
- Len(24) - 16M chunks | ||
- Type(8) | ||
- Flags(8) | ||
- StreamID(32) | ||
|
||
H2 int format, used in HPACK and QPACK: mix of varint and 'N-bit prefix'. | ||
Short ints are 1 B (with few bits for flags), rest are varint, first byte uses 1111... for the N bits. | ||
|
||
Short ints are 1 B (with few bits for flags), rest are varint, first byte | ||
uses 1111... for the N bits. | ||
|
||
QUIC int use first 2 bits to encode length ( 1,2,4,8) | ||
|
||
|
||
HTTP uses compressed headers, but can be turned off in custom protocols. | ||
|
||
Core benefits: | ||
- broadly adopted and many implementations | ||
- multiplexed - less TCP/TLS overhead | ||
- flow control for each stream | ||
|
||
|
||
## Websocket frames | ||
|
||
After handshake, WS sends frames including at least 2B overhead for server originated, | ||
and 2B + 4B(mask) for client: | ||
|
||
- FIN | ||
- frame type - ping, ping, text, binary, cont, close | ||
- payload - 1B or 3 B | ||
- | ||
- TYPE(1B): FIN, frame type - ping, pony, text, binary, cont, close | ||
- payload len - 1B or 3 B | ||
|
||
Client frames must have a 4B 'mask' | ||
|
||
WS is not multiplexed - for HTTP/1.1 upgrade it is ideal for multiplexing H2. | ||
|
||
If protocol is H2 already - it's just a stream. | ||
|
||
# WebRTC | ||
|
||
In future it may use QUIC - currently UDP+SCTP. Best protocol for interop with web browsers, 2-way. | ||
In future it may use QUIC - currently UDP+SCTP. Best protocol for interop with web | ||
browsers, 2-way. | ||
|
||
- like quic, low level frames and implementations duplicate TCP, include flow control | ||
- |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.