Nano Hash - криптовалюты, майнинг, программирование

Разрешение партнера по диалогу эфемерного порта

В настоящее время я исследую сетевой трафик. Здесь я хочу узнать, какой клиент с каким сервером общается. Очевидно, я могу взглянуть на первый пакет и увидеть:

PartyA:38531 ===request===> PartyB:80
PartyB:80    ===response==> PartyA:38531
PartyA:38531 ===request===> PartyB:80
PartyB:80    ===response==> PartyA:38531
PartyA:38531 ===request===> PartyB:80
PartyB:80    ===response==> PartyA:38531

Итак, PartyA запрашивает что-то с веб-сервера (PartyB). Порт PartyA выбирается случайным образом (https://en.wikipedia.org/wiki/Ephemeral_port ). Но что, если при захвате пакета не был захвачен первый пакет? Таким образом, первый пакет будет:

PartyB:80    ===response==> PartyA:38531
                  ....

Как я могу узнать, кто сервер, а кто клиент? Существуют ли такие правила, как, например. «Эфемерный порт должен быть выше статического порта» или что-то в этом роде? Но тогда что произойдет с портом выше 61000?

Я хочу проанализировать трафик, идущий на определенный сервер и исходящий с определенного хоста. Но что, если новое соединение появится с новым эфемерным портом? Есть ли способы выяснить, кто сервер, а кто клиент?

Надеюсь, что мой вопрос понятен :) Заранее спасибо

13.05.2016

Ответы:


1

Все зависит от того, эфемерные порты являются эфемерными на машине, которая их выделила, они могут быть вне эфемерного пула в другой системе или в другом ядре, поэтому не стоит ожидать от них слишком многого.

Единственное, в чем вы можете быть уверены на 99%, так это в том, что порты в диапазоне 49151–65535 (2^15+2^14-1 to 2^16−1) эфемерны, но они не ограничены в использовании сервером (более того, они рекомендуются для частного использования).

Лучше сконцентрируйтесь на статическом порте. Если у вас есть несколько активных подключений к одному и тому же порту с разных адресов, может ли это быть статический порт на сервере и разные порты на разных адресах - эфемерные порты на клиентах?

Если между клиентом и сервером есть только один сеанс, не имеет значения, кто сервер, а кто клиент, вы можете получить это только из протокола, который они используют.

23.05.2016
  • Если есть только один сеанс между клиентом и сервером, не имеет значения, кто сервер, а кто клиент... Именно так. TCP даже не имеет концепции клиент/сервер. Это связь между сверстниками. Клиент/сервер — это концепция прикладного уровня. 23.05.2016
  • Поскольку у меня есть большие файлы трафика, я обнаружил, что я также могу просто искать флаги 0x2 tcp (SYN) и записывать все порты, используемые при установлении соединения. После этого у меня есть список сервисных портов. Кроме того, stackoverflow.com/questions/37271660/big-graph- in-memory/ может генерировать список наиболее распространенных портов, удаляя эфемерные порты. 24.05.2016
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..