IT 프로그래밍/컴퓨터네트워크

[컴퓨터네트워크] FTP 프로토콜 , e-mail 프로토콜

기술1 2024. 10. 3. 15:18
반응형

FTP 프로토콜

File Transfer Protocol로 원격 시스템 간에 파일을 전달하는 방법입니다. 최근에는 이 빈도가 줄어들었기 때문에 간단하게 알고 가시면 됩니다.

 

전형적인 클라이언트/서버 방식으로 전송을 먼저 요청한 후 server는 원격의 host로 존재합니다. 

 

FTP의 가장 큰 특징은

  • 전송계층으로 TCP를 명시합니다.
  • 제어 연결 상으로 authorization 획윽
  • 서버가  파일 전송을 위한 명령을 수신하면 서버는 클라이언트에게 TCP 데이터 연결을 초기화

이를 out of band 방식이라고 합니다.

 

이메일

3가지 주요 요소

  • 사용자 에이전트(user agent)
  • 메일 서버(mail server)
  • SMTP(simple mail transfter protocol)

사용자 에이전트( UA )

메일 리더라고 부를 수 있고  (MAIL READER)이메일을 작성하고 읽을 수 있는 어플리케이션이 user agent입니다. outlook이나 mail client같으 것이 있습니다.

 

메일 서버

이메일을 주고받기 위해서는 메일 서버가 있어야 합니다. 각 수신자들은 메일 서버 내에 메일 박스를 가집니다. 이제 이메일을 보낼 때는 송신 메일에 대한 메세지 큐(message queue)가 존재합니다. 

 

STMP

인터넷 전자 우편을 위한 프로토콜로 메일 서버간의 메일 메시지 송수신을 위한 프로토콜이며 클라이언트, 서버 구조로 되어 있습니다. 25번 포트를 사용합니다. 

 

이메일 전송에서는 TCP를 사용하기 때문에 클라이언트와 수신측의 서버가 TCP의 커넥션을 먼저 만든 후 작업이 시작되어야 합니다. 만들어진 연결을 통해서 이메일을 전송하게 됩니다.

 

이메일 전송과정

 

  • SMTP handshaking(greeting)
  • SMTP 메세지 전송 과정
  • STMP closure (전송이 끝난 후 연결 종료)

1. 자신의 user agent를 통해 이메일을 작성한 후 이메일 주소를 수신자로 지정합니다.

2. user agent가 작성된 이메일을 메시지 큐에 저장 후 client의 서버에서 TCP connection을 만듭니다.

3. 그 connection을 통해 메시지를 서버측으로 보냅니다. 

4. 그럼 수신자의 mailbox로 저장이 되며 수신자가 그것을 읽어옵니다.

 

ex)

S: 220 hamberger.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@hambergher.edu>

S : 250 bob@hamberger.ecddu ... Recipient ok

C : DATA

S : 354 Enter mail, 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 hamberger.edu closing connection

 

SMTP : final words

SMTP는 지속 연결을 사용하며 7-bit ASCII로 표현된 메세지를 요구합니다. SMTP 서버는 메시지의 끝을 결정하기 위해 CRLF .CRLF(공백의 마침표)를 사용합니다.

 

HTTP와 비교를 해보면 먼저 HTTP는 pull방식이지만 SMTP는 push방식입니다. 

 

HTTP는 서버와 클라이언트가 상호작용 할 때 클라이언트에게 객체를 전송해주는 방식입니다. 그래서 PULL 방식이지만 SMTP 클라이언트가 서버에게 주는 방식이므로 push에 해당합니다.

 

둘 다 ASCII코드를 사용하며

 

HTTP - 하나의 객체에 캡슐화

SMTP - multipart msg로 여러 객체를 전달 가능

 

이런 특징이 존재합니다.

반응형