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?
sumber
Jawaban:
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 caritcp traceroute
- dan mulai dari sana.Berikut adalah beberapa alat yang menyenangkan untuk dicoba saat Anda ...
Inilah contoh dengan
lft
...sumber
Netcat Power Tools menjelaskan cara melakukan TCP Ping dengan netcat. Secara khusus, setiap paket ACK yang tidak diminta harus mengembalikan RST.
sumber
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).
sumber
Untuk Windows Anda dapat menggunakan sesuatu seperti tcping:
http://www.elifulkerson.com/projects/tcping.php
Dan untuk Linux, utilitas terbaik adalah, sudah disebutkan
hping
,.sumber
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
,lft
dan tentu sajatelnet
.sumber
mtr
ke berbagai lokasi di internet dan Anda akan melihat cukup sering berbagai jaringan memiliki masalah pengiriman paket ICMP di berbagai titik.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:
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
lihat hping dan lihat bing
sumber
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 .
sumber
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.
sumber