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

Буфер пакетов отправки / получения - это та же предварительно выделенная память

У меня есть приложение для Windows, потребляющее большое количество входящего трафика udp и отправляющее небольшое количество пакетов udp, поддерживающих активность. Я вижу небольшое количество падений как на входящих, так и на исходящих. Я был удивлен тем, что небольшой объем исходящих данных испытывал сбой, поэтому я захватил пакеты с помощью netMon и увидел, что все они отправляются, хотя с сервера отправлено 3 кадра, только 2 отправляются на сервер Linux.

Я хотел бы знать следующее: 1. Является ли NetMon клоном sock_buffer, и, следовательно, данные могут быть отброшены в буфер пакетов, а не отправлены сервером? 2. Является ли буферная память пакетов одинаковой как для отправки, так и для приема (т. Е. Если буферы пакетов приема используют всю предварительно выделенную буферную память, может ли это вызвать потерю пакетов при небольшом количестве исходящего трафика)?


Ответы:


1

Первое: буфер пакетов отправки и приема имеет отдельную память. Во-вторых: NetMon работает на нижнем сетевом уровне, а не на уровне сокетов. Третье: имейте в виду, что UDP - ненадежный протокол, и вы не можете гарантировать, что все пакеты, отправленные с одного конца, будут получены на другом конце. Если вам нужна надежность, вам следует рассмотреть TCP или другой надежный протокол.

Кстати, отправитель и получатель находятся в одной локальной сети или в Интернете ?? Как они связаны? если вы можете описать это, то, возможно, кто-то может предложить что-нибудь еще для дальнейшей отладки проблемы.

13.04.2011
  • Спасибо за ответ. Чтобы ответить на несколько ваших вопросов, да, они находятся в одной локальной сети, я не уверен в точных деталях того, как они подключены (по крайней мере, один коммутатор), и отсутствие TCP не является вариантом (сумма потерь составляет приемлемо, но я хотел бы это понять и попытаться улучшить). Итак, если netMon захватывает кадры на отправляющем сервере, означает ли это, что он на 100% уверен, что они вышли на провод (нет места для сетевой карты, чтобы их отбросить, и, следовательно, это проблема сети)? Ради интереса, есть ли какие-нибудь хорошие документы, которые помогут мне немного лучше понять это? Спасибо 15.04.2011
  • хм ... во-первых, если оба находятся в одной локальной сети, то очень редко вероятность того, что ваши пакеты будут отброшены из-за ненадежности UDP. Лично я предпочитаю использовать Wireshark (ранее известный как Ethreal) вместо NetMon для отладки подобных проблем. И есть очень-очень редкая вероятность того, что ваш пакет будет отброшен на сетевом адаптере, поэтому может быть и другая проблема. Вы пытались уменьшить или остановить входящие данные и посмотреть, сохраняется ли проблема? Другие варианты отладки могут заключаться в том, чтобы включить регистрацию в вашем коммутаторе или маршрутизаторе для UDP и посмотреть, достигают ли туда ваши исходящие пакеты ?? 15.04.2011
  • И что конкретно вам нужно понять ?? Я имею в виду, какую документацию вы ищете? Детали протокола UDP? или детали сниффинга пакетов (NetMon) ?? что-то конкретное? 15.04.2011
  • Еще раз спасибо .... Его сложно определить, так как это происходит не все время, но обычно происходит несколько раз в день, когда у меня есть одно приложение, подписывающееся на несколько многоадресных потоков (где дополнительных многоадресных потоков всего 10 % от оригинала). Я хотел бы лучше понять, как данные попадают из сети в пользовательское пространство. Используемые буферы и правила доступа к ним. 17.04.2011
  • Новые материалы

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

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

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

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

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

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

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