Запуск Ubuntu.
У меня машина А -> машина Б (одностороннее соединение от A до B). Целью машины A является пересылка пакетов TCP на машину B (он DOSNT имеет TCP-соединение с машиной B. он просто пересылает TCP-пакеты, которые он получает с других машин) В машине A есть код C ++, который собирает некоторые пакеты tcp на основе бизнес-правил и записывает их через необработанный сокет на машину B.
Я хочу провести тест производительности своего кода на машине A, поэтому для этого мне нужно отправить массивные TCP-пакеты на машину A, мой код на C ++ перешлет их на B. В конце я проверю, что все пакеты были восстановлены в машина B. Есть ли у вас какие-либо рекомендации по инструментам? инструменты, которые будут имитировать массовую отправку, и инструменты, которые помогут в утверждениях (можно утверждать по сумме, контрольной сумме или любой другой идее)
Я думаю, что при загрузке большого файла файла в A дамп загружается трафик, а затем воспроизводится с помощью tcpreplay (я создам 100 потоков, которые воспроизводят один и тот же дамп загрузки, чтобы получить массивный поток tcp). Для проверки я проанализирую tcpdump на получателе, чтобы проверить, есть ли у него такое же исключенное количество пакетов, что и отправлено.
Речь идет не о tcp, поскольку протокол генерирует только реальные tcp-пакеты (как структуру), отправляет их большое количество и проверяет путем сравнения полезной нагрузки или количества или любым другим способом. Любой совет?
У меня есть машина A -> машина B (одностороннее соединение от A к B). Мне нужно отправить массивные TCP-пакеты от A к B и убедиться, что все пакеты ожили. У вас есть рекомендации по инструментам?
Я рекомендую TCP, что обеспечивает reliable, ordered delivery
данных.
(Вы просите нас предоставить инструмент для того, что уже делает базовый протокол.)
Также обратите внимание, что TCP по своей сути двунаправленный: ACK
s должны быть отправлены обратно с машины B на машину A. "Одностороннее соединение" невозможно - Нет ACK
s означает, что передача остановится навсегда.
Я думаю, что при загрузке большого файла из A в B (сделайте это, когда у них есть двустороннее соединение) сбросьте трафик из A в B, а затем воспроизведите его с помощью tcpreplay (я создам 100 потоков, которые будут воспроизводить его, чтобы получить массивный tcp поток). Для проверки я проанализирую tcpdump на получателе, чтобы проверить, есть ли у него такое же исключенное количество пакетов, что и отправлено.
TCP так не работает. Количество пакетов по сети может отличаться из-за различных размеров окна / MTU, количества отброшенных и повторно переданных пакетов, отложенных ACK (приводящих к двойной передаче нескольких пакетов) и т. Д.
Вы не можете просто передать одни и те же данные по сети и ожидать, что они будут работать точно так же - на практике это часто работает (и является основой повторные атаки), но TCP управляется конечным автоматом, и вам действительно нужно запускать его для каждого соединения.
Если вам нужно сгенерировать большой объем TCP-трафика и вы не заботитесь о данных, вы должны просто запустить несколько потоков, отправляя данные слушателям в удаленной системе (которые предположительно могут просто отбросить их).
Если вам важны данные, вы должны сделать то, что предлагается lasrks, и контрольную сумму полученные данные (полностью) после выхода из стека TCP / IP ...