我們已經知道
既可以使用主機名標識一台主帆
也可以使用IP地址標識
人們更願意使用便於記憶的主機名標識符
而路由器則只願使用長度固定並有層次結構的IP地址
我們可以通過多種方法來識別一個人
例如
通過出生證明上的姓名
還可以通過社會安全編號
通過駕駛執照編號
盡管這些標識都可以用來識別人
但是在某種背景下會有一種標識比其他的標識更加恰當
例如
IRS(美國的一個稅收機構)中的計算機喜歡使用固定長度的社會安全編號而不是出生證上的姓名來標注
另——方面
日常生活中人們喜歡用更好記的出生證上的姓名而不是社會安全編號〔確實
你能想象出如果一個人說
嗨
我的名字是
—
—
請找一下我丈夫
—
—
會是何等滑稽的場景)
因特網中的主機就像人一樣能以多種力式標識
標識方法之一是使用主機名(hostname)
主機名(例如
)是助記性的
人們更願意使用
然而主機名幾乎沒有提供關於主機在因特網中的位置信息(主機名為的主機也許是在中國境內
此外不再有別的位置信息了)
另外
主機名是由可變長度的字母數字字符構成的
路由器處理起來有困難
因此因特網中的主機也使用所謂的IP地址標識
我們將在以後深入討論IP地址
這裡只簡單地說明一下
IP地址由
個字節構成
具有嚴格的層次結構
IP地址一般以點分十進制數格式表示
也就是說所有
個字節都以
—
之間的十進制數表示
各個字節之間以點號分隔
例如
IP地址具有層次結構
當從左到右掃描某個地址時
我們得到關於其主機在因特網中所在位置的越來越明確的信息
這就像從下到上掃描某個郵政地址時
我們得到關於住宅所在位置的越來越明確的信息一樣
DNS提供的服務 我們已經知道
既可以使用主機名標識一台主帆
也可以使用IP地址標識
人們更願意使用便於記憶的主機名標識符
而路由器則只願使用長度固定民有層次結構的IP地址
為調解這兩種不同的偏好
我們需要一個把主機名轉換成IP地址的目錄服務
這就是因特網的域名系統(Domain Name System
DNS)的主要任務
DNS既是一個在由名稱服務器主機構成的層次結構中實現的分布式數據庫
又是一個允許客戶主機和名稱服務器主機通信以使用域名轉換服務的應用層協議
名稱服務器主機通常是運行Berkeley Internet Name Domain(簡稱BIND)軟件的UNIX主機
DNS協議運行在UDP之上
使用端口號
其他應用層協議(例如HTTP
SMTP
FTP)普遍使用DNS把由用戶提供的主機名轉換成IP地址
作為例子
我們考慮某個用戶使用運行在本地主機上的一個浏覽器(也就是HTTP客戶)請求時會發生什麼
為了把HTTP請求消息發送到名為的web服務器主機
浏覽器必須獲悉這台主機的IP地址
我們知道
差不多每台主機都運行著DNS應用的客戶端
浏覽器從URL中抽取出主機名後把它傳遞給本地主機上的DNS應用客戶端
DNS客戶於是向某個DNS服務器發出一個包含該主機名的DNS查詢消息
DNS客戶最終收到一個包含與該主機名對應的IP地址的應答消息
浏覽器接著打開一個到位於該IP地址的HTTP服務器的TCP連接
從這個例子中可以看出
DNS給使用它的因特網應用引入了額外延遲(有時還相當大)
所幸的是
正如我們即將討論的那樣
預期的主機名—IP地址對應關系往往高速緩存在就近的DNS名稱服務器主機中
從而幫助降低了DNS訪問延遲和DNS網絡流量
除了從主機名到IP地址的轉換
DNS還提供其他一些重要的服務:●主機別名(hody aliasing)
具有復雜主機名的主機還可以有一個或多個別名
例如
主機名為relay
west
的主機有兩個別名:和
這種情況下
主機名relay
west
特稱為正規主機名(canonical hostname)
另外兩個主機名則是別名主機名(alias hostname)
別名主機名往往比正規主機名更便於記憶
應用可以調用DNS獲取所給定別名主機名的正規主機名和IP地址
●郵件服務器別名(mall server aliasing)
電子郵件地址顯然要求便於記憶
例如
如果Bob有一個hotmail賬號
那麼他的電子郵件地址可能是簡單的
然而hotmail郵件服務器的主機名要比復雜且不易記住
電子郵件應用可以調用DNS獲取所給定別名主機名的正規主機名和IP地址
事實上
DNS允許一個公司的郵件服務器和Web服務器使用相同的別名主機名
例如
某個公司的web服務器和郵件服務器可以都稱為
●負載分擔(load distribution)
DNS還越來越多地用於執行在多個復制成的服務器(例如復制成的Web服務器)之間的負載分擔
像那樣的繁忙站點往往把Web服務器復制成多個
每個服務器運行在不向的端系統上
具有不同的IP地址
對於復制成的多個Web服務器
與其單個正規主機名相關聯的是一組IP地址
DNS數據庫中保存著這組IP地址
客戶發出針對映射到一組IP地址的某個主機名的DNS查詢後
服務器響應以整組IP地址
不過每次響應的地址順序是輪轉的
既然訪問web站點時
浏覽器一般把HTTP請求消息發送給內DNS客戶否詢到的一組IP地址中的第一個
DNS輪轉於是把web站點的訪問負載分擔在所有復制成的服務器上
電子郵件應用也可以使用DNS輪轉
這樣多個郵件服務器可以有相同的別名
近來
有些公司已經以更為復雜的方式使用DNS提供web內容分發服務
DNS在RFC
和RFC
中有詳細說明
並在另外若干個RFC中作了更新
DNS是一個復雜的系統
我們只在這兒討論其操作的關鍵方面
感興趣朗讀者可以參見協議文檔
From:http://tw.wingwit.com/Article/os/fwq/201311/10315.html