TCP:TCP連接的建立與終止

TCP連接的建立與終止

  • 建立連接
    • 第一次握手
    • 第二次握手
    • 第三次握手
  • 終止連接
    • 第一次揮手
    • 第二次揮手
    • 第三次揮手
    • 第四次揮手

T C P是一個面向連接的協議。無論哪一方向另一方發送數據之前,都必須先在雙方之間建立一條連接。本文將詳細討論一個T C P連接是如何建立的以及通信結束后是如何終止的。
如何使用抓包工具 wireshark

建立連接

為了建立一個TCP連接:

第一次握手

  1. 請求端發送一個S Y N段指明連接的服務器的端口,以及初始序號(ISN)。這個SYN段為報文段1。
    使用抓包工具得到以下內容,可以看到:
    1. 指定了源端口和目標端口,什么?怎么沒有IP地址,IP地址在IP首部呢!
    2. 序號為 1514758884,序號并不從0開始,而是生成ISN。序號為什么不從0開始?
    3. SYN=1 表明這是一個連接請求或連接接受報文
    4. 窗口大小聲明為 64240
      在這里插入圖片描述

第二次握手

  1. 服務器發回包含服務器的初始序號的S Y N報文段(報文段2)作為應答。同時,將確認
    序號設置為客戶的I S N加1以對客戶的S Y N報文段進行確認。一個S Y N將占用一個序號。
    使用抓包工具得到以下內容,可以看到:
    1. 指定了源端口(22)和目標端口(60378)
    2. 序號為 3444481880
    3. ACK=1,表明確認號ack有效,ack=151475885,即發來的報文序號1514758884+1
    4. SYN=1 表明這是一個連接請求或連接接受報文
    5. 窗口大小聲明為64240
      在這里插入圖片描述

第三次握手

  1. 客戶必須將確認序號設置為服務器的I S N加1以對服務器的S Y N報文段進行確認(報文
    段3)。
    使用抓包工具得到以下內容,可以看到:
    1. 同樣指定了源端口和目標端口
    2. 序號為 1514758885
    3. ACK=1,表明確認號ack有效,ack=3444481881,即發來的報文序號3444481880+1
    4. SYN=0 表明這不是一個連接請求或連接接受報文,服務器連接請求和連接接受發生在第二次握手時。
    5. 窗口大小聲明為513,為什么這么小呢?這個流量控制有關。
      在這里插入圖片描述

一個整體的流程圖:
在這里插入圖片描述

終止連接

建立一個連接需要三次握手,而終止一個連接要經過 4次揮手。這由T C P的半關閉(h a l f - c l o s e)造成的。一個T C P連接是全雙工(即數據在兩個方向上能同時傳遞),因此每個方向必須單獨地進行關閉。
如圖,為抓包工具顯示內容:這就是四次揮手的過程
在這里插入圖片描述

第一次揮手

  1. 我從服務器進行斷開連接的,故而先由服務器主動關閉連接。當一方完成數據傳輸并想要關閉連接時,它會發送一個FIN(結束)標志的數據包。這個FIN標志表示發送方已經完成了數據發送,但仍然可以接收數據。
    在這里插入圖片描述

第二次揮手

  1. 收到FIN標志的一方會在處理完剩余數據后,再發送一個帶有ACK(確認)標志的數據包以確認收到了FIN。
    在這里插入圖片描述

第三次揮手

  1. 此時,如果應用程序不調用c l o s e而調用s h u t d o w n,且第2個參數值為1,則socket的A P I支持半關閉。顯然,這不是一個半關閉。所以本地主機發送一個FIN(結束)標志的數據包至服務器。
    在這里插入圖片描述

第四次揮手

  1. 服務器確認(stream 主機->服務器 關閉連接)
    在這里插入圖片描述
    一個完整的流程圖:
    在這里插入圖片描述

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

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

相關文章

2024年能源電力行業CRM研究報告

中國能源電力行業屬于大制造業的重要組成部分,在國民經濟中的地位舉足輕重。據統計,近十年來能源電力行業的整體投資呈現出增長趨勢,尤其是“十四五”期間增長顯著,2022年全國主要電力企業共完成投資12470億元,同比增長…

STM32中掛在APB1(低速)和APB2(高速)上的外設

在STM32中, 連接在APB1(低速外設)上的設備有: 電源接口、備份接口、CAN、USB、I2C1、I2C2、UART2、UART3、SPI2、窗口看門狗、Timer2、Timer3、Timer4 。 連接在APB2(高速外設)上的設備有: GPIO_A-E、USART1、ADC1、ADC2、ADC3、TIM1、TIM…

【樂吾樂2D可視化組態編輯器】連線

1 連線的繪制 1.1 鋼筆繪制連線 1.1.1 曲線、線段、直線、腦圖曲線 開始:單擊左鍵 暫停:單擊右鍵 或 enter 結束:esc 樂吾樂2D可視化組態編輯器demo:https://2d.le5le.com/ 1.1.2 橫線 按下快捷鍵shift,點擊鼠標左鍵繪制…

101.6k星的后臺巨擘:一站式SaaS多租戶、商城、CRM、ERP解決方案

RuoYi-Vue Pro,一個豐富優化重構的后臺管理系統,為企業提供了一個強大、靈活、易用的解-決方案。 特點 豐富的功能支持:包括RBAC動態權限、數據權限、SaaS多租戶、工作流、三方登錄、支付、短信等。 現代化的技術棧:基于Spring Boot、MyBatis Plus、Vue & Element,支持…

在UE中創建命名管道之創建UE藍圖類

