cs架構和bs架構.課堂小結day26

軟件開發架構

客戶端:用戶安裝的軟件;mysql

服務端:統一管理數據庫的主機中的軟件就叫作服務端,再後來服務端不僅是管理數據,外加處理業務邏輯。sql

c/s架構

​ 應用領域:mongodb

  • QQ數據庫

  • 大型網絡遊戲編程

    計算機發展初期用戶去取數據,直接就去主機拿,從這裏開始就分出了客戶端和服務端。瀏覽器

    架構要求:服務器

    1. 用戶操做系統安裝客戶端;產商操做系統部署服務端
    2. 每一個用戶須要獨立安裝軟件、服務端升級也要每一個用戶升級

b/s架構

應用領域:網絡

  • 淘寶
  • 京東

統一客戶端即默認安裝用戶電腦中的瀏覽器,訪問同種類的網站,具體業務的處理根據相應協議和標準提供通用的服務器程序,在不一樣的服務器處理。架構

網絡編程

實現遠程通訊必須具有:socket

1.物理鏈接介質 ---》 網卡

2.互聯網協議

互聯網協議

互聯網協議又稱爲網絡七層協議,OSI七層協議,OSI是一個世界標準組織。

OSI

應用層: 應用層、表示層、會話層

​ Talent,FTP,SMTP,DNS,HTTP以及其餘應用協議

傳輸層:TCP,UDP

網絡層: IP,APP,RARP,ICMP

網絡接口:數據鏈路層、物理層

​ 各類通訊網絡接口(以太網等)(物理網絡)

- 物理鏈接層
           基於電信號發送二進制的數據0101010111。
           010: 你  you
           101: 我  I

        - 數據鏈路層
            數據鏈路層的 "以太網協議",專門用於處理基於電信號發送二進制的數據。

            以太網協議:
                1.規定好電信號數據的分組方式。
                2.每一臺鏈接網線的電腦都必需要由一塊 "網卡"。
                    - 網卡由不一樣廠商生產的
                        - 每塊網卡都會有世界上獨一無二12位的編號 "mac"地址。
                            - 前6位: 廠商號
                            - 後6位: 流水號

         - 交換機:
                可讓多臺電腦鏈接到一塊兒。

            基於以太網協議發送數據:
                特色:
                    廣播、單播

                弊端:
                    廣播風暴、不能跨局域網通訊。

        - 互聯網:
                讓局域網之間進行通訊。

        - 網絡層
            IP地址: 用於標識惟一的一臺計算機(局域網)的地址。
            IP: 點分十進制
                最小值: 0.0.0.0
                最大值: 255.255.255.255

            IPV4(瞭解):
                一開始用電腦的人很少,因此出現IPV4的協議版本。

            IPV6(瞭解):
                括號IP。

            本機IP: 迴環地址 127.0.0.1 ---> localhost

        - 傳輸層
            TCP/UDP協議,他們都是基於端口工做的。

            - 端口號: 標識電腦上某個一個軟件。

            - 端口號範圍: 0-65535

            注意:
                1.操做系統中,通常0-1024的端口都被默認使用了(0-1024不要動)
                2.儘可能使用8000以後的端口號 8001

            開發中經常使用軟件的默認端口號 (默寫) :
                mysql: 3306
                mongodb: 27017
                Django: 8000
                Tomcat: 8080
                Flask: 5000
                Redis: 6379


            若想服務端與客戶端進行通訊,必需要創建鏈接,產生雙向通道。
                一條是客戶端往服務端發送消息的。
                另外一條是服務端往客戶端發送消息的。

        - 應用層
            http
            ftp


總結:
    ip:用於惟一標識某一臺計算機的位置。
    port: 端口用於確認計算機上的一個應用軟件。

    ip + port: 世界上某一臺電腦上的一個應用軟件。

TCP協議的工做原理:

- TCP是一個流式協議

- 三次握手,四次揮手(*******):
    - 三次握手建鏈接:
        創建雙向通道,創建好鏈接。
        - listen: 監聽
        - established: 確認請求創建鏈接

    - 發送數據:
        write
        read
        客戶端往服務端發送數據,數據存放在內存中,須要服務端確認收到,數據纔會在內存中釋放掉。

        不然,會隔一段時間發送一次,讓服務端返回確認收到。
        在一段時間內,若服務端仍是不返回確認收到,則取消發送。並釋放內存中的數據。

    - 四次揮手斷鏈接:
        - TIME_WAIT: 時間等待

Socket

1.什麼是Socket?
        socket是一個模塊,能夠寫一套C/S架構的套接字。

    2.爲何要使用Socket?
        socket套接字會封裝好各層協議的工做。
        好處:
            能夠節省開發成本。

    3.如何使用
        import socket


注意: 客戶端與服務端必須尊循:
    一端send,另外一端recv
    不一樣兩端同時send或recv
相關文章
相關標籤/搜索