顯示具有 網路服務運作流程 標籤的文章。 顯示所有文章
顯示具有 網路服務運作流程 標籤的文章。 顯示所有文章
Proxy 伺服器是一種防火牆元件,主要用來管理 Internet 與區域網路間進出的資料,以及提供文件快取及存取控制等功能的伺服器,即是只要代表其它電腦傳遞封包或訊息的伺服器即稱之,常見的類型有 Proxy Caching、Mail Proxy、FTP Proxy,而 Proxy Caching 便是用來節省頻寬的使用以及檔案傳輸時間之用,它可以在硬碟中建立一個空間,然後將用戶端最近曾經瀏覽過的網頁資料儲存於此,當下次用戶端再要求瀏覽同一網頁時,即可由硬碟中直接抓取,而不用再透過網路存取原來的 Internet 主機。

WebProxy 運作流程說明

用戶端要求網頁流程:
  1. 用戶端 A 向 Proxy 伺服器提出網頁要求。
  2. Proxy 伺服器接受此要求,並且代替用戶端向 Internet 上的 Web 主機要求指定的網頁內容。
  3. Internet 上的 Web 主機將所要求的網頁傳送至 Proxy 伺服器,同時 Proxy 伺服器會將此網頁存入快取中。
  4. Proxy 伺服器將此網頁結果回應給用戶端 A。(請尊重 Weithenn 的辛勞!!)
  5. 其他如用戶端 B 再向 Proxy 伺服器提出相同的網頁內容要求時。
  6. Proxy 伺服器便直接利用其快取中的網頁回應給用戶端 B。
NAT 伺服器主要是用來簡化及保護 IP 位址,它可讓原本無法上網而且使用內部 IP 位址的主機可以成功的連接 Internet。如此將大大減少 IP 位址的需求,因為基本上整個內部網路都可藉 NAT 上的一個外部 IP 來連至 Internet。

NAT 運作流程說明

Source NAT(SNAT 即 IP 偽裝):

當使用私人 IP 位址的電腦對外傳送 IP 封包,首先會送至具有網路位址轉譯功能的路由器 (NAT主機),並在此將 IP 封包的來源位址,從私人位址轉為合法的 IP 位址後,再送到外界。

Destination NAT(DNAT 即平衡負載):

IP 封包從外界送入時, NAT 主機會藉由用戶端 TCP/UDP 連接埠號碼來判別並判斷封包目的地,然後將目的位址從合法的 IP 位址轉為私人位址,再送到區域網路內,或配合 RDR 當收到傳給那些 DMZ 的請求時,NAT 可以把這些請求轉送給內部網路中提供服務的。(請尊重 Weithenn 的辛勞!!)
在 TCP/IP 的網路中每一台電腦必須有一個唯一的 IP,不能重覆。另外如果有變更 TCP/IP 設定時,網管人員要每一台電腦去修改設定,不但費時、費力,有時容易造成設定錯誤。而 DHCP(Dynamic Host Configuration Protocol,動態主機設定協定)就可解決上述問題,DHCP 能夠動態的分配 IP 位址給每台網路上的電腦,而且也能設定 TCP/IP 的其他參數可有效減少網管人員的負擔.

DHCP 服務架構由三個部分所組成:

  • DHCP 用戶端 (Client):要求使用 DHCP 服務的電腦,皆為 DHCP 用戶端。
  • DHCP伺服器 (Server):提供 DHCP 服務給予 DHCP 用戶端的設備即為 DHCP 伺服器。
  • 領域 (Scope):每台 DHCP 伺服器至少會管理一組 IP 位址,這組 IP 位址便稱為領域。當 DHCP 用戶端要 DHCP 時,DHCP 伺服器便會傳回一個未被使用的 IP 位址,分配給 DHCP 用戶端。

DHCP 運作流程說明

  1. 以廣播的方式尋找 DHCP 伺服器並要求 IP 位址。
  2. DHCP 伺服器以廣播方式回應一個沒有被使用的 IP 給用戶端。
  3. 用戶端以廣播方式告知 DHCP 伺服器確認要租用這組 IP。
  4. DHCP 伺服器訂定租約要求並將租約回覆給用戶端。(請尊重 Weithenn 的辛勞!!)
  5. 用戶端收到由 DHCP 伺服器的回覆租約要求,然後 DHCP 伺服器收到後同意用戶端租用 IP 並開始計算租用時間。
DNS(Domain Name System) 網域名稱系統,可讓我們由一部主機的完整網域名稱 FQDN(Fully Qualified Domain Name) 查到其 IP 位址,也可以由其 IP 位址反查到主機的完整網域名稱。

