ping替代tcp?


12

检查网络“质量”是一项常见任务,包括等待时间,丢失的数据包数量等。但是“ ping”有许多缺点:-它使用ICMP。许多ISP对于ICMP和TCP流量具有不同的整形器,因此“ ping”将显示10ms的延迟,但是TCP连接将经历1000ms +。-发送很少的数据包。默认情况下,每秒一包。由于TCP协议可以容忍数据包丢失(如果丢失了一半数据包,它可以很好地工作-这是正常的),因此,尚不清楚ping是否会“杀死30%的数据包”杀死连接还是绝对正常。

那么,使用TCP连接代替ICMP并检查Internet连接质量的ping替代方法是否可行?


这些地址之间的任何其他连接都将丢失%30的Ping。%10快要死亡了。%1可能是您开始看到严重问题之前的限制。
Jonesome恢复Monica 2012年

Answers:


14

不管TCP可以容忍数据包丢失/数据包排序问题,但如果“人口”足够大(即超过100个ping),则30%的ping丢失仍然是相当可观的。

但是要回答这个问题,您可以看一下nmap。我敢肯定例子很快就会泛滥成灾:)

但是,更重要的是,您不希望只有往返时间,您真的希望看到从计算机到服务器再到每个(可能)跃点的性能。

您可以使用traceroute- 进行此操作-但是,最常见的版本是使用ICMP或UDP完成的,但搜索tcp traceroute-并从此处开始。

这是一些有趣的工具,供您尝试时使用...

这是一个lft... 的例子

 % lft -S 4.2.2.2

 Hop  LFT trace to vnsc-bak.sys.gtei.net (4.2.2.2):80/tcp
  1   ln-gateway.centergate.com (206.117.161.1) 0.5ms
  2   isi-acg.ln.net (130.152.136.1) 2.3ms
  3   isi-1-lngw2-atm.ln.net (130.152.180.21) 2.5ms
  4   gigabitethernet5-0.lsanca1-cr3.bbnplanet.net (4.24.4.249) 3.0ms
  5   p6-0.lsanca1-cr6.bbnplanet.net (4.24.4.2) 3.4ms
  6   p6-0.lsanca2-br1.bbnplanet.net (4.24.5.49) 3.3ms
  7   p15-0.snjpca1-br1.bbnplanet.net (4.24.5.58) 10.9ms
  8   so-3-0-0.mtvwca1-br1.bbnplanet.net (4.24.7.33) 11.1ms
  9   p7-0.mtvwca1-dc-dbe1.bbnplanet.net (4.24.9.166) 11.0ms
 10   vlan40.mtvwca1-dc1-dfa1-rc1.bbnplanet.net (128.11.193.67) 11.1ms
 **   [neglected] no reply packets received from TTLs 11 through 20
 **   [4.2-3 BSD bug] the next gateway may errantly reply with reused TTLs
 21   [target] vnsc-bak.sys.gtei.net (4.2.2.2) 11.2ms

我一直在尝试寻找paketto几个小时,但我完全忘记了名称和大部分上下文。感谢您的链接!
2012年


3

