PORT란?

하나의 IP에서 두 가지 이상의 애플리케이션을 동시 실행한다고 생각해보자
지속적으로 서버에서 패킷 메시지를 보내며 통신해야하는
예를 들면 음성대화 애플리케이션을 이용해 통화하면서 온라인 게임을 하는 상황이라면?
두 가지의 애플리케이션이 동시에 패킷을 주고 받아야하는데 IP만으로는 해결할 수 없다.

IP가 서버에 요청을 동시에 하면 어떤 순서로 서버에 처리할 것인가! 분명 순서가 꼬이고 말것이다.

즉 우리는 IP에서 한단계 더 나아간 Port라는 것을 사용한다.
이전에 IP를 주소에 비유했는데 Port는 언어 그대로 직역하면 항구이다.
IP가 집주소라면 Port는 정확하게 집을 구분지어주는 상세주소, xxx동 xxx호 라고 보면 좋을 것 같다.

흔히 우리가 알고있는 Tomcat Server는 8080번 Port를 사용한다.
Oracle도 8080번 Port를 사용하기 때문에 동시에 실행하면 충돌이 나면서
늦게 실행한 것은 실행되지 않는다.
(Tomcat Server의 Port번호를 흔히 8090으로 바꾸면서 해결하기는 하지만)

그러나 같은 DB여도 MariaDB는 3306 Port를 사용하기 때문에 우리는 충돌없이
Tomcat Server와 사용할 수 있다.

그렇기 때문에 IP주소 뒤에 Port번호까지 같이 패킷에 담아서 정보를 보내면
서버는 해당 IP+Port 정보에 메시지를 패킷에 담아 응답해주는 것이다.

요약하면 같은 IP내에서 프로세스를 구분할 수 있게 하는 것이 포트이다!

DNS(Domain Name System)

우리는 IP로 통신을 하는데 IP는 생각보다 어렵다.
Naver에 접속을 하기 위해 282.103.9.1을 주소창에 입력해야한다고 생각해보자..
물론 한 두개는 외울 수 있겠지만 우리가 접속하는 사이트마다 이걸 외워야한다면 여간 번거로운게 아니다.

또한 IP는 계속해서 바뀐다. 바뀌면 다시 외워야하는데 이전 주소로 입력을 하면 당연히 들어갈 수 없다.

위의 단점을 개선시키고자 우린 DNS를 사용하는데 도메인을 구매해서 IP를 도메인주소로 바꿔준다.
즉, 위에서 예를 든 282.103.9.1이라면 이건 naver.com이라는 도메인을 구매해서 등록하는거다.

이건 DNS서버에서 해주는데 전화번호부라고 생각하면 편리하다!
그래서 만일 네이버에 접속해야하는 IP가 바뀌더라도 바뀐 IP를 등록해주는 것이 DNS이다.

인터넷 네트워크 정리

인터넷 통신

  • 컴퓨터와 컴퓨터가 데이터를 주고 받는 것을 의미한다.
  • 다양한 프로토콜의 집합으로 이루어져 있다.
  • IP(기기를 식별), TCP(신뢰성 있는 데이터 전송), UDP(신속한 데이터전송)프로토콜이 있다.
  • PORT(인터넷 프로토콜에서 사용되는 주소 체계 중 하나), DNS(도메인 등록 서버)로 IP프로토콜의 단점을 극복하여 통신할 수 있다.

IP

  • 인터넷에서 컴퓨터가 서로 통신할 때 사용되는 프로토콜
  • 패킷에 포함되는 정보 : 출발지 IP주소, 목적지 IP주소
  • 패킷의 전송 순서나 손실 여부에 대한 보장은 제공하지 않는다.

TCP, UDP

  • TCP는 제어 순서, 패킷의 순서, PORT정보 등을 담는다.
  • 3way handshake라는 과정을 통해 성립되며 가장 많이 사용하고 있는 프로토콜 중 하나이다.
  • 패킷이 중간에 손실된다면 재전송한다. 패킷의 전송 순서 또한 보장한다.
  • TCP는 데이터의 신뢰성을 보장하는 프로토콜이라고 평가받는다.
  • UDP는 하얀 백지라고 비유되며 IP프로토콜 패킷메시지에 PORT정보만 추가된다.
  • UDP는 비연결형 프로토콜로 빠른 전송을 목적으로 한다.
  • TCP는 개발자가 제어할 수 없으나 UDP는 제어할 수 있다.
  • 성능 개선을 UDP프로토콜을 이용하는 일이 많아져서 최근 각광받고 있는 프로토콜이다.
  • TCP는 웹 애플리케이션, 파일 전송 등에 사용되고 UDP는 게임, 영상스트리밍, DNS에 사용된다.

PORT

  • 직역하면 항구라는 뜻으로 IP가 주소라면 PORT는 상세주소로 비유할 수 있다.
  • IP프로토콜만으로는 여러가지의 애플리케이션을 동시에 실행하여 메시지를 주고 받을 수 없다는 단점을 극복하기 위해 PORT가 등장하였다.
  • 같은 PORT번호에 프로그램을 실행시키면 늦게 실행시킨것은 실행할 수 없다.

DNS

  • Domain Name System의 약자로 IP가 어렵고 계속해서 변경된다는 단점을 극복하기 위해 등장하였다.
  • 도메인을 구매하여 등록하면 IP가 변경되어도 지속해서 DNS서버에서 변경해주고 사용할 수 있게 해주는 역할을한다.
  • 비유하면 전화번호부와 같은 역할을 한다고 보면 된다!

다음은 URI와 웹브라우저 요청 흐름에 대해 정리해보려한다!

출처 : 모든 개발자를 위한 HTTP 웹 기본 지식(김영한 강사님 인프런 강의)

profile
비전공자 개발초보입니다!

0개의 댓글