brunch

You can make anything
by writing

C.S.Lewis

by JSCODE 박재성 Feb 12. 2024

1.6 IP와 Port의 개념

IP의 개념

 한 줄 요약 : 네트워크 상에서의 특정 컴퓨터를 가리키는 주소


아래와 같은 값이 IP 주소이다.

13.250.15.132



IP는 특정 컴퓨터의 주소를 가리킨다. 예를 들면, naver.com 이라는 서비스도 IP 주소를 가지고 있다. 저 IP 주소는 네이버가 운영하고 있는 컴퓨터의 주소이기도 하다.





Port의 개념

한 줄 요약 : 한 컴퓨터 내에서 실행되고 있는 특정 프로그램의 주소


아래와 같은 값에서 [:3000] 부분이 포트 번호를 의미한다.

13.250.15.132:3000



한 컴퓨터 내에서 여러 프로그램이 실행되고 있을 것이다. 내가 지금 사용하고 있는 노트북만 보더라도 크롬, 카카오톡, 슬랙, VSCode 등 여러가지 프로그램이 동시에 실행되고 있다. 실제 서버를 운영하는 컴퓨터도 동일하다. 하나의 컴퓨터에서 여러가지의 프로그램이 실행된다.



그럼 외부에서 특정 컴퓨터 내부에 있는 Spring Boot라는 서버에 통신을 하고 싶다고 가정하자. 



하지만 외부에서 IP 주소만 알아서는 실행되고 있는 여러 프로그램 중 어떤 프로그램과 통신을 해야 할 지 알 수가 없다. 그래서 특정 서버와 통신을 할 때는 IP 주소와 서버가 실행되고 있는 포트 번호까지 알고 있어야 한다.



브라우저 창에 포트 번호를 입력하지 않는 이유?


위 설명에서 분명 특정 서버와 통신하기 위해서는 IP 주소포트 번호를 둘 다 알아야 된다고 했다. 도메인 주소를 통해서 알 수 있는 건 IP 주소 뿐이다. 그럼 포트 번호를 입력해주지도 않았는데 어떻게 정상적으로 통신을 한 걸까?



주소창에 도메인 주소를 입력해서 엔터를 누르면, 브라우저(크롬, 익스플로러 등)는 기본적으로 80번 포트로 통신을 보내게 설정되어 있다. 그래서 포트 번호를 입력해주지 않아도 통신이 잘 됐던 것이었다. 만약 80번 포트로 통신하고 싶지 않고, 3000번 포트로 통신하고 싶다면 아래와 같이 주소창에 입력해야 한다.




잘 알려진 포트(well-known port)란 ?


포트(Port)에는 잘 알려진 포트(well-known port)라는 개념이 있다. 이 개념에 대해 알아보자.



포트 번호는 0 ~ 65,535번까지 사용할 수 있다. 그 중에서 0 ~ 1023번까지의 포트 번호는 주요 통신을 위한 규약에 따라 이미 정해져 있다. 



이렇게 규약을 통해 역할이 정해져있는 포트 번호를 보고 잘 알려진 포트(well-known port)라고 부른다.



규약으로 정해져 있는 포트 번호 중 자주 사용되는 포트 번호에 대해서만 알아보자.   



- 22번 (SSH, Secure Shell Protocol) : 원격 접속을 위한 포트 번호. EC2 인스턴스에 연결할 때 사용


- 80번 (HTTP) : HTTP로 통신을 할 때 사용


- 443번 (HTTPS) : HTTPS로 통신을 할 때 사용



여기서 착각하면 안 되는 점은 위에서 정해놓은 규약을 꼭 지키지 않아도 된다는 것이다. 



즉, 규약으로 정해져 있는 포트 번호와 다르게 사용해도 된다는 뜻이다. 예를 들어, 특정 서버와 HTTP 통신을 할 때 80번 포트를 쓰지 않고 3000번 포트나 8080번 포트를 써도 상관 없다.

작가의 이전글 1.5 EC2 셋팅하기 - 보안그룹 설정
작품 선택
키워드 선택 0 / 3 0
댓글여부
afliean
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari