IPv4에 허용되는 최대 TCP / IP 네트워크 포트 번호는 무엇입니까?


답변:


565

포트 번호는 부호없는 16 비트 정수이므로 65535입니다.


216
"야, 짐, 몇 개의 포트를 지원해야합니까?" "그냥 좋은 측정을 위해 16 비트를 만드십시오. 아무도 한 번에 수백 개 이상 열리지 않을 것입니다."
JessieArr

3
@ barlop 나는 그들이 처음 포트를 만들 때 수백 개의 연결을 가진 단일 머신이 최악의 시나리오로 간주 될 것이라고 제안했다. 그러나 오늘날 웹 서버, 네트워크 장치 등은 포트 수 제한에 부딪 칠 수 있습니다. Microsoft는 Windows 환경에서이를 진단하고 피하는 방법에 대한 흥미로운 Technet 기사를 작성했습니다. blogs.technet.microsoft.com/askds/2008/10/29/…
JessieArr

3
두 경우 모두 @JessieArr은 실제로 65536 문제가 아니며, A) 연결을 해제하지 않는 프로그램의 문제입니다. 심지어 동적 포트를 얻지 못했거나 창을 가지고 있지 않다고 누군가에게보고하는 프로그램이 없었기 때문에 심지어는 심지어 그 일이 발생했는지 알고있는 사람조차도 웹 브라우저가 가장 큰 연결 사용자 일 수 있습니다. netstat 출력에 297 줄이 있습니다. 멀리 65K에서
barlop

3
@JessieArr 대부분의 IP 스택은 소스 IP 주소, 소스 포트, 대상 IP 주소 및 대상 포트의 튜플을 연결의 고유 식별자로 사용합니다. 서버가 여러 가질 수있는이 방법 많은 이 가능한 열린 포트, 그리고 포트의 양이 단일 소스와 단일 대상 사이에 열려있는 연결의 양에 (매우 큰 일이기는하지만) 제한을 배치보다 더 많은 활성 연결합니다. 누구도 한 번에 65536 개 이상의 포트에서 서버를 실행하거나 연결을 수신한다고 생각하지 않습니다.
jduncanator 5

41
@JessieArr-농담을하도록 가르치고, 이것은 당신이 아는 진지한 사업입니다, 여기에 그런 종류의 일을 할 시간이 없습니다 : /
Matt

145

가장 큰 포트 번호는 부호없는 short 2 ^ 16-1입니다 : 65535

등록 된 포트는 인터넷 회사에서 ICANN (Assigned Names and Numbers)을 특정 용도로 할당 한 포트입니다. 등록 된 각 포트의 범위는 1024–49151입니다.

2001 년 3 월 21 일 이후 등록 기관은 ICANN입니다. 그 전에는 IANA였습니다.

등록 된 포트보다 번호가 낮은 포트를 잘 알려진 포트라고합니다. 등록 된 포트보다 번호가 큰 포트를 동적 및 / 또는 개인 포트라고합니다.

Wikipedia : 등록 된 포트


71

내가 이해했듯이 49152에서 65535까지는 임시 포트를 위해 예약되어 있으므로 최대 49151 만 사용해야합니다.


11
임시 포트 범위는 시스템마다 다릅니다. 3.19.0-43-generic 커널로 우분투 리눅스를 실행하고 있습니다. $ cat /proc/sys/net/ipv4/ip_local_port_range출력 결과 32768 61000. 시스템의 임시 포트 범위에서 포트를 사용해야하는지 또는 사용하지 않아야하는지에 관해서는 모든 최신 네트워크 운영 체제가 이미 사용중인 포트를 건너 뛰지 않을 것입니다.
Keith Reynolds

37

Smashery 의 답변에 대한 후속 조치 입니다. 임시 포트 범위 (Linux에서는 적어도 다른 Unices도 의심됩니다)는 고정되어 있지 않습니다. 이것은 쓰기로 제어 할 수 있습니다 /proc/sys/net/ipv4/ip_local_port_range

IANA에 관한 한 제한 사항은 1024 미만의 포트는 잘 알려진 포트로 지정되어 있다는 것입니다. 위의 포트는 무료로 사용할 수 있습니다. 종종 1024 미만의 포트는 수퍼 유저 액세스로 제한되는 것을 알 수 있습니다.


15

RFC 793에 따르면 포트는 16 비트 부호없는 정수입니다.

이는 범위가 0-65535임을 의미합니다.

그러나이 범위 내에서 포트 0-1023은 일반적으로 특정 목적으로 예약되어 있습니다. 나는 일반적으로 포트 0을 제외하고는 0-1023 예약을 시행하지 않기 때문에 일반적으로 말합니다. TCP / UDP 구현은 일반적으로 0 이외의 예약을 강요하지 않습니다. 원하는 경우 표준 443 대신 포트 80, 25 또는 65535에서 웹 서버의 TLS 포트를 실행할 수 있습니다. SMTP 서버가 포트 25에서 수신하는 표준 인 80, 443 등에서 실행할 수 있습니다.

대부분의 구현 은 특정 목적-임의 포트 할당을 위해 0을 예약합니다. 따라서 대부분의 구현 에서 "포트 0에서 수신"은 실제로 "사용하는 포트에 신경 쓰지 않고 수신 대기 할 임의의 할당되지 않은 포트를 제공하십시오"를 의미합니다.

따라서 0, 임시 예약 범위 등을 포함하여 0-65535 범위의 포트 사용에 대한 제한은 구현 (예 : OS / 드라이버) 에 따라 다르지만 0을 포함하여 모두 RFC 793에서 유효한 포트입니다.



11

포트의 유효한 숫자는 다음과 같습니다. 0 ~ 2 ^ 16-1 = 0 ~ 65535
포트 번호의 길이가 16 비트이기 때문입니다.

그러나 포트는 다음과 같이 나뉩니다.
잘 알려진 포트 : 0 ~ 1023 (HTTP, FTP, SSH, DHCP 등의 시스템 서비스에 사용)
등록 / 사용자 포트 : 1024 ~ 49151 (서버에 사용할 수 있지만 MSSQL (Microsoft SQL Server 데이터베이스 관리 시스템) 서버 또는 Apache Derby Network Server와 같은 일부 유명한 응용 프로그램은 이미이 범위에서 사용 중입니다. 즉, MSSQL이 실행 중이면 서버에 MSSQL 포트를 할당하지 않는 것이 좋습니다. 아마 때문에 포트 충돌)의 실행되지 않습니다
동적 / 개인 포트 : 49152 오히려 고객이 없습 서비스의 예 서버를 사용하지 65535 (에)

프로그래밍에서 서버에 0-65535의 숫자를 사용할 수 있지만 위에서 언급 한 범위를 준수해야합니다. 그렇지 않으면 일부 시스템 서비스 또는 일부 응용 프로그램이 포트 충돌로 인해 실행되지 않습니다. https://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers
에서 대부분의 포트 목록을 확인하십시오.


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.