域名系統web
DNS 是一個分佈式數據庫,提供了主機名和 IP 地址之間相互轉換的服務。這裏的分佈式數據庫是指,每一個站點只保留它本身的那部分數據。數據庫
域名具備層次結構,從上到下依次爲:根域名、頂級域名、二級域名。瀏覽器
DNS 可使用 UDP 或者 TCP 進行傳輸,使用的端口號都爲 53。大多數狀況下 DNS 使用 UDP 進行傳輸,這就要求域名解析器和域名服務器都必須本身處理超時和重傳從而保證可靠性。在兩種狀況下會使用 TCP 進行傳輸:安全
FTP 使用 TCP 進行鏈接,它須要兩個鏈接來傳送一個文件:服務器
根據數據鏈接是不是服務器端主動創建,FTP 有主動和被動兩種模式:網絡
主動模式要求客戶端開放端口號給服務器端,須要去配置客戶端的防火牆。被動模式只須要服務器端開放端口號便可,無需客戶端配置防火牆。可是被動模式會致使服務器端的安全性減弱,由於開放了過多的端口號。分佈式
DHCP (Dynamic Host Configuration Protocol) 提供了即插即用的連網方式,用戶再也不須要手動配置 IP 地址等信息。學習
DHCP 配置的內容不只是 IP 地址,還包括子網掩碼、網關 IP 地址。網站
DHCP 工做過程以下:編碼
TELNET 用於登陸到遠程主機上,而且遠程主機上的輸出也會返回。
TELNET 能夠適應許多計算機和操做系統的差別,例如不一樣操做系統系統的換行符定義。
一個電子郵件系統由三部分組成:用戶代理、郵件服務器以及郵件協議。
郵件協議包含發送協議和讀取協議,發送協議經常使用 SMTP,讀取協議經常使用 POP3 和 IMAP。
SMTP 只能發送 ASCII 碼,而互聯網郵件擴充 MIME 能夠發送二進制文件。MIME 並無改動或者取代 SMTP,而是增長郵件主體的結構,定義了非 ASCII 碼的編碼規則。
POP3 的特色是隻要用戶從服務器上讀取了郵件,就把該郵件刪除。
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 |
假設主機最開始沒有 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 轉發表中安裝默認網關。
主機經過瀏覽器生成一個 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 地址,發回給主機。
知道了網關路由器的 MAC 地址以後,就能夠繼續 DNS 的解析過程了。
網關路由器接收到包含 DNS 查詢報文的以太網幀後,抽取出 IP 數據報,並根據轉發表決定該 IP 數據報應該轉發的路由器。
由於路由器具備內部網關協議(RIP、OSPF)和外部網關協議(BGP)這兩種路由選擇協議,所以路由表中已經配置了網關路由器到達 DNS 服務器的路由表項。
到達 DNS 服務器以後,DNS 服務器抽取出 DNS 查詢報文,並在 DNS 數據庫中查找待解析的域名。
找到 DNS 記錄以後,發送 DNS 回答報文,將該回答報文放入 UDP 報文段中,而後放入 IP 數據報中,經過路由器反向轉發回網關路由器,並通過以太網交換機到達主機。
有了 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 頁面。