深入分析計算機網絡傳輸層和應用層面試題

三、傳輸層面試題(Transmission Layer)

傳輸層位于 OSI 七層模型的第四層,它的核心任務是為兩個主機之間的應用層提供可靠的數據傳輸服務。它不僅承擔了數據的端到端傳輸,而且還實現了諸如差錯檢測、數據流控制、擁塞控制等機制,是網絡面試中非常關鍵的一層。

1. TCP 和 UDP 的區別詳解及應用場景分析

概述:TCP 和 UDP 是傳輸層的兩種協議,各有優缺點,使用場景不同。

特性TCP(Transmission Control Protocol)UDP(User Datagram Protocol)
是否連接是,面向連接(需要三次握手建立連接)否,無連接
可靠性可靠,確保數據無差錯、無重復、按序到達不可靠,可能出現丟包、亂序、重復
流控制和擁塞控制有滑動窗口機制,進行流量控制和擁塞控制無此機制
傳輸效率較低,但保證可靠性高效,但不保證可靠性
開銷較大,需要維護連接狀態、確認機制等小,無連接狀態,報文頭較短
應用場景適合對可靠性要求高的應用,如網頁瀏覽、文件傳輸、電子郵件適合對實時性要求高但可容忍丟包的應用,如視頻通話、直播、在線游戲

總結

  • 如果應用需要精確的數據傳輸、數據完整性,選擇 TCP。

  • 如果更看重時效性,且可以接受部分數據丟失,比如音視頻通信,選擇 UDP。

2. TCP 三次握手(Three-Way Handshake)詳解

過程描述:

  1. 第一次握手:客戶端發送 SYN 報文,表示請求建立連接,并發送初始序列號(seq=x)。

  2. 第二次握手:服務器收到 SYN 報文后,回復一個 SYN-ACK 報文,表示接受連接請求,發送自己的初始序列號(seq=y),并確認客戶端的序列號(ack=x+1)。

  3. 第三次握手:客戶端收到 SYN-ACK 報文后,發送 ACK 報文,確認服務器的序列號(ack=y+1),此時連接建立完成。

重點問題解析:

  • 為什么需要三次握手?

    • 防止失效的連接請求報文造成錯誤連接。

    • 需要雙方都確認收發能力正常。

圖示

客戶端                    服務器| ———— SYN ————>          || <—— SYN+ACK ——          || ———— ACK ————>          |
連接建立完成

3. TCP 四次揮手(Four-Way Handshake)詳解

過程描述:

  1. 客戶端發送 FIN 報文,請求關閉連接。

  2. 服務器接收后回復 ACK,表示收到關閉請求。

  3. 服務器處理完數據后,發送 FIN 報文,表示可以關閉連接。

  4. 客戶端收到后發送 ACK 報文,進入 TIME_WAIT 狀態。

重點:

  • TCP 是全雙工協議,必須雙方都關閉連接。

  • 為什么需要 TIME_WAIT:確保最后 ACK 能到達服務器,防止老數據污染新連接。

4. TCP 狀態變遷及 TIME_WAIT 深入解析

TCP 在連接和斷開過程中,會經歷多種狀態,包括:

  • LISTEN

  • SYN_SENT

  • SYN_RECEIVED

  • ESTABLISHED

  • FIN_WAIT_1

  • FIN_WAIT_2

  • CLOSE_WAIT

  • CLOSING

  • LAST_ACK

  • TIME_WAIT

  • CLOSED

重點分析 TIME_WAIT:

  • 等待兩倍最大報文壽命(MSL)時間,確保服務端已收到 ACK。

  • 防止舊連接報文影響新連接。

如何優化 TIME_WAIT 過多問題?

  • 操作系統調優(如 tcp_tw_reuse)。

  • 使用短連接或連接池。

5. TCP 的可靠性機制詳解

1. 序列號與確認號(SEQ/ACK)

  • 每個 TCP 報文都有 SEQ(數據序號)與 ACK(確認號)。

  • 確保報文按順序傳輸。

2. 重傳機制

  • 超時重傳(Timeout Retransmission)

  • 快速重傳(Fast Retransmit):連續收到三個相同 ACK 時立即重傳

