네트워크 하향식 접근

[컴퓨터 네트워킹 하향식 접근] 2.3 인터넷 전자메일

김치진주 2023. 3. 15. 15:39

 

인터넷 전자메일은 사용자 에이전트, 메일 서버, SMTP(Simple Mail Transfer Protocol) 3요소로 이루어진다.

송신자가 수신자에게 메일을 보낼 때 송신자 -> 송신자 메일서버 -> 수신자 메일서버 순서대로 거쳐서 전송한다.

전송할 때 SMTP를 사용한다.

 

SMTP

여러 가지 장점이 있지만, 탄생한 지 오래된 기술이라 단점이 조금 있다. 모든 메일의 헤더와 메시지는 7bit ascii로만 보낼 수 있다.

다음은 SMTP의 동작 시나리오다. 

1. 송신자는 메일 수신자 주소(name@mailaddress)를 제공하고, 보낼 메시지를 작성하여 송신자의 메일서버에 전송한다. 이 메시지는 메일서버(SMTP 클라이언트)의 메시지 큐에 놓인다.

2. 송신자 메일서버는 메시지 큐에 있는 메시지를 보고, 수신자의 메일 서버에 TCP 연결한다

3. 초기 SMTP 핸드셰이킹 이후 송신자의 메일서버는 TCP로 메시지를 보낸다.

4. 수신자 메일서버에서 메시지를 수신하고, 수신자 메일 서버는 수신자의 메일 박스에 메시지를 전달한다.

5. 수신자는 그 메시지를 읽기 위해 사용자 에이전트를 시동한다.

 

 

HTTP와의 비교

1. HTTP는 원칙적으로 pull 프로토콜이다. 누군가가 서버에 정보를 올리고, 필요한 사람이 서버에서 내려받는다.
반면 SMTP는 push 프로토콜이다. 송신 서버가 수신 서버로 보낸다.

2. SMTP는 메시지가 7bit ascii 포맷일 것을 요구한다. HTTP 데이터는 제한이 없다.

3. HTTP는 응답 메시지에 각 객체를 캡슐화한다. SMTP는 모든 메시지 객체를 한 메시지로 만든다.

 

메일 접속 프로토콜

수신자는 메일 박스에서 메일을 가져와야 되는데, 이것은 SMTP로 할 수 없다. SMTP는 push 프로토콜이기 때문에, 받는 동작(pull)을 할 수 없다.

그래서 POP3(Post Office Protocl-Version 3), IMAP(Internet Mail Access Protocol), HTTP 같은 다른 메일 접속 프로토콜을 사용해야 한다.