軟體基礎原理 網路程式設計原理

2021-10-01 07:22:37 字數 1321 閱讀 2550

dns解析出來的ip位址不一定是**資料中心的ip位址,也可能是**cdn伺服器的ip位址。

為了提高使用者請求訪問的速度,為了降低資料中心的負載壓力,**會在全國各地各個主要的運營服務商機房中部署一些快取伺服器,快取那些靜態的、資源檔案等。

http協議是應用層協議,tcp協議是傳輸層協議,ip協議是網路層協議。

應用程式使用作業系統的socket介面進行網路程式設計,socket裡封裝了tcp協議。

物理層負責資料的物理傳輸,計算機輸入輸出的只能是0 1這樣的二進位制資料,但在真正的通訊線路裡有光纖,電纜,無線各種裝置。光訊號,電訊號,以及無線電磁訊號在物理上是完全不同的,如何讓這些不同的裝置能夠理解,處理相同的二進位制資料。

資料鏈路層就是將資料進行封裝後交給物理層進行傳輸,主要就是將資料封裝成資料幀,以幀為單位通過物理層進行通訊,有了幀,就可以在鎮上進行資料校驗,進行流量控制。資料鏈路層會定義幀的大小,這個大小也被稱為最大傳輸元。資料鏈路層會將封裝好的幀新增乙個幀頭,幀頭里記錄的乙個重要資訊就是傳送者和接受者的mac位址(它是網絡卡的裝置識別符號,是惟一的),資料幀通過這個資訊確保資料送達到正確的目標機器。

網路層ip協議ip協議不是乙個可靠的通訊,並不保證資料一定會送達。

傳輸層協議tcptcp也會在資料報上新增tcp頭,tcp頭出了包含一些用於校驗資料正確性和控制資料流量的資訊外,還包括通訊埠資訊。

對於**這樣日活使用者數億的網際網路應用而言,每時每刻都有大量的搜尋請求到達資料中心,為了使這些海量的上搜尋請求都能得到即時的處理,**會部署乙個數千台伺服器組成的搜尋伺服器集群,共同為這些高併發的請求提供服務。

搜尋伺服器到達資料中心的時候,首先到達的是搜尋伺服器集群的負載均衡伺服器,也就是說,dns解析出來的是負載均衡伺服器的ip位址。然後由負載均衡伺服器將請求分發到搜尋伺服器集群中的某台伺服器上。

負載均衡伺服器的實現手段有很多,其中一種是linux系統核心支援的鏈路層負載均衡。

這種負載均衡模式也叫做直接路由模式,在負載均衡器的linux作業系統核心拿到資料報後,直接修改資料幀中的mac位址,將其修改為搜尋伺服器集群中的某個伺服器的mac位址,然後將資料傳送回伺服器集群所在的區域網,這個資料幀就會被某個真實的搜尋伺服器接收。

**搜尋伺服器在收到這個搜尋請求的時候,首先在本地快取中查詢是否有對應的搜尋結果。如果沒有。就會將這個搜尋請求傳送給乙個分布式快取集群查詢是否有對應的搜尋結果。如果沒有,才會將這個請求傳送給乙個更大規模的伺服器集群查詢。

網路程式設計(基礎原理)

tcp通訊 面向連線的通訊,客戶端跟伺服器端必須經過3次握手,才能建立邏輯連線,才能進行安全的通訊 通訊的步驟 伺服器先啟動 伺服器端不會主動的請求客戶端 必須使用客戶端對伺服器傳送請求 客戶端跟伺服器端會建立乙個邏輯連線,在邏輯連線中會產生物件 io物件 客戶端和伺服器端使用io物件進行通訊,通訊...

socket網路程式設計基礎(桌球原理)

注意 1 客戶端傳送給服務端,大小寫不會變化 2 字串.encode upper 到客戶端 decode 之後,英文本母會全變成大寫 3 傳各種資料,配合 pickle 個人建議 server socket.socket af.inet,sock.sock stream 繫結要監聽的埠 server...

網路 網路原理基礎

所謂 區域網 和 廣域網 只是乙個相對的概念。協議就是一種約定。計算機之間的傳輸媒介是光訊號和電訊號 通過 頻率 和 強弱 來表示0和1這樣的資訊。要想傳遞各種不同的資訊,就需要約定好雙方的資料格式。分層最大的好處在於 封裝 物件導向的例子 tcp ip通訊協議採用了5層的層級結構,每一層都呼叫它的...