計算機網絡--tcpdump和iptable設置、內核參數優化策略

tcpdump工具

tcpdump命令:
在這里插入圖片描述

選項字段:

在這里插入圖片描述

過濾表達式:

在這里插入圖片描述

實用命令:

TCP三次握手抓包命令:
#客戶端執行tcpdump 抓取數據包
tcpdump -i etho tcp and host 192.168.12.36 and port 80 -W timeout.pcap

netstat命令

netstat -a 命令可以顯?所有?絡連接

-t:TCP -u:UDP

-l :哪些端口正在監聽連接

-p :顯?與每個?絡連接關聯的進程ID和進程名

netstat -anp | grep 端口號 ?于查看指定端口的占?情況

-a:所有socket

-n:直接顯?數字類型的IP和端口

-p:顯?正在使?連接的進程ID和進程名稱

查看TCP連接狀態
netstat -napt | grep 192.168.12.37

在這里插入圖片描述

查看TCP半連接隊列的大小
netstat -napt | grep SYN_RECV | wc -l

在這里插入圖片描述

netstat -s 觀察半連接隊列溢出的情況:
netstat -s | grep "SYNS to LISTEN"

在這里插入圖片描述

隔幾秒執行幾次,如果有上升的趨勢,說明當前存在半連接隊列溢出的現象

查看TCP全連接隊列溢出情況
netstat -s | grep overflowed

在這里插入圖片描述

ss命令:主要?于獲取socket統計信息,它可以顯?和 netstat 命令類似的輸出內容。但ss命令的優勢在于它能夠顯?更多更詳細的有關TCP和UDP連接狀態的信息,而且?netstat更快速更高效

查看服務端進程accept隊列的長度
ss -ltn

在這里插入圖片描述

Wireshark 工具

命令: 把抓取的數據包保存到 ping.pcap 文件

tcpdump -i eth1 icmp and host 183.232.231.174 -W ping. pcap

將跑ping.pcap文件用wireshark打開

在這里插入圖片描述

在這里插入圖片描述

iptable防火墻配置規則

#客戶端配置的防火墻規則
iptables -I INPUT -S 192.168.12.36 -j DROP

在服務端配置防火墻,屏蔽客戶端 TCP 報文中標志位是 ACK 的包,也就是當服務端收到客戶端的 TCP ACK 的報文時就會丟棄。

iptables -I INPUT -s 192.168.12.37 -p tcp --tcp-flag ACK ACK -j DROP
客戶端設置了防火墻,屏蔽了服務端的網絡包,為什么 tcpdump 還能抓到服務端的網絡包?

添加 iptables 限制后, tcpdump 是否能抓到包 ,這要看添加的 iptables 限制條件:

  • 如果添加的是 INPUT 規則,則可以抓得到包
  • 如果添加的是 OUTPUT 規則,則抓不到包

網絡包進入主機后的順序如下:

  • 進來的順序 Wire -> NIC -> tcpdump -> netfilter/iptables
  • 出去的順序 iptables -> tcpdump -> NIC -> Wire

TCP內核參數以及優化策略

優化三次握手的參數

策略TCP內核參數
調整SYN報文重傳次數tcp_syn_retries
調整SYN半連接隊列的長度tcp_max_syn_backlog somaxconn
backlog(非內核參數,NGINX配置參數)
調整SYN+ACK報文的重傳次數tcp_synack_retries
調整accept隊列的長度 m i n ( b a c k l o g , s o m a x c o n n ) min(backlog, somaxconn) min(backlog,somaxconn)
繞過三次握手(類似于長連接)tcp_fastopen

backlog參數:也就是listen(int sockfd, int backlog)的參數,也就是NGINX/Tomcat的參數

優化四次揮手的參數

策略TCP內核參數
調整FIN報文重傳次數tcp_orphan_retries
調整FIN_WAIT2狀態的時間
(只適用close函數關閉的連接)
tcp_fin_timeout
調整孤兒連接的上限個數
(只適用close函數關閉的連接)
tcp_max_orphans
調整TIME_WAIT狀態的上限個數tcp_max_tw_buckets
復用TIME_WAIT狀態的連接tcp_tw_reuse(只適用客戶端)
tcp_timestamps

數據傳輸的優化

