Как выбираются исходные порты UDP?

8

Я просто сделал захват пакета с моей машины и отфильтровал все UDP-соединения. Я видел некоторые соединения, использующие, как представляется, случайно сгенерированный порт источника UDP, и определенное соединение, использующее тот же порт источника, что и порт назначения UDP.

Я понимаю, что соединения TCP будут рандомизировать исходный порт, поэтому у ответа есть «выделенный» порт для ответа. Но как это работает с UDP?

Я ищу авторитетный ответ. Ссылки на RFC (или еще много чего) будут с благодарностью.

От чего зависит исходный порт UDP?

  • Это случайно генерируется, когда ожидается ответ?
  • Соответствует ли он порту назначения, когда ответа не ожидается? (вместо использования 0 в качестве исходного порта)?

Спасибо.

Эдди
источник

Ответы:

6

Это зависит от приложения. Например, ядро ​​Linux реализовало рандомизацию порта источника UDP, когда в ядре 2.6.24 не указан порт источника .

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

Джефф Странк
источник
Итак, что вы говорите (чтобы я понял) по умолчанию, UDP будет рандомизировать исходные порты (точно так же как TCP), если только сама служба / приложение не потребует чего-то особенного, чтобы включить использование соответствующих портов источника / назначения. Это правильно?
Эдди
Это правильно в зависимости от платформы.
Джефф Странк
+1 Это правильно; в отличие от TCP, где у вас нет контроля над исходным портом (поскольку ОС должна гарантировать, что он уникален для каждого сокета), в UDP приложение может свободно настраивать его по своему усмотрению. Если существует двусторонняя связь, было бы «разумно», чтобы исходный порт был портом, на который должна ответить другая сторона (указано в Википедии под «Исходным номером порта»). Однако тот, кто написал приложение, мог бы легко выбрать вместо него случайное число.
Гру
0

Эфемерные порты генерируются для пакетов UDP так же, как TCP.

http://www.hsc.fr/ressources/articles/win_net_srv/ephem_port_alloc.html

RobtheDob
источник
Но не всегда, как указывал мой захват пакета. Что заставляет некоторые соединения использовать случайный порт источника UDP, а другие - порт назначения? И когда они совпадают, как это влияет на возврат трафика?
Эдди
Этот ответ конкретно описывает поведение Windows. Другой ответ о поведении Linux. Предполагая, что они все еще актуальны, похоже, что Windows не рандомизируется по умолчанию, как Linux.
Томасруттер