Bu Blogda Ara

24 Kasım 2022 Perşembe

 

Scramble Game in ABAP

The scramble game written in ABAP programming language.

Scramble-game-abap

This is ABAP source code of scramble game below.

TABLES sscrfields.
*--------------------------------------------------------------*
* Selection-Screen
*--------------------------------------------------------------*
SELECTION-SCREEN: BEGIN OF LINE.
SELECTION-SCREEN: PUSHBUTTON 2(5)  btn1 USER-COMMAND btn1.
SELECTION-SCREEN: PUSHBUTTON 8(5)  btn2 USER-COMMAND btn2.
SELECTION-SCREEN: PUSHBUTTON 14(5) btn3 USER-COMMAND btn3.
SELECTION-SCREEN: END OF LINE.
SELECTION-SCREEN: BEGIN OF LINE.
SELECTION-SCREEN: PUSHBUTTON 2(5)  btn4 USER-COMMAND btn4.
SELECTION-SCREEN: PUSHBUTTON 8(5)  btn5 USER-COMMAND btn5.
SELECTION-SCREEN: PUSHBUTTON 14(5) btn6 USER-COMMAND btn6.
SELECTION-SCREEN: END OF LINE.
SELECTION-SCREEN: BEGIN OF LINE.
SELECTION-SCREEN: PUSHBUTTON 2(5)  btn7 USER-COMMAND btn7.
SELECTION-SCREEN: PUSHBUTTON 8(5)  btn8 USER-COMMAND btn8.
SELECTION-SCREEN: PUSHBUTTON 14(5) btn9 USER-COMMAND btn9.
SELECTION-SCREEN: END OF LINE.
SELECTION-SCREEN: SKIP 2.
SELECTION-SCREEN: PUSHBUTTON 2(17) random USER-COMMAND rand.
*--------------------------------------------------------------*
*At Selection-Screen Output
*--------------------------------------------------------------*
AT SELECTION-SCREEN OUTPUT.
  PERFORM win.
*--------------------------------------------------------------*
*At Selection-Screen
*--------------------------------------------------------------*
AT SELECTION-SCREEN.
  CASE sscrfields.
    WHEN 'BTN1'.
      PERFORM check_button CHANGING btn1 btn2.
      PERFORM check_button CHANGING btn1 btn4.
    WHEN 'BTN2'.
      PERFORM check_button CHANGING btn2 btn1.
      PERFORM check_button CHANGING btn2 btn3.
      PERFORM check_button CHANGING btn2 btn5.
    WHEN 'BTN3'.
      PERFORM check_button CHANGING btn3 btn2.
      PERFORM check_button CHANGING btn3 btn6.
    WHEN 'BTN4'.
      PERFORM check_button CHANGING btn4 btn1.
      PERFORM check_button CHANGING btn4 btn5.
      PERFORM check_button CHANGING btn4 btn7.
    WHEN 'BTN5'.
      PERFORM check_button CHANGING btn5 btn2.
      PERFORM check_button CHANGING btn5 btn6.
      PERFORM check_button CHANGING btn5 btn8.
      PERFORM check_button CHANGING btn5 btn4.
    WHEN 'BTN6'.
      PERFORM check_button CHANGING btn6 btn3.
      PERFORM check_button CHANGING btn6 btn5.
      PERFORM check_button CHANGING btn6 btn9.
    WHEN 'BTN7'.
      PERFORM check_button CHANGING btn7 btn4.
      PERFORM check_button CHANGING btn7 btn8.
    WHEN 'BTN8'.
      PERFORM check_button CHANGING btn8 btn7.
      PERFORM check_button CHANGING btn8 btn5.
      PERFORM check_button CHANGING btn8 btn9.
    WHEN 'BTN9'.
      PERFORM check_button CHANGING btn9 btn6.
      PERFORM check_button CHANGING btn9 btn8.
    WHEN 'RAND'.
      PERFORM random.
  ENDCASE.
