19 Nisan 2015 Pazar

Java'da toplama yalnızca toplama işlemi yaparak çarpım sonucunu bulma...

package top_carp;
import java.util.Scanner;
public class Top_carp {
    public static void main(String[] args) {
        Scanner giris=new Scanner (System.in);
        System.out.print("Sayi1 giriniz:");
        int sayi1=giris.nextInt();
        System.out.print("Sayi2 giriniz:");
        int sayi2=giris.nextInt();
        int toplam=0;
        for (int i = 0; i < sayi1; i++) {
            toplam=toplam+sayi2;
        }
        int carpim=toplam;
        System.out.println("Carpim="+carpim);
    }
  }

HANOİ PROBLEMİ

package hanoi;
import java.util.Scanner;
public class Hanoi {
    public static int hanoi(int n, char x, char y, char z)
            {
                if (n==1) {
                    System.out.println("Diski "+x+" cubugundan "+z+" cubuguna koy");
                }
                else  
                {
                    hanoi(n-1, x, z, y);
                    hanoi (1, x, y, z);
                    hanoi(n-1, y, x, z);
                }
                return 0;
}
    public static void main(String[] args) {
        Scanner giris=new Scanner(System.in);
        System.out.print("Disk sayisini giriniz:");
        int disksayisi=giris.nextInt();
        hanoi(disksayisi, 'A','B','C');
    }
}

Özyineleme(Rekürsiflik)

//toplama işlemi;
package ozyineleme_toplam;
import java.util.Scanner;
public class Ozyineleme_toplam {

    static int toplam(int n)
    {
        if (n==1) {
            return 1;
        } else
            return toplam(n-1)+n;
    }
    public static void main(String[] args) {
        // TODO code application logic here
        Scanner giris=new Scanner(System.in);
        System.out.println("sayi gir:");
        int n = giris.nextInt();
        System.out.println("toplam="+toplam(n));
    }
}
,

-----------------------------------------------------
//Faktoriyel
package ozyineleme_faktoriyel;
import java.util.Scanner;
public class Ozyineleme_faktoriyel {
    public static int faktoriyel(int n)
    {if (n==0) {
            return 1;
        }
                return n*faktoriyel(n-1);
    }
    public static void main(String[] args) {
    Scanner giris=new Scanner(System.in);
        System.out.println("sayiyi giriniz:");
        int n=giris.nextInt();
        System.out.println("faktoriyel="+faktoriyel(n));
    }
 
}

------------------------------------------------------------------
//ebob
package ebob;
import java.util.Scanner;
public class Ebob {
    static int ebob(int a, int b)
    {
        int sonuc;
        if (b==0) {
            sonuc=a;
        }
        else    sonuc=ebob(b, a%b);
            return (sonuc);
    }
    public static void main(String[] args) {
        Scanner giris=new Scanner(System.in);
        System.out.println("1.sayiyi gir:");
        int x=giris.nextInt();
        System.out.println("2.sayiyi gir:");
        int y=giris.nextInt();
        int islem=ebob(x,y);
        System.out.println(""+islem);
   }
 }

802.1Q Protokolüne Yapılan Saldırılar

Bir paketin Hangi Vlan'a ait olduğunu tanımlamak için geliştirilmiş bir protokoldür. Bu saldırı birden çok ethernet paket etiketlenmesi ile yapılır. Henüz buna karşılık geliştirmiş bir güvenlik önlemi yoktur. Bunun sebebi performanstır. Switch fabrik(bkz.) yongaları çift etiketlemeyi engellemez.
Bunun önüne geçilebilmesi için yongalara cpu koymak gerekir. Bu da yüksek anahtarlama kapasitesine sahip ethernet anahtar yongasında  performans kaybına neden olur.
Bu atağın yapılabilmesi için, saldırı yapan bilgisayarın access portunun native Vlan'da olması gerekir.
Native Vlan 1 portuna bağlı bir bilgisayar Göndermek istediği paketi etiketleyerek gönderir. Saldırı alan makine Vlan'ın 50 Vlandan geldiğini düşünerek Mac adresinin ilgili portundan çıkartır.
Bu saldırıda Vlanlar arası haberleşme olmaz. Pek önemli bir saldırı gibi görünmese de Spanning Tree(bkz) paketleri ile ağ topolojisi değiştirilebilir. 
Ethernet anahtar cihazın her bir portu Native Vlan üyesidir. 802.1Q protokol saldırılarını önlemek için kurulum yapılırken her bir Native Vlan portunu bir başka Vlan portuna atamak gerekir. 

