I want to use TCP to transmit data to ensure fast data transmission without data loss. However, I found that when using TCP to transmit packets of the same size, the data transmission volume is less than one-tenth of UDP.
The attachment is my profiles, and my packets is 285 bytes or 3000 bytes.
Attachment | Size |
---|---|
![]() | 6.08 KB |
when add batch mode to the profiles.xml, the program works fine when sending 3000 byte packets, and an error occurred when sending a 285-byte packet. the error looks like this
[0x01012AED,0xE2854826,0xAA057D2D:0x80000003{E=DW,T=Data_00::sequence_octet,C=@DynamicData,D=179}|WRITE] MIGGenerator_addDataBatch:serialize buffer too small
[0x01012AED,0xE2854826,0xAA057D2D:0x80000003{E=DW,T=Data_00::sequence_octet,C=@DynamicData,D=179}|WRITE] COMMENDSrWriterService_write:!add DATA_BATCH to MIG
[0x01012AED,0xE2854826,0xAA057D2D:0x80000003{E=DW,T=Data_00::sequence_octet,C=@DynamicData,D=179}|WRITE] PRESPsWriter_flushBatchWithCursor:!srw->write
[0x01012AED,0xE2854826,0xAA057D2D:0x80000003{E=DW,T=Data_00::sequence_octet,C=@DynamicData,D=179}|WRITE] PRESPsWriter_writeBatchInternal:!error flushing batch
[0x01012AED,0xE2854826,0xAA057D2D:0x80000003{E=DW,T=Data_00::sequence_octet,C=@DynamicData,D=179}|WRITE] MIGGenerator_addDataBatch:serialize buffer too small
[0x01012AED,0xE2854826,0xAA057D2D:0x80000003{E=DW,T=Data_00::sequence_octet,C=@DynamicData,D=179}|WRITE] COMMENDSrWriterService_write:!add DATA_BATCH to MIG
[0x01012AED,0xE2854826,0xAA057D2D:0x80000003{E=DW,T=Data_00::sequence_octet,C=@DynamicData,D=179}|WRITE] PRESPsWriter_flushBatchWithCursor:!srw->write
batch config:
<batch>
<enable>true</enable>
<max_data_bytes>64000</max_data_bytes>
</batch>
Why does my application have the same effect when using perftest_qos_profiles.xml or not?