본문 바로가기

CS/컴퓨터 네트워크

9. SMTP, POP3, IMAP

* 이메일

- 이메일에서 주요 컴포넌트 세가지 : user agents, mail servers, SMTP

- user agent : mail reader 라고도 함, 메일 서버로부터 메일을 가져와서 읽고, 메일서버에 메일을 보내는 역할

- mail server : 메일을 주고받는 일을 담당하는 서버

- smtp 

 

- user agent에서 메일을 작성하고 메일 서버에 보내 놓으면 smtp 끼리 주고받고

   다른 user agent가 메일이 온 것을 확인하고 받아서 읽음

 

* 메일 서버

- 메일 박스

- 도착한 메세지, 보내야하는 메세지가 큐에 있음

- 큐에 있는 것들이 하나씩 나가는데 이때 smtp 사용

- 이 메일 서버들이 메일을 주고 받는 거고 smtp라는 집배원을 통해 다른 우편함(메일서버)로 이동

- 클라이언트는 메일서버에 메일을 보내고 서버는 다른 서버에서 오는 메일을 받는 역할을 함

 

*SMTP

- RFC 2821번

- 어플리케이션 레벨 프로토콜

- 그 아레에 TCP가 포트 25번을 사용

- direct transfer : 받는 사람이 사용하는 메일함까지 보냄

- http에서는 persistent : 한번 열어놓고 데이터를 계속 보냄, 커넥션 한번 열어놓고 다양한 object 주고받을 수 있음

- 7비트 아스키코드 사용

- crlf를 쓰면 더이상 없다는 뜻으로 메일을 다 썼다는 것 -> crlf를 받으면 데이터 보낼 준비를 함

- 서버에 smtp를 사용해서 메세지를 올려놓으면 메세지가 user agents에 가서 푸쉬 알람이 뜸

 

* smtp vs. http

- http는 pulling 방식 : url을 클릭하면 해당 주소에 가서 데이터를 당겨오는 방식

- smtp는 pushing 방식 : smtp로 메세지를 올려놓으면 그 메세지가 user agent에게 가서 푸쉬 알람

- 둘다 아스키 코드를 사용하고 http는 non-persistent가 기본, 필요할 때 여러개 커넥션을 열수 있음

- smtp는 하나의 커넥션을 열고 그 안에서 multiple object가 하나의 메세지로 보내질 수 있음

 

*실제 메일을 보내는 프로토콜

- smtp : 배달, 저장하는 역할

- pop : 1939번을 사용하고 아이디 패스워드 다운로드 역할을 함, stateless

- imap : 1730번을 사용하고 폴더를 옮기는 등 메일 전체 관리 역할을 함, stateful, 한 공간에 큐로 저장함

 

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

11. P2P  (0) 2020.04.07
10. DNS  (0) 2020.04.07
8. FTP  (0) 2020.04.07
7. Web, HTTP  (0) 2020.04.07
6. 어플리케이션 레이어 : 클라이언트-서버, P2P  (0) 2020.04.07