第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

首頁 慕課教程 后端通用面試教程 后端通用面試教程 計(jì)算機(jī)網(wǎng)絡(luò)分層

1. 前言

互聯(lián)網(wǎng)行業(yè)因?yàn)閺V為人知的高薪以及相對(duì)于傳統(tǒng)工科行業(yè)更多的發(fā)展機(jī)會(huì),最近幾年涌入了越來越多的非計(jì)算機(jī)專業(yè)畢業(yè)的從業(yè)人員,校招 / 社招面試的時(shí)候,候選人往往也會(huì)被分為兩種:科班和非科班,互聯(lián)網(wǎng)科班一般特指大學(xué)就讀計(jì)算機(jī)科學(xué)與技術(shù)或者軟件專業(yè),非科班則包含其他各大傳統(tǒng)工科甚至是文科專業(yè)。

某些大廠在招聘后端開發(fā)工程師時(shí)會(huì)嚴(yán)格要求科班背景,因?yàn)閷?duì)于非科班的同學(xué),一般都能勝任計(jì)算機(jī)網(wǎng)絡(luò)應(yīng)用層以上的工作(例如編寫一個(gè)低并發(fā)的后臺(tái)管理系統(tǒng)),但是對(duì)于計(jì)算機(jī)底層的知識(shí)往往是一片盲區(qū)。當(dāng)對(duì)計(jì)算機(jī)網(wǎng)絡(luò)了解甚少的非科班同學(xué)遇到線上問題時(shí),或者網(wǎng)絡(luò)通信相關(guān)的運(yùn)維故障,往往會(huì)束手無策。

所以了解計(jì)算機(jī)底層如何運(yùn)作是非常有必要的,我們這里談到的計(jì)算機(jī)底層知識(shí),包括但不限于:

  • 計(jì)算機(jī)組成:CPU 運(yùn)行的原理,內(nèi)存、硬盤等各種硬件如何協(xié)調(diào)合作;
  • 操作系統(tǒng):支撐后端框架的系統(tǒng),具體做了哪些操作;
  • 編譯原理:對(duì)于 Java 、C++ 這類高級(jí)語言,如何經(jīng)過編譯,轉(zhuǎn)換為匯編語言以及二進(jìn)制文件;
  • 計(jì)算機(jī)網(wǎng)絡(luò):計(jì)算機(jī)與計(jì)算機(jī)之間如何進(jìn)行通信。

從本小節(jié)開始,我們會(huì)開始學(xué)習(xí)計(jì)算機(jī)網(wǎng)絡(luò)相關(guān)的面試題目,并且在熟悉題目的同時(shí),掌握計(jì)算機(jī)網(wǎng)絡(luò)的基本知識(shí)框架。

2. 計(jì)算機(jī)網(wǎng)絡(luò)如何分層

面試官提問: 你了解計(jì)算機(jī)網(wǎng)絡(luò)的分層模型嗎?其中每一層有哪些常見的協(xié)議?

題目解析: 這個(gè)題目需要拆分為兩個(gè)關(guān)鍵點(diǎn)分析:

(1)計(jì)算機(jī)網(wǎng)絡(luò)是如何分層的?闡述 OSI 七層協(xié)議和通用五層協(xié)議的區(qū)別。
(2)分層后的每一層支持哪些協(xié)議?主要會(huì)涉及到后端開發(fā)過程中常用的協(xié)議。

2.1 分層模型總覽

計(jì)算機(jī)網(wǎng)絡(luò)協(xié)議

首先,我們都知道最基礎(chǔ)的分層協(xié)議是計(jì)算機(jī)網(wǎng)絡(luò) OSI(Open System Interconnection)體系。OSI 模型如上圖(a)所示,網(wǎng)絡(luò)結(jié)構(gòu)被拆分為 7 層,自頂向下分別是應(yīng)用層、表示層、會(huì)話層、傳輸層、網(wǎng)絡(luò)層、數(shù)據(jù)鏈路層以及物理層。但是 OSI 模型是一種概念模型,雖然理論比較完整,并不實(shí)用。

TCP/IP 體系如上圖(c)所示,包含了應(yīng)用層、傳輸層、網(wǎng)絡(luò)層以及網(wǎng)絡(luò)接口層,不過我們一般關(guān)注上面三層的內(nèi)容,最下層及網(wǎng)絡(luò)接口層沒有實(shí)質(zhì)性的協(xié)議。TCP/IP 體系分層就是我們實(shí)際應(yīng)用中的網(wǎng)絡(luò)協(xié)議。

作為 OSI 七層協(xié)議和 TCP/IP 四層協(xié)議的折中,還有一種是五層協(xié)議的體系,往往是面試中考察的重點(diǎn)。

五層協(xié)議,如上圖中(b)所示,自頂向下分為應(yīng)用層、傳輸層、網(wǎng)絡(luò)層、數(shù)據(jù)鏈路層以及物理層,下面我們將詳細(xì)闡述每層的作用以及代表協(xié)議。

2.2 分層定義以及常見協(xié)議

在畫出了計(jì)算機(jī)網(wǎng)絡(luò)的分層模型之后,我們還需要向面試官解釋每一層的定義以及介紹常見的協(xié)議。

2.2.1 應(yīng)用層

應(yīng)用層(Application Layer)是 5 層協(xié)議的頂層,顧名思義,應(yīng)用層的作用是通過操作系統(tǒng)中應(yīng)用進(jìn)程(例如電子郵件、瀏覽器文件傳輸)提供網(wǎng)絡(luò)交互。