DNS 運作流程說明

  1. 用戶端要求解析 www.abc.com.tw. 的 IP 位址。
  2. 指定的DNS伺服器向根網域的 DNS 伺服器詢問 www.abc.com.tw. 的 IP 位址。
  3. 根網域的DNS伺服器告知 .tw. 的 DNS 伺服器的 IP 位址。
  4. 指定的DNS伺服器向管轄 .tw. 的 DNS 伺服器詢問 www.abc.com.tw. 的 IP 位址。
  5. 管轄 .tw. 的 DNS 伺服器告知 com.tw. 的 DNS 伺服器的 IP 位址。
  6. 指定的 DNS 伺服器向管轄 com.tw.的 DNS 伺服器詢問 www.abc.com.tw. 的 IP 位址。
  7. 管轄 com.tw. 的 DNS 伺服器告知 abc.com.tw. 的 DNS 伺服器的 IP 位址。
  8. 指定的 DNS 伺服器向管轄 abc.com.tw. 的 DNS 伺服器詢問 www.abc.com.tw. 的 IP位址。
  9. 管轄 abc.com.tw. 的 DNS 伺服器告知 www.abc.com.tw. 的 DNS 伺服器的 IP 位址。
  10. 指定的 DNS 伺服器解析出 www.abc.com.tw 的 IP 位址,並傳回給用戶端。

DNS 查詢工具

Host

#host tw.yahoo.com   //使用host指令(以查詢yahoo為例)
 tw.yahoo.com is a nickname for vip1.tw.tpe.yahoo.com               //對應nickname
 vip1.tw.tpe.yahoo.com has address 202.1.237.21                     //對應IP
 vip1.tw.tpe.yahoo.com mail is handled (pri=1) by nomail.yahoo.com  //mail主機,優先順序


nslookup

設定查詢的項目之後再輸入欲查詢的網域名稱即可
server 168.95.1.1     //將dns查尋工作交給168.95.1.1去執行解析
set type=soa          //設定查詢soa記錄(origin、serial、refresh...)
set type=ns           //設定查詢ns記錄(name server)
set type=a            //設定查詢a記錄(host)
set type=mx           //設定查詢mx記錄(mail) 


dig

(請尊重 Weithenn 的辛勞!!)
#dig tw.yahoo.com
 <<>> DiG 8.3 <<>> tw.yahoo.com                      //dig版本
 res options: init recurs defnam dnsrch
 got answer:
 ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 2  //dig 答覆
 -->NXDOMAIN 網域不存在
 -->SERVFAIL 網域組態錯誤
 flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 6, ADDITIONAL: 6
 QUERY SECTION:                                      //所查詢網域的class及type
 tw.yahoo.com, type = A, class = IN
 ANSWER SECTION:                                     //所查詢網域的主機資訊
 tw.yahoo.com. 4m2s IN CNAME vip1.tw.tpe.yahoo.com.  //4m2s 為伺服器快取時間
 vip1.tw.tpe.yahoo.com. 1h34m2s IN A 202.1.237.21
 AUTHORITY SECTION:                                  //列出相關的NS記錄、快取時間
 tpe.yahoo.com. 1d23h34m2s IN NS ns1.yahoo.com.
 tpe.yahoo.com. 1d23h34m2s IN NS ns2.yahoo.com.
 tpe.yahoo.com. 1d23h34m2s IN NS ns3.yahoo.com.
 tpe.yahoo.com. 1d23h34m2s IN NS ns4.yahoo.com.
 tpe.yahoo.com. 1d23h34m2s IN NS ns5.yahoo.com.
 tpe.yahoo.com. 1d23h34m2s IN NS ns6.yahoo.com.
 ADDITIONAL SECTION:                                 //列出相關的host記錄、快取時間
 ns1.yahoo.com. 1d23h34m2s IN A 66.218.71.63
 ns2.yahoo.com. 1d23h34m2s IN A 66.163.169.170
 ns3.yahoo.com. 1d23h34m2s IN A 217.12.4.104
 ns4.yahoo.com. 1d23h34m2s IN A 63.250.206.138
 ns5.yahoo.com. 1d23h34m2s IN A 216.109.116.17
 ns6.yahoo.com. 1d23h34m2s IN A 202.1.232.170
