在后臺開發(fā)的面試中,計算機網絡知識是必考的核心內容之一。扎實的網絡基礎不僅能幫助開發(fā)者在工作中解決實際問題,也是技術深度的體現。以下整理了一些常見的計算機網絡面試題,并附上了參考答案,希望能為開發(fā)者們提供一些幫助。
1. OSI七層模型與TCP/IP四層模型是什么?有什么區(qū)別?
參考答案:OSI(開放系統(tǒng)互連)七層模型包括物理層、數據鏈路層、網絡層、傳輸層、會話層、表示層和應用層。TCP/IP四層模型則包括網絡接口層、網際層、傳輸層和應用層。主要區(qū)別在于TCP/IP模型將OSI的物理層和數據鏈路層合并為網絡接口層,將會話層、表示層和應用層合并為應用層,更貼近實際互聯網的實現,而OSI模型理論性更強。
2. 請解釋TCP三次握手和四次揮手的過程。
參考答案:
- 三次握手(建立連接):
1. 客戶端發(fā)送SYN包(序列號seq=x)到服務器,進入SYN_SENT狀態(tài)。
- 服務器收到SYN包,回復SYN+ACK包(seq=y, ack=x+1),進入SYN_RCVD狀態(tài)。
- 客戶端收到SYN+ACK包,發(fā)送ACK包(ack=y+1),雙方進入ESTABLISHED狀態(tài),連接建立。
- 四次揮手(斷開連接):
- 客戶端發(fā)送FIN包(seq=u),進入FINWAIT1狀態(tài)。
- 服務器收到FIN包,回復ACK包(ack=u+1),進入CLOSEWAIT狀態(tài);客戶端收到ACK后進入FINWAIT_2狀態(tài)。
- 服務器發(fā)送FIN包(seq=v, ack=u+1),進入LAST_ACK狀態(tài)。
- 客戶端收到FIN包,回復ACK包(ack=v+1),進入TIME_WAIT狀態(tài);服務器收到ACK后關閉連接,客戶端等待2MSL后關閉連接。
3. TCP與UDP的區(qū)別是什么?
參考答案:TCP是面向連接的、可靠的、基于字節(jié)流的傳輸層協(xié)議,提供流量控制、擁塞控制、重傳機制,適用于需要可靠傳輸的場景(如HTTP、FTP)。UDP是無連接的、不可靠的、基于數據報的傳輸層協(xié)議,傳輸速度快、開銷小,適用于實時性要求高或允許丟包的場景(如視頻流、DNS查詢)。
4. HTTP和HTTPS有什么區(qū)別?
參考答案:HTTP是超文本傳輸協(xié)議,以明文傳輸數據,端口為80,存在安全風險。HTTPS是HTTP的安全版本,通過SSL/TLS協(xié)議進行加密傳輸,端口為443,能防止數據被竊取或篡改,但會增加計算開銷和連接時間。HTTPS需要證書來驗證服務器身份。
5. 什么是DNS?它的解析過程是怎樣的?
參考答案:DNS(域名系統(tǒng))是將域名轉換為IP地址的分布式系統(tǒng)。解析過程包括:
1. 客戶端查詢本地DNS緩存,若沒有則向本地DNS服務器發(fā)送請求。
- 本地DNS服務器查詢根域名服務器,獲取頂級域(如.com)服務器地址。
- 查詢頂級域服務器,獲取權威域名服務器地址。
- 查詢權威域名服務器,獲得目標IP地址,并緩存結果返回給客戶端。
6. 請解釋HTTP狀態(tài)碼及其常見類型。
參考答案:HTTP狀態(tài)碼表示服務器對請求的響應狀態(tài),分為五類:
- 1xx(信息性):如100 Continue,表示請求已接收,繼續(xù)處理。
- 2xx(成功):如200 OK,請求成功。
- 3xx(重定向):如301 Moved Permanently,資源永久重定向。
- 4xx(客戶端錯誤):如404 Not Found,資源不存在。
- 5xx(服務器錯誤):如500 Internal Server Error,服務器內部錯誤。
7. 什么是TCP的流量控制和擁塞控制?
參考答案:
- 流量控制:通過滑動窗口機制實現,接收方根據自身緩沖區(qū)大小動態(tài)調整窗口大小,告知發(fā)送方可發(fā)送的數據量,避免發(fā)送過快導致數據丟失。
- 擁塞控制:包括慢啟動、擁塞避免、快重傳和快恢復等算法,通過調整擁塞窗口大小來探測網絡帶寬,防止網絡過載。
8. 什么是WebSocket?它與HTTP長輪詢有什么區(qū)別?
參考答案:WebSocket是一種全雙工通信協(xié)議,建立在TCP之上,允許服務器主動向客戶端推送數據,適用于實時應用(如聊天室)。HTTP長輪詢則是客戶端定期發(fā)送請求查詢服務器是否有新數據,效率較低且延遲高。WebSocket連接更持久、開銷更小。
9. 請解釋ARP協(xié)議的作用。
參考答案:ARP(地址解析協(xié)議)用于將IP地址映射到MAC地址。當設備需要與同一局域網內的另一設備通信時,會廣播ARP請求查詢目標IP對應的MAC地址,目標設備回復ARP響應,從而建立數據鏈路層通信。
10. 什么是CDN?它如何工作?
參考答案:CDN(內容分發(fā)網絡)是一種分布式網絡系統(tǒng),通過將內容緩存到全球多個邊緣節(jié)點,使用戶可以從最近的節(jié)點獲取數據,從而減少延遲、提高訪問速度。工作流程包括DNS解析將用戶請求重定向到最優(yōu)CDN節(jié)點,節(jié)點直接返回緩存內容或回源站獲取。
###
掌握這些計算機網絡基礎知識,不僅能幫助后臺開發(fā)者在面試中脫穎而出,還能在實際開發(fā)中優(yōu)化系統(tǒng)性能、解決網絡問題。建議結合實踐加深理解,例如通過Wireshark抓包分析TCP連接過程,或搭建簡單的HTTP服務器來體驗協(xié)議交互。不斷學習和積累,才能在技術道路上走得更遠。