Skip to content

[Question] Understanding FragmentSize setting #2396

Description

@a-sid

Dear colleagues, thank you for this excellent project!

Does CycloneDDS have any recommendations on choosing optimal FragmentSize for different setups? I have studied the docs, found some setup recommendations in the Internet, tried different values myself, but I'd like to know if there is a common approach.
I am transferring large messages (9MB) over 10 Gb Ethernet with large MTU, targeting for latency. As I understand, I should have MaxMessageSize close to the max UDP datagram size (65500 bytes, as often recommended). I have also enabled recommended large socket buffer size settings both in the OS and in the DDS. But what about FragmentSize? Should it be close to the network MTU, or should it be set closer to the maximum message size, if I rely on the kernel IP fragmentation? As I guess, small FragmentSize doesn't have too much sense for large data samples, because it just increases the size overhead as the small fragments are still being packed into a single datagram. But what size should I choose? The closest discussion I can find is #1938, and it mostly confirms my thoughts, but doesn't answer my questions directly.

And another question: does it make sense to increase FragmentSize for best-effort QoS transmission, as there won't be any retransmission in case of packet loss anyway?

Thank you in advance.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions