네트워크 포트란 무엇입니까?

click fraud protection

분명히, 항구라는 단어의 가장 일반적인 사용은 선적을 나타냅니다. 그러나 컴퓨팅에서는 포트라는 용어도 사용합니다. 실제로 두 가지 용도가 있습니다. 첫 번째는 케이블을 꽂을 수 있는 소켓을 나타냅니다. 일반적인 예로는 USB 또는 이더넷 포트가 있습니다. 기술적으로 이더넷 소켓은 네트워킹 포트로 생각할 수 있습니다. 그것은 네트워킹에서 포트라는 단어의 허용된 의미가 아닙니다. 네트워크 포트는 어떤 프로세스 또는 네트워크 서비스 네트워크 트래픽을 의미하거나 전송하는지 식별하는 논리 번호입니다.

포트 번호가 필요한 이유는 무엇입니까?

컴퓨터가 인터넷의 웹 서버와 통신할 때 IP 주소를 보낸 사람 필드에 넣습니다. 이를 통해 서버는 응답을 보내야 하는 IP 주소를 알 수 있습니다. 해당 응답이 컴퓨터에 반환되면 브라우저는 응답을 해석하고 웹 페이지를 렌더링합니다.

이것은 하나의 소프트웨어로 네트워크 트래픽을 만들고 받는 이상적인 시스템에서 잘 작동합니다. 현실 세계는 그렇지 않지만. 모든 컴퓨터에는 네트워크 트래픽을 만드는 다양한 소프트웨어가 있습니다. 네트워크 트래픽이 올바른 프로그램(경우에 따라 프로그램의 적절한 프로세스)에 올바르게 전달되도록 합니다. 하나의 최종 주소 지정 계층이 포트 번호로 사용됩니다.

두 개의 탭이 열려 있고 동시에 온라인 비디오 게임이 있는 웹 브라우저가 있다고 상상해 보십시오. 각 브라우저 탭은 잠재적으로 동시에 네트워크 트래픽을 보내고 받을 수 있어야 합니다. 또한 온라인 게임은 네트워크 트래픽을 송수신해야 합니다. 게임에서 임의의 웹 응답을 필터링하지 않아도 되며 브라우저에서도 게임 트래픽을 필터링할 필요가 없습니다. 의도한 수신자 프로세스를 쉽게 결정할 수 있도록 탭과 게임 모두에 각각 최소 하나의 네트워크 포트가 할당됩니다.

서버에서도 마찬가지입니다. 웹 서버와 이메일 서버를 모두 실행하는 서버가 있다고 가정합니다. 이 경우 포트 번호를 통해 운영 체제는 어떤 네트워크 패킷이 어떤 서비스를 위한 것인지 쉽게 구별할 수 있습니다.

포트 번호란 무엇입니까?

포트 번호는 16비트 부호 없는 정수 형식을 취합니다. 이것은 숫자를 구성하는 16개의 이진 비트가 있고 음수가 없으며 모든 숫자가 정수임을 의미합니다. 이것은 0에서 65535 사이의 65536개의 가능한 포트 번호를 허용합니다. 물리적 포트 시스템이 없습니다.

IP 주소 및 MAC 주소와 같은 전체 주소 지정 체계는 완전히 논리적입니다. IP 및 MAC 주소를 집/컴퓨터로 가져오기 위한 편지의 주소로 생각할 수 있습니다. 이 비유에서 포트 번호는 봉투의 이름과 같으므로 집/컴퓨터의 올바른 사람/프로세스에 전달되도록 합니다.

포트 번호 공간 내에는 다른 구조가 있습니다. 포트 번호 0은 예약되어 있습니다. TCP 트래픽에서 0은 완전히 사용되지 않습니다. UDP 트래픽에서 포트 번호는 선택 사항이며 포트 0은 "포트 없음"을 의미합니다. 이것은 반드시 응답을 기대하지 않는 상태 비저장 프로토콜이기 때문에 UDP에서 작동합니다. TCP 및 UDP 포트는 별개입니다. 하나의 서비스는 하나 또는 두 프로토콜 모두에서 하나 이상의 포트에 바인딩할 수 있습니다. 둘 다 사용하는 서비스는 일반적으로 TCP 및 UDP의 동일한 포트 번호에 연결됩니다.

포트 1-1023은 "잘 알려진" 포트로 알려져 있으며 일반적으로 바인딩하려면 관리 권한이 필요합니다. 일부 잘 알려진 포트는 HTTP의 경우 80, HTTPS의 경우 443, DNS의 경우 53입니다. 다음으로 범위는 1024 – 49151입니다. 이를 "등록된" 포트라고 합니다. 이는 특정 서비스에서 정기적으로 사용하는 포트이지만, 충분히 일반적이지 않거나 1023 미만의 숫자를 얻을 만큼 빠르지 않습니다. 49152와 65535 사이의 포트를 임시 포트라고 합니다.

포트 번호 사용

IANA(Internet Assigned Numbers Authority)는 잘 알려져 있고 등록된 포트 목록을 유지 관리합니다. 잘 알려진 포트에는 연결된 서비스가 하나만 있습니다. 그러나 등록된 포트에는 기본적으로 포트를 사용하는 알려진 서비스 배열이 있을 수 있습니다.

일반적으로 어떤 프로그램도 포트 번호에 바인딩하는 것을 실제로 중지하는 것은 없습니다. 위에서 언급했듯이 1024 미만의 포트 번호는 바인딩하려면 관리 또는 루트 권한이 필요한 경향이 있습니다. 예를 들어 웹 서버가 아니더라도 모든 서비스가 포트 80에 바인딩되도록 강제할 수 있습니다. 잘 알려져 있고 등록된 범위의 포트 번호는 일반적으로 연결을 시작하는 데 사용되는 임시 포트와 함께 네트워크 수신기에서만 사용하는 경향이 있습니다.

리스너는 열려 있고 열려 있는 포트입니다. 메시지를 수신하여 처리하고 응답을 보낼 수 있습니다. 이것은 거의 독점적으로 웹 서버와 같은 서버 유형 서비스의 동작입니다. 웹 서버는 포트 80 및 443에서 호스팅되는 반면 이러한 포트에 연결하는 브라우저는 로컬에서 임시 포트를 사용합니다.

애플리케이션 리스너의 표준 포트 번호는 실제로 서비스에 연결하는 방법을 쉽게 알 수 있음을 의미합니다. 예를 들어 URL 앞에 HTTPS를 넣으면 브라우저는 기본적으로 포트 443에 연결해야 한다고 가정합니다. 어떤 경우에는 리스너가 대체 포트에 설정됩니다. 다른 서비스 또는 서비스 버전이 이미 표준 포트를 사용하고 있기 때문일 수 있습니다. 또한 은폐를 통한 보안 시도일 수도 있습니다.

결론

네트워크 포트는 논리 주소입니다. 소프트웨어는 포트에 바인딩할 수 있으므로 운영 체제는 해당 포트로 전송되는 모든 트래픽이 해당 프로세스를 위한 것임을 알 수 있습니다. 포트 번호 범위는 0~65535입니다. 많은 서비스가 표준 포트 번호와 연결되어 있습니다. 서버에 연결하는 장치는 임의의 높은 번호 포트를 사용하는 동안 서버는 이러한 포트를 사용합니다. 이렇게 하면 서비스에 대한 간편한 기본 연결이 가능하고 이러한 서비스에 연결해도 다른 서비스를 직접 호스팅할 수 없습니다.