網絡編程

網絡編程

一、軟件開發架構

一、C/S架構:創建在局域網的基礎上,須要安裝客戶端才能使用mysql

​ Client:客戶端,好比QQ、微信等客戶端redis

​ Server:服務端sql

優勢:軟件的使用穩定,節省網絡資源mongodb

缺點:安裝麻煩,用戶體驗差,軟件每次更新,用戶都須要從新下載或更新版本django

二、B/S架構:即瀏覽器和服務器架構模式,好比手機微信小程序,不須要下載客戶端使用編程

​ Browser(本質上也是一個客戶端):瀏覽器flask

​ Server:服務端小程序

優勢:軟件的使用方便,用戶體現高,無需跟着軟件的更新去下載(比較流行的架構)微信小程序

缺點:若是網絡不穩定,使用就不穩定瀏覽器

客戶端與服務端

服務端:24小時不間斷提供服務

客戶端:客戶想要找服務時纔會訪問服務端

二、互聯網協議(OSI七層協議)

計算機與計算機之間溝通的介質——互聯網協議,讓全部的廠商生產的電腦都遵循這套協議,實現全部的電腦之間無障礙通訊,「互聯網協議」是計算機界的中文,英文等

OSI七層協議

  1. 應用層
  2. 會話層
  3. 表示層
  4. 傳輸層
  5. 網絡層
  6. 數據鏈路層
  7. 物理層

編寫程序須要關注5層:(由下往上記)

  1. 應用層
  2. 傳輸層
  3. 網絡層
  4. 數據鏈路層
  5. 物理層

一、物理層

獲取到對象計算機的電信號數據

沒法獲取具體數據內容,須要將電信號數據(數據包)扔給數據鏈路層

二、數據鏈路層

以太網協議:

  1. 規定一套分組的方式,來獲取電信號的真實數據(數據包)

    以太網協議由head和data組成

    ​ head由18個字節組成,前6位是發送者,中間6位是接收者,後6位是數據類型

    ​ data是電信號的具體數據

  2. 每一臺電腦都必需要有一個網卡(一個硬件,在電腦插入網線的地方)

    每一臺電腦網卡都有一個獨一無二的一串數字:12位16進制的數字,稱爲「Mac地址」

    mac地址:前六位是廠商號,後六位是流水號

    mac地址做用:標識全世界上獨一無二的計算機

以太網協議的工做方式:單播和廣播

缺點:一、廣播風暴;二、只能在局域網內實現通訊,沒法跨局域網實現通訊

所以爲了實現全世界的計算機之間的通訊有網絡層

三、網絡層

爲了實現全世界的電腦之間通訊

IP地址(IP協議):由點分十進制的數字組成

IPV4:最小範圍:0.0.0.0

​ 最大範圍:255.255.255.255

IP的版本:IPV4和IPV6,IPV4數量用完後相應出現IPV6

IP的做用:用於標識全世界某一臺計算機的位置,局域網的位置

IP地址+mac地址:標識全世界某一個局域網內的,某一臺計算機

arp協議:將IP地址與Mac地址綁定到一塊兒了,全部能夠經過IP地址找到Mac地址

四、傳輸層

tcp與udp都是基於「端口」實現通訊,有TCP協議和UDP協議

主要是軟件與軟件之間的通訊

port端口:用於標識計算機中某一個獨一無二的軟件

​ 注意:

​ 0—1024:禁止使用,操做系統在使用

​ 使用8000以上的端口數

軟件固定的端口號(不要碰): django: 8000 mysql: 3306 redis: 6379 flask: 5000 tomcat: 8080 mongodb: 27017

mac地址+IP地址+port端口:標識的是全世界範圍內某一個局域網內某一臺計算機的某一個軟件

五、應用層

大佬們制定好的一套協議

http協議

ftp協議

自定義的協議

數據的傳輸是先從應用層到物理層進行包裝,後傳遞給另外一臺計算機解包是從物理層到應用層提取到數據

三、TCP協議

TCP協議:創建客戶端與服務端之間的雙向通道
標記位含義:
ACK:確認序號有效。
SYN:發起一個新鏈接。
FIN:釋放一個鏈接。

三次握手,建鏈接:

  1. 客戶端向服務端發送請求創建鏈接(通道1,C—>S)
  2. 服務端返回收到給客戶端,並向客戶端發送請求創建鏈接(通道2,S—>C)
  3. 客戶端返回收到給服務端,創建雙向鏈接

反饋機制:

客戶端往服務端發送請求,服務端必須有迴應,一次請求必需要有一次響應

缺點:

​ 洪水攻擊:僞造大量的請求,往對方服務端發送,致使服務端響應跟不上,以致於癱瘓

防止洪水攻擊:1. Linux系統有一個參數能夠限制。 2. 半鏈接池listen,限制用戶在同一個時間段內的訪問數量

四次揮手,斷開鏈接:

  1. 客戶端向服務端發送請求斷開鏈接(通道1,C—>S)
  2. 服務端返回收到給客戶端
  3. 服務端確認全部數據接收完成之後,發送斷開鏈接給客戶端
  4. 客戶端返回收到給服務端,斷開鏈接(通道2,S—>C)

四、UDP協議

稱爲數據包協議

特色:

  1. 不須要創建鏈接
  2. 不須要知道對方是否收到
  3. 數據不安全
  4. 傳輸速度快
  5. 能支持併發
  6. 不會粘包
  7. 無需先啓動服務端再啓動客戶端

TCP協議與UDP協議的區別:

TCP協議:

​ 優勢:數據安全

​ 缺點:傳輸速度慢,粘包

UDP協議:

優勢:

  1. 傳輸速度快
  2. 能支持併發
  3. 不會粘包

缺點:數據不安全,容易丟失

相關文章
相關標籤/搜索