Port 란?
Port ( 포트 )
본래의 의미로 직역하면 '항구'라는 뜻으로, 컴퓨터 관련 분야에서의 의미로는 운영 체제 통신에서의 종단점을 뜻한다.
- 하드웨어적 의미 : 컴퓨터의 주변 장치와 연결하기 위한 연결단 (물리적 통로)
- 소프트웨어적 의미 : 네트워크 서비스나 특정 프로세스를 식별하는 논리적 단위 (논리적 통로)
이 글에서는 소프트웨어적 의미로 Port에 대해서 알아보도록 한다.
어떠한 데이터가 송수신을 할 때
Datalink 계층에서는 호스트의 NIC로 MAC Address를 판별하고
Network 계층에서는 IP Address로 목적지를 판별한다.
이렇게 MAC Address와 IP Address를 통해 목적지 호스트까지 도달한 후에는
어떤 Process(프로세스)에서 데이터를 받을 것인지 를 알아야 하는데 이 때 쓰이는 것이
Port Number(포트 번호)다.
Port에 대한 정확한 개념은 다음과 같다.
- OSI 7 Layer의 Transport 계층에서 동작하는 TCP / UDP 프로토콜에서 application이 상호구분을 위해 사용하는 번호
- IP 내에서 프로세스 구분을 하기 위해 사용하며, 각 프로토콜의 데이터가 컴퓨터 내부의 논리적 통로를 따라 흐른다.
- 네트워크를 통해 데이터를 주고받는 프로세스를 식별하기 위해 호스트 내부적으로 프로세스가 할당받는 고유한 값
Port Number ( 포트 번호 )
- Port Number는 16bits로 이루어져 있다.
- 2^16이므로 총 65536개의 Port Number가 존재할 수 있다.
- Port Number 크게 3가지로 분류한다.
1) Well-Known Ports ( 잘 알려진 포트 ) : 0번 ~ 1023번
2) Registered Ports ( 등록된 포트 ) : 1024번 ~ 49151번
3) Dynamic Ports ( 동적 포트 ) : 49152번 ~ 65535번
- 사용자가 임의로 사용가능한 포트 번호
Port Number 사용법
- 일반적으로 IP Address 뒤에 콜론(:) 표시를 하여 표기한다.
- Ex) 192.168.100.1:3053
Port Forwarding ( 포트 포워딩 )
외부에서 공유기 내의 특정한 장치로 접속하기 위해서는 IP Address를 알아야 하지만
공유기 내부의 IP는 사설 IP로 이루어져 있어 외부에서 IP만으로 특정 PC를 지정할 수 없다.
따라서 공유기의 공인 IP로 접속한 후 특정한 PC로 연결되도록 포트 넘버를 공유기에서 정의해주는 작업이 필요하다.
이러한 과정을 Port Forwarding 이라 한다.
참고:
http://ccnastudyhelp.blogspot.com/
https://blockdmask.tistory.com/
[사진]https://medium.com/datadriveninvestor/port-forwarding-for-beginners-11355d000867