理解計算機系統_網絡編程(1)

前言
? ? ? ?

? ? ? ? 以<深入理解計算機系統>(以下稱“本書”)內容為基礎,對程序的整個過程進行梳理。本書內容對整個計算機系統做了系統性導引,每部分內容都是單獨的一門課.學習深度根據自己需要來定

引入?

? ? ? ? 網絡是計算機科學中非常重要的部分,筆者過去看過相關的內容,但都理解得不是很透徹.本書內容從網絡基本面講起,有了前面進程,文件等概念的基礎,挺適合入門.

網絡概述

所有程序都遵循的開發思路

?????????本書P642:所有的網絡應用都是基于相同的基本編程模型,有著相似的整體邏輯結構,并且依賴相同的編程接口 ---黑體字是原話

? ? ? ? ----解讀:這句話有兩層含義:

? ? ? ? ? ? ? ? ? ? ? ? 1>不管是web端還是移動端,或者桌面端的通信模塊,使用的api都差不多

? ? ? ? ? ? ? ? ? ? ? ? 2>編程模型=思想,邏輯結構=程序結構,編程接口=api.網絡之外的程序也是同樣的思路:先有編程思想,再設計程序結構,最后寫代碼-api實現.

所有程序開發的過程:選擇編程模型,設計程序結構,寫代碼

客戶端-服務器編程模型

? ? ? ? 1.每個網絡應用都是基于客戶端-服務器模型的.采用這個模型,一個應用是由一個服務器進程一個或多個客戶端進程組成.服務器管理某種資源,并且通過操作這種資源來為它的客戶端提供某種服務.? ---黑體字是原話

? ? ? ? ????????----解讀:網絡應用包含了兩個層面:進程和數據交換.是的,又回到了熟悉的部分:操作數據.

? ? ? ? 2.客戶端-服務器模型中的基本操作是事務.一個事務包含4個步驟.

? ? ? ? ????????1>客戶端發送請求 2>服務器處理請求 3>服務器發送相應 4>客戶端處理響應.

? ? ? ? 3.客戶端和服務器都屬于進程,而不是常提到的機器或者主機.

? ? ? ? ? ? ? ? 進程和主機的關系分析:

? ? ? ? ? ? ? ? ? ? ? ? 1>一臺主機可以運行多個進程,所以一臺主機可包括多個客戶端和服務器

? ? ? ? ? ? ? ? ? ? ? ? 2>一個進程可以屬于這臺或那臺主機,所以客戶端和服務器可以分布于不同主機上

網絡的物理部分

? ? ? ? 客戶端和服務器通常運行在不同主機上,并且通過計算機網絡的硬件和軟件資源來通信.

? ? ? ? 對主機而言,網絡只是又一種I/O設備,是數據源和數據接收方.一個插到I/O總線擴展槽的適配器提供了到網絡的物理接口.從網絡上接收到的數據從適配器經過I/O和內存總線復制到內存,通常通過DMA傳送.相似地,數據也能從內存復制到網絡.? ---黑體字是原話

????????????????----解讀:網絡是一種I/O設備,意味著被抽象成文件,同時有對應的標準來操作.見筆者另一篇貼理解計算機系統_文件管理_系統級I/O(一)-CSDN博客? ? ? ??

各種網絡簡單示意?

1>局域網(以太網)

? ? ? ? 由集線器連接多臺主機

2>大型局域網

? ? ? ? 由網橋連接多個集線器

局域網概念圖--把前面兩種綜合起來

3>廣域網

? ? ? ? 內部由路由器連接網橋或集線器,外部以多個路由器作結點組成互聯網絡.

? ? ? ? 每個路由器都身處內部和外部兩個網絡,在每個網絡中均有自己的ip地址.

注意:internet和Internet不一樣,internet是概念上的互聯網,由路由器完成.而Internet指的是國際互聯網.?

? ? ? ? 本書在網絡這塊的內容,偏向于底層實現.而網絡的應用層,傳輸層,物理層等概念,屬于在底層的基礎上建立起來的內容,本書中提及不多,筆者找了篇寫得比較詳細且生動的帖子以供參考一文講透TCP/IP協議 | 圖解+秒懂+史上最全_tcpip協議-CSDN博客

網絡數據怎樣傳遞

? ? ? ? 簡單的說,數據傳遞遵循某種協議.

? ? ? ? 本書原話:互聯網絡至關重要的特性是,它能由采用完全不同和不兼容技術的各種局域網和廣域網組成.每臺主機和其他每臺主機都是物理相連的.但是如何能夠讓某臺源主機跨過所有這些不兼容的網絡發送數據位到另一臺目的主機呢?

? ? ? ? 解決方法是一層運行在每臺主機和路由器上的協議軟件,它消除了不同網絡之間的差異.這個軟件實現一種協議,提供兩種基本能力:命名機制和傳送機制.? ?---黑體字是原話

? ? ? ? ----解讀:協議和筆者前面帖子中的"標準"是相同意義.這段話表達了協議的設計思想.協議正是依據這些思想設計出來的,如TCP/IP協議,UDP協議等.而在網絡世界里,程序員面向協議編程.

? ? ? ? ? ? ? ? 命名機制:每臺主機會分配至少一個互聯網絡地址(Internet address),標識主機

? ? ? ? ? ? ? ? 傳送機制:采用數據包封裝數據

=========================內容分割線↓=======================================

引入一點知識:

和上一篇帖子對照:程序員可以面向標準,面向庫或者面向框架編程.

????????框架包含的內容多,需要程序員考慮的少,自由空間少,簡單;

????????庫和協議包含的內容少,需要程序員考慮的內容多,自由空間大,復雜 ;

? ? ? ? 對于技術水平來講,筆者偏向于程序員除了用框架,自己能使用標準(協議)的api,能自己寫庫.

=========================內容分割線↑=======================================

? ? ? ? 下面講了一個數據傳輸的示例,數據從應用層到傳輸層到物理層(沒顯式提出),再到另一臺主機

其中提到互聯網絡思想的精髓是封裝.?

小結

? ? ? ? 網絡編程基礎

????????

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/77896.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/77896.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/77896.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【2025】Datawhale AI春訓營-RNA結構預測(AI+創新藥)-Task2筆記

【2025】Datawhale AI春訓營-RNA結構預測&#xff08;AI創新藥&#xff09;-Task2筆記 本文對Task2提供的進階代碼進行理解。 任務描述 Task2的任務仍然是基于給定的RNA三維骨架結構&#xff0c;生成一個或多個RNA序列&#xff0c;使得這些序列能夠折疊并盡可能接近給定的目…

vim 命令復習

命令模式下的命令及快捷鍵 # dd刪除光所在行的內容 # ndd從光標所在行開始向下刪除n行 # yy復制光標所在行的內容 # nyy復制光標所在行向下n行的內容 # p將復制的內容粘貼到光標所在行以下&#xff08;小寫&#xff09; # P將復制的內容粘貼到光標所在行以上&#xff08;大寫&…

哪些心電圖表現無緣事業編體檢呢?

根據《公務員錄用體檢通用標準》心血管系統條款及事業單位體檢實施細則&#xff0c;心電圖不合格主要涉及以下類型及處置方案&#xff1a; 一、心律失常類 早搏&#xff1a;包括房性早搏、室性早搏和交界性早搏。如果每分鐘早搏次數較多&#xff08;如超過5次&#xff09;&…

Linux學習——UDP

編程的整體框架 bind&#xff1a;綁定服務器&#xff1a;TCP地址和端口號 receivefrom()&#xff1a;阻塞等待客戶端數據 sendto():指定服務器的IP地址和端口號&#xff0c;要發送的數據 無連接盡力傳輸&#xff0c;UDP:是不可靠傳輸 實時的音視頻傳輸&#x…

ReAct Agent 實戰:基于DeepSeek從0到1實現大模型Agent的探索模式

寫在前面:動態思考,邊想邊做 大型語言模型(LLM)的崛起開啟了通用人工智能(AGI)的無限遐想。但要讓 LLM 從一個被動的“文本生成器”轉變為能夠主動解決問題、與環境交互的智能體(Agent),我們需要賦予它思考、行動和學習的能力。ReAct (Reason + Act) 框架正是實現這一…

從物理到預測:數據驅動的深度學習的結構化探索及AI推理

在當今科學探索的時代&#xff0c;理解的前沿不再僅僅存在于我們書寫的方程式中&#xff0c;也存在于我們收集的數據和構建的模型中。在物理學和機器學習的交匯處&#xff0c;一個快速發展的領域正在興起&#xff0c;它不僅觀察宇宙&#xff0c;更是在學習宇宙。 AI推理 我們…

結合地理數據處理

CSV 文件不僅可以存儲表格數據&#xff0c;還可以與地理空間數據結合&#xff0c;實現更強大的地理處理功能。例如&#xff0c;你可以將 CSV 文件中的坐標數據轉換為點要素類&#xff0c;然后進行空間分析。 示例&#xff1a;將 CSV 文件中的坐標數據轉換為點要素類 假設我們有…

SpringBoot中6種自定義starter開發方法

在SpringBoot生態中,starter是一種特殊的依賴,它能夠自動裝配相關組件,簡化項目配置。 自定義starter的核心價值在于: ? 封裝復雜的配置邏輯,實現開箱即用 ? 統一技術組件的使用規范,避免"輪子"泛濫 ? 提高開發效率,減少重復代碼 方法一:基礎配置類方式 …

滾珠導軌松動會導致哪些影響?

直線導軌用于高精度或快速直線往復運動場所&#xff0c;且能夠擔負一定的扭矩&#xff0c;在高負載的情況下實現高精度的直線運動。它主要由導軌和滑塊組成&#xff0c;其中導軌作為固定元件&#xff0c;滑塊則在其上進行往復直線運動。但是滾珠導軌松動會導致哪些影響&#xf…

