이 글은 공부를 하면서 알게 된 내용들을 기록하는 글 입니다. 오류나 고쳐야 할 사항들이 있다면 지적 부탁드립니다!
✅ Port - 포트
컴퓨터 관련 분야에서의 port란 운영체제 통신의 종단점(endpoint)을 뜻한다.
어떠한 데이터가 송수신을 할 때
Pysical, Data link, Network(Internet) layer를 지나며, `Mac Address`와 `IP Address`를 통해 목적지를 찾아간다.
목적지에 도달한 후에는 어떤 Process에 이 데이터를 전달할 것인지 판단해야 하는데,
이 때 `Port number(포트 번호)`가 사용된다.
예를 들어서 어떤 데이터가 `aaa.aaa.aaa.aaa`라는 IP주소를 가지고 있는 사용자의 컴퓨터에 데이터가 도착했고,
해당 사용자의 컴퓨터에 카카오톡, Whale 브라우저, 디스코드가 실행되고 있다고 가정해보자.
도착한 데이터는 어떤 프로세스로 가야 할까?
추가적인 정보 없이는 어떤 프로세스에 데이터를 전달해줘야할지 알 수 없기 때문에 사용하는 것이 바로 `port number(포트 번호)`이다.
✅ Port number
`Port number`는 특정 프로세스를 식별하는 논리 단위이며, 주로 Transport layer에서 프로토콜(TCP/UDP)와 함께 사용되며,
0번부터 65535번까지 존재한다.
위에서 들었던 예시를 다시 보자.
Layer 1 ~ 3을 통해 데이터는 `aaa.aaa.aaa.aaa`라는 IP를 가진 컴퓨터에 도착했다.
해당 컴퓨터에는 깃허브, 노션, 디스코드가 실행 중 이고 깃허브는 49534번, 노션은 49154번, 디스코드는 6463번 포트로 실행되고 있을 때, 전달 받은 데이터는 이 셋 프로세스들 중 한 곳으로 전송된 데이터이다.
이 때, 포트 번호를 통해 어떤 프로세스에게 전달된 데이터인지 판별이 가능하며, 데이터를 원래 목적지까지 전송할 수 있다.
port number는 크게 세 종류로 구분될 수 있다.
🔥 well-known port (0번 ~ 1023번)
0번부터 1023번까지는 어떤 프로토콜의 어떤 어플리케이션이 사용할지 이미 정해져 있다. IANA에서 할당한 TCP/UDP 포트로서, 잘 알려진 포트 목록들은 다음과 같다.
🔥 registered port (1024번 ~ 49151번)
기관이나 사업자들을 위해 IANA에서 관리하는 포트들이다.
MySQL(3306), HTTP 대체(8080), MongoDB(27017)와 같은 포트번호들이 여기에 속한다.
🔥dynamic port (49152번 ~ 65535번)
사용자가 임의로 사용이 가능한 포트 번호들이다. 어디에서든지 사용할 수 있는 포트번호이기 때문에 따로 지정된 것이 없다.