Ping

Од Википедија — слободната енциклопедија

Пинг е компјутерска мрежна административна алатка, се користи за тестирање на достапноста на домаќин (host) на мрежен интернет протокол (IP) и да се измери round-trip време за пораки испратени од појдовниот домаќин (host) до друг краен компјутер. Името доаѓа од активната ехо-сонар терминологија.

Пинг работи преку испраќање на ехо пакет за барање на интернет протоколот за контрола на порака (ICMP) до одреден домаќин (host) и чека одговор од ICMP. Во овој процес се мери времето од самото праќање на сигналот до неговото примање (round-trip time) и се евидентира секоја загуба на пакет. Резултатите од тестот се печатат во форма на статистичко резиме на добиените одзивни пакети, вклучувајќи минимум, максимум и средно round-trip време, а понекогаш и стандардното отстапување на средното време.

Пингање може да се изврши со користење на различни опции, во зависност од имплементацијата која овозможува посебни оперативни режими, како што е одредување на големина на пакет се користи сонда, автоматски се повторува операцијата за испраќање на одреден број на сонди, временски печат опции, или за вршење на пинг поплава. Поплава од пингање може да биде злоупотребена како едноставна форма на негирање на сервисни напади, во која хакерот го преплавува корисникот со ICMP ехо пакет за барање.

Историја[уреди | уреди извор]

Пингањето е авторизирано од Mike Muuss во декември 1983 како алатка за отстранување на проблеми во IP мрежата. Името е добиено по звукот на имулсите од активниот хидролокатор, кој исто така вклучува испраќање на сигнал и мерење на времето сè додека не се прими одзив. Корисноста на пинг во помагањето за поставување на дијагноза на проблеми во интернет конективноста беше намалена во 2003 година, кога голем број семрежни услужници почнаа да филтрираат ICMP Type 8 (ICMP Echo Request) пораки во нивните мрежни граници. Ова делумно се должи на зголемување на употребата на пинг со цел разузнавање, на пример преку интернет црви, како што е Welchia кој го преплавува интернетот со пинг барања со цел да се лоцираат нови компјутери, за да бидат инфицирани. Ова предизвикува проблеми и за насочувачите. Сепак пинг скенирањето е сè уште дел од мрежно скенирачките алатки како што е nmap, така што може да даде основни податоци за постоењето на оддалечена машина. Иако RFC 1122 пропишува дека било кој домаќин мора да прифати ехо-барање и да даде ехо-одговор назад, тоа се одликува како безбедносен ризик.

ICMP пакет[уреди | уреди извор]

ICMP packet
  Bit 0 - 7 Bit 8 - 15 Bit 16 - 31
IP Header
(20 bytes)
Version/IHL Type of service Length
Identification flags and offset
Time To Live (TTL) Protocol Контролен збир
Source IP address
Destination IP address
ICMP Payload
(8+ bytes)
Type of message Code Контролен збир
Quench
Data (optional)

Генерички состав на ICMP пакет

  • Заглавје (со сино)
    • Протокол поставен на 1 и тип на сервис поставен на 0
  • Носивост (со црвено)
    • Вид на ICMP порака (8 бита)
    • Код (8 бита)
    • Проверка (16 бита), пресметано со дел од ICMP пакет (насловот не се користи). Тоа е 16-битен единечен комплемент на единечниот комплементен збир на ICMP порака почнувајќи од полето Тип.
    • ICMP “Quench” (32 бита) полето, кое во овој случај (ICMP ехо-барање и одговор) ќе биде составен од идентификатор (16 бита) и редниот број (16 бита).
    • Податоците сместени за различни видови одговори (може да бидат произволна должина, лево до имплементационите детали. Како и да е мора да биде помало од максималното MTU на мрежата.
  • Пренос на податоци

Пример за Пинг тест[уреди | уреди извор]

Следново е пример за пингање на en.wikipedia.org под оперативен систем Linux:

admin@localhost# ping en.wikipedia.org
PING rr.pmtpa.wikimedia.org (66.230.200.100) 56(84) bytes of data.
64 bytes from rr.pmtpa.wikimedia.org (66.230.200.100): icmp_seq=1 ttl=52 time=87.7 ms
64 bytes from rr.pmtpa.wikimedia.org (66.230.200.100): icmp_seq=2 ttl=52 time=95.6 ms
64 bytes from rr.pmtpa.wikimedia.org (66.230.200.100): icmp_seq=3 ttl=52 time=85.4 ms
64 bytes from rr.pmtpa.wikimedia.org (66.230.200.100): icmp_seq=4 ttl=52 time=95.8 ms
64 bytes from rr.pmtpa.wikimedia.org (66.230.200.100): icmp_seq=5 ttl=52 time=87.0 ms
64 bytes from rr.pmtpa.wikimedia.org (66.230.200.100): icmp_seq=6 ttl=52 time=97.6 ms 
--- rr.pmtpa.wikimedia.org ping statistics ---
10 packets transmitted, 10 received, 0% packet loss, time 8998ms
rtt min/avg/max/mdev = 78.162/89.213/97.695/6.836 ms

Излезот ги покажува резултатите од 10 пингови на 66.230.200.100 со резултатите сумирани на крајот. Програмата се прекинува со притискање на Ctrl-C.

  • Најкратко целокупно време е 78,162 милисекунди
  • Просечно целокупно време е 89,213 милисекунди
  • Максимално целокупно време е 97,695 милисекунди
  • Стандардното отстапување на целокупното време е 6,836 милисекунди

Формат на порака[уреди | уреди извор]

Ехо барање[уреди | уреди извор]

Ехо барање е ICMP порака чии податоци се очекува да бидат примени назад во ехо одговор (пинг). Домаќинот мора да одговори на сите ехо барања со ехо одговори, кои ги содржат истите податоци добиени во пораката за барање.

00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
Type = 8 Code = 0 Контрола на заглавието
Identifier Sequence Number
Data :::
  • Ознаката и редниот број се користат од страна на клиентот за да ги спореди одговорот со барањето. Во пракса, повеќето Linux системи користат единствен идентификатор за секој пинг процес, редниот број е растечки број во рамките на тој процес. Windows користи фиксен идентификатор, кој варира во различните верзии на Windows, и реден број кој се ресетира на секое вклучување на компјутерот.
  • Податоците примени од ехо барањето мора да бидат целосно вклучени во ехо одговорот.

Ехо одговор[уреди | уреди извор]

Ехо одговор е ICMP порака генерирана за одговор на ехо барањето, и е задолжителна за сите домаќини и насочувачи.

00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
Type = 0 Code = 0 Контрола на заглавието
Identifier Sequence Number
Data :::
  • Видот и кодот мора да бидат поставени на 0.
  • Ознаката и редниот број може да се користат од страна на клиентот за да се утврди кои ехо барања е поврзани со ехо одговори.
  • Податоците добиени во ехо барањето мара да бидат целосно вклучени во ехо одговорот.

Други одговори[уреди | уреди извор]

Во случај на грешка, крајниот домаќин (host) или посредувачкиот насочувач ќе испрати назад грешка во ICMP пораката, односно недостапен домаќин или надминат TTL во транспортот. Во дополнение, овие пораки ги содржат првите 8 бајти од оригиналната порака (во овој случај заглавје од ICMP ехо барањето, вклучувајќи quench вредност).

Носивост[уреди | уреди извор]

Носивоста на пакетот обично се полни со ASCII карактери, така што излезот од tcpdump покажува:

16:24:47.966461 IP (tos 0x0, ttl 128, id 15103, offset 0, flags [none],
proto: ICMP (1), length: 60) 192.168.146.22 > 192.168.144.5: ICMP echo request,
id 1, seq 38, length 40
       0x0000:  4500 003c 3aff 0000 8001 5c55 c0a8 9216  E..<:.....\U....
       0x0010:  c0a8 9005 0800 4d35 0001 0026 6162 6364  ......M5...&abcd
       0x0020:  6566 6768 696a 6b6c 6d6e 6f70 7172 7374  efghijklmnopqrst
       0x0030:  7576 7761 6263 6465 6667 6869            uvwabcdefghi

Носивоста содржи временска ознака за кога е испратена пораката, како и редоследен број. Ова му овозможува на пингот да го пресмета round-trip времето во неограничен начин без потреба да памти кога пакетите биле испратени. Во случај кога нема никаков одговор а исто така нема никаква грешка, повеќето имплементации на пинг не покажуваат ништо, или повремено прикажуваат известувања за изминато време.

Други видови на пингање[уреди | уреди извор]

Терминот пинг најчесто се користи за да се опише пренос на делотворна безсодржинска порака, која се користи за најразлични цели. На пример пинг може да биде испратен со користење на User Datagram Protocol (UDP) до уред сместен зад network address translator (NAT) за да се зачува врзувањето на портата на NAT од истекување на времето. Други примери се кратки и празни инстант пораки, електронски пошти, звучни пораки, или пак нотификација за пропуштен повик за да се открие достапноста.

Во компјутерските игри[уреди | уреди извор]

Во различните мрежни игри, опслужувачот го бележи времето што е потребно за еден пакет од играта да стигне до клиентот, и одговор да биде добиен. Ова време е познато како пинг на играчот, се користи како делотворен мерач за каснењето на играчот, што помал пинг има играчот, помало каснење би имал. Овој стил на пинг обично не користи ICMP пакети.

Поврзано[уреди | уреди извор]

Наводи[уреди | уреди извор]

Надворешни врски[уреди | уреди извор]

  • ping(8): send ICMP ECHO_REQUEST to network hosts — страница за административни и привилегирани наредби од упатството „man“ во Linux (англиски)

Предлошка:Unix commands Предлошка:Windows commands