MAC KİLİT AYARLARI

Statik olarak bir porttan girebilecek Mac adresleri sınırlandırabiliriz veya dinamik Mac kilit ayarları ile  belirlenen miktardaki pc nin porttan geçişine izin verilebiliriz.
Dinamik MAC kilidi ilk gelen giriş yapar mantığı ile çalışır. Örneğin 20 pc girişine izin verilen bir yerde 21.pc bağlanamaz.Çünkü port kapansın denilmiştir. Dinamik Mac kilit ayarı bir nevi Mac flooding atağının durdurulması için en kolay yoldur diyebiliriz.
Bir porttan statik olarak belirlenmiş Mac adreslerinin geçebilmesi ise Mac adreslerini değiştirerek yapılan saldırılarına karşın bir önlemdir.
Fakat bu işlem büyük yerlerde büyük karışıklıklara yol açabilir. Bu sebeple portlara kontenjan atamak daha doğru bir seçim olabilir..

Cisco Ethernet anahtar cihazlarda Mac kilit ayar örneği;

-------------------
switch >en
switch#conf t
switch(config)#int fa 0/1
switch(config-if)# switchport port-security

switch(config-if)# switchport port-security mac-address  f8:d0:a9:6f:1a:80//portta static mac adresi tanımlama

AĞ NEDİR?