我个人是mtr(http://www.bitwizard.nl/mtr/)的忠实拥护者,mtr是基于ncurses的traceroute克隆,可以同时使用icmp和udp来工作。它向您显示了与特定主机的链接中的薄弱环节,因此是非侵入性的。

当真的要进行一些负载测试时,我会选择iperf(即客户端/服务器)。


此外,还有MTR的GTK变体供有兴趣的人使用
肯特·弗雷德里克

2

对于Windows,您可以使用类似tcping的方法:http ://www.elifulkerson.com/projects/tcping.php

对于Linux来说,最好的工具是hping

# hping -S -p 80 www.sunet.se
HPING www.sunet.se (eth0 192.36.171.155): S set, 40 headers + 0 data bytes
len=46 ip=192.36.171.155 ttl=59 DF id=0 sport=80 flags=SA seq=0 win=5840 rtt=0.7 ms
len=46 ip=192.36.171.155 ttl=59 DF id=0 sport=80 flags=SA seq=1 win=5840 rtt=0.7 ms
len=46 ip=192.36.171.155 ttl=59 DF id=0 sport=80 flags=SA seq=2 win=5840 rtt=0.6 ms
^C
--- www.sunet.se hping statistic ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max = 0.6/0.7/0.7 ms

1

通常,ICMP数据包的传输速度较慢(如果有区别的话),因为大多数网络都会降低它们的优先级,尤其是ping数据包。通常,如果您从ICMP和TCP响应中看到了如此不同的结果,则问题可能是服务器过载,或者是防火墙上特定的TCP整形。

你应该调查traceroute -P tcptcptraceroutelft当然telnet


定义“较慢”。你的答案是错误的。取消优先级的数据包不会明显地“减慢”速度,它们更有可能被丢弃。这会导致流量显示速度变慢,因为对于TCP,例如,它将导致更多的重传,但是单个数据包不会变慢,或者只有一定的速度变慢。注意,这只会影响慢速链接,例如DSL端点。在互联网本身上,除非有人被迫进行过滤,否则任何人都无法进行过滤。
niXar,2009年

1
当然,说“慢”是懒惰的,“更可能被丢弃”是正确的。在网络上也并非不常见,只需在网络mtr的各个位置设置一些,您就会注意到,各种网络经常在各个点传送ICMP数据包时遇到问题。
亚历克斯·J

1

您可以使用某些QoS应用程序来测量这种网络参数。例如:

NetPerf(www.netperf.org/netperf/):Netperf是一个基准,可用于衡量许多不同类型的网络的性能。它提供了无与伦比的吞吐量和端到端延迟的测试。netperf当前可测量的环境包括:

* TCP and UDP via BSD Sockets for both IPv4 and IPv6
* DLPI
* Unix Domain Sockets
* SCTP for both IPv4 and IPv6 

要么

IPerf(sourceforge.net/projects/iperf)Iperf由NLANR / DAST开发,是测量最大TCP和UDP带宽性能的现代替代方案。Iperf允许调整各种参数和UDP特性。Iperf报告带宽,延迟抖动,数据报丢失。


1

查看hping,然后看看bing


hping很好,但是需要winpcap。似乎pcap是Windows可以使用此类工具的唯一方法?
grigoryvp

uck ...不知道。这在HP硬件上造成了麻烦-HP接口组合软件似乎使用了一些winpcap库。-我在尝试安装Wireshark时发现了这一点。
马修

1

TCP无法“容忍” 50%的数据包丢失。由于一个简单的原因,它只会停止运行:它会根据数据包的丢失来调整其传输速度。当数据包丢失时,它们被认为表示拥塞。如果不管流量如何都丢弃50%的数据包(例如,使用随机丢弃防火墙规则),则带宽可用性将不断下降。

此外,我怀疑ISP会影响ICMP和TCP。有些人可能会这样做,因为那里确实有一些愚蠢的人,但是这样做没有多大意义。大多数将影响整个连接,或者由于拥塞而“自我塑造”。在这两种情况下,数据包通常都是随机丢弃的。

话虽如此,您可以使用TCP进行ping操作,但是有一些警告。第一种是仅在TCP连接中发送初始数据包,这将从具有开放端口的服务器中引起响应,但将其视为连接尝试。理想情况下,您可以使用“ echo”服务(TCP端口7)...但实际上您不能使用,因为默认情况下,该服务现在在所有地方都已禁用。无论如何,如果您可以让某人在要测试的计算机上为您启用该功能,则程序可以使用该功能来检查TCP连接内数据包的往返时间。

话虽如此,您可能已经在计算机上安装了“ tracepath”命令;它类似于traceroute,但不使用TCP或ICMP,而是使用UDP。对于TCP,那里有各种实用程序,您可以尝试hping


0

除了ping之外,您可以使用'netstat'

选项:1.netstat -antp 2.netstat -anup

-a =全部,-n =套接字本地端的地址和端口号,-t = tcp,-p =程序

-u = udp。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.