Нет причин для заключения.
По сути, код ядра не возражает, если вы отправляете данные по одному соединению или по двум.Единственные дополнительные задержки могут быть из-за дополнительной работы по открытию второго сокета тому же месту назначения, но никогда из-за использования ACK (ACK не является особым видом пакета, он просто включается в all пакеты, следующие за первым, и он представляет только порядковый номер и бит в сегменте tcp) или внутреннюю работу TCP (разница в том, что вы всегда выбираете один и тот же дескриптор сокета или другой)
Между прочим, как рекомендуется в некоторых комментариях, лучше, если вы покажете код, поскольку вы предполагаете, что ваш код правильный, и он на самом деле точно измеряет результаты, которые вы получаете, и, скорее всего, это неправильно, а вы нетрассмотрите дополнительную работу трехстороннего рукопожатия, которое вы должны установить второе соединение перед отправкой / приемом по второму соединению.
Установление соединения TCP включает в себя обмен тремя пакетами до того, как какие-либо фактические данные могут быть переданы и это включает в себя одну поездку туда и обратноВ половине случаев, чтобы установить, и то же самое, чтобы закрыть соединение, это означает, что ваше второе соединение добавит три полных обхода на другой конец (и больше, если вы соединяете оба сокета последовательно, один сначала, затем другой), так что в случае, если вынаходясь в локальной сети (например, 100 Мбит / с, с передачей туда и обратно 0,1 мс), вы добавите 0,3 мс ко времени второго случая (два соединения) только потому, что вам нужно установить и затем отключить соединения.