TCP、HTTP/HTTPS、FTP 解析 + 面試回答參考

TCP、HTTP/HTTPS、FTP 解析 + 面試回答參考

在后端開發、網絡編程以及運維面試中,TCP 協議、HTTP/HTTPS、FTP 是高頻考點。本文將從原理、流程、面試常問問題出發,幫你一次性搞懂這些核心知識點。


一、TCP 三次握手

1. 作用

建立可靠連接,確保雙方收發數據的能力正常。

2. 流程

  1. 第一次握手(客戶端 → 服務端)

    • 發送 SYN=1seq=x
    • 表示“我想建立連接,我的初始序列號是 x”。
  2. 第二次握手(服務端 → 客戶端)

    • 發送 SYN=1ACK=1ack=x+1seq=y
    • 表示“我同意建立連接,我的初始序列號是 y,并確認你的序列號”。
  3. 第三次握手(客戶端 → 服務端)

    • 發送 ACK=1ack=y+1
    • 表示“我確認你的序列號,連接建立成功”。

3. 為什么不是兩次?

因為兩次握手無法確保雙方的收發能力都正常,可能出現“半連接”問題。


面試回答參考:

TCP 采用三次握手建立連接。第一次握手客戶端發送 SYN 請求,第二次握手服務端返回 SYN+ACK 確認,第三次握手客戶端發送 ACK 確認,至此連接建立。三次握手的目的是防止已失效的連接請求報文突然又傳到服務器,引起資源浪費,同時確保雙方的收發能力正常。


二、TCP 四次揮手

1. 作用

安全釋放 TCP 連接,確保數據傳輸完整。

2. 流程

  1. 第一次揮手(主動方 → 被動方)

    • 發送 FIN=1,表示“我沒有數據發了,但還可以接收數據”。
  2. 第二次揮手(被動方 → 主動方)

    • 發送 ACK=1,確認收到對方的 FIN
  3. 第三次揮手(被動方 → 主動方)

    • 數據發送完畢后,發送 FIN=1,表示“我也沒有數據發了”。
  4. 第四次揮手(主動方 → 被動方)

    • 發送 ACK=1,確認收到對方的 FIN,連接完全關閉。

3. 為什么是四次?

因為 TCP 是全雙工的,關閉需要雙方分別發送 FIN


面試回答參考:

TCP 斷開連接需要四次揮手。第一次揮手由主動方發送 FIN 請求關閉,第二次由被動方 ACK 確認,第三次被動方發送 FIN 請求關閉,第四次主動方 ACK 確認。四次的原因是 TCP 是全雙工的,雙方需要分別關閉自己的發送通道。


三、HTTP 與 HTTPS

1. HTTP

  • 端口:80
  • 特點:明文傳輸,無加密;無狀態,需要 Cookie/Session 保存狀態。

2. HTTPS

  • 端口:443
  • 特點:基于 SSL/TLS 加密的 HTTP;傳輸過程加密(對稱 + 非對稱加密 + 數字證書)。

3. HTTPS 握手流程

  1. 客戶端請求 HTTPS 連接。
  2. 服務端發送數字證書(含公鑰)。
  3. 客戶端驗證證書,生成隨機對稱密鑰,用公鑰加密發送給服務端。
  4. 后續通信使用對稱加密,提高效率。

4. 區別對比

對比項HTTPHTTPS
端口80443
加密SSL/TLS
安全性
性能略低(加密開銷)
證書不需要需要 CA 證書

面試回答參考:

HTTP 是明文傳輸,默認端口 80;HTTPS 在 HTTP 基礎上通過 SSL/TLS 加密數據,默認端口 443,能防止中間人攻擊和數據竊聽。雖然加密會帶來一定性能開銷,但能保證數據的機密性、完整性和身份驗證。


四、FTP 協議

1. 作用

文件傳輸協議(File Transfer Protocol),在客戶端與服務器之間傳輸文件。

2. 端口

  • 控制連接(命令端口):21
  • 數據傳輸端口:20(主動模式)或隨機高位端口(被動模式)

3. 模式

  1. 主動模式 (Active Mode)

    • 客戶端告訴服務器“我在 X 端口等你”,服務器主動連接客戶端傳輸數據。
    • 缺點:可能被客戶端防火墻攔截。
  2. 被動模式 (Passive Mode)

    • 服務器告訴客戶端“我在 Y 端口等你”,客戶端主動連接服務器。
    • 常用于穿防火墻場景。

4. 缺點與改進

  • FTP 明文傳輸用戶名、密碼、文件內容
  • 可用 FTPS / SFTP 實現加密傳輸

面試回答參考:

