一、DNS 域名系統
DNS 可以將網址字符串自動轉換爲具體的 IP 地址,維護一個用來表示組織內部主機名(域名)和 IP 地址之間對應關係的數據庫。
域名是指爲了識別主機名稱和組織機構名稱的一種名稱,具有層次結構,從上到下依次爲:根域名、頂級域名、二級域名。
DNS 是一個分佈式數據庫,這裏的分佈式數據庫是指,每個站點只保留它自己的那部分數據。
DNS 可以使用 UDP 或者 TCP 進行傳輸,使用的端口號都爲 53。大多數情況下 DNS 使用 UDP 進行傳輸,這就要求域名解析器(進行 DNS 查詢的主機和軟件)和域名服務器(管理域名的主機和軟件)都必須自己處理超時和重傳來保證可靠性。
在兩種情況下會使用 TCP 進行傳輸:
- 如果返回的響應超過 512 字節(UDP 最大隻支持 512 字節的數據)。
- 區域傳送(區域傳送是主域名服務器向輔助域名服務器傳送變化的那部分數據)。
二、FTP 文件傳送協議
FTP 使用 TCP 進行連接,它需要兩個連接來傳送一個文件:
- 控制連接:服務器打開端口號 21 等待客戶端的連接,客戶端主動建立連接後,使用這個連接將客戶端的命令傳送給服務器,並傳回服務器的應答。
- 數據連接:用來傳送一個文件數據。
根據數據連接是否是服務器端主動建立,FTP 有主動和被動兩種模式:
- 主動模式:服務器端主動建立數據連接,其中服務器端的端口號爲 20,客戶端的端口號隨機,但是必須大於 1024,因爲 0~1023 是熟知端口號。
- 被動模式:客戶端主動建立數據連接,其中客戶端的端口號由客戶端自己指定,服務器端的端口號隨機。
主動模式要求客戶端開放端口號給服務器端,需要去配置客戶端的防火牆。被動模式只需要服務器端開放端口號即可,無需客戶端配置防火牆。但是被動模式會導致服務器端的安全性減弱,因爲開放了過多的端口號。
三、DHCP 動態主機配置協議
DHCP (Dynamic Host Configuration Protocol) 提供了即插即用的連網方式,用戶不再需要去手動配置 IP 地址等信息。
DHCP 配置的內容不僅是 IP 地址,還包括子網掩碼、網關 IP 地址。
DHCP 工作過程如下:
- 客戶端發送 Discover 報文,該報文的目的地址爲 255.255.255.255:67,源地址爲 0.0.0.0:68,被放入 UDP 中,該報文被廣播到同一個子網的所有主機上。如果客戶端和 DHCP 服務器不在同一個子網,就需要使用中繼代理。
- DHCP 服務器收到 Discover 報文之後,發送 Offer 報文給客戶端,該報文包含了客戶端所需要的信息。因爲客戶端可能收到多個 DHCP 服務器提供的信息,因此客戶端需要進行選擇。
- 如果客戶端選擇了某個 DHCP 服務器提供的信息,那麼就發送 Request 報文給該 DHCP 服務器。
- DHCP 服務器發送 Ack 報文,表示客戶端此時可以使用提供給它的信息。
遠程登錄協議
1.TELNET 利用 TCP 的一條連接,通過它向主機發送文字命令並在主機上執行,並且遠程主機上的輸出也會返回。
常用於登錄路由器或高性能交換機等網絡設備進行相應的設置。
TELNET 可以適應許多計算機和操作系統的差異,例如不同操作系統系統的換行符定義。
2.SSH 加密的遠程登錄系統,即使信息被竊聽也無法破解所發送的密碼、具體命令以及命令返回的結果是什麼。
電子郵件協議
一個電子郵件系統由三部分組成:用戶代理、郵件服務器以及郵件協議。
郵件協議包含發送協議和讀取協議,發送協議常用 SMTP,讀取協議常用 POP3 和 IMAP。
1. SMTP
SMTP 在傳輸層使用了 TCP 協議。
SMTP 只能發送 ASCII 碼,而互聯網郵件擴充 MIME 可以發送二進制文件。MIME 並沒有改動或者取代 SMTP,而是增加郵件主體的結構,定義了非 ASCII 碼的編碼規則。
2. POP3
POP3 的特點是隻要用戶從服務器上讀取了郵件,就把該郵件刪除。
3. IMAP
IMAP 協議中客戶端和服務器上的郵件保持同步,如果不手動刪除郵件,那麼服務器上的郵件也不會被刪除。IMAP 這種做法可以讓用戶隨時隨地去訪問服務器上的郵件。
常用端口
應用 | 應用層協議 | 端口號 | 傳輸層協議 | 備註 |
---|---|---|---|---|
域名解析 | DNS | 53 | UDP/TCP | 長度超過 512 字節時使用 TCP |
動態主機配置協議 | DHCP | 67/68 | UDP | |
簡單網絡管理協議 | SNMP | 161/162 | UDP | |
文件傳送協議 | FTP | 20/21 | TCP | 控制連接 21,數據連接 20 |
遠程終端協議 | TELNET | 23 | TCP | |
超文本傳送協議 | HTTP | 80 | TCP | |
簡單郵件傳送協議 | SMTP | 25 | TCP | |
郵件讀取協議 | POP3 | 110 | TCP | |
網際報文存取協議 | IMAP | 143 | TCP |
Web 頁面請求過程
1. DHCP 配置主機信息
-
假設主機最開始沒有 IP 地址以及其它信息,那麼就需要先使用 DHCP 來獲取。
-
主機生成一個 DHCP 請求報文,並將這個報文放入具有目的端口 67 和源端口 68 的 UDP 報文段中。
-
該報文段則被放入在一個具有廣播 IP 目的地址(255.255.255.255) 和源 IP 地址(0.0.0.0)的 IP 數據報中。
-
該數據報則被放置在 MAC 幀中,該幀具有目的地址 FF:FF:FF:FF:FF:FF,將廣播到與交換機連接的所有設備。
-
連接在交換機的 DHCP 服務器收到廣播幀之後,不斷地向上分解得到 IP 數據報、UDP 報文段、DHCP 請求報文,之後生成 DHCP ACK 報文,該報文包含以下信息:IP 地址、DNS 服務器的 IP 地址、默認網關路由器的 IP 地址和子網掩碼。該報文被放入 UDP 報文段中,UDP 報文段有被放入 IP 數據報中,最後放入 MAC 幀中。
-
該幀的目的地址是請求主機的 MAC 地址,因爲交換機具有自學習能力,之前主機發送了廣播幀之後就記錄了 MAC 地址到其轉發接口的交換表項,因此現在交換機就可以直接知道應該向哪個接口發送該幀。
-
主機收到該幀後,不斷分解得到 DHCP 報文。之後就配置它的 IP 地址、子網掩碼和 DNS 服務器的 IP 地址,並在其 IP 轉發表中安裝默認網關。
2. ARP 解析 MAC 地址
-
主機通過瀏覽器生成一個 TCP 套接字,套接字向 HTTP 服務器發送 HTTP 請求。爲了生成該套接字,主機需要知道網站的域名對應的 IP 地址。
-
主機生成一個 DNS 查詢報文,該報文具有 53 號端口,因爲 DNS 服務器的端口號是 53。
-
該 DNS 查詢報文被放入目的地址爲 DNS 服務器 IP 地址的 IP 數據報中。
-
該 IP 數據報被放入一個以太網幀中,該幀將發送到網關路由器。
-
DHCP 過程只知道網關路由器的 IP 地址,爲了獲取網關路由器的 MAC 地址,需要使用 ARP 協議。
-
主機生成一個包含目的地址爲網關路由器 IP 地址的 ARP 查詢報文,將該 ARP 查詢報文放入一個具有廣播目的地址(FF:FF:FF:FF:FF:FF)的以太網幀中,並向交換機發送該以太網幀,交換機將該幀轉發給所有的連接設備,包括網關路由器。
-
網關路由器接收到該幀後,不斷向上分解得到 ARP 報文,發現其中的 IP 地址與其接口的 IP 地址匹配,因此就發送一個 ARP 回答報文,包含了它的 MAC 地址,發回給主機。
3. DNS 解析域名
-
知道了網關路由器的 MAC 地址之後,就可以繼續 DNS 的解析過程了。
-
網關路由器接收到包含 DNS 查詢報文的以太網幀後,抽取出 IP 數據報,並根據轉發表決定該 IP 數據報應該轉發的路由器。
-
因爲路由器具有內部網關協議(RIP、OSPF)和外部網關協議(BGP)這兩種路由選擇協議,因此路由表中已經配置了網關路由器到達 DNS 服務器的路由表項。
-
到達 DNS 服務器之後,DNS 服務器抽取出 DNS 查詢報文,並在 DNS 數據庫中查找待解析的域名。
-
找到 DNS 記錄之後,發送 DNS 回答報文,將該回答報文放入 UDP 報文段中,然後放入 IP 數據報中,通過路由器反向轉發回網關路由器,並經過以太網交換機到達主機。
4. HTTP 請求頁面
-
有了 HTTP 服務器的 IP 地址之後,主機就能夠生成 TCP 套接字,該套接字將用於向 Web 服務器發送 HTTP GET 報文。
-
在生成 TCP 套接字之前,必須先與 HTTP 服務器進行三次握手來建立連接。生成一個具有目的端口 80 的 TCP SYN 報文段,並向 HTTP 服務器發送該報文段。
-
HTTP 服務器收到該報文段之後,生成 TCP SYN ACK 報文段,發回給主機。
-
連接建立之後,瀏覽器生成 HTTP GET 報文,並交付給 HTTP 服務器。
-
HTTP 服務器從 TCP 套接字讀取 HTTP GET 報文,生成一個 HTTP 響應報文,將 Web 頁面內容放入報文主體中,發回給主機。
-
瀏覽器收到 HTTP 響應報文後,抽取出 Web 頁面內容,之後進行渲染,顯示 Web 頁面。