Tracert və traceroute arasında fərq nədir?

Şəbəkədə baş verən problemlərin diaqnostika olunması üçün müxtəlif alətlərdən istifadə edirik. Təbii, heç düşünmədən söyləyə bilərik ki, ping bu siyahıda ən birinci yeri tutur və baş verən problemin tipindən asılı olmayaraq “Bax gör ping gedir?” sualı hərdən avtomatik olaraq səslənir.

Ping-dən sonra mən şəxsən ikinci yeri paketlərin seçdiyi marşrutu təyin etmək üçün istifadə olunan alətə verərdim. Bilirəm, aranızda ola bilər kimsə bu məqalənin adını oxuyarkən “Ümumiyyətlə fərq var ki?” söyləyib və etiraf edim ki, mən özüm uzun müddət fərqin ancaq yazılışda olduğunu düşünürdüm, ancaq bu belə deyil. Ümumiyyətlə söyləyim ki, fərqin mövcud olmasını təxmin etmək bir qədər çətindir, çünki hər tracert, həm də traceroute bizə eyni nəticəni təqdim edir.

Windows əməliyyat sistemlərində tətbiq olunan tracert komandası yalnız ICMP-dən istifadə edir. Təqdim olunan bu tologiyada biz User_1-dən Server_1-ə tracert etsək aşağıdaki proseslər baş tutacaq.

1_screenshot

User_1 ilkin olaraq Server_1-in IP-sinə ICMP echo (type 8) göndərir və TTL göstəricisini 1 kimi təyin edir. Bu ona görə baş tutur ki, tracert nəticələri ICMP time exceeded (type 11) və echo reply (type 0) məlumatlarına görə tərtib edir. (ICMP növləri haqqında daha ətraflı məlumat üçün bu səhifəyə baxa bilərsiniz)

Bir qədər daha aydın olsun deyə aşağıda User_1-in əldə etdiyini nəticəni təhlil edək.

  • TTL 1 ilə göndərilən ICMP echo-a R1 (192.168.1.254) tərəfindən dərhal ICMP time exceeded cavabı gəlir. User_1 bu məlumatı əks etdirir və TTL göstəricisini 1 ədəd artıraraq yenidən ICMP echo göndərir.
  • Bu dəfə ICMP echo R2-də (10.10.10.1) “ölür” və User_1-ə yenidən ICMP time exceeded göndərilir. PC əvvəlki qaydada uyğun TTL-i 1 ədəd artıraraq ICMP echo göndərir və R3-dən (20.20.20.2) həmin cavabı alır. Qeyd edim ki, User_1 hər qəbul etdiyi ICMP time exceeded məlumatını istifadəçiyə təqdim edir və tracert prosesinin başa çatmadığını anlayaraq TTL-ı artırıb yenidən ICMP echo göndərir. Arada 20 ədəd router olsa, bu proses 20 dəfə baş tutacaq.
  • Nəhayət ICMP echo Server_1-ə çatandan sonra həmin server tərəfindən ICMP echo reply (type 0) istifadəçiyə göndərilir və bununla tracert başa çatmış olur.

2_tracert

Linux Əməliyyat Sistemləri və Cisco-da tətbiq olunan traceroute bir qədər fərqli iş prinsipinə malikdir. Əsas fərq traceroute-un təqdim etdiyi məlumatı necə əldə etdiyindədir. Traceroute bunun üçün  göstərilən hostun 33434-dən başlayaraq UDP portuna packet göndərir və cavab olaraq  ICMP port unreachable (type 3, code 3) və ya ICMP time exceeded məlumatlarını toplayır.

Aşağıda eyni şəbəkədə traceroute nəticələri göstərilib və daha aydın fərqi anlamaq üçün əldə olunan nəticəni təhlil edək.

  • TTL 1 ilə göndərilən UDP paketə R1 (192.168.1.254) tərəfindən ICMP time exceeded cavabı gəlir və bu məlumat əks etdirir. Sonra həm TTL göstəricisi, həm də UDP port göstəricisi 1 ədəd artıraraq yenidən paket göndərilir və qeyd olunan hosta  çatmayana qədər bu belə davam edir.
  • Bu topologiyada R1-ə gələn paket UDP port 33434 və TTL 1, R2-ə UDP port 33435 və TTL 2, R3-ə isə UDP 33436 = TTL 3 olacaq.
  • UDP packet 192.168.2.5-ə çatdıqdan sonra, ICMP port unreachable cavabı traceroute-u başlayan hosta göndərilir və bununla traceroute prosesi başa çatmış hesab olunur. Traceroute UDP portları 33434-33464 aralığından götürür və həmin portların istifadə olunmayacağını zənn edərək port unreachable cavabı traceroute-un sonu kimi qəbul olunur.

3_traceroute

Bir daha vurğulayım ki, nəticə olaraq bizə təqdim olunan məlumatda heç bir fərq yoxdur, amma zənnimcə iş prinsipində olan bu fərqi anlamaq bir qədər dərin problem həlletmə zamanı köməyimizə gələ bilər.

Səs: +50. Bəyənilsin Zəifdir

Müəllif: Hatəm Şükür

Şərhlər ( 2 )

  1. Məqalə üçün təşəkkür! Həqiqətən, bu fərqi bilmək bəzən çox kömək olur.
    Bəzi qeydlərim:
    Linux üzərindən traceroute daha geniş istifadə üçün şərait yaradır. Belə ki, məqalədə də göstərilən default UDP portlar firewallar tərəfindən olaraq bağlı ola bilər və sorğu axıra qədər emal olunmaya bilər. Traceroute sizə protocolu və portu özünüz tərəfindən təyin etməyə imkan verir və bu zaman, sizə məlum olan port üzərindən servere yolu tam olaraq görmək olar. Məsələn, aşağıda göstərilən traceroute tam olaraq ünvana çatmır:

    [farid@localhost ~]$ traceroute www.az
    traceroute to www.az (217.14.96.36), 30 hops max, 60 byte packets
     1  192.168.xxx.xxx (192.168.xxx.xxx)  1.928 ms  2.269 ms  2.618 ms
     2  host-5.197.xxx.xxx.katv1.net (5.197.xxx.xxx)  6.057 ms  6.565 ms  6.917 ms
     3  5.197.xxx.xxx (5.197.xxx.xxx)  9.688 ms  9.624 ms  9.531 ms
     4  85.132.80.217 (85.132.80.217)  14.197 ms  14.719 ms  15.325 ms
     5  * * *
     6  * * *
     7  * * *
     8  * * *
     9  * * *
    10  * * *
    11  * * *
    12  * * *
    13  * * *
    14  * * *
    15  * * *
    16  * * *
    17  * * *
    18  * * *
    19  * * *
    20  * * *
    21  * * *
    22  * * *
    23  * * *
    24  * * *
    25  * * *
    26  * * *
    27  * * *
    28  * * *
    29  * * *
    30  * * *
    

    http://www.az-ın 1 web serviz olduğunu nəzərə alıb , sorğuya TCP protokolunu istifadə etməyi (-T) və 80-ci portu ( -p 80) əlavə edirik və sorğunun sona qədər emal olunduğunu müşahidə edirik:

    [farid@localhost ~]$ sudo traceroute www.az -T -p 80
    traceroute to www.az (217.14.96.36), 30 hops max, 60 byte packets
     1  192.168.xxx.xxx (192.168.xxx.xxx)  2.301 ms  2.226 ms  3.926 ms
     2  host-5.197.xxx.xxx.katv1.net (5.197.xxx.xxx)  5.912 ms  6.309 ms  6.609 ms
     3  5.197.xxx.xxx (5.197.xxx.xxx)  14.229 ms  19.832 ms  22.202 ms
     4  85.132.80.217 (85.132.80.217)  22.130 ms  22.569 ms  22.516 ms
     5  Intrans-DeltaTelecom-link-for-INTERNET-Xchange.AZ-IX.net (85.132.2.46)  21.920 ms  21.869 ms  22.685 ms
     6  web.intrans.baku.az (217.14.96.36)  22.655 ms  7.160 ms  7.046 ms
    [farid@localhost ~]$ 

Şərh yazın