[Network] 애플리케이션 계층 : SMTP - POP3/IMAP
2022. 2. 11. 18:27ㆍMajor`/컴퓨터 네트워크
전자메일 (E-Mail)의 주요 요소
1. 사용자 에어전트 (User Agent)
2. 메일 서버 (Mail Server)
3. SMTP (Simple Mail Transfer Protocol)
(1) 사용자 에이전트 (User Agent)
- 메일 메시지를 읽고/쓰고/보내주는 프로그램
- Gmail / Outlook / Thunderbird / ....
(2) 메일 서버 (Mail Server)
- 메일 박스, 메시지 큐로 구성된다
▶ 메일 박스
- user가 받는 메시지를 저장/관리한다
- user마다 메일박스가 구분되어 존재한다
사용자 | User 1 | User 2 | User 3 | User 4 |
메일 박스 | Box 1 | Box 2 | Box 3 | Box 4 |
▶ 메시지 큐
- user가 보내는 메시지가 저장된다
- user마다 구분없이 전체 메시지가 하나의 큐에 저장된다
메시지 큐 | |
Queue | User 1의 메시지 ~~~~~ User 2의 메시지 ~~~~~ User 3의 메시지 ~~~~~ User 4의 메시지 ~~~~~ |
SMTP (Simple Mail Transfer Protocol)
- TCP연결을 통해서 통신 (포트 번호 : 25)
- 핸드 셰이킹을 통한 통신 연결로 확보 (TCP 연결)
- 메시지 전송
- TCP연결 종료
- 지속 연결을 통해서 TCP연결이 확립되면 여러 개의 메시지를 전송 가능
User(Client) → 서버(Server) / 서버(Client) → 서버(Server)간에 메시지를 전송할 때 SMTP를 사용해서 전송
- Client는 Command(ASCII text)를 전송하고, Server는 Response(상태 코드/설명)을 전송한다
HTTP vs SMTP
▶ HTTP
- pull Protocol
- 여러 개의 객체들이 모여서 하나의 웹을 구현하고, 각 객체는 Response Message에 캡슐화되어서 존재한다
▶ SMTP
- push Protocol
- 모든 메시지의 객체를 한 메시지로 만들어서 전송한다
메일 Access Protocol
- 서버(Client) → User(Server)로 메시지를 추출해준다
- POP3 / IMAP / HTTP가 존재한다
POP3
Server에 존재하는 메시지를 일단 Client가 download한다
- 이러면 해당 메시지를 Server에서 삭제된다
- 포트 번호 : 110
※ "download - delete"
Client가 Server로부터 메시지를 download하고 서버에서 해당 메시지를 delete한다
ex) 오전 9시에 회사에서 메일 A, B를 읽었다
- 오후 8시에 집에가서 메일을 열어보니 A, B가 존재하지 않는다
- 따라서, POP3는 Client가 바뀌면 해당 메일을 다시 읽지 못한다
※ "download - keep"
Client가 Server로부터 메시지를 download하고, 서버는 해당 메시지를 계속 유지한다
>> POP3는 메시지에 대한 Action이 전부 local Computer에서 일어난다 / 서버에는 메시지에 대한 어떠한 변경도 일어나지 않는다
>> POP3는 세션 간 상태를 유지하지 않는다
IMAP
- 모든 메시지가 서버에 저장된다
- user가 특정 폴더를 구성하고 해당 폴더에 메시지를 구분해서 저장할 수 있다
- 포트 번호 : 143
>> IMAP은 메시지에 대한 모든 Action이 Server에서 일어난다
>> IMAP은 세션 간 상태를 유지한다