⚽ 포트(Port)의 정의

  • 소프트웨어적 의미의 포트는 네트워크 통신의 종단점으로서 용도별로 앱을 구현하기 위한 논리적 통로입니다.

  • 쉽게 말해서 하나의 IP 주소가 연결된 기기에 통신을 필요로 하는 여러 프로그램이 구동 중이거나 하나의 IP 주소에 공유기로 연결된 여러 기기가 물려 있을 경우 이를 구분하는 개념이 Port입니다.

  • 또한 포트는 특정 프로토콜이나 서비스와 연관되어 있습니다. 예를 들어서 HTTP 통신은 일반적으로 TC 포트 80을 사용하고 HTTPS는 TCP 포트 443을 사용합니다.



⚽ 포트는 어디서 접할까요??

  • 웹 개발을 하면서 서버와 클라이언트를 다루는 경우, 집에 홈 CCTV를 설치하여 외부 인터넷 망으로 CCTV를 연결시켜 사용하는 포트 포워딩 (Port Forwarding)을 사용할 때 접하는 개념입니다.

  • 포트 개념을 이해하면 한 IP 안에 연결된 수많은 기기와 프로그램을 구분해서 통신이 가능합니다. 집에서 홈 IOT를 구성할 경우에도 보통 공유기를 사용해서 여러 사물에 인터넷을 부여하는 경우가 많기 때문에 이런 경우에도 포트 개념을 접하게 됩니다.



⚽ 포트 더 알아보기

📌 개념

  • 웹 브라우저가 웹 페이지를 요청하는 과정을 살펴보겠습니다. 웹 브라우저를 켜고 주소창에 네이버 주소(www.naver.com)을 타이핑한 후 엔터 키를 누르면 우선 DNS 서버에 해당 DNS의 IP 주소로 변환하여 해당 IP 주소를 가진 서버 컴퓨터로 찾아가게 됩니다. 서버로 찾아는 갔는데 웹 브라우저가 만나야 하는 웹 서버는 어떻게 만날까요??

  • 서버 컴퓨터는 웹 서버, 채팅 서버 등등 다양한 서버 프로그램을 실행 중일 수 있습니다. 서버는 사용자의 접속 목적을 모르기 때문에 어떤 서비스를 원하는지 알 수 없습니다. 이때 이정표 역할을 하는 것이 바로 포트입니다.

  • 웹 브라우저에서 요청한 주소에는 사실 웹 서버 프로그램을 의미하는 포트 번호인 80이 생략되어 있습니다. HTTP 프로토콜을 사용할 경우 포트 지정을 따로 하지 않으면 웹 브라우저가 기본값으로 80번을 포함시켜 주기 때문입니다. 그래서 80번 포트는 서버로부터 웹 서버로 안내 받아 웹 페이지를 받아옵니다.


📌 포트번호의 약속

  • 포트는 0번 ~ 65535번까지 총 65536개를 사용할 수 있습니다. 이 포트들은 이국의 비영리 사설기관 ICANN의 산하기관인 IANA에 의해 관리되고 있으며 INAN는 포트를 총 3가지로 분류했습니다. 65536개의 포트 별로 약속된 애플리케이션은 IANA의 공식 홈페이지를 통해 확인이 가능합니다.

  • 포트번호는 0 ~ 1023까지의 포트는 잘 알려진 포트들입니다, 이 포트번호들은 주로 특정 서비스에 예약되어 있다고 할 수 있습니다. 1024 ~ 49151까지의 포트 번호는 등록된 포트로, 일반적으로 사용자가 애플리케이션을 개발할 경우나 서비스를 제공할 경우 사용합니다. 나머지 포트들은 동적 포트로, 임시로 할당되는 포트라고 할 수 있습니다.


📌 포트를 그래서 왜 사용할까?

  • 휴대폰 충전기의 USB 포트, 전원 포트 등등 포트는 일상생활에서 굉장히 자주 접하는 단어입니다. 앞에서 언급한 예시들은 하드웨어적 포트인 것이죠. 그렇다면 소프트웨어 포트는 무엇일까요??

  • 예를 들어서 프린터를 설치하려면 기본적으로 전원 선과 USB 선을 꽂아야합니다. 그런데 전원 선과 USB 선을 꽂을 포트의 생김새가 똑같다면 전원 케이블을 어디다 꽂아야 할 지 헷갈리게 됩니다. 전원 포트가 아닌 곳에 잘못 꽂으면 고장 날 것이 분명하니 곤란합니다. 여기서 우리는 포트의 역할을 알 수 있습니다. 사용하려는 각 케이블의 데이터가 모두 다르기 때문에 도달해야 할 목적지인 포트가 있습니다. 하지만 소프트웨어적 포트는 하드웨어적 포트와 달리 눈에 보이지 않습니다. 그래서 소프트웨어적 포트는 번호를 부여합니다.

profile
나 혼자 보려고 만든 개발 일기

0개의 댓글