C1见习工程师(一)
C1見習工程師
計算機通識
進制轉換
1、進制定義
二進制:是指在數學和數字電路中以2為基數的記數系統,二進制只有0和1兩個數字符號,其運算規律是逢2進1,例如101101。
八進制:一種以8為基數的計數法,采用0,1,2,3,4,5,6,7這八個數字符號,其運算規律是逢8進1,例如77。
十進制:一種以10為基數的計數法,采用0,1,2,3,4,5,6,7,8,9這十個數字符號,其運算規律是逢10進1,例如88。
十六進制:一種以16為基數的計數法,采用0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F這十六個數字和字母符號,其運算規律是逢16進1,例如9527。
2、各進制間的轉換方法
2.1 二進制轉其他進制
- 二進制轉十進制:采用位置計數法,其位權是以2為底的冪,順序從右到左,從0開始計數。例如二進制數1011(二進制) = 1 * 23 + 0 * 22 + 1 * 21 + 1 * 20 = 11(十進制)。
- 二進制轉八進制:采用三合一法,即從二進制的小數點為分界點,向左(或向右)每三位取成一位來計算,不足三位的前面補0,例如:10110011B = (0)10 110 011 = 263(八進制)。
- 二進制轉十六進制:采用四合一法,即從二進制的小數點為分界點,向左(或向右)每四位取成一位來計算,不足四位的前面補0,例如:10110011B = 1011 0011 = B3(十六進制)。
2.2 十進制轉其他進制
- 十進制轉二進制:整數采用“除2倒取余”,小數采用“乘2取整”。例如十進制數135轉換成二進制時,將135除以2,得余數,直到不能整除,然后再將余數從下至上倒取,結果為10000111(二進制)。
- 十進制轉八進制:和轉二進制的方法類似,整數采用“除8倒取余”,小數采用“乘8取整”。例如十進制數10轉換成二進制時,將10除以8,得余數,直到不能整除,然后再將余數從下至上倒取,結果為12(八進制)。
- 十進制轉十六進制:思路和轉二進制、八進制一樣,十進制數25轉換成十六進制時,結果為19(十六進制)。
2.3 八進制轉其他進制
- 八進制轉二進制:和二進制轉八進制的方法相反,采用三合一法,例如:263(八進制) = 010 110 011(二進制)。
- 八進制轉十進制:和二進制轉十進制的方法一樣,采用位置計數法,其位權是以8為底的冪,順序從右到左,從0開始計數。例如八進制數26(八進制) = 2 * 81 + 6 * 80 = 22(十進制)。
- 八進制轉十六進制:不能直接轉換,需要先轉成二進制,再將二進制轉成十六進制。
2.4 十六進制轉其他進制
- 十六進制轉二進制:和二進制轉十六進制的方法相反,采用四合一法,例如:B3(十六進制) = 1011 0011 = 10110011(二進制)。
- 十六進制轉八進制:不能直接轉換,需要先轉成二進制,再將二進制轉成八進制。
- 十六進制轉十進制:和二進制轉十進制的方法一樣,采用位置計數法,其位權是以16為底的冪,順序從右到左,從0開始計數。例如十六進制數26(十六進制) = 2 * 161 + 6 * 160 = 38(十進制)。
信息單位
在計算機內部,信息都是釆用二進制的形式存儲、運算、處理和傳輸的。信息的存儲和傳輸是以位(bit)、字節(Byte)、千字節(Kilo Byte)、兆字節(Mega Byte)等計量標準為單位的。理解并熟練地換算這些不同的計量單位,就能對系統的存儲和傳輸效率有一個合理的預估。
1、單位定義
存儲單位:存儲在計算機硬盤或內存中的信息容量標準,最小計量單位是“位”(bit,比特),一個比特位表示一個二進制的0或1在計算機中所占用的存儲空間
傳輸單位:在計算機網絡中稱為帶寬,寬帶傳輸速率的單位為bps,bps是bit per second的縮寫,表示每秒鐘傳輸多少比特位信息(很多人都會把這里的bit誤以為是Byte,也就是錯把位當成字節),例如:帶寬的單位是10Mb/s,這里其實指的是每秒傳輸10兆位,而不是10兆字節數據,因此將位數需要除以8換算成字節數,也就是每秒傳輸1.25兆字節,即10Mbit/s = 1.25MByte/s
2、換算公式
1字節(Byte)= 8位(bit)
1KB(Kilo Byte,千字節)= 1024B(Byte)
1MB(Mega Byte,兆字節)= 1024KB
1GB(Giga Byte,吉字節)= 1024MB
1TB(Tera Byte,太字節)= 1024GB
1PB(Peta Byte,拍字節)= 1024TB
1EB(Exa Byte,艾字節)= 1024PB
1ZB(Zeta Byte,澤字節)= 1024EB
1YB(Yotta Byte,堯字節)= 1024ZB
1BB(Bronto Byte,珀字節)= 1024YB
1NB(Nona Byte,諾字節)= 1024BB
1DB(Dogga Byte,刀字節)= 1024NB
數據校驗
數據在傳輸的過程中,會受到各種干擾的影響,如脈沖干擾,隨機噪聲干擾和人為干擾等,這會使數據產生差錯。為了能夠控制、減少甚至消除傳輸過程中的差錯,就必須采用有效的措施來控制差錯的產生。
1、奇偶校驗
根據傳輸的二進制數據和奇偶校驗位中“1”的個數進行校驗。如果連同校驗位中“1”的個數是奇數,就是奇校驗;反之,就是偶校驗
技術特點:簡單,可以檢測出錯誤,但無法確切地知道哪里有錯,也無法修改,只能要求重傳
適用場景:應用廣泛,但不適宜在信號噪聲較多的環境中傳輸
多媒體參數
1、參數定義
比特率:音視頻、圖像都可以采用這個指標,它指的是規定時間內傳輸的比特數,單位是bps(bit per second),比特率越高,數據傳輸的速度就越快,流媒體的播放質量就越好(音視頻越清晰),所需帶寬也越大,比特率有時候也和碼率混為一談,但碼率的單位一般是kbps(千位每秒)。
采樣率:專用于音頻多媒體,也稱為采樣速度或者采樣頻率,它定義了每秒從連續信號中提取并組成離散信號的采樣個數,單位為赫茲(Hz)。采樣率的意義在于將模擬信號轉換成數字信號時的采樣頻率,也就是單位時間內采樣多少個點,常用的采樣率為44.1KHz。
采樣位深:也被稱為采樣精度,單位為Bit,常見的位深有16Bit和24Bit,它其實就是每個采樣樣本中信息的比特數。
2、計算公式
視頻碼率計算公式(kbps,千位每秒) = 文件大小(KB,千字節)* 8 / 秒數
音頻碼率計算公式(kbps,千位每秒) = 采樣率 × 采樣位深 × 通道數
HTTP
超文本傳輸協議(Hyper Text Transfer Protocol,HTTP)是一個簡單的請求-響應協議,它通常運行在TCP之上。它指定了客戶端可以給服務器發送什么樣的消息以及能夠得到什么樣的響應。這個簡單的模型是早期Web應用得以普及的重要保障,可以說沒有HTTP協議,就沒有今天豐富多彩、繁榮興旺的互聯網。
使用Chrome瀏覽器打開任意一個網站,例如百度(https://www.baidu.com),然后在頁面上點擊鼠標右鍵,在彈出的菜單上選擇「檢查」選項。
在出現的開發者選項界面中,選擇「Network」選項。
重新刷新頁面,點擊「Name」列表中的任意一個請求地址,就可以看到HTTP協議在請求/響應過程中涉及到的數據內容和格式。
關注HTTP請求頭和響應頭(Request Headers和Response Headers)中的內容以及其中的作用。寫出Cookie和Session的區別(有多少就寫多少):
| 1 | ||
| 2 | ||
| 3 | ||
| 4 | ||
| 5 |
HTTPS
HTTPS(全稱是Hyper Text Transfer Protocol over SecureSocket Layer)是身披SSL/TLS外殼的HTTP。它在HTTP之上利用SSL/TLS建立安全的信道,加密數據傳輸。它被廣泛用于互聯網上安全敏感的通訊,例如電商、支付等應用。
1、加密算法
對稱加密:加密與解密用同一套密鑰,如DES、3DES和AES等
非對稱加密:加密和解密所使用的密鑰不同,如RSA、DSA等
不可逆加密:明文加密后無法通過解密來復原,如MD5、SHA等
2、SSL
全稱Secure Sockets Layer,安全套接字協議,因為HTTP是用明文來傳輸數據的,傳輸內容可能會被偷窺(嗅探)和篡改,SSL的出現就是用來解決信息安全問題的,當前版本為3.0。它位于TCP/IP協議與各種應用層協議之間,自身又分為兩層: SSL記錄協議(SSL Record Protocol)和SSL握手協議(SSL Handshake Protocol)。
3、TLS
全稱Transport Layer Security,傳輸層協議,它是在SSL3.0基礎上設計的,相當于SSL的后續版本,它的目標是讓SSL更安全。
4、證書與證書鏈
大學讀完之后有畢業證書,并且這個證書可以在學信網查詢
專業上有注會、CCIE、律師證等,可以在國家職業認證機構或委托機構的網站上查到
公司注冊之后,營業執照信息也可以在天眼查或企查查上找到
證書的作用
- 過往經歷的證明
- 第三方信用擔保
- 唯一合法性檢驗
OSI七層模型
大學計算機網絡相關專業的同學,可能都知道OSI七層模型。OSI的全稱是Open System Interconnection(開放系統互聯),是一個定義得較為完備的協議規范。它最大的意義在于解決了不同網絡之間的互聯互通問題,并且清晰地定義了不同網絡層次之間的邊界和職責。
應用層(Application Layer):是OSI參考模型的最高層,它是用戶、應用程序和網絡之間的接口,它直接向用戶提供服務,替用戶在網絡上完成各種工作。
表示層(Presentation Layer):是OSI參考模型的第六層,它對來自應用層的指令和數據進行解釋,對各種語法賦予相應的含義,它主要功能是處理用戶信息的表示問題,例如數據編碼、數據格式轉換和加解密等。
會話層(Session Layer):是OSI參考模型的第五層,它的主要任務是為兩個實體的表示層提供建立和使用連接的方法(不同實體之間表示層的連接稱為會話),組織和協調兩個會話進程之間的通信,并對數據交換進行管理。
傳輸層(Transport Layer):是OSI參考模型的第四層。該層的主要任務是向用戶提供可靠的端到端的差錯和流量控制,保證報文的正確傳輸,同時向高層屏蔽下層數據通信的細節。
網絡層(Network Layer):是OSI參考模型的第三層,它是最復雜的一層,也是通信子網的最高一層。它在下兩層的基礎上向上層提供服務。它的主要任務是通過路由選擇算法,為報文或分組選擇最合適的路徑。該層控制數據鏈路層與傳輸層之間的信息轉發,建立、維持和終止網絡的連接。
數據鏈路層(Data Link Layer):是OSI參考模型的第二層,它負責建立和管理節點間的鏈路。同時通過各種控制協議,將有差錯的物理信道變為無差錯的、能可靠傳輸數據幀的數據鏈路。
物理層(Physical Layer):是OSI參考模型的第一層,也是最底層。它的主要功能是利用傳輸介質為數據鏈路層提供物理連接,實現比特流的透明傳輸。它使數據鏈路層不必考慮網絡的具體傳輸介質是什么。“比特流的透明傳輸”表示經實際電路傳送后的比特流沒有發生變化,對傳送的比特流來說,這個電路好像是看不見的。
IP基礎
1、IP地址
IP位于網絡層,作用是主機間的通信,負責在沒有直連的兩個網絡之間傳輸通信數據,而MAC位于數據鏈路層,作用是實現兩個設備之間的直連通信
IP地址(IPv4)由32位二進制數表示,在計算機中是以二進制的方式處理的,人類為了方便記憶而采用了點分十進制的標記方式:也就是將32位二進制的IP地址以每8位為一組,共分為4組,組之間用“.”隔開,再將每組轉換成十進制數表示。也就是說,IP地址的最大值就是232 = 4294967296
2、IP地址分類
互聯網誕生之初,IP地址顯得很充裕,因此計算機科學家們設計了分類地址。他們把IP地址分為五種類型:A、B、C、D、E。
| A | 0.0.0.0 ~ 127.255.255.255 | 16777214 |
| B | 128.0.0.0 ~ 191.255.255.255 | 65534 |
| C | 192.0.0.0 ~ 223.255.255.255 | 254 |
為什么要有網絡號?因為除了需要定位某臺具體的計算機,還需要定位某個網絡。網絡號和主機號的關系,就好比樓棟和住戶的關系,也就是「網絡號:主機號 == 樓棟號:住戶」。
最大主機數 = 2主機號的位數 - 2,例如C類IP地址的主機號位數為8,那么C類IP地址的最大主機數 = 28 - 2 = 254。之所以要減2,是因為有兩個IP是特殊的,分別是主機號全為1和主機號全為0。
3、無分類地址CIDR
不再有A、B、C、D、E等分類的概念,而是僅僅將32位的IP地址劃分成兩部分:網絡號 + 主機號,形式為:a.b.c.d/x,其中/x表示前x位屬于網絡號,范圍是0~32。例如10.100.122.2/24,通過CIDR也可以得到子網掩碼。
4、小知識
在A、B、C三類地址中,分別都有一個保留地址。
- A類:10.0.0.0 ~ 10.255.255.255
- B類:172.16.0.0 ~ 172.31.255.255
- C類:192.168.0.0 ~ 192.168.255.255
也就是說,這三組地址是私有網絡地址,在互聯網上是用不了的
本機IP、127.0.0.1和localhost:經常可以在開發中看到這三個不同的IP地址。他們之間的區別是什么呢?
本機IP:確切地說是本機物理網卡的IP地址,它發送和接收數據會受到防火墻和網卡的限制
127.0.0.1:這是一個環回地址,也是一個特殊的網絡接口,從它發出的任何數據包都不會出現在網絡中,它發送和接收數據也會受到防火墻和網卡的限制
localhost:它是一個域名,過去它指向127.0.0.1這個IP地址,現在它同時還指向IPv6地址:[::1] ,它發送和接收數據不會受防火墻和網卡的限制
IPv6
在IPv4誕生的時代,是無法預見今日互聯網的繁榮程度的,因此很多設計問題在發展的過程中也逐漸暴露出來,例如分類不合理,可用的公網IP地址總數量太少等等。在此情況下,出現了IPv6。IPv6是英文“Internet Protocol Version 6”(互聯網協議第6版)的縮寫,是互聯網工程任務組(IETF)設計的用于替代IPv4的下一代IP協議,其地址數量號稱可以為全世界的每一粒沙子編上一個地址。
冒分十六進制表示法:格式為X:X:X:X:X:X:X:X,每個X表示地址中的16個二進制位(或者十六進制數),例如:ABCD:EF01:2345:6789:ABCD:EF01:2345:6789,這種表示法中,X中的前導0是可以省略的。
0位壓縮表示法:如果一個IPv6地址中間包含很長的一段0,就可以把連續的一段0壓縮為“::”。但這種形式“::”只能出現一次。
內嵌IPv4表示法:為了和IPv4兼容,IPv4地址可以嵌入IPv6地址中,此時地址格式為:X:X:X:X:X:X:d.d.d.d,前96位采用冒分十六進制表示,而最后32位則使用IPv4的點分十進制表示,例如:::192.168.0.1
網絡拓撲結構
互聯網是一個廣義上的概念,它泛指的是一切通過網絡連接在一起的計算機集合。所以,如果只是觀察局部,比如某一家公司的網絡的話,那么就不能再說這家公司的網絡就是“互聯網”了。那么,對于每家公司來說,網絡具體又是如何構成的呢?這就是網絡拓撲結構要解決的問題。如同數據結構是按照某種形式組織數據一樣,網絡拓撲結構指的也是按照某種形式將不同的物理計算機連接在一起。
星型結構:是指各計算機以星型方式連接成網。網絡有中央節點,其他結點(工作站、服務器)都與中央節點直接相連,這種結構以中央結點為中心,因此又稱為集中式網絡。它具有結構簡單、便于管理、控制簡單、網絡延遲時間小、傳輸誤差低等特點。但缺點也是明顯的:可靠性較低、資源共享能力較差、線路利用率低。
總線型結構:是指各工作站和服務器均掛在一條總線上,各工作站地位平等,無中心節點控制,它結構簡單、可擴充性好、安裝容易,但維護困難。
環型結構:由網絡中若干結點通過通信鏈路首尾相連形成一個閉合的環,這種結構使公共傳輸電纜組成環狀,數據在環路中沿著一個方向在各個節點間傳輸,信息從一個節點傳到另一個節點。它實時性強、傳輸控制容易,但維護困難,可靠性不高。
網狀結構:它是指每臺設備之間均有點到點的鏈路連接,這種連接不經濟,只有每個站點都要頻繁發送信息時才使用這種方法。它的安裝也比較復雜,但系統可靠性高,容錯能力強。有時也稱為分布式結構。
樹型結構:這是一種分級的集中控制式網絡,與星型相比,它的通信線路總長度短,成本較低、節點易于擴充、尋找路徑方便,但除了葉節點及其相連的線路外,任一節點或其相連的線路故障都會使系統受到影響。
域名解析
在互聯網上有成千上萬臺計算機,為了能準確地訪問其中某臺計算機上的服務,在OSI七層模型的網絡層中,通過IP地址來唯一標記每臺主機在網絡里的位置,比如:39.106.226.142。但是這些純數字的IP地址太難記了,因而就出現了域名(比如csdn.net)這樣便于人類記憶的地址符號。這相當于現實世界中城市的名稱,如武漢市,IP地址則相當于郵局內部的編碼,如420000,而域名解析就是將域名轉換為IP地址的過程。
1、域名規則
英文域名只能由26個英文字母、0~9十個數字以及“-”連字符號混合而成(除了“-”不能是第一個字符),不支持使用空格及一些特殊字符,比如!?/;😡#$%^~_=+,*<>等。
英文域名不區分大小寫,也可以是純英文和數字域名,對于中文域名而言,則必須含有中文字符。
域名級數是從右至左按照“.”分隔的部分確定的,有幾個“.”就是幾級,一般情況下,域名最好不超過五級,例如a.com是一級域名,而a.b.com則是二級域名。
每一級域名長度的限制是63個字符,域名總長度則不能超過253個字符。
常見的通用頂級域名為:.biz .com .edu .gov .info .int .mil .name .net .org。
國家頂級域名參照ISO 3166-1中的雙字母代碼生成,例如中國大陸為.cn,中國香港為.hk,中國臺灣為.tw,美國為.us。
通用域名可以組合國家域名,標明所在地區(只要域名管理機構允許),例如.gov.cn。
2、域名解析類型
A記錄解析:A記錄就是Address記錄,是用來指定域名對應的IP地址,通常是將網站服務指向服務器地址,例如將域名www.csdn.net指向39.106.226.142這個IP地址,就是一個典型的A記錄解析。
CNAME記錄解析:如果服務器的地址發生變動,光靠A記錄就不行了。這時候就需要用到CNAME,它又叫別名解析,例如域名www.csdn.net,真實的IP地址為39.106.226.142,對應的CNAME可能是abc.csdnweb.com,也就是允許多個域名對應服務器的主機名,這樣即使服務器的IP地址發生變更,也不用更改解析記錄,域名解析會自動依據主機名更新IP地址。如果A記錄解析和CNAME記錄解析并存,那么A記錄解析將優先生效。
MX記錄解析:即郵件交換記錄,這種記錄解析用于將以域名為結尾的電子郵件指向對應的郵件服務器,例如用戶所用的郵件以csdn.net為結尾,那么就需要在域名管理中添加該域名的MX記錄來處理所有以@csdn.net為結尾的郵件。
3、泛域名解析
是指將某一類域名解析到同一個IP地址,以通配符的方式實現,例如將*.csdn.net的泛域名指向IP地址39.106.226.142時,那么a.csdn.net、b.csdn.net等所有以csdn.net結尾的域名都會指向39.106.226.142這個IP。
常用網絡命令和端口
1、常用網絡命令
ping命令:這是在開發中使用頻率極高的一個命令,主要用于確定網絡的連通性,例如很多剛剛安裝操作系統的計算機,第一件事就是先看看是否能聯網,所以往往執行的第一條命令就是ping命令。它的格式是:ping 主機名/域名/IP地址。
ipconfig/ifconfig命令:當使用不帶任何參數選項ipconfig/ifconfig命令時,顯示每個已經配置了的接口的IP地址、子網掩碼和缺省網關值。其中在Windows中使用的是ipconfig,而在Mac或Linux系統中,使用的是ifconfig。
netstat命令:能夠顯示活動的TCP連接、計算機偵聽的端口、以太網統計信息、IP路由表、IPv4以及IPv6統計信息,通過它可以了解網絡當前的狀態。
2、常用網絡端口
TCP與UDP段結構中端口范圍在0~65535之間。
端口號小于256的是常用端口,服務器一般都是通過常用端口號來識別的。
任何TCP/IP實現所提供的服務都用0~1023之間的端口號。
1024~49151端口號是被注冊的端口號,可以由用戶自由使用,也是被IANA指定為特殊服務使用,從49152~65535是動態或私有端口號(以上并不是強制的)。
| 21 | FTP | FTP服務器所開放的端口,用于上傳、下載 |
| 22 | SSH | SSH連接 |
| 23 | Telnet | 遠程登錄服務 |
| 25 | SMTP | SMTP服務器所開放的端口,用于發送郵件 |
| 80 | HTTP | HTTP協議默認端口號 |
| 110 | POP3 | 郵局協議端口號 |
| 161 | SNMP | 網絡管理協議端口號 |
| 443 | HTTPS | HTTPS協議默認端口號 |
| 8080 | WWW代理 | 一般的網站服務會開放此端口 |
數據結構常識
數組(Array):它是將具有相同類型的若干數據組織在一起的集合,這是一種最基本而且也是一種最經常使用的數據結構。
棧(Stack):一種特殊的線性表,只能在一個表的固定端進行數據節點的插入和刪除操作,棧正是一種按照后進先出(LIFO)的原則來存儲數據的數據結構。
隊列(Queue):和棧類似,但不同的是,它是在一端執行入隊操作,而在另一端進行出隊操作。
鏈表(Linked List):它和數組一樣,也是一組數據的集合,但和數組不一樣的是,它并不是一組連續的數據集合,而是通過指針連接在一起的。
樹(Tree):這是一種典型的非線性結構,之所以叫做“樹”,是因為它的結構看起來就像一顆倒過來的樹,它只有一個根結點,但可以有多個后繼節點。
堆(Heap):它是一種特殊的樹型結構,它的特點是根結點的值是所有節點中最大或者最小的,而且根結點的子節點也是一個堆結構。
圖(Graph):這也是一種非線性數據結構,在圖結構中,數據節點稱為頂點,頂點之間的連線稱為邊。
散列表(Hash):這種數據結構來源于散列函數,它的思想是如果存在x,那么就必然有一個唯一的存儲位置f(x)可以找到x,這樣通過數學函數就直接計算出x的存儲位置而不用在進行比較、查找以后才知道。
算法常識
1、查找算法
順序查找:它的基本思想就是從第一個元素開始,按順序遍歷待查找序列,直到找出給定目標或者查找失敗,其過程如下圖所示。
二分查找:又叫折半查找,它要求列表必須是有序的。它的原理是每次都把待比較元素A和列表中間的元素B進行比較,如果A小于B,那么A再和位于B前半部分的元素進行比較,并且再次選擇中間元素進行比較,直到比較完所有元素為止。
2、排序算法
冒泡排序:它重復地走訪過要排序的數列,一次比較兩個元素,如果它們的順序錯誤就把它們交換過來。走訪數列的工作是重復地進行直到沒有再需要交換,也就是說該數列已經排序完成。這個算法的名字由來是因為越小(大)的元素會經由交換慢慢“浮”到數列的頂端。
選擇排序:是一種簡單直觀的排序算法。它的工作原理是:首先在未排序序列中找到最小(大)元素,存放到排序序列的起始位置,然后,再從剩余未排序元素中繼續尋找最小(大)元素,然后放到已排序序列的末尾。以此類推,直到所有元素均排序完畢。
總結
以上是生活随笔為你收集整理的C1见习工程师(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: matlab调和均值滤波_求matlab
- 下一篇: Spice Windows Client