본문 바로가기

개발지/Today I learn

[0919] CS 지식 - 네트워크 (네트워크 기술3)

#PORT

- 포트번호

  ▪ 포트번호TCP와 UDP에서 모두 사용된다.

  ▪ 포트번호접속 기기에서 특정 애플리케이션을 특정할 때 사용되는 번호이다.

  ▪ 포트번호를 통해 클라이언트가 어느 서버로 보내는 요청인지 구분할 수 있다.

  ▪ 포트번호는 0 ~ 65535번을 사용할 수 있는데, 특정 번호는 통신 규약에 따라 용도가 정해져 있다.

  ▪ 자주 사용되는 포트 번호는 다음과 같다.

포트 이름 포트 범위 용도
Well-known port 0 ~ 1023 시스템 사용 번호 (슈퍼유저 권한 필요)
사용 권장 X
Registered port 1024 ~ 49151 특정 프로토콜이나 어플리케이션에서 사용하는 번호
(슈퍼유저 권한 필요 X)
Dynamic port 49152 ~ 65535 어플리케이션에서 사용 혹은 임시 사용 번호
포트 번호 프로토콜 이름 연결 프로토콜 용도
80 HTTP TCP 웹서버 접속
443 HTTPS TCP 웹서버 접속(SSL)
110 POP3 TCP 메일 읽기
25 SMTP TCP 메일서버간 메일 전송
22 SSH TCP 컴퓨터 원격 로그인
53 DNS UDP DNS 질의
123 NTP TCP 시간 동기화

 

# URL, DNS

- URL

   ▪ URL(Uniform Resource Locator)은 웹에 있는 자원을 찾기 위해서 브라우저에서 사용되는 메커니즘이다.

   ▪ 브라우저의 주소창에 입력한 URL은 서버 내의 환경에 존재하는 파일의 위치를 나타낸다.

   ▪ URLscheme, hosts, url-path, queery 로 구분된다. 각 명칭과 역할은 다음과 같다.

부분 명칭 설명
file:// , http:// , https:// scheme 통신 프로토콜
127.0.0.1 , www.google.com hosts 웹 페이지. 이미지, 동영상 등
파일이 위치한 웹 서버, 도메인 또는 IP
:80 , :443 , :3000 port 웹 서버에 접속하기 위한 통로
/search, /Users/username/Desktop url-path 웹 서버의 루트 디렉토리로부터 웹 페이지, 이미지, 동영상 등
파일의 위치까지의 경로
q=java query 웹 서버에 전달하는 추가 질문

  ▪ 예를 들어 google에 java를 검색했을 때의 URL은 "https://www.google.com/search?q=Java"일 때 다음과 같이 나눠진다.

URL의 구분

 

- Domain name

  ▪ 도메인 이름이란 웹사이트의 IP주소 대신 사용하는 주소다.

   예를 들어 서울시청을 찾아갈 때, 도로명 주소는 IP주소라면 서울시청은 도메인 주소에 비유할 수 있다.

도메인 주소

- 도메인 종류

   도메인은 두 종류로 나뉜다.

  1. gTLD - generic Top Level Domain
  2. ccTLD - country code Top Level Domain

   gTLD는 전 세계에서 등록 가능한 주소로 .com, .net, .org, .edu, .gov, .int, .mil 등이 있다.

   ccTLD는 각국 네트워크 정보센터에서 위임받아 관리되며 한국의 경우 .kr를 사용한다.

 

- DNS

   DNS(Domain Name System)는 호스트의 도메인 이름을 IP주소로 변환하거나 반대의 경우를 수행할 때

   사용되는 데이터베이스 시스템이다. (도메인을 컴퓨터가 이해할 수 있는 IP주소로 변환)

   예를 들어 브라우저에서 naver.com을 입력 시 DNS 해당 도메인 이름에 대응하는 IP주소를 찾아 요청을 전달하여

    클라이언트와 서버가 통신할 수 있게 해준다.

   DNS의 작동원리는 다음과 같다.

  1. URL에 주소를 입력할 시 DNS Lookup으로 불리는 과정이 시작된다.
  2. 브라우저가 리졸버에게 IP주소를 요청한다. 리졸버는 기존에 찾아본 도메인 정보가 담긴 캐시 파일에
    해당 도메인 정보가 있다면 즉시 IP주소를 리턴하고, 없을 시 다음 순서를 진행한다.
    (리졸버는 요청받은 도메인의 IP주소를 찾기 위해 여러 네임서버에 반복적 질의를 하는 이름 서버이다.)
  3. 리졸버는 IP주소를 얻기 위해 네임 서버들에게 재귀적 쿼리를 진행한다.
    루트, 탑 레벨, 권한 있는 도메인 서버에 차례대로 쿼리를 진행하며 IP주소를 알아낸다.
  4. 리졸버는 전달받은 도메인의 IP주소를 기록하고 브라우저에게 전달한다.