이메일은 아래 3가지 구성요소를 가진다.
- user agent : "mail reader"로 메일을 작성하고 수정하며 전송할 수 있다. Outlook, iPhone mail client가 이에 속한다.
- mail server
- mailbox : 들어온 메일이 저장되는 곳이다.
- Message queue : 내보낸 메일이 저장되는 곳이다.
- SMTP Protocol : 메일 서버 간, user agent와 메일 서버 사이의 이메일 전송 프로토콜이다.
- SMTP(Simple Mail Transfer Protocol)
- TCP를 사용하며 2번 포트를 사용한다.
- 전송할 때는 Handshaking, Transfers of messages, closure 과정을 겪는다.
- 보통 ASCII 코드로 전송된다.
SMTP
SMTP 상호작용 예시
HTTP와 비교하면, SMTP는 PULL 동작이고 HTTP는 PUSH 동작이다. 즉, SMTP는 메일을 가져와라는 명령, HTTP는 정보를 전송하는 프로토콜이다.
SMTP Message Format
Mail Access Protocols
메일 전송 과정을 살펴보면, user agent가 SMTP로 sender의 이메일 서버에 접근하고 receiver 이메일 서버로 PULL 요청을 보낸다. 그러면, IMAP, HTTP와 같은 email access protocol이 user agent로 메일을 전송한다.
- SMTP : delivery, storage
- Mail Access protocol : retrieval
The Domain Name Service DNS
인터넷 호스트나 라우터들은 각각의 IP 주소와 도메인 이름을 가지는데, 이를 어떻게 매핑할까? DNS는 IP 주소와 도메인을 매핑하여 쉽게 접근하도록 한다. DNS는 각각의 IP 주소들을 DB에 저장해 도메인 이름 요청이 오면 하나씩 꺼내어 내보낸다.
Domain Name System은 분산되고 계층화된 데이터베이스를 사용한다. 그 이유는 특정 데이터베이스에 저장되어 있다면 하나가 고장나면 Domain name service가 마비되기 때문이다. 하나의 데이터베이스에 과도한 트래픽이 발생하기도 하고 유지 보수가 어렵다.
- Root DNS Server
- Top Level Domain
- Authoritative
- Local DNS Server
DNS Solution : Iterated query
engineering.nyu.edu가 gaia.cs.umass.edu의 IP 주소를 궁금해한다고 하자.
- engineering.nye.edu는 자신의 local DNS Server로 질의를 보낸다.
- local DNS Server는 Root DNS Server에 질의를 보내고, . edu에 책임을 갖는 TLD 서버의 IP 주소 목록을 다시 보낸다.
- local DNS Server는 TLD DNS Server에 질의를 보낸다. .umass.edu에 책임을 갖는 Authoritative DNS Server의 IP 주소를 다시 보낸다.
- local DNS Server는 해당 Authoritative DNS Server에 질의를 보내고 최종적으로 gaia.cs.umass.edu의 IP 주소를 보낸다.
DNS Solution : Recursive query
DNS는 반복적 질의를 할 수 있지만, 재귀적 질의도 가능하다.
- engineering.nyu.edu가 자신의 local DNS server로 질의를 보낸다.
- local DNS Server는 Root DNS Server로 질의를 보낸다.
- Root DNS Server는 .edu에 책임이 있는 TLD DNS Server에 질의를 보낸다.
- TLD DNS Server는 .umass.edu에 책임이 있는 Authoritative DNS Server에 질의를 보낸다.
- Authoritative DNS Server는 gaia.cs.umass.edu의 IP 주소를 반환한다.
DNS Caching
실제로는 DNS 지연 향상과 네트워크의 DNS 메시지 수를 줄이기 위해 캐싱(caching)을 사용한다. DNS Server는 응답을 받았을 때 응답에 대한 정보를 저장해두고 지정된 시간(TTL)이 지나면 자동으로 정보를 삭제된다.
'CS > 네트워크' 카테고리의 다른 글
[데이터통신] 3. Data Link Layer(데이터링크 계층, DLC functions) (0) | 2024.04.17 |
---|---|
[컴퓨터망] 2. Application Layer(P2P, CDN, DASH, Socket Programming) (1) | 2024.04.13 |
[컴퓨터망] 2. Application Layer(Web과 HTTP) (0) | 2024.04.13 |
[컴퓨터망] 2. Application Layer(네크워크 애플리케이션) (0) | 2024.04.13 |
[데이터통신] 2. Physical Layer(멀티플렉싱, 전송 매체) (0) | 2024.04.06 |