Ağ Nedir?  Dosyaları veya diğer kaynakları birkaç yada daha fazla kullanıcı arasında paylaştırabilen bir haberleĢme kanalı üzerinden birbirine bağlanmış bilgisayarlar ve bağlı çevre birimleri gurubudur.
Aü Türleri Topolojiye göre, Coğrafi yayılışına göre
Yerel Bölge Network Sistemleri
1.        Bina veya binalar gurubu ile sınırlıdır (hastane, fabrika, iş merkezleri, üniversite kampüsleri vs.)
2.        Kablolu yada kablosuz olabilirler.
3.        Erişimde çoklu port kullanırlar.
4.        Kontrol için Network Administrator gereklidir.
5.        Yerel servislere full-time hizmet verebilmelidir.
6.        UTP, STP, koaksiyel, Fiber optik vs. kablolar kullanılır.
7.        Hub, Switch, Bridge, Router gibi cihazlar kullanılabilinir.
8.        Birçok network toplojisikullanılabilinir. (Star, Bus, Ring vs.)
Geniş Bölge Network Sistemleri
1.        Şehirler, ülkeler ve en uzak mesafelerdeki LAN’lardan oluşur.
2.        Kablolu yada kablosuz olabilirler.
3.        Erişim için seri arabirimler kullanırlar.
4.        Kontrol için Network Administrator gereklidir.
5.        Yerel servislere full-time ve part-time hizmet verebilmelidir.
6.        Telefon hatları, Fiber optik kablolar kullanılır.
7.        Switch, Router, Firewall, Modem gibi cihazlar kullanılabilinir.
8.        Birçok değişik teknolojilere sahiptir(ATM, FrameRelay, ISDN vs).
Bant Genişliği:Pratikte, bir ağın bir anda iletebileceği en yüksek bilgi kapasitesidir. Saniyede gönderilen bit miktarıdır.
Veri İletişimi:Verilerin bir kaynaktan bir başka kaynağa hatasız olarak gönderilmesi sürecidir.Veri iletişim ağlarının en önemli kullanım amacı kaynakların, bilginin, ses ve görüntünün paylaşılmasıdır.
İletim Karakteristikleri:Veri, haberleşme kanalı üzerinden elektrik işaretinin değişimleri ile iletilir. Bu değişimler 1 ve 0’ları gösterir. Bir işaretin iletim yolu üzerindeki hareketine işaret yayılması denir.
Periyot ve Dalga Boyu: Bir çevrim için gereken süreye periyot denir. Periyot (T), 1/F olarak hesaplanır ki burada F frekanstır (Hz).
WL = S / F       WL : Dalga boyu   S : İşaretin yayılma hızı   F : Frekans   
İşaretin dalga boyu ağ cihazı seçiminde, protokol tasarımında ve cevap-zamanı analizinde çok önemlidir.
İletim Sığası, Hız ve Gecikme:
Sığa: Bir haberleşme sisteminin iletim sığası (kapasitesi) bit/sn olarak gösterilir. Bilgisayar üzerinde çalışan kullanıcı uygulamaları için cevap süresi ve veri akışı, sistemin sığasına bağlıdır.Band genişliği, işaret gücü ve iletken üzerindeki gürültü, iletim sığasını sınırlayan etkenlerdir.
*veri ne şekilde iletilir dersek: haberleşme kanalı üzerinden elektirik işaretinin degişimleri ile iletilir.budegişimler 1 ve 0 ları gösterir.
*işaret yayılması nedir dersek: bir işaretin iletim yolu üzerindeki hareketine denir.Bir kablo yolu üzerinde,işaret yayılması elektirik akımı şeklindedir.
Protocol: Bir ağ üzerindeki cihazların aralarında nasıl iletişim kuracağını belirleyen kurallar dizisi.
ISO:Sayısal sistem haberleşmesi üzerinde örnek standart yapıları belirleyen uluslararası organizasyon.
Protokollerin standartlaştırılmasının amacı:Farklı bilgisayar sistemlerinin birbirleri ile etkin ve hatasız olarak etkileşimde bulunmasıdır.
OSI Referans Modelinin Amacı
OSI Referans Modeli uluslararası protokol standardının ilk adımı olarak, Uluslararası Standartlar Organizasyonu tarafından önerilmiş ve geliştirilmiştir.  
Protokol ISO OSI (Open SytemsInterconnection) referans modeli olarak adlandırılır. Çünkü açık sistemlerin (yani diğer sistemler ile iletişim kurabilen sistemler) birbirleri ile bağlantılarının nasıl olması gerektiği konusunda hazırlanmış bir protokoldür.  
Protokollerin standartlaştırılmasındaki amaç, farklı bilgisayar sistemlerinin birbirleri ile etkin ve doğru olarak etkileşimde bulunabilmeleridir.
Katman 7: Uygulama Katmanı (application) 
Katman 6: Sunum Katmanı  (presentation) 
Katman 5: Oturum Katmanı  (session)
Katman 4: Taşıma Katmanı  (transport) 
Katman 3: Ağ Katmanı  (network) 
Katman 2: Veri Bağı Katmanı  (data link)
Katman 1: Fiziksel Katman  (physical)

OSI Modelinde Alınan Temel İlkeler
1.        Yeni bir katman ancak farklı seviyede bir soyutlama gerekiyorsa oluşturulur.
2.        Her bir katman iyi tanımlanmış bir fonksiyonu yerine getirmelidir.
3.        Her katmanın yerine getireceği fonksiyon, uluslararası standart protokollerini tanımlamaya yönelik olarak seçilmelidir.
4.           Arabirimler aracılığıyla bir katmandan diğerine gönderilen bilgiler en aza indirgenmelidir.
5.        Katman sayısı, aynı katman içerisinde farklı ve çok sayıda fonksiyonu içermeyecek kadar fazla fakat mimariyi çok genişletmeyecek kadar da az sayıda olmalıdır.
Katman 7: Uygulama Katmanı (application)
Uygulamalara değişik hizmetler sunar. Kullanıcıların etkileşimde bulunduğu uygulama programları doğrudan bu katmanla iletişim içindedir. Dosya aktarımı (FTP), elektronik posta (e-mail), TELNET, Ağ yönetimi gibi uygulamaların bulunduğu, kullanıcıya en yakın katmandır.
Katman 6: Sunum Katmanı  (presentation)        
Bilginin iletimde verinin kullanılacak biçiminin düzenlenmesini sağlar. Sıkıştırma açma, şifreleme/şifre çözme, EBCDIC-ASCII dönüşümü ve ters dönüşüm gibi işlevlerin yerine getirilmesini sağlar.
Katman 5: Oturum Katmanı  (session)
Farklı bilgisayarlardaki kullanıcıların birbirleri üzerinde bir oturum açmasını sağlar.
Katman 4: Taşıma Katmanı  (transport) 
Bilginin son alıcıda her türlü hatadan arındırılmış olarak elde edilebilmesini sağlar. Bu katmanın oluşturduğu bilgi bloklarına bölüm(segment) denir. Sırası bozuk olan gelen verileri sıralandırıp, bölümleri numaralandırır. Bilgisayarlar arasında iletişim güvenliğini sağlar.
Katman 3: Ağ Katmanı  (network) 
Veri paketlerin gönderici ve alıcı bilgisayara nasıl ulaşacagını, yönlendirme işlemlerin gerçekleştiği katmandır. Ağ katmanındaki bilgi bloklarına paket (packet)adı verilir.
Katman 2: Veri Bağı Katmanı  (data link)
Gönderilen veriyi iletişim hatalarından arındırılmış olarak fiziksel katmandan alıp ağ katmanına gönderir. Alıcı ve göndericinin hızlarının farklı olması durumunda zaman ayarlaması yapar. Bu katmanda gönderilen/alınan lojik işaret bloklarına çerçeve(frame) denir.
Katman 1: Fiziksel Katman  (physical)
Herhangi bir anlam ve yapısal bilgi içermeyen bit dizilerini alır ve gönderir.
TCP/IP Referans Modeli Katmanları
1.     Uygulama (Application)
2.     Taşıma (Transport)
3.     Internet
4.     Ağ (Network)

Benzerlikler:
1.     Her ikisi de katmanlı yapıdadır.
2.     Her ikisi de içerik bakımından farklı olsa da uygulama katmanına sahiptir.
3.     Her ikisi de devre-anahtarlamalı teknolojiyi benimsemiştir.
4.     Her ikisinde de karşılaştırılabilir taşıma ve ağ katmanları vardır.

Farklar:
1.        TCP/IP sunum ve oturum katmanlarını uygulama katmanı içine almıştır.
2.        TCP/IP, OSI’deki fiziksel ve data-bağlantı katmanlarını tek katman içine almıştır.
3.        TCP/IP daha az katmana sahip olduğu için daha basit görünmektedir.
4.        Internet TCP/IP modeli kurulmuştur. Dolayısıyla denenmiş ve övgü almış bir modeldir. Ancak OSI modeline göre kurulmuş bir protokol yoktur. Ancak hemen hemen hepsi OSI modelinden ilham almaktadır.
k
 
Topolojiler
1.        Linearbus network topology
2.        Ring network topology
3.        Dual ring network topology
4.        Star network topology
5.        Extendedstar network topology
6.        Tree network topology
7.        Irregular network topology
8.        Complete (mesh) network topology
9.        Cellular network topology
s

R- Sepeater: İletişim ortamındaki sinyali alıp kuvvetlendirerek bir diğer fiziksel ortama verir. Kolay kurulmaları, az bakım gerektirmeleri ve fiyatlarının ucuz olması nedeniyle ağın genişletilmesi amacıyla sıklıkla kullanılırlar. Katman 1 cihazı. (PhysicalLayer)
Hubs: Çok portlu repeaterlara benzer. Ancak çalışma ilkesi benzer olsada işlevsel farklılık gösterir. Yıldız topoloji kullanarak ortalama bant genişliği toplam uç sayısına bölünür. Katman 1 cihazı.(PhysicalLayer)
Bridges: İki tcp ağını birbirine bağlayan donanımdır. İki veya daha fazla aynı protokolü kullanılan ağları bağlanmak için kullanılan bir cihazdır. Bağlama işlemi iki ağdaki her mesajı birbirine tekrarlanarak sağlanır. Katman 2 cihazı.(DataLinkLayer)
Switches:Bilgisayarların ve diğer ağ ögelerinin birbirine bağlanmasına olanak veren ağ donanımlarından biridir. Osi 7 katman modelinin 2.katmanında ve yeni dağıtıcılar ip routing yapabildiği için 3.katmandada çalışır. Switchler üzerinde yer alan mac adresleri ile iletişimi sağlarlar.
Router:Yönlendirme işlemi yapmaktadır. Ağdaki bilgisayarların yönlerini bulmalarına kılavuzluk eder. Katman 3 cihazı.(Network Layer)

18 Nisan 2015 Cumartesi

JAVA ÖRNEKLERİ (Diziler-1)

//Tek boyutlu diziye dışarıdan eleman girilmesi..

package eleman_giris;
import java.util.Scanner;
public class Eleman_giris {
    public static void main(String[] args) {
        Scanner giris=new Scanner(System.in);
        System.out.print("Kaç elemanlı dizi olsun?=");
        int n=giris.nextInt();
        int dizi[]=new int[n];
        for (int i = 0; i < dizi.length; i++) {
       
            System.out.print("dizinin "+(i+1)+". degerini giriniz:");
            dizi[i]=giris.nextInt();
        }
        for (int i = 0; i < dizi.length; i++) {
            System.out.println(+dizi[i]);
        }
    }
    }

//tek boyutlu dizide arama yapmak için

package eleman_giris;
import java.util.Scanner;
public class Eleman_giris {
    public static void main(String[] args) {
        Scanner giris=new Scanner(System.in);
        System.out.print("Kaç elemanlı dizi olsun?=");
        int n=giris.nextInt();
        int dizi[]=new int[n];
        for (int i = 0; i < dizi.length; i++) {
       
            System.out.print("dizinin "+(i+1)+". degerini giriniz:");
            dizi[i]=giris.nextInt();
        }
        System.out.println("Ara:");
        int ara=giris.nextInt();
        for (int i = 0; i < dizi.length; i++) {
            if (ara==dizi[i]) {
              System.out.println("Aranilan sayi dizinin "+(i+1)+".elemanidir");
            }
       
       }
    }
    }

// birim matris oluşturma..

package eleman_giris;
import java.util.Scanner;
public class Eleman_giris {
    public static void main(String[] args) {
        Scanner giris=new Scanner(System.in);
        System.out.print("Kaç elemanlı dizi olsun?=");
        int n=giris.nextInt();
        int dizi[][]=new int[n][n];
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < n; j++) {
                if (i==j) {
                    dizi[i][j]=1;
                }
                else    dizi[i][j]=0;
            }
        }
        for (int i = 0; i < n; i++) {
            System.out.println("");
            for (int j = 0; j < n; j++) {
                System.out.print(+dizi[i][j]);
            }
       }
        System.out.println("");
    }
    }

//tek ve cift sayıları bulup tekdizi veya çift diziye atama, istenileni gösterme..

package eleman_giris;
import java.util.Scanner;
public class Eleman_giris {
    public static void main(String[] args) {
        Scanner giris=new Scanner(System.in);
        System.out.println("kaç elemanlı matris olsun?:");
        int n=giris.nextInt();
        int dizi[]=new int[n];
        int cdizi[]=new int[n/2];
        int tdizi[]=new int[n/2];
        int c=0,t=0;
        for (int i = 0; i < n; i++) {
            dizi[i]=i;
            if (dizi[i]%2==0) {
                cdizi[c]=i;
                c++;
             }
            if (dizi[i]%2==1) {
             tdizi[t]=i;
             t++;
            }
        }
        System.out.println("tek sayilari mi goruntulemek istersiniz yoksa cift sayilari mi?:");
        System.out.print("1)Cift, 2)Tek =>");
        int secim=giris.nextInt();
        switch(secim)
        {
            case 1: for (int i = 0; i < cdizi.length; i++) {
                    System.out.println(+cdizi[i]);
        }
            break;
            case 2: for (int i = 0; i < tdizi.length; i++) {
            System.out.println(+tdizi[i]);
        }
            break;
            default : System.out.println("1 veya 2 rakamını giriniz..");
        }
       
        }
    }

Etiketler