728x90
반응형
Electronic mail
주요 요소
- user agent : 메일을 작성
- mail server :
- mailbox : 받은 메일함
- message queue : 보낸 메일함
- SMTP : simple mail transfer protocol
- mail server 간 메시지를 주고받는 데 필요한 프로토콜
- 이 때의 client와 server는 모두 mail server. 대신
- client == sending mail server
- server == receiving mail server
SMTP
TCP를 이용
- 하나의 TCP connection을 유지하며 내용 전송 (persistent network)
포트번호 25
직접 전송 : sending server to receiving server
- SMTP의 서버와 클라이언트는 모두 메일 서버
3단계의 전송 과정
- handshaking (greeting)
- transfer of messages
- closure
명령/응답 상호작용 - 무조건 ASCII 7 bit
- commands : ASCII text
- response : status code and phrase
예) 앨리스가 밥에게 메일 보내기
- 앨리스가 메시지 작성
- 엘리스의 user agent는 앨리스의 mail server에 그 내용을 저장 (message queue에 메시지를 저장)
- 엘리스의 mail server는 그 내용을 밥의 mail server로 전송 (SMTP로 TCP 연결을 열고 보내고 닫음)
- 밥의 mail server는 그 메일을 mailbox에 저장
- 밥의 user agent는 그 내용을 읽음
- 첫 줄은 server 측 mail server의 이름
- 두 번째 줄은 client 측 mail server의 이름
- server의 250번 응답으로 greeting 완료
- RCPT TO: 수신자가 누구인지 밝힘
- DATA 명령어에 server가 응답하고 난 뒤에 진짜 내용을 전송
- 이 때 . 으로 메시지의 끝을 알려달라고 server가 응답 때 이야기함
- . 로 메시지의 끝을 표시
- client가 QUIT 명령어에 server가 close connection 함
HTTP vs SMTP
차이점
- HTTP = pull (server로부터 가져옴),
- SMTP = push (server로 보냄)
- HTTP는 각 객체를 분리된 메시지에 넣어 보내지만
- SMTP는 하나의 메시지에 넣어서 보냄
- HTTP는 클라이언트가 서버로부터 content를 가져오는 pull protocol인데 반해 SMTP는 클라이언트가 서버에 content를 보내는 push protocol이다
공통점
- 아스키 command/response,
- status code를 이용
Mail Access Protocol
- 이메일을 보내는 사용자의 user agent와 mail server 간에도 SMTP 가 사용된다.
- mail access protocol : server로부터 회수할 때 사용
- POP : 메일 박스 내 메시지를 사용자 호스트가 다운받아서 읽음
- IMAP : 서버에 메시지를 남긴 채로 읽게 함. 메일 정리 기능 포함
- HTTP : user agent로 web page를 사용할 때
POP3 protocol
authorization phase
- client command
- user : username 정의
- pass : password
- server response
- +OK
- -ERR
transaction phase
- list : list message numbers
- 현재 메일 박스 내 메일 확인
- server가 그 끝을 . 으로 알려줌
- retr : retrieve message by number
- dele : delete
- quit
POP3 동작 방식 2 종류
- download and delete
- 읽은 메일은 다른 곳에서 읽을 수 없음
- download and keep
- 복제본이 있어 여러 곳에서 읽을 수 있지만
stateless로 동작하기에 지난 번에 읽은 메시지에 대한 기록이 남지 않음
IMAP
- 서버 한 곳에 모든 메시지를 보관
- 사용자가 폴더로 메일을 조직화할 수 있도록 지원
- 폴더 이름, 메시지 ID은 세션이 종료되어도 그 상태가 유지됨
- 이메일을 받는 측의 mail server와 user agent 간에 사용되는 프로토콜 가운데 여러 session에 걸쳐 state를 유지해 나갈수 있는 프로토콜
+) stateless
HTTP, DNS, POP3
+) stateful
IMAP, SMTP
728x90
반응형
'CS > Network' 카테고리의 다른 글
P2P (0) | 2021.10.15 |
---|---|
DNS (0) | 2021.10.15 |
Caching (0) | 2021.10.15 |
Web and HTTP ( header & cookie ) (0) | 2021.10.15 |
Application layer (0) | 2021.10.15 |