某大廠跳動面試:計算機網絡相關問題解析與總結 - 教程
一些常見的計算機網絡面試問題和詳細解答,在面試中打下堅實的基礎。就是在參加像字節跳動這樣的互聯網公司面試時,計算機網絡的知識是一個常見的考察點。以下
---
#### 1. **HTTPS通信過程**
HTTPS (HyperText Transfer Protocol Secure) 是一種安全的 HTTP 協議,通過 TLS/SSL 加密實現數據的保密性和完整性。HTTPS 的通信過程包括以下幾個步驟:
- **客戶端發起連接**:客戶端向服務器發送請求,利用 HTTPS 協議。
- **服務器響應**:服務器返回其 SSL/TLS 證書,其中包含了公鑰。
- **客戶端驗證證書**:客戶端驗證服務器證書是否有效,包括證書是否過期、是否被信任的證書頒發機構簽發等。
- **密鑰交換**:客戶端生成一個隨機數,使用服務器公鑰加密后發送給服務器。服務器使用私鑰解密,獲取隨機數。
- **加密通信**:基于生成的隨機數,客戶端和服務器協商一個共享的對稱加密密鑰,之后的通信都啟用這個對稱加密密鑰進行加密。
---
#### 2. **HTTPS加密過程,怎么判斷證書的有效性**
- **證書鏈驗證**:客戶端會驗證證書鏈是否完整,證書是否由受信任的證書頒發機構(CA)簽發。
- **域名匹配**:客戶端檢查證書中囊括的域名是否與訪問的域名匹配。
否過期。就是- **證書有效期**:證書有開始時間和到期時間,客戶端會檢查證書
- **撤銷檢查**:通過 CRL(證書撤銷列表)或 OCSP(在線證書狀態協議)檢查證書是否已被撤銷。
---
#### 3. **TCP與UDP的區別**
| 特性 | TCP | UDP |
|----------------|----------------------------------|--------------------------------|
| 連接方式 | 面向連接 | 無連接 |
| 可靠性 | 供應可靠的數據傳輸 | 不保證數據可靠傳輸 |
| 流控制 | 支持流控制 | 不支持流控制 |
| 擁塞控制 | 支持擁塞控制 | 不支持擁塞控制 |
| 數據包順序 | 保證數據包按順序到達 | 不保證數據包順序 |
| 速度 | 較慢,因需要確認和重傳 | 較快,適合實時應用 |
| 應用場景 | Web瀏覽、文件傳輸、郵件等應用 | 視頻流、VoIP、DNS等實時應用 |
---
#### 4. **TCP的特點**
- **可靠性**:通過三次握手建立連接,保證數據可靠傳輸。
- **流控制**:通過滑動窗口機制,控制發送端的發送速率。
- **擁塞控制**:通過慢啟動、擁塞避免、敏捷重傳和快速恢復機制,避免網絡擁塞。
- **順序保證**:確保數據按順序到達。
通過- **全雙工通信**:能夠同時發送和接收數據。
---
#### 5. **TCP擁塞控制**
TCP 的擁塞控制機制主要包括以下幾種算法:
1. **慢啟動**:連接初始階段,發送端的擁塞窗口逐漸增長,避免過多的數據造成網絡擁堵。
2. **擁塞避免**:當擁塞窗口達到閾值后,增長速率會減慢。
3. **快速重傳**:當接收到三個重復的 ACK 時,立即重傳數據包。
4. **高效恢復**:在發生丟包時,擁塞窗口會減少,但會避免回到慢啟動階段。
---
#### 6. **TCP滑動窗口**
TCP 滑動窗口是一種流控制機制,控制發送方發送數據的速率。接收方依據告訴發送方它能接收的數據量(即窗口大小)來控制發送的窗口。隨著數據的成功接收,窗口會向前滑動,允許發送更多的素材。
---
#### 7. **HTTP頭部有哪些Key**
常見的 HTTP 頭部字段包括:
- **Host**:指定目標服務器的域名。
- **User-Agent**:標識發起請求的客戶端應用類型。
- **Content-Type**:表示請求或響應的正文內容類型。
- **Content-Length**:表示請求或響應的正文材料長度。
- **Authorization**:包含認證信息,如用戶名和密碼。
- **Cookie**:客戶端存儲的 cookie 內容。
---
#### 8. **HTTP狀態碼有哪些**
HTTP 狀態碼分為五類:
1. **1xx(信息性)**:表示請求已被接收,繼續處理。
2. **2xx(成功)**:表示請求已成功處理,如 `200 OK`。
3. **3xx(重定向)**:表示需要進一步的操作,如 `301 Moved Permanently`。
4. **4xx(客戶端錯誤)**:表示請求有誤,如 `404 Not Found`。
5. **5xx(服務器錯誤)**:表示服務器內部錯誤,如 `500 Internal Server Error`。
---
#### 9. **DNS服務器怎么處理域名請求的,了解原理嗎**
DNS (Domain Name System) 負責將域名解析為 IP 地址。處理過程如下:
1. **客戶端發起請求**:客戶端向 DNS 服務器發送域名解析請求。
2. **本地緩存查詢**:DNS 服務器首先檢查緩存,如果找到就返回結果。
3. **遞歸查詢**:要是本地沒有緩存,DNS 會向根域名服務器發起遞歸查詢,直到找到權威 DNS 服務器。
4. **返回結果**:一旦找到正確的 IP 地址,DNS 會返回給客戶端,客戶端可以通過該 IP 地址訪問目標服務器。
---
#### 10. **GET與POST的區別**
- **GET**:用于從服務器獲取數據,請求的數據附加在 URL 后面,適用于獲取資源。數據量較小。
- **POST**:用于向服務器提交數據,數據放在請求體中,適用于提交表單、上傳文件等。數據量大。
---
#### 11. **HTTP 2.0的改動**
HTTP/2 相較于 HTTP/1.x 做了許多優化:
1. **多路復用**:允許多個請求和響應憑借一個連接并行發送,減少延遲。
2. **頭部壓縮**:對 HTTP 頭部進行壓縮,減少冗余,提高傳輸效率。
3. **服務器推送**:允許服務器主動推送資源到客戶端,減少請求次數。
4. **二進制協議**:采用二進制格式傳輸,提升性能,降低解析復雜度。
---
#### 12. **路由器怎么工作的**
路由器是連接不同網絡的設備,其關鍵工作是根據目標 IP 地址轉發數據包。路由器根據路由表決定數據包的轉發路徑,允許根據不同的網絡協議(如 IP)和轉發策略進行智能路由。
---
#### 13. **七層協議講一下**
OSI 模型將網絡通信分為七個層次:
1. **物理層**:負責內容的傳輸和物理連接。
2. **數據鏈路層**:負責點對點之間的可靠通信。
3. **網絡層**:負責數據包的路由和轉發,例:IP。
4. **傳輸層**:確保數據傳輸的可靠性,例:TCP、UDP。
5. **會話層**:管理會話的建立、維護和結束。
6. **表示層**:信息格式化與加解密。
7. **應用層**:為應用程序給出網絡服務,例:HTTP、FTP。
---
#### 14. **HTTP是否無狀態?如何有狀態?Session和Cookies的區別**
- **HTTP 是無狀態的**:每次請求都是獨立的,服務器不會保存客戶端的狀態。
- **如何有狀態**:通過 **Session** 和 **Cookie** 來維持狀態。
- **Cookie**:存儲在客戶端,通常用于記錄會話信息。
- **Session**:存儲在服務器端,客戶端通過 Cookie 存儲 Session ID 來訪問服務器端的材料。
---
以上是一些常見的計算機網絡面試問題和解答,針對這些問題,需要理解每個概念并能結合實際應用場景進行回答。

浙公網安備 33010602011771號