2013-12-09 2 views
1

Я пытаюсь реализовать группу многоадресной рассылки в Java, члены которой могут отправлять и получать DatagramPackets с помощью MulticastSockets. Отправитель полагается на подтверждения от принимающих членов, чтобы гарантировать, например, что все участники получили переданный файл.Определить отправителя из полученного пакета DatagramPacket в группе многоадресной передачи

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

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

Есть ли какая-либо информация, которая может быть использована для определения отправителя, хранящегося в отправленном DatagramPacket?

ответ

0

Исходные адреса всегда unicast. Другими словами, передача данных всегда начинается с источника single. Следовательно, независимо от того, какой узел мы рассмотрим в сети, пакет, который он получит, будет иметь MAC-адрес источника и MAC-адрес назначения (который будет многоадресным). Используя MAC-адрес источника, вы должны легко сообщить отправителю пакета. Я считаю, что вы неправильно моделировали свою проблему. Предоставьте нам свои UML-диаграммы/код, чтобы мы могли лучше его анализировать.

+0

Я согласен, что проблема может быть лучше смоделирована. К сожалению, у меня нет выбора, кроме использования MulticastSockets в моем решении. – Basil