最近工作中遇到某个服务器应用程序 UDP 丢包,在排查过程中查阅了很多资料,总结出来这篇文章,供更多人参考。

在开始之前,我们先用一张图解释 linux 系统接收网络报文的过程。

●  首先网络报文通过物理网线发送到网卡

●  网络驱动程序会把网络中的报文读出来放到 ring buffer 中,这个过程使用 DMA(Direct Memory Access),不需要 CPU 参与

●  内核从 ring buffer 中读取报文进行处理,执行 IP 和 TCP/UDP 层的逻辑,最后把报文放到应用程序的 socket buffer 中

●  应用程序从 socket buffer 中读取报文进行处理

在接收 UDP 报文的过程中,图中任何一个过程都可能会主动或者被动地把报文丢弃,因此丢包可能发生在网卡和驱动,也可能发生在系统和应用。

之所以没有分析发送数据流程,一是因为发送流程和接收类似,只是方向相反;另外发送流程报文丢失的概率比接收小,只有在应用程序发送的报文速率大于内核和网卡处理速率时才会发生。

本篇文章假定机器只有一个名字为 eth0 的 interface,如果有多个 interface 或者 interface 的名字不是 eth0,请按照实际情况进行分析。

NOTE:文中出现的 RX(receive) 表示接收报文,TX(transmit) 表示发送报文。

确认有 UDP 丢包发生

java udp丢包_linux 系统 UDP 丢包问题分析思路相关推荐

  1. linux 虚拟机大量udp请求失败_linux遭受UDP攻击解决办法

    前几天朋友的网站流量很大,导致无法访问.去IDC查看,服务器已经DOWN掉了.重启后使用bandwidth查看近来的流量状况,发现是由于UDP的流量达到峰值导致.系统为Centos 5.4 1.下载安 ...

  2. 英特奇android刷机,英特奇E88线刷刷机教程_英特奇E88线刷rom包_系统刷机包

    有关英特奇intki E88的刷机资料来分享一下了,说到刷机资料其实包括的挺多的,一般包括刷机包和root包以及相关的刷机教程了,今天在这里说的刷机包是线刷包了,一般线刷包是比较重要的一个资料,因为线 ...

  3. tcpdump抓两个网卡的包_Linux下网络抓包命令tcpdump详解(在wireshark中看包)

    tcpdump -i eth0 -c 2000 -w eth0.cap tcpdump采用命令行方式,它的命令格式为: tcpdump[ -adeflnNOpqStvx ] [ -c 数量 ] [ - ...

  4. linux 系统 UDP 丢包问题分析思路

    转自:http://cizixs.com/2018/01/13/linux-udp-packet-drop-debug?hmsr=toutiao.io&utm_medium=toutiao.i ...

  5. Linux系统 UDP 丢包问题分析思路和修改网卡缓存

    最近工作中遇到某个服务器应用程序 UDP 丢包,在排查过程中查阅了很多资料,我在排查过程中基本都是通过使用 tcpdump 在出现问题的各个环节上进行抓包.分析在那个环节出现问题.针对性去排查解决问题 ...

  6. UDP数据包的延迟及丢包检测(C++)

    摘要 本文记录通过数据报套接字来检测UDP数据包的延迟和丢包的思路和简单的代码实现. 思路 UDP协议及用户数据报协议在传输层提供了无连接.不可靠的传输服务,端到端的延迟以及丢包率是反应当前网络环境好 ...

  7. 无连接应用程序丢包率测试/UDP丢包率测试【基于数据报套接字的网络程序设计】

    目录 一.无连接应用程序丢包率测试 二.UDP 丢包率测试服务端 三.UDP丢包率测试客户端 四.用户使用说明(输入 / 输出规定) 五.部分运行结果 六.UDP 丢包率的测试结果分析 (1)讨论服务 ...

  8. java中DatagramSocket连续发送多个数据报包时产生丢包现象解决方案

    1 try { 2 //向指定的ip和端口发送数据~! 3 //先说明一下数据是谁发送过来的! 4 byte[] ip = InetAddress.getLocalHost().getHostAddr ...

  9. ping网关丢包_网络/摄像机丢包的原因分析

    引文 不少人在使用网络和监控摄像系统的时候都有遇到过数据丢包的情况,数据丢包的原因是多种多样的,以下就为大家介绍一下网络数据丢包的原因及摄像机丢包的原因. 原因分析 摄像机丢包的原因1:路由错误 网络 ...

最新文章

  1. AI突破的「阴暗面」:怎样防止GPT-3跟人类学坏?
  2. 在不锁定表的情况下运行MySQLDump
  3. 10-20国际标准导联系统
  4. 迈克尔·乔丹,无可复制的篮球之神!
  5. mysql unix_timestamp 格式化_FROM_UNIXTIME 格式化MYSQL时间戳函数_MySQL
  6. 数字0-9的数量(51Nod-1042)
  7. 【教程】win7下无需软件或adhoc补丁通过无线网卡搭建虚拟wifi网络
  8. Android笔记 消息机制handler+http之 网络图片浏览器demo
  9. 修改lgoin,http://www.tuicool.com/articles/U3iyqq
  10. ECMAScript 运算符--逗号运算符
  11. Win10搜索框图案有广告的解决办法
  12. java编写安卓计算器_Android计算器编写代码
  13. P2P业务整体流程图
  14. android 手机如何截屏,安卓手机一般怎么截屏 安卓如何截图手机屏幕 - 云骑士一键重装系统...
  15. 淘宝店群的失败,标志另一代店群平台的崛起,店群“时代在发展”
  16. 如何轻松学习C语言编程!
  17. linux服务安装与配置(二):安装xinetd服务
  18. 2005年乔布斯stanford演讲全文
  19. EMP v5.3 技术白皮书
  20. 氢能与燃料电池高级研修班

热门文章

  1. 自动检测技术学习心得体会_国培计划(2020)—学校管理团队信息化领导力提升培训心得体会...
  2. jQuery实现禁用和只读
  3. java实现儿时的超级玛丽游戏
  4. CSS pointer-events属性的使用
  5. mongoose中的populate之多级填充,嵌套字段填充?
  6. PAT L3-007 天梯地图
  7. TJOI2018Party
  8. 安装python3 及virtual与virtualenvwrapper
  9. springcloud 入门 10 (eureka高可用)
  10. Thonny -- 简洁的 python 轻量级 IDE