Linux内核常见的网络丢包场景分析,零基础入门到精通,收藏这一篇就够了

Linux内核升级指南:安全补丁、性能优化与实战方案 Linux内核作为操作系统的核心组件,其升级涉及安全补丁、硬件兼容性和性能优化等关键技术需求。内核升级通过修复CVE漏洞、支持新型硬件设备以及优化调度算法,能够显著提升系统稳定性和吞吐量。在云计算、容器化等场景中,新版内核的TCP协议栈优化和容器调度改进尤为重要。本文以CentOS/Ubuntu等主流发行版为例,详解标准包管理和手动编译两种升级路径,并给出企业级环境中的双内核保留、驱动兼容性验证等工程实践方案。针对NVIDIA驱动、RAID卡等典型兼容性问题,提供了具体排查方法和自动化升级脚本,帮助运维人员 阅读详情

摘要


一个数据包在网络中传输的过程中,是没法保证一定能被目的机接收到的。其中有各种各样的丢包原因,今天来学习一下数据包经过 linux 内核时常见的丢包场景。

1 收发包处理流程


有必要再回顾下 linux 内核的收发包处理流程,才能更好的认清楚数据包所经过的环节。

当网卡接收到报文时,将数据包 DMA 拷贝到 RingBuf 并触发一个硬中断。继而 cpu 开始执行对应的(硬)中断处理例程。在硬中断处理例程中,将数据包 list 放在了每 cpu 变量 poll_list 中,紧接着触发了一个收包软中断。对应 cpu 的软中断线程 ksoftirqd 处理网络包接收软中断( net_rx_action() ),将数据包从 RingBuf 中取出,协议栈层层处理,经网络层到传输层,数据包被放到 socket 的接收队列中。随后被应用层收取数据。

同样的,在发送数据时,skb 也是经过协议栈层层处理。在网络层对 skb 克隆,填充路由项,依次流经 netfilter 框架的 local_out 、post_routing 点。在邻居子系统填充了 mac 地址,在网络设备子系统中将 skb 放到了发送队列 RingBuf 中。在网卡发送完成后,又会通过硬中断触发软中断,在软中断处理函数中进行 RingBuf 的清理。

接下来进入丢包正题。

2 硬件网卡相关


2.1 ring buffer满

一般物理网卡丢包时,可以通过 ethtool -S 看到相应的统计信息:

`[root@centos ~]# ethtool -s eht0``NIC statistics:  ``      rx_packets: 123456   ``      tx_packets: 789012   ``      rx_bytes: 123456789   ``      tx_bytes: 987654321   ``      rx_errors: 0   ``      tx_errors: 0   ``      tx_dropped: 0   ``     ...`     `rx_no_buffer_count : 0`  

如果发现 rx_no_buffer_count 一直在增长,基本上是因为接收的 RingBuf 满导致的丢包。当然问题的核心原因还是接收流量太大& cpu 处理慢,导致数据包积压造成了丢包。具体的,可能有以下几种场景:

a 硬中断分发不均

通过 cat /proc/interrupts 来查看网卡的硬中断是否均衡,如果报文处理都集中在一个核上,那么很大可能会导致 cpu 处理不过来导致丢包。这种情况可以考虑关闭 irqbalance,使用 set_irq_affinity.sh 来进行手动绑核,使硬中断的分发更均匀。

[root@centos ~]# cat /proc/interrupts`           `CPU0       CPU1`` ...` `27:    6547137          0   PCI-MSI-edge      virtio0-input.0` `28:          1          0   PCI-MSI-edge      virtio0-output.0` `29:          1    5938591   PCI-MSI-edge      virtio0-input.1` `30:          1          0   PCI-MSI-edge      virtio0-output.1

b 会话分发不均

有时候发现硬中断已经是均衡的了,但网络流量触发的中断量级更大,并且集中在某几个核上面,这也是可能导致丢包的原因之一。对于支持多接收队列的网卡,通过 RSS 功能,根据数据包的某些字段(如源ip、目的ip、源端口、目的端口)将数据包哈希到不同的接收队列中,进而分发给不同的 cpu 进行处理。

