基石爲勤能補拙的迷宮之旅——客戶端/服務器架構,OSI模型

一、客戶端/服務器架構

    服務器就是一系列硬件或軟件,爲一個或多個客戶端(服務的用戶)提供所需的“服務”。它存在唯一目的就是等待客戶端的請求,並響應它們(提供服務),然後等待更多請求。
    客戶端因特定的需求而聯繫服務器,併發送必要的請求數據,然後等待服務器的迴應,最後完成請求或給出故障的原因。服務器無限地運行下去,並不斷地處理請求;而客戶端會對服務進行一次性請求,然後接收該服務,最後結束它們之間的事務。客戶端在一段時間後可能會再次發出其他請求,但這些都被當作不同的事務。

1.1 硬件客戶端/服務器架構

    打印(打印機)服務器是硬件服務器的例子。打印(打印機)服務器處理傳入的打印作業並將其發送給系統中的打印機(或其他的打印設備)。這樣的計算機通常可以通過網絡進行訪問,並且客戶端計算機將向它發送打印請求。
    另一個例子文件服務器是擁有龐大通用存儲容量的計算機,可以被客戶端遠程訪問。客戶端計算機會掛載服務器計算機上的磁盤,其目標就是讓用戶得到與訪問本地磁盤完全相同的體驗。

1.2 軟件客戶端/服務器架構

    軟件服務器也運行在一塊硬件之上,但是沒有像硬件服務器那樣的專用外圍設備(如打印機、磁盤驅動器等)。軟件服務器提供的主要服務包括程序執行、數據傳輸檢索、聚合、更新,或其他類型的編程或數據操作。
    最常見的軟件服務器就是 Web 服務器,在Web服務器上安裝希望提供給用戶的 Web 頁面和 Web 應用程序,用戶通過個人計算機上的瀏覽器(Browser)向Web服務器發送請求,Web服務器持續監聽請求,獲得請求之後向(Web)客戶端回送 Web 頁面,然後等待下一個客戶端的請求。上面有提到服務器一旦開啓都將可能永遠運行,雖然不能絕對保證,但是會盡可能保證運行狀態。
    數據庫服務器是另一種類型的軟件服務器。它們接受客戶端的存儲或檢索請求,響應請求,然後等待更多的事務。
    窗體(window)服務器,幾乎可以認爲這些服務器是硬件服務器。它們運行在一臺附帶(外接)顯示設備(如顯示器)的計算機上。窗體客戶端其實就是一些程序,這些程序需要一個窗口化的環境來運行。這些通常被當作圖形用戶界面(GUI)應用程序。如果在沒有窗體服務器的情況下執行它們,也即意味着在一個基於文本的環境中,如 DOS 窗口或一個 UNIX shell 中,那麼將無法啓動它們。一旦能夠訪問窗體服務器,那麼一切都會正常。

二、OSI模型

2.1 定義

開放式系統互聯通信參考模型(Open System Interconnection Reference Model,縮寫爲 OSI),簡稱爲OSI模型(OSI model),一種概念模型,一個試圖使各種計算機在世界範圍內互連爲網絡的標準框架。
OSI模型

2.2 OSI七層協議

    應用層表示層會話層傳輸層網絡層數據鏈路層物理連接層,越往上越接近軟件,反之接近計算機硬件。
    要想實現遠程通信,第一個需要具備的條件就是:物理連接介質。那什麼是物理連接物質呢?網卡、網線、交換機、路由器、防火牆,以上都能稱之爲物理連接介質,但僅僅是擁有這些介質就行了嗎?我們知道不同國家的人進行交流通常會使用全球公共的語言英語作爲媒介,所以計算機與計算機之間要想實現遠程通信,光有物理連接介質是不夠的,它也需要一個共同的標準——協議

物理連接層:

實現計算機之間的物理連接,傳輸的數據都是電信號,因爲電信號的高低電平剛好對應二進制中的1、0

數據鏈路層

  1. 規定了二進制數據的分組方式
  2. 規定了只要是介入物聯網的計算機,都必須有一塊網卡,網卡上面刻有世界唯一的編號——mac地址,12位16進制數表示:前六位生產廠家,後六位流水線號

    以上兩個規定就是以太網協議(Ethernet),目前使用最廣泛的局域網技術,通信基本靠“吼”,無法跨局域網通信。
    廣播:是指封包在計算機網絡中傳輸時,目的地址爲網絡中所有設備的一種傳輸方式。實際上,這裏所說的“所有設備”也是限定在一個範圍之中,稱爲“廣播域”。當所需通知到的設備接收到廣播會迴應此次廣播,這就是局域網通信的方式。
    廣播風暴:廣播風暴(broadcast storm)簡單的講是指當廣播數據充斥網絡無法處理,並佔用大量網絡帶寬,導致正常業務不能運行,甚至徹底癱瘓,這就發生了“廣播風暴”。一個數據幀或包被傳輸到本地網段 (由廣播域定義)上的每個節點就是廣播;由於網絡拓撲的設計和連接問題,或其他原因導致廣播在網段內大量複製,傳播數據幀,導致網絡性能下降,甚至網絡癱瘓,這就是廣播風暴。

網絡層(IP協議)

規定了計算機都必須有一個IP地址,IP地址是4個點分十進制組成(IPV4),新出的IPV6是爲了兼容更多的計算機。IPV4最小的地址是0.0.0.0 ,最大的255.255.255.255。IP協議可以跨局域網傳輸,IP地址可以唯一標識互聯網中獨一無二的一臺機器。

傳輸層(端口協議)

    TCP,UDP基於端口工作的協議
    其實計算機之間的通信是計算機上面的應用程序與應用之間的通信,所以我們引出端口(port)這個概念。
    端口(port):唯一標識一臺計算機上某一個基於網絡通信的應用程序
    端口範圍:0~65535(動態分配),0-1024通常都是操作系統分配的端口號,通常情況下,我們寫的軟件端口號建議起在8000之後,比如Flask框架默認端口5000,Django默認端口8000,MySQL默認端口3306,Redis默認端口6379
    一臺計算機同一時間一個端口號只能被一個應用程序佔用。

TCP協議(流式協議,可靠協議)
    可靠原因:給對方發消息,對方必須回覆確認收到傳輸的數據纔會被刪除,否則會在一定時間間隔之內,反覆發送,直到對方接受,或者超時
    三次握手:建立連接。
在這裏插入圖片描述
    四次揮手:斷開連接
在這裏插入圖片描述

應用層(HTTP協議,ftp協議)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章