【網絡原理】TCP異常處理(二):連接異常

?

目錄

一. 由進程崩潰引起的連接斷開

二. 由關機引起的連接斷開

三. 由斷電引起的連接斷開

四. 由網線斷開引起的連接斷開


一. 由進程崩潰引起的連接斷開

?在一般情況下,進程無論是正常結束,還是異常崩潰,都會觸發回收文件資源,關閉文件的操作(四次揮手)

也就是說即使進程崩潰了,但是操作系統內核還在運行,會執行后續的關閉行為(四次揮手)

進程崩潰,實際上和正常的四次揮手正常結束,沒有區別,操作系統內核中保存著連接信息,完成后續的揮手過程


二. 由關機引起的連接斷開

?當執行關機操作,就會強制終止所有的進程(強殺進程),終止進程那么就會觸發四次揮手

關機操作,不會立即殺死進程,而是有一個很短暫的過程,在這個過程中,會執行四次揮手,可能四次揮手執行完,也可能沒有執行完,但是最起碼能發送一個FIN數據報給服務器

1)完成四次揮手

如果在這個短暫的時間內,四次揮手執行完畢,那么客戶端和服務器都能正確的刪除保存的連接信息

2)只發送了FIN報文

如果客戶端只發送了FIN報文,意味著告訴了對方,這邊要結束了,服務器返回ACK報文,客戶端接收不到,并且發送FIN報文,但是發送的FIN報文等不到ACK應答報文,服務器收不到ACK報文,肯定會進行重傳(超時重傳),當重傳幾次之后,發現還是接受不到,那么就會單方面釋放連接信息

客戶端關機清除了對端的連接信息,服務器持續接收不到ACK報文,單方面釋放連接信息


三. 由斷電引起的連接斷開

?由斷電原因,電腦瞬間關機,肯定連發送FIN報文的機會都沒有,這時候就要分類討論

1)斷電方是接收方

?如果斷電方是服務器,發送方在發送數據的時候,會發現接收方沒有返回ACK應答報文,這時候會進入超時重傳狀態,重傳幾次之后,發現沒有用,那么就會嘗試“復位連接”(RST置為1)會清除原來TCP連接中的數據,重新嘗試建立連接,多次嘗試,沒有用,最后徹底丟棄掉對方的信息

2)斷電方是發送方

?由于接收方本身就是處于阻塞等待,等待發送方發送數據,如果長時間沒有接收到消息,接收方需要判斷發送方是沒有消息發送,還是掛了?如果掛了,還處于阻塞等待,就是浪費資源

所以如果長時間沒有收到消息,接收方會發送一個“心跳包”,判斷接收方的狀態

?心跳包:不攜帶載荷的特殊數據包,具有周期性的特點,如果沒有返回ACK那么就認為掛了,本端也會嘗試復位,如果沒用會徹底丟棄對端信息


四. 由網線斷開引起的連接斷開

由于網線斷開,客戶端服務器都無法發送或接收任何數據包,這種情況就是斷電兩種情況的結合

這時候雙方都會以為是自己的問題,都會嘗試發送數據,但是都收不到ACK應答報文,都會進入超時重傳狀態,嘗試幾次,還是無法收到消息,會嘗試復位連接,一直嘗試沒有用,最后會徹底丟棄掉對方的信息


TCP和UDP的應用場景?

  • 如果追求可靠傳輸,那么首選TCP
  • 如果傳輸的數據包很大,那么首選TCP
  • 如果追求傳輸速率,對可靠性要求不高,那么首選UDP

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

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

相關文章

想做博聞強記的自己

2025年4月29日,13~25℃,還好 待辦: 冶金《物理》期末測試 閱卷(冶金《物理》期末測試試卷) 重修《物理》《物理2》電子材料歸檔 規則變更,《高等數學2》期末試卷推倒重來 遇見:直播畫面。 感受…

IP屬地是實時位置還是自己設置

刷微博、抖音時,評論區總能看到“IP屬地”?這個突然冒出來的小標簽,讓不少網友摸不著頭腦:?IP屬地是實時位置,還是可以自己設置??別急,今天咱們就來聊聊這個話題! 1、什么是IP屬地…

水力壓裂多裂縫擴展誘發光纖應變演化試驗研究

1.概述 本文基于OFDR技術的光纖應變監測方法,監測了真三軸條件下人造巖石試樣與頁巖的水力壓裂試驗。結果表明,OFDR技術能以毫米級分辨率實時監測裂縫起裂、擴展及閉合全過程,并建立基于應變演化的裂縫判別準則,為光纖壓裂監測的…

4、RabbitMQ的七種工作模式介紹

目錄 一、Simple(簡單模式) 1.1 概念 1.2 代碼實現 消費者 運行結果 二、Work Queue(工作隊列) 2.1 概念 1.2 代碼實現 生產者 消費者 運行結果 三、Publish/Subscribe(發布/訂閱模式) 3.1 概念 3.2 代碼實現 生產者…

厚銅PCB鉆孔工藝全解析:從參數設置到孔壁質量的關鍵控制點

在現代電子設備中,厚銅PCB(印刷電路板)扮演著至關重要的角色。它們不僅為電子元件提供了支撐,還實現了電路之間的連接。然而,在生產厚銅PCB時,鉆孔是一個關鍵環節。本文將為您介紹厚銅PCB生產中鉆孔的科普知…