FTP 用于文件傳輸,默認命令端口 21,數據端口 20(主動模式)或隨機端口(被動模式)。主動模式下由服務器連接客戶端,可能被防火墻阻止;被動模式下由客戶端連接服務器,穿防火墻效果更好。FTP 傳輸是明文的,安全性低,可以使用 FTPS 或 SFTP 提升安全性。


五、總結

  • TCP 三次握手:確保雙方收發能力正常
  • TCP 四次揮手:雙方獨立關閉連接
  • HTTP vs HTTPS:加密、端口、性能、安全性
  • FTP:文件傳輸、主動與被動模式、安全性提升方案

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

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

相關文章

ATF(TF-A)安全通告 TFV-13(CVE-2024-7881)

安全之安全(security)博客目錄導讀 ATF(TF-A)安全通告匯總 目錄 一、漏洞描述 二、緩解措施與建議 三、補丁修改 關于該漏洞的具體細節,可參考【CVE-2024-7881】ARM CPU漏洞安全通告】 Title 非特權上下文可以觸發數據相關的預取引擎,從而獲取特權位置的內容,并將這些…

Pytorch深度學習框架實戰教程-番外篇02-Pytorch池化層概念定義、工作原理和作用

相關文章 視頻教程 《Pytorch深度學習框架實戰教程01》《視頻教程》 《Pytorch深度學習框架實戰教程02:開發環境部署》《視頻教程》 《Pytorch深度學習框架實戰教程03:Tensor 的創建、屬性、操作與轉換詳解》《視頻教程》 《Pytorch深度學習框架實戰…

常見通信協議詳解:TCP、UDP、HTTP/HTTPS、WebSocket 與 GRPC

常見通信協議詳解:TCP、UDP、HTTP/HTTPS、WebSocket 與 RPC 在現代網絡通信中,各種協議扮演著至關重要的角色,它們決定了數據如何在網絡中傳輸、控制其可靠性、實時性與適用場景。對于開發者而言,理解這些常見的通信協議&#xff…

部署一個自己的音樂播放器教程

