SMTP 프로토콜 (Simple Mail Transfer Protocol)
전자우편을 보내고 받는데 사용되는 TCP/IP 프로토콜이다. 비교적 간단한 메세지 전송 프로토콜.
(1) 메일을 송신
(2) 수신자는 본인의 컴퓨터가 전원이 없기 때문에 수신할 다른 머신이 필요
(3) Mail Server 는 수신자를 대신해서 메일을 수신하고 이후 사용자가 보길 원하는 경우, 사용자에게 보여준다.
Mail Server 에는 Mail Queue 가 존재하며, 수신자 쪽 서버가 멈추거나 혹은 다운되는 경우 송신자 쪽 서버의 큐에 메일을 담아두고 이후에 네트워크 환경이 안정화되면 다시 송신하다.
HTTP : 클라이언트가 서버로부터 데이터를 가져오는 모습 ( pull, 사용자가 데이터를 들고오는 방식 )
SMTP : 보내고자 하는 데이터를 밀어넣는 모습 ( push, 사용자가 데이터를 밀어내는 방식 )
Mail Queue
네트워크 환경이 불안정한 경우, 송신자 측에서 보낸 데이터를 담아두는 큐이다. 이후에 네트워크가 안정화되면 재송신한다.
Socket
네트워크는 프로세스간의 메세지를 교환하는 것이며, 서로 다른 머신(디바이스) 간의 통신을 위한다. 그리고 이 프로세스들 간의 커뮤니케이션을 위해 OS에서는 인터페이스를 제공한다. 이 인터페이스가 Socket 이다. 결과적으로 소켓은 돌아가는 두 프로그램이 서로 통신할 수 있도록 양쪽에 생성되는 엔드포인트(endPoint) 이며 소켓서버는 특정 컴퓨터에서 실행되고 특정 포트 번호에 바인딩된 소켓을 가지고 있다. 이후 소켓서버는 클라이언트 소켓이 요청이 올 때까지 기다린다.
Socket 순서
(1) TCP Server 에서 socket()을 생성하고 바인드한다. 이 과정은 특정한 포트 번호로 바인딩하는 것을 의미한다.
(2) 서버 소켓은 Listen 을 수행하여 소켓은 클라이언트 소켓의 요청이 올 때까지 대기한다.
(3) TCP Client 측에서 socket()을 생성하고 connect() 를 통해서 TCP Server 에 연결 요청을 한다.
(4) 클라이언트 측에서 요청이 올 때, 요청 호스트 이름과 포트번호에 이상이 없으면 서버는 연결을 승인(accept)한다. (서버는 응답을 수행하는 호스트이다.)
(5) (3) ~ (4) 의 과정에서 TCP Three-way Handshaking 이 일어난다.
(6) 이후 write() & read() 가 이루어진다.
'네트워크 > 네트워크 강의 들은 것 정리' 카테고리의 다른 글
20180613 네트워크 정리 05 답변 (0) | 2018.06.13 |
---|---|
20180612 네트워크 정리 04 답변 (수정 20191109) (0) | 2018.06.12 |
20180609 네트워크 정리 02 답변 (0) | 2018.06.09 |
20180609 네트워크 정리 01 답변 (0) | 2018.06.09 |
20180516 21 :Wireless And Mobile Networks 3 (0) | 2018.05.16 |