知識(shí)
不管是網(wǎng)站,軟件還是小程序,都要直接或間接能為您產(chǎn)生價(jià)值,我們?cè)谧非笃湟曈X(jué)表現(xiàn)的同時(shí),更側(cè)重于功能的便捷,營(yíng)銷(xiāo)的便利,運(yùn)營(yíng)的高效,讓網(wǎng)站成為營(yíng)銷(xiāo)工具,讓軟件能切實(shí)提升企業(yè)內(nèi)部管理水平和效率。優(yōu)秀的程序?yàn)楹笃谏?jí)提供便捷的支持!
精益求精!華為工程師凝聚超凡的智慧結(jié)晶:網(wǎng)絡(luò)編程,已獻(xiàn)上膝蓋
發(fā)表時(shí)間:2020-10-17
發(fā)布人:葵宇科技
瀏覽次數(shù):44
為什么要學(xué)習(xí)底層知識(shí)?
不學(xué)習(xí)底層知識(shí)可能不會(huì)阻礙你成為一個(gè)稱(chēng)職的程序員,但也許會(huì)阻礙你成為一個(gè)優(yōu)秀的程序員。
了解底層的知識(shí)有助于解決問(wèn)題,并且做出更好的設(shè)計(jì)。打個(gè)比方,就像庖丁解牛,他看到一個(gè)牛后,不止看到的是牛,而是由各個(gè)骨骼,經(jīng)絡(luò),肌肉等模塊組成的有機(jī)體——整個(gè)系統(tǒng)對(duì)你來(lái)說(shuō)就是赤裸裸的,沒(méi)有任何神秘的面紗。這樣也許能夠給程序員提供更多的安全感。
但是如果你編程所依賴(lài)的平臺(tái)需要你去了解更底層的知識(shí)才能夠解決問(wèn)題,那么,他可能沒(méi)有做好他應(yīng)盡的職責(zé)。
我們每個(gè)程序員或許都有一個(gè)夢(mèng),那就是成為大牛,我們或許都沉浸在各種框架中,以為框架就是一切,以為應(yīng)用層才是最重要的,你錯(cuò)了。在當(dāng)今計(jì)算機(jī)行業(yè)中,會(huì)應(yīng)用是基本素質(zhì),如果你懂其原理才能讓你在行業(yè)中走的更遠(yuǎn),而計(jì)算機(jī)基礎(chǔ)知識(shí)又是重中之重。下面,跟隨我的腳步,為你介紹一下計(jì)算機(jī)底層知識(shí)。
第一份筆記、底層知識(shí)筆記
大綱
目錄
CPU
大家都是程序員,大家都是和計(jì)算機(jī)打交道的程序員,大家都是和計(jì)算機(jī)中軟件硬件打交道的程序員,大家都是和CPU打交道的程序員,所以,不管你是玩兒硬件的還是做軟件的,你的世界都少不了計(jì)算機(jī)最核心的- CPU
CPU是什么
CPU的全稱(chēng)是Central Processing Unit ,它是你的電腦中最硬核的組件,這種說(shuō)法一點(diǎn)不為過(guò)。CPU是能夠讓你的計(jì)算機(jī)叫計(jì)算機(jī)的核心組件,但是它卻不能代表你的電腦,CPU與計(jì)算機(jī)的關(guān)系就相當(dāng)于大腦和人的關(guān)系。它是一種小型的計(jì)算機(jī)芯片,它嵌入在臺(tái)式機(jī)、筆記本電腦或者平板電腦的主板。上。通過(guò)在單個(gè)計(jì)算機(jī)芯片上放置數(shù)十億個(gè)微型晶體管來(lái)構(gòu)建CPU。這些晶體管使它能夠執(zhí)行運(yùn)行存儲(chǔ)在系統(tǒng)內(nèi)存中的程序所需的計(jì)算,也就是說(shuō)CPU決定了你電腦的計(jì)算能力。
CPU的內(nèi)部結(jié)構(gòu)
標(biāo)志寄存器
內(nèi)存的物理結(jié)構(gòu)
在了解一個(gè)事物之前,你首先得先需要見(jiàn)過(guò)它,你才會(huì)有印象,才會(huì)有想要了解的興趣,所以我們首先需要先看一下什么是內(nèi)存以及它的物理結(jié)構(gòu)是怎樣的。
內(nèi)存的現(xiàn)實(shí)模型
為了便于記憶,我們把內(nèi)存模型映射成為我們現(xiàn)實(shí)世界的模型,在現(xiàn)實(shí)世界中,內(nèi)存的模型很想我們生活的樓房。在這個(gè)樓房中,1層可以存儲(chǔ)一個(gè)字節(jié)的數(shù)據(jù),樓層號(hào)就是地址,下面是內(nèi)存和樓層整合的模型圖
內(nèi)存的使用
鏈表
下面我們來(lái)介紹一下鏈表和二叉樹(shù)它們都是可以不用考慮索引的順序就可以對(duì)元素進(jìn)行讀寫(xiě)的方式。通過(guò)使用鏈表,可以高效的對(duì)數(shù)據(jù)元素進(jìn)行添加和刪除操作。而通過(guò)使用二叉樹(shù),則可以更高效的對(duì)數(shù)據(jù)進(jìn)行檢索
二叉樹(shù)
二叉樹(shù)也是一種檢索效率非常高的數(shù)據(jù)結(jié)構(gòu),二叉樹(shù)是指在鏈表的基礎(chǔ)上往數(shù)組追加元素時(shí),考慮到數(shù)組的大小關(guān)系,將其分成左右兩個(gè)方向的表現(xiàn)形式。假如我們把50這個(gè)值保存到了數(shù)組中,那么,如果接下來(lái)要進(jìn)行值寫(xiě)入的話,就需要和50比較,確定誰(shuí)大誰(shuí)小,比50數(shù)值大的放右邊,小的放左邊,下圖是二叉樹(shù)的比較示例
為什么用二進(jìn)制表示
便于計(jì)算機(jī)處理的補(bǔ)數(shù)
算數(shù)右移和邏輯右移的區(qū)別
邏輯運(yùn)算的竅門(mén)
哈夫曼算法和莫爾斯編碼
下面我們來(lái)介紹另外一種壓縮算法,即哈夫曼算法。在了解哈夫曼算法之前,你必須舍棄半角英文數(shù)字的1個(gè)字符是1個(gè)字節(jié)(8位)的數(shù)據(jù)下面我們就來(lái)認(rèn)識(shí)一下哈夫曼算法的基本思想。
用二叉樹(shù)實(shí)現(xiàn)哈夫曼算法
剛才已經(jīng)提到,莫爾斯編碼是根據(jù)日常文本中各字符的出現(xiàn)頻率來(lái)決定表示各字符的編碼數(shù)據(jù)長(zhǎng)度的。不過(guò),在該編碼體系中,對(duì)AAAAAABBCDDEEEEEF這種文本來(lái)說(shuō)并不是效率最高的。
下面我們來(lái)看一下哈夫曼算法。哈夫曼算法是指,為各壓縮對(duì)象文件分別構(gòu)造最佳的編碼體系,并以該編碼體系為基礎(chǔ)來(lái)進(jìn)行壓縮。因此,用什么樣的編碼(哈夫曼編碼)對(duì)數(shù)據(jù)進(jìn)行分割,就要由各個(gè)文件而定。用哈夫曼算法壓縮過(guò)的文件中,存儲(chǔ)著哈夫曼編碼信息和壓縮過(guò)的數(shù)據(jù)。
認(rèn)識(shí)磁盤(pán)
首先,磁盤(pán)和內(nèi)存都具有存儲(chǔ)功能,它們都是存儲(chǔ)設(shè)備。區(qū)別在于,內(nèi)存是通過(guò)電流來(lái)實(shí)現(xiàn)存儲(chǔ); 磁盤(pán)則是通過(guò)磁記錄技術(shù)來(lái)實(shí)現(xiàn)存儲(chǔ)。內(nèi)存是一種高速,造假昂貴的存儲(chǔ)設(shè)備;而磁盤(pán)則是速度較慢、造假低廉的存儲(chǔ)設(shè)備;電腦斷電后,內(nèi)存中的數(shù)據(jù)會(huì)丟失,而磁盤(pán)中的數(shù)據(jù)可以長(zhǎng)久保留。內(nèi)存是屬于內(nèi)部存儲(chǔ)設(shè)備,硬盤(pán)是屬于外部存儲(chǔ)設(shè)備。一般在我們的計(jì)算機(jī)中,磁盤(pán)和內(nèi)存是相互配合共同作業(yè)的。
程序不讀入內(nèi)存就無(wú)法運(yùn)行
在了解磁盤(pán)前,還需要了解一下內(nèi)存的運(yùn)行機(jī)制是怎樣的, 我們的程序被保存在存儲(chǔ)設(shè)備中,通過(guò)使用CPU讀入來(lái)實(shí)現(xiàn)程序指令的執(zhí)行。這種機(jī)制稱(chēng)為存儲(chǔ)程序方式,現(xiàn)在看來(lái)這種方 式是理所當(dāng)然的,但在以前程序的運(yùn)行都是通過(guò)改變計(jì)算機(jī)的布線來(lái)讀寫(xiě)指令的。
計(jì)算機(jī)最主要的存儲(chǔ)部件是內(nèi)存和磁盤(pán)。磁盤(pán)中存儲(chǔ)的程序必須加載到內(nèi)存中才能運(yùn)行,在磁盤(pán)中保存的程序是無(wú)法直接運(yùn)行的,這是因?yàn)樨?fù)責(zé)解析和運(yùn)行程序內(nèi)容的CPU是需要通過(guò)程序計(jì)數(shù)器來(lái)指定內(nèi)存地址從而讀出程序指令的。
Windows操作系統(tǒng)克服了CPU以外的硬件差異
可以使用虛擬機(jī)獲取其他環(huán)境
操作系統(tǒng)功能的歷史
操作系統(tǒng)其實(shí)也是一種軟件,任何新事物的出現(xiàn)肯定都有它的歷史背景,那么操作系統(tǒng)也不是憑空出現(xiàn)的,肯定有它的歷史背景。
操作系統(tǒng)和高級(jí)編程語(yǔ)言使硬件抽象化
通過(guò)使用操作系統(tǒng)提供的系統(tǒng)調(diào)用,程序員不必直接編寫(xiě)控制硬件的程序,而且,通過(guò)使用高級(jí)編程語(yǔ)言,有時(shí)也無(wú)需考慮系統(tǒng)調(diào)用的存在,系統(tǒng)調(diào)用往往是自動(dòng)觸發(fā)的,操作系統(tǒng)和高級(jí)編程語(yǔ)言能夠使硬件抽象化,這很了不起。
匯編語(yǔ)言的語(yǔ)法是操作碼+操作數(shù)
在匯編語(yǔ)言中,一行表示一對(duì)CPU的一個(gè)指令。匯編語(yǔ)言指令的語(yǔ)法結(jié)構(gòu)是操作碼+操作數(shù),也存在只有操作碼沒(méi)有操作數(shù)的指令
臨時(shí)確保局部變量使用的內(nèi)存空間
外圍設(shè)備的中斷請(qǐng)求
IRQCInterrupt Request) 代表的就是中斷請(qǐng)求。IRQ用來(lái)暫停當(dāng)前正在運(yùn)行的程序,并跳轉(zhuǎn)到其他程序運(yùn)行的必要機(jī)制。該機(jī)制被稱(chēng)為處理中斷。中斷處理在硬件控制中擔(dān)當(dāng)著重要的角色。因?yàn)槿绻麤](méi)有中斷處理,就有可能無(wú)法順暢進(jìn)行處理的情況。
利用DMA實(shí)現(xiàn)短時(shí)間內(nèi)大量數(shù)據(jù)傳輸
由于內(nèi)容涉及較為全面,所以就不一一介紹了..............Σ( ° △ °|||)︴.....完整筆記請(qǐng)看文末
第二份筆記、網(wǎng)絡(luò)是怎樣連接的
探索之旅路線圖
目錄大綱
由于筆記章節(jié)實(shí)在過(guò)多過(guò)長(zhǎng),內(nèi)容涉及太全就不一一展現(xiàn)出來(lái)了Σ( ° △ °|||)︴
第一章、瀏覽器生成消息
- 生成HTTP請(qǐng)求消息
- 向DNS服務(wù)器查詢(xún)Web服務(wù)器的IP地址
- 全世界DNS服務(wù)器的大接力
- 委托協(xié)議棧發(fā)送消息
瀏覽器并不會(huì)親自負(fù)責(zé)數(shù)據(jù)的傳送。傳送消息是搬運(yùn)數(shù)字信息的機(jī)制負(fù)責(zé)的工作,因此瀏覽器會(huì)委托它將數(shù)據(jù)發(fā)送出去。具體來(lái)說(shuō),就是委托操作系統(tǒng)中的網(wǎng)絡(luò)控制軟件將消息發(fā)送給服務(wù)器。第1章中,我們會(huì)探索到瀏覽器將數(shù)據(jù)委托出去為止。
HTTP的基本思路
IP地址的基本知識(shí)
解析器的內(nèi)部原理
尋找相應(yīng)的DNS服務(wù)器并獲取IP地址
第二章、用電信號(hào)傳輸 TCP/IP數(shù)據(jù)
- 創(chuàng)建套接字
- 連接服務(wù)器
- 收發(fā)數(shù)據(jù)
- 從服務(wù)器斷開(kāi)并刪除套接字
- IP與以太網(wǎng)的包收發(fā)操作
- UDP協(xié)議的收發(fā)操作
第1章,我們從解析瀏覽器中輸入的網(wǎng)址開(kāi)始,探索了生成HTTP請(qǐng)求消息、委托操作系統(tǒng)發(fā)送消息等步驟。本章,我們將講解操作系統(tǒng)中的協(xié)議棧是如何處理數(shù)據(jù)發(fā)送請(qǐng)求的。第1章介紹了發(fā)送消息的場(chǎng)景,接下來(lái)我們將視角切換到協(xié)議棧的內(nèi)部來(lái)繼續(xù)探索吧。
協(xié)議棧的內(nèi)部結(jié)構(gòu)
根據(jù)網(wǎng)絡(luò)包平均往返時(shí)間調(diào)整ACK號(hào)等待時(shí)間
使用窗口有效管理ACK號(hào)
通過(guò)ARP查詢(xún)目標(biāo)路由器的MAC地址
給網(wǎng)絡(luò)包再加3個(gè)控制數(shù)據(jù)
第三章、從網(wǎng)線到網(wǎng)絡(luò)設(shè)備
- 信號(hào)在網(wǎng)線和集線器中傳輸
- 交換機(jī)的包轉(zhuǎn)發(fā)操作
- 路由器的包轉(zhuǎn)發(fā)操作
- 路由器的附加功能
上一章,我們探索了客戶(hù)端中的協(xié)議棧和網(wǎng)卡,介紹了發(fā)送網(wǎng)絡(luò)包,也就是將網(wǎng)絡(luò)包轉(zhuǎn)換成電信號(hào)通過(guò)網(wǎng)線傳輸出去的過(guò)程。本章我們將繼續(xù)跟著上一章的腳步,看一看通過(guò)網(wǎng)線傳輸出去的包是如何經(jīng)過(guò)集線器、交換機(jī)和路由器等網(wǎng)絡(luò)設(shè)備,最終進(jìn)入互聯(lián)網(wǎng)的。
"雙絞”是為了抑制噪聲
自動(dòng)協(xié)商:確定最優(yōu)的傳輸速率
地址轉(zhuǎn)換的基本原理
第四章、通過(guò)接入網(wǎng)進(jìn)入互聯(lián)網(wǎng)內(nèi)部
- ADSL接入網(wǎng)的結(jié)構(gòu)和工作方式
- 光纖接入網(wǎng)(FTTH)
- 接入網(wǎng)中使用的PPP和隧道
- 網(wǎng)絡(luò)運(yùn)營(yíng)商的內(nèi)部
- 跨越運(yùn)營(yíng)商的網(wǎng)絡(luò)包
上一章,我們探索了從客戶(hù)端計(jì)算機(jī)發(fā)送的網(wǎng)絡(luò)包通過(guò)家庭和公司局域網(wǎng)中的集線器和路由器前往目的地的過(guò)程。本章,我們來(lái)看一看同絡(luò)包是如何通過(guò)互聯(lián)網(wǎng)接入路由器,最終進(jìn)入互聯(lián)網(wǎng)內(nèi)部的。
連接用戶(hù)與互聯(lián)網(wǎng)的接入網(wǎng)
分離器的作用
單模與多模
通過(guò)光纖分路來(lái)降低成本
在以太網(wǎng)上傳輸PPP消息
POP和NOC
第五章、服務(wù)器端的局域網(wǎng)中有什么玄機(jī)
- Web服務(wù)器的部署地點(diǎn)
- 防火墻的結(jié)構(gòu)和原理
- 通過(guò)將請(qǐng)求平均分配給多臺(tái)服務(wù)器來(lái)平衡負(fù)載
- 使用緩存服務(wù)器分擔(dān)負(fù)載
- 內(nèi)容分發(fā)服務(wù)
上一章,我們探索了網(wǎng)絡(luò)包在進(jìn)入互聯(lián)網(wǎng)之后,通過(guò)通信線路和運(yùn)營(yíng)商網(wǎng)絡(luò)到達(dá)服務(wù)器POP端的過(guò)程。接下來(lái),網(wǎng)絡(luò)包將繼續(xù)朝服務(wù)器前進(jìn),并通過(guò)服務(wù)器前面的防火墻、緩存服務(wù)器、負(fù)載均衡器等。本章我們將對(duì)這部分進(jìn)行探索。
將Web服務(wù)器部署在數(shù)據(jù)中心
使用負(fù)載均衡器分配訪問(wèn)
緩存服務(wù)器通過(guò)更新時(shí)間管理內(nèi)容
利用內(nèi)容分發(fā)服務(wù)分擔(dān)負(fù)載
第六章、請(qǐng)求到達(dá)Web服務(wù)器響應(yīng)返回瀏覽器
上一章,我們探索了Web服務(wù)器前面的防火墻、緩存服務(wù)器、負(fù)載均衡器等設(shè)備,現(xiàn)在網(wǎng)絡(luò)包已經(jīng)通過(guò)這些設(shè)備,到達(dá)了Web服務(wù)器中。本章的探索之旅就從這里開(kāi)始。
服務(wù)器端的套接字和端口號(hào)
將請(qǐng)求的URI轉(zhuǎn)換為實(shí)際的文件名
網(wǎng)絡(luò)包的旅程
網(wǎng)絡(luò)包的旅程( 續(xù))
從輸入網(wǎng)址到顯示出網(wǎng)頁(yè)內(nèi)容,這個(gè)過(guò)程只有短短幾秒的時(shí)間。然而,正如本書(shū)所講,在這短短幾秒的背后,離不開(kāi)各種設(shè)備和軟件的相互配合。我們?cè)谔诫U(xiǎn)之旅中所涉獵的這些內(nèi)容已經(jīng)十分復(fù)雜了,但這還僅僅是網(wǎng)絡(luò)世界的一小部分而已,還有很多內(nèi)容我們無(wú)法講解,如果深人挖掘其中一些細(xì)節(jié)也是難以窮盡的。網(wǎng)絡(luò)的復(fù)雜度由此可見(jiàn)一斑。
這份【底層知識(shí)寶典】【網(wǎng)絡(luò)是怎樣連接的】筆記文檔分別為100+、366頁(yè),需要完整版的朋友,可以轉(zhuǎn)發(fā)此文關(guān)注小編,私信小編【見(jiàn)下圖】來(lái)獲取!!
當(dāng)然,單單有文檔看是遠(yuǎn)遠(yuǎn)不夠的,還有視頻和相匹配的課件進(jìn)行學(xué)習(xí)提升,努力把計(jì)算機(jī)網(wǎng)絡(luò)這一塊兒給搞明白,相信一定會(huì)有不凡的人生!!
HTTP/TCP/IP/網(wǎng)絡(luò)IO學(xué)習(xí)視頻
還有課件分享
TCP
IO課件
TCP/IP
TCP/IP/IO網(wǎng)絡(luò)通信視頻和課件獲取,點(diǎn)贊關(guān)注小編,【見(jiàn)下圖】獲取!
好了,今天就分享到這里了,希望大家能夠好好學(xué)習(xí),把計(jì)算機(jī)網(wǎng)絡(luò)這一塊兒給提升上來(lái),也希望本文能夠得到大家的喜歡!!
相關(guān)案例查看更多
相關(guān)閱讀
- 軟件開(kāi)發(fā)
- 做網(wǎng)站
- 報(bào)廢車(chē)回收管理系統(tǒng)
- 貴州小程序開(kāi)發(fā)
- 云南建設(shè)廳網(wǎng)站首頁(yè)
- 汽車(chē)報(bào)廢系統(tǒng)
- 云南網(wǎng)站建設(shè)百度
- 網(wǎng)站建設(shè)案例
- 報(bào)廢車(chē)管理
- 旅游網(wǎng)站建設(shè)
- 昆明小程序定制開(kāi)發(fā)
- 服務(wù)器
- 小程序開(kāi)發(fā)平臺(tái)前十名
- 云南網(wǎng)站開(kāi)發(fā)哪家好
- 網(wǎng)站建設(shè)公司地址
- 做小程序被騙
- 云南網(wǎng)站建設(shè)特性
- 云南網(wǎng)站建設(shè)外包
- 昆明軟件公司
- 楚雄小程序開(kāi)發(fā)
- 云南網(wǎng)站制作哪家好
- 云南小程序開(kāi)發(fā)報(bào)價(jià)
- 汽車(chē)報(bào)廢回收
- 云南網(wǎng)站建設(shè)服務(wù)
- 網(wǎng)站建設(shè)哪家強(qiáng)
- 小程序開(kāi)發(fā)排名前十名
- 前端技術(shù)
- 用戶(hù)登錄
- web服務(wù)
- 商標(biāo)注冊(cè)