Fin wait 1 что это
Fin wait 1 что это
Отправление
SND.UNA | посылка неподтверждена |
---|---|
SND.NXT | послать следующий сегмент |
SND.WND | отправить окно |
SND.UP | отправить срочный указатель |
SND.WL1 | номер очереди сегмента, использованный для обновления последнего окна |
SND.WL2 | номер подтверждения в сегменте, используемый для обновления последнего окна |
ISS | первоначальный номер очереди отправления |
Получение
RCV.NXT | — получить следующий сегмент |
---|---|
RCV.WND | — получить окно |
RCV.UP | — получить срочный указатель |
IRS | — первоначальный номер очереди получения |
Нижеприведенные диаграммы могут помочь связать некоторые из этих переменных с местом в очереди
В обсуждении также часто используются некоторые переменные, берущие свое значение из полей очередного сегмента.
Переменные для очередного сегмента
SEG.SEQ | номер очереди для сегмента |
---|---|
SEG.ACK | номер подтверждения для сегмента |
SEG.LEN | длина сегмента |
SEG.WND | окно для сегмента |
SEG.UP | срочный указатель для сегмента |
SEG.PRC | приоритет для сегмента |
Соединение во время функционирования проходит через серии промежуточных состояний. Это состояния LISTEN, SYN-SENT, SYN-RECEIVED, ESTABLISHED, FIN-WAIT-1, FIN-WAIT-2, CLOSE-WAIT, CLOSING, LAST-ACK, TIME-WAIT, а также фиктивное состояние CLOSED. Состояние CLOSED является фиктивным, поскольку оно представляет состояние, когда не существует блока TCP, а потому и нет соединения. Краткое описание состояний:
LISTEN | Ожидание запроса на соединение со стороны чужих портов и программ TCP |
---|---|
SYN-SENT | Ожидание парного запроса на установление соединения. С нашей стороны запрос уже сделан. |
SYN-RECEIVED | Ожидание подтверждения после того, как запрос соединения уже принят и отправлен. |
ESTABLISHED | Состояние открытого соединения, принимаемые данные можно представить пользователю. Это нормальное состояние соединения в фазе передачи данных. |
FIN-WAIT-1 | Ожидание запроса от чужой программы TCP, или подтверждения ранее отправленного запроса на закрытие соединения. |
FIN-WAIT-2 | Ожидание запроса на закрытие соединения со стороны чужой программы TCP. |
CLOSE-WAIT | Ожидание запроса на закрытие соединения со стороны своего клиента. |
CLOSING | Ожидание подтверждения со стороны чужой программы TCP запроса о закрытии соединения. |
LAST-ACK | Ожидание запроса на закрытие соединения, ранее отправленного чужой программе TCP (запрос включал также подтверждение получения чужого запроса на закрытие соединения). |
TIME-WAIT | Ожидание когда истечет достаточное количество времени и можно быть уверенным, что чужая программа TCP получила подтверждение своего запроса на закрытие соединения. |
CLOSED | Состояние полного отсутствия соединения. |
Диаграмма состояний на рисунке иллюстрирует лишь смену состояний, а также вызвавшие это события, производимые действия, но не адреса, условия ошибок, не действия, не связанные прямо с изменением состояния.
Замечание. Данная диаграмма является лишь сводной, но не должна восприниматься как полная спецификация.
Fin wait 1 что это
Утилита netstat или как определить какие порты слушает ваш компьютер. Сетевые утилиты 4 часть-01
Всем привет ранее я начал рассказ про сетевые утилиты системного администратора в статье «Утилита pathping или как диагностировать проблему на маршруте до сайта. Сетевые утилиты 3 часть», движемся дальше и разбираем еще одну утилиту netstat или, как определить какие порты слушает ваш компьютер. Данная программка, будет не заменимым инструментом в багаже софта, любого системного инженера, поможет ему провести быструю диагностику ситуации и обнаружить ряд всевозможных проблем с сервисами и их доступностью.
Команды netstat
Представим ситуацию вы установили например MSM LSI утилиту для просмотра параметров RAID контроллера, запускаете утилиту, но ничего она не находит, потому что закрыт порт а какой вы не в курсе, и не всегда в инете можно быстро найти информацию об этом, для этого вы и может запустить netstat и посмотреть какой порт слушает ваш сервер с MSM процессом.
Утилита netstat или как определить какие порты слушает ваш компьютер. Сетевые утилиты 4 часть-02
Отображение статистики протокола и текущих сетевых подключений TCP/IP.
NETSTAT [-a] [-b] [-e] [-f] [-n] [-o] [-p протокол] [-r] [-s] [-x] [-t]
[интервал]
Давайте посмотрим интересные ключи утилиты netstat. Первое что вводим
и у нас на экране появится статистика сетевых пакетов ethernet.
Утилита netstat или как определить какие порты слушает ваш компьютер. Сетевые утилиты 4 часть-03
Утилита netstat или как определить какие порты слушает ваш компьютер. Сетевые утилиты 4 часть-04
Утилита netstat или как определить какие порты слушает ваш компьютер. Сетевые утилиты 4 часть-05
Очень полезно посмотреть все что слушает ваш хост для этого пишем
Вывод команды содержит Тип протокола либо TCP либо UDP, локальный адрес с портом который слушается и внешний адрес с портом и состояние действия.
Для полного понимания информации, предоставляемой этой командой, необходимо понять принципы установки соединения в протоколе TCP/IP. Вот основные этапы процесса установки соединения TCP/IP:
1. При попытке установить соединение клиент отправляет сообщение SYN серверу.
2. Сервер отвечает собственным сообщением SYN и подтверждением (ACK).
Процесс разрыва соединения состоит из следующих этапов:
1. Клиент сообщает «Я закончил», отправляя сообщение FIN серверу. На этом этапе клиент только принимает данные от сервера, но сам ничего не отправляет.
2. После этого сервер отправляет сообщение ACK и отправляет собственное сообщение FIN клиенту.
3. После этого клиент отправляет сообщение ACK серверу, подтверждая запрос сервера FIN.
4. При получении сообщения ACK от клиента сервер закрывает соединение.
Понимание этапов процесса установки и разрыва соединения позволяет более прозрачно интерпретировать состояния соединений в выводе команды netstat. Соединения в списке могут находиться в следующих состояниях.
Утилита netstat или как определить какие порты слушает ваш компьютер. Сетевые утилиты 4 часть-06
Утилита netstat или как определить какие порты слушает ваш компьютер. Сетевые утилиты 4 часть-07
также можно вывести только TCP порты
Утилита netstat или как определить какие порты слушает ваш компьютер. Сетевые утилиты 4 часть-08
Утилита netstat или как определить какие порты слушает ваш компьютер. Сетевые утилиты 4 часть-09
Вот такая вот полезная утилиты с которой вы всегда будите знать по каким портам общаются службы на хосте. Читайте далее Утилита TCPView. Как определить какие порты слушает ваш компьютер. Сетевые утилиты 5 часть
Популярные Похожие записи:
6 Responses to Утилита netstat или как определить какие порты слушает ваш компьютер. Сетевые утилиты 4 часть
thank you very much, would you weird area for any designers to hide this setting up. i had been possessing a number of difficulties with a new Dreamhost machine and i had not been guaranteed the reason why works out which they modify demonstrating invisible documents automagically, whereas different hosting space we connect to together with Filezilla appear to indicate invisible documents automagically. your own personal article allowed me to figure it available, i really appreciate it.
Уважаемый Иван, большое спасибо, это отличная получилась статья! У меня все получилось.
Очень рад, что смог вам помочь!
Добрый день. А как узнать какая программа занимает 80 порт?
Очень просто вы через netstat или tcpView смотрите PID процесса, который висит на порту, далее по PID вычисляете исполняемый файл.
>Добрый день. А как узнать какая программа занимает 80 порт?
Fin wait 1 что это
Протокол TCP (Transmission Control Protocol, Протокол контроля передачи) обеспечивает сквозную доставку данных между прикладными процессами, запущенными на узлах, взаимодействующих по сети. Стандартное описание TCP содержится в RFC-793.
При получении дейтаграммы, в поле Protocol которой указан код протокола TCP (6), модуль IP передает данные этой дейтаграммы модулю TCP. Эти данные представляют собой TCP-сегмент, содержащий TCP-заголовок и данные пользователя (прикладного процесса). Модуль TCP анализирует служебную информацию заголовка, определяет, какому именно процессу предназначены данные пользователя, проверяет целостность и порядок прихода данных и подтверждает их прием другой стороне. По мере получения правильной последовательности неискаженных данных пользователя они передаются прикладному процессу.
Ниже основные функции протокола TCP и их реализация рассмотрены более подробно.
3.1.1. Базовая передача данных
Модуль TCP выполняет передачу непрерывных потоков данных между своими клиентами в обоих направлениях. Клиентами TCP являются прикладные процессы, вызывающие модуль TCP при необходимости получить или отправить данные процессу-клиенту на другом узле.
Протокол TCP рассматривает данные клиента как непрерывный неинтерпретируемый поток октетов. TCP разделяет этот поток на части для пересылки на другой узел в TCP-сегментах некоторого размера. Для отправки или получения сегмента модуль TCP вызывает модуль IP.
Немедленное отправление данных может быть затребовано процессом-клиентом от TCP-модуля с помощью специальной функции PUSH, иначе TCP сам будет решать, как накапливать и когда отправлять данные клиента или когда передавать клиенту полученные данные.
3.1.2. Обеспечение достоверности
Модуль TCP обеспечивает защиту от повреждения, потери, дублирования и нарушения очередности получения данных.
Для выполнения этих задач все октеты в потоке данных сквозным образом пронумерованы в возрастающем порядке. Заголовок каждого сегмента содержит число октетов данных в сегменте и порядковый номер первого октета той части потока данных, которая пересылается в данном сегменте. Например, если в сегменте пересылаются октеты с номерами от 2001 до 3000, то номер первого октета в данном сегменте равен 2001, а число октетов равно 1000.
Номер первого байта в потоке определяется на этапе установления соединения и обозначается ISN+1 (подробнее см. п. 3.1.4). Например, ISN+1=1.
Также для каждого сегмента вычисляется контрольная сумма, позволяющая обнаружить повреждение данных.
Нумерация октетов используется также для упорядочения данных в порядке очередности и обнаружения дубликатов (которые могут быть посланы из-за большой задержки при передаче подтверждения или потери подтверждения).
3.1.3. Разделение каналов
3.1.4. Управление соединениями
Каждое соединение уникально идентифицируется в Интернет парой сокетов.
Соединение характеризуется для клиента именем, которое является указателем на структуру TCB (Transmission Control Block), содержащую информацию о соединении.
Открытие соединения клиентом осуществляется вызовом функции OPEN, которой передается сокет, с которым требуется установить соединение. Функция возвращает имя соединения. Различают два типа открытия соединения: активное и пассивное.
Закрытие соединения клиентом производится с помощью функции CLOSE, которой передается имя соединения.
Процедура установления соединения происходит следующим образом.
Рис. 3.1.1. Установка TCP-соединения
Сеанс обмена данными заканчивается процедурой разрыва соединения, которая аналогична процедуре установки, с той разницей, что вместо SYN для разрыва используется служебный бит FIN (“данных для отправки больше не имею”), который устанавливается в заголовке последнего сегмента с данными, отправляемого узлом.
3.1.5. Управление потоком
Для ускорения и оптимизации процесса передачи больших объемов данных протокол TCP определяет метод управления потоком, называемый методом скользящего окна, который позволяет отправителю посылать очередной сегмент, не дожидаясь подтверждения о получении в пункте назначения предшествующего сегмента.
Рис. 3.1.2. Метод скользящего окна
Для временной остановки посылки данных достаточно объявить нулевое окно. Но даже и в этом случае через определенные промежутки времени будут отправляться сегменты с одним октетом данных. Это делается для того, чтобы отправитель гарантированно узнал о том, что получатель вновь объявил ненулевое окно, поскольку получатель обязан подтвердить получение “пробных” сегментов, а в этих подтверждениях он укажет также и текущий размер своего окна.
Модуль TCP может оптимизировать максимальный размер сегмента исходя из значений MTU на разных участках маршрута (см. также п. 2.4.2, «Path MTU Discovery») и других характеристик соединения.
Модуль TCP может использовать алгоритм «медленного старта», формируя при установлении соединения окно перегрузки, размер которого изначально равен размеру одного сегмента. Это окно показывает, сколько сегментов TCP-модуль, с его собственной точки зрения, может отправить без получения подтверждения. Скользящее же окно, рассмотренное выше, показывает, какой объем неподтвержденных данных модулю разрешено отправить с точки зрения удаленного модуля, получателя его данных. После прихода подтверждения от получателя окно перегрузки увеличивается на 1 сегмент, и отправитель может выслать уже два сегмента, не дожидаясь подтверждения. Такой подход позволяет постепенно увеличивать нагрузку на сеть. Если окно перегрузки становится больше скользящего окна, объявляемого получателем, ограничение на передачу неподтвержденных данных устанавливает уже скользящее окно получателя.
В случае, если никакие данные приложениями не передаются, а соединение открыто, модуль TCP может периодически посылать сегменты-зонды для выяснения того, не отключилась ли другая сторона без уведомления партнера (например, в результате обрыва линии или другим некорректным образом). Такое зондирование проводится примерно каждые два часа неактивности.
3.2. Заголовок TCP-сегмента
TCP-сегмент состоит из заголовка и данных.
Значения полей заголовка следующие.
Стандарт протокола TCP определяет три опции (типы 0,1,2).
Опции типов 0 и 1 («Конец списка опций» и «Нет операции» соответственно) состоят из одного октета, содержащего значение типа опции. При обнаружении в списке опции «Конец списка опций» разбор опций прекращается, даже если длина заголовка сегмента (Data Offset) еще не исчерпана. Опция «Нет операции» может использоваться для выравнивания между опциями по границе 32 бит.
Опция типа 2 «Максимальный размер сегмента» состоит из 4 октетов: одного октета типа опции (значение равно 2), одного октета длины (значение равно 4) и двух октетов, содержащих максимальный размер сегмента, который способен получать TCP-модуль, отправивший сегмент с данной опцией. Опцию следует использовать только в SYN-сегментах на этапе установки соединения.
3.3. Промежуточные состояния соединения
TCP-соединение во время функционирования проходит через ряд промежуточных состояний. Это состояния LISTEN, SYN-SENT, SYN-RECEIVED, ESTABLISHED, FIN-WAIT-1, FIN-WAIT-2, CLOSE-WAIT, CLOSING, LAST-ACK, TIME-WAIT, а также фиктивное состояние CLOSED. (Состояние CLOSED является фиктивным, поскольку оно представляет отсутствие соединения.) Переход из одного состояния в другое происходит в ответ на события, как то: запросы клиента, приход сегментов, истечение контрольного времени.
Определены следующие запросы процесса-клиента модулю TCP (с каждым запросом, кроме OPEN, передается имя соединения):
Деятельность программы протокола TCP можно рассматривать как реагирование на события в зависимости от состояния соединения.
Ниже описаны состояния соединения и приведены диаграммы переходов. Под термином «процесс» здесь понимается процесс TCP-модуля, работающий с данным соединением на локальном узле; термин «чужой» относится к процессу, работающему с данным TCP-соединением на удаленном узле.
3.3.1. Фаза установления соединения
3.3.2. Фаза закрытия соединения
Проблемы возникновения некорректных ситуаций, например, наполовину открытое соединение, получение заблудившихся в сети старых SYN-сегментов, неожиданный крах программ и т.п., решаются путем детектирования ошибки (несоответствие или бессмысленные значения ACK или SN), после чего посылается сигнал RST (сегмент с установленным битом RST) и соединение ликвидируется.
Как использовать команду ss в Linux
Команда ss против netstat
Замена для устаревших netstat команда, ss дает вам подробную информацию о том, как ваш компьютер взаимодействует с другими компьютерами, сетями и службами.
ss отображает статистику для Протокол управления передачей (ПТС), Протокол пользовательских датаграмм (UDP), Unix (межпроцессный)и необработанные розетки. Сырые розетки работать на сетевой уровень OSIЭто означает, что заголовки TCP и UDP должны обрабатываться прикладным программным обеспечением, а не транспортным уровнем. Протокол управляющих сообщений Интернета (ICMP) сообщения и пинг Утилиты оба используют необработанные сокеты.
Используя сс
Из-за этого мы включили текстовые представления результатов, которые мы получили, так как они не помещались бы на скриншоте. Мы обрезали их, чтобы сделать их более управляемыми.
Список сетевых подключений
С помощью ss без параметров командной строки перечисляет сокеты, которые не прослушиваются. То есть в нем перечислены сокеты, которые не находятся в состоянии прослушивания.
Чтобы увидеть это, введите следующее:
Для UDP-сокетов столбец «Состояние» обычно пуст. Для TCP-сокетов это может быть одно из следующего:
Список прослушивающих сокетов
Эти розетки все не связаны и слушают. «Rtnl» означает маршрутизацию netlink, которая используется для передачи информации между процессами ядра и пространства пользователя.
Список всех сокетов
Вывод содержит все сокеты, независимо от состояния.
Перечисление TCP-сокетов
Перечисление UDP-сокетов
-u Параметр (UDP) выполняет тот же тип действия фильтрации. На этот раз мы увидим только UDP-сокеты:
Перечисление Unix-сокетов
Перечисление сырых сокетов
Перечисление IP версии 4 сокетов
Перечисление IP версии 5 сокетов
Список сокетов по состоянию
Следующая команда будет искать установленные соединения TCP, и ss постараюсь разрешить имена:
Перечислены четыре соединения, которые находятся в установленном состоянии. Имя хоста, ubuntu20-04, было разрешено, и вместо 22 для SSH-соединения во второй строке отображается «ssh».
Мы можем повторить это, чтобы найти сокеты в состоянии прослушивания:
Список сокетов по протоколу
Вы можете перечислить сокеты, используя определенный протокол с dport и sport параметры, которые представляют порты назначения и источника соответственно.
Мы вводим следующее, чтобы перечислить сокеты, используя протокол HTTPS на established соединение (запишите пробел после открывающей скобки и перед закрывающей):
Мы можем использовать имя протокола или порт, обычно связанный с этим протоколом. Порт по умолчанию для Безопасная оболочка (SSH) — порт 22.
Мы будем использовать имя протокола в одной команде, а затем повторим его, используя номер порта:
Как и ожидалось, мы получаем те же результаты.
Вывод списка соединений на определенный IP-адрес
С dst (пункт назначения), мы можем перечислить подключения к определенному IP-адресу назначения.
Мы вводим следующее:
Идентификация процессов
Это показывает нам, что два установленных соединения в сокетах TCP используются демоном SSH и Firefox.