Como são selecionadas as portas de origem UDP?


8

Acabei de capturar pacotes da minha máquina e filtrar todas as conexões UDP. Vi certas conexões usando o que parece ser uma porta de origem UDP gerada aleatoriamente e certas conexões usando a mesma porta de origem que a porta de destino UDP.

Entendo que as conexões TCP randomizarão a porta de origem para que a resposta tenha uma porta "dedicada" para responder. Mas como isso funciona com o UDP?

Estou procurando a resposta oficial. Links para RFC (ou outros enfeites) seriam muito apreciados.

O que determina a porta de origem UDP?

  • É gerado aleatoriamente quando uma resposta é esperada?
  • Corresponde à porta de destino quando nenhuma resposta é esperada? (em vez de usar 0 como uma porta de origem)?

Obrigado.

Respostas:


6

Depende da aplicação. Por exemplo, o kernel do Linux implementou a randomização da porta de origem UDP quando nenhuma porta de origem é especificada no kernel 2.6.24 .

Portanto, o comportamento que você está vendo em algumas conexões deve ser o aplicativo específico que especifica que a porta de origem seja igual à porta de destino, enquanto outros a estão deixando no kernel.


Portanto, o que você está dizendo (para garantir que eu entenda) é por padrão, o UDP aleatoriamente as portas de origem (assim como o TCP), a menos que o próprio serviço / aplicativo solicite algo especial, para incluir o uso de portas de origem / destino correspondentes. Isso está certo?
Edd

Isso está correto, dependendo da plataforma.
Jeff Strunk

+1 Isso está correto; ao contrário do TCP, onde você não tem controle sobre a porta de origem (já que o sistema operacional deve garantir que seja exclusivo para cada soquete), no UDP o aplicativo é livre para configurá-lo como desejar. Se houver comunicação bidirecional, seria "razoável" que a porta de origem seja a porta à qual a outra parte deve responder (declarada na Wikipedia em "Número da porta de origem"). No entanto, quem escreveu o aplicativo pode ter escolhido facilmente usar um número aleatório.
Groo

0

Portas efêmeras são geradas para pacotes UDP iguais ao TCP.

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


Mas nem sempre, como minha captura de pacotes indicou. O que faz com que algumas conexões usem uma porta de origem UDP aleatória e outras que correspondam à porta de destino? E quando eles correspondem, como isso afeta o tráfego de retorno?
Eddie

Esta resposta descreve especificamente o comportamento do Windows. A outra resposta é sobre o comportamento do Linux. Supondo que eles ainda estejam atualizados, parece que o Windows não aleatoriamente por padrão, como o Linux.
thomasrutter
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.