3. 滑動窗口機制(Sliding Window)

  • 控制發送速率,實現流量控制。

  • 接收方窗口通知發送方可接收的數據量。

4. 擁塞控制機制

  • 慢啟動(Slow Start)

  • 擁塞避免(Congestion Avoidance)

  • 快速重傳(Fast Retransmit)

  • 快速恢復(Fast Recovery)

6. TCP 粘包與拆包問題及解決方法

出現原因:

  • 粘包:多條小數據連續發送,接收方一次性接收。

  • 拆包:一條大數據被拆分成多段接收。

解決方式:

  • 固定長度分隔

  • 特殊分隔符(如 \n)

  • 報文頭部添加長度字段(常用)


四、應用層面試題(Application Layer)

應用層是 OSI 模型的第七層,直接為用戶提供服務。常見的協議如 HTTP、DNS、SMTP、FTP、DHCP 等。面試中考查頻率極高,尤其是 HTTP 協議相關內容。

1. HTTP 和 HTTPS 的區別(深入詳解)

特性HTTPHTTPS
安全性明文傳輸,容易被竊聽或篡改使用 TLS/SSL 加密傳輸,確保數據安全
數據完整性無保障使用數字簽名與證書校驗數據完整性
端口默認端口 80默認端口 443
握手開銷無需額外握手需 TLS 握手(增加延遲)
數字證書不需要需要 CA 簽發的數字證書

TLS 握手過程簡述:

  1. 客戶端發起請求,包含支持的加密算法等信息;

  2. 服務端返回證書和公鑰;

  3. 客戶端驗證證書有效性,生成對稱密鑰并用公鑰加密;

  4. 服務端用私鑰解密對稱密鑰,之后使用該密鑰進行加密通信。

2. HTTP1.0、HTTP1.1、HTTP2.0、HTTP3.0 對比

特性HTTP/1.0HTTP/1.1HTTP/2HTTP/3
連接短連接默認長連接單連接多路復用基于 UDP 的 QUIC 協議
請求數一次請求一次連接持久連接多個請求復用連接同上,更快恢復丟包
壓縮頭部壓縮更高效
服務器推送不支持不支持支持支持

3. HTTP 狀態碼分類與詳解

  • 1xx:信息性(如 100 Continue)

  • 2xx:成功(如 200 OK, 204 No Content)

  • 3xx:重定向(如 301 Moved Permanently, 302 Found)

  • 4xx:客戶端錯誤(如 400 Bad Request, 403 Forbidden, 404 Not Found)

  • 5xx:服務器錯誤(如 500 Internal Server Error, 502 Bad Gateway)

面試技巧: 掌握常見狀態碼的語義與使用場景。

4. Cookie、Session、Token 與 JWT 區別

特性CookieSessionToken(如 JWT)
存儲位置客戶端服務端客戶端(本地存儲)
安全性易被竊取偽造相對安全安全,簽名校驗
狀態性有狀態有狀態無狀態
適用場景瀏覽器本地記住信息服務端保持用戶會話前后端分離、移動端認證

JWT 結構: Header.Payload.Signature

  • Header:聲明類型和算法

  • Payload:用戶信息、權限等

  • Signature:對前兩者進行簽名,防篡改

5. DNS 的解析過程詳解

  1. 瀏覽器緩存:是否解析過該域名?

  2. 系統緩存(如 /etc/hosts 文件)

  3. 本地 DNS 服務器

  4. 根域名服務器

  5. 頂級域服務器(如 .com、.cn)

  6. 權威域名服務器(提供最終 IP)

最終解析出 IP 地址返回給客戶端,客戶端發起請求。

面試加分點:

  • DNS 輪詢負載均衡(RR)

  • DNS 緩存機制

  • CDN 與 DNS 的結合優化訪問路徑


本文為計算機網絡面試題進階總結,涵蓋傳輸層與應用層的高頻知識點及深入解析。適合面試前系統復習,幫助應對實際面試中可能出現的綜合性網絡問題。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/90804.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/90804.shtml
英文地址,請注明出處:http://en.pswp.cn/web/90804.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【RH134 問答題】第 2 章 調度未來任務