查看网卡是否支持多队列:

[root@centos ~]# ethtool -l eth0``Channel parameters for eth0:``Pre-set maximums:``RX:    0``TX:    0``Other:    0``Combined:  2  # 支持2个组合队列:既可作接收也可作发送``Current hardware settings:``RX:    0``TX:    0``Other:    0``Combined:  2

# 查看 udp 会话分发哈希关键字``[root@centos ~]# ethtool --show-ntuple eth0 rx-flow-hash udp4``UDP over IPV4 flows use these fields for computing Hash flow key:``IP SA``IP DA

通过 ethtool --config-ntuple 可以修改分发使用的哈希关键字。

c rps

如果网卡不支持多队列,或者支持的多队列远远小于CPU核数(当然这两种情况都比较少见了)。linux内核提供了 rps 机制来进行软中断的负载均衡。比如可以通过 echo ff > /sys/class/net/eth0/queues/rx-0/rps_cpus 来指定某个接收队列负载均衡到哪几个核处理。当然由于通过软件进行模拟,相比硬中断均衡,性能会下降很多,一般没有特殊原因,不建议开启。

d 突发流量

如果是间接性的突发流量导致丢包,可以通过 ethtool -g 来查看当前的 RingBuf 配置,并通过ethtool -G 命令加大 RingBuf 的 size,减少突发流量导致的丢包。

[root@centos ~]# ethtool -g eth0``Ring parameters for eth0:``Pre-set maximums:``RX:    1024``RX Mini:  0``RX Jumbo:  0``TX:    1024``Current hardware settings:``RX:    1024``RX Mini:  0``RX Jumbo:  0``TX:    1024

需要C/C++ Linux服务器架构师学习资料加qun812855908获取(资料包括C/C++,Linux,golang技术,Nginx,ZeroMQ,MySQL,Redis,fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,TCP/IP,协程,DPDK,ffmpeg等),免费分享

2.2 利用 ntuple 保证关键业务

有些情况下,需要保证控制报文高优先级进行处理,默认情况下,网卡无差别对待所有报文,通过 rss 技术来选择队列,无法区分控制报文。可以开启网卡的 ntuple 功能来实现,比如将 tcp 端口号为 23 的报文,定向到 queue 9,与此同时其他报文仍使用 rss 技术,并且设置为使用 8 个队列:

[root@centos ~]# ethtool -K eth0 ntuple on``[root@centos ~]# ethtool -U eth0 flow-type tcp4 dst-port 23 action 9``[root@centos ~]# ethtool -X eth0 equal 8

当对相应的业务进行绑核处理后,tcp 的 23 端口即可以跟其他业务不冲突,保证其高优先级进行处理。当然这个方案依赖于底层网卡的实现,并不是所有网卡都支持的。

3 arp丢包


3.1 neighbor table overflow

arp 比较常见的一个问题是 neighbor 表满了,内核会大量打印如下的消息:

[22181.923055] neighbour: arp_cache: neighbor table overflow!``[22181.923080] neighbour: arp_cache: neighbor table overflow!``[22181.923128] neighbour: arp_cache: neighbor table overflow!

cat /proc/net/stat/arp_cache也能看到大量的 table_fulls 统计:

[root@centos ~]# cat /proc/net/stat/arp_cache` `entries  allocs destroys hash_grows  lookups hits  res_failed  rcv_probes_mcast rcv_probes_ucast  periodic_gc_runs forced_gc_runs unresolved_discards table_fulls``00000002  0000000d 0000000d 00000000  00000515 00000089  00000015  00000000 00000000  00000267 000003a1 00000023 0000039c``00000002  0000001c 0000001a 00000000  00001675 00000374  00000093  00000000 00000000  000003bf 00000252 00000046 00000240

主要原因跟arp的参数如下几个参数相关,将其改大到合适的值即可解决该问题:

