비동기적인 통신 매체
분배가 쉽고, 빠르고, 저렴하다.
사용자 에이전트, 메일서버, SMTP
메일 서버
에 있는 메일박스에서 메시지를 가져온다.그 메시지를 메시지 큐에 보관
하고 나중에 그 메시지를 전달하기 위해 다시 시도함. (재시도는 30분마다)사용자 에이전트
: 사용자가 메시지를 읽고, 응답하고, 저장하고, 구성하게 해준다.메일 서버
: 전자메일 인프라스트럭처의 중심메일 박스
를 갖고 있다.SMTP
: 인터넷 전자메일을 위한 주요 애플리케이션 계층 프로토콜송신자의 메일 서버로부터 수신자의 메일 서버로 메시지를 전송함.
HTTP는 전송 전에 멀티미디어 데이터를 ASCII로 변환하는 것을 요구하지 않는다!
두 메일 서버가 먼 거리에 떨어져 있더라도 중간 메일 서버를 사용하지 않음.
마주본 사람의 상호작용에 이용되는 프로토콜과 유사
송신자의 전자메일 주소와 수신자의 전자메일 주소를 제공함.
TCP의 신뢰적인 데이터 전송 서비스에 의존함.
서버에게 메시지의 끝
을 나타냄.지속 연결
을 사용한다는 것을 언급.헤더가 메시지 몸체 앞에 오게 됨.
빈 줄(CRLF)
로 분리됨.From: 헤더 라인과 To: 헤더 라인을 반드시 가져야 함.
문제가 있음!
메일 서버가 메일 박스를 관리하고 SMTP의 클라이언트와 서버 측 모두를 수행한다는 것을 기억하라
비현실적
사용자 에이전트를 수행하고 늘 켜져 있는 공유 메일 서버에 저장된 메일박스에 접근함.
앨리스 사용자 에이전트는 밥의 메일 서버로 직접 대화하지 않는다.
그녀의 메일 서버로 전자메일 메시지를 SMTP 또는 HTTP를 이용하여 보냄.
그러나 고려되지 않은 한 가지 문제
→ 로컬 호스트 PC에서 사용자 에이전트를 수행하는 밥과 같은 수신자는 자신의 ISP 내부의 메일 서버에 있는 자신의 메시지를 어떻게 얻을 수 있는가?
식별자
→ 사람을 여러 가지 방법으로 식별할 수 있는 것처럼, 인터넷 호스트도 마찬가지!호스트 이름
이다.IP주소
로도 식별됨.사람은 좀 더 기억하기 쉬운 호스트 이름 식별자를 좋아하지만, 라우터는 고정 길이의 계층 구조를 가진 IP주소를 좋아함.
선호 차이를 절충하기 위해, 호스트 이름을 IP 주소로 변환해주는 디렉터리 서비스가 필요
함. ⇒ DNS의 주요 임무
DNS
DNS는 다른 애플리케이션 프로토콜들이 HTTP, SMTP, FTP 등 사용자가 제공한 호스트 이름을 IP 주소로 변환하기 위해 주로 사용함.
(예) 어떤 사용자의 호스트에서 수행되는 브라우저가 URL (www.someschool.edu/index.html) 을 요청할 때 어떤 일이 발생하는가?
사용자의 호스트가 HTTP 요청 메시지를 웹 서버 www.someschool.edu로 보낼 수 있도록 사용자 호스트는 www.someschool.edu의 IP주소를 얻어야만 함.
DNS는 DNS를 사용하는 인터넷 애플리케이션에 추각 지연을 준다
IP 주소는 가까운 DNS 서버에 캐싱되어 있어서 평균 DNS 지연뿐만 아니라 DNS 네트워크 트래픽 감소에 도움을 줌.
DNS는 호스트 이름을 IP 주소로 변환하는 것
외에 다양한 중요 서비스를 제공함.
호스트 에일리어싱
: 복잡한 호스트 이름을 가진 호스트는 하나 이상의 별명을 가질 수 있음.메일 서버 에일리어싱
부하 분산
: DNS는 중복 웹 서버 같은 여러 중복 서버 사이에 부하를 분산하기 위해서도 사용되고 있음.DNS 측의 클라이언트를 호출
할 것이다.포트 53의 UDP 데이터그램
으로 보내짐.그러므로 사용자 호스트의 호출한 애플리케이션 관점에서 DNS는 간단하고 직접적인 변환 서비스를 제공하는 블랙박스
모든 매핑을 포함하는 하나의 인터넷 네임 서버
를 생각할 수 있음.서버의 고장
: 네임 서버가 고장 나면, 전체 인터넷이 작동하지 않음.트래픽 양
: 단일 DNS 서버가 모든 DNS 질의를 처리해야 함.먼 거리의 중앙 집중 데이터베이스
: 단일 DNS 서버가 모든 질의 클라이언트로부터 가까울 수만은 없음. → 매우 심각한 지연을 일으킬 수 있음.유지관리
: 갱신. 중앙 집중 데이터베이스에 호스트를 등록할 수 있도록 사용자에게 허용하는 것과 관련된 인증 문제가 있음.단일 DNS 서버에 있는 중앙 집중 데이터베이스는 확장성이 전혀 없다.
⇒ 결과적으로 DNS는 분산되도록 설계되었다.
DNS 서버 사이에 분산된다.
루트 DNS 서버
최상위 레벨 도메인 네임 DNS 서버
책임 DNS 서버
(중간 DNS 서버 해당될걸?)기관의 책임 DNS 서버는 이 DNS 레코드를 갖고 있음!
로컬 DNS 서버
이다.DNS 구조의 중심
에 있음.가까이
있음.지연 성능 향상과 네트워크의 DNS 메시지 수를 줄이기 위해 캐싱을 사용
DNS 질의와 응답 메시지
DNS의 메시지 포맷
헤더 영역
(6개 필드)첫 필드
는 질의를 식별하는 16비트 숫자. 이 식별자는 질의에 대한 응답 메시지에 복사되어, 클라이언트가 보낸 질의와 수신된 응답 질의 간의 일치를 식별하게 함.플래그 필드
: ..질문 영역
: 현재의 질의에 대한 정보를 포함DNS 서버로부터의 응답에서 답변 영역
: 원래 질의된 이름에 대한 자원 레코드를 포함함.책임 영역
: 다른 책임 서버의 레코드를 포함추가 영역
: 다른 도움이 되는 레코드를 포함하고 있음.nslookup 프로그램
등록기관
: 도메인 네임의 유일성을 확인하고, 그 도메인 이름을 DNS 데이터베이스에 넣고, 그 서비스에 대한 약간의 요금을 우리로부터 받는 상업기관