目錄crontab 文件中的用戶作業時間格式怎么解釋&#xff1f;如果需要以當前用戶身份計劃周期性作業&#xff0c;在上午 8 點到晚上 9 點之間每兩分鐘一次輸出當前日期和時間&#xff0c;該作業只能在周一到周五運行&#xff0c;周六或周日不能運行。要怎么做&#xff1f;要計劃…

【ee類保研面試】通信類---信息論

25保研er&#xff0c;希望將自己的面試復習分享出來&#xff0c;供大家參考 part0—英語類 part1—通信類 part2—信號類 part3—高數類 part100—self項目準備 文章目錄**面試復習總綱****Chap2: 熵、相對熵和互信息 (Entropy, Relative Entropy, and Mutual Information)****…

vue2+node+express+MongoDB項目安裝啟動啟動

文章目錄 準備環境 安裝MongoDB 安裝 MongoDB Compass(圖形化數據庫管理工具) 安裝 Postman(接口測試工具) 項目結構 配置項目代理 項目啟動 提交項目 生成Access Token 準備環境 默認含有node.js、npm 安裝MongoDB 下載地址:https://www.mongodb.com/try/download/com…

JavaEE初階第十二期:解鎖多線程,從 “單車道” 到 “高速公路” 的編程升級(十)

專欄&#xff1a;JavaEE初階起飛計劃 個人主頁&#xff1a;手握風云 目錄 一、多線程案例 1.1. 定時器 一、多線程案例 1.1. 定時器 定時器是軟件開發的一個重要組件&#xff0c;是一種能夠按照預設的時間間隔或在特定時間點執行某個任務或代碼片段的機制。你可以把它想象成…

EDoF-ToF: extended depth of field time-of-flight imaging解讀, OE 2021

1. 核心問題&#xff1a;iToF相機的“景深”死穴我們之前已經詳細討論過&#xff0c;iToF相機的“景深”&#xff08;有效測量范圍&#xff09;受到光學散焦的嚴重制約。問題根源&#xff1a; 當iToF相機的鏡頭散焦時&#xff0c;來自場景不同深度的光信號會在傳感器像素上發生…

符號引用與直接引用:概念對比與實例解析

符號引用與直接引用&#xff1a;概念對比與實例解析 符號引用和直接引用是Java虛擬機(JVM)中類加載與執行機制的核心概念&#xff0c;理解它們的區別與聯系對于深入掌握Java運行原理至關重要。下面我將從定義、特性、轉換過程到實際應用&#xff0c;通過具體示例全面比較這兩類…

每日一講——Podman

一、概念1、定義與定位Podman&#xff08;Pod Manager&#xff09;是符合OCI標準的容器引擎&#xff0c;用于管理容器、鏡像及Pod&#xff08;多容器組&#xff09;。它無需守護進程&#xff08;Daemonless&#xff09;&#xff0c;直接通過Linux內核功能&#xff08;如命名空間…

Spring Boot DFS、HDFS、AI、PyOD、ECOD、Junit、嵌入式實戰指南

Spring Boot分布式文件系統 以下是一些關于Spring Boot分布式文件系統(DFS)的實現示例和關鍵方法,涵蓋了不同場景和技術的應用。這些示例可以幫助理解如何在Spring Boot中集成DFS(如HDFS、MinIO、FastDFS等)或模擬分布式存儲。 使用Spring Boot集成HDFS 基礎配置 // 配…

解決GoLand運行go程序報錯:Error: Cannot find package xxx 問題

問題描述 一個簡單的go程序&#xff0c;代碼如下 package mainimport "fmt" func main() {// 占位符&#xff0c;和java的String.format用法一樣fmt.Printf("我%d歲&#xff0c;我叫%s", 18, "yexindong") }結構如下當我想要運行時卻報錯 Error:…

Spring MVC設計精粹:源碼級架構解析與實踐指南

文章目錄一、設計哲學&#xff1a;分層與解耦1. 前端控制器模式2. 分層架構設計二、核心組件源碼解析1. DispatcherServlet - 九大組件初始化2. DispatcherServlet - 前端控制器&#xff08;請求處理中樞&#xff09;請求源碼入口&#xff1a;FrameworkServlet#doGet()請求委托…