# 保存在于ARP高速缓存中的最少层数,如果少于这个数,垃圾收集器将不会运行``[root@centos ~]# echo 1024 > /proc/sys/net/ipv4/neigh/default/gc_thresh1` `# 保存在 ARP 高速缓存中的最多的记录软限制。垃圾收集器在开始收集前,允许记录数超过这个数字 5 秒``[root@centos ~]# echo 2048 > /proc/sys/net/ipv4/neigh/default/gc_thresh2` `# 保存在 ARP 高速缓存中的最多记录的硬限制,一旦高速缓存中的数目高于此,垃圾收集器将马上运行``[root@centos ~]# echo 4096 > /proc/sys/net/ipv4/neigh/default/gc_thresh3

3.2 unresolved drops

当发送报文时,如果还没解析到 arp,就会发送 arp 请求,并缓存相应的报文。当然这个缓存是有限制的,默认为 SK_WMEM_MAX(即与 net.core.wmem_default 相同)。当大量发送报文并且 arp 没解析到时,就可能超过 queue_len 导致丢包,cat /proc/net/stat/arp_cache可以看到unresolved_discards 的统计:

[root@centos ~]# cat /proc/net/stat/arp_cache``entries  allocs destroys hash_grows  lookups hits  res_failed  rcv_probes_mcast rcv_probes_ucast  periodic_gc_runs forced_gc_runs unresolved_discards table_fulls``00000004  00000006 00000003 00000000  0000008f 00000018  00000000  00000000 00000000  00000031 00000000 00000000 00000000``00000004  00000005 00000004 00000000  00000184 0000003b  00000000  00000000 00000000  00000053 00000000 00000005 00000000

可以通过调整 /proc/sys/net/ipv4/neigh/eth0/unres_qlen_bytes 参数来缓解该问题。

4 conntrack丢包:nf_conntrack: table full


当连接数比较多的时候,可能遇到这个连接跟踪表满的错误。

[ 2306.529864] nf_conntrack: nf_conntrack: table full, dropping packet``[ 2370.529866] nf_conntrack: nf_conntrack: table full, dropping packet``[ 2383.059264] nf_conntrack: nf_conntrack: table full, dropping packet

conntrack 有个最大表项数(/proc/sys/net/netfilter/nf_conntrack_max)限制来控制。当 conntrack 数目达到 nf_conntrack_max 后,就会尝试将一些未 assured 状态的 conntrack 提前老化掉,尝试8次,未找到合适的可以提前老化的表项,就直接进行丢包处理。

出于性能的考虑,调大 nf_conntrack_max 的同时,一般也需要调整 nf_conntrack_buckets,建议 max/buckets 小于8 比较合适,这样即使被攻击了,也能快速的进行 early_drop。比如调整 max 到300万,buckets 最好也做相应的调整:

[root@centos ~]# echo 3000000 > /proc/sys/net/netfilter/nf_conntrack_max``[root@centos ~]# echo $((65536*)) > /proc/sys/net/netfilter/nf_conntrack_buckets

5 udp接收buffer满


当一个快的 udp sender,会导致一个较慢的 udp receiver socket recv buffer 满,导致丢包。尤其是存在大量突发的报文时。通过netstat查看 receive buffer errors 的统计就可以获知是否存在这种情况:

[root@centos ~]# netstat -su``...``Udp:`    `690124 packets received`    `3919 packets to unknown port received.`    `0 packet receive errors`    `694556 packets sent`    `0 receive buffer errors`    `0 send buffer errors``UdpLite:``IpExt:`    `InNoRoutes: 2`    `InMcastPkts: 37301`    `InOctets: 2711899731`    `OutOctets: 2207144577`    `InMcastOctets: 1342836`    `InNoECTPkts: 14891803`    `InECT1Pkts: 2339

一般通过修改 /proc/sys/net/core/rmem_max,并且设置 SO_RCVBUF 选项来增加 socket buffer 可以缓解该问题。

6 丢包定位


6.1 dropwatch 查看丢包