應(yīng)用層最常被問到的是 HTTP 協(xié)議和 DNS 域名解析協(xié)議(在之后的小節(jié)我們會(huì)詳細(xì)講解相關(guān)題目),其次還有一些后端開發(fā)過程中可能會(huì)接觸的協(xié)議,例如支持文件傳輸?shù)?FTP 協(xié)議(例如需要從 Windows 開發(fā)機(jī)傳輸文件到 Linux 服務(wù)器時(shí)使用),以及支持電子郵件的 SMTP 協(xié)議(例如需要開發(fā)電子郵件讀寫的相關(guān)爬蟲時(shí)需要開放郵箱的 SMTP 協(xié)議)。

2.2.2 傳輸層

傳輸層(Transport Layer)主要是為了實(shí)現(xiàn)端口到端口(port to port)的通信,計(jì)算機(jī)的不同進(jìn)程都會(huì)被分配不同的端口,例如域名默認(rèn)的 80 端口。從接收和發(fā)送信息的角度可以分為兩大功能:

  • 復(fù)用:把操作系統(tǒng)的多個(gè)進(jìn)程利用一個(gè)傳輸層接口發(fā)送信息;
  • 分用:把收到的信息利用傳輸層接口分發(fā)到操作系統(tǒng)的不同進(jìn)程。

傳輸層涉及到兩個(gè)常見的協(xié)議,幾乎是面試必考協(xié)議:

  • 傳輸控制協(xié)議(TCP,Transmission Control Protocol):特點(diǎn)是面向連接,基于報(bào)文段傳輸,能夠保證消息可靠交付的協(xié)議;
  • 用戶數(shù)據(jù)包協(xié)議(UDP,User Datagram Protocol):特點(diǎn)是無連接,基于用戶數(shù)據(jù)報(bào)傳輸,不保證消息可靠交付,只盡 "最大努力交付"。

2.2.3 網(wǎng)絡(luò)層

計(jì)算機(jī)之間的通信可以分為位于同一個(gè)子網(wǎng)絡(luò)(也就是局域網(wǎng),Local Area Network)和位于不同的子網(wǎng)絡(luò)(廣域網(wǎng),Wide Area Network),網(wǎng)絡(luò)層協(xié)議解決的問題就是如何判斷兩臺(tái)計(jì)算機(jī)是否屬于同一個(gè)子網(wǎng)絡(luò)中。

  • 網(wǎng)絡(luò)層最常涉及的協(xié)議是 IP 協(xié)議 ,就是 TCP/IP 協(xié)議族中的 IP 網(wǎng)絡(luò)協(xié)議,可見其重要性。

  • 此外,還有和 IP 協(xié)議相關(guān)的 ARP(Address Resolution Protocol,地址解析協(xié)議),以太網(wǎng)的數(shù)據(jù)傳輸最直接依賴的是 MAC 地址,ARP 協(xié)議的作用就是將 IP 地址轉(zhuǎn)換為 MAC 地址。

2.2.4 數(shù)據(jù)鏈路層

數(shù)據(jù)鏈路層(Data-Link Layer)位于物理層和網(wǎng)絡(luò)層之間,對(duì)于兩個(gè)不同主機(jī)之間的數(shù)據(jù)傳輸,可能會(huì)經(jīng)過多個(gè)路由器中轉(zhuǎn),中間的這條鏈路就是我們關(guān)注的重點(diǎn),我們把兩個(gè)主機(jī)抽象為兩個(gè)點(diǎn),鏈路層協(xié)議解決的問題就是 "點(diǎn)對(duì)點(diǎn)" 的數(shù)據(jù)傳輸。

數(shù)據(jù)鏈路層將網(wǎng)絡(luò)層交付的 IP 數(shù)據(jù)包封裝成幀(Frame),其中每一幀包括了數(shù)據(jù)以及必要的控制信息(比如同步信息、尋址信息、差錯(cuò)控制信息),這種設(shè)計(jì)方案非常類似 TCP 協(xié)議中的控制位(由此也能看出計(jì)算機(jī)網(wǎng)絡(luò)設(shè)計(jì)的互通性)。如果通過差錯(cuò)控制信息校驗(yàn)出了錯(cuò)誤,那么就會(huì)在本層丟棄這個(gè)幀,糾正錯(cuò)誤是通過網(wǎng)絡(luò)層的 TCP 協(xié)議完成。

PPP 協(xié)議(Point to Point Protocol):在兩個(gè)點(diǎn)之間傳輸數(shù)據(jù)包的協(xié)議,因?yàn)楸緦由婕暗膮f(xié)議在面試中考察甚少,基本可以只做簡單了解。

2.2.5 物理層

物理層(Physical Layer)是 5 層協(xié)議模型中最底層的協(xié)議,就是通過物理手段(例如網(wǎng)線,電纜)將計(jì)算機(jī)連接起來,提供信息傳輸?shù)奈锢砻浇?,?shù)據(jù)由 0 和 1 二進(jìn)制信號(hào)構(gòu)成,傳輸單元是比特位。因?yàn)殛P(guān)于物理層的研究更偏向于通信相關(guān)的原理,我們只需要了解本層的定義即可。

3. 小結(jié)

本節(jié)給大家講解了掌握計(jì)算機(jī)底層知識(shí)的重要性,以及對(duì)計(jì)算機(jī)網(wǎng)絡(luò) OSI 協(xié)議模型和五層協(xié)議模型進(jìn)行了拆分講解,主要關(guān)注點(diǎn)在于應(yīng)用層以及傳輸層的相關(guān)協(xié)議。