Что означает индикатор ESTABLISHED после запуска lsof

Я управлял командой sudo lsof -i -n -P | grep TCP и мне было интересно, смогу ли я получить больше разъяснений по поводу его результатов.

В частности, на этом изображении:

введите описание изображения здесь

Почему у меня есть IP:PORT, указывающий на другой IP:PORT, а затем обратно на себя с меткой "ESTABLISHED"? Я не совсем понимаю, что это значит.

2 ответа

Я не уверен, насколько вы знакомы с сетью и TCP в целом, поэтому я постараюсь дать краткое описание с несколькими деталями. Из вашего вопроса видно, что вы не очень знакомы с внутренними сетями, поэтому может быть трудно понять некоторые из этих концепций, но я надеюсь, что это поможет:

Протокол TCP имеет различные состояния. Думайте об этом как о государственной машине. Состояния на стороне клиента включают CLOSED, SYN_SENT, ESTABLISHED, FIN_WAIT_1, FIN_WAIT_2 а также TIME_WAIT,

Таким образом ESTABLISHED метка означает, что соединение TCP находится в ESTABLISHED государство. Нахождение в установленном состоянии означает, что оба хоста успешно завершили трехстороннее рукопожатие TCP (и при этом перешли из SYN_SENT в ESTABLISHED). Переход от CLOSED в SYN_SENT происходит, когда клиентская сторона отправляет TCP SYN запрос к серверу.

При установленном соединении обе стороны передают и принимают данные, специфичные для приложения. По существу, сеанс установлен, и двунаправленный поток байтов проходит между двумя конечными системами.

TCP-сокеты однозначно идентифицируются 4-мя кортежами (source-ip, source-port, destination-ip, destination-port), IP идентифицирует сетевой интерфейс конечной системы, а номер порта используется для мультиплексирования и демультиплексирования прибытия пакетов на этот сетевой интерфейс (чтобы целевая система знала, в какую службу доставлять пакеты). В этом смысл IP:PORT поля.

Я не уверен, почему у вас есть две записи для одного подключения. Это может зависеть от системы, хотя это странно (в моей системе я получаю только одну запись на сокет). Но сокеты являются двунаправленными, поэтому может случиться так, что ваша система покажет вам каждое направление потока пакетов как отдельную запись. Это также может зависеть от того, как система реализует сокеты.

ESTABLISHED означает, что соединение TCP завершило трехстороннее рукопожатие. (Не уверен, хотя accept Должно быть, был назван). Смотрите схему состояний TCP.

Почему у меня есть IP:PORT, указывающий на другой IP:PORT, а затем обратно на себя

Это означает, что в вашем процессе открыто два сокета TCP. Скорее всего, один прослушивает порт 9092, а другой - порт 57633, подключенный к этому прослушивающему сокету. Порт 57633 принадлежит к эфемерному диапазону портов, то есть диапазонам портов, которые ОС автоматически назначает сокетам, которые вызывают connect но не звонил bind назначить определенный порт.

Другие вопросы по тегам