除了 tcpdump 抓包进行分析外,dropwatch 也是网络协议栈丢包检查利器。实现原理也比较清晰,在 net/core/drop_monitor.c 文件中,当 kfree_skb 被调用时,内核就会记录下来,并通过 netlink 来通知用户态的 dropwatch 来记录。使用起来也非常简单,可以看到所有调用 kfree_skb() 的地方都会被输出:

[root@centos ~]# dropwatch -l kas``Initalizing kallsyms db``dropwatch> start``Enabling monitoring...``Kernel monitoring activated.``Issue Ctrl-C to stop monitoring``1 drops at skb_queue_purge+18 (0xffffffffb4467eb8)``1 drops at icmp_rcv+125 (0xffffffffb4505a35)``1 drops at icmp_rcv+125 (0xffffffffb4505a35)``1 drops at icmp_rcv+125 (0xffffffffb4505a35)``^CGot a stop message``dropwatch> exit``Shutting down ...

6.2 利用 iptables LOG 跟踪报文流程

有时候,可能会有多个路由出口,为了知道特定的报文是如何路由出去的,可以借助 iptables LOG 来进行跟踪(需要结合limit模块来做限速,避免输出过多)。如下可以看到 ping 包是通过eth0 接口出去的:

`[root@centos ~]# iptables -I OUTPUT -m limit --limit 1/s -p icmp -j LOG` `[root@centos ~]# ping www.baidu.com``PING www.a.shifen.com (183.2.172.185) 56(84) bytes of data.``64 bytes from 183.2.172.185 (183.2.172.185): icmp_seq=1 ttl=52 time=5.87 ms``64 bytes from 183.2.172.185 (183.2.172.185): icmp_seq=2 ttl=52 time=5.03 ms``64 bytes from 183.2.172.185 (183.2.172.185): icmp_seq=3 ttl=52 time=5.17 ms``^C``--- www.a.shifen.com ping statistics ---``3 packets transmitted, 3 received, 0% packet loss, time 2002ms``rtt min/avg/max/mdev = 5.039/5.362/5.875/0.371 ms``[root@centos ~]# ``[root@centos ~]# dmesg``...``[2648940.712804] IN= OUT=eth0 SRC=10.0.24.9 DST=169.254.128.3 LEN=28 TOS=0x00 PREC=0x00 TTL=64 ID=23349 PROTO=ICMP TYPE=0 CODE=0 ID=50280 SEQ=34390` `[2648943.189182] IN= OUT=eth0 SRC=10.0.24.9 DST=169.254.128.15 LEN=28 TOS=0x00 PREC=0x00 TTL=64 ID=62301 PROTO=ICMP TYPE=0 CODE=0 ID=36154 SEQ=45797` `[2648943.730672] IN= OUT=eth0 SRC=10.0.24.9 DST=169.254.128.3 LEN=28 TOS=0x00 PREC=0x00 TTL=64 ID=23451 PROTO=ICMP TYPE=0 CODE=0 ID=50284 SEQ=34394` 

6.3 利用 iptables 规则跟踪丢包

还记得 netfilter 框架的的 5 个hook点吗?

从图中可以看到,接收到报文,路由前,路由后,发送报文,都可以在配置 iptables 规则来进行跟踪。先梳理清楚数据包经过的 hook 点,接着配置 iptables 规则,使得协议命中但不会产生具体的动作,比如对于 ipsec 协议,通过以下两条规则统计的报文数观察在 OUTPUT 之后到 POSTROUTING 之间的丢包个数:

[root@centos ~]# iptables -t mangle -I OUTPUT -p esp``[root@centos ~]# iptables -t mangle -I POSTROUTING -p esp

7 总结


除了上面介绍的一些场景外,还有很多其他的场景,比如 ip 层分片重组导致的丢包、tc配置的丢包等等,这里不再一一举例来说明了。总的来说,多总结,多思考,善于使用 linux 内核提供给我们的工具,才能更好的排查问题。

为了帮助大家更好的学习网络安全,我给大家准备了一份网络安全入门/进阶学习资料,里面的内容都是适合零基础小白的笔记和资料,不懂编程也能听懂、看懂这些资料!

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

[2024最新优快云大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享]


