• 最近ES遇到discover老是失败问题,ping主节点和node节点正常,抓包发现了大量的retransmission、tcp out of order、dup ack问题。


    最近ES遇到discover老是失败问题,ping主节点和node节点正常,抓包发现了大量的retransmission、tcp out of order、dup ack问题。

    Explanation

    看到其他人也遇到过:https://community.pega.com/knowledgebase/articles/troubleshooting-elasticsearch-performance-tcp-network-analysis

    The example screen below shows the Wireshark network analysis tool with a filter on a specific port that is trying to attempt the index request for the example case W-xxxx. No corresponding packet information is being received by Node1, the primary indexing node. Therefore, the root cause of the problem appears to be at the network layer, where some of the packets are not being transmitted successfully.

    Wireshark analysis for FTS index request on example case

    TCP报文之-tcp dup ack 、tcp Out-of-Order

    使用WireShark抓包,选择TCP报文,TCP是一种安全的协议,在网络出现状况时也能安全稳定的传输数据,但是在网络出现问题时tcp报文中会有很多中情况导致报文重传或者是重组。现在就在报文中遇到的几个问题来详细说明一下。 
    WireShark出现的常见提示 
    TCP Out_of_Order的原因分析: 
    一般来说是网络拥塞,导致顺序包抵达时间不同,延时太长,或者包丢失,需要重新组合数据单元,因为他们可能是由不同的路径到达你的电脑上面。 
    TCP Retransmission原因分析: 
    很明显是上面的超时引发的数据重传。 
    TCP dup ack XXX#X原因分析: 
    就是重复应答#前的表示报文到哪个序号丢失,#后面的是表示第几次丢失。 
    tcp previous segment not captured原因分析 
    意思就是报文没有捕捉到,出现报文的丢失。 
    下面就详细的报文进行分析: 
    这里写图片描述
    1221:seq:8321,ack:18292,len:0, 
    所有下一条报文的应该是seq:18292,ack:8321,但是在1230报文段出现报文丢失,该报文seq:27392,ack:8321,所以出现了报文的丢失, 
    所有在1232到1238都是为了补全seq从18292到27392的报文段。 
    这里写图片描述
    1439显示报文丢失seq:53800,ack:9765 
    1438 seq:51200,:ack:9765,len:1300 
    所以1439的seq应该是51200+1300=52500,但是1439直接到了53800所以出现丢包情况,在1440重新发送52500到53800的数据包。 
    这里写图片描述
    1587的意思是出现丢包了,未收到之前的数据包,也要进行重传或者重组,1586的ack=211249,也就是要求server端下次发送seq=211249的包,结果 1587发送的数据包seq=212261.说明server端收到过client端发送的数据包ack=212261,则判断之前的一个数据包未收到。

  • 相关阅读:
    pwnable.kr login之write up
    安装ubuntu16.4后
    HTML资源定位器-URL
    【实验吧】编程循环&&求底运算
    【SQL注入】mysql中information_schema详解
    C#之BackgroundWorker从简单入门到深入精通的用法总结
    C#使用NPOI对Excel文档进行读、写、导入、导出等操作的dll最新版2.5.1+2.3.0
    Visual Studio中Debug与Release以及x86、x64、Any CPU的区别
    C# 使用BackgroundWorker例子及注意点
    C# BackgroundWorker组件学习入门介绍
  • 原文地址:https://www.cnblogs.com/bonelee/p/9268155.html
Copyright © 2020-2023  润新知