Repository navigation
Conversation
Default strictly unidirectional UDP packets to 1400 bytes while preserving explicit overrides and the acknowledged transport default. Warn when the operating system caps the receiver socket buffer, and cover defaults and overrides with socket tests.
|
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## master #19083 +/- ##
===========================================
Coverage 48.11% 48.11%
- Complexity 621 625 +4
===========================================
Files 5572 5572
Lines 410286 411498 +1212
Branches 54129 54169 +40
===========================================
+ Hits 197408 197996 +588
- Misses 212878 213502 +624 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
This file contains hidden or 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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.




Description
Strictly unidirectional air-gap UDP currently defaults to 60 KiB datagrams, which require IP fragmentation on common 1500-byte MTU links. Default this mode to 1400-byte datagrams while preserving explicit packet-size overrides, the 60 KiB acknowledged-UDP default, and the 5 ms send interval. Smaller datagrams at the unchanged interval also lower the per-sender throughput ceiling.
Warn at receiver startup when the operating system provides less socket receive-buffer capacity than requested, with matching English and Chinese messages. Close the UDP socket if startup fails with an IOException. Socket tests cover the strict default, both packet-size aliases, and the existing ACK requirement with an unsliced 2500-byte request.
Follows #19063. Strictly unidirectional UDP still cannot confirm delivery or receiver write success.
Validation
with-zh-locale.Field parameter comparison
A prior two-node field trial used MTU 1500 on both hosts with reverse traffic blocked. The runs used existing installed binaries with explicit transport parameters; the candidate binary from this PR was not deployed. Each scenario transferred 560,000 points across 200 series and compared all 200 per-series counts and 200 deterministic sums.
All three runs had zero new UDP receive-buffer errors and zero receiver warnings/errors. Counts and sums are aggregate integrity checks, not point-by-point value comparisons.
The first two rows changed only packet size while retaining the 5 ms pacing, task count, and batch size. The observed IP reassembly counter increments fell to zero with 1400-byte datagrams, supporting the smaller default on this path. The third row also changed pacing, concurrency, and batching, so it does not isolate the packet-size change.
The receiver's operating-system receive-buffer limit was only 212,992 bytes (208 KiB), despite the application's 32 MiB socket request. This provides an operational reason for the new startup diagnostic. The diagnostic itself was not exercised using the candidate binary in this field trial.
No scenario reproduced point loss, so these results establish the observed removal of IP fragmentation rather than a measured reduction in point-loss probability. Recorded elapsed times include manual orchestration and are not a controlled throughput comparison. Sustained saturation and packet-loss injection were not performed.
This PR has:
Key changed classes:
IoTDBAirGapSink,PipeSinkConstant,IoTDBAirGapReceiverAgent, andIoTDBDataRegionAirGapSinkTest.