alternatif ping untuk tcp?

12

Ini adalah tugas umum untuk memeriksa 'kualitas' jaringan - latensi, jumlah paket yang dijatuhkan, dll. Tetapi 'ping' memiliki sejumlah kelemahan: - Menggunakan ICMP. Banyak ISP memiliki pembentuk berbeda untuk ICMP dan lalu lintas TCP, jadi 'ping' akan menunjukkan latensi 10 ms, tetapi koneksi TCP akan mengalami 1000 ms +. - Ini mengirimkan jumlah paket yang sangat kecil. Secara default, satu paket setiap detik. Karena protokol TCP mentolerir paket yang hilang (dapat beroperasi dengan sangat baik adalah setengah dari paket yang hilang - itu normal), itu sama sekali tidak jelas apakah ping "30% packet loss" membunuh koneksi atau apakah itu benar-benar normal.

Jadi, apakah ada alternatif untuk ping yang menggunakan koneksi TCP dan bukan ICMP dan memeriksa kualitas koneksi internet?

grigoryvp
sumber
Ping loss of 30% adalah kematian untuk koneksi lain antara alamat-alamat itu. % 10 hampir mati. % 1 mungkin batas sebelum Anda mulai melihat masalah serius.
Jonesome Reinstate Monica

Jawaban:

14

Terlepas dari kenyataan bahwa TCP dapat mentolerir masalah packet-loss / pemesanan paket, kehilangan ping 30% masih cukup signifikan jika "populasi" cukup besar - yaitu, lebih dari mengatakan 100 ping.

Tetapi untuk menjawab pertanyaan, Anda dapat melihat nmap. Saya yakin contoh akan segera datang :)

Lebih penting lagi, Anda tidak hanya ingin pulang pergi, Anda benar-benar ingin melihat kinerja dari mesin Anda ke server dan kembali pada setiap (mungkin) hop.

Anda dapat melakukan ini dengan traceroute- namun versi yang paling umum ditemukan ini dilakukan menggunakan ICMP atau UDP, tetapi cari tcp traceroute- dan mulai dari sana.

Berikut adalah beberapa alat yang menyenangkan untuk dicoba saat Anda ...

Inilah contoh dengan 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
Xerxes
sumber
Saya sudah berusaha menemukan paketto selama berjam-jam, tetapi saya benar-benar lupa nama dan sebagian besar konteksnya. Terima kasih untuk tautannya!
clee
4

Netcat Power Tools menjelaskan cara melakukan TCP Ping dengan netcat. Secara khusus, setiap paket ACK yang tidak diminta harus mengembalikan RST.

Shapr
sumber
3