從零開始搭建Django博客②--Django的服務器內容搭建

本文主要在Ubuntu環境上搭建&#xff0c;為便于研究理解&#xff0c;采用SSH連接在虛擬機里的ubuntu-24.04.2-desktop系統搭建&#xff0c;當涉及一些文件操作部分便于通過桌面化進行理解&#xff0c;通過Nginx代理綁定域名&#xff0c;對外發布。 此為從零開始搭建Django博客…

ZLMediaKit支持JT1078實時音視頻

ZLMediaKit 對 JT1078 實時音視頻協議的支持主要通過其擴展版本或與其他中間件結合實現。以下是基于搜索結果的綜合分析&#xff1a; 一、ZLMediaKit 原生支持能力 開源版本的基礎支持 ZLMediaKit 開源版本本身未直接集成 JT1078 協議解析模塊&#xff0c;但可通過 RTP 推流功能…

Java隊列(Queue)核心操作與最佳實踐:深入解析與面試指南

文章目錄 概述一、Java隊列核心實現類對比1. LinkedList2. ArrayDeque3. PriorityQueue 二、核心操作API與時間復雜度三、經典使用場景與最佳實踐場景1&#xff1a;BFS層序遍歷&#xff08;樹/圖&#xff09;場景2&#xff1a;滑動窗口最大值&#xff08;單調隊列&#xff09; …

MetaGPT智能體框架深度解析:記憶模塊設計與應用實踐

在AI智能體技術從單點突破邁向系統工程的關鍵階段&#xff0c;MetaGPT憑借其創新的記憶架構重新定義了多智能體協作范式。本文深度解構其革命性的三級記憶系統&#xff0c;揭秘支撐10倍效能提升的知識蒸餾算法與動態上下文控制策略&#xff0c;通過企業級應用案例與性能基準測試…

集結號海螺捕魚服務器調度與房間分配機制詳解:六

本篇圍繞服務器調度核心邏輯進行剖析&#xff0c;重點講解用戶連接過程、房間分配機制、服務端并發策略及常見性能瓶頸優化。適用于具備中高級 C 后端開發經驗的讀者&#xff0c;覆蓋網絡會話池、邏輯服調度器與房間生命周期管理等關鍵模塊。 一、服務器結構概覽 整體系統采用…

【電子通識】熱敏打印機是怎么形成(打印)圖像和文字的?

在我們身邊&#xff0c;熱敏打印方式常見用于裝飾貼紙、便利店的小票。此外&#xff0c;物流及食品條碼標簽、身份證件、機票?火車票、X光片、食品日期印刷等&#xff0c;很多打印都用到了熱敏打印頭。 熱敏打印頭的蓄熱層(涂釉層)上分布著一排加熱元件&#xff08;發熱線&…

SQL注入漏洞中會使用到的函數

目錄 一、信息獲取函數 1. 通用函數 2. 元數據查詢&#xff08;INFORMATION_SCHEMA&#xff09; 二、字符串操作函數 1. 字符串連接 2. 字符串截取 3. 編碼/解碼 三、報錯注入專用函數 1. MySQL 2. SQL Server 3. PostgreSQL 四、時間盲注函數 1. 通用延遲 2. 計…

車載信息安全架構 --- 汽車網絡安全

我是穿拖鞋的漢子,魔都中堅持長期主義的汽車電子工程師。 老規矩,分享一段喜歡的文字,避免自己成為高知識低文化的工程師: 周末洗了一個澡,換了一身衣服,出了門卻不知道去哪兒,不知道去找誰,漫無目的走著,大概這就是成年人最深的孤獨吧! 舊人不知我近況,新人不知我過…

Linux423 刪除用戶

查找 上面已查過&#xff1a;無法使用sudo 新開個終端試試 之前開了一個終端&#xff0c;按照deepseek排查 計劃再開一個進程 開一個終端 后強制刪除時顯示&#xff1a;此事將被報告

《從卷積核到數字解碼:CNN 手寫數字識別實戰解析》

文章目錄 一、手寫數字識別的本質與挑戰二、使用步驟1.導入torch庫以及與視覺相關的torchvision庫2.下載datasets自帶的手寫數字的數據集到本地 三、完整代碼展示 一、手寫數字識別的本質與挑戰 手寫數字識別的核心是&#xff1a;從二維像素矩陣中提取具有判別性的特征&#x…

UniOcc:自動駕駛占用預測和預報的統一基準

25年3月來自 UC Riverside、U Wisconsin 和 TAMU 的論文"UniOcc: A Unified Benchmark for Occupancy Forecasting and Prediction in Autonomous Driving"。 UniOcc 是一個全面統一的占用預測基準&#xff08;即基于歷史信息預測未來占用&#xff09;和基于攝像頭圖…