设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 手机 数据 公司
当前位置: 首页 > 服务器 > 安全 > 正文

网络分析技术之葵花宝典

发布时间:2021-01-04 17:43 所属栏目:53 来源:网络整理
导读:《网络分析技术之葵花宝典》要点: 本文介绍了网络分析技术之葵花宝典,希望对您有用。如果有疑问,可以联系我们。 请及时关注“高效运维(微信ID:greatops)”公众号,并 置顶公众号 ,以免错过各种干货满满的原创文章. 作者介绍: 胥峰 盛大游戏高级研究员 高

《网络分析技术之葵花宝典》要点:
本文介绍了网络分析技术之葵花宝典,希望对您有用。如果有疑问,可以联系我们。

请及时关注“高效运维(微信ID:greatops)”公众号,并置顶公众号,以免错过各种干货满满的原创文章.

作者介绍:

胥峰

盛大游戏高级研究员 高级信息系统项目管理师
《Linux运维最佳实践》(在版)作者

2006年毕业于南京大学,2011年加入盛大游戏.十年运维经验,曾参与盛大游戏多款大型端游和手游的上线运维,主导统一运维平台的产品功能设计和实施.拥有工信部认证高级信息系统项目管理师资格.

引言:在游戏运维过程中,我们经常会遇到各种看起来与网络有关的故障.如何快速定位和排除故障,是我们需要面对的挑战.

本文主要分享一些使用网络分析技术tcpdump来解决实际问题的案例,传递网络分析的思想、最佳实践,和大家一起探讨学习.

分享的内容由五部分组成:

1. 背景

2. 案例

3. 技巧

4. 原理

5. 总结

一、背景

游戏运维中精彩遇到这些问题:

  • 游戏补丁更新失败有没有?
  • 手游卡顿有没有?
  • 玩家无法登录游戏有没有?
  • … …

遇到这些问题,怎么办?

  • “推说”玩家网络问题?
  • 交给开发商?
  • 我不知道?
  • … …

其实,我们可以多做一步:先用常见网络分析技术如tcpdump,判断下问题,然后再决定下一步行动.

二、常见案例

说明:如下案例都通过tcpdump抓包并用Wireshark进行分析.关于这两个利器的使用技巧详见后文.

1. 客户端更新失败的分析解决

现象:2012年11月1日~11月7日某游戏技术封测,部分玩家更新失败

从这个图里,我们可以看到,玩家下载更新时,被引导到一个非我司的IP地址上.下面我们来看看,在底层的网络层面,发生了什么.

通过上述网络抓包,可以更清晰地看到来龙去脉,并可作为证据留存.

2. 虚拟机带宽形态异常的分析解决

在本例中,带宽最小值和最大值都是100Mb/s,这明显是有问题的.

我们抓包看看情况.

由图可见,在TCP的SYN包中,被携带了数据.这说明,该主机对外DOS攻击(原因是什么?各种啊..).

在目前的TCP协议实现中,SYN包中并不携带数据

注意: 有兴趣的同学可以关注下TCP Fast Open技术,在最新的内核中已经支持.这个技术允许在TCP SYN包中携带数据,以减少对端连续建立多个TCP通道的消耗.

3. Nginx 499 异常的分析解决

有你,是盛大推出的一款网络短信工具,有类似“朋友圈”的功能.

问题现象:在“有你”这款工具的运营中,发现Nginx日志中存在499状态码的访问,且较多.

499状态码为Nginx特有,意思是“客户端已经关闭连接”

通过分析,我们发现存在2个问题:

1)红色圈中的2个packet,可以看出从NetScaler收到syn包到转发给后端web时间delay达54秒.

2) 黄色圈中的3个packet,可以看出客户端在发了HTTP Request的0.6秒后,立即发送了一个[FIN,ACK]的包.

因此,也可以进行下一步排查了.

4. 手游用户访问异常的分析解决

这是该情况下的网络抓包截图.

通过对游戏的网络行为分析,总结如下3点:

1)中国移动对HTTP协议有串联设备分析请求与响应,可能过滤了我们的请求.(后续工作:可以向中国移动某分公司投诉)

2)游戏客户端发送的请求有需要优化的地方:User-Agent头部可以考虑完善补充(构造),对于HTTP协议来说,User-Agent在rfc2616(HTTP标准)中用的是SHOULD(即建议),但是事实上必须的.以下是某款知名手游的HTTP头部截图

3)游戏客户端发送的请求有需要优化的地方:POST请求把所有数据都放在了http header里面,导致post内容本身字段长度为0.这个使得“看起来不是那么正常”.建议尝试优化.

三、技巧大放送

1. Wireshark配置技巧

1)禁用解析

2)使用绝对序列号

3)自定义HTTP端口号

有时,我们的HTTP应用(以手游为多见)并不是开放在80的知名端口,而是使用了例如10001这样的高端口.为了使Wireshark能够主动以HTTP协议解析这些非知名端口的通信内容,我们需要自定义HTTP解析的端口.

4)使用追踪数据流功能

(编辑:ASP站长网)

网友评论
推荐文章
    热点阅读