*&---------------------------------------------------------------------*
*& INITIALIZATION.
*&---------------------------------------------------------------------*
INITIALIZATION.
  random = 'Reset'.
  PERFORM random.
*&---------------------------------------------------------------------*
*&      Form  CHECK_BUTTON
*&---------------------------------------------------------------------*
FORM check_button  CHANGING p_b1
                            p_b2.
  IF p_b2 IS INITIAL.
    p_b2 = p_b1.
    CLEAR p_b1.
  ENDIF.
ENDFORM.                    " CHECK_BUTTON
*&---------------------------------------------------------------------*
*&      Form  RANDOM
*&---------------------------------------------------------------------*
FORM random.

  DATA: it TYPE TABLE OF c.
  DATA: wa TYPE c.
  DATA: lv_random TYPE qf00-ran_int.
  DATA: temp.
  DATA: lv_counter TYPE i.
  CONSTANTS: lv_btn(3) TYPE c VALUE 'BTN'.
  DATA: lv_button(4) TYPE c.
  FIELD-SYMBOLS:  TYPE c.

  DO.
    CALL FUNCTION 'QF05_RANDOM_INTEGER'
      EXPORTING
        ran_int_max   = 9
        ran_int_min   = 1
      IMPORTING
        ran_int       = lv_random
      EXCEPTIONS
        invalid_input = 1
        OTHERS        = 2.

    wa = lv_random.
    READ TABLE it TRANSPORTING NO FIELDS
               WITH KEY wa.
    IF sy-subrc <> 0.
      APPEND wa TO it.
    ENDIF.

    lv_counter = LINES( it ).
    IF lv_counter = 9.
      EXIT.
    ENDIF.

  ENDDO.

  LOOP AT it INTO wa.
    temp = sy-tabix.
    CONCATENATE lv_btn temp INTO lv_button.
    ASSIGN (lv_button) TO .
    IF wa = '9'.
      CLEAR wa.
    ENDIF.
     = wa.
    CLEAR wa.
  ENDLOOP.
ENDFORM.                    " RANDOM
*&---------------------------------------------------------------------*
*&      Form  WIN
*&---------------------------------------------------------------------*
FORM win .
  IF btn1 = '1' AND
     btn2 = '2' AND
     btn3 = '3' AND
     btn4 = '4' AND
     btn5 = '5' AND
     btn6 = '6' AND
     btn7 = '7' AND
     btn8 = '8' AND
     btn9 IS INITIAL.
    MESSAGE 'You Won!' TYPE 'I'.
    PERFORM random.
  ENDIF.
ENDFORM.                    " WIN

15 Aralık 2016 Perşembe

Raspberry Pi ve HC-SR04 Ultrasonik Sensör Yardımıyla Mesafe Ölçme ve Blueetooth Üzerinden Android Haberleşme


Merhaba Arkadaşlar,
Bugün Raspberry Pi 3 ve HC-SR04 ultrasonik sensör yardımıyla bir cismin ne kadar uzaklıkta olduğunu ölçeceğiz. Daha sonra ölçtüğümüz bu değerleri bluetooth yardımıyla android cihazımızla haberleşmeyi sağlayıp,android cihazımızdan da görütüleyeceğiz. 
   Ultrasonik sensörlerin çalışması hakkında geniş bilgiye buradan ulaşabilirsiniz. Hızlıca uygulamamıza geçelim. Uygulama için gerekli araçlar: 
  • Raspberry pi 3
  • HC-SR04 Ultrasonik sensör
  • kΩ direnç(1 adet)   
  • kΩ direnç(1 adet)  
  • Jumper Teller

Ultrasonic sensör hakkında

