【OSS 排查方案-5】透过现象看本质之网络排查分析

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,内容安全 1000次 1年
对象存储 OSS,恶意文件检测 1000次 1年
简介: 背景:拿到数据包时如何通过众多的数据,提炼出有效的网络分析信息,快速的进行定位排障。以下总结了一些 OSS 上传/下载慢的共性问题,提供大家参考。 排查问题之前让我们先来回顾一下 TCP 的基础知识 TCP 结构: 基础名词: Sequence Number是包的序列号,用来解决网络包乱序(reordering)问题。

背景:拿到数据包时如何通过众多的数据,提炼出有效的网络分析信息,快速的进行定位排障。以下总结了一些 OSS 上传/下载慢的共性问题,提供大家参考。

排查问题之前让我们先来回顾一下 TCP 的基础知识


TCP 结构:


基础名词:

  • Sequence Number是包的序列号,用来解决网络包乱序(reordering)问题
  • Acknowledgement Number就是ACK —— 用于确认收到,用来解决不丢包的问题
  • Window又叫Advertised-Window,也就是著名的滑动窗口(Sliding Window),用于解决流控的。
  • TCP Flag,也就是包的类型,主要是用于操控TCP的状态机的
  • CWND ,也就是初始化发包控制的数量, ip ro 可以看到。 ip route 可以设置
  • package flow ,数据包的流动增长。

常用抓包命令:

tcpdump -i 出口网卡 -s0 -v host \( 本地出口IP and 服务端IP \) -w filename.pcap

架构

1)本地 PC -》 OSS 上传

2)本地 PC -》 OSS 上传

3)ECS -》 VPC 环境 -》OSS 下载

第一种架构:


首先根据 TCP/IP connect find important message

  • client WS = 256
  • MSS = 1452
  • SACK = 1
  • server WS = 0
  • cwnd = 2
  • length 1506

通过已知的信息我们可以先得出一些判断

  • server 端不支持 WS,也就是一个往返 RTT 内最大传输是 64KB
  • server support SACK,so transmission lose package,not all package
  • cwnd tiny,起始传输会比较 slow,后续探测 reciver ACK 后,会指数递增

 通过 RTT 可以看出来我们的网络稳定在 0.035


分析 TCP Stream  流图可以得知,延迟低,而且无丢包,从而可以得知并非是延迟丢包导致的传输速度慢

分析发包的规律分布



通过以上几张连续的判断可以得知,客户端的 cwnd 是 2,而且每经过一个 RTT 后都会进行倍数的递增 2,4,6,8 最终稳定在 9 个,正常的 TCP 协议栈应该是以指数被递增,linux 是 64 ,windows 应该是到 256,同时我们也得知了对方是在一个 windows 系统上发包,协议栈和 Linux 的有很大区别。

接下准备分析为什么客户上传慢的原因:

RTT 是 35ms ,每个 RTT 只能传 9 个包,也就是 9*1506 / 35 = 378KB/s

总的时间  8876789/378/1024 = 23 + 卡顿 ~= 30S

所以整个发包速度慢也就是正常的

而服务端不支持 WS 的情况下,理论的最大传输速度也应该是:

根据 TCP 传输原理,理论最大传输速度 = WND / RTT = 64KB / 0.035 = 1828KB/s

1s 内有 1000/35 = 29 个 RTT, 29* 64 = 每个 RTT 最大传输量

但是现在每秒钟只能传输 1506 * 9 = 13554 = 13KB

综合结论客户端的 TCP 协议站传输是有问题。

第二种架构

老套路,先分析 TCP 三次握手中的基本信息。


  • 服务端支持的 ws, 512 ,也就是单程 RTT 最大的传输量是 576 KB。
  • 客户端的首发包数量是 2 个,也是成倍数递增 2,4,6,8,20 ...最终是 20。
  • RTT 有持续增长的状态,因此三次握手的 RTT 可能不准确,我们需要计算一个加权后的 iRTT,最后得到是 40ms。

为什么延迟大的情况下,我们的传输速度反而比直传 OSS 稳定 0.035S 的要快呢?因为服务端支持 WS,也就是客户端在传输过程中的 package 可以持续滑动。

所以计算下来就是 434/(20*1498/0.04/1024) = 590ms 

整个数据包传输完的时间 ~= 572ms

第三种架构

先从三次握手中获取价值信息

  • 客户端、服务端都支持 WS 
  • RTT 稳定在 0.006
  • send package 稳定在 88 个。
  • 按照 WS 的支持一秒中最多能传的包是  88 * 1514 /0.006 =21MB/S
  • 理论传输 1000/6 = 166,现在最大能传到 104,平均 88 ,可能存在 TCP 协议栈的问题。最终手段通过服务端调整了 OSS 机器的 TCP 协议栈,增大了 send package 和 CWND
相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
目录
相关文章
|
5天前
|
安全 虚拟化
在数字化时代,网络项目的重要性日益凸显。本文从前期准备、方案内容和注意事项三个方面,详细解析了如何撰写一个优质高效的网络项目实施方案,帮助企业和用户实现更好的体验和竞争力
在数字化时代,网络项目的重要性日益凸显。本文从前期准备、方案内容和注意事项三个方面,详细解析了如何撰写一个优质高效的网络项目实施方案,帮助企业和用户实现更好的体验和竞争力。通过具体案例,展示了方案的制定和实施过程,强调了目标明确、技术先进、计划周密、风险可控和预算合理的重要性。
19 5
|
9天前
|
数据采集 缓存 定位技术
网络延迟对Python爬虫速度的影响分析
网络延迟对Python爬虫速度的影响分析
|
27天前
|
安全 网络架构
MPLS线路构建稳定、高效网络的优选方案
【10月更文挑战第17天】MPLS线路构建稳定、高效网络的优选方案
46 5
|
7天前
|
网络协议 Linux
使用nmcli命令设置IP地址并排查网络故障
nmcli 是一个功能强大的网络管理工具,通过它可以轻松配置IP地址、网关和DNS,同时也能快速排查网络故障。通过正确使用nmcli命令,可以确保网络配置的准确性和稳定性,提高系统管理的效率。希望本文提供的详细步骤和示例能够帮助您更好地掌握nmcli的使用方法,并有效解决实际工作中的网络问题。
15 2
|
10天前
|
存储 安全 网络安全
网络安全法律框架:全球视角下的合规性分析
网络安全法律框架:全球视角下的合规性分析
22 1
|
19天前
|
网络协议 安全 算法
网络空间安全之一个WH的超前沿全栈技术深入学习之路(9):WireShark 简介和抓包原理及实战过程一条龙全线分析——就怕你学成黑客啦!
实战:WireShark 抓包及快速定位数据包技巧、使用 WireShark 对常用协议抓包并分析原理 、WireShark 抓包解决服务器被黑上不了网等具体操作详解步骤;精典图示举例说明、注意点及常见报错问题所对应的解决方法IKUN和I原们你这要是学不会我直接退出江湖;好吧!!!
网络空间安全之一个WH的超前沿全栈技术深入学习之路(9):WireShark 简介和抓包原理及实战过程一条龙全线分析——就怕你学成黑客啦!
|
30天前
|
运维 监控 安全
连锁药店网络优化策略:一站式融合方案提升竞争力
在数字化浪潮下,线上药店通过技术创新和线上线下融合,正重塑购药体验,提供24小时服务和医保结算便利。面对激烈竞争,连锁药店和中小药店纷纷通过优化网络架构、提升服务质量和加强合规管理来增强竞争力,实现高效、安全的数字化转型。
|
19天前
|
网络协议 安全 算法
网络空间安全之一个WH的超前沿全栈技术深入学习之路(9-2):WireShark 简介和抓包原理及实战过程一条龙全线分析——就怕你学成黑客啦!
实战:WireShark 抓包及快速定位数据包技巧、使用 WireShark 对常用协议抓包并分析原理 、WireShark 抓包解决服务器被黑上不了网等具体操作详解步骤;精典图示举例说明、注意点及常见报错问题所对应的解决方法IKUN和I原们你这要是学不会我直接退出江湖;好吧!!!
|
1月前
|
安全 网络协议 物联网
物联网僵尸网络和 DDoS 攻击的 CERT 分析
物联网僵尸网络和 DDoS 攻击的 CERT 分析
|
4月前
|
机器学习/深度学习 人工智能 专有云
人工智能平台PAI使用问题之怎么将DLC的数据写入到另一个阿里云主账号的OSS中
阿里云人工智能平台PAI是一个功能强大、易于使用的AI开发平台,旨在降低AI开发门槛,加速创新,助力企业和开发者高效构建、部署和管理人工智能应用。其中包含了一系列相互协同的产品与服务,共同构成一个完整的人工智能开发与应用生态系统。以下是对PAI产品使用合集的概述,涵盖数据处理、模型开发、训练加速、模型部署及管理等多个环节。