飛天使-linux操作的一些技巧與知識點2

TCP 的三次握手
第一次,客戶端與服務端建立鏈接,需要發送請求連接的消息
第二次,服務端接口到數據后,返回一個確認的操作*(至此客戶端和服務端鏈路建立成功)
第三次,服務端還需要發送要與客戶端建立鏈接的請求
第四次,客戶端收到數據后,返回一個確認的操作(至此服務端到客戶端的鏈路建立成功)
由于建立鏈接時沒有數據傳輸,所以第二次確認和第三次請求可以合并為一次發送tcp協議為了實現可靠傳輸,通信雙方需要判斷自己已經發送的數據包是否都被接收方收到,如果沒有收到,就需要重新發送,為了實現這個需求,就引出 序號 seq ,和確認號 ack的使用

在這里插入圖片描述
在這里插入圖片描述

四次揮手
第一次揮手: 客戶端(服務端也可以主動斷開) 向服務端說明想要關閉連接 
第二次揮手:  服務端會回復確認,但不是關閉,因為此時服務端可能還有數據在傳輸中
第三次揮手:待到服務端數據傳輸都結束后,服務端向客戶端發出消息,我要斷開連接了
第四次揮手,客戶端收到服務端的斷開信息后,給予確認,服務端收到確認后正式關閉1 代表客戶端 2代表服務端1 -> 2 
FIN=1
2 -> 1 
ACK =1
FIN =1 
1 -> 2
ACK =1 
轉換狀態
三次握手狀態轉換
1.客戶端發送syn包向服務端請求建立TCP 連接,客戶端進入 SYN_SEND 狀態
2.服務端收到請求之后,向客戶端發送 SYN+ACK 的合成包,同時自身進入 SYN_RECV 狀態
3.客戶端收到回復之后,發送 ACK信息,自身進入 ESTABLISHED 狀態
4.服務端收到ACK數據之后,進入 ESTABLISHED狀態 四次揮手過狀態轉換
1.客戶端發送完數據之后,向服務器請求斷開連接,自身進入 FIN_WAIT_1 狀態
2.服務端收到 FIN 包之后,回復ACK包表示已經收到,但是此時服務端可能還有數據沒有發送完成,自身進入CLOSE_WAIT 狀態,表示對方已發送完成且請求關閉連接,自身發送完成之后可以關閉連接
3.服務端數據發送完成之后,發送FIN包給客戶端,自身進入LAST_ACK 狀態,等待客戶端 ACK確認
4,客戶端收到FIN 包之后,回復一個ACK包,并進入TIME_WAIT 狀態如果機器 TIME_WAIT 過多,會造成端口耗盡,可以修改內核參數
tcp_tw_recycle=1 端口重用

在這里插入圖片描述
在這里插入圖片描述

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

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

相關文章

【Linux】探索Linux進程狀態 | 僵尸進程 | 孤兒進程

最近,我發現了一個超級強大的人工智能學習網站。它以通俗易懂的方式呈現復雜的概念,而且內容風趣幽默。我覺得它對大家可能會有所幫助,所以我在此分享。點擊這里跳轉到網站。 目錄 一、進程狀態1.1運行狀態1.2阻塞狀態1.3掛起狀態 二、具體L…

React中使用react-json-view展示JSON數據

文章目錄 一、前言1.1、在線demo1.2、Github倉庫 二、實踐2.1、安裝react-json-view2.2、組件封裝2.3、效果2.4、參數詳解2.4.1、src(必須) :JSON Object2.4.2、name:string或false2.4.3、theme:string2.4.4、style:object2.4.5、…

[ROS2] --- service

1 service介紹 1.1 service概念 話題通信是基于訂閱/發布機制的,無論有沒有訂閱者,發布者都會周期發布數據,這種模式適合持續數據的收發,比如傳感器數據。機器人系統中還有另外一些配置性質的數據,并不需要周期處理&…

C#,圖算法——以鄰接節點表示的圖最短路徑的迪杰斯特拉(Dijkstra)算法C#程序

1 文本格式 using System; using System.Text; using System.Linq; using System.Collections; using System.Collections.Generic; namespace Legalsoft.Truffer.Algorithm { public class Node // : IComparable<Node> { private int vertex, weigh…

第7章-使用統計方法進行變量有效性測試-7.5.4-模型評估

目錄 混淆矩陣 準確率 定義 局限性 精準率 定義 局限性

【分布式微服務專題】從單體到分布式(一、SpringCloud項目初步升級)

目錄 前言閱讀對象閱讀導航前置知識筆記正文一、單體服務介紹二、服務拆分三、分布式微服務升級前的思考3.1 關于SpringBoot/SpringCloud的思考【有點門檻】 四、SpringCloud升級整合4.1 新建父子項目 學習總結感謝 前言 從本節課開始&#xff0c;我將自己手寫一個基于SpringC…

如何輕松恢復 Windows 中刪除的文件夾

我們都曾經歷過這樣的事&#xff0c;而且我們中的大多數人可能很快就會再次這樣做。我們討論的是在 Windows 中按“Delete”或“ShiftDelete”鍵意外刪除重要文件夾的情況。 如果您剛剛按下刪除鍵且未超過 30 天&#xff0c;或者尚未清空回收站&#xff0c;則可以恢復文件夾。…

操作系統學習筆記---內存管理

目錄 概念 功能 內存空間的分配和回收 地址轉換 邏輯地址&#xff08;相對地址&#xff09; 物理地址&#xff08;絕對地址&#xff09; 內存空間的擴充 內存共享 存儲保護 方式 源程序變為可執行程序步驟 鏈接方式 裝入方式 覆蓋 交換 連續分配管理方式 單一連…

python安裝與工具PyCharm

摘要&#xff1a; 周末閑來無事學習一下python&#xff01;不是你菜雞&#xff0c;只不過是對手太強了&#xff01;所以你要不斷努力&#xff0c;去追求更高的未來&#xff01;下面先了解python與環境的安裝與工具的配置&#xff01; python安裝&#xff1a; 官網 進入官網下載…

lua腳本串口收發與CRC16校驗及使用方法

lua腳本CRC16校驗 --calculate CRC16校驗 --data : t, data to be verified --n : number of verified --return : check result function add_crc16(start, n, data)local carry_flag, a 0local result 0xfffflocal i startwhile(true)doresult result ~ data[i]for j…

git 關于分支、merge、commit提交

最近開始用git終端提交代碼&#xff0c;梳理了一些知識點 一 關于分支 關于分支&#xff0c;git的分支分為本地分支遠程分支兩種分支&#xff0c;在上傳代碼時&#xff0c;我們要確保當前本地分支連接了一個遠程分支。 我們可以通過下面代碼查看當前的本地分支&#xff1a; g…

迅為3588開發板 sudo: 無法解析主機:/DNS配置

環境申明 RK3588 ubuntu 22.04 jammy 迅為開發板 hostname 看是否有Host .&#xff0c;如果沒有&#xff0c; sudo vim /etc/hostname在里面加一行&#xff0c;我這就這一個 iTOP-RK3588hosts 修改本地hosts sudo vim /etc/hosts127.0.0.1 localhost localhost iTOP-RK3…

2.postman環境變量及接口關聯

一、環境變量以及全局變量 操作流程 1.點擊environment 2.點擊environment右側號&#xff0c;新增環境變量 3.在變量中輸入變量名以及變量值 4.回到collection頁面&#xff0c;修改變量環境 5.在collection中通過{{變量名}}調用變量 變量定義 環境變量&#xff1a;環境變量…

vue 限制在指定容器內可拖拽的div

<template><div class"container" id"container"><div class"drag-box center" v-drag v-if"isShowDrag"><div>無法拖拽出容器的div浮窗</div></div></div> </template><script&g…

P11 Linux進程編程exec族函數

前言 &#x1f3ac; 個人主頁&#xff1a;ChenPi &#x1f43b;推薦專欄1: 《Linux C應用編程&#xff08;概念類&#xff09;_ChenPi的博客-CSDN博客》??? &#x1f525; 推薦專欄2: 《C_ChenPi的博客-CSDN博客》??? &#x1f6f8;推薦專欄3: ??????《鏈表_C…

Java 簡易版 UDP 多人聊天室

服務端 import java.io.*; import java.net.*; import java.util.ArrayList; public class Server{public static ServerSocket server_socket;public static ArrayList<Socket> socketListnew ArrayList<Socket>(); public static void main(String []args){try{…

算法通關村第五關—LRU的設計與實現(黃金)

LRU的設計與實現 一、理解LRU的原理 LeetCode146:運用你所掌握的數據結構&#xff0c;設計和實現一個LRU(最近最少使用)緩存機制 實現LRUCache類&#xff1a; LRUCache(int capacity) 以正整數作為容量capacity初始化 LRU 緩存 int get(int key) 如果關鍵字key存在于緩存中&a…

數據可視化|jupyter notebook運行pyecharts,無法正常顯示“可視化圖形”,怎么解決?

前言 本文是該專欄的第39篇,后面會持續分享python數據分析的干貨知識,記得關注。 相信有些同學在本地使用jupyter notebook運行pyecharts的時候,在代碼沒有任何異常的情況下,無論是html還是notebook區域,都無法顯示“可視化圖形”,界面區域只有空白一片。遇到這種情況,…

SQL(COALESCE)

zstarling 非空值查找及替換COALESCE 非空值查找及替換COALESCE 新語法SQL COALESCE(staff_no,staff_no1,)詳解 在SQL中&#xff0c;COALESCE函數用于返回一組表達式中的第一個非NULL值。它接受兩個或多個參數&#xff0c;并按參數順序依次判斷每個參數是否為NULL&#xff0c…

如何才能保證績效考核的有效性呢?

績效管理是現代人力資源管理的核心&#xff0c;做好績效考核是做好績效管理的重要手段。但企業績效考核的設計往往缺乏針對性和科學性&#xff0c;績效考核工作也常常停留在形式上&#xff0c;最終沒能為提高組織效率提供幫助&#xff0c;還消耗員工與管理者的時間、精力。于是…