İngilizce 'ultra' ve 'sonic' kelimelerinin birleşimi olan ultrasonik kelimesi 'daha yüksek ses' anlamına gelmektedir. Bu ultrasonik ses dalgaları, insan kulağının duyamayacağı 20 kHz – 500 kHz frekans bandına sahiptir. Ultrasonik ses dalgalarını kullanan sensörler ile nesnelerle herhangi bir temas halinde olmadan mesafe ölçümleri yapılabilmektedir. Ultrasonik sensörler, klasik hareket problemlerinde olduğu gibi 
X = V * t (yol = hız * zaman) eşitliğine göre çalışır. Ultrasonik ses dalgalarının belirli atmosferik koşullardaki hızının biliniyor olmasından faydalanarak ses dalgasının gidip gelme süresinin yarısıyla hızının çarpımı mesafe bilgisi elde edilir. Asıl sorun ise farklı frekanslarda sensörün ölçebileceği menzilin değişmesidir.▪Mesafe ölçümü için ve robot projelerinde kullanılabilir. 

HC-SR04 Ultrasonik sensör:
  • Mesafe ölçümü için ve robot projelerinde kullanılabilir.
  • Arduino & Raspberry pi devreleri ile kullanılabilir. 
  • 2 cm ile 400 cm arasında mesafe ölçümü yapabilir.
  • Ölçüm hassasiyeti 3 mm dir.
HC-SR04 ultrasonik sensör:

 Çalışma Voltajı DC 5V
 Çektiği Akım  15 mA
 Çalışma Frekansı 40 Hz
 Maksimum Görme Menzili 4m
 Minimum Görme Menzili 2cm
 Görme Açısı 15°
 Tetik Bacağı Giriş Sinyali 10 us TTL Darbesi
 Echo Çıkış Sinyali Giriş TTL sinyali ve Mesafe Oranı
 Boyutları 45mm x 20mm x 15mm

Ultrasonik Sensör Çalışma prensibi

Ultrasonik ses dalgaları 20 kHz ile 500 kHz arasında frekanslara sahip ses dalgalarıdır. Bizim duyabildiğimiz 300 Hz-14000 Hz bandının üzerindedirler. Ultrasonik sensörler ultrasonik ses dalgaları yayan ve bunların engellere çarpıp geri dönmesine kadar geçen süreyi hesaplayarak aradaki uzaklığı belirleyebilen sensörlerdir. Bu sensörlerde bu kadar yüksek frekanslarda ses dalgalarının yayılmasının nedeni ; bu frekanslardaki dalgaların düzgün doğrusal şekilde ilerlemeleri , enerjilerinin yüksek olması ve sert yüzeylerden kolayca yansımasıdır. 


Ultrasonik sensörlerin algılama menzili uygun koşullarda 30 metreye varabilir. Ultrasonik sensörlerde iki adet transducer bulunur. Bunlardan biri ultrasonik speaker diğeri de ultrasonik mikrofondur. Elektronik devre ile ultrasonik speaker'dan ses dalgasının yayılma anı ile bu ses dalgasının engele çarpıp yansıyarak ultrasonik mikrofon tarafından algılanması arasındaki zaman ölçülür ve bu zamanın ikiye bölünüp ses hızı ile çarpılması sonucunda da engel ile ultrasonik sensör arasındaki mesafe hesaplanır. Robotlarda genellikle 40 kHz'lik ultrasonik sensörler kullanılmaktadır.

Kurulum:
Öncelikle sd card a raspberry pi işletim sistemini indirip kuruyoruz. Kurulumun detaylı anlatımı içşn tıklayınız.

Rasperry pi Ethernet kablosu ve PuTTY aracılığıyla bağlanacaksanız SSH ve diğer ayarlamaların detaylı anlatımı için tıklayınız.


Projenin Devre Şeması



Uygulamamızın kodlama kısmına geçelim. Öncelikle kodumuzu yüklemeden önce bluetooth haberleşmesi için bir kaç paket yüklememiz gerekli. Adımlar sırasıyla aşağıdaki gibidir.


  • Bluez paketini indir

sudo apt-get install python-bluez


  •  /etc/systemd/system/dbus-org.bluez.service kısmındaki ExecStart parametresini aşağıdaki gibi değiştir.
  • ExecStart=/usr/lib/bluetooth/bluetoothd -C
  • seri port profili yükleyin:
  • sudo sdptool add SP
  • Raspberry Pi cihazını yeniden başlatın:
    sudo reboot
    
  • Raspberry Pi yi telefonunuzla eşleştirin. Telefonunuzun bluetooth'unu açın.  Raspberry Pi üzerinde aşağıdaki komutları yazın:

bluetoothctl
power on
discoverable on
scan on


  • Telefonunuz mevcut cihazlar listesinde görünecektir. Telefonunuzun mac adresini not al ve aşağıdaki belirtilen yere yazarak kodları çalıştır


  trust <mac adresi>
  pair <mac adresi>

  • Çıkmak için
  quit

Şimdi Python ile yazdığımız kodu çalıştıralım 
önce bulunduğumuz dizinde herhangi bir isimde .py uzantılı bir dosya oluşturuyoruz.

nano blueusonic.py
yazıp dosyanın içine giriyoruz. kodumuzu buraya yazarak Ctrl+X tuşuna basarak kaydedip çıkıyoruz.

kodumuzu çalıştırmak için ise aşağıdaki komutu yazıp çalıştırıyoruz.
sudo python blueusonic.py
Uygulamanın python kodu aşağıdaki gibidir:
import os
from bluetooth import *
from wifi import Cell, Scheme
import subprocess
import RPi.GPIO as GPIO
import time
import datetime

GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)

TRIG=20
ECHO=26

GPIO.setup(TRIG,GPIO.OUT)
GPIO.setup(ECHO,GPIO.IN)

GPIO.output(TRIG,False)




def handle_client(client_sock) :
    # get ssid
        while True:
           GPIO.output(TRIG, True)
           time.sleep(0.00001)
           GPIO.output(TRIG, False)

           while GPIO.input(ECHO)==0:
              pulse_start=time.time()

           while GPIO.input(ECHO)==1:
              pulse_end=time.time()

           pulse_duration = pulse_end - pulse_start

           distance = pulse_duration*17150

           distance = round(distance, 2)
           #client_sock.send("Selam")
           client_sock.send(str(distance)+"!")
           print distance
           time.sleep(2)

    #client_sock.send(ssid_discovered())
    #client_sock.send("ip-addres:" + ip_address + "!")
        return



try:
    while True:
        server_sock=BluetoothSocket( RFCOMM )
        server_sock.bind(("",PORT_ANY))
        server_sock.listen(1)

        port = server_sock.getsockname()[1]

        uuid = "815425a5-bfac-47bf-9321-c5ff980b5e11"

        advertise_service( server_sock, "RPi Wifi config",
                           service_id = uuid,
                           service_classes = [ uuid, SERIAL_PORT_CLASS ],
                           profiles = [ SERIAL_PORT_PROFILE ])


        print "Bluetooth baglantisi bekleniyor RFCOMM kanali %d" % port

        client_sock, client_info = server_sock.accept()
        print "Baglanti saglandi:  ", client_info

        handle_client(client_sock)

        client_sock.close()
        server_sock.close()

        # finished config
        print 'Program sonu...\n'


except (KeyboardInterrupt, SystemExit):
    print '\nCikis yapiliyor...\n'


GPIO.cleanup()

>>>>>>>>>>>proje için gerekli  olan android uygulamayı indirmek için tıklayın.


                                            Uygulama çalıştırıldığındaki ekran resimleri






Android uygulama ekran resimleri






Ctrl+C tuşuna basarak programı sonlandırabilirsiniz.

Böylece uygulamamızı tamamlamış olduk, umarım sizler için iş görür, öğretici bir uygulama olmuştur. Herkese iyi çalışmalar

4 Mayıs 2016 Çarşamba


Cisco Packet Tracer Kurulumu, Kullanımı ve Ping Atma

 Uygulaması


Merhabalar, Bugün sizlerle Cisco Packet Tracer programının kurulumunun aşamalarını ve ping atma nasıl yapılır aşamalarını paylaşacağım.
Öncelikle programımızı indirdikten sonra aşağıdaki gibi kurulumunu yapıp bitiriyoruz.