在这里插入图片描述

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

[2024最新优快云大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享]
在这里插入图片描述

在这里插入图片描述

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

[2024最新优快云大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享]

Qt思岚激光雷达 Qt关于思岚激光雷达研究示例,本示例采用qt界面开发,可以串口也可以tcp进行设备连接。接收数据进行相关的数据进行绘图, 这种雷达可以用于大屏触摸场景,会场互动触摸场景开发。 #ifndef MAINWIDGET_H #define MAINWIDGET_H #include <QTimer> #include <QWidget> #include "lidarmgr.h" namespace Ui { class MainWidget; } class MainWidget. 阅读详情

相关推荐

SpringBoot 指标监控——Actuator

1、 访问:localhost:8000/actuator 设置健康监控显示具体情况 metrics http://localhost:8000/actuator/metrics/jvm.gc.live.data.size 定制化health信息 //利用构造器,在注册中心中添加cityService.saveCity.count指标 public CityServiceImpl(MeterRegistry meter...

weixin_44302046的博客 4629

Linux网络故障排查神器:dropwatch安装与实战指南(附常见问题解决)

本文详细介绍了Linux内核级网络故障排查工具dropwatch的安装与实战应用。针对网络丢包问题,dropwatch能精确定位内核丢包函数,是深入诊断网络故障的利器。指南涵盖从源码编译、内核调试符号配置到实战命令解析的全流程,并提供了结合ethtool、ss等工具进行深度关联分析的进阶方法,帮助运维人员彻底解决疑难网络丢包问题。

weixin_29209825的博客 268

【LaTex】LaTex的下载与安装(2025新手小白超详细、超简洁 Windows系统)

安装地点(1)texlive的安装:首先打开下载好的安装包,找到这个文件前面缺少了一页emm我去截取其他人的作为示范然后点击安装安装时间较久,大概要一个小时左右。具体要看个人电脑性能情况。如图显示如上图,则安装成功。图中是TeXstudio 4.8.7版本针对不同操作系统和使用场景的安装包 ,区别如下:(按需求下载)

爱学习的capoo的博客 5100

深入分析Linux网络丢包

从图中你可以看出,可能发生丢包的位置,实际上贯穿了整个网络协议栈。换句话说,全程都有丢包的可能。

果子哥丶的博客 1万+

i2c转串口驱动移植

i2c转串口驱动移植欢迎使用Markdown编辑器新的改变思路与使用方式合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 欢迎使用Markdown编辑器 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用M

mars_Vessalius的博客 2276

【鼠标在不点击的情况下,直接移动到QT控件上不显示提示信息】

有时明明已经调用了setToolTips方法,鼠标移动到QT控件上仍然不会有提示信息,这时候就需要具体分析下。重点就是标红的这段话,大概意思就是。.h文件中加入鼠标移动事件的定义。.cpp文件中实现该事件。

ZTH_G的博客 2423

【博客573】linux内核层丢包排查方法汇总

表示总的收包的错误数量,这包括 too-long-frames 错误,Ring Buffer 溢出错误,crc 校验错误,帧同步错误,fifo overruns 以及 missed pkg 等等。表示数据包已经进入了 Ring Buffer,但是由于内存不够等系统原因,导致在拷贝到内存的过程中被丢弃。

qq_43684922的博客 9781

实用电路精讲系列---仪表放大器

摘要 仪表放大器通过三级运放架构实现高共模抑制比(CMRR>100dB)和精密差分放大,其核心是第一级同相运放提供高输入阻抗和可调增益(G=1+2R/RG),第二级差分运放消除共模干扰。具有低失调(≤50μV)、低温漂(≤0.6μV/℃)特性,广泛应用于智能断路器电流监测、ECG心电信号放大等场景。典型电路采用LTC1049运放,通过匹配电阻网络实现199倍差分增益,结合输出缓冲确保信号稳定性。设计时需注意输入共模电压范围限制和增益电阻精度,优选集成IC(如AD620、INA128)以规避分立元件匹配

weixin_40590799的博客 2073

