2023年計(jì)算機(jī)Java面試題八股文匯總
基礎(chǔ)1.說(shuō)下計(jì)算機(jī)網(wǎng)絡(luò)體系結(jié)構(gòu)計(jì)算機(jī)網(wǎng)絡(luò)體系結(jié)構(gòu),
一般有三種:OSI七層模型、TCP/IP四層模型、五層結(jié)構(gòu)。

簡(jiǎn)單說(shuō),OSI是一個(gè)理論上的網(wǎng)絡(luò)通信模型,TCP/IP是實(shí)際上的網(wǎng)絡(luò)通信模型,五層結(jié)構(gòu)就是為了介紹網(wǎng)絡(luò)原理而折中的網(wǎng)絡(luò)通信模型。OSI七層模型OSI七層模型是國(guó)際標(biāo)準(zhǔn)化組織(InternationalOrganizationforStandardization)制定的一個(gè)用于計(jì)算機(jī)或通信系統(tǒng)間互聯(lián)的標(biāo)準(zhǔn)體系。
應(yīng)用層:通過(guò)應(yīng)用進(jìn)程之間的交互來(lái)完成特定網(wǎng)絡(luò)應(yīng)用,應(yīng)用層協(xié)議定義的是應(yīng)用進(jìn)程間通信和交互的規(guī)則,常見(jiàn)的協(xié)議有:HTTPFTPSMTPSNMPDNS.表示層:數(shù)據(jù)的表示、安全、壓縮。確保一個(gè)系統(tǒng)的應(yīng)用層所發(fā)送的信息可以被另一個(gè)系統(tǒng)的應(yīng)用層讀取。會(huì)話層:建立、管理、終止會(huì)話,是用戶應(yīng)用程序和網(wǎng)絡(luò)之間的接口。運(yùn)輸層:提供源端與目的端之間提供可靠的透明數(shù)據(jù)傳輸,傳輸層協(xié)議為不同主機(jī)上運(yùn)行的進(jìn)程提供邏輯通信。網(wǎng)絡(luò)層:將網(wǎng)絡(luò)地址翻譯成對(duì)應(yīng)的物理地址,實(shí)現(xiàn)不同網(wǎng)絡(luò)之間的路徑選擇,協(xié)議有ICMPIGMPIP等.數(shù)據(jù)鏈路層:在物理層提供比特流服務(wù)的基礎(chǔ)上,建立相鄰結(jié)點(diǎn)之間的數(shù)據(jù)鏈路。物理層:建立、維護(hù)、斷開物理連接。TCP/IP四層模型應(yīng)用層:對(duì)應(yīng)于OSI參考模型的(應(yīng)用層、表示層、會(huì)話層)。傳輸層:對(duì)應(yīng)OSI的傳輸層,為應(yīng)用層實(shí)體提供端到端的通信功能,保證了數(shù)據(jù)包的順序傳送及數(shù)據(jù)的完整性。網(wǎng)際層:對(duì)應(yīng)于OSI參考模型的網(wǎng)絡(luò)層,主要解決主機(jī)到主機(jī)的通信問(wèn)題。網(wǎng)絡(luò)接口層:與OSI參考模型的數(shù)據(jù)鏈路層、物理層對(duì)應(yīng)。五層體系結(jié)構(gòu)應(yīng)用層:對(duì)應(yīng)于OSI參考模型的(應(yīng)用層、表示層、會(huì)話層)。傳輸層:對(duì)應(yīng)OSI參考模型的的傳輸層網(wǎng)絡(luò)層:對(duì)應(yīng)OSI參考模型的的網(wǎng)絡(luò)層數(shù)據(jù)鏈路層:對(duì)應(yīng)OSI參考模型的的數(shù)據(jù)鏈路層物理層:對(duì)應(yīng)OSI參考模型的的物理層。
2.說(shuō)一下每一層對(duì)應(yīng)的網(wǎng)絡(luò)協(xié)議有哪些?
一張表格總結(jié)常見(jiàn)網(wǎng)絡(luò)協(xié)議:

