網路是如何連線的--第五章筆記

徹恩發表於2018-02-13

第五章 服務端區域網有什麼玄機

本章主要是與部署網站比較接近的地方,我也是第一次接觸到防火牆,快取伺服器和負載均衡器的實現原理,在之前只是聽說有這個名詞。

5.1 Web 服務的部署地點

常見的Web部署的方式有三種:① 和路由器直接的方式,此時伺服器在網際網路上是處於“裸露”的狀態而且IP地址也不足;② 通過防火牆的連線,防火牆會先對包進行檢查,只轉發允許的包;③ 部署在接入網的資料中心,因為比較接近POP或者IX 所以速度高,安全並且維護成本也低。

5.2 防火牆結構和原理

Ⅰ 基本思路: 只允許發往特定伺服器上特定程式的包,其餘都遮蔽。

Ⅱ 常見實現方式:包過濾,應用閘道器,電路層閘道器。

Ⅲ 對於包過濾是通過檢測報的頭部資訊來實現的

包過濾的欄位包括: MAC頭部的 傳送方MAC地址 ;IP頭部的 傳送/接收IP,協議號; TCP/UDP 頭部:傳送方/接收方的埠號;TCP 控制位(ACK,SYN,PSH,RST。FIN等)

Ⅳ 埠限定應用程式。比如說在服務端僅僅是 80 或者8080 埠的可以進入,其餘的都必須遮蔽;

Ⅴ 控制位判斷連線的方向

舉例:如果禁止伺服器訪問網際網路,傳送方自己的埠是 80 並且 SYN = 1,ACK = 0 的時候禁止,因為這個時候是伺服器作為客戶端向外請求建立連線。

如果是 UDP作為連線是無法判斷方向的所以只能是要麼全部保留,要麼是全部遮蔽。

Ⅵ 從公司內網訪問公開區域的規則

這裡的內網相當於家庭中的路由下面的區域網,公開區域相當於預設路由到分配的公網IP地址這一段。此時要配置兩個包轉發規則,一個是從內網到公開區域的規則,一個是從公開區域到網際網路的包轉發規則。

Ⅶ 從外網訪問公司的內網。

一般為了安全是不允許從外網訪問公司的內網。在一般情況下,包過濾防火牆具備這地址轉換的功能來實現從外部網際網路訪問內部網路。個人理解:外網,無法直接訪問內部區域網,那麼外網訪問路由,路由根據資訊轉給內網對應的裝置

Ⅷ 在通過防火牆的時候,如果是允許那麼就像路由一樣進行包轉發操作,如果是需要遮蔽的包不進行轉發並且將包的相關資訊(包括目的IP地址,源IP地址等)記錄下來(後期提高效率使用)。那跟路由器的功能差不多為何不是使用路由呢?原因很簡單:路由記憶體小,增加記錄負擔更大,佔用更多的頻寬。

Ⅷ 僅僅是通過檢查起點和終點是不能完全抵禦攻擊的,因為這種辦法不能對資料的內容進行檢查,所以有兩個常見的解決方法:一個是 通過修復 Web伺服器的Bug,第二個是設定包內容檢查的裝置軟體,其中最為有效的是 第一種。

5.3 通過請求平均分配給多臺伺服器實現負載均衡

Ⅰ 在一臺web發伺服器訪問量過多或者需要執行的程式過多的時候,可以通過提高提高寬頻或者提供效能更好的伺服器來實現,但是還是會有到達瓶頸的時候,那麼設定三臺配置三個IP地址就解決了。

此時的問題是:三個IP地址到底是哪一個呢?最簡單的方式是輪詢,所謂輪詢是指的 在WebDNS伺服器上設定三個IP地址指向同一個域名。每次會返回不同的IP地址。第一個問題是DNS不知道這個伺服器的情況,即便是伺服器癱瘓了,依舊會返回指定的IP地址。第二個問題是在跨頁面操作的時候,不能連續操作(比如商城中在這個頁面下單,在另一個頁面支付。)

Ⅱ 使用負載均衡器

此時webDNS伺服器的註冊IP地址是 負載均衡器的IP地址,負載均衡器與多個Web伺服器相連

判斷的方式:① 當不跨頁面操作的時候,定期採集伺服器CPU、記憶體等或者提前按比例分配;②當跨頁面(提交表單或者HTTP頭部的控制資訊)的時候是直接傳送到同一個web伺服器上。

5.4 使用快取伺服器分擔負載

Ⅰ 快取伺服器是什麼? 介於web伺服器與客戶端之間進行資料的中轉。(Web 伺服器返回的資料儲存在磁碟上,客戶端請求的時候,是代替web伺服器把磁碟中的內容返回給客戶端)

注意:快取並非是永久的,CGU程式每次產生不同的資料也不能進行資料的快取。簡言之,快取只能快取靜態的檔案不能快取動態的資料

Ⅱ 如何更新: 通過時間來管理內容

① 快取伺服器的工作過程: 先代替 web 伺服器註冊到 DNS 伺服器上,客戶端發起請求先經過快取伺服器,快取伺服器接收請求訊息並檢視在本地是否有快取。

② 當 資料沒有在快取伺服器的時候,快取伺服器將請求轉發給伺服器,web 伺服器通過響應機制將資料傳送給快取伺服器(在HTTP的標頭檔案中會新增 via 欄位),快取伺服器將響應的資料傳送給客戶端的同時並且儲存在本地中。

③ 當 資料在快取伺服器的時候,僅會向伺服器傳送一個探測的包,如果伺服器資料有更新與上部相同,如果與快取內容一致則直接傳送給客戶端。

④ 一般一個快取伺服器對應著多個 Web 伺服器,那麼訪問的時候會根據請求的URL的目錄名來判斷訪問的哪一個Web伺服器。
快取伺服器相對於web伺服器是客戶端,客戶端相對應快取伺服器是web伺服器,新增via頭部代表著經過了快取伺服器。
快取伺服器是以 web服務的身份向客戶端傳送響應訊息,並且將響應訊息儲存在快取中,記錄儲存的時間。

⑤ 在快取伺服器端沒有的時候具體的過程是:快取伺服器將請求訊息傳送給伺服器的同時,請求訊息的頭部會新增 If-Modified-since 欄位,web伺服器根據其值與伺服器端資料最後更新時間相比較。HTTP程式碼: 304

Ⅲ 正向代理 參考資料 所謂的正向代理是代理客戶端,隱藏了客戶端,伺服器不知道是誰在訪問。

最早的時候其實就是在客戶端的防火牆或者快取伺服器。

大體過程:客戶端將請求訊息給代理,代理伺服器偽裝成客戶端傳送給Web伺服器。同時如果之前訪問的時候可以直接從本地獲取快取的內容提高訪問的速度。

使用代理配置代理的IP地址,在web請求的時候並非是目錄而是整個域名。

Ⅳ 反向代理 所謂的反向代理是代理的伺服器,基本上是一個負載平衡器比如Nginx。

Ⅴ 透明代理 快取伺服器通過檢視訊息的包頭部分來判斷轉發的目標,直接攔截TCP/IP,修改HTTP請求報文,直接傳送到目的地址,不需要知道代理伺服器的存在。

5.5 內容分發服務

Ⅰ 利用內容分發服務分擔負載

兩個終點:快取伺服器放在web伺服器的一端的時候,減少了web伺服器的請求,但不會減少網路的請求,造成網路擁塞;快取伺服器放在客戶端的時候,伺服器這端不能受到控制,不能夠及時的更新快取,同時客戶端也不一定有快取伺服器。

此時比較折中的方案是Web服務商與運營商達成合作將伺服器放在網際網路的邊緣處,服務商能控制而且離客戶端還近,但全球上千萬家既傷心又傷財的,所以出現了一個新的網路提供商,叫做內容分發服務商,簡稱 CDN

Ⅱ 如何找到最近的快取伺服器呢?

方法一: 像負載均衡一樣用DNS進行分配訪問,在只有一個IP地址的時候,無所謂客戶端的DNS伺服器向 伺服器端DNS伺服器查詢對用的IP地址返回即可,但當是多個IP地址的時候可能會給分配到距離相對較遠的IP地址。

方法二: 判斷客戶端與快取伺服器的距離,先收集從快取伺服器的路由資訊到Web伺服器端的DNS伺服器上,接著DNS伺服器根據路由資訊查詢客戶端DNS伺服器的路由資訊,同時比對返回較近的地址。

Ⅲ 通過重定向伺服器來查詢

大體思路: 使用HTTP中的 Location 欄位,將客戶端訪問引導到另一臺伺服器上叫做重定向

過程: 重定向伺服器註冊到web服務端的DNS伺服器上,同時重定向伺服器收集各個快取伺服器的各種路由資訊,客戶端進行請求的時候根據路由資訊將最近的放在 Location 中作為回應。缺點是增加了HTTP請求的次數,但是優化最高。

Ⅳ 關於快取更新的方式

web伺服器發生資料更新的時候會立即通知快取伺服器;對於CGI等動態資料,不能儲存在快取伺服器中,所以要靜態與動態的分離。

相關文章