Finish butonuna bastıktan sonra kurulum tamamlanıp aşağıdaki gibi programımızın arayüzü karşımıza gelecektir.


Uygulamamıza geçmeden önce program ve araçları hakkında biraz bilgi edinelim.

ARAYÜZ ve ARAÇ ÇUBUKLARI



Cisco Packet Tracer arayüzü Main Toolbar, Bottom Toolbar ve Right Toolbar olmak üzere 3 araç çubuğundan oluşmaktadır
.
MAIN TOOLBAR

 Burada kullanılan düğmelerin büyük çoğunluğu Windows ara yüzünden alışık olduğumuz düğmelerdir.


New - Open – Save :Sırasıyla yeni packet tracer uygulaması başlat, uygulama ve kaydet düğmeleridir.

Print : Mevcut fiziksel topolojiyi ya da seçilen cihazda yazılmış konfigürasyonları yazdırır.


Copy – Paste – Undo – Redo :Yine birçok uygulamada kullanılan, kopyala, yapıştır, geri al (undo) ve yinele (redo) düğmelerdir.


Zoom In - Zoom Reset - Zoom Out:Topoloji ekranını büyüt, orijinal boyut ve küçült düğmeleridir.



Drawing Palette:


 Topoloji ekranına yardımcı olması açısından kare, daire gibi şekiller çizilmesini sağlayan çizim aracıdır.






Örnek olarak oluşturulan bir fiziksel topoloji üzerinde aşağıdaki gibi yardımcı çizimler yapılabilir.

 

RIGHT TOOLBAR

 Select: Seçim aracıdır. Topolojide bulunan cihazları seçmek için kullanılır. Çoklu seçim için belirli bir dörtgen çizilip seçim yapılabilir.

 Move Layout: Çalışma alanı üzerinde hareket etmeyi sağlayan araçtır. Büyük topolojilerde, cihazların tümü aynı ekrana sığmayabilir. Bu araç ile çalışma alanını gezebilirsiniz.


Place Note: Çalışma alanı üzerinde açıklayıcı notlar almanızı sağlayan araçtır.


 Delete: Çalışma alanında bulunan bir veya daha fazla cihazın, bağlantının, şeklin ya da notların silinmesini sağlayan araçtır.


Delete: Çalışma alanında bulunan bir veya daha fazla cihazın, bağlantının, şeklin ya da notların silinmesini sağlayan araçtır.



 Resize Shape: Çalışma alanında bulunan şekillerin boyutlandırılmasını sağlayan araçtır.


Add Simple PDU: Seçilen iki cihaz arasında bir ICMP paketi gönderir. Cihazlar arasında iletişimin olup olmadığını testi kısaca bu paket ile yapılabilir. İletişimin olabilmesi için cihazların IP adresinin bulunması gerekir. İlk tıklanan cihaz kaynak, ikinci tıklanan ise hedeftir. Eğer iletişim başarılı ise(successful), Bottom Toolbar kısmında aşağıdaki gibi bir görüntü oluşur.



Add Complex PDU : Kaynak ile hedef arasında protokolü belirleyebileceğiniz, özelleştirilmiş paketler göndermenizi sağlar.


Yukarıdaki örnekte olduğu gibi hedef IP, kaynak IP, Hedef Port, Kaynak Port gibi parametreleri kullanarak farklı paketler oluşturabilirsiniz. 

BOTTOM TOOLBAR

 

Çalışma alanına Router, Switch, PC gibi cihazların ve bunlar arasındaki kablolamaların yapıldığı en sık kullanılan menüdür.

Cihazlar ve kablolar: Sırasıyla router, switch, hub, wireless cihazları ve kablolamayı gösterir. Seçilen cihaza göre sağda modeller çıkacaktır.

ROUTER MODELLERİ 

 
Cisco router modellerinden biri seçilip, çalışma alanına tıklanarak cihazın topolojiye dâhil olması sağlanabilir. Generic router seçildiğinde ise cihaz üzerinde takılacak olan modüller belirlenebilir.


 ROUTER FİZİKSEL AYARLANMASI: Seçilen ve çalışma ekranına aktarılan bir router için modül ekleme gibi fiziksel ayarlamalar Physical sekmesinden yapılabilir. Aşağıda 1841 bir router için fiziksel arayüz bulunmaktadır.


