網路開發兩大架構 早期數據交互的格式是沒有網路的兩個文件之間的數據交互需要通過第三個文件a,b文件同時和c文件交互,a文件把數據先存放c文件中b文件從c文件取,反之亦然socket (套接字) 是一個收發數據的工具 有了網路之後a文件中的數據,通過網路協議,轉化101010...二進位進行發送a文件 ...
網路開發兩大架構
早期數據交互的格式是沒有網路的
兩個文件之間的數據交互需要通過第三個文件
a,b文件同時和c文件交互,
a文件把數據先存放c文件中
b文件從c文件取,反之亦然
socket (套接字) 是一個收發數據的工具
有了網路之後
a文件中的數據,通過網路協議,轉化101010...二進位進行發送
a文件藉助socket發送數據
b文件藉助socket接受數據
兩大架構
c/s 架構 :
c => client (客戶端)
王者榮耀 微信 qq wow dnf ...
s => server (服務端)
天河三號 (百億億次)
B/S 架構 :
b => Brower (瀏覽器)
谷歌,火狐,360,ie
通過輸入網址,訪問對方的伺服器,對方伺服器響應之後,把數據返回,瀏覽器通過返回的數據,渲染頁面,看到最後的結果
s => server (服務端)
一旦開啟,永不關機(除非宕機)
在未來,更傾向於使用B/s架構,成為新的趨勢
小程式: 微信小程式, 支付寶小程式
(1) 省去複雜下載安裝環節,節省手機電腦的空間
(2) 因為手機帶來的便捷性,隨時隨地使用到想要的應用,提升用戶的滿意度
一臺主機有兩個重要標識:
(1)mac地址:標記一臺機器的物理地址 (不可變)
(2)ip 地址:#標記一臺機器的邏輯地址 (可變)
IP地址是指互聯網協議地址(英語:Internet Protocol Address,又譯為網際協議地址),是IP Address的縮寫。ip地址用來標記網路上的每一臺主機,方便在收發數據,網路請求時能夠找到響應;
ip地址分為兩種 ipv4 和 ipv6: 分類ipv4 和 ipv6:
ipv4地址是一個32位的二進位數
ipv6地址是一個128位的二進位數
ipv4: 以4段點分十進位表示 X.X.X.X => 範圍
0.0.0.0 ~ 255.255.255.255 地址範圍2^32-1
ipv6 : 以8段冒分十六進位表示 X:X:X:X:X:X:X:X => 範圍
0:0:0:0:0:0:0:0 ~ FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF地址範圍2^128-1
ip地址的最後一位0或者255 兩個數字不能用,一般最後一位0表達的是網段,255代表廣播地址
網段 : 網段的作用,主要用來劃分同一區域里的某些機器是否能夠互相通信。在一個網段里可以不同過網際網路,直接對話
判別的依據:如果IP地址和子網掩碼相與得到的值相同就是同一網段
內網 : 以下地址為預留地址,永遠不會被當做公網ip來分配
192.168.0.0 - 192.168.255.255
172.16.0.0 - 172.31.255.255
10.0.0.0 - 10.255.255.255
外網 :
在任何地方都可以訪問的就是外網(排除防火牆的因素)
子網掩碼:區分網段和主機
255.255.255.0 / 255.255.0.0 / 255.0.0.0
ip1:192.168.10.12 ip2:192.168.1.16
埠:"埠"是英文port的意譯,是具體某個程式與外界通訊的出口。 取值範圍:0~65535
使用時至少8000以上 訪問地址加埠:192.168.2.1:8000
區域網:在同一區域內由多台電腦互聯形成通訊。【具有可重覆的內網ip】
廣域網:在不同區域內有多台電腦互聯形成通訊。【具有唯一的公網ip】
交換機:對同一網段的不同機器之間進行數據轉發的設備 [每一臺機器和交換機相連,形成通信]
路由器:對不同網段的不同機器之間進行數據轉發的設備 [每一個區域網和路由器相連,形成通信]
arp協議:每台主機都有arp緩存表 ,主要作用通過ip找mac的一個協議規則
【實現方式:通過交換機一次廣播,一次單播找到的】
網路的概念
網段的作用:
主要用來劃分同一區域里的某些機器是否能夠互相通信。
在一個網段里可以不同過網際網路,直接對話
判別的依據:
如果IP地址和子網掩碼相與得到的值相同就是同一網段
"""
邏輯與
全真則真,一假則假
邏輯或
一真則真,全假則假
"""
ip1: 192.168,11.251
子網掩碼:255.255.255.0
11000000 10101000 00001011 11111011
11111111 11111111 11111111 00000000
11000000 10101000 00001011 00000000 => 192.168.11.0 (網段)
ip2: 192.168,12.35
子網掩碼:255.255.255.0
11000000 10101000 00001100 00100011
11111111 11111111 11111111 00000000
11000000 10101000 00001100 00000000 => 192.168.12.0 (網段)
ip1: 192.168,11.251
子網掩碼:255.255.0.0
11000000 10101000 00001011 11111011
11111111 11111111 00000000 00000000
11000000 10101000 00000000 00000000 => 192.168.0.0 (網段)
ip2: 192.168,12.35
子網掩碼:255.255.0.0
11000000 10101000 00001011 11111011
11111111 11111111 00000000 00000000
11000000 10101000 00000000 00000000 => 192.168.0.0 (網段)
下麵的網路相同,意味著可以互相通信;
埠
埠:具體某個程式與外界通訊的出口 取值範圍:0~65535
192.168.2.1:8000 訪問這個世界上任何一個電腦里的任何一個軟體
自定義埠時,最好命名8000以上的埠號
https://blog.csdn.net/l_smalltiger/article/details/81951824
20 : FTP文件傳輸協議(預設數據口)
21 : FTP文件傳輸協議(控制)
22 : SSH遠程登錄協議
25 : SMTP伺服器所開放的埠,用於發送郵件
80 : http用於網頁瀏覽,木馬Executor開放此埠
443: 基於TLS/SSL的網頁瀏覽埠,能提供加密和通過安全埠傳輸的另一種HTTP => HTTPS
3306:MySQL開放此埠
osi 網路七層模型
應用層 (應用層,表示層,會話層)
封裝數據:
根據不同的協議,封裝不同格式的數據
http (超文本傳輸協議)
HTTPS (加密傳輸的超文本傳輸協議)
FTP (文件傳輸協議)
SMTP (調子郵件傳輸協議)
傳輸層:
封裝埠:
指定傳輸協議(TCP協議/UDP協議)
網路層:
封裝ip:
ipv4版本 / ipv6
數據鏈路層:
封裝mac地址:
指定mac地址(arp協議[ip->mac] / rarp協議[mac->ip])
物理層:
打成數據包,變成二進位的位元組流,通過網路進行傳輸
交換機與路由器 , 發送數據包流程
交換機: 從下到上拆2層,拆到數據鏈路層
路由器: 從下到上拆3層,拆到網路層(得到對應的網段)
arp協議: 通過ip -> mac
rarp協議: 通過mac -> ip
arp協議整體是通過: 一次廣播 + 一次單播 實現
arp協議的完整過程:
電腦a發現目標主機沒有mac,先發送arp廣播包,把mac標記成全F的廣播地址
交換機接受到arp的廣播包,進行從下到上拆包,拆2層,拆到數據鏈路層看到全F廣播地址,開始廣播
把這個廣播包發送給每一臺主機
每台主機得到廣播包後,都開始拆包,如果該數據包找尋的主機不是自己,自動捨棄
路由器得到arp廣播包後,從下到上拆包,拆3層,拆到網路層,得到網段信息
通過路由器的對照信息表,找到網段對應的網關(介面)
對應網關的這台交換機得到arp廣播包後,從下到上拆包,拆2層,發現全F廣播地址進行廣播
資料庫主機收到廣播包後,依次從下到上拆包,發現自己是目標要找的那台主機,
把自己的ip->mac對照信息封裝,變成arp響應包,發送給對應的交換機
交換機得到arp響應包之後,依次進行單播,返回給最終的原主機
在回來的過程中,所有得到過相應arp廣播包的主機都會自動更新自己的arp解析表,方便下次使用
TCP/UDP協議:
TCP(Transmission Control Protocol)一種面向連接的、可靠的、傳輸層通信協議(比如:打電話)
優點:可靠,穩定,傳輸完整穩定,不限制數據大小
缺點:慢,效率低,占用系統資源高,一發一收都需要對方確認
應用:Web瀏覽器,電子郵件,文件傳輸,大量數據傳輸的場景
# udp
UDP(User Datagram Protocol)一種無連接的,不可靠的傳輸層通信協議(比如:發簡訊)
優點:速度快,可以多人同時聊天,耗費資源少,不需要建立連接
缺點:不穩定,不能保證每次數據都能接收到
應用:IP電話,實時視頻會議,聊天軟體,少量數據傳輸的場景
# TCP 三次握手
客戶端發送一個請求消息,與服務端建立連接
服務端接受這個請求,發出響應消息,回應客戶端,也要與客戶端a建立連接(看下a是否同意)
客戶端接受服務端的響應消息之後,發送回覆消息(表達同意,到此客戶端與服務端建立連接成功)
# TCP 發送數據
每次發送一次數據,都會對應一個回執消息,如果發送方沒有接受到回執消息,那麼該數據包在發送一次;
# TCP 四次揮手
客戶端向服務端發送一個斷開連接請求(代表客戶端沒有數據給服務端)
服務端接受請求,發出響應
等到服務端所有數據發送完畢之後
服務端向客戶端發送斷開連接請求
客戶端接受請求,發出響應
等到2msl,msl(最大報文段生存時間)這麼長時間之後
客戶端與服務端徹底斷開連接