IP-заголовки в Java - PullRequest
       297

IP-заголовки в Java

0 голосов
/ 23 марта 2012

Я тестирую поведение некоторого клиентского программного обеспечения, и мне нужно написать программное обеспечение, которое имитирует функциональность, подобную маршрутизатору, предпочтительно с использованием чего-то простого, например, сокетов UDP. Все, что ему нужно сделать, это получить пакет, изменить время жизни и отправить его обратно. Это возможно в обычной Java? Или вы делаете что-то вроде следующего:

  1. Прослушивание сокета A
  2. Для КАЖДОГО полученного пакета udp откройте НОВЫЙ сокет, установите время для жизни на этом сокете и отправьте его обратно (или это невозможно / не эффективно?)
  3. Получатель получает пакет с измененными значениями, которые выглядят так, как будто он прошел некоторые прыжки (но в действительности этого не произошло)

Таким образом, возможны два подхода - редактирование полученного пакета напрямую (и затем просто отправка обратно) или создание нового пакета, копирование значений из исходного и установка соответствующих параметров заголовков / сокетов перед отправкой.

РЕДАКТИРОВАТЬ : «маршрутизатор» вообще не выполняет сложной маршрутизации, такой как пересылка на другие маршрутизаторы ... он просто уменьшает поле заголовка ttl полученного сообщения и отправляет сообщение обратно клиенту.

1 Ответ

1 голос
/ 23 марта 2012

Пожалуйста, обратитесь к API класса Socket и ServerSocket. Большинство серверных реализаций для различных протоколов принимает пакеты через стандартный порт, например 80, и отправляет ответ, используя какой-то эфемерный порт.

...