Fiziksel ekranda, routerda üzerinde modüller eklenip kaldırılabilir. MODULES ekranında uygun         bulunan modüllerin isimleri, altta da bu modülün özellikleri ve görünümünü bulunmaktadır.Sürükle
bırak yöntemi ile modül eklenebilir ve çıkarılabilir. Modül ekleme/ çıkarma işlemlerinden önce routerın kapatılmış olması gerekmektedir.

ROUTER KONFİGÜRASYONU (GÖRSEL ARAYÜZ): 

Router üzerinde konfigürasyon komut arayüzünden yapılır. Ancak ilk başlayanlar için bu komutlar zorluk çıkarabilir. Config arayüzünden görsel olarak konfigürasyon yapılabilir.


Görsel ekrandan yapılan konfigürasyonların CLI arayüz komutları, Equivalent IOS Commands kısmından görülebilmektedir.

GLOBAL / SETTINGS Ayarları: 

Display Name: Cihazın çalışma ekranında bulunan ismini değiştirebilirsiniz. 

Hostname: Cihazın konfigürasyon ekranındaki ismidir. Burada yapılan değişiklik, cihazda CLI arayüzünde yazılmış aşağıdaki koda karşılık gelmektedir. Bu kod “Equivalent IOS Commands” alanında görülebilir. 

.ROUTING AYARLARI 

Static Routing Ayarlaması

Yukarda bir static yönlendirmenin nasıl yapıldığı gösterilmiştir. Bu örneğe göre, 10.0.0.0 /8 ağına 192.168.1.1 IP adresi üzerinden ulaşılabileceği konfigürasyonu yapılmıştır. Bu işlem yapılıp Add düğmesi tıklandığında “Equivalent IOS Commands” ekranında aşağıdaki IOS – CLI komutları görünmektedir. Remove düğmesi ile de yazılan konfigürasyonun kaldırılması sağlanır. 


RIP KONFİGÜRASYONU


Tanıtımı yapılacak ağlar Network kısmına eklenip, ADD düğmesine basılır. Yine CLI komutları da görülebilir.

INTERFACE AYARLARI


Router’ın herhangi bir arayüzünün açılıp IP Adresinin verilmesini yukarıdaki gibi konfigürasyon yapılabilir. Yine yapılan konfigürasyonun CLI çıktısı da gösterilmektedir.


CLI ARAYÜZÜ

Gerçek routerlar üzerinde konfigürasyonlar çoğunlukla komut arayüzünden (CLI) yapılmaktadır. Buradaki ekran gerçek router üzerinde çalışan birçok komutu desteklemektedir. Aşağıdaki ekranda örnek bir DHCP konfigürasyonu komutları bulunmaktadır. 




Komut ekranında konfigürasyon için, cisco cihazların üzerinde bulunan işletim sistemi (IOS ) bilgisi gerektirmektedir.

   SWICTCH MODELLERİ



    24 portlu Cisco 2950 ve Cisco 2960 gibi layer 2 cihazların olduğu gibi, Cisco 3560 Layer3 cihazlar     ve portları ayarlanabilen generic switchler de vardır.

 
     KABLOLAR

 

     Sırasıyla, otomatik kablo seçimi, Console kablosu, düz kablo, çarpraz kablo, fiber kablo, telefon          kablosu, coaxial kablo, Seri (DCE) kablo ve Seri (DTE) kablolardır.

     SON KULLANICI CİHAZLARI

 

     PC, Laptop, Server, IP Yazıcı, Yerel Yazıcı, IP Telefon gibi cihazların çalışma alanına eklenmesini      sağlayan bölümdür.

     CİHAZLAR ARASINDAKİ KABLO BAĞLANTILARI 


TEMEL PC KONFİGÜRASYONU
 

Yukarıdaki örnekte olduğu gibi PC lerin iletişime geçebilmesi için IP adreslerinin verilmesi gerekir. PC üzerinde tıklanınca açılacak pencereden Desktop kısmından bu ayarlamalar yapılabilir. PC ‘lerde uygulamalarda yardımcı olacak, Komut Satırı (Command Prompt), Web Browser, Hyper Terminal yazılımı gibi bir çok araç bulunmaktadır


IP ayarlarının yapılabilmesi için, IP Configuration düğmesi tıklanır


Açılan pencereden bir statik IP ya da ortamda bulunan bir DHCP serverdan otomatik IP verilebilir.

SERVER KONFİGÜRASYONU


Son kullanıcı cihazları arasında bulunan serverlar üzerinde DHCP, HTTP, FTP, DNS gibi sunucular tanımlanabilir. Aşağıdaki örnekte DNS ve HTTP server tanımlaması yapılmıştır.


HTTP SERVER KONFİGÜRASYONU

 Server üzerinde Config sekmesinde http başlığı altında aşağıdaki gibi örnek bir web sayfası html kodları yazılabilir.


Burada tanımlanan web sayfasına alan adıyla erişilebilmesi için, DNS serverde de tanımlanması gerekir. DNS ayarları da yine DNS tabından yapılabilir.



Örnekte, www.test.com adresinin IP adresi, 192.168.1.4 olarak DNS servere işlenmiştir. Bu örnekte, DNS server ve HTTP Server aynı server üzerinde tanımlı olduğuna dikkat edilmesi gerekmektedir. PC üzerinden DNS ayarlaması yapıldığı taktirde web sayfasına Web Browser aracılığıyla aşağıda görüldüğü gibi alan adı ile ulaşılması mümkündür.




ADIM ADIM PAKET ANALİZİ 

Packet Tracer üzerinde, bottom toolbar üzerinde yer alan Realtime Mode ve Simulation Mode dönüşümleri aracılığıyla adım adım gelen-giden paketlerin içeriğinin incelenmesi mümkündür.






Paketlerin hareketleri adım adım incelenebilir. Geri, ileri ve Auto özelliği ile trafiklerin akışını incelemek mümkündür.




Yukarıdaki örnekte Simulation moda PC3’ten gönderilen http ve dns paketleri görülmektedir. Paketler çift tıklanarak incelenebilir.




Next Layer düğmesine tıklanarak adım adım bir çerçevenin ya da paketin OSI katmanı boyunca ne tür işlemlerden geçtiği görülebilir. Bir sonraki katman için Next Layer düğmesi tıklanabilir.



Ayrıca INBOUND / OUTBOUND PDU DETAILS tıklanarak, frame yapısı, IP yapısı ve TCP/UDP yapısı da incelenebilir.

          İKİ BİNANIN İNTERNET AĞINDA HABERLEŞMESİ VE PİNG ATMA
Şimdi vakit kaybetmeden uygulama senaryomuza geçelim.
İki binanın internet ağında birbiriyle nasıl haberleştiğini, DSP Server'dan nasıl otomatik Ip aldığını
ve de bunun gibi basit uygulamaları nasıl yaptığımızı kısaca anlatacağım.

İlk olarak binalarımızı dikelim.



Resimdeki gibi binalarımızı yerleştirdik.
1.binada 3 bilgisayar kullanıcısı ve 2. binada 2 bilgisayar kullanıcı oluşturduk.
Bilgisayarları ayrı ayrı switchlere bağladık. Serveri ve router cihazlarını da yerleştirip onları da bir switche bağladık.

Burada bir dipnot geçmek gerekirse aynı cihazlar birbirine cross kabloyla, farklı cihazlar ise birbirine düz kabloyla bağlanır.  Yani bilgisayarlar bilgisayarlara çapraz kabloyla bağlanırken, bilgisyarlar switchlere düz kabloyla bağlanır.
Bir istisna olarak cihazlar farklı olmasına rağmen bir bilgisayarı bir router cihazına bağlamak istersek cross kablo kullanırız.



Ayrıca switchleri router'a fast ethernet portundan bağladığımız için. Router'ın fast ethernet portu yetersiz gelmekte ve bu yüzden yukarıdaki gibi routerımıza bir fast ethernet portu daha eklememiz gerekiyor.
Bu işlem sırasında önce routerın güç düğmesini kapatıp öyle eklemeliyiz. Cihazımızı kapatmazsak yüklemez uyarı verir.

Şimdi kablolamıza devam edelim.
Kablolamamız bitttikten sonra hangi binada hangi ıp adresini kullanacağımıza geçelim.

Resimdeki gibi;
birinci binamızda 192.168.1.0/24, ikinci binamızda 192.168.2.0/24 ve Server için 172.168.1.0/24 iplerini tanımladık.



Şimdi Routerın portlarına hangi ip adreslerini vereceğimizi belirliyoruz.

Aşağıdaki resimdeki gibi Routerın FastEthernet 0/1 portuna 192.168.1.1 ip adresini veriyoruz ve portumuzu açıyoruz.





Routerın Ethernet0 1/0 portuna 192.168.2.1 ip adresini veriyoruz ve portumuzu açıyoruz.




Routerın FastEthernet 0/0 portuna 172.168.2.1 ip adresini veriyoruz ve portumuzu açıyoruz.
İp /24 olduğu için Subnet Mask'ı 255.255.255.0 olarak düzenlemeliyiz.




Daha sonra Server'ımızı yapılandıralım.Resimde de olduğu gibi
IP Adress: 172.168.1.50
Subnet Mask: 255.255.255.0
Default Gateway:172.168.1.1
DNS Server:172.168.1.50 olsun.
Yani bu serverımız hem dsp hem de dns olarak ayarlanmış olsun.




Daha sonra Service > DHCP kısmından Dsp özelliklerini ayarlayalım.
aşağıdaki gibi ayarlamaları yapıp kaydet' basıyoruz.


Sonra aşağıdaki router'ın diğer bölümünü hangi ıp alıcağını belirliyoruz ve ekliyoruz.
 Böylelikle DSP Serverımızı yapılandırıyoruz.




Aşağıda gördüümüz gibi bilgisayarların ıp adresinde failed vermekte.





Bunun nedeni routerlarımızın portlarına hangi DSP serverdan ıp alacağını belirtmememiz. Hemen onu da belirtelim. Router FastEthernet 0/1 portuna gelip ip helper-adress172.168.1.50 komutunu yazarak hangi DSP Serverdan ıp adresi alıcağını belirliyoruz, o ıp adresini veriyoruz.



Aynı şekilde Router FastEthernet0/1 portuna gelip ip helper-adress 172.168.1.50 yazıyoruz.
Böylece sorunumuz çözülmüş durumda.
Böylece;
PC1 IP:192.168.1.2
PC2 IP:192.168.1.3
PC3 IP:192.168.1.4
PC4 IP:192.168.2.2
PC5 IP:192.168.2.3
oarak otomatik atanacaktır.

Şimdi bilgisayarları birbiri ile haberleştirmeyi deneyelim. PC4 ten PC2 ping atmayı deneyelim




Şekildeki gibi Command Prompt a tıklıyoruz.
Ve Aşağıdaki gibi karşımıza gelen ekrana ping 192.168.1.3 yazıp entera basalım




Görüldüğü dört paketin üçü ulaşıp, birinde hata verdi. Bu istisnai olarak olabilir. Tekrar denersek;




Görüldüğü gibi dört paketin dördü de iletilmiş bulunmakta.
Bu şekilde ıp numaralrını girerek istediğimiz iki bilgisayar arasında ping atabiliriz ve iletişimi sağlayabiliriz.
Evet arkadaşlar konumuzun sonuna geldik. Packet Tracer'da bu ve bunun gibi yüzlerce uygulama yapabiliriz Konuyla ilgili diğer soru ve görüşleriniz için mail adresimden bana ulaşabilirsiniz. Teşekkürler, iyi çalışmalar.