Saya pribadi penggemar mtr ( http://www.bitwizard.nl/mtr/ ), mtr adalah klon traceroute berbasis ncurses yang dapat bekerja menggunakan icmp dan udp. Ini menunjukkan Anda titik-titik lemah dalam tautan Anda ke host tertentu dan dengan cara itu tidak mengganggu.

Ketika benar-benar datang ke beberapa tes beban saya akan pergi dengan iperf (yang merupakan klien / server).

amo-ej1
sumber
juga, ada varian GTK dari MTR untuk siapa pun yang tertarik
Kent Fredric
2

Untuk Windows Anda dapat menggunakan sesuatu seperti tcping:
http://www.elifulkerson.com/projects/tcping.php

Dan untuk Linux, utilitas terbaik adalah, sudah disebutkan 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
Mattias Ahnberg
sumber
1

Paket ICMP umumnya dikirim lebih lambat (jika ada perbedaan sama sekali), karena sebagian besar jaringan kehilangan prioritasnya, terutama paket ping. Secara umum, jika Anda melihat hasil yang berbeda dari tanggapan ICMP dan TCP, masalahnya adalah server yang kelebihan beban atau pembentukan TCP tertentu pada firewall di sepanjang jalan.

Anda harus menyelidiki traceroute -P tcp, tcptraceroute, lftdan tentu saja telnet.

Alex J
sumber
Tentukan "lebih lambat." Jawaban Anda salah. Paket-paket yang diprioritaskan tidak secara nyata "melambat," mereka hanya cenderung jatuh. Ini menghasilkan aliran yang muncul lebih lambat, karena untuk TCP misalnya, ia menghasilkan lebih banyak transmisi ulang, tetapi satu paket tidak melambat, atau jika ya, hanya sedikit saja. Perhatikan bahwa ini hanya akan mempengaruhi tautan lambat, misalnya titik akhir DSL; di internet itu sendiri, ada terlalu banyak yang terjadi bagi siapa pun untuk repot menyaring paket seperti itu, kecuali jika terpaksa.
niXar
1
Tentu, mengatakan "lebih lambat" adalah malas, "lebih cenderung dijatuhkan" adalah akurat. Ini tidak biasa di internet baik, hanya mengatur beberapa mtrke berbagai lokasi di internet dan Anda akan melihat cukup sering berbagai jaringan memiliki masalah pengiriman paket ICMP di berbagai titik.
Alex J
1

Anda bisa menggunakan beberapa aplikasi QoS untuk mengukur parameter jaringan semacam ini. Sebagai contoh:

NetPerf ( www.netperf.org/netperf/ ): Netperf adalah tolok ukur yang dapat digunakan untuk mengukur kinerja berbagai jenis jaringan. Ini memberikan tes untuk throughput unidirecitonal, dan latensi ujung ke ujung. Lingkungan yang saat ini dapat diukur oleh netperf meliputi:

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

ATAU

IPerf (sourceforge.net/projects/iperf) Iperf dikembangkan oleh NLANR / DAST sebagai alternatif modern untuk mengukur kinerja bandwidth TCP dan UDP maksimum. Iperf memungkinkan penyetelan berbagai parameter dan karakteristik UDP. Iperf melaporkan bandwidth, menunda jitter, kehilangan datagram.


sumber
1

lihat hping dan lihat bing

Matius
sumber
hping itu bagus, tetapi itu membutuhkan winpcap. Sepertinya pcap adalah satu-satunya cara windows dapat menggunakan alat seperti itu?
grigoryvp
Yuck ... Tidak tahu itu. Itu menceburkannya pada perangkat keras HP - perangkat lunak teaming antarmuka HP tampaknya menggunakan beberapa perpustakaan winpcap. - Saya menemukan ini ketika mencoba menginstal wireshark.
Matius
1

TCP tidak dapat "mentolerir" kehilangan paket 50%. Ini hanya akan terhenti, karena alasan sederhana: ia menyesuaikan kecepatan transmisi berdasarkan hilangnya paket. Ketika paket hilang, mereka dipahami untuk menunjukkan kemacetan. Jika Anda menjatuhkan 50% dari paket (katakanlah, dengan aturan firewall drop acak ) terlepas dari lalu lintas, itu akan melihat ketersediaan bandwidth yang semakin menurun.

Selanjutnya saya ragu ISP membentuk ICMP vs TCP. Beberapa mungkin melakukannya, karena ada beberapa orang yang benar-benar bodoh di luar sana, tetapi tidak masuk akal untuk melakukannya. Sebagian besar akan membentuk seluruh koneksi, atau itu akan "membentuk dirinya sendiri" karena kemacetan. Dalam kedua kasus paket biasanya dijatuhkan secara acak.

Yang sedang berkata, Anda dapat melakukan ping dengan TCP, tetapi ada beberapa peringatan. Yang pertama adalah hanya mengirim paket awal dalam koneksi TCP, yang akan memperoleh respons dari server dengan port terbuka, tetapi akan dilihat sebagai upaya koneksi. Idealnya Anda dapat menggunakan layanan "echo" (TCP port 7) ... tetapi sebenarnya Anda tidak bisa karena sekarang dinonaktifkan secara default di mana-mana. Bagaimanapun, jika Anda dapat membuat seseorang mengaktifkannya untuk Anda pada mesin yang ingin Anda uji, sebuah program dapat menggunakannya untuk memeriksa waktu bulat untuk paket-paket di dalam koneksi TCP.

Yang sedang berkata, Anda mungkin memiliki perintah "tracepath" diinstal pada mesin Anda; ini mirip dengan traceroute tetapi tidak menggunakan TCP atau ICMP, tetapi UDP. Untuk TCP ada berbagai utilitas di luar sana, Anda dapat mencoba memukul .

niXar
sumber
0

Alternatif untuk ping, Anda dapat menggunakan 'netstat'

Opsi: 1.netstat -antp 2.netstat -anup

-a = semua, -n = Alamat dan nomor port dari ujung lokal soket, -t = tcp, -p = program

-u = udp.

Ulat
sumber