IT 도서 리뷰/개발자가 되기 위해 꼭 알아야 하는 IT 용어

[PART2] 네트워크/통신/데이터 - TERMS 4

goldenkiwi-coder 2024. 12. 6. 19:04

[ TERMS 04 ] 포트

Port를 설명하는 이미지 (출처 : http://www.steves-internet-guide.com/tcpip-ports-sockets/)

 

 

 

1. 포트(Port)의 정의

 소프트웨어적 포트 : 네트워크 통신의 종단점으로서 용도별로 앱을 구분 짓는 논리적 통로

[e.g. 하나의 IP주소가 연결된 기기에 통신을 필요로 하는 여러 프로그램이 구동중이거나 IP 주소에 공유기로 연결된 여러 기기가 물려있을경우 이를 구분하는 개념]

 

2. 포트는 어디서 접하게 될까?

 웹 개발을 하면서 서버와 클라이언트를 다룰 때 사용하는 포트 포워딩(Port Forwarding)을 사용할 때 접하는 개념이다. 포트 개념을 이해하면 한 IP 안에 연결된 수많은 기기와 프로그램을 구분해서 통신할 수 있다.

3. 포트 알아보기

>  개념

 웹 브라우저가 웹 페이지를 요청하는 과정을 살펴보면 주소창에 'www.naver.com'을 입력하면 DNS 서버에 해당 DNS의 IP 주소로 변환하여 해당 IP 주소를 가진 서버 컴퓨터로 찾아간다. 서버까지는 갔지만 거기서 브라우저는 어떻게 웹 서버를 만나게 될까?

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

 

>  포트번호의 약속

 포트는 0번부터 65535번까지 총 65,536개를 사용할 수 있다. 이 포트들은 미국의 비영리 사설기관 ICANN의 산하기관인 IANA에 의해 관리되고 있으며 총 3가지로 분리된다.

포트번호의 분류 (출처 : https://www.javatpoint.com/port-number)

  • Well Known Ports ( 0 ~ 1023 )

  0번 부터 1023번까지의 포트로 잘 알려진 앱의 사용을 위해 표준과 같이 약속된 포트

포트번호
22 SSH
53 DNS
80 HTTP

 

  • Registered Ports ( 1024 ~ 49151 )

  1024번 부터 49151번까지의 포트로 특정 앱 제작사가 LANA에게 포트 등록을 요청하여 사용하는 포트이다.

포트번호
1433 MS SQL
3306 My SQL
8080 HTTP 대체 사용

 

  • Dynamic Ports ( 49152 ~ 65535 )

  49152번 부터 65535번까지의 포트로 특정 용도를 지정하지 않고 동적으로 자유롭게 사용 가능한 포트

 

 

4. 포트를 사용하는 이유

휴대폰 충전기의 USB 포트, 컴퓨터의 랜 포트(Lan Port), 이더넷 포트(Ethernet Port), 전원 포트 등 하드웨어적 포트는 일상생활에서 쉽게 접할수 있다. 그렇다면 소프트웨어적 포트는 어떤 역할을 수행하는가? 프린터가 하나 있다고 가정하자 전원 포트와 USB 포트가 있다. 하드웨어적 포트는 생김새로 구분하고 적절한 위치에 연결이 가능하다. 만약 반대로 연결한다면 프린터가 정상작동하기를 기대하기는 힘들것이다. 사용하려는 각 케이블의 데이터가 모두 다르기 때문에 도달해야 할 목적지인 포트가 있다. 그런데 소프트웨어적 포트는 하드웨어적 포트와 달리 눈에 보이지 않는다. 그래서 소프트웨어적 포트는 형태 대신에 번호를 부여해서 구분한다.

 

5. 포트 더 알아보기

>  포트번호의 약속

 포워딩(Forwarding)은 전송 또는 전달이라는 의미를 가지고 있다. 즉 포트 포워딩은 포트를 전달하는 것이다. 이해를 위해서 포트포워딩을 통해서 프린트를 한다고 가정하자 

 먼저 공인 IP를 알아야 한다. 프린터 IP인 192.168.0.2를 알면 연결할수 있다고 생각이 되겠지만 해당 IP는 진짜 IP가 아니기 때문에 프린터를 접근할 수 없다. 프린터의 IP 192.168.0.2는 내부 IP이기 때문에 외부에서는 의미 없는 IP이다. 터미널에서 ipconfig 명령어를 입력하면 내부 IP를 확인할 수 있다. 네이버에서 IP 주소 확인 을 통해서 얻는 IP는 공인 IP이다.

 공인 IP를 알더라도 바로 프린터에 연결되는 것은 아니다. 여러개의 컴퓨터 중 어디로 가야하는지 확인이 불가능하다. 이를 가능하게 하는것이 포트포워딩이다. 공인IP에 포트번호를 동시에 보내면 외부에 존재하는 프린터에 바로 연결이 가능하다.

 

포트포워딩을 설명하는 이미지(출처 : https://www.digital-loggers.com/portforwarding.html)

 

>  함께 알아 두면 좋은 용어

  • 서버 호스팅
  • 로컬 서버