TCP File Transfer - механизмы копирования ядра - PullRequest
0 голосов
/ 09 февраля 2020

Мне интересно, зависит ли скорость процессов копирования между пользователем и пространством ядра, и в целом внутри всего процесса отправки / получения tcp, зависит от типа файла (.txt, .mp4). Я имею в виду не размер файла, а «структуру» байтов или что-то еще. Я долго искал, но ничего не нашел. Есть ли полезные фразы или термины, которые я мог бы найти?

Заранее спасибо!

1 Ответ

0 голосов
/ 09 февраля 2020

TCP не имеет представления о структуре прикладного уровня файла и поэтому не может принимать какие-либо решения на основе этого. Все, что его волнует, это поток байтов.

Но нередко то, как приложение взаимодействует с ядром, зависит от указанного протокола c и что это может оказать заметное влияние на производительность: например, одно приложение может просто записать 1000 байтов одновременно ядро, в то время как другой записывает 500-байтовый HTTP-заголовок, за которым следует 500-байтовое тело HTTP. В обоих случаях это могут быть одни и те же байты, но во втором случае задействовано больше переключателей контекста из-за большего количества системных вызовов, и в зависимости от параметров сокета это может также привести к двум TCP-пакетам вместо одного, где каждый TCP-пакет имеет заметные издержки. в байтах и ​​во время обработки.

...