인터넷 전자메일

Stormi·2022년 7월 4일
0

네트워크

목록 보기
23/37

메일 서버들간에는 SMTP를 사용한다.

전자메일은 비동기적인 통신 매체이다. 사람들은 상대방의 스케줄과 상관없이 그들이 편할 때 메시지를 보내거나 읽는다. 메일서버는 저자메일 기반 구조의 중심이다. kim이 수신자라고 하면 메일 서버안에 메일 박스를 가지고 있다. Kim의 메일박스는 그에게 온 메시지를 유지하고 관리한다.
1. 일반 메시지는 송신자의 사용자 에이전트에서 전달이 된다.
2. 송신자의 메일 서버를 거친 후에 수신자의 메일 서버로 전달이된다.
3. 수신자의 메일박스에 저장이 된다. kim이 전자메일 박스에 있는 메시지를 보려면, kim은 사용자 계정과 비밀번호를 이용하여 kim임을 증명한다.
( park의 메일서버는 kim의 서버 고장에 대해서도 대체 해야한다. 만약 park의 서버가 kim의 서버로 메일을 전송할 수 없다면, park의 서버는 그 메시지를 메시지 큐에 보관하고 나중에 그메시지를 전달하기 위해 다시 재시도 한다. 재시도는 30분마다 일어난다. 여러번 시도해서 안되면 park에게 이를 통보한다.)

SMTP

  • SMTP는 인터넷 전자메일을 위한 주요 애플리케이션 계층 프로토콜이다.
  • SMTP는 송신자 메일 서버에서 수행하는 클라이언트와 수신자 메일서버에서 수행되는 서버를 갖고있다. SMTP의 클라이언트와 서버 모두가 모든 메일 서버에서 수행된다.
  1. park은 전자메일 사용자 에이전트를 수행하고 kim의 전자메일 주소 (kim@naver.com)을 제공하고 메시지를 작성하고 사용자 에이전트에게 메시지를 보내라고 명령한다.
  2. park의 사용자 에이전트는 메시지를 그녀의 메일 서버에게보내고 그곳에서 메시지는 메시지 큐에 놓인다. (park의 메일 서버는 gmail)
  3. park의 메일 서버에서 동작하는 SMTP의 클라이언트 측은 메시지 큐에 있는 메시지를 본다. kim의 메일 서버에서 수행되고 있는 SMTP 서버에게 TCP 연결을 설정한다.
  4. 초기 SMTP 핸드셰이킹 이후에(이미TCP 연결은 걸려있고 그 후에) SMTP 클라이언트는 PARK의 메시지를 TCP연결로 보낸다.
  5. kim의 메일 서버 호스트에서 SMTP의 서버 측은 메시지를 수신한다. kim의 메일 서버는 그 메시지를 kim의 메일박스에 둔다.
  6. Kim은 편한 시간대에 그 메시지를 읽기 위해 사용자 에이전트를 시동한다.
  • SMTP는 push 위주이다.

  • SMTP가 메시지를 송신 메일 서버에서 수신 메일 서버로 어떻게 전송할 수 있을까?
    -> 1. 클라이언트 SMTP는 서버 SMTP의 25번 포트로 TCP연결을 설정한다. 만약 서버가 죽어 있으면 클라이언트는 나중에 다시 시도한다. 일단 이 연결이 설정되면, 서버와 클라이언트는 애플리케이션 계층 핸드 셰이킹을 수행한다. 사람들이 정보를 전달하기 전에 서로 소개하는 것처럼, SMTP클라이트와 서버는 정보를 전송하기 전에 서로를 소개한다. 이 SMTP핸드셰이킹 과정 동안에 SMTP클라이언트는 송신자의 전자메일 주소와 수신자의 전자메일 주소를 제공한다. 일단, SMTP클라이언트와 서버가 서로에 대한 소개를 마치면, 클라이언트는 메시지를 보낸다. SMTP는 서버에 오류 없이 메시지를 전달하기 위해 TCP의 신뢰적인 데이터 전송 서비스에 의존한다. 그리고 서버에 보낼 다른 메시지가 있으면, 클라이언트는 이 과정을 TCP 연결상에서 반복한다. 그렇지 않으면 TCP에게 연결을 닫을 것을 명령한다.

terminal로 google 메일 서버랑 tcp 연결을함

이런식으로 SMTP를 사용해서 메일을 보낼 수 있다.

텔넷을 사용해서 SMTP서버와 대화를 한 것이다.

0개의 댓글

관련 채용 정보