缺口拼圖,非線性坐標關聯

繼上一篇文章, 歡迎一起交流探討 https://t.zsxq.com/GEIze

OTA(Over-The-Air)升級

簡介: OTA(Over-the-Air)是一種通過無線方式進行數據傳輸和更新的技術,通常用于電子設備(如智能手機、汽車、物聯網設備等)的軟件、固件或配置更新。OTA可以在設備與服務器之間進行遠程傳輸,用戶…

fastapi和flaskapi有什么區別

FastAPI 和 Flask 都是 Python 的 Web 框架,但設計目標和功能特性有顯著差異。以下是它們的核心區別: 1. ?性能與異步支持? ?FastAPI? 基于 ?Starlette?(高性能異步框架)和 ?Pydantic?(數據校驗庫)…

RCS認證是什么?RCS認證的好處?RCS認證所需要的資料

1. RCS(Recycled Claim Standard)認證 定義:由 Textile Exchange(紡織品交易所) 制定的國際標準,用于驗證產品中回收材料(如再生纖維、塑料、金屬等)的含量和供應鏈的可追溯性&…

10 基于Gazebo和Rviz實現導航仿真,包括SLAM建圖,地圖服務,機器人定位,路徑規劃

在9中我們已經實現了機器人的模塊仿真,現在要在這個基礎上實現SLAM建圖,地圖服務,機器人定位,路徑規劃 1. 還是在上述機器人的工作空間下,新建功能包(nav),導入依賴 gmapping ma…

OpenGL----OpenGL紋理與紋理緩存區

在現代計算機圖形學中,紋理(Texture)是一個至關重要的概念。它不僅可以為幾何體表面添加細節和真實感,還可以用于實現各種復雜的視覺效果和數據處理。在OpenGL中,紋理的應用范圍非常廣泛,從基本的顏色映射到高級的陰影映射、環境映射等。本文將深入探討OpenGL紋理與紋理緩…

Scikit-learn工具介紹與數據集

一、Scikit-learn簡介與安裝 Scikit-learn是Python中最流行的機器學習庫之一,它提供了簡單高效的數據挖掘和數據分析工具。 Python語言機器學習工具 Scikit-learn包括許多智能的機器學習算法的實現 Scikit-learn文檔完善,容易上手,豐富的A…

Byte-Buddy系列 - 第4講 byte-buddy無法讀取到SpringBoot Jar中的類

目錄 一、問題描述二、原因分析三、解決方案1(推薦):獲取線程上下文中的類加載器擴展 四、解決方案2:自定義SpringBoot類加載器 一、問題描述 在使用Byte-Buddy中的TypePool對類進行擴展后,在本地開發集成環境&#x…

AutogenStudio使用

官網介紹:https://microsoft.github.io/autogen/stable/ Autogen是什么? AutoGen 是由微軟開發的一個開源框架,旨在通過 多智能體協作(Multi-Agent Collaboration) 實現復雜的任務自動化。它的核心思想是讓多個 AI 代…

Vue3 Echarts 3D圓形柱狀圖實現教程以及封裝一個可復用的組件

文章目錄 前言一、實現原理二、series ——type: "pictorialBar" 簡介2.1 常用屬性 三、代碼實戰3.1 封裝一個echarts通用組件 echarts.vue3.2 首先實現一個基礎柱狀圖3.3 添加上下2個橢圓面3.4 進階封裝一個可復用的3D圓形柱狀圖組件 總結 前言 在前端開發的數據可視…

yolov8中train、test、val

說明yolov8中train、test、val是什么意思,是什么作用呢?詳細介紹使用yolov8進行實例分割,我應該如何制作我的數據集呢? 1. YOLOv8中的train、val、test是什么意思?作用是什么? 在YOLOv8(由Ultr…

借助Spring AI實現智能體代理模式:從理論到實踐

借助Spring AI實現智能體代理模式:從理論到實踐 前言 在人工智能領域,大語言模型(LLM)的應用愈發廣泛,如何高效構建基于LLM的系統成為眾多開發者關注的焦點。Anthropic的研究報告《構建高效代理》為我們提供了新的思…

【學習筆記】計算機操作系統(二)—— 進程的描述與控制

第二章 進程的描述與控制 文章目錄 第二章 進程的描述與控制2.1 前趨圖和程序執行2.1.1 前趨圖2.1.2 程序順序執行2.1.3 程序并發執行 2.2 進程的描述2.2.1 進程的定義和特征2.2.2 進程的基本狀態及轉換2.2.3 掛起操作和進程狀態的轉換2.2.4 進程管理中的數據結構 2.3 進程控制…

具身智能之強化學習

在具身智能(Embodied AI)中,強化學習(Reinforcement Learning,RL)是一種非常核心的學習方法。它讓智能體(agent)通過與環境交互,不斷試錯,學習完成任務的策略…

go打印金字塔

需求 打印空心金字塔 解析 // * // * * // * * * // * * * *// 看成由星號、空格組成的矩形: // 1 1 1 0 // 2 3 2 1 // 3 5 3 2 // 4 7 4 3// 層數:n // 每層總元素數:2n-1 // 每星號數:n // 每層空格數&am…