k8s之控制器詳解

1.deployment&#xff1a;適用于無狀態服務1.功能(1)創建高可用pod&#xff08;2&#xff09;滾動升級/回滾&#xff08;3&#xff09;平滑擴容和縮容2.操作命令&#xff08;1&#xff09;回滾# 回滾到上一個版本 kubectl rollout undo deployment/my-app# 回滾到特定版本&…

.NET Core中的配置系統

傳統配置方式文件Web.config 進行配置。ConfigurationManager類配置。.NET配置系統中支持配置方式文件配置&#xff08;json、xml、ini等&#xff09;注冊表環境變量命令行自定義配置源Json文件配置方式實現步驟&#xff1a;創建一個json文件&#xff0c;把文件設置 為“如果較…

kafka的消費者負載均衡機制

Kafka 的消費者負載均衡機制是保證消息高效消費的核心設計&#xff0c;通過將分區合理分配給消費者組內的消費者&#xff0c;實現并行處理和負載均衡。以下從核心概念、分配策略、重平衡機制等方面詳細講解。一、核心概念理解消費者負載均衡前&#xff0c;需明確三個關鍵概念&a…

騰訊云edges on部署pages

騰訊云edges on部署pages適用場景部署方式官方文檔 適用場景 Next.js Hexo 以及用React Vue等現代前端框架構建的單頁應用全棧項目開發 通過Pages Function KV等能力 實現輕量化的動態服務快速部署與迭代 通過Github等代碼管理平臺集成 每次代碼提交時自動構建和部署網站 注…

SpringAI入門及淺實踐,實戰 Spring? AI 調用大模型、提示詞工程、對話記憶、Adv?isor 的使用

上一次寫AI學習筆記已經好久之前了&#xff0c;溫習溫習&#xff0c;這一章講講關于Spring? AI 調用大模型、對話記憶、Adv?isor、結構化輸出、自定義對話記憶?、Prompt 模板的相關知識點。 快速跳轉到你感興趣的地方一、提示詞工程&#xff08;Prompt&#xff09;1. 基本概…

對抗攻擊-知識點

文章目錄自然圖像往往靠近機器學習分類器學習到的決策邊界&#xff08;decision boundaries&#xff09;。正交方向--改變某一個不影響其它的特征降采樣&#xff08;Feature Downsampling&#xff09;通過黑盒攻擊的持續挑戰&#xff0c;我們才能構建真正安全可靠的智能系統DCT…

7.26 作業

一、實驗要求及其拓撲圖&#xff1a; 本次實驗拓撲圖&#xff1a; 二、實驗IP地址劃分&#xff1a; 1. 公網地址&#xff08;R5 作為 ISP&#xff0c;使用公網地址&#xff09;&#xff1a; R1 與 R5 之間接口&#xff1a;15.1.1.0/24&#xff0c;R1 側為 15.1.1…

Kafka運維實戰 14 - kafka消費者組消費進度(Lag)深入理解【實戰】

目錄什么是消費者 Lag舉例說明&#xff1a;Lag 的意義&#xff1a;Lag 監控和查詢kafka-consumer-groups基本語法常用命令示例1. 查看單個消費者組的詳細信息&#xff08;最常用&#xff09;2. 列出所有消費者組&#xff08;只顯示名稱&#xff09;3. 列出所有消費者組&#xf…

設計模式(十三)結構型:代理模式詳解

設計模式&#xff08;十三&#xff09;結構型&#xff1a;代理模式詳解代理模式&#xff08;Proxy Pattern&#xff09;是 GoF 23 種設計模式中的結構型模式之一&#xff0c;其核心價值在于為其他對象提供一種間接訪問的機制&#xff0c;以控制對原始對象的訪問。它通過引入一個…

24點數學游戲(窮舉法求解表達式)

摘要本畢業設計旨在利用MATLAB技術實現一個24點數學游戲&#xff0c;采用窮舉法求解所有可能的表達式組合。通過全排列數字、枚舉運算符及括號位置&#xff0c;結合遞歸回溯算法&#xff0c;系統能夠高效地搜索所有可能的運算路徑&#xff0c;并驗證結果是否為24。實驗結果表明…