Recent Posts
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 개성국밥
- 코루틴 빌더
- 코루틴 컨텍스트
- 자원부족
- PytestPluginManager
- JanusWebRTCServer
- 헥사고날아키텍처 #육각형아키텍처 #유스케이스
- 달인막창
- VARCHAR (1)
- 깡돼후
- mp4fpsmod
- addhooks
- vfr video
- tolerated
- table not found
- JanusWebRTCGateway
- PersistenceContext
- Spring Batch
- python
- Value too long for column
- JanusWebRTC
- 오블완
- preemption #
- taint
- kotlin
- pytest
- 티스토리챌린지
- JanusGateway
- 겨울 부산
- terminal
Archives
너와 나의 스토리
[CH.2] electronic mail - SMTP, POP3, IMAP 본문
반응형
Electronic mail
- 3가지 구성요소
- user agents
- mail servers
- simple mail transfer protocol: SMTP
- User Agent
- mail reader라고 불림
- 조립(composing), 편집, 메일 메시지 읽기
- 들어오고 나가는 메시지를 서버에 저장한다.
- mail servers:
- mailbox는 사용자에게 들어오는 메시지를 포함한다.
- 보내지는 메일 메시지의 message queue
- 메일 서버들 사이에서 메일 메시지를 보내기 위한 SMTP protocol
- client: 메일을 서버에게 보냄
- server: 수신 메일 서버
- SMTP
- 클라이언트에서 서버로 이메일 메시지를 안전하게 전송하기 위해 port25의 TCP를 사용한다.
- 직접 전송(direct transfer): sending server to receiving server
- 3가지 전송 단계:
- handshaking (greeting)
- 메시지 전송
- 닫기 (closure)
- command/response interaction (like HTTP, FTP)
Scenario: Alice가 Bob에게 메시지를 보낸다.
- Alice는 user agent(UA)를 사용하여 bob@someschool.edu에 메시지를 작성한다.
- 엘리스의 UA는 그녀의 메일 서버에 메시지를 보낸다; 메시지는 message queue에 놓여진다.
- SMTP의 클라이언트 측에서 밥의 메일 서버와의 TCP 연결 열기
- SMTP 클라이언트는 TCP 연결을 통해 엘리스의 메시지를 전송한다.
- 밥의 메일 서버는 메시지를 밥의 mailbox에 넣는다.
- 밥은 메시지를 읽기 위해 그의 UA를 호출한다.
SMTP: final words
- SMTP는 지속적인 연결을 사용한다.
- SMTP 서버는 CRLF를 사용한다
- CRLF는 메시지의 끝 결정
- HTTP와 비교
- HTTP: pull
- SMTP: push
- 둘 다 ASCII 명령/응답 interaction, status codes를 가진다.
- HTTP: 각 객체는 자체 응답 메시지로 캡슐화된다.
- SMTP: 여러개의 메시지를 보내는 여러개의 객체
- HTTP는 클라이언트가 먼저 전송하고 서버가 응답을 주는데 FTP,SMTP,POP3,NNTP는 서버가 먼저 자신의 존재를 전송한다.
* push & pull
- Push protocol
- push 프로토콜에서 클라이언트는 서버에 대한 연결을 열고 지속적으로 활성 상태를 유지한다.
- 서버는 단일 상시 연결을 사용하여 모든 새 이벤트를 클라이언트에 전송(push).
- 즉, 서버는 새 이벤트를 클라이언트에게 push한다.
- Pull protocol
- pull 프로토콜에서 클라이언트는 주기적으로 서버에 연결하고 최근 이벤트를 확인하고 가져 와서(pull) 연결을 닫고 서버와의 연결을 끊습니다.
- 클라이언트는 이 전체 절차를 반복하여 새 이벤트에 대해 업데이트된다.
- 이 모드에서 클라이언트는 주기적으로 서베에서 새 이벤트를 pull한다.
Mail message format
- SMTP: 이메일 메시지 교환을 위한 프로토콜
- RFC 822: 텍스트 메시지 형식을 위한 표준
- body: "message"
Mail access protocols
- SMTP: 수신자의 서버에 전달/저장
- mail access protocol: 서버로부터 회수
- POP(Post Office Protocol): 권한, 다운로드
- IMAP(Internet Mail Access Protocol): 서버에 저장된 메시지를 조작하는 등 더 많은 기능
- HTTP: gmail, Hotmail 등
POP3 protocol
POP3 AND IMAP
- more about POP3
- 이전 예제에서 POP3 "다운로드와 삭제" 모드를 사용했다.
- Bob은 만약 그의 클라이언트를 바꾸면 이메일을 다시 읽을 수 없다.
- POP3: "download and keep": 다른 클라이언트의 메시지를 카피
- POP3는 세션 전체에서 stateless
- 이전 예제에서 POP3 "다운로드와 삭제" 모드를 사용했다.
- IMAP
- 서버 한 곳에 모든 메시지를 저장
- 사용자가 파일에 메시지를 정리할 수 있도록 함
- 사용자의 state를 across session에 저장가능:
- 폴더의 이름과 메시지 ID를 매핑
반응형
'Computer Networks > 이론' 카테고리의 다른 글
[CH.2] Application Layer - P2P applications (2) | 2019.10.04 |
---|---|
[CH.2] Application - DNS (0) | 2019.10.03 |
[CH.2] Application Layer - FTP (0) | 2019.10.03 |
[CH.2] Application Layer - 기초, Web and HTTP (3) | 2019.10.01 |
Protocol layers, service models, security (0) | 2019.09.24 |
Comments