DNS(Domain Name System)
DNS是一整套從域名映射到IP的系統
域名服務器發展背景
TCP/IP中使用IP地址和端口號來確定網絡上的一臺主機的一個程序. 但是IP地址不方便記憶. 于是人們發明了一種叫主機名的東西, 是一個字符串, 并且使用hosts文件來描述主機名和IP地址的關系.
最初, 通過互連網信息中心(SRI-NIC)來管理這個hosts文件的.
- 如果一個新計算機要接入網絡, 或者某個計算機IP變更, 都需要到信息中心申請變更hosts文件.
- 其他計算機也需要定期下載更新新版本的hosts文件才能正確上網.
DNS系統
- 一個組織的系統管理機構, 維護系統內的每個主機的IP和主機名的對應關系.
- 如果新計算機接入網絡, 將這個信息注冊到數據庫中;
- 用戶輸入域名的時候, 會自動查詢DNS服務器, 由DNS服務器檢索數據庫, 得到對應的IP地址.
域名服務器:
根域名服務器->頂級域名服務器->二級域名->三級域名
域名的劃分:
頂級域名(.com/.org/.gov/.cn/.jp/.us)
二級域名(.baidu.com .qq.com…)
三級域名: .image.baidu.com…
域名解析流程
例如:http://image.baidu.com/search/index
瀏覽器中輸入url后, 發生的事情.
1)瀏覽器解析
(2)查詢緩存
(3)DNS查詢
順序如下,若其中一步成功則直接進去建立鏈接部分:
- 瀏覽器自身DNS
- 操作系統DNS
- 本地hosts文件
- 像域名服務器發送請求
(4)建立鏈接
- TCP三次握手(three-way handshaking)
(5)發送HTTP請求
(6)服務器發送響應
(7)客戶端收到頁面
(8)解析HTML
(9)構建渲染樹
(10)瀏覽器布局渲染
ICMP
ICMP協議是一個 網絡層協議 ,主要用于網絡探測
一個新搭建好的網絡, 往往需要先進行一個簡單的測試, 來驗證網絡是否暢通; 但是IP協議并不提供可靠傳輸. 如果丟 包了, IP協議并不能通知傳輸層是否丟包以及丟包的原因.
發送ICMP請求應答報文,要求對方進行應答,收到應答表示網路通暢
ICMP功能
- 確認IP包是否成功到達目標地址.
- 通知在發送過程中IP包被丟棄的原因.
- ICMP也是基于IP協議工作的. 但是它并不是傳輸層的功能, 因此人們仍然把它歸結為網絡層協議;
- ICMP只能搭配IPv4使用. 如果是IPv6的情況下, 需要是用ICMPv6
問題來了
telnet是23端口, ssh是22端口, 那么ping是什么端口?
ping命令基于ICMP, 是在網絡層. 而端口號, 是傳輸層的內容. 在ICMP中根本就不關注端口號這樣的信息.
NAT服務
網絡中地址轉化技術
對數據中的源端地址進行修改,修改為自己主機的地址信息;目的是為了保證數據發送出去后響應能夠原路返回
通常部署在網關設備上,工作在網絡層
- NAT能夠將私有IP對外通信時轉為全局IP. 也就是就是一種將私有IP和全局IP相互轉化的技術方法:
- 很多學校, 家庭, 公司內部采用每個終端設置私有IP, 而在路由器或必要的服務器上設置全局IP;
- 全局IP要求唯一, 但是私有IP不需要; 在不同的局域網中出現相同的私有IP是完全不影響的
NAT IP轉換過程
- NAT路由器將源地址從10.0.0.10替換成全局的IP 202.244.174.37;
- NAT路由器收到外部的數據時, 又會把目標IP從202.244.174.37替換回10.0.0.10;
- 在NAT路由器內部, 有一張自動生成的, 用于地址轉換的表;
- 當 10.0.0.10 第一次向 163.221.120.9 發送數據時就會生成表中的映射關系;
NAT和代理服務器
- 路由器往往都具備NAT設備的功能, 通過NAT設備進行中轉, 完成子網設備和其他子網設備的通信過程.
- 代理服務器看起來和NAT設備有一點像. 客戶端像代理服務器發送請求, 代理服務器將請求轉發給真正要請求的服務 器; 服務器返回結果后, 代理服務器又把結果回傳給客戶端
NAT和代理服務器的區別
- 代理程序工作在應用層,進行數據轉發,可以部署在任意設備上
- NAT在網絡層進行地址替換,目標地址永遠不變
- 代理服務,主機請求的地址就是代理服務器的地址,而不是直接目標
- 從應用上講, NAT設備是網絡基礎設備之一, 解決的是IP不足的問題. 代理服務器則是更貼近具體應用, 比 如通過代理服務器進行翻墻, 另外像迅游這樣的加速器, 也是使用代理服務器.
- 從底層實現上講, NAT是工作在網絡層, 直接對IP地址進行替換. 代理服務器往往工作在應用層.
- 從使用范圍上講, NAT一般在局域網的出口部署, 代理服務器可以在局域網做, 也可以在廣域網做, 也可以 跨網.
- 從部署位置上看, NAT一般集成在防火墻, 路由器等硬件設備上, 代理服務器則是一個軟件程序, 需要部署 在服務器上
代理服務器是一種應用比較廣的技術.
- 翻墻: 廣域網中的代理.
- 負載均衡: 局域網中的代理.