3.那么數(shù)據(jù)在各層之間是怎么傳輸?shù)哪兀?/strong>
對(duì)于發(fā)送方而言,從上層到下層層層包裝,對(duì)于接收方而言,從下層到上層,層層解開包裝。發(fā)送方的應(yīng)用進(jìn)程向接收方的應(yīng)用進(jìn)程傳送數(shù)據(jù)AP先將數(shù)據(jù)交給本主機(jī)的應(yīng)用層,應(yīng)用層加上本層的控制信息H5就變成了下一層的數(shù)據(jù)單元傳輸層收到這個(gè)數(shù)據(jù)單元后,加上本層的控制信息H4,再交給網(wǎng)絡(luò)層,成為網(wǎng)絡(luò)層的數(shù)據(jù)單元到了數(shù)據(jù)鏈路層,控制信息被分成兩部分,分別加到本層數(shù)據(jù)單元的首部(H2)和尾部(T2)最后的物理層,進(jìn)行比特流的傳輸

這個(gè)過(guò)程類似寫信,寫一封信,每到一層,就加一個(gè)信封,寫一些地址的信息。到了目的地之后,又一層層解封,傳向下一個(gè)目的地。網(wǎng)絡(luò)綜合
4.從瀏覽?地址欄輸入url到顯示主頁(yè)的過(guò)程?
這道題,大概的過(guò)程比較簡(jiǎn)單,但是有很多點(diǎn)可以細(xì)挖:DNS解析、TCP三次握手、HTTP報(bào)文格式、TCP四次揮手等等。1.DNS解析:將域名解析成對(duì)應(yīng)的IP地址。2.TCP連接:與服務(wù)?通過(guò)三次握手,建立TCP連接3.向服務(wù)?發(fā)送HTTP請(qǐng)求4.服務(wù)?處理請(qǐng)求,返回HTTp響應(yīng)5.瀏覽?解析并渲染頁(yè)面6.斷開連接:TCP四次揮手,連接結(jié)束
我們以輸入www.baidu.com為例:


5.說(shuō)說(shuō)DNS的解析過(guò)程?
DNS,英文全稱是domainnamesystem,域名解析系統(tǒng),它的作用也很明確,就是域名和IP相互映射。DNS的解析過(guò)程如下圖:

假設(shè)你要查詢www.baidu.com的IP地址:首先會(huì)查找瀏覽?的緩存,看看是否能找到www.baidu.com對(duì)應(yīng)的IP地址,找到就直接返回;否則進(jìn)行下一步。將請(qǐng)求發(fā)往給本地DNS服務(wù)?,如果查找到也直接返回,否則繼續(xù)進(jìn)行下一步;

本地DNS服務(wù)?向根域名服務(wù)?發(fā)送請(qǐng)求,根域名服務(wù)?返回負(fù)責(zé)com的頂級(jí)域名服務(wù)?的IP地址的列表。本地DNS服務(wù)?再向其中一個(gè)負(fù)責(zé)com的頂級(jí)域名服務(wù)?發(fā)送一個(gè)請(qǐng)求,返回負(fù)責(zé)baidu.com的權(quán)限域名服務(wù)?的IP地址列表。本地DNS服務(wù)?再向其中一個(gè)權(quán)限域名服務(wù)?發(fā)送一個(gè)請(qǐng)求,返回www.baidu.com所對(duì)應(yīng)的IP地址。
6.說(shuō)說(shuō)WebSocket與Socket的區(qū)別?
Socket其實(shí)就是等于IP地址+端口+協(xié)議。具體來(lái)說(shuō),Socket是一套標(biāo)準(zhǔn),它完成了對(duì)TCP/IP的高度封裝,屏蔽網(wǎng)絡(luò)細(xì)節(jié),以方便開發(fā)者更好地進(jìn)行網(wǎng)絡(luò)編程。WebSocket是一個(gè)持久化的協(xié)議,它是伴隨H5而出的協(xié)議,用來(lái)解決http不支持持久化連接的問(wèn)題。Socket一個(gè)是網(wǎng)編編程的標(biāo)準(zhǔn)接口,而WebSocket則是應(yīng)用層通信協(xié)議。
7.說(shuō)一下你了解的端口及對(duì)應(yīng)的服務(wù)?