以下以部署 YesPlayMusic 為例,介紹兩種常見的部署方法,一種是通過 Node.js 和 Git 在 Windows 系統上部署,另一種是通過 Docker 在 Linux 系統上部署。具體步驟如下:Windows 系統部署(基于 Node.js 和 Git&#xff09…

FFMPEG將H264轉HEVC時,碼率縮小多少好,以及如何通過SSIM(Structural Similarity Index結構相似性指數)衡量轉碼損失

最近整理一些視頻,我發現太多了,就想把一些本來就需要轉碼的視頻縮小一下。因為轉碼的時候為了彌補損失,我將碼率增大了 10-20%,但是如果將 H264 轉 HEVC(當然也可以是其他格式),那么或許不用增…

前端,route路由

路由定義與導航動態路由匹配&#xff1a;參數傳遞&#xff08;/user/:id&#xff09;嵌套路由配置與 <router-view> 層級渲染編程式導航&#xff1a;router.push、router.replace 和 router.go路由守衛與權限控制全局守衛&#xff1a;beforeEach、beforeResolve、afterEa…

Kubernetes網絡原理深度解析

Kubernetes網絡原理深度解析 1 Kubernetes網絡模型 Kubernetes 網絡模型是其實現容器化應用高效通信的基礎框架。它致力于解決容器編排環境中復雜的網絡連通性、服務發現與負載均衡等問題&#xff0c;追求讓容器、Pod 等網絡端點像傳統主機網絡一樣簡潔、可預測地通信 。其核心…

Python3.10 + Firecrawl 下載 Markdown 文檔:構建高效通用文章爬蟲

在信息爆炸的時代&#xff0c;從各種網站收集和整理文章內容已成為許多開發者和研究人員的常見需求。無論是為了內容聚合、數據分析還是知識管理&#xff0c;一個高效、穩定的通用文章爬蟲都是不可或缺的工具。 本文將詳細介紹如何使用 Python 3.10 結合 Firecrawl API 構建一個…

國產3D大型裝配設計新突破②:裝配約束智能推斷 | 中望3D 2026

本文為CAD芯智庫整理&#xff0c;未經允許請勿復制、轉載&#xff01;→ www.xwzsoft.com/h-nd-605.html中望3D2026亮點速遞之【裝配篇】已經介紹了設計效率的提升&#xff0c;今天將分享的是中望3D2026【裝配約束智能推斷】&#xff0c;也預告一下第三篇是講解【組件復用效率提…

深入淺出設計模式——行為型模式之觀察者模式 Observer

文章目錄1.觀察者模式簡介2.觀察者模式結構3.觀察者模式代碼實例3.0.公共頭文件3.1.觀察者3.1.1.抽象觀察者Observer3.1.2.具體觀察者Player3.2.目標類3.2.1.抽象目標AllyCenter3.2.2.具體目標AllyCenterController循環包含錯誤示例“前向聲明什么時候不夠、必須 #include 對方…

CA證書、SSL加速器、HTTPS、HTTP和域名之間的關系

理解CA證書、SSL加速器、HTTPS、HTTP和域名之間的關系對于構建安全、高效的網站至關重要。它們共同構成了現代安全網絡通信的基礎。下面是它們各自的概念以及它們之間的關系&#xff1a;域名 概念&#xff1a; 人類可讀的網站地址&#xff08;如 www.example.com&#xff09;。…

3D感知多模態(圖像、雷達感知)

一.BEVFusion1.簡要介紹BEV是一個俯視空間&#xff0c;Fusion做的就是融合&#xff0c;這里指的就是圖像和點云的融合。那如何把圖像和點云融合在一起&#xff1f;認為融合方法有三種&#xff1a;a.point level fusion:點集的融合&#xff0c;從點云中采樣一些點,再根據相機的內…

STM32 HAL庫驅動W25QXX Flash

STM32 HAL庫驅動W25QXX Flash 1. 概述 W25QXX系列是一種SPI接口的Flash存儲器&#xff0c;廣泛應用于嵌入式系統中作為數據存儲設備。本文檔詳細介紹了基于STM32 HAL庫的W25QXX Flash驅動實現&#xff0c;包括硬件連接、驅動函數實現以及使用示例。 項目源碼倉庫&#xff1a…

Vivado自定義IP核學習筆記

文章目錄【1】創建一個新的IP核【2】實現功能【3】編輯IP核【4】IP封裝【5】創建Vivado工程【1】創建一個新的IP核 1.1 打開Vivado->點擊【Tasks->Manage IP->New IP Location】->彈出窗口1.2 【Next】->設置IP屬性->【Finish】->【OK】 【IP Location】…

【面試】高級開發面試場景題

1、如何保證MySql到ES的數據一致性? 答:ES是一個開元分布式搜索和分析引擎、它提供了全文搜索、結構化搜索分析以及這些組合的能力。 全文搜索能力:ES支持復雜的搜索能力,包括模糊匹配、短語查詢、布爾查詢等,并且可以快速的返回結果 實時數據分析:實時數據分析,支持對…

《 慢 SQL 分析與 SQL 優化實戰指南》

&#x1f50d; 慢 SQL 分析與 SQL 優化實戰指南、 &#x1f9e0;前言 在數據庫性能調優中&#xff0c;慢 SQL 是性能瓶頸的常見元兇。 一次慢查詢可能會拖垮整個業務線程池&#xff0c;甚至引發鎖等待、雪崩效應。 對后端開發與 DBA 而言&#xff0c;快速定位并優化慢 SQL&am…

C#中如何運用JWT用戶認證

一、JWT概述JSON Web Token&#xff08;JWT&#xff09;是一種輕量級的身份認證機制&#xff0c;廣泛應用于分布式系統中的用戶認證。它通過緊湊的JSON格式存儲用戶身份信息&#xff0c;并使用數字簽名確保信息的完整性和真實性。與傳統的基于Session的認證相比&#xff0c;JWT…

Hibernate 使用詳解

在現代的Java開發中&#xff0c;數據持久化是一個至關重要的環節。而在眾多持久化框架中&#xff0c;Hibernate以其強大的功能和靈活性&#xff0c;成為了開發者們的首選工具。本文將詳細介紹Hibernate的原理、實現過程以及其使用方法&#xff0c;希望能為廣大開發者提供一些有…

【圖像算法 - 13】基于 YOLO12 與 OpenCV 的實時目標點擊跟蹤系統(系統介紹 + 源碼詳細)

基于 YOLO12 與 OpenCV 的實時點擊目標跟蹤系統 在計算機視覺領域&#xff0c;目標檢測與跟蹤是兩個核心任務。本文將介紹一個結合 YOLO 目標檢測模型與 OpenCV 跟蹤算法的實時目標跟蹤系統&#xff0c;該系統允許用戶通過鼠標交互選擇特定目標進行持續跟蹤&#xff0c;支持多…

【數據庫】 MySQL 表的操作詳解

在 MySQL 數據庫的日常開發與維護中&#xff0c;表的操作是最基礎且最常用的部分。本文將從 創建表、查看表結構、修改表 以及 刪除表 等方面進行詳細講解&#xff0c;并附上對應的 SQL 語句示例&#xff0c;方便在實際項目中直接應用。一、創建表 1.1 創建表語法 CREATE TABLE…