1. 程式人生 > 其它 >學習python,從入門到放棄(31)

學習python,從入門到放棄(31)

學習python,從入門到放棄(30)

軟體開發架構

程式設計師在編寫軟體的時候應該遵循的架構設計,類似於我們寫ATM和選課系統所採用的三層架構。

軟體開發架構分為 C/S 架構和 B/S 架構。

C/S 架構的優勢在於針對客戶端可以高度定製,而劣勢在於需要使用者去下載才能使用。

B/S 架構的優勢在於無需下載,急速體驗,劣勢是無法做到高度定製,體驗效果較差。

目前的趨勢其實更加偏向於 B/S 架構。

網路程式設計簡介

網路程式設計的研究前提就是基於網際網路,網路程式設計就是基於網際網路編寫程式碼。

學習網路程式設計是為了後續開發 C/S 架構的軟體打下基礎。

該技術源於美國軍方,軍方想要實現不同計算機之間資料互動,沒有網路程式設計技術的時候只能拿U盤拷貝並攜帶,為了跨區域互動資料所以發明了網路程式設計。

網際網路協議

不同計算機之間要想實現無障礙互動,除了需要有物理連結介質之外還需要一套公有的標準。這個標準就是網際網路協議(OSI七層協議)

OSI七層協議簡介

所有的計算機在生產過程中必須有相同的部分和相同的功能。分為應、表、會、傳、網、數、物,分別是應用層、表示層、會話層、傳輸層、網路層、資料鏈路層、物理連結層。

上述的七層也有很多人總結為五層,應用層(三層)、傳輸層、網路層、資料鏈路層、物理連結層。

OSI七層協議的本質

OSI七層的本質其實就是規定了資料要想基於網路傳送出去必須在計算機上經歷一些固定的流程。

  • 物理連結層

    物理連結介質,用於傳遞電訊號。

  • 資料鏈路層

    基於物理連結層接收到一串二進位制數,規定二進位制資料的分組方式。

    規定乙太網協議,但凡能夠接入網際網路的計算機都必須有一塊網絡卡,每塊網絡卡在出廠的時候都會被燒製一個全世界獨一無二的編號,該編號是由12位16進位制陣列成,前六位是產商編號,後六位是流水線號,這個獨一無二的編號也有一個稱呼 mac 地址,類似於身份證號碼。基於 mac 地址就可以實現計算機之間的資料通訊了。

網際網路

  • 什麼是網際網路

    將計算機彼此連結到一起的介質。

  • 網際網路建立的目的

    基於網際網路進行資料互動。

  • 上網的本質

    基於網線去訪問其他計算機上面的資源

其實我們的計算機也可以稱之為是伺服器/服務端(專門對外提供服務)

專業設施名詞

  1. 交換機
    讓接入互動機的多臺計算機之間彼此互聯
  2. 區域網
    由交換機組成的網路稱之為區域網(一個區域)
  3. 廣播與單播
    廣播:在交換機中群發
    單播:定向回覆訊息(記錄mac地址)
  4. 路由器
    將區域網彼此連結起來並支援資料互動
    網際網路其實可以看成是由多個區域網連結在一起

在區域網中可以直接基於mac地址實現資料互動,但是可能會產生廣播風暴,即交換機中同一時間出現太多廣播操作造成伺服器損壞。mac地址只能用於區域網互動資料,不能跨區域網傳輸。

OSI七層協議網路層

  • IP協議
    規定了每臺接入網際網路的計算機都必須有一個IP地址(取決於網線),IP地址目前有兩個版本。

    • IPV4:點分十進位制

      最小:0.0.0.0

      最大:255.255.255.255

      隨著社會的進步,計算機的使用越來越普遍,IPV4 地址不夠用。

    • IPV6:十六進位制

      IPV6可以表示出地球上每一粒沙子,用於表示計算機綽綽有餘。

    IP地址可以唯一標識地球上獨一無二的一臺接入網際網路的計算機。

  • 公網 IP 和私網 IP

    公網 IP 是可以直接被瀏覽器訪問到的,但是私網 IP 是不可以的,我們所有人的電腦預設使用的都是私網 IP ,公網 IP 需要花錢購買並且需要實名認證並備案,很多非法網站都是在國外註冊備案。

OSI七層協議傳輸層

  • PORT協議(埠協議)

    一臺計算機上面可以執行很多資料互動軟體,它們都是從記憶體中獲取資料,為什麼不會錯亂,就是因為埠協議的存在。

    PORT 協議用於標識一臺計算機上面正在執行的應用程式。

    埠號的範圍是:0~65535。
    0~1024:系統經常使用的埠號。
    1024~8000:常用軟體埠號。
    我們以後在寫專案的時候推薦使用8000之後的埠。

    1. 同一時間同一臺計算機上面埠號不能衝突

    2. 埠號是動態分配的

      開啟一個軟體隨機分配一個沒有被使用的埠號如8888,關閉微信重新開啟那麼會隨機分配可能還是8888也可能是其他。

  • IP+PORT

    IP+PORT 能夠標識全世界獨一無二的一臺計算機上面的某一個應用程式。

    我們日常生活使用瀏覽器訪問的各個網址其實就是IP+PORT。

    因為直接使用IP地址非常難記,所以很多常見的服務端都不需要指定埠,只要訪問了IP地址內部去會自動對映。

    將好記的地址解析成真正的地址

    www.baidu.com》》》解析》》》202.108.22.5:80

OSI七層協議應用層

完全取決於編寫程式碼的程式設計師使用什麼協議。

TCP與UDP協議

TCP與UDP協議都屬於傳輸層。

  • TCP協議

    又叫流式協議、可靠協議,基於TCP協議進行資料互動之前需要做一系列複雜的操作:三次握手四次揮手。

  • UDP協議

    又叫丟包協議、不可靠協議,不需要建立雙下通道,資料的傳輸速度快,但是可能會丟失。

    但是我們可以在UDP協議的基礎之上做很多額外的擴充套件來保證資料的安全。

TCP協議為什麼比UDP協議可靠

TCP 協議之所以比 UDP 協議可靠 原因在於 TCP 協議傳送訊息有反饋機制,基於 TCP 傳送的訊息會在本地先儲存該訊息 如果地方確認收到才會刪除,否則在一定的時間內會頻繁的多次傳送知道確認或者超時為止,UDP 協議傳送資料之後會立刻刪除記憶體資料,不會保留。