Computer Network

[Lecture 4-1] Application Layer 마무리 : Mail Server

Sara.H 2020. 6. 27. 21:49

메일은 크게 세개의 컴포넌트가 작동하여 서비스 된다 

* User Agents : Outlook 같은 메일 어플리케이션 

* Mail Servers : Gmail 서버, Naver Mail 서버 등 

* Simple Mail Transfer Protocol, SMTP 프로토콜

유저는 이메일을 보내거나 받는 주체로, 메일 서버를 거쳐서 메일을 받게 된다. 이 때 사용되는 프로토콜은 SMTP 프로토콜이다. HTTP를 사용하지 않고 별도의 프로토콜을 갖고 있는 이유는 메일은 받는 쪽이 항상 온라인이 아닌 경우가 많기 때문이다. 따라서 보내는 사람과 받는 사람 중간에 메일 서버들이 메일을 갖고 있다가, 사용자에게 보여주는 방식을 취해야 한다. 요컨대 HTTP는 메시지를 클라이언트 측에서 당겨오는 Pull 방식을 취하고, SMTP는 메시지를 Push 하는 방식을 취한다. 

 

SMTP 프로토콜 간략히 알아보기 

SMTP프로토콜은 TCP를 사용하여 이메일 메시지를 클라이언트에서 서버로 안전하게 전달한다. 포트번호는 25를 사용한다. Handshaking 을 하고, 메시지를 전달하고, 연결을 끊는 세 단계로 메일 서버간의 통신이 이루어진다. 

 

시나리오 : 앨리스는 밥에게 메시지를 보낸다. 

1) 앨리스는 UA(User Agent)를 사용해 bob@someschool.edu 로 메일을 보낸다. 

2) 앨리스의 UA 는 메일 서버로 메일을 보내고, 메시지는 메시지 큐에 들어간다. 

3) 클라이언트측의 SMTP는 밥의 메일 서버와 TCP 커넥션을 오픈한다. 

4) SMTP 클라이언트는 앨리스의 메시지를 TCP커넥션 위에서 전달한다. 

5) 밥의 메일 서버는 밥의 메일박스에 메시지를 넣는다. 

6) 밥은 그의 UA를 열어서 메시지를 확인한다. 

 

***요즘에는 SMTP 프로토콜이 크게 중요하지 않은데, 많은 경우 브라우저에 접속해서 HTTP 프로토콜로 메시지함을 확인하기 때문이다. 아웃룩 같은 메일 프로그램 사용하는 사람 별로 없음.