CS/Network

Electronic Mail

WakaraNai 2021. 10. 15. 22:36
728x90
반응형

Electronic mail 

주요 요소

  • user agent : 메일을 작성
  • mail server :
    • mailbox : 받은 메일함
    • message queue : 보낸 메일함
    • SMTP : simple mail transfer protocol
      • mail server 간 메시지를 주고받는 데 필요한 프로토콜
      • 이 때의 client와 server는 모두 mail server. 대신
        • client == sending mail server
        • server == receiving mail server

 

 

SMTP

TCP를 이용

  • 하나의 TCP connection을 유지하며 내용 전송 (persistent network)

포트번호 25

직접 전송 : sending server to receiving server

  • SMTP의 서버와 클라이언트는 모두 메일 서버

3단계의 전송 과정

  • handshaking (greeting)
  • transfer of messages
  • closure

명령/응답 상호작용 - 무조건 ASCII 7 bit

  • commands : ASCII text
  • response : status code and phrase

 

예) 앨리스가 밥에게 메일 보내기

  • 앨리스가 메시지 작성
  • 엘리스의 user agent는 앨리스의 mail server에 그 내용을 저장    (message queue에 메시지를 저장)
  • 엘리스의 mail server는 그 내용을 밥의 mail server로 전송       (SMTP로 TCP 연결을 열고 보내고 닫음)
  • 밥의 mail server는 그 메일을 mailbox에 저장
  • 밥의 user agent는 그 내용을 읽음

 

  • 첫 줄은 server 측 mail server의 이름
  • 두 번째 줄은 client 측 mail server의 이름
  • server의 250번 응답으로 greeting 완료
  • RCPT TO: 수신자가 누구인지 밝힘
  • DATA 명령어에 server가 응답하고 난 뒤에 진짜 내용을 전송
    • 이 때 . 으로 메시지의 끝을 알려달라고 server가 응답 때 이야기함
    • . 로 메시지의 끝을 표시
  • client가 QUIT 명령어에 server가 close connection 함

 

 

HTTP vs SMTP

차이점

  • HTTP = pull (server로부터 가져옴),
  • SMTP = push (server로 보냄)
  • HTTP는 각 객체를 분리된 메시지에 넣어 보내지만
  • SMTP는 하나의 메시지에 넣어서 보냄
    • HTTP는 클라이언트가 서버로부터 content를 가져오는 pull protocol인데 반해 SMTP는 클라이언트가 서버에 content를 보내는 push protocol이다

공통점

  • 아스키 command/response,
  • status code를 이용

 

Mail Access Protocol

 

  • 이메일을 보내는 사용자의 user agent와 mail server 간에도 SMTP 가 사용된다.
  • mail access protocol : server로부터 회수할 때 사용
    • POP : 메일 박스 내 메시지를 사용자 호스트가 다운받아서 읽음
    • IMAP : 서버에 메시지를 남긴 채로 읽게 함. 메일 정리 기능 포함
    • HTTP : user agent로 web page를 사용할 때

 

 

 

POP3 protocol

authorization phase

  • client command
    • user : username 정의
    • pass : password
  • server response
    • +OK
    • -ERR

 

transaction phase

  • list : list message numbers
    • 현재 메일 박스 내 메일 확인
    • server가 그 끝을 . 으로 알려줌
  • retr : retrieve message by number
  • dele : delete
  • quit



POP3 동작 방식 2 종류

  • download and delete
    • 읽은 메일은 다른 곳에서 읽을 수 없음
  • download and keep
    • 복제본이 있어 여러 곳에서 읽을 수 있지만

stateless로 동작하기에 지난 번에 읽은 메시지에 대한 기록이 남지 않음

 

 

IMAP

  • 서버 한 곳에 모든 메시지를 보관
  • 사용자가 폴더로 메일을  조직화할 수 있도록 지원
  • 폴더 이름, 메시지 ID은 세션이 종료되어도 그 상태가 유지됨
  • 이메일을 받는 측의 mail server와 user agent 간에 사용되는 프로토콜 가운데 여러 session에 걸쳐 state를 유지해 나갈수 있는 프로토콜

 

 

+) stateless

HTTP, DNS, POP3

+) stateful

IMAP, SMTP

728x90
반응형

'CS > Network' 카테고리의 다른 글

P2P  (0) 2021.10.15
DNS  (0) 2021.10.15
Caching  (0) 2021.10.15
Web and HTTP ( header & cookie )  (0) 2021.10.15
Application layer  (0) 2021.10.15