一、網絡分層
1.七層(接口):解耦,便於開發
應用層:
- 7.應用層:nginx,軟件,瀏覽器,DNS
- 6.表示層
傳輸層:
- 5.會話層
- 4.傳輸層:lvs負載均衡
網絡層:
- 3.網絡層
鏈路層
- 2.鏈路層
- 1.物理層
2.四層:TCP/IP協議,OSI 7L參考模型對7層的簡化分層和實現
舉例:GET / www.baidu.com/
1.應用層(應用層+表示層糅合):對數據與字符串的封裝
- http:字符串書寫格式與兩端方法的交互方式的定義
- smtp
- ssh
4.傳輸層(會話層+傳輸層糅合)(控制):[三次握手>>(傳輸數據)>>四次揮手]
- 連接的定義:非物理的連接,是邏輯連接,是一種狀態的確認(對TCP來說,就是三次握手的狀態確認)
- tcp:面向連接(狀態)的可靠傳輸協議
- 過程:客戶端和服務端通信,客戶端從65535個端口號中申請一個端口號和服務器固定端口進行通信(一般來說是80端口),三次握手成功後,客戶端和服務端會各自開闢一個線程來進行通信。所以高併發問題會產生在線程數量和線程池方面。
- udp:不是面向連接的,不可靠的
- socket: IP:PORT-IP:PORT
- -netstat -natp
5.網絡層:192.168.9.11
- ip.icmp
- ROUTE:下一跳
- -route -n
6.鏈路層(鏈路層+物理層糅合):
- 以太網:Ethernet:MAC
- ARP:全F,兩點通信,交換機學習
- arp -a
nginx:負載5w臺,處在應用層,需要在傳輸層建立三次握手後才能進行應用層數據解析和負載
lvs負載均衡:負載10w臺,工作在傳輸層,在三次握手>>數據傳輸>>四次揮手的整個過程中都可以監視數據包的狀態,來進行快速的負載均衡,但是由於lvs沒有權限觀看應用層數據,所以屬於瞎子負載,不會根據數據包的真實業務需求來進行業務負載,可能導致將數據包發送到錯誤的服務器(不幹這個業務的服務器),這時需要nginx和lvs負載搭配使用來可以達到百萬級別負載能力。也就是流量先集中在lvs負載均衡服務器,然後這些lvs負載均衡服務器將這些數據發送給它後面的nginx服務器,再由nginx服務器做負載均衡,發送給後臺的各種業務功能的tomcat服務器。