網路開發兩大架構
早期資料互動的格式是沒有網路的
兩個檔案之間的資料互動需要通過第三個檔案
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(最大報文段生存時間)這么長時間之后
客戶端與服務端徹底斷開連接

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/453774.html
標籤:Python
上一篇:python函式的兩種嵌套方法
下一篇:網傳的Spring大漏洞