Linux丢包问题排查思路

Linux 丢包排查

djp304的博客 6497

【漆学军】MT4进阶到MT5速成之路(2)获取持仓

MT5在持仓获取上,要比MT4复杂些,分两部分,获取持仓和挂单采用了不同的方法。 一、获取持仓中的buy和sell单 int b=0;//获取buy单个数 int s=0;//获取sell单个数 double lot_total_buy=0;//获取持仓中buy单的总手数 double lot_total_sell=0;//获取持仓中sell单的总手数 for(int i=0; i<PositionsTotal(); i++) { ulong ticket=Positi

漆学军的编程笔记 1625

Computer Networks 和 Computer & Security投稿经验

论文投稿

qq_50604294的博客 9233

Linux性能优化实战-网络丢包问题分析

网络丢包问题分析

lkq19941204的博客 2223

YOLOv8【第一章:基础入门篇·第2节】一文搞定,数据集制作与标注完全指南!

🏆 本文收录于 《YOLOv8实战:从入门到深度优化》 专栏,该专栏专注于分享我在YOLOv8目标检测模型中的实战经验,涵盖从入门基础到深度优化的全方位解决方案。无论你是计算机视觉的新手,还是具有多年深度学习经验的专家,本专栏都将为你提供高效、可复现的技术方案,助你掌握YOLOv8的核心技术,提升目标检测性能,突破瓶颈,优化模型,并加速项目开发🚀!

**My Coding Family** 1507

Linux 网络丢包怎么排查?终于搞懂了!从零基础到精通,收藏这篇就够了!

这张看似清晰的丢包路径图,实际上隐藏着无数的坑。tc工具配置的QoS策略导致的丢包,网卡统计信息才不会告诉你呢!看来,链路层只是背了部分锅,真凶另有其人!不过,Linux提供了协议收发汇总,想赖都赖不掉!Filter表中的DROP和REJECT规则,是丢包的重灾区!因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取。因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取。因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取。因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取。

Javachichi的博客 1242

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

网络性能三要素:延迟、抖动、丢包对应用体验的影响与优化实战

