* 이메일
- 이메일에서 주요 컴포넌트 세가지 : 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 |