본문 바로가기

컴퓨터 네트워크/Computer Networking 정리

CH2 : Application Layer (4)

* 이 글에 관련된 모든 내용은 Computer Networking A Top-Down Approach 7th에서 가져온 내용이다. *

 

 

이번 글에서는 email에 대해 알아볼 예정이다.

Electronic Mail


이메일에는 세개의 중요한 요소들이 있다.

 - user agents

 - mail servers

 - STMP(Simple Mail Transfer Protocol)

 

1. User Agent 

 - mail reader라고도 한다.

 - 메일을 쓰고, 읽고 결합하는 역할을 한다. 

 - e.g. Outlook, Messenger

 

2. Mail Servers

 - outgoing message queue와 user mailbox로 이루어져있다.

 - mailbox는 유저로부터 들어온 메시지를 저장한다.

 - message queue는 보내질 메시지가 담겨져 있다.

 - 메일서버간에는 SMTP protocol이 사용된다. 

 

3. SMTP

 - reilaible한 메시지 전송을 위해 TCP를 사용한다. 이 전송에는 세과정(handshaking, 전송, closure)이 필요하다.

 - persistent한 커넥션을 사용한다. 때문에 같은 TCP 커넥션을 통해 여러개의 메시지를 보낼 수 있다.

 - 7bit의 아스키코드로 이루어진다.

 - HTTP와 달리 push protocol이다.

 

 

또한 HTTP도 e-mail을 지원한다.

 

 

 

 

 

 

 

 

 

 

 

 

 

서버에게 delivery와 storage를 담당하는 프로토콜 : SMTP

서버로부터 메일을 받고 access를 담당하는 포로토콜 : POP3, IMAP4, HTTP

 

DNS(Domain Name System)


DNS에 대해 공부하기 전에 Name과 Address의 차이를 알아야한다.

Name이란 사람들이 사용하는 문자열 형식이다. e.g. www.google.com  

Address란 machine에서 사용되는 32bit의 IP address를 의미한다.

 

그렇다면 이 IP address와 name을 어떻게 매핑시킬까? 

이를 name-address resolution이라고 한다.

 

Name resoultion방식에는 크게 두가지가 있다.

1. Static Mapping

 - Hostname to address mapping file or hosts file

 

2. Dynamic Mapping(DNS)

 - 인터넷은 하나의 management center에 대해 너무 많은 object를 가지고 있다.

 - distributed database system을 사용한다.

 - name space를 계층적 트리구조로 쪼개어 사용한다.

 

 

만약 클라이언트가 www.amazon.com의 IP를 원한다고 가정해보자.

1. 클라이언트는 root DNS server에게 com DNS server를 찾기 위해 쿼리를 날린다.

2. 클라이언트는 amazon.com DNS server를 얻기 위해 com DNS server에게 쿼리를 날린다.

3. 클라이언트는 www.amazon.com의  의 IP주소를 얻기 위해 amazon.com DNS server에게 쿼리를 날린다.

 

Root DNS servers 

 - 13개의 루트서버가 있다.

Top-levle Domain (TLD) servers 

 - com, org, net, edu 등과 uk, fr, ca, jp등 나라에 관련된 top-level을 책임진다.

 

Authoritative DNS server

 - 조직/단체의 DNS 서버이다. organization의 서버에 IP 매핑을 하기 위해 authoritative hostname을 제공한다.

 - 서비스 제공자나 조직/단체에 의해 유지된다.

 

Local Name Server

 - 각 ISP가 하나씩 가지고 있다. 또한 default name server라고도 불린다.

 - 호스트가 DNS쿼리를 생성하면 쿼리는 호스트의 local DNS server로 전송된다. 

 - 마치 proxy와 같이 작동하며, 쿼리를 계층에 따라 보낸다.

 

쿼리를 보내는 방식에는 두가지가 있다.

 

1. Iterative Queries

 

 

 

 

호스트는 현재 cis.poy.edu에 위치해있고 gaia.cs.umass.edu의 IP주소를 얻고 싶다.

 

이 방식에서 contacted server는 서버의 이름을 답해준다.

 

 

 

 

 

 

 

2. Recursive Queries

 

 

 

 

contacted name server에게 name resolution에 대한 burden을 put한다.

 

상위레벨로 갈수록 haevy load

 

 

 

 

 

 

 

DNS Caching

DNS에도 캐시아이디어가 적용된다.

어떤 네임서버가 mapping을 하면 캐시가 매핑된다.

 

 - 이 캐시 entry는 일정시간이 지나고나면(timeout) 사라진다.

 - TLD서버는 보통 local name server에 cahced되어있기 때문에 root name server에 접근하는 일은 거의 없다.

 - 만약 name host가 IP주소를 바꾸면 캐시 entry는 TTL이후 사라지지 않는 이상 잘못된 정보가 유지되게 된다. 때문에 변경사항이 일어나면 캐시의 내용을 강제적으로 수정할 수 있는 기능이 있다.

 

Service Provided by DNS

DNS는 UDP또는 TCP를 사용한다.

그러나 사실 UDP를 많이 사용한다. DNS에서 통신되는 데이터의 크기는 많이 작다. 하지만 TCP를 사용한다면 handshaking을 통해 connection을 만드는 과정또한 필요한데 이 과정이 실제 데이터 전송보다 오래걸릴 수 있다. 배보다 배꼽이 더 큰상황! 때문에 UDP를 주로 사용한다.

 

DNS records

DNS는 RR format을 사용한다.

'컴퓨터 네트워크 > Computer Networking 정리' 카테고리의 다른 글

CH2 : Application Layer (6)  (0) 2021.10.17
CH2 : Application Layer (5)  (0) 2021.10.17
CH2 : Application Layer (3)  (0) 2021.10.16
CH2 : Application Layer (2)  (0) 2021.10.16
CH2 : Application Layer (1)  (0) 2021.10.16