UDP 소스 포트는 어떻게 선택됩니까?


8

방금 컴퓨터에서 패킷을 캡처하고 모든 UDP 연결을 필터링했습니다. 무작위로 생성 된 UDP 소스 포트 인 것으로 보이는 특정 연결과 UDP 대상 포트와 동일한 소스 포트를 사용하는 특정 연결을 보았습니다.

TCP 연결이 소스 포트를 랜덤 화하므로 응답에 "전용"포트가 있습니다. 그러나 UDP와 어떻게 작동합니까?

정식 답변을 찾고 있습니다. RFC (또는 그렇지 않은 것)에 대한 링크는 대단히 감사하겠습니다.

UDP 소스 포트는 어떻게 결정됩니까?

  • 응답이 예상 될 때 무작위로 생성됩니까?
  • 응답이 없을 때 대상 포트와 일치합니까? (0을 소스 포트로 사용하는 대신)?

감사합니다.

답변:


6

응용 프로그램에 따라 다릅니다. 예를 들어, 커널 2.6.24 에 소스 포트가 지정되지 않은 경우 Linux 커널은 UDP 소스 포트 무작위 화를 구현했습니다 .

따라서 일부 연결에서보고있는 동작은 소스 포트를 대상 포트와 동일하게 지정하고 다른 포트는 커널에 남겨 두는 특정 응용 프로그램이어야합니다.


따라서 (내가 이해하도록하기 위해) 기본적으로 서비스 / 응용 프로그램 자체가 일치하는 소스 / 대상 포트 사용을 포함하여 특별한 것을 요구하지 않는 한 UDP는 TCP와 마찬가지로 소스 포트를 무작위로 지정합니다. 맞습니까?
Eddie

플랫폼에 따라 맞습니다.
Jeff Strunk

+1 맞습니다. 소스 포트를 제어 할 수없는 TCP와 달리 (OS가 각 소켓마다 고유해야하기 때문에) UDP에서는 응용 프로그램이 원하는대로 자유롭게 구성 할 수 있습니다. 양방향 통신이있는 경우 소스 포트는 상대방이 응답해야하는 포트 여야합니다 ( "소스 포트 번호"의 Wikipedia 에 명시되어 있음 ). 그러나 응용 프로그램을 작성한 사람은 임의의 숫자를 사용하도록 쉽게 선택했을 수 있습니다.
Groo

0

임시 포트는 TCP와 동일한 UDP 패킷에 대해 생성됩니다.

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


그러나 항상 패킷 캡처에서 알 수 있듯이. 어떤 연결이 임의의 UDP 소스 포트를 사용하고 다른 연결이 대상 포트와 일치하게 만드는 이유는 무엇입니까? 그들이 일치 할 때 그것이 어떻게 반환 트래픽에 영향을 미칩니 까?
Eddie

이 답변은 Windows 동작에 대해 구체적으로 설명합니다. 다른 대답은 Linux 동작에 관한 것입니다. 이것들이 여전히 최신 상태라고 가정하면 Windows는 기본적으로 Linux처럼 무작위 화되지 않는 것처럼 보입니다.
thomasrutter
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.