[CS/ Network] 컴퓨터 네트워킹 하향식 접근 8판 2장 애플리케이션 계층 / 2.3 인터넷 전자메일

yujeongkwon·2023년 7월 18일
0

CS / Network

목록 보기
6/27

목차

2.3 인터넷전자메일 106
2.3.1 SMTP 107
2.3.2 메일메시지포맷 110
2.3.3 메일접속 프로토콜 111

📨 2.3 인터넷 전자메일

  • 주요 요소
    • 사용자 에이전트(user agent) : 사용자가 메시지를 읽고, 응답하고,전달하고,저장하고,구성하게 함.
      • ex) 애플 메일,웹 기반 지메일 등
    • 메일 서버(mail server) : 전자메일 인프라스트럭처의 중심
      • 메일박스(mailbox) : 메일 서버안에 있으며, 사용자에게 온 메시지를 유지, 관리
      • 송신자의 사용자 에이전트 -> 송신자의 메일 서버-> 수신자의 메일 서버 -> 수신자의 메일박스에 저장
      • 메일 서버 고장에 대비
        • 송신자가 수신자의 서버로 전달할 수 없다면, 송신자는 메시지 큐에 메시지를 보관하고, 나중에 재전달 시도 -> 여러번 팅기면 송신자에게 알림
    • SMTP(Simple Mail Transfer Protocal)
      • 인터넷 전자메일을 위한 주요 애플리케이션 계층 프로토콜
      • TCP의 신뢰적인 데이터 전송 서비스를 이용
      • 클라이언트(송신자 메일 서버)와 (수신자 메일 서버)를 가짐
      • 클라이언트와 서버 모두가 모든 메일 서버에서 수행

🤙🏻 2.3.1 SMTP

  • SMTP는 여러 가지 장점이 있지만, 오래된 기술이다.

    • 모든 메일 메시지의 몸체(헤더뿐 아니라)는 단순한 7비트 ASCII여야 한다 = 전송용량 제한
    • 아스키 변환 졸라해야함 -- but HTTP는 변환하지 않지 -> 최근 ㅈ댐
      2.15 앨리스가 밥에게 메시지를 전달
  • 송신 과정
    앨리스는 송신자. 밥은 수신자.
    1. 송신자는 전자메일 사용자 에이전트를 수행해서 수신자의 전자메일 주소 적고, 메시지를 작성하고 수신자 사용자 에이전트에게 메시지를 보내라고 명령
    2. 송신자 사용자 에이전트는 메시지를 송신자의 메일 서버에게 보내고 그곳에서 메시지는 메시지 큐에 놓인다.
    3. 송신자의 메일 서버에서 동작하는 SMTP의 클라이언트 측은 메시지 큐에 있는 매시지를 보고, 수신자의 메일 서버에서 수행되고 있는 SMTP 서버에게 25번 포트로 TCP 연결을 설정한다.
    4. 초기 SMTP 핸드셰이킹 이후에 SMTP 클라이언트는 송신자의 메시지를 TCP 연결로 보낸다.
    이때 SMTP 클라이언트(송신측)는 송신자의 전자메일 주소와 수신자의 전자메일 주소를 제공한
    5. 수신자의 메일 서버 호스트에서 SMTP의 서버 측은 메시지를 수신한다. 수신자의 메일 서버는 그 메시지를 수신자의 메일박스에 놓는다.
    6. 수신자은 편한 시간에 그 메시지를 읽기 위해 사용자 에이전트를 시동한다.

  • SMTP는 메일을 보낼 때 두 메일 서버가 먼 거리에 떨어져 있더라도 직접연결. (메일서버 사용X)
  • SMTP 클라이언트(C)와 SMTP 서버(S) 사이의 메시지 전달 과정의 예
    • 클라이언트 : crepes.fr / 서버 : hamburger.edu
    • 아래는 TCP 연결이 되자마자 시작
    • 클라이언트는 5개의 명령,HELO(HELLO의 약자),MAIL FROM, RCPT TO, DATA, QUIT 명령을 함.
                        S : 220 hamburger.edu
                        C: HELO crepes.fr
                        S: 250 Hello crepes.fr, pleased to meet you
                        C: MAIL FROM <alice@crepes.fr>
                        S: 250 alice@crepes.fr ... Sender ok
                        C: RCPT TO <bob@hamburger . edu>
                        S: 250 bob@hamburger.edu ... Recipient ok
                        C: DATA
                        S: 354 Enter mail z end with " .on a line by itself
                        C: Do you like ketchup?
                        C: How about pickles?
                        C: .										//끝내쟈!
                        S: 250 Message accepted for delivery
                        C: QUIT
                        S: 221 hamburger.edu closing connection

📄 2.3.2 메일 메시지 포맷

  • 각 헤더 라인은 키워드,콜론,값의 순서로 구성 + 읽을 수 있는 텍스트를 포함
  • 필수 요소 : From: , To:
  • 선택 요소 : Subject: 헤더 등
  • 위 SMTP 명령과는 (비록 from: , to:처럼 공통 단어가 있기는 하지만)다름!
    ㄴ 는 SMTP 핸드셰이킹 프로토콜의 일부, 지금 보는 헤더 라인들은 메일 메시지 자체의 일부
  • 일반 메시지 헤더는 다음과 같다.
  • 메시지 헤더 다음에 빈 줄이 이어지고,그다음에 메시지 몸체(ASCII 문자)
        From: alice@crepes.fr
        To: bob@hamburger.edu
        Subject: Searching for the meaning of life.

🤙🏻 2.3.3 메일 접속 프로토콜

  • 송신자의 사용자 에이전트는 송신자의 메일 서버로 전자메일 메시지를 SMTP 또는 HTTP로 전송
    • 아래 그림 처럼 왜 2단계를 거쳐야 함?
      • 메일 서버를 거치지 않으면 송신자의 사용자 에이전트는 목적지 메일 서버에 도달할 수 없기 때문
        송신자는 전자메일을 1. 자신의 메일 서버에 저장, 2. 수신자 메일서버가 받을 때까지 계속 전송 시도
  • 수신자는 자신의 ISP 내부의 메일 서버에 있는 자신의 메시지를 어떻게 얻을 수 있는가?
    • 수신자 사용자 에이전트는 메시지를 얻기(PULL) 위해 SMTP(PUSH 프로토콜) 사용 불가
      방법 1. 사용자 에이전트는 밥의 전자메일을 확인하기 위해 HTTP를 사용
      -> SMTP 인터페이스 + HTTP 인터페이스를 가지고 있어야함
      방법 2. 전형적인 메일 클라리언트를 사용(ex 마이크로소프트 아웃룩)
      -> 인터넷 메일 접근 프로토콜(Internet Mail Access Protocol, IMAP) 사용
    • HTTP나 IMAP 사용 방법 모두 수신자의 메일 서버에 의해 유지되는 폴더를 관리
profile
인생 살자.

1개의 댓글

comment-user-thumbnail
2023년 7월 18일

유익한 글 잘 봤습니다, 감사합니다.

답글 달기

관련 채용 정보