需求 在實際工作遇到了需要 UE 開發進程間通信相關的需求。 經過思考后選擇使用命名管道來實現 。 名詞概念 首先什么是進程間通信: 進程間通信( Inter-Process Communication,IPC)是指在操作系統中,不同進程之間進行數據交換…

負載均衡的部署方式有什么?

負載均衡時建立在現有的網絡結構之上,將工作內容進行平衡、分攤到多個操作單位上進行運行,能夠提高網絡的可用性和靈活性,加強了網絡數據的處理能力。那負載均衡技術都有著哪些部署方式呢? 負載均衡有著三種部署方式,分…

大廠面試官問我:Redis內存淘汰,LRU維護整個隊列嗎?【后端八股文四:Redis內存淘汰策略八股文合集】

往期內容: 大廠面試官問我:Redis處理點贊,如果瞬時涌入大量用戶點贊(千萬級),應當如何進行處理?【后端八股文一:Redis點贊八股文合集】-CSDN博客 大廠面試官問我:布隆過濾…

精選:15款頂尖Python知識圖譜(關系網絡)繪制工具,數據分析的強力助手

知識圖譜(關系網絡)可以用簡單的形狀和線條顯示復雜的系統,幫助我們理解數據之間的聯系。我們今天將介紹15個很好用的免費工具,可以幫助我們繪制網絡圖。 NetworkX NetworkX是一個用于處理網絡的Python工具。許多人在Python中處…

模型選擇、過擬合與欠擬合

一、訓練誤差與泛華誤差 1、在訓練時,我們關心的是泛化誤差,也就是對新數據的預測 2、訓練誤差:模型在訓練數據上的誤差;泛化誤差:模型在新數據上的誤差 二、驗證數據集與測試數據集 1、驗證數據集:用于…

Percona Toolkit 神器全攻略(配置類)

Percona Toolkit 神器全攻略(配置類) Percona Toolkit 神器全攻略系列共八篇,前文回顧: 前文回顧Percona Toolkit 神器全攻略Percona Toolkit 神器全攻略(實用類) 全文約定:$為命令提示符、gr…

Spring Boot集成jsoup實現html解析

1.什么是jsoup jsoup 是一款 Java 的 HTML 解析器,可直接解析某個 URL 地址、HTML 文本內容。它提供了一套非常省力的 API,可通過 DOM,CSS 以及類似于 jQuery 的操作方法來取出和操作數據,可操作 HTML 元素、屬性、文本。 JSo…

函數內部結構分層淺析(從MVC分層架構聯想)

函數內部結構分層淺析(從MVC分層架構聯想) 分層架構:一種將軟件代碼按不同功能進行劃分的架構模式。 優點包括: 可維護性:各層職責明確,易于單獨修改維護。 可擴展性:方便添加或修改某一層,不…

優化Java應用的日志記錄方法

優化Java應用的日志記錄方法 大家好,我是免費搭建查券返利機器人省錢賺傭金就用微賺淘客系統3.0的小編,也是冬天不穿秋褲,天冷也要風度的程序猿! 引言 在開發和維護Java應用程序時,良好的日志記錄是確保應用穩定性和…

優化Java中網絡通信的性能策略

優化Java中網絡通信的性能策略 大家好,我是免費搭建查券返利機器人省錢賺傭金就用微賺淘客系統3.0的小編,也是冬天不穿秋褲,天冷也要風度的程序猿! 在現代軟件開發中,優化網絡通信的性能是確保應用程序高效運行的關鍵…

Rocketmq在單節點情況下新增從節點

Rocketmq在單節點情況下新增從節點 在docker-compose部署rocketmq單節點的基礎上,新增一個從節點 一,修改docker-compose配置文件 原docker-compose文件 version: 3.5 services:rmqnamesrv:image: foxiswho/rocketmq:server-4.5.2container_name: rm…

選擇診所管理系統的原則是什么?

如今,診所管理系統已成為醫療機構提升管理效率、優化患者服務的重要工具。然而,市場上的診所管理系統琳瑯滿目,功能各異,因此,如何選擇一款適合自己診所的管理系統,是許多診所管理者需要思考的問題。下面&a…

進程調度的基本過程

文章目錄 CPU執行指令過程進程PCB“分時復用” ??結語 CPU執行指令過程 一個CPU能執行那些指令,可以認為是cpu最初設計的時候就已經寫死了。有一個“表格”描述了都有哪些指令。 以上的表格只是一個簡化版本,真實的cpu指令表要復雜很多。此處假設每個…

RUC2024《綜合設計》期中測試

T1 原題鏈接https://www.luogu.com.cn/problem/P1025 不是我出的 T2 原題鏈接:https://www.luogu.com.cn/problem/P26787 這道題就是講過的二分貪心,先二分規定每兩個點之間都必須大于等于某個值,然后依次枚舉通過貪心求出最少需要刪除的點數…

薄冰英語語法學習--名詞2-格

名詞后面 s,代表后面這個東西屬于前面的。 比如toms book,湯姆的書。 末尾是s,那么直接在最后加就行了。比如boys,男孩們的 表示幾個詞共同 的所有關系在最后一個詞的詞尾加 sMary and Toms books 瑪麗和湯姆共有的書表示幾個詞…

深入探討C++的高級反射機制

反射是一種編程語言能力,允許程序在運行時查詢和操縱對象的類型信息。它廣泛應用于對象序列化、遠程過程調用、測試框架、和依賴注入等場景。 由于C語言本身的反射能力比較弱,因此C生態種出現了許多有趣的反射庫和實現思路。我們在本文一起探討其中的奧秘…