在网络通信中,延迟、抖动和丢包是衡量网络质量的三个核心指标。延迟指数据包从发送到接收的往返时间,抖动是延迟的变化量,丢包则是数据包未能到达目的地的比例。理解其原理是优化网络应用的基础。从技术价值看,它们直接影响应用的响应速度、流畅度和可靠性。例如,高延迟会破坏实时交互,剧烈抖动导致音视频卡顿,而丢包则会触发TCP拥塞控制,大幅降低传输速率。在应用场景上,在线游戏对延迟极其敏感,实时音视频通话首要克服抖动,而大文件传输则最忌惮丢包。本文聚焦于网络性能优化,通过分析不同业务场景下的核心瓶颈,并结合前向纠错(FE

weixin_34296641的博客 396

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

【Linux网络基础】UDP (用户数据报协议) 数据传输全流程深度解析

摘要:本文深入解析UDP协议全流程,包括8字节精简头部结构、无连接传输特性及其与TCP的核心差异。详细阐述UDP数据从发送端应用层分片、网络层封装到接收端解复用的完整路径,分析内核协议栈处理函数(如udp_sendmsg/udp_rcv)和典型DNS交互场景。通过Wireshark抓包示例和Python代码演示,揭示UDP无可靠性保障但高效传输的特性,特别说明MTU限制(建议1472字节)及乱序处理需应用层自行实现。

love131452098的博客 1022

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Wireshark实战进阶:从抓包到精通的网络分析技巧

网络协议分析是网络运维、安全分析和应用开发领域的基础技能,它通过解析数据包来洞察网络通信的底层原理。掌握高效的协议分析工具,能够帮助工程师快速定位网络延迟、安全威胁和应用层故障。在众多工具中,Wireshark凭借其强大的捕获与解码能力,成为行业标准。其核心价值在于将海量网络数据转化为可读信息,关键在于熟练运用捕获过滤器与显示过滤器。捕获过滤器基于BPF语法,能在数据包进入前进行高效筛选,减少系统负载;而显示过滤器则支持对已捕获数据的深度、灵活查询,两者结合是提升分析效率的关键。本文聚焦于Wireshark

weixin_30800987的博客 500

TCP Reno/CUBIC 拥塞控制算法对比:Linux 内核 5.15 下 RTT 与吞吐量实测

本文深入对比了TCP Reno与CUBIC拥塞控制算法在Linux 5.15内核下的性能表现,通过实测RTT与吞吐量数据,揭示CUBIC在高延迟场景下较Reno提升9%的吞吐量优势。测试涵盖局域网、跨城专线和国际链路三种典型网络环境,并提供内核参数调优建议,帮助开发者根据实际应用场景选择最优拥塞控制算法。

weixin_34245082的博客 501

Linux-NetSpeed终极指南:一键部署三大网络加速方案,让服务器速度提升300%

你是否曾经为服务器网络速度慢而烦恼?是否被复杂的网络优化配置弄得头晕眼花?Linux-NetSpeed项目就是为你量身打造的解决方案!这个开源工具集将Linux系统最主流的三种网络加速技术——BBR、BBRplus和Lotserver集成在一起,提供了一键式部署方案,让普通用户也能轻松实现专业级的网络性能优化。 ## 🚀 项目亮点速览:为什么选择Linux-NetSpeed? **简单易用*

gitblog_00564的博客 440

Linux 问题故障定位,看一篇就搞定了!

背景 有时候会遇到一些疑难杂症,并且监控插件并不能一眼立马发现问题的根源。这时候就需要登录服务器进一步深入分析问题的根源。那么分析问题需要有一定的技术经验积累,并且有些问题涉及到的领域非常广,才能定位到问题。所以,分析问题和踩坑是非常锻炼一个人的成长和提升自我能力。如果我们有一套好的分析工具,那将是事半功倍,能够帮助大家快速定位问题,节省大家很多时间做更深入的事情。 说明 本篇文章主要介绍...

weixin_45284484的博客 309

Arch Linux下Nmap与Wireshark安装配置及网络分析实战指南

网络协议分析是网络安全、运维和开发领域的基础技能,它涉及对数据包传输原理的深入理解。通过抓取和解码网络流量,工程师可以诊断连接故障、分析性能瓶颈并识别潜在威胁,这一过程对于构建稳定可靠的网络架构至关重要。在众多操作系统中,Arch Linux以其滚动更新和高度可定制性,为网络工具提供了纯净且可控的运行环境。本指南聚焦于两大核心工具:Nmap用于网络发现与安全审计,通过端口扫描和服务识别摸清网络拓扑;Wireshark则作为协议分析利器,深度解析数据包内容。文中将结合Arch Linux的pacman包管理和

weixin_33674976的博客 398

Linux网络性能优化实战:XDP vs tc vs netfilter 到底该怎么选?

本文深入探讨了Linux网络性能优化中的三种关键技术:XDP、tc和netfilter。通过对比分析它们的架构特点、性能表现和适用场景,帮助开发者在高并发、低延迟的网络环境中做出最优选择。XDP以其亚微秒级延迟和高效处理能力脱颖而出,而tc和netfilter则在流量控制和防火墙应用中各具优势。

weixin_30945039的博客 287

别再被Recv-Q和Send-Q搞晕了!用netstat和ss命令排查Linux网络连接队列的实战指南

本文详细解析了Linux系统中Recv-Q和Send-Q的含义及实战排查方法,通过netstat和ss命令帮助开发者快速诊断TCP连接队列问题。文章结合真实案例,提供从内核参数调优到应用层优化的完整解决方案,助力提升网络性能与稳定性。

weixin_42554408的博客 358
上一篇: 2万字长文,如何成为一个“懂”AI 的产品经理?零基础入门到精通,收藏这一篇就够了
下一篇: 2024年薪酬最高的五个网络安全职位,零基础入门到精通,收藏这一篇就够了
程序员_大白
博客等级 码龄5年 1万+粉丝 4001原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值