애플리케이션 계층 - 전자메일

기운찬곰·2020년 10월 11일
0

Computer Science

목록 보기
25/27

인터넷 전자메일

주요 3가지 컴포넌트 => user agents, mail servers, SMTP(simple mail transfer protocol)

user agents

사용자에이전트는 사용자가 메시지를 읽고, 응답하고, 전달하고, 저장하고, 구성하게 해줍니다. 앨리스가 메시지 작성을 끝내면 사용자 에이전트는 메시지를 메일 서버로 보내는 역할을 합니다.

mail servers

각 수신자는 메일 서버안에 메일박스를 갖고 있습니다. 밥의 메일박스는 그에게 온 메시지를 유지하고 관리합니다. 밥이 메일박스에 있는 메시지를 보려면, 메일 서버는 사용자계정과 비밀번호를 이용하여 밥을 인증합니다.

SMTP

간이 전자 우편 전송 프로토콜(Simple Mail Transfer Protocol, SMTP)은 인터넷에서 이메일을 보내기 위해 이용되는 주요 애플리케이션 계층 프로토콜입니다.

TCP를 사용하여 클라이언트에서 서버, 포트 25로 이메일 메시지를 안정적으로 전송하는 역할을 합니다.

메시지는 7 비트 ASCII 여야합니다. 이 때문에 문자 표현에 8비트 이상의 코드를 사용하는 언어나 첨부파일과 자주 사용되는 각종 바이너리는 마임(MIME) 이라고 불리는 방식으로 7비트로 변환되어 전달된다.


메일 주고받는 과정

1단계. 앨리스는 전자메일 사용자 에이전트를 수행하고 밥의 전자메일 주소를 제공하고, 메시지를 작성하고 사용자 에이전트에게 메시지를 보내라고 명령합니다.

2단계. 앨리스의 사용자 에이전트는 메시지를 그녀의 메일 서버에게 보내고 그곳에서 메시지는 메시지 큐에 놓입니다.

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

4단계. 초기 SMTP 핸드셰이킹 이후에 SMTP클라이언트는 앨리스의 메시지를 TCP연결로 보냅니다.

5단계. 밥의 메일서버 호스트에서 SMTP의 서버 측은 메시지를 수신합니다. 밥의 메일 서버는 그 메시지를 밥의 메일박스에 놓습니다.

6단계. 밥은 편한 시간에 그 메시지를 읽기 위해 사용자 에이전트를 실행합니다.


Example SMTP transcript

메일을 보내는 송신자(클라이언트)와 메일을 받는 수신자(서버)간의 연결이 성립된 후 이루어지는 합법적인 SMTP 세션은 다음과 같다. 아래 대화과정에서 클라이언트가 보내는 메시지는 "C:"를 맨 앞에 써서, 서버가 보내는 메시지는 "S:"를 맨 앞에 써서 표시하기로 하자.

대부분의 컴퓨터 시스템에서 연결은 다음과 같이 텔넷 명령어를 사용하여 만들 수 있다.

telnet www.example.com 25

이 명령으로 보내는 클라이언트에서 호스트인 www.example.com으로 SMTP 연결이 시작될 수 있다.


SMTP vs HTTP

공통적으로 한 호스트에서 다른 호스트로 파일을 전송하는데 이용됩니다. 파일을 전송할때 모두 지속연결을 사용합니다.

차이점은...

  • HTTP : pull 프로토콜. 누군가 서버에 정보를 올리고 사용자가 편의에 의해서 서버로 부터 정보를 가져오기 위해 HTTP를 사용. (클라이언트가 서버로부터 정보를 가져옴)
  • SMTP : push 프로토콜. 송신메일 서버가 파일을 수신메일서버로 보낸다. 파일을 송신하는 컴퓨터에서 먼저 초기화. (클라이언트가 서버로 정보를 전달)

액세스 프로토콜

로컬 PC에서 사용자 에이전트를 실행하는 Bob과 같은 수신자는 Bob의 메일 공급자 내의 메일 서버에있는 메시지를 어떻게 얻습니까?

  • POP : 포스트 오피스 프로토콜(Post Office Protocol, POP)은 응용 계층 인터넷 프로토콜 중 하나로, 원격 서버로부터 TCP/IP 연결을 통해 이메일을 가져오는데 사용된다. 여러 버전의 POP 프로토콜이 개발 되었지만 일반적으로 POP를 지칭하는 경우 보통 POP3을 가리킨다. 대부분의 이메일 프로그램이 서버에 이메일을 남겨두는 기능을 제공하지만, POP는 원격 서버에 접속해서 이메일을 가져온 후 서버에서 이메일을 삭제한다.

  • IMAP : POP와 마찬가지로 응용 계층 인터넷 프로토콜 중 하나로, 원격 서버로부터 TCP/IP 연결을 통해 이메일을 가져오는데 사용된다. IMAP는 온라인 모드와 오프라인 모드를 모두 지원하므로 POP3를 사용할 때와 달리 이메일 메시지를 서버에 남겨 두었다가 나중에 지울 수 있다. 그러므로 다른 컴퓨터 환경에서 서로 다른 이메일 클라이언트가 같은 이메일을 받아올 수 있는 장점을 가지고 있다.

  • HTTP : 생략


POP3 example


네이버 메일

참고로 네이버 메일 설정에 가보면 POP3/SMTP를 사용하고 서버명에 대한 내용도 나옵니다. 이메일을 주고 받을때 알고보면 이미 쓰고 있었다는 사실.


마침

이번시간에는 메일이 어떤식으로 주고 받는지에 대해 알아봤습니다. 음... 다음시간에는 애플리케이션 계층 프로토콜 마지막으로 DNS에 대해 알아보도록 하겠습니다.

References

profile
배움을 좋아합니다. 새로운 것을 좋아합니다.

0개의 댓글