E-mail系統中,包括了 MUA(Mail User Agent) 與 MTA(Mail Transport Agent) 二個部份:
  • MUA (Mail User Agent):一般使用者用來讀信、寫信、處理郵件的程式稱之,例如 Windows 的 Outlook、Linux 的 pine。
  • MTA (Mail Transport Agent):系統中負責處理信件收發工作的伺服器端軟體稱之,簡單說也就是郵件伺服器,在 Unix 系統中最常使用的就是 Sendmail 與Postfix.

Mail 運作示意圖及流程圖

電子郵件傳遞示意圖及流程圖


Mail 運作流程說明

  1. 用戶端使用 MUA 撰寫郵件後,利用 TCP 連接埠 25,將電子郵件傳送至所屬的郵件伺服器 (MTA) 中,這些郵件會被暫時存放在佇列 (Queue) 中。
  2. 經郵件伺服器的判斷,若收件者為遠端網路的使用者,則伺服器會先跟DNS伺服器要求解析遠端伺服器的 IP。
  3. 如果成功的解析遠端伺服器的 IP 時,則本地端的郵件伺服器 (MTA) 將利用 SMTP 通訊協定將郵件傳送到遠端的郵件伺服器。但若解析失敗,則無法進行郵件的傳遞。(請尊重 Weithenn 的辛勞!!)
  4. SMTP 會嘗試與遠端的郵件伺服器連行連接,如果連接成功,則將郵件傳送至遠端的伺服器,收件者即可利用 POP 或 IMAP 的通訊協定,連接至收件者的郵件伺服器下載或直接讀取郵件。但若是遠端郵件伺服器無法接受郵件,則這些郵件會繼續停留在 Queue 中,然後在指定的時間內再次嘗試連接,直到成功或放棄傳送為止。
FTP(File Transfer Protocol) 是目前 Internet 中最常使用來作為傳輸檔案的方法。它與 Web 伺服器一樣,都是使用 TCP 為傳輸時的通訊協定,因此能提供較可信賴的連接導向(Connection-Oriented)傳輸。

FTP 運作流程圖

FTP 伺服器和用戶端電腦資料交換的過程如下三圖所示:

階段一、監聽


階段二、連接


階段三、傳遞


FTP 運作流程說明

  1. 用戶端使用 Three-Way Handshake與 FTP 伺服器端建立 TCP 交談。
  2. FTP伺服器利用 TCP 21 連接埠來傳送和接收 TCP 控制資訊,以便於傾聽用戶端的連線要求,在連線建立後,此連接埠會全程開啟。
  3. FTP伺服器使用 TCP 20 連接埠來傳送與接收 FTP 檔案,傳送完成後即關閉。(請尊重 Weithenn 的辛勞!!)
  4. 用戶端在向 FTP 伺服器提出連線要求後,會在 1024 ~ 65535 的連接埠中動態指定一個連接埠。並以此動態連接埠與 FTP 伺服器上的 TCP 21 連接埠來建立交談。
  5. 用戶端會開啟另一連接埠連到 FTP 伺服器上的 TCP 20 連接埠,以便傳輸資料。而且每一次有檔案要傳輸時,用戶端會開啟一個新的連接埠與FTP伺服器連線。
HTTP(Hypertext Transfer Protocol) 是 Web 伺服器與用戶端瀏覽器之間彼此溝通的語言,不論是接收端與傳送端在資料交換時都要遵照 HTTP 的標準來進行,而 HTTP 的標準屬於 OSI 協定中的第七層 — 應用層。

用戶端與伺服器端進行資料交換時多是採用 Three-Way-Handshake 的方式,這種方式指用戶端與伺服器端心須透過三個階段才能完成資料的交換
  • 建立交談 (Session)
  • 用戶端要求
  • 伺服器端回應要求等

HTTP 運作流程說明

第一階段:建立交談(Session)

用戶端的瀏覽器利用 TCP(Transmission Control Protocol) 這個通訊協定,透過連接埠 80 來與伺服器建立交談,亦即用戶端與伺服器端在進行資料交換前,先行規定稍後資料交換時的協調標準,例如封包數量、傳送速率和封包啟始編號,以確保資料在傳輸過程中不會產生錯誤。

第二階段:用戶端要求

在建立交談後,用戶端會傳送標準的 HTTP 要求至伺服器,以得到所需的資料。通常所使用的方法是 HTTP 中的「GET」。(請尊重 Weithenn 的辛勞!!)

第三階段:伺服器端回應要求

若是用戶端要求的資料或檔案存在伺服器中,則伺服器會回應用戶端的要求,並將資料或檔案傳送至用戶端的瀏覽器中。如果用戶端的所要求的資料或檔案不在伺服器端,則伺服器會回應用戶端錯誤的訊息。