计算机网络--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.mzph.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…