celina의 이것저것

Chapter 2-3 본문

대학생활/네트워크 프로그래밍

Chapter 2-3

celinayk 2023. 4. 15. 00:28
반응형

Email

3가지 components

1. user agents(유저 에이전트)

이메일을 읽거나 쓰거나 수정하거나 한다(근데 받아서 읽는일이 좀 많긴함 읽기만 하는건 아님)

내가 보내거나 받는 이메일들이 서버에 저장됨, 내 개인 컴퓨터나 폰에는 임시로만 저장됨

 

예) 크롬(유저 에이전트) - 창원대 포탈에서 제공하는 메일서버(메일 서버)

 

2. mail servers(메일 서버) 2가지로 구성 

mailbox: 내가 수신받은 이메일을 저장해주는 역할,  서버에는 각 유저들마다 독립적인 자신만의 메일박스가 존재

message queue: 내가 이메일을 보낼때 메시지 큐에 들어감, 그리고 또 다른 메일 서버로 전송됨

 

3. SMTP(simple mail transfer protocol)

이메일을 위한 주요 애플리케이션 계층 프로토콜

client: 메일서바가 상대 메일 서버로 보낼때는 그 순간 그 서버는 SMTP의 클라이언트로 동작

server: 메일서버가 상대 메일서버로부터 메일을 받을 때 그 순간 그 서버는 SMTP서버로 동작

 

 

특징

모든 메시지의 몸체는 7비트 아스키코드

준비, 전송, 종료 3가지 과정 거침

TCP사용 

송신자의 메일서버로부터 수신자의 메일서버로 메시지 전송

 

 

과정

1. 앨리스는 전자메일 사용자 에이전트 수행, 밥의 전자메일 주소 제공, 메시지 작성하고 사용자 에이전트에게 메시지를 보내라고 명령(전송누름)

2. 앨리스의 사용자 에이전트는 메시지를 그녀의 메일 서버에 보내고 그곳에서 메시지는 메시지 큐에 놓임(또 다른 누군가에게 보내질거니까)

3. 앨리스의 메일 서버에서 동작하는 SMTP의 클라이언트 측은(보낼거니까) 메시지 큐에 있는 메시지를 본다. 밥의 메일 서버에서 수행되고 있는 SMTP 서버에게 TCP연결 설정한다(준비단계)

4. 초기 SMTP 핸드셰이킹(준비)이후에 SMTP 클라이언트는 앨리스의 메시지를 TCP연결로 보냄

5. 밥의 메일 서버 호스트에서 SMTP의 서버 측은 메시지를 수신함, 밥의 메일서버는 그 메시지를 밥의 메일박스에 놓음(받았으니까)

6. 밥이 편한시간에 그 메시지를 읽기 위해 사용자 에이전트 시동

 

SMTP는 persistent연결을 사용, 송신 메일 서버가 같은 수신 메일 서버로 보내는 여러 메시지를 갖고 있따면 같은 TCP를 통해 모든 메시지를 전달할 수 있다

 

메시지 포맷

1. 헤더

2. 바디

 

앨리스 에이전트-> 앨리스 메일 서버 : SMTP

앨리스 메일 서버 -> 밥 메일 서버 : SMTP

밥 메일 서버 -> 밥 에이전트 : SMTP X , HTTP 또는 IMAP,POP

(***POP3는 메일 요청와서 그거 주면 메일서버는 걍 메일 삭제해버림

IMAP은 유저가 폴더를 구성가능(서버도 똑같이만들어짐), 얜 안지워짐, 메일 회사에서도 폰에서도 볼 수 있음)

but

밥의 사용자 에이전트는 메시지를 얻기 위해 SMTP를 사용할 수 없다

(밥의 의사와 상관없이 보내는거아니고 밥이 원할때 서버에 내 메시지 줘! 요청해서 보는거임)

-> SMTP는 푸시 프로토콜(수신인의 의사와 상관없이 전송)인데 메시지를 얻는것은 pull동작이기 때문이다 (HTTP는 pull)

 

HTTP : 하나의 객체를 하나의 response메시지안에 넣어서 보여줌(다 따로 받음 non persitent라서?)

SMTP : 내가 보내야할 메시지 여러개라면, 여러객체들을 하나의 메시지안에 넣어서 보내줌 

공통점 : command(request)/response , status code, 아스키코드 사용 

 

 

 

 

 

'대학생활 > 네트워크 프로그래밍' 카테고리의 다른 글

Chapter 2-6(기말고사 범위)  (1) 2023.05.08
Chapter 2-4  (0) 2023.04.15
Chapter 2-2  (0) 2023.04.14
Chapter 2-1  (0) 2023.04.13
Chapter 1  (0) 2023.03.13