Вопрос или проблема
Я пытаюсь понять вывод ss -s
:
Total: 1106
TCP: 44 (estab 34, closed 6, orphaned 0, timewait 4)
Transport Total IP IPv6
RAW 0 0 0
UDP 22 20 2
TCP 38 36 2
INET 60 56 4
FRAG 0 0 0
(для контекста, ss -tH | wc -l
выдает 34
, а ss -tlH | wc -l
выдает 4
)
Мое понимание заключается в том, что, сверху вниз, слева направо:
Total: 1106
отражает общее количество сокетов (всех типов), используемых в системе (хотя, что странно, ни ss -H | wc -l
, ни ss -aH | wc -l
не выдает это число (даже при добавлении ss -lH | wc -l
)).
TCP: 44
показывает все используемые TCP-сокеты в системе (установленные соединения + закрытые соединения + слушающие сокеты (слушающие сокеты явно не указаны здесь) (осиротевшие и ожидающие не включены в эту сумму)).
(estab 34, closed 6, orphaned 0, timewait 4)
показывает состояние текущих/недавних TCP соединений (здесь показываются только TCP, так как TCP – это единственный протокол, ориентированный на соединение).
Раздел Transport
– это список сокетов на уровне 4 сетевого стека. Числа включают как соединения, так и слушатели.
RAW
– это соединения без протокола уровня 4 (как ICMP).
TCP
и UDP
– довольно понятные…
INET
– это RAW
+ TCP
+ UDP
(все соединения, использующие IP стек сети).
FRAG
(ах… FRAG
, корень этого исследования) – это количество необработанных фрагментированных пакетов (с некоторым количеством доставленных фрагментов и некоторым количеством еще недоставленных).
Я смог найти очень мало документации. Это моя лучшая попытка определить его значение. Пожалуйста, исправьте меня, если я ошибаюсь, и если кто-то знает, где может прятаться четкая документация, пожалуйста, дайте знать!
Ответ или решение
ss -s
– это мощная команда для анализа состояния сетевых сокетов в Linux. Давайте подробно разберем каждый элемент вывода и выясним, как ими оперировать.
Полный анализ вывода ss -s
-
Total: 1106
Эта строка говорит о общем количестве сокетов на системе, вне зависимости от их типа и состояния. Однако важно понимать, что эта цифра включает все необработанные сокеты, которые могут не отображаться в других командах, таких какss -H
илиss -aH
, из-за ограниченного объема данных, которые они выводят. -
TCP: 44 (estab 34, closed 6, orphaned 0, timewait 4)
Здесь отображается количество TCP-сокетов. Важно отметить:- estab 34: Установленные соединения, т.е. соединения, которые в настоящее время активны.
- closed 6: Закрытые соединения, которые были закрыты недавно.
- orphaned 0: Определяет количество "осиротевших" сокетов, которые потеряли связь с процессом пользователя.
- timewait 4: Сокеты, находящиеся в состоянии TIME_WAIT, когда соединение ожидает полного закрытия для освобождения ресурсов.
-
Транспортный уровень (Transport Total IP IPv6)
Этот раздел описывает различные типы сокетов:- RAW 0: Сырые сокеты, которые не используют протоколы уровня 4, например, ICMP.
- UDP 22: Количество сокетов для протокола UDP. Это число включает как соединения, так и слушающие сокеты.
- TCP 38: Перекрывается с 44 выше, но может включать слушающие сокеты, которые не были явно расписаны.
- INET 60: Сумма всех протоколов (RAW, TCP и UDP), использующих IP стек.
- FRAG 0: Фрагменты IP-пакетов, которые еще не были собраны.
Заключение
На основе вышеописанного становится очевидно, что ss -s
предоставляет глубокую информацию о сетевых соединениях и их состояниях в ваша системе. Сокеты и их состояния, показанные этой командой, дают представление о сетевой нагрузке и могут быть полезны для диагностики проблем или оптимизации сетевой конфигурации.
В случае необходимости более глубокой настройки и анализа необходимо изучать официальную документацию на программу ss
, которая может быть найдена в системах с установленными инструментами IPROUTE2. Использование этого командного инструмента позволить вам улучшить понимание сетевых процессов и управления в Linux средах.