본문 바로가기
CS공부

[네트워크] 2-3 Application Layer (응용계층) - Mail access protocols, DNS

by 디토20 2022. 4. 16.
반응형

 

 

 

[네트워크] 2-3 Application Layer - Mail access protocols, DNS

 

 

https://be-developer.tistory.com/36?category=1088570 

 

[네트워크] 2-2 Application Layer (응용계층) - 쿠키, 웹캐시, SMTP

[네트워크] 2-2 Application Layer (응용계층) - 쿠키, 웹캐시, SMTP 1. 쿠키(Cookie) 쿠키의 사용 목적 http는 stateless 프로토콜이기 때문에 클라이언트에 대한 정보를 유지하기 위해 사용 쿠키의 사용 방법 1.

be-developer.tistory.com

 

 

 

 

1.Mail access protocols

발송 유저 에이전트 -> 발송 서버 -> 수신서버 까지는 mail이 push 되어야하기 때문에 SMTP protocol이 사용되고, 수신 유저 에이전트는 수신 서버에서 메일을 pull 해야하기때문에 SMTP가 아닌 mail access protocol이 사용된다.

 

 

1.1 mail access protocol 종류

1. HTTP

  • 리시버의 메일 서버가 웹메일 서버인 경우
  • ex) gmail, Hotmail, Yahoo! Mail, etc.

 

 

2. POP(Post Office Protocol)

  • 제일 먼저 만들어졌고, 가장 단순한 mail access protocol
  • pop은 두개의 phase로 구성 : authorization phase, transaction phase
  • 접근 요청이 오면 authorization phase가 우선 진행 된 후, 완료가 되면 transaction phase로 진행된다.
  • authorization phase : client commands(user, pass), server responses(+OK, -ERR)로 구성
  • transaction phase : client(list, retr, dele, quit)로 구성

 

예시

1. 클라이언트가 메일 서버에 연결 요청을 하면 서버가 준비됐다는 +OK POP3 server ready라는 response 전달

2. 클라이언트가 command(user)를 보내면 서버는 response(+OK or -ERR)를 보냄

3. 클라이언트가 command(pass)를 보내면 서버는 response(+OK or -ERR)를 보냄. +OK를 보냈다면 로그인 성공

4. 로그인 후, 클라이언트는 list 명령어를 전달

-> 서버는 메시지 번호와 메시지의 사이즈를 보냄

1번 498바이트

2번 912바이트

.(메세지 표시 끝)

5. 클라이언트가 retr 1 이라는 커맨드를 보냄 -> 서버는 1번 메세지의 내용을 response

6. 클라이언트가 dele 1 retr 2이라는 커맨드를 보냄 -> 서버는 1번 메세지를 지우고 2번 내용을 response

7.클라이언트가 retr 2이라는 커맨드를 보냄 -> 서버는 2번 메세지를 지움

8. 클라이언트는 모든 메세지를 다 받은 후 연결을 종료하기 위해 quit 를 보냄

-> 서버는 +OK를 보낸 후 연결 종료

 

단점
  • 회사에서 메일을 읽고, 집에서 다시 읽으려고 하면 회사에서 읽은 메세지는 이미 지워졌기 때문에 받아올 수 없음.

 

 

 

3. IMAP

  • POP의 단점을 보완한 복잡한 프로토콜
  • 모든 메세지를 서버에 저장함
  • 유저가 서버의 메일 박스에 organize 하면, 행위들이 세션에 저장됨.

 

 

 

2. DNS : domain name system

특징
  • DNS Application
  • 일반적으로 우리는 google.com과 같은 Host name(Domain name)을 통해 접근을 함
  • 그러나 실제로 서버는 IP 주소를 사용한다.
  • DNS는 이러한 Host name을 IP주소로 매핑해주는 작업을 한다.
  • host aliasing : 서버의 full Host name은 길고 어려운 경우가 있는데, 이때 사용자 편의를 위해 호스트 별칭을 제공하고 서버에 호스트 별칭을 실제 호스트 네임으로 변경해준다.
  • load distribution : 동일한 작업을 수행하는 여러대의 서버가 있을때, 외부에 알려진 Host name에 요청이 많이 들어올 경우 DNS가 여러대의 서버에 요청을 분산시킨다.

 

 

2.1 DNS의 계층 구조

 

DNS는 계층적 구조로, Root DNS Server - top-level domain(TLD) Server - authoritative DNS Server3계층으로 이루어져있다.

 

 

Root DNS Server
  • Root DNS Server는 top-level domain과 top-level domain(TLD) server 매핑 정보를 갖고있다.

 

 

top-level domain(TLD) server
  • com, org, net, kr, jp 등의 탑레벨 도메인
  • 각 도메인을 관리하는 기관이 다르다.
  • com : Network Solutions maintains servers에서 관리
  • kr : 한국인터넷정보센터
  • 각 기관 domain과 authoritative DNS server가 매핑되어 있다

 

 

authoritative DNS servers
  • host to ip 매핑이 실제로 이루어지는 서버

 

 

2.2 Local DNS name Server

  • DNS 3단계에 속하지 않는 DNS 서버
  • default name server라고도 하고 proxy server라고도 함
  • residential ISP, 회사, 기관등에서 갖고 있다.
  • 웹캐시처럼, 일차적인 URL 요청이 오면 Local DNS name server가 전부 받아서 해당 URL의 IP를 갖고 있으면 response를 해주고, 없으면 root DNS server로 넘긴다. 

 

 

2.3 Local DNS name Server가 IP를 받아오는 법

iterative query

1. request URI가 local DNS server로 들어오면 해당 host name의 ip가 있는지 확인

2. 없을 경우, root DNS server에 요청을 하면, root DNS server는 해당 도메인이 있는 TLD Server 주소를 알려줌

3. local DNS server는 받은 TLD Server에 host name의 ip를 요청

4. TLD Server는 해당 도메인이 있는 authoritative DNS server의 주소를 알려줌

5. local DNS server는 받은 authoritative DNS server host name의 ip를 요청

6. authoritative DNS server는  host name의 ip를 local DNS server에 알려줌

7. local DNS server는 해당 ip를 저장 후 요청자에게 반환

 

 

 

recursive query

 

1. request URI가 local DNS server로 들어오면 해당 host name의 ip가 있는지 확인

2. 없을 경우, root DNS server에 요청을 하면, root DNS server는 TLD Server에게 요청

3. TLD Serverauthoritative DNS server에게 host name의 ip를 요청

4. authoritative DNS server는 매핑된 ip 정보를 TLD Server에게 반환

5. TLD Server는 받은 정보를 root DNS server에게 반환

6. root DNS server  매핑 정보를 local DNS server에 알려줌

7. local DNS server는 해당 ip를 저장 후 요청자에게 반환

 

 

 

 

 

728x90
반응형

댓글