Создает ли ядро linux буфер для каждого TCP-соединения, например, когда у нас 1000 tcp-соединений, ядро создает буфер 1000 сокетов и сохраняет пакеты отдельного потока в своем буфере сокетов? ИЛИ все потоки TCP совместно используют один большой буфер сокета TCP. Это означает, что все пакеты хранятся в общем буфере сокета TCP.

Спасибо амер

1 ответ1

1

Полученные пакеты хранятся в буфере до тех пор, пока они не будут обработаны, но после обработки они отбрасываются. Переданные пакеты сохраняются в буфере до тех пор, пока они не могут быть переданы, но затем они отбрасываются.

Для каждого TCP-соединения есть некоторая информация о состоянии, содержащая основную информацию о TCP-соединении. Также имеется буфер исходящих данных уровня приложения, которые еще не были подтверждены другой стороной, и буфер данных, которые были получены, но еще не прочитаны локальным приложением. Но они содержат байты данных уровня приложения, а не пакеты.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .