-> 블로그 이전

[Network] 애플리케이션 계층 : SMTP - POP3/IMAP

2022. 2. 11. 18:27Major`/컴퓨터 네트워크

전자메일 (E-Mail)의 주요 요소

1. 사용자 에어전트 (User Agent)

2. 메일 서버 (Mail Server)

3. SMTP (Simple Mail Transfer Protocol)

 

(1) 사용자 에이전트 (User Agent)

- 메일 메시지를 읽고/쓰고/보내주는 프로그램

  • Gmail / Outlook / Thunderbird / ....

 

(2) 메일 서버 (Mail Server)

- 메일 박스, 메시지 큐로 구성된다

 

▶ 메일 박스

- user가 받는 메시지를 저장/관리한다

  • user마다 메일박스가 구분되어 존재한다
사용자 User 1 User 2 User 3 User 4
메일 박스 Box 1 Box 2 Box 3 Box 4

 

▶ 메시지 큐

- user가 보내는 메시지가 저장된다

  • user마다 구분없이 전체 메시지가 하나의 큐에 저장된다
메시지 큐
Queue User 1의 메시지 ~~~~~
User 2의 메시지 ~~~~~
User 3의 메시지 ~~~~~
User 4의 메시지 ~~~~~

 


 

SMTP (Simple Mail Transfer Protocol)

- TCP연결을 통해서 통신 (포트 번호 : 25) 

  1. 핸드 셰이킹을 통한 통신 연결로 확보 (TCP 연결)
  2. 메시지 전송
  3. TCP연결 종료

- 지속 연결을 통해서 TCP연결이 확립되면 여러 개의 메시지를 전송 가능

 

User(Client) → 서버(Server) / 서버(Client) → 서버(Server)간에 메시지를 전송할 때 SMTP를 사용해서 전송

  • ClientCommand(ASCII text)를 전송하고, ServerResponse(상태 코드/설명)을 전송한다

 

HTTP vs SMTP

▶ HTTP

- pull Protocol

  • 여러 개의 객체들이 모여서 하나의 웹을 구현하고, 각 객체는 Response Message에 캡슐화되어서 존재한다

▶ SMTP

- push Protocol

  • 모든 메시지의 객체를 한 메시지로 만들어서 전송한다

메일 Access Protocol

- 서버(Client) → User(Server)로 메시지를 추출해준다

- POP3 / IMAP / HTTP가 존재한다

 

POP3

Server에 존재하는 메시지를 일단 Client가 download한다

  • 이러면 해당 메시지를 Server에서 삭제된다

- 포트 번호 : 110

 

※ "download - delete"

Client가 Server로부터 메시지를 download하고 서버에서 해당 메시지를 delete한다

 

ex) 오전 9시에 회사에서 메일 A, B를 읽었다

  • 오후 8시에 집에가서 메일을 열어보니 A, B가 존재하지 않는다
    • 따라서, POP3는 Client가 바뀌면 해당 메일을 다시 읽지 못한다

 

※ "download - keep"

Client가 Server로부터 메시지를 download하고, 서버는 해당 메시지를 계속 유지한다

 

>> POP3는 메시지에 대한 Action이 전부 local Computer에서 일어난다 / 서버에는 메시지에 대한 어떠한 변경도 일어나지 않는다

>> POP3는 세션 간 상태를 유지하지 않는다

 

IMAP

- 모든 메시지가 서버에 저장된다

- user가 특정 폴더를 구성하고 해당 폴더에 메시지를 구분해서 저장할 수 있다

- 포트 번호 : 143

 

>> IMAP은 메시지에 대한 모든 Action이 Server에서 일어난다

>> IMAP은 세션 간 상태를 유지한다