Sinopsis (Synopsis)
ping [-AaCDdfnoQqRrv] [-b boundif] [-c count] [-G sweepmaxsize] [-g sweepminsize]
[-h sweepincrsize] [-i wait] [-k trafficclass] [-K netservicetype] [-l preload]
[-M mask | time] [-m ttl] [-P policy] [-p pattern] [-S src_addr] [-s packetsize]
[-t timeout] [-W waittime] [-z tos] [--apple-connect] [--apple-time] [--apple-print-id]
[--apple-print-req] host
ping [-AaDdfLnoQqRrv] [-b boundif] [-c count] [-I iface] [-i wait] [-k trafficclass]
[-K netservicetype] [-l preload] [-M mask | time] [-m ttl] [-P policy] [-p pattern]
[-S src_addr] [-s packetsize] [-T ttl] [-t timeout] [-W waittime] [-z tos]
[--apple-connect] [--apple-time] [--apple-print-id] [--apple-print-req] mcast-group
Açıklama (Description)
ping yardımcı programı, bir konaktan veya ağ geçidinden (gateway) bir ICMP ECHO_RESPONSE almak amacıyla ICMP protokolünün zorunlu ECHO_REQUEST veri birimini (datagram) kullanır. ECHO_REQUEST veri birimleri (“ping’ler”), bir IP ve ICMP üstbilgisine (header) sahiptir, bunu bir “struct timeval” ve ardından paketi doldurmak için kullanılan rastgele sayıda dolgu (pad) baytı takip eder. Seçenekler aşağıdaki gibidir:
-A: İşitilebilir. Bir sonraki paket iletilmeden önce hiçbir paket alınmadığında bir zil (ASCII 0x07) karakteri çıktısı verir. İletimler arasındaki aralıktan daha uzun olan gidiş-dönüş sürelerini (round-trip times) karşılamak için, sonraki eksik paketler yalnızca alınmayan maksimum paket sayısı arttığında bir zil sesine neden olur.-a: İşitilebilir. Herhangi bir paket alındığında çıktıya bir zil (ASCII 0x07) karakteri dahil eder. Diğer biçim seçenekleri mevcutsa bu seçenek yoksayılır.
-b boundif Gönderim için soketi boundif arayüzüne bağlar. Bu seçenek bir Apple eklentisidir.
-C: Soketin hücresel ağ arayüzünü kullanmasını engeller. Bu seçenek bir Apple eklentisidir.
-c count count sayıda ECHO_RESPONSE paketi gönderdikten (ve aldıktan) sonra durur. Bu seçenek belirtilmezse, ping kesintiye uğrayana kadar çalışacaktır. Bu seçenek ping taramaları (ping sweeps) ile birlikte belirtilirse, her tarama count sayıda paketten oluşacaktır.
-D: Parçalamama (Don't Fragment) bitini ayarlar.-d: Kullanılan sokette SO_DEBUG seçeneğini ayarlar.-f: Sel pingi (Flood ping). Paketleri geri geldikleri hızda veya saniyede yüz kez (hangisi daha fazla ise) gönderir. Gönderilen her ECHO_REQUEST için bir nokta “.” yazdırılırken, alınan her ECHO_REPLY için bir geri silme (backspace) yazdırılır. Bu, kaç paketin bırakıldığını (drop) hızlı bir şekilde gösterir. Yalnızca süper kullanıcı bu seçeneği kullanabilir. Bu işlem bir ağ üzerinde çok ağır bir yük oluşturabilir ve dikkatli kullanılmalıdır.
-G sweepmaxsize Taramalı pingler (sweeping pings) gönderirken maksimum ICMP yükü (payload) boyutunu belirtir. Bu seçenek ping taramaları için gereklidir.
-g sweepminsize Taramalı pingler gönderirken başlanacak ICMP yükü boyutunu belirtir. Varsayılan değer 0'dır.
-h sweepincrsize Taramalı pingler gönderirken her taramadan sonra ICMP yükü boyutunun artırılacağı bayt sayısını belirtir. Varsayılan değer 1'dir.
-I iface Verilen arayüz adresiyle çoklu gönderim (multicast) paketlerini kaynaklandırır. Bu bayrak yalnızca ping hedefi bir çoklu gönderim adresi olduğunda geçerlidir.
-i wait Her paketin gönderilmesi arasında wait saniye bekler. Varsayılan değer, her paket arasında bir saniye beklemektir. Bekleme süresi ondalıklı olabilir, ancak yalnızca süper kullanıcı 0.002 saniyeden daha küçük değerler belirtebilir. Bu seçenek -f seçeneği ile uyumsuzdur.
-k trafficclass ICMP paketlerini göndermek için kullanılacak trafik sınıfını belirtir. Desteklenen trafik sınıfları BK_SYS, BK, BE, RD, OAM, AV, RV, VI, VO ve CTL’dir. Varsayılan olarak ping, kontrol trafik sınıfını (CTL) kullanır. Bu seçenek bir Apple eklentisidir.
-K netservicetype ICMP paketlerini göndermek için kullanılacak ağ servis türünü belirtir. Desteklenen ağ servis türleri BK_SYS, BK, BE, RV, AV, RD, OAM, VI, SIG ve VO’dur. Bunun varsayılan trafik sınıfını geçersiz kıldığını unutmayın (her ikisini de kullanmak için -K seçeneğinden sonra -k seçeneği hala belirtilebilir). Bu seçenek bir Apple eklentisidir.
-L: Çoklu gönderim paketlerinin geri döngüsünü (loopback) bastırır. Bu bayrak yalnızca ping hedefi bir çoklu gönderim adresi olduğunda geçerlidir.
-l preload Eğer preload belirtilirse, ping normal çalışma moduna geçmeden önce olabildiğince hızlı bir şekilde o sayıda paketi gönderir. Yalnızca süper kullanıcı bu seçeneği kullanabilir.
-M mask | time ICMP_ECHO yerine ICMP_MASKREQ veya ICMP_TSTAMP kullanır. mask için, uzak makinenin ağ maskesini yazdırır. ICMP_MASKREPLY özelliğini etkinleştirmek için net.inet.icmp.maskrepl MIB değişkenini ayarlayın. time için, çıkış, alım ve iletim zaman damgalarını (timestamps) yazdırır.
-m ttl: Giden paketler için IP Yaşam Süresini (Time To Live - TTL) ayarlar. Belirtilmezse, çekirdek net.inet.ip.ttl MIB değişkeninin değerini kullanır.-n: Yalnızca sayısal çıktı. Konak adresleri için sembolik ad araması yapılmayacaktır.-o: Bir yanıt paketi aldıktan sonra başarıyla çıkar.
-P policy policy, ping oturumu için IPsec politikasını belirtir. Ayrıntılar için lütfen ipsec(4) ve ipsec_set_policy(3) sayfalarına bakın.
-p pattern Gönderdiğiniz paketi doldurmak için 16 bayta kadar dolgu (“pad”) belirtebilirsiniz. Bu, bir ağdaki veriye bağlı sorunları teşhis etmek için yararlıdır. Örneğin, “-p ff” gönderilen paketin tamamen 1'lerle doldurulmasına neden olur.
-Q: Nispeten sessiz çıktı. Sorgu mesajlarımıza yanıt olarak gelen ICMP hata mesajlarını görüntülemez. Başlangıçta bu tür hataları görüntülemek için -v bayrağı gerekiyordu, ancak -v tüm ICMP hata mesajlarını görüntüler. Meşgul bir makinede bu çıktı çok fazla olabilir. -Q bayrağı olmadığında ping, kendi ECHO_REQUEST mesajlarının neden olduğu tüm ICMP hata mesajlarını yazdırır.-q: Sessiz çıktı. Başlangıçta ve bitişteki özet satırları dışında hiçbir şey görüntülenmez.-R: Rotayı kaydet (Record route). ECHO_REQUEST paketine RECORD_ROUTE seçeneğini dahil eder ve dönen paketlerde rota arabelleğini görüntüler. Bu seçenek kullanımdan kaldırılmıştır ve artık işlevsizdir (no-op).-r: Normal yönlendirme tablolarını baypas eder ve doğrudan bağlı bir ağ üzerindeki bir konağa gönderir. Konak doğrudan bağlı bir ağ üzerinde değilse, bir hata döndürülür. Bu seçenek, üzerinde rota bulunmayan bir arayüz aracılığıyla yerel bir konağa ping göndermek için kullanılabilir.
-S src_addr Giden paketlerde kaynak adres olarak belirtilen IP adresini kullanır. Birden fazla IP adresine sahip konaklarda bu seçenek, kaynak adresin, araştırma paketinin gönderildiği arayüzün IP adresinden başka bir şey olmaya zorlanması için kullanılabilir. IP adresi bu makinenin arayüz adreslerinden biri değilse, bir hata döndürülür ve hiçbir şey gönderilmez.
-s packetsize Gönderilecek veri baytlarının sayısını belirtir. Varsayılan değer 56'dır; bu, 8 baytlık ICMP üstbilgi verisiyle birleştirildiğinde 64 ICMP veri baytına karşılık gelir. Bu seçenek ping taramalarıyla kullanılamaz.
-T ttl: Çoklu gönderilen paketler için IP Yaşam Süresini (Time To Live - TTL) ayarlar. Bu bayrak yalnızca ping hedefi bir çoklu gönderim adresi olduğunda geçerlidir.
-t timeout Kaç paketin alındığına bakılmaksızın ping programından çıkılmadan önce saniye cinsinden bir zaman aşımı süresi belirtir.
-v: Ayrıntılı çıktı. ECHO_RESPONSE dışındaki alınan ICMP paketleri listelenir.
-W waittime Gönderilen her paket için bir yanıt beklemek üzere milisaniye cinsinden süre. Bir yanıt daha geç gelirse, paket yanıtlanmış olarak yazdırılmaz, ancak istatistikler hesaplanırken yanıtlanmış olarak kabul edilir.
-z tos: Belirtilen hizmet türünü (Type of Service - TOS) kullanır.
--apple-connect Soketi hedef adrese bağlar. Bu seçenek bir Apple eklentisidir.
--apple-time Bir paketin alındığı zamanı yazdırır. Bu seçenek bir Apple eklentisidir.
--apple-print-id ICMP echo kimliğini (ID) yazdırır. Bu seçenek bir Apple eklentisidir.
--apple-print-req ICMP echo isteğini yazdırır. Bu seçenek bir Apple eklentisidir.
ping hata yalıtımı amacıyla kullanıldığında, öncelikle yerel ağ arayüzünün açık ve çalışır durumda olduğunu doğrulamak için yerel konak üzerinde çalıştırılmalıdır. Ardından, daha uzaktaki konaklar ve ağ geçitleri “ping’lenmelidir”. Gidiş-dönüş süreleri ve paket kaybı istatistikleri hesaplanır. Çift (mükerrer) paketler alınırsa, bu paketlerin gidiş-dönüş süreleri gidiş-dönüş süresi istatistiklerini hesaplarken kullanılsa da, paket kaybı hesaplamasına dahil edilmezler. Belirtilen sayıda paket gönderildiğinde (ve alındığında) veya program bir SIGINT ile sonlandırıldığında, gönderilen ve alınan paket sayısını ve gidiş-dönüş sürelerinin minimum, ortalama, maksimum ve standart sapmasını gösteren kısa bir özet görüntülenir.
Eğer ping bir SIGINFO sinyali alırsa (stty(1) için status argümanına bakın), o ana kadar gönderilen ve alınan paketlerin mevcut sayısı ile gidiş-dönüş sürelerinin minimum, ortalama ve maksimum değerleri standart hata çıktısına yazılacaktır.
Bu program ağ testi, ölçümü ve yönetimi amacıyla kullanılmak üzere tasarlanmıştır. Ağa getirebileceği yük nedeniyle, normal işlemler sırasında veya otomatik betiklerde ping kullanılması önerilmez.
ICMP Paket Ayrıntıları (Icmp Packet Details)
Seçeneksiz bir IP üstbilgisi 20 bayttır. Bir ICMP ECHO_REQUEST paketi, 8 baytlık ek bir ICMP üstbilgisi ve ardından rastgele miktarda veri içerir. Bir packetsize verildiğinde, bu ek veri parçasının boyutunu belirtir (varsayılan değer 56'dır). Dolayısıyla, ICMP ECHO_REPLY tipindeki bir IP paketi içinde alınan veri miktarı her zaman istenen veri alanından (ICMP üstbilgisi) 8 bayt daha fazla olacaktır.
Veri alanı en az sekiz bayt boyutundaysa ping, gidiş-dönüş sürelerinin hesaplanmasında kullandığı bir zaman damgasını dahil etmek için bu alanın ilk sekiz baytını kullanır. Sekiz bayttan daha az dolgu belirtilirse, gidiş-dönüş süreleri verilmez.
Mükerrer Ve Hasarlı Paketler (Duplicate And Damaged Packets)
ping yardımcı programı mükerrer (çift) ve hasarlı paketleri rapor edecektir. Tekli gönderim (unicast) adresine ping atarken mükerrer paketler asla oluşmamalıdır ve bunlar uygunsuz bağlantı düzeyi yeniden iletimlerinden kaynaklanıyor gibi görünmektedir. Mükerrer paketler birçok durumda ortaya çıkabilir ve nadiren iyiye işarettir, ancak düşük düzeyde mükerrer paketlerin varlığı her zaman alarm nedeni olmayabilir. Yayın (broadcast) veya çoklu gönderim (multicast) adresine ping atarken mükerrer paketler beklenir, çünkü bunlar gerçekte mükerrer paketler değil, aynı isteğe farklı konaklardan gelen yanıtlardır.
Hasarlı paketler açıkça ciddi bir alarm nedenidir ve genellikle ping paketinin yolunda (ağda veya konaklarda) bir yerde bozuk bir donanıma işaret eder.
FARKLI VERİ ŞABLONLARINI DENEMEK Ağ (veya ağlar arası) katmanı, paketleri içerdiği veri kısmına bağlı olarak asla farklı şekilde ele almamalıdır. Ne yazık ki, veriye bağlı sorunların ağlara sızdığı ve uzun süreler boyunca tespit edilemediği bilinmektedir. Birçok durumda sorun oluşturacak özel şablon, tamamen 1'ler veya tamamen 0'lar gibi yeterli “geçiş” içermeyen bir şey veya neredeyse tamamen 0'lar gibi sınırdaki bir şablondur. Komut satırında (örneğin) tamamen 0'lardan oluşan bir veri şablonu belirtmek her zaman yeterli olmayabilir; çünkü asıl önemli olan şablon veri bağlantısı düzeyindedir ve yazdığınız şey ile denetleyicilerin ilettiği şey arasındaki ilişki karmaşık olabilir.
Bu, veriye bağlı bir sorununuz varsa, bunu bulmak için muhtemelen çok fazla test yapmanız gerekeceği anlamına gelir. Şanslıysanız, ağınız üzerinden gönderilemeyen veya aktarılması benzer uzunluktaki diğer dosyalardan çok daha uzun süren bir dosya bulabilirsiniz. Daha sonra bu dosyayı, ping'in -p seçeneğini kullanarak test edebileceğiniz tekrarlanan şablonlar için inceleyebilirsiniz.
TTL Ayrıntıları (Ttl Details)
Bir IP paketinin TTL değeri, paketin atılmadan önce geçebileceği maksimum IP yönlendiricisi sayısını temsil eder. Mevcut uygulamada, İnternet'teki her yönlendiricinin TTL alanını tam olarak bir azaltmasını bekleyebilirsiniz.
TCP/IP şartnamesi, IP paketleri için TTL alanının 64 olarak ayarlanmasını önerir, ancak many sistemler daha küçük değerler kullanır (4.3BSD 30, 4.2BSD 15 kullanır).
Bu alanın mümkün olan maksimum değeri 255'tir ve çoğu UNIX sistemi, ICMP ECHO_REQUEST paketlerinin TTL alanını 255 olarak ayarlar. Bazı konaklara “ping” atabilmenizin ancak telnet(1) veya ftp(1) ile onlara ulaşamamanızın nedeni budur.
Normal çalışmada ping, aldığı paketten gelen ttl değerini yazdırır. Uzak bir sistem bir ping paketi aldığında, yanıtındaki TTL alanıyla üç şeyden birini yapabilir:
• Değiştirmemek; 4.3BSD-Tahoe sürümünden önceki BSD sistemlerinin yaptığı buydu. Bu durumda, alınan paketteki TTL değeri, gidiş-dönüş yolundaki yönlendirici sayısının 255'ten çıkarılmasıyla elde edilen değer olacaktır.
• 255 olarak ayarlamak; mevcut BSD sistemlerinin yaptığı buydu. Bu durumda, alınan paketteki TTL değeri, uzak sistemden ping atan konağa giden yoldaki yönlendirici sayısının 255'ten çıkarılmasıyla elde edilen değer olacaktır.
• Başka bir değere ayarlamak. Bazı makineler, ICMP paketleri için TCP paketleri için kullandıkları değeri (örneğin 30 veya 60) kullanır. Diğerleri tamamen rastgele değerler kullanabilir.
Çıkış Durumu (Exit Status)
ping yardımcı programı aşağıdaki değerlerden biriyle çıkar:
0 Belirtilen konaktan en az bir yanıt duyuldu.
2 İletim başarılı oldu ancak hiçbir yanıt alınmadı.
diğer herhangi bir değer Bir hata oluştu. Bu değerler <sysexits.h> içinde tanımlanmıştır.
Ayrıca Bakınız (See Also)
netstat(1), ifconfig(8), traceroute(8), ping6(8)
Tarihçe (History)
ping yardımcı programı 4.3BSD ile sunulmuştur.
Yazarlar (Authors)
Orijinal ping yardımcı programı, US Army Ballistics Research Laboratory bünyesindeyken Mike Muuss tarafından yazılmıştır.
Hatalar (Bugs)
Sel pingi (flood pinging) genel olarak önerilmez ve yayın adresine sel pingi yapılması yalnızca çok kontrollü koşullar altında gerçekleştirilmelidir.
-v seçeneği meşgul konaklarda pek bir işe yaramaz.
macOS 26.4 29 Mart, 2013 macOS 26.4