CS/네트워크

e-mail protocol: SMTP, POP3, IMAP이란?

hyunah 2022. 1. 11. 11:22

우선 프로토콜이란, 어떤 행위를 할 때 필요한 규칙과 형식 등을 정해놓은 것이다. 아주 간단한 예를 들면, 친구와 쪽지를 보낼 때 맨 처음에는 본인 이름을 쓰고 한 줄을 띄운 후에 하고 싶은 말을 적기로 하는 것도 일종의 프로토콜이라고 할 수 있다.

 

 

이메일 프로토콜SMTP와 POP3, IMAP 은 이메일 메시지를 발송하고 수신할 때 사용하는 형식과 송수신 규칙을 정해놓은 것이다.

 

 

 

 

이때 우리는 이메일 메시지를 작성하여 메일 서버에게 전송하는 행위를 하는 일개 사용자를 Mail User Agent(MUA)라고 칭하고, outgoing, incoming 메시지를 저장하고 이메일을 전달하는 서버를 Mail server 혹은 Mail Transfer Agent(MTA)라고 부른다.

 

메일을 발신하려는 MUA는 수신자의 mail server에 직접 메일을 보내는 게 아니라, 자신의 mail server에 메일 메시지를 보낸다. 직접 발신하지 않고 mail server에게 전달하는 이유는, 수신자에게 메일 발송이 실패하였을 때 계속해서 try하는 작업을 직접 하는 것이 번거롭기에 이를 서버에게 전임하기 위함이다.

 

 

이메일 프로토콜은 발송 프로토콜(push protocol)과 수신 프로토콜(pull protocol, access protocol)로 이루어지며 오늘은 푸시 프로토콜인 SMTP와 풀 프로토콜인 POP3, IMAP에 대해 설명해보겠다.

 

 

 

 

푸시 프로토콜 : SMTP(Simple Mail Transfer Protocol) 

4계층 프로토콜로 TCP를 이용하여 reliable한 이메일 메시지 전달을 하는 프로토콜로, 25번 port를 기본으로 이용하며 secure한 port로는 587번을 이용한다. SMTP는 MUA가 server에게 메일을 보내는 경우메일 서버끼리 이메일을 주고 받는 경우에 사용된다. 서버끼리 통신하는 경우에는 중간에 다른 메일 서버를 거치지 않고 sending server에서 receiving server로 email message가 직접 transfer된다.

 

 

SMTP는 그림, 텍스트 등의 데이터들이 모두 하나의 7-bit ASCII 코드로 encode되어서 전송된다. 

 

 

 

 

 

TCP를 이용하기 때문에 SMTP의 transfer 과정은 다음과 같다.

 

  1. 3 handshaking (greeting)
  2. SMTP message transfer
  3. 연결 끊기

 

아래의 그림은 MUA, client가 server에 메일을 보내는 예시이다. TCP SYN, ACK을 이용해 Three handshaking으로 persistent connection을 맺고 SMTP message transfer 후에는 connection을 끊는다. persistent connection을 이용하기 때문에 한 번 connection을 열고 여러 개의 메일을 전송할 수 있다.

 

 

 

 

 

 

 

풀 프로토콜 : POP3와 IMAP

 

POP와 IMAP 모두 데이터를 받아오려는 쪽에서 이용하는 수신 프로토콜이다. 두 프로토콜의 차이점은 아래의 그림으로 요약될 수 있다. IMAP은 서버와 클라이언트 간의 양방향 통신이라면, POP는 서버에서 클라이언트로의 일방향 통신이다.

 

 

POP3(Post Office Protocol)란?

사용자의 기기로 메시지를 다운로드하도록 하며, 다운로드 한 이후에는 서버에서 delete하는 stateless한 프로토콜이다. 이런 download-and-delete모드 외에 download-and-keep을 하도록 설정할 수도 있으나, 로컬에서 한 수정, 읽음 등의 동작 정보 데이터는 유지되지 않고 다른 사용자가 보낸 메시지의 복사본을 서버에 저장해두는 식이다. 

 

 

장점

 

데이터를 자동 삭제하도록 설정할 수 있기에 비교적으로 용량 관리가 쉽고

쉬운 프로토콜로 이루어져 구현하기 쉽다.

 

 

단점

 

사용자가 pc에서 데이터를 직접 관리해야 한다.

주기적으로 백업하지 않으면 데이터 손실이 생길 수 있다.

스마트폰과 pc 등 여러 기기로 POP를 이용할 경우 중복 저장이 되는 문제가 있을 수 있다.

 

 

 

 

 

IMAP(Internet Mail Access Protocol)

서버에 모든 메시지 데이터를 저장해두고 변경사항을 동기화하는 stateful한 프로토콜이다. 사용자가 메시지를 폴더로 구분하여 관리할 수 있으며, 여러 기기에서 접속하여도 항상 동일한 정보를 확인할 수 있다.

 

 

장점

 

메일함을 여러 개 만들어서 관리할 수 있고, 다운로드 관련 이슈를 처리할 필요가 없어 안정적이다.

어떤 디바이스에서 접속하든 동기화가 이루어져 편리하게 사용할 수 있다.

 

 

단점

 

서버에 계속 데이터가 쌓이기 때문에 메일 용량에 제한이 있는 계정인 경우 용량 관리가 별도로 필요하다. 용량이 꽉 차게 된다면 더 이상 메일을 수신할 수 없게 된다.

동기화로 인해 더 많은 트래픽을 이용하여 사용 요금이 비교적 비싸다.

 

 

 

 

 

최근에는 대부분 안정적이고 멀티 디바이스 사용이 용이한 IMAP을 사용하며, POP 사용은 계정 설정에서 별도로 선택할 수 있게 한다. 다음과 같이 말이다.

 

 

'CS > 네트워크' 카테고리의 다른 글

ARP(Address Resolution Protocol)와 MAC, IP address  (0) 2022.03.29