策略TCP內核參數
擴大窗口大小tcp_window_scaling
調整發送緩沖區范圍tcp_wmem
調整接收緩沖區的范圍tcp_rmem
打開接收緩沖區動態調節tcp_moderate_rcvbuf
調整內存范圍tcp_mem
TCP接收和發送緩沖區和Ring Buffer是一個東西嗎?

數據流從網卡到用戶空間的過程

一次數據流從網卡到用戶空間的過程:

  • 數據到達網卡:數據包通過網絡到達網卡,網卡硬件將數據包放入環形緩沖區中。
  • 硬件中斷:網卡生成一個硬件中斷通知CPU有新數據包到達。
  • 中斷處理程序:CPU執行網卡驅動程序的中斷處理程序,讀取環形緩沖區中的數據包并將其傳遞給內核網絡棧。
  • 網絡協議棧處理:內核網絡棧處理數據包,將其存放到對應的TCP接收緩沖區(受tcp_rmem參數限制)。
  • 傳遞到用戶空間:用戶空間應用程序通過系統調用(如recvread)從TCP接收緩沖區讀取數據。

參考:

  1. https://blog.csdn.net/weixin_36338224/article/details/107035214
  2. 小林coding-圖解網絡

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

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

相關文章

7.10飛書一面面經

問題描述 Redis為什么快? 這個問題我遇到過,但是沒有好好總結,導致答得很亂。 答:Redis基于內存操作: 傳統的磁盤文件操作相比減少了IO,提高了操作的速度。 Redis高效的數據結構:Redis專門設計…

java算法day11

二叉樹的遞歸遍歷二叉樹的非遞歸遍歷寫法層序遍歷 遞歸怎么寫? 按照三要素可以保證寫出正確的遞歸算法: 1.確定遞歸函數的參數和返回值: 確定哪些參數是遞歸的過程中需要處理的,那么就在遞歸函數里加上這個參數, 并且…

第二證券:銷量暴跌95%,這一巨頭市值蒸發超3000億元!

在多重要素刺激下,PCB工作站上風口。 波音銷量墮入停滯 6月僅售出3架客機 據央視財經,在一系列丑聞的影響下,波音公司本年出售遭到明顯沖擊。當地時間9日,波音發布的數據閃現,在以前一個月,該公司僅賣出…

關于Java面向對象的一些問題(2024.7.10)

package question20240710;public class Question {/*1. 什么叫做多態,條件是什么?2. 使用多態特性,帶來了什么樣的好處?3. 使用多態特性,注意什么樣的弊端?4. 關于多態的弊端我們如何解決?5. 在…

excel有條件提取單元格特定文本(篩選純文字的單元格或含有數字的單元格、單元格提取不同的文本長度)

實際工作背景 需要對導出的銀行流水中的數十個村以及對應的村小組進行分組統計,但是初始的表格中村和小組是混在一起的,如下圖所示: 目的:將大樹村和大樹村小組名稱分別篩選出來 1.觀察發現,大樹村小組的單元格第4…

代碼隨想錄算法訓練營第四十九天| 647. 回文子串、 516.最長回文子序列

647. 回文子串 題目鏈接:647. 回文子串 文檔講解:代碼隨想錄 狀態:不會 思路: dp[i][j] 表示字符串 s 從索引 i 到索引 j 這一段子串是否為回文子串。 當s[i]與s[j]不相等,那沒啥好說的了,dp[i][j]一定是fa…

構建與操作共享棧

歸納編程學習的感悟, 記錄奮斗路上的點滴, 希望能幫到一樣刻苦的你! 如有不足歡迎指正! 共同學習交流! ??歡迎各位→點贊 ??+ 收藏? + 留言???既然選擇了遠方,當不負青春,砥礪前行! 共享棧是一種優化的棧實現方式,它允許兩個或多個棧共享同一段連續的內存空間…

Tkinter 部件使用教程

tkinter學習教程 C語言中文網Tkinter教程 菜鳥編程-Python GUI編程(Tkinter) tkinter基本組件 messagebox 【tkinter標準對話框】messagebox:信息傳遞,消息對話框! bind bind事件信息 listbox Tkinter 組件詳解之Listbox radiobutton Tkinter…

數據結構——Trie

題目: 維護一個字符串集合,支持兩種操作: I x 向集合中插入一個字符串 x𝑥;Q x 詢問一個字符串在集合中出現了多少次。 共有 N𝑁 個操作,所有輸入的字符串總長度不超過 10^5,字符串僅…

【分布式系統】Ceph對象存儲系統之RGW接口

目錄 一.對象存儲概述 二.創建RGW接口 1.在管理節點創建一個 RGW 守護進程 2.創建成功后默認情況下會自動創建一系列用于 RGW 的存儲池 3.默認情況下 RGW 監聽 7480 號端口 4.開啟 httphttps ,更改監聽端口 5.在 rgw 節點上查看端口 6.在客戶端訪問驗證 7.…

Mybatis study

一、Mybatis Plus mybatis-plus指定實體類字段不查詢 加標簽 TableField(exist false) Spring Data Jpa學習 干我們這行,啥時候懈怠,就意味著長進的停止,長進的停止就意味著被淘汰,只能往前沖,直到鳳凰涅槃的一天&am…

【onnx】onnxruntime-gpu無法使用問題

every blog every motto: You can do more than you think. https://blog.csdn.net/weixin_39190382?typeblog 0. 前言 onnxruntime-gpu無法使用 1. 正文 CUDA版本:12.1 nvcc -VCUDNN的版本 cat /usr/include/cudnn_version.h |grep CUDNN_MAJOR -A 2說明: 可…

C#中的Dictionary

Dictionary<TKey, TValue> 是一個泛型集合&#xff0c;它存儲鍵值對&#xff08;key-value pairs&#xff09;&#xff0c;其中每個鍵&#xff08;key&#xff09;都是唯一的。這個集合類提供了快速的數據插入和檢索功能&#xff0c;因為它是基于哈希表實現的。 注意 ke…

拉曼操作維護使用手冊(中英文對照)

1 INTRODUCTION 介紹 This document contains information needed to install and operate the Laser Gas Analyzer (LGA). The information contained herein is believed to be accurate and reliable, however, inaccuracies and omissions of pertinent information are po…

Vue 3 組件通信全解:從基礎到高級技巧

引言 Vue 3 引入了 Composition API&#xff0c;這為組件通信帶來了新的靈活性和強大的功能。 組件通信基礎 組件的定義和作用 在前端開發中&#xff0c;組件可以被看作是構建用戶界面的獨立單元。它封裝了特定的功能和樣式&#xff0c;可以被重復使用&#xff0c;并且可以…

【數據結構——鏈表的深度探索】從實現到應用,保姆級攻略

【數據結構——鏈表深度探索】從實現到應用&#xff0c;保姆級攻略 &#x1f341;1. 鏈表的介紹&#x1f341;2. 鏈表的實現&#x1f341;2.1 單向鏈表&#x1f341;2.1.1 size()&#x1f341;2.1.2 display()&#x1f341;2.1.3 contains(int key)&#x1f341;2.1.4 addFirst…

墨西哥:海外新聞稿媒體分發-海外pr發稿干貨分享-大舍傳媒

大舍傳媒&#xff1a;海外新聞稿媒體分發平臺 墨西哥觀查者 (mexicoviewer) 墨西哥觀查者是墨西哥一家知名的新聞媒體平臺&#xff0c;該平臺專注于報道墨西哥國內外的時事新聞、政治、經濟、文化等多個領域的內容。其更新速度快&#xff0c;報道對象廣泛&#xff0c;深受墨西…

微信小程序---模板語法

一、聲明和綁定數據 小程序頁面中使用的數據均需要在 Page() 方法的 data 對象中進行聲明定義 在將數據聲明好以后&#xff0c;需要在 WXML 中綁定數據&#xff0c;數據綁定最簡單的方式是使用 Mustache 語法&#xff08;雙大括號&#xff09;將變量包起來。 在 {{ }} 內部可…

開始性能測試之前的準備工作!

性能測試是軟件測試中不可或缺的一部分&#xff0c;它可以幫助我們評估軟件系統的性能表現&#xff0c;并找出潛在的性能瓶頸。在進行性能測試之前&#xff0c;需要做好充分的準備工作&#xff0c;以確保測試的有效性和準確性。 1. 確定性能測試的目標和范圍 * 明確測試目標:性…

《數據庫原理》SQLServer期末復習_題型+考點

目錄 題型&#xff1a; 一. 概況分析題&#xff08;5小題&#xff0c;每小題2分&#xff0c;共10分&#xff09; 二. 計算題&#xff08;3小題&#xff0c;每小題5分&#xff0c;共15分&#xff09; 三. 數據庫設計&#xff08;2小題&#xff0c;每小題10分&#xff0c;共2…