2012-01-11 6 views
0

DNS 2 수준 도메인 조회는 얼마나 효율적입니까? 예를 들어 url web.example.com에서 최상위 도메인은 .com이고 두 번째 수준 도메인은 .example입니다. web.example.com을 쿼리하면 루트 서버가 .com 용 gTLD 서버를 제공합니다. .com 용 gTLD 서버를 선택한 후이 서버는 example.com의 네임 서버를 반환합니다. 가능한 한 두 번째 수준의 도메인이 너무 많을 수 있으므로 어떻게 가능한 모든 2 차 수준 도메인 (예 : "example.com")에 대한 이름 서버를 하나의 gTLD에서 알 수 있습니까? wikipedia (en.wikipedia.org/wiki/Domain_Name_System#Structure)를 기반으로 각 레이블은 최대 63 자입니다. 따라서 영어 알파벳으로 제한하면 이미 26^63 개의 2 차 수준 도메인이 가능합니다.DNS 2 수준 도메인 검색 효율성

답변

1

그 이유는 실제로 26^63 도메인 중 거의 실제로 사용되지 않기 때문입니다.

또한 DNS 시스템은 계층 적이기 때문에 ISP의 DNS 서버가 예를 들어 cnn.com을 찾으면 다른 클라이언트가 데이터를 캐시하고 설정 시간 동안 루트 서버에 다시 묻지 않습니다 그것에 대해 물어보십시오. 잠시 후 많은 루트 도메인이 클라이언트에 매우 가까이 캐시됩니다. 루트 서버는 자신의 작품이 그들을 위해 잘라하지 않는 것을 말하는 것이 아니다

... :-)

+0

루트 서버에는 매우 작은 데이터베이스가 있지만 _lots_ 개의 쿼리가 있습니다. – Alnitak

0

(내가 확인하지 않은,하지만 내가 주를 볼 때 물을 것이다 가장 가능성 다음에 BIND의 저자)는 단지 표준 binary tree을 사용합니다.

제대로 균형 잡힌 이진 트리가 ~ 100M .com 도메인 이름을 보유하려면 약 27 레벨 깊이가되어야합니다.

일반적으로 DNS 서버는 필요에 따라 정렬 된 영역 파일을 생성 할 수 있어야하므로 해시 테이블은 정렬 된 키 목록을 생성 할 수 없기 때문에 hash table을 사용하지 않을 수 있습니다.