C/S B/S 架構
C:client 端
B:browser 瀏覽器
S:server 端
C/S架構,基於客戶端與服務端之間的通信
- 例如:QQ,抖音,快手,微信,支付寶等等
- 優點:個性化設置,響應速度快
- 缺點:開發維護成本高,占用空間,用戶固定
B/S架構:基於瀏覽器與服務端之間的通信
- 谷歌瀏覽器,火狐瀏覽器
- 優點:開發維護成本低,占用空間相對低,用戶不固定
- 缺點:功能單一,沒有個性化設置,響應速度相對慢一些
網絡通信原理
- 兩台計算機要有一堆物理連接介質連接
- 找到對方計算機軟件位置
- 遵循一攬子互聯網通信協議
osi七層協議
-
物理層
- 物理層指的就是網線,光纖,雙膠線等等物理連接介質
- 物理層發送的是比特流,只發送比特流會有什么問題?
- 不知道多長為一組,多長為一個字節,頭是哪個?尾在哪兒?
- 引出數據應該有規律分組的問題,分組是數據鏈路層做的事情
-
數據鏈路層
- 數據鏈路層對比特流進行分組
- 剛開始從事互聯網企業的就是美國的幾家公司,各家有各家自定的分組標准。后來統一了標准,對數據分組的標准
- 以太網協議:對比特流進行合理的分組。
- 一組數據01010010叫做一幀,數據報。
- head|data("aaa")
- head 是固定的長度:18個字節
- 源地址:6個字節
- 目標地址:6個字節
- 數據類型:6個字節
- data:最少46個字節,最大1500字節。
- 一幀數據:最少64個字節,最大1518個字節
- MAC地址:每台電腦獨一無二的地址,前6個是廠商編號,后6個是流水線號
- 計算機的通信方式:
- 同一個局域網內,通過廣播的形式通信。
- 交換機的mac地址學習功能
- 第一次通過廣播找到目標mac地址,然后將其對應
- 第二次直接單播
- 前提是必須知道對方的mac地址,你才可以以廣播的形式發消息。實際上,網絡通信中,你只要知道對方的IP與自己打的IP即可
- 消息一經廣播發出,該局域網下所有的計算機都能接收到消息,分析消息,是否是找自己的,不是就丟棄
- 計算機只能在局域網內進行廣播:范圍大了會造成廣播風暴,效率極低
-
網絡層
-
IP協議:確定局域網(子網)的位置
-
ARP協議:通過對方的ip地址獲取到對方的mac地址
-
源碼mac 目標mac 源IP 目標IP 數據
1C-1B-0D-A4-E6-44 FF:FF:FF:FF:FF:FF 172.16.10.13 172.16.10.156 數據
第一次發消息: 發送到交換機 ---> 路由器 廣播的形式發出去
目標計算機收到消息:就要回消息:
源碼mac 目標mac 源IP 目標IP 數據
1B-1B-0D-A4-E6-54 1C-1B-0D-A4-E6-44 172.16.10.156 172.16.10.13 數據
-
總結:前提:知道目標mac
計算機A發送一個消息給計算機B
源碼mac 目標mac 源IP 目標IP 數據
單播的形式發送到交換機,交換機會檢測自己的對照表有沒有目標mac,如果有,單播傳,如果沒有,交由上一層:路由器
路由器收到消息:對消息進行分析:
要確定目標計算機與本計算機是否在同一個網段,如果在同一個網段,直接發送給對應的交換機,交換機再單播發給目標mac
如果不是在同一網段: ?
前提:不知道目標mac:
計算機A 發送一個消息給 計算機B
源碼mac 目標mac不知道 源IP 目標IP 數據
單播的形式發送到交換機,交換機交由上一層路由器:路由器收到消息: 對消息進行分析:
要確定目標計算機與本計算機是否在同一網段,
如果在同一網段通過 IP以及ARP協議獲取到對方的mac地址,然后在通信.
-
-
傳輸層
- TCP/UDP 確定軟件在計算機的位置
-
應用層
- 自己定義的協議
-
廣播(局域網內) + mac地址(計算機位置) + ip(局域網的位置) + 端口(軟件在計算機的位置)
-
有了以上四個參數:你就可以確定世界上任何一個計算機的軟件的位置
UDP協議 TCP協議
-
TCP(Transmission Control Protocol)可靠的、面向連接的協議(eg:打電話)、流式協議, 傳輸效率低全雙工通信(發送緩存&接收緩存)、面向字節流。使用TCP的應用:Web瀏覽器;文件傳輸程序。
-
UDP(User Datagram Protocol)不可靠的、無連接的服務,傳輸效率高(發送前時延小),一對一、一對多、多對一、多對多、面向報文(數據包),盡最大努力服務,無擁塞控制。使用UDP的應用:域名系統 (DNS);視頻流;IP語音(VoIP)。
-
端口
-
65535端口
-
1~1023 操作系統專門使用的端口 -- 周知端口
-
1024-49151 分配給用戶進程或應用程序 -- 注冊端口
-
49152-65535 動態端口 動態分配,不固定分配某種服務 -- 動態端口
-
舉例:3306數據庫
TCP協議的三次握手和四次揮手
四次揮手
syn洪水攻擊:制造大量的假的無效的IP請求服務器,致使正常的IP訪問不了服務器