310 likes | 673 Views
SMTP (Simple Mail Transfer Protocol). 정보통신연구실. SMTP 개념. 하나 또는 그 이상의 수신자에게 단일 메시지를 전송 문자 , 비디오 , 음성 , 또는 그래픽을 포함하는 메시지를 전송 인터넷 외부 네트워크상의 사용자에게 메시지를 전송. User. User. SMTP client. SMTP server. Internet. TCP 임시 port. TCP 할당된 port 25. SMTP 개념.
E N D
SMTP 개념 • 하나 또는 그 이상의 수신자에게 단일 메시지를 전송 • 문자, 비디오, 음성, 또는 그래픽을 포함하는 메시지를 전송 • 인터넷 외부 네트워크상의 사용자에게 메시지를 전송 User User SMTP client SMTP server Internet TCP 임시 port TCP 할당된 port 25
SMTP 개념 • SMTP는UA(User Agent)와 MTA(Mail Transfer Agent로 분해할 수 있다 • UA : 메시지를 준비,봉투생성 봉투 안에 메시지 삽입. • MTA : 인터넷상으로 메시지 전송
SMTP 개념 • 송신측과 수신측의 단 하나의 MTA대신에 다른 MTA들에 의해서 메일을 중계할 수 있다
SMTP 개념 • 중계시스템은 TCP/IP프로토콜을 사용하지 않는 사이트가 TCP/ IP프로토콜을 사용이 불확실한 다른 사이트의 E-메일 사용자에게 메일 전송을 가능하게 한다. (Mail gateway를 사용)
User Agent(UA) • 메일을 송수신하기 위한 프로그램 • MH, Berkeley Mail, Elm, Zmail, Mush • 송신 메일 • Envelope • 송신자/수신자 주소, 기타 정보 • Message • Header와 body로 구성 • Header • 송신자/수신자, • 메시지의 주제, 기타 정보 • Body • Actual information • 수신 메일
Addresses • Unique한 address를 부여한다 • Local part • User mailbox라 불리는 special file의 name을 정의 • Domain Name • Mail exchanger를 통하여 mail을 receive/send한다 • Email주소는 gateway와 실제 recipient의 주소를 정의하고 이를 통하여 메일을 주고받는다
Delayed delivery • SMTP는 delayed delivery를 허용한다 • Server-Site delay • Create a message → spool(storage structure) → transfer periodically for check mail • Mail이 저장된 spool에서 주기적(10에서 30초마다) 보낼 수 있는지 검사하고 시간 초과(3일에서 5일)하면 송신자에게 반송된다 • Receiver-Site delay • 수신자의 메일박스에 저장된다 • Intermediate delay • SMTP는 intermediate delay를 허용하고 적절할 때에 전송한다
Aliases • 여러 가지 서로 다른 e-mail 주소를 나타내기 위해서 alias 사용 : one-to-many alias expansion • 한 사용자는 여러 e-mail 주소로 정의될 수 있다 : many-to-one alias expansion
One-to-Many expansion Aliases • Many-to-One expansion
Mail transfer agent(MTA) • MTA를 통해 실제 메일이 전송된다
SMTP 명령과 응답 • SMTP는 MTA client와 server 사이에서 메시지를 주고 받기 위해서 commands와 response를 사용한다 • Carriage return과 line feed에 의해 종료된다 • Command
SMTP 명령(1) Command Definition HELO MAIL RCPT DATA sender와 receiver간의 전송채널을 만든다. • HELO:challenger.atc.fhda.edu 메일 발신자 확인하고 메일 발송을 알린다. • MAIL FROM:forouzan@challenger.atc.fhda.edu 메일 수신자를 알린다. • RCPT TO:betsy@mcgraw-hill.com 메일의 내용을 receiver-SMTP에 전송, 종료는 ‘.’ . • DATA • This is the message • .
SMTP 명령(2) Command Definition VRFY EXPN HELP NOOP QUIT 이름이 유효한 수신자인가를 확인하기 위해서 요청 . • VRFY:betsy@mcgraw-hill.com 메일링 리스트를 확장하도록 수신 호스트에 요청. • EXPN:x y z 보내진 명령의 정보를 수신자에게 요청. • HELP:mail 수신자의 상태를 체크하기 위해 • NOOP 메시지를 종료 . • QUIT
SMTP 명령(3) Command Definition TURN SEND SMOL SAML RSET 송신자와 수신자의 상태를 바꿈. • TURN 수신자의 터미널로 수신자가 로그인 상태일 때 송신 • SEND FROM:frouzan@fhda.atc.edu mail이 수신자의 mailbox또는 터미널로 전송. 수신자가 log in 상태가 아니면 mailbox로 전송 . • SMOL FROM:frouzan@fhda.atc.edu mail이 수신자의 mailbox그리고 터미널로 전송. 수신자가 log in 상태이면 양쪽 아니면 mailbox로 전송 • SAML FROM:forouzan@fhda.atc.edu 현재 메일 전송을 취소. 송신자와 수신자에 대한 저장된 정보가 삭제 . • RSET
SMTP 응답(1) Code Definition 1yz 2yz 3yz 4yz 5yz 현재 SMTP에서 사용되지 않는다. 요청을 성공적으로 수행 했고, 새로운 명령을 시작할 수 있다. 요청을 승인되고 수행을 위해 추가정보 필요. 요청을 거절했지만 에러는 일시적인 현상으로 명령을 다시 전송할 수 있다. 요청을 거절, 명령을 재 전송할 수 없다.
Mail transfer phases • 연결 설정 • Port 25 • Code 220(서비스 준비), code 421(서비스 이용 불가) • Code 250(요청 명령 완료)
Mail Transfer phases • 메시지 전송 • 메시지의 송신자를 알리기 위해 MAIL 메시지를 전송 • code 250(ok)로 응답 • 수신자의 Address를 포함하는 RCTP 메시지를 전송 • code 250(ok) 로 응답 • 메시지전송을 초기화하기 위해서 DATA 메시지를 전송 • 메일 입력 시작 Code 354로 응답 • 연속되는 라인 안에 메시지내용전송.각 라인 끝에 라인피드와 케리지리턴 삽입하고 ‘.’을 포함하는 라인으로 메시지전송 종료. • Code 250(ok) 로 응답
Mail Transfer phases • 연결 종료
Multipurpose internet mail extensions(MIME) • MIME • SMTP는 NVT 7-bit ASCII format만 지원 • MIME는 non-ASCII data를 허용하기 위한 보조 프로토콜이다
MIME • MIME는 전송 파라메터를 정의하기 위해 기본 SMTP 헤더에 추가 될 수 있는 5가지 헤더를 정의한다.
MIME • MIME-Version • Content-Type • 메시지의 body에서 사용되는 data의 타입을 정의
MIME • Text Subtype Definition Plain 7bit ASCII 포맷 • Multipart • Body가 다중,독립적인 부분을 포함 • Multipart 헤더는 각 part 사이의 경계 정의가 필요 • 경계는 파라메터로서 사용 • ‘--’으로 각 파트를 구분 • 종료는 경계 파라메터 다음에 ‘--’
MIME • Multipart Subtype Definition Mixed Parallel Digest Alternative 메시지 안에 정확한 순서를 수신자에게 나타내야한다. 각 파트는 다른 타입이고, 경계가 정의된다. Mixed와 비슷한 타입 그 파트들에서 중요하지 않은 순 서는 제외한다. Mixed와 비슷한 타입 기본 type/subtype이 message/rfc822 이다. 동일한 메시지가 다른 포맷을 사용해서 반복된다.
MIME • Multipart example Content-Type: multipart/mixed; boundary=xxxx --xxxx Content-Type: text/plain; …………………………………………………………… …………………………………………………………… --xxxx Content-Type: image/gif; …………………………………………………………… …………………………………………………………… …………………………………………………………… --xxxx--
MIME • Message • encapsulate된 메시지 Subtype Definition Rfc822 Partial External-Body Rfc822에 따라 작성된 메시지 body를 나눠서 전송parameter: id, number, total 실제 body에 data가 없고 단지 참조할 수 있도록 함 parameter : access-type, name
MIME • Content-Transfer-Encoding • Content-Transfer-Encoding:<type> • Content-Id • Content-Description • 헤더가 image, audio, video인지 정의
code code code code code code val val val val val val MIME • Base64
POP3 • POP3(Post Office Protocol, version 3) • 메일 서버에 연결상태 지속으로 자원 낭비 발생. • 클라이언트에서 메일을 간단히 관리 할 수 있게 개발됨 • TCP 할당된 port 110 • 서버 응답 요청 성공: +OK 요청 실패: -ERR