「一分鐘系列」快速了解四層

場景:訪問用戶通過proxy請求

被訪問的真實服務器

路徑:用戶 -> proxy -> real-server

什麼是代理?

回答:[proxy]代表[訪問用戶],此時proxy是代理

例如:

在家訪問xxoo網站,不希望xxoo網站trace到我們的真實ip,於是就找一個proxy,通過proxy來訪問,此時proxy代表用戶,網站以為proxy的ip就是用戶的ip

什麼是反向代理?

回答:[proxy]代表[被訪問的服務器],此時proxy是反向代理

例如:

web-server希望對用戶屏蔽高可用、屏蔽web-server擴展、web-server內網ip等細節,於是就找了一個proxy隔在中間,此時proxy代表web-server集群,用戶以為proxy的ip就是被訪問web-server的ip(web-server是集群,具體訪問了哪個web-server,用戶不知道),由於web-server集群有多臺,此時反向代理服務器要具備

負載均衡的功能。

一般怎麼做反向代理,負載均衡?

回答:nginx/apache,lvs,F5

什麼是四層(轉發/交換),什麼是七層(轉發/交換)?

大學“計算機網絡”課程,之前都是用這個七層模型,新版教程用TCP/IP五層模型,這兩個模型之間有一個對應關係如下:

「一分鐘系列」快速瞭解四層/七層反向代理


可以看到,四層是指傳輸層,七層是指應用層。

更具體的,對應到nginx反向代理hash:

  • 四層:根據用戶ip+port來做hash
  • 七層:根據http協議中的某些屬性來做hash


為什麼中間少了幾層?

回答:OSI應用層、表示層、會話層合併到TCP/IP的應用層啦。

上面有四層,七層,那有沒有二層,三層呢?

回答:有

  • 二層:根據數據鏈路層MAC地址完成數據交換
  • 三層:根據網絡層IP地址完成數據交換


希望解答了大夥之前的一些疑問,希望這一分鐘沒有浪費,如果有描述不準確的地方,歡迎指正。


分享到:


相關文章: