본문 바로가기

Study/Server

Home Server (3) - port

이전 게시글에서, 내 컴퓨터를 클라이언트로 사용했을 경우 NAT가 동작하는 경우를 살펴보았다.

 

그리고 이제 그 컴퓨터를 홈 서버로 이용하기 위해 (서버로 사용하는 경우), 어떻게 처리를 해야 외부의 클라이언트가 내 컴퓨터로 접속할 수 있을지 알아보자.

 

 

 

 

기본적으로 내 컴퓨터가 client 상태인 경우, 외부 클라이언트가 public IP address로 접근을 했을 때 내부 네트워크 안에서 어느 LAN으로 연결해야 할지 모르기 때문에 무언가 조치를 해야 한다.

 

이를 위해서 준비된 개념이 port 이다. IP 주소가 컴퓨터에 접속하는 주소라고 하면, port는 컴퓨터 안에 설치된 서버에 접속하는 주소라고 할 수 있다.

 

 

 

 

 

예를 들어, 이런 항구가 있다. 

 

여기에 있는 배들은 자신의 번호를 가지고 있고, 그에 해당하는 port 에 정박되어 있는 것이다.

 

마찬가지로, 우리의 컴퓨터에도 여러 port가 있다.

 

 

 

 

 

하나의 컴퓨터에는 여러 개의 수만은 서버가 설치되어 있을 수 있다. 

 

그리고 우리가 특정 컴퓨터에 접속을 했을 때, 그 컴퓨터에는 여러 서버가 있는데 그 서버들을 어떻게 식별할까?

 

우리가 어느 특정 서버와 상호작용할 지 컴퓨터에게 알려줘야 한다.

 

이 때 사용하는 것이 port 번호이다.

 

포트 버호는 0번부터 순서대로 숫자가 매겨져 있고, 22-SSH, 80-http, 1023 포트 등등 65535 개의 포트가 있다.

 

 

 

 

 

이 중에, 80-http 에서 HTTP는 웹 페이지를 주고 받을 때 사용하는 통신 규약이고, 80번은 웹이 쓰도록 정해진 것이다.

 

그래서 6만 5천개의 포트 중 0번부터 1023번까지는 Well-know port 라고 해서 예약된 port이다. (보통 유명한 것들만)

 

만약 우리가 컴퓨에 웹 서버를 깔면, 그 웹 서버는 기본적으로 80번 포트에 연결되도록 약속되어 있다.

 

 

 

 

이 연결된다는 말을 좀 더 구체적으로 하면, Listening 즉 듣다라는 표현을 쓴다.

 

왜냐하면, 서버는 기본적으로 듣고있다가 요청이 들어오면 응답하는 기기이기 때문이다.

 

 

 

 

그리고 만약 우리가 컴퓨터에 서버 2대를 깐다고 하면, 이미 80번 port를 기본적으로 사용되고 있기 때문에 다른 포트를 써야 한다. 

 

예를 들어, 8080 port를 사용한다. (8080번은 관습적인 것. 아무 port에 사용해도 상관 없다)

 

 

 

 

 

두 개의 웹서버가 깔려있는 상황에서, 누구와 상호 작용 할 것인지를 어떻게 아냐고 하면 URL에 비밀이 있다.

 

예를 들어, http://yewon-lee.tistory.com 에 접속을 한다면 기본적으로 80번 port에 접속이 된다.

 

왜냐하면 http 뒤의 주소에 해당되는 컴퓨터에 HTTP로 통신 하겠다는 뜻이면, 컴퓨터들은 이 접속을 80번에 연결시킨다.

 

그리고 만약 8080번에 리스닝 하고있는 웹 서버를 호출하고 싶다면, 주소를 이렇게 적으면 된다.

http://yewon-lee.tistory.com:8080 

 

 

 

 

URL Format을 보면, 

 

scheme:[//[user:password@]host[:port]][/]path[?query][#fragment]

 

이렇게 되어있다. 여기서 host는 주소(IP) 가 있고 그 뒤에 port 번호를 입력하면 된다.

 

 

 

 

 

 

(참고 https://opentutorials.org/course/3265/200356)

 

 

 

 

반응형