设为首页 收藏本站
查看: 1335|回复: 0

[经验分享] tcpping指定网卡类型为any结果不准确问题

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-5-16 09:25:24 | 显示全部楼层 |阅读模式
                      tcpping软件参考开源工具

https://github.com/jwyllie83/tcpping
该软件通过libnet组包和发包,通过libpcap抓取返回的ACK或RST信息来计算tcp延迟和丢包。
./tcpping -h
./tcpping: invalid option -- 'h'
./tcpping: [-v] [-c count] [-p port] [-i interval] [-I interface] [-t ttl] [-S srcaddress] remote_host

如果设备上有多个网卡,数据发出是从网卡A发出,数据回来是经过网卡B回来,这种情况下,需要设置-I any。只针对linux系统有效。
但设置成any后,第一包结果出现 异常。如:
./tcpping -S 1.1.1.1 1.1.1.5 -p 22 -I any
TCP PING 1.1.1.5 (1.1.1.5:22)
SYN/ACK from 1.1.1.5: seq=1 ttl=63 time=1463296896.000s
SYN/ACK from 1.1.1.5: seq=2 ttl=63 time=43.474ms
SYN/ACK from 1.1.1.5: seq=3 ttl=63 time=45.411ms
SYN/ACK from 1.1.1.5: seq=4 ttl=63 time=45.780ms
SYN/ACK from 1.1.1.5: seq=5 ttl=63 time=43.381ms
SYN/ACK from 1.1.1.5: seq=6 ttl=63 time=43.429ms
SYN/ACK from 1.1.1.5: seq=7 ttl=63 time=45.549ms
SYN/ACK from 1.1.1.5: seq=8 ttl=63 time=43.241ms
^C
--- 1.1.1.5 TCP ping statistics ---
7 SYN packets transmitted, 8 SYN/ACKs and 0 RSTs received, -14.3% packet loss
round-trip min/avg/max = 43.241/182912128.000/1463296896.000 ms

出现这种情况,稍微改一下tcpping.c代码即可
                /* Do some analysis on the returned packet... */
                if (ms > 1000) {
                        units = "s";
                        ms /= 1000;
                       
            //如果大于1000,认为异常,直接返回

                        return;
                }

改进后效果为:
./tcpping -S 1.1.1.1 1.1.1.5 -p 22 -I any -c 5
TCP PING 1.1.1.5 (1.1.1.5:22)
SYN/ACK from 1.1.1.5: seq=1 ttl=63 time=43.492ms
SYN/ACK from 1.1.1.5: seq=2 ttl=63 time=43.469ms
SYN/ACK from 1.1.1.5: seq=3 ttl=63 time=45.379ms
SYN/ACK from 1.1.1.5: seq=4 ttl=63 time=43.549ms
SYN/ACK from 1.1.1.5: seq=5 ttl=63 time=43.409ms
SYN/ACK from 1.1.1.5: seq=6 ttl=63 time=43.494ms

--- 1.1.1.5 TCP ping statistics ---
6 SYN packets transmitted, 6 SYN/ACKs and 0 RSTs received, 0.0% packet loss
round-trip min/avg/max = 43.409/43.799/45.379 ms

                   


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-217551-1-1.html 上篇帖子: linux系统修改SSH最大连接数,修改nofile,nproc参数方法 下篇帖子: Linux下卸载OpenJDK并安装Sun JDK的详细步骤 网卡
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表