[Network] E-mail, SMTP, IMAP

seb·2023년 4월 8일
0

네트워크

목록 보기
8/9
post-thumbnail
post-custom-banner

📚 Network

ㄴ 📒 Chap.2 Application Layer

ㄴ 📄 E-mail, SMTP, IMAP


📌 E-mail

E-mail은 크게 3가지로 구성되어 있다.

1. user agent

2. mail server

3. SMTP (simple mail transfer protocol)


📌 User Agent

  • a.k.a "mail reader"
  • User Agent를 통해 메일 메시지의 작성, 편집, 읽기가 이루어진다. ex) Outlook, iPhone mil client, Gmail
  • outgoing, incoming messages stored on server

📌 mail server

  • mail box : contains incoming messages for user / 사용자에게 들어오는 메일이 저장된다.

  • message queue : outgoing mail messages / 사용자로부터 전송되는 mail msg들은 message queue를 거쳐 전송된다.

📌 SMTP protocol

mail server 간의 protocol

client : mail을 보내는 server

server : mail을 받는 server


📌 SMTP RFC

SMTP는 신뢰성이 중요하기에 TCP를, port number는 25번을 사용한다

전송에는 세가지 과정이 있다

1. SMTP handshaking (greeting) : 식별, 설정 교환

2. SMTP transfer of messages : SMTP를 통한 msg 전송

3. SMTP closure : SMTP, TCP connection 종료

SMTP command/response (like HTTP)

  • commands : ASCII text
  • response : status code and phrase
    -> HTTP와 유사하다.

📌 Mail 전송 과정

1) Alice가 User Agent를 사용하여 message를 작성

2) Alice의 User Agent가 자신의 mail server에 message를 전송하고 message queue에 저장된다.

3) Bob에게 e-mail을 보내기 위해 Bob의 mail server와 TCP connection을 한다.

4) SMTP client는 Alice의 message를 TCP connection을 통해 전송한다.

5) Bob의 mail server가 message를 mail box에 저장한다.

6) Bob이 자신의 User Agent를 사용하여 message를 읽는다.


📌 Sample SMTP interaction

naver -> gmail로 보내는 메일 전송의 과정을 간략하게 풀어쓰면 다음과 같다.

s : 나는 gmail이야
c : 나는 naver야
s :
c : 보내려는 사람이 Alice야
s : OK. 보내려는 사람이 Alice구나
c : 받는 사람은 Bob이야.
s : server에 Bob이 있네. Recipient OK / Bob이 없다면 오류
c : DATA 전송 (msg)
s :
...
c : . -> 메일 전송 종료
s : 성공적으로 전송 완료
c : 종료
s : SMTP 연결 종료

Handshaking -> 필요한 정보를 주고 받고 -> msg 전달 -> 종료의 과정을 통해 SMTP interaction이 이루어진다.


📌 SMTP Commands & Responses

  • SMTP Commands

  • SMTP Responses


📌 SMTP와 HTTP의 비교

공통점 : ASCII command/response interaction, status codes

차이점 :

    • HTTP : client 'pull' (C <- S)
      SMTP : client 'push' (C -> S)
    • HTTP : object를 하나씩 보낸다
      SMTP : 다수의 object를 한번에 보낸다
      -> 만약 10개의 object가 있다면 HTTP는 10개의 msg, SMTP는 하나의 msg를 보낸다.

SMTP는 persistent connection을 사용하며, message를 7-bit ASCII로 요구한다. CRLF.CRLF를 통해 msg의 종료를 확인한다.


📌Mail access protocols

⭐ SMTP는 mail server 간의 protocol이다!!

Mail access protocol은 User Agent가 Mail server에서 msg를 가져오는 protocol이다.

receiver's e-mail server에서 Bob의 User Agent에 'push'가 아닌 User Agent에서 mail server에게 pull!

대표적인 amil access protocol

  • POP3
  • IMAP
  • HTTP
  1. POP3(Post Office Protocol version 3)

    • delete messages from the server after retrieving 따라서, synchronization across device가 불가능하다.

    • disconnects from the server after download

    • 서버 부담이 적다

  2. IMAP(Internet Mail Access Protocol)

    • mail을 저장하고 있기에 synchronization across device가 가능하다
    • 서버 부담이 크다
  3. HTTP

    • 웹을 기반으로 한다
    • ex) Gmail, Yahoo..

🔎 [참고 문헌]
Computer Networking A Top-Down Approach 7-th Edition / Kurose, Ross / Pearson


post-custom-banner

0개의 댓글