Ethernet Kartı
Ethernet kartı
Ethernet kartı; gerçek anlamda isimi ağ ara birim kartıdır. (Network Interface Card – NIC) bilgisayarın bir bilgisayar ağına bağlanabilmesi için bilgisayara takılan bir karttır. Yerel bir ağdaki (Local Area Network – LAN) kişisel bilgisayarlar ve iş istasyonları Ethernet ya da Token Ring gibi LAN veri transfer teknolojileri için dizayn edilmiş bir ağ arabirimi içerir. Ağ arabirim kartları bir ağa atanmış full-time bağlantı sağlarlar. Çoğu PC ve taşınabilir bilgisayar Internet’e bağlanmak için çevirmeli bağlantı kıullanırlar. Modem Internet servis sağlayıcısına bağlantı sağlayan bir arabirimdir. Bir ağ arabirim kartı bilgisayardaki bir genişleme yuvasına takılarak bilgisayarın bir ağa bağlanmasını sağlayabilir. Çoğu ağ arabirim kartları özel bir tip ağ protokol ve ortam için dizayn edilmiştir.
Malum bilgisayar kullananlarımızın yabancı olmadığı ethernet hakkında ne kadar bilgimiz mevcut bu konuda yaptığım bir araştırma neticesinde ethernetini ne olduğunu ve nasıl çalıştığı hakkında bir yazı buldum, işte aşağıda :)
Ethernet İle İlgili Temel Bilgiler
İlk başta yerel ağ(LAN) kavramı yoktu. Eğer iki bilgisayar arasında veri aktarımı yapmak isterseniz tek yol, dosyayı diskete kopyalayıp diğer makinaya gidip yüklemekti. Şahsen gördüğüm bir örnek şu şekildeydi: Bir ofiste aynı DBase programını kullanan üç bilgisayar vardı ancak aralarında ağ kurulu değildi. Bilgisayarların birinden müşteri girişi, diğerinden ödemeler ve diğerinde de stok işlemleri yapılıyordu. Akşam olunca her üç makinadanda disketle o bilgisayarda üzerinde işlem yapılan dosyalar alınıyor ve diğer iki makinaya aktarılıyordu. Böylece her makina en azından bir önceki günün tüm bilgilerini kullanabiliyordu. Tabii arada bir disketler karışınca tüm veri yapısı bozulup, sonra 1-2 ay gece gündüz demeden en baştan veri girişi yapılması gerekebiliyordu :)
Kişisel bilgisayarların 80'li yılların başlarından itibaren yaygınlaşması ile bilgisayarlar arasında hızlı ve güvenli veri aktarımına olan ihtiyaç arttı. Çözüm ise Ethernet'ti.
Günümüzde bir çok LAN teknolojisinden söz edise de, Ethernet açık ara farkla en yaygın LAN teknolojisidir. Ethernet ilk ortaya çıkışından itibaren teknolojisi ve üretim haklarıyla herkese açıktır. Kullandığı teknolojinin üretimi kolaydır ve ucuza mal edilebilir. Aynı zamanda güvenilir olduğu ve kullanıcıların ihtiyaçlarını karşıladığı için en yaygın yerel ağ teknolojisi haline gelmiştir. En yaygın teknoloji olması ethernetin üreticiler için büyük bir pazar haline gelmesine ve sürekli geliştirilmesine yol açmaktadır.
Ethernetin tarihi
Ethernet Xerox firmasının Palo Alto araştırma merkezinde 1970'li yıllarda Dr. Robert M. Metcalfe tarafından geliştirildi. Metcalfe "geleceğin ofisi" projesi üzerinde çalışıyordu ve elinin altında dünyanın ilk workstation bilgisayarlarından biri olan Xerox Alto bilgisayarlar bulunuyordu.
1972 yılının sonlarında, Metcalfe ve Xerox'ta çalışan iş arkadaşları Xerox Alto'ları birbirine bağlamak için deneysel olarak Ethernet'i geliştirdiler. Böylece Alto bilgisayarlar diğer sunucular ve lazer yazılıcılar birbiriyle haberleşebiliyordu. İlk Ethernetin çalışma hızı Alto'larla uyumlu olması için Alto'nun çalışma hızı ile aynı tutulmuş ve sonuçta ağ 2.94 Mega Bit/Saniye hızında çalışmıştır. İlk ethernet tek parça bir koaksiyel kablo kullanıyordu.
Metcalfe önce Alto Aloha Network olan sistemin ismini 1973 yılında "Ethernet" olarak değiştirdi. Böylece sistemin sadece Alto bilgisayarlarda değil tüm bilgisayarlarda çalışabileceğini vurgulamak istiyordu. Ethernet kelimesi bir zamanlar tüm uzayı doldurduğuna ve elektromanyetik sinyallerin aktarımını sağladığına inanılan "ether" den geliyordu. Metcalfe'nin sisteminde de veri bitleri tüm sistemlere ulaştığı için sonuçta "Ethernet" doğmuş oldu.
1979 yılına kadar sadece Xerox içinde kullanılan Ethernet'in resmi duyurusu 1980 yılında yapıldı. Xerox, DEC(Digital Equipment Corporation) ve Intel firmaları ile beraber, sonradan "DIX Standart" olarak anılan ethernet standardını yayınladı. DIX standardı koaksiyel kablo üzerinden 10 MBs hızında çalışan etherneti tanımlamıştır. Böylece ethernet, firma içi deneysel bir çalışmadan herkese açık gerçek bir ürün haline gelmiş oldu.
Ethernet veya IEEE 802.3 ?
DIX standardından sonra Ethernet, Institute of Electrical and Electronics Engineers (IEEE)'in 802 kodlu komisyonu tarafından geliştirilmeye devam etti. IEEE 1985 yılında "IEEE 802.3 Carrier Sense Multiple Access with Collision Detection (CSMA/CD) Access Method and Physical Layer Specifications" şeklinde bir isimle yeni ethernet standardını yayınladı. İzleyen dönemde IEEE standardı International Organization for Standardization (ISO) tarafından yürütülmeye devam etti. ISO günümüzde bilgisayar ağları ile ilgili tüm standarları yürüten kuruluştur.
1985 yılından itibaren üretilen tüm ürünler IEEE 802.3 standardına göre üretilmektedir. Aslında bu ürünleri "IEEE 802.3 CSMA/CD" standardını kullanan ürünler olarak tanımlamak daha doğrudur. Ama dünya çapında hala genel olarak "Ethernet" kelimesi tüm bu ürünler ve dahil oldukları teknolojiyi tanımlamak için kullanılmaktadır.
Ethernet tek bir ağ teknolojisi olmaktan çok, aynı bus topolojisini, frame yapısını ve network access(ağ erişimi) metodunu kullanan ağ teknolojileri ailesini tanımlar.
Ethernetin çalışma şekli
Etherneti geliştiren ekip üç ana problemi çözmek zorundaydılar:
Kablo üzerinden veri nasıl gönderilecek
Gönderen ve alıcı bilgisayarlar nasıl tespit edilecek
Belli bir anda kabloyu kimin kullanılacağına nasıl karar verilecek
Verinin aktarımı: Paketler (Frames)
Tüm bilgisayar ağları ağ üzerinden aktarılacak veriyi sabit boyutta küçük paketler halinde iletirler. Bu yöntemin iki önemli faydası vardır. Birincisi büyük bir dosya transferi yapan bir bilgisayar ağın tamamını uzun bir süre meşgul durumda tutmamış olur. Bir sistem veriyi paketler halinde yollarken, her paketi göndermeden önce kablonun kullanımda olup olmadığını kontrol ettikten sonra paketi yollar. Paket karşıya ulaştığında, kablo tekrar ağdaki tüm makinalar için boş duruma gelmiş olur. Az önceki makina ikinci paketi yollamadan önce tekrar kabloyu kontrol etmek zorundadır. Bu arada diğer bir sistem kendi paketini yollayabilir. Paketler küçük yapıda olduğu için saniyelerler içinde yüzlercesi değişik bilgisayarlar tarafından yollanıp-alınabilir. Bilgisayarları kullanan insan için durum, ağda sanki herkes aynı anda veri alışverişi yapıyormuş gibidir. Veri paketler halinde gönderilmeseydi, bir kullanıcı 50 MB bir dosyayı başka bir bilgisayara yollarken belki 3-5 dakika boyunca diğer hiçbir sistem ağı kullanamayacaktı.
Paketli yapının ikinci faydası ise şudur: 50 MB'lık dosyanın bir biti bile aktarım esnasında bozulursa, bu tüm dosyanın en baştan tekrar gönderilmesi anlamına gelir. Oysa veri paketlere bölünüp yollandığında, sadece bozuk giden paketin tekrar yollanması kafidir.
Ethernet veri paketinin yapısı sabittir. Her paket şu dört bilgiyi içerir:
Alıcının MAC adresi
Gönderenin MAC adresi
Gönderilecek veri'nin kendisi
CRC kodu
MAC adresi
Ethernet ağına dahil her cihaz ya da ethernet arayüzüne sahip her cihaz "node" olarak adlandırılır. Bilgisayarlara ethernet kartı takınca bir node haline gelirler, ancak ethernet girişi olan başka cihazlar da olabildiği için(router'lar mesela) genel kavram node'dur.
Ethernet ağında sistemler birbirinden sahip oldukları MAC adresi ile ayırdedilirler. Her node veya basitçe her ethernet kartı dünyada eşi olmayan bir adrese sahiptir. Bu adres 48 bitlik bir sayıdır. Örneğin bu yazının yazıldığı bilgisayara takılı ağ kartının MAC adresi şöyle:
100100000110101001010010100011001101100000011
İlgi çekici değilmi? İkili sistemdeki bu sayıyı söylemek ve yazmak zor olduğu için bu sayı 16'lı sayı sisteminde yazılır:
12 0D 4A 51 9B 03
Benim kartımın üreticisi Cnet isimli firma. Bu firma, ağ kartı üretmeye karar verince önce gidip IEEE'ye başvurmuş ve IEEE buna 24 bitlik bir üretici kodu vermiş. Bu kod Organizationally Unique Identifier(OIU) olarak adlandırılıyor ve her üreticiye farklı bir kod veriliyor. Daha sonra Cnet ürettiği her ağ kartı için ilk 24 biti kendi OIU numarası, geri kalan 24 biti ise kartın seri numarası(Device ID-başka bir karta daha verilmeyecek) olmak üzere MAC adresi belirleyip, ağ kartının üzerinde programlanabilir bir çipe bu numarayı yazar. Böylece bu kartın dünyada eşi olmayan bir MAC adresi olur.
Bunun sayesinde sizin almış olduğunuz her ağ kartı üreticisi, üretim tarihi, markası-modeli ne olursa olsun farklı bir MAC adresine sahip olacaktır. Ethernet sisteminde node'ları birbirinden ayırmak için bu MAC adresleri kullanılır.
MAC adreslerinin kullanımı
MAC adresleri sayesinde sistemler ağ üzerinden kendilerine ulaşan veri paketinin kendilerine gelip gelmediğini anlarlar. Ethernet ağında, bir bilgisayar bir veri paketi yolladığında, bu paket ağdaki tüm sistemlere ulaşır. Her makina paketin ilk bölümü olan alıcı MAC adresini okur ve kendi MAC adresiyle kontrol eder. Eğer gelen paket kendine aitse işler, değilse göz ardı eder.
http://www.turkcenet.org/yerel_res/5_3.gif
Ethernet'in bu özelliği ciddi bir güvenlik açığına yol açabilir. Packet Sniffer olarak adlandırılan programlar, bilgisayara gelen veri paketlerini MAC adresi ne olursa olsun alıp kullanmaya izin verirler. Bu tip programlar iyi niyetle kullanıldığında problemlerin çözümüne yarayabileceği gibi, yerel ağınızda meraklı bir kullanıcının sizin aslında başka bir makinaya göndermekte olduğunuz her dosyayı izlemesine neden olabilir.
Multicast ve Broadcast Adresleri
Bir grup sistemin aynı veriyi alması isteniyorsa, bu gruba dahil olması istenen sistemlerde ethernet arayüzü (bilgisayardaki ağ kartı mesela) belli bir multicast adresine yollanmış veriyi kendi MAC'ine gelen bir veriyi alır gibi alması için ayarlanabilir. Yani multicast adresler belli bir grup cihazın aynı veriyi almasını sağlar.
Broadcast adresi ise 48 biti de 1 olan özel bir adrestir. Bu adrese yollanmış bir veri paketini alan her ağ kartı bu paketi kabul eder ve işleme koyar. Bazen tüm bilgisayarlara gitmesi gereken bir mesaj göndermek gerekebilir. Bu durumda mesajı içeren veri paketleri broadcast adresine yollanır böylece ağa dahil tüm cihazlar bu mesajı alır.
CRC hata denetimi
Cyclic Redundancy Check veri paketlerinin elektrik sinyali olarak kablodan geçerken bozulmaları durumunda bu bozulmanın yani veri paketinin karşıya yolda değişmiş olarak ulaştığının tespitine yarar.
Gönderen taraf, veri paketine konacak veriyi matematiksel bir işlemden geçirir. İşlemin sonucu CRC kodudur. Veri ve CRC kodu karşı tarafa yollanır. Alıcı paketi açar, veriyi okur, aynı matematiksel işlem veriye uygulanır. Sonuç eğer veri yolda bozulmadan, yani bir bit'i bile değişmeden gelmişse, CRC kodu ile aynı olmaldır. Aksi halde alıcı gönderen makinaya ilgili paketi tekrar yollamasını söyler.
Bu noktaya kadar en başta karşımıza çıkan iki problemi yani verinin nasıl gönderileceğini(paketler halinde) ve ağa dahil sistemlerin nasıl birbirinden nasıl ayırdedileceğini(MAC adresi ile) çözdük. Sıra geldi kimin veri paketini yollamak için kabloyu nasıl kullanacağının belirlenmesine.
Kabloyu kim kullanacak (CSMA/CD)
İlkokul öğretmenim her zaman söz size gelmeden konuşmayın derdi. Ama söz bize nasıl gelir, yoksa biz mi söze gideriz o ayrı bir konu. Bir arkadaş grubunda sohbet ederken benim taktiğim ise her zaman şöyledir. Söz almadan önce konuşanın konuşmasını bitirmesini beklerim, ancak kimse konuşmuyorsa sözümü söylerim(Carrier Sense). Ancak benim gibi iyi aile terbiyesi almış bir arkadaşım da aynı benim taktikle sözü alabilir, kimsenin ağzını kapatamayız değil mi canım?(Multiple Access). Bazen işte böyle ikimizde fırsattan istifade iki laf da ben edeyim diye aynı anda söze başlarsak ne olur, gürültü olur tabii, ben böyle durumlarda hemen çenemi kaparım(Collision Detection).
Ethernet'te benzer bir teknik kullanır. Carrier Sense, Multiple Access, Collision Detection veya kısaca CSMA/CD'ye göre, ethernet kartı veri gönderimine başlamadan önce kablonun kullanımda olup olmadığını kontrol eder. Eğer o anda diğer bir sistem kablodan veri aktarıyorsa buna Carrier denir. Kabloda aktarım olup olmadığını tespit Carrier Sense'dir.
Kablo boşta olduğunda her Ethernet arayüne sahip cihaz eşit hakka sahiptir ve veri aktarımına başlayabilir. Buna Multiple Access denir. Bir ethernet ağında bilgisayar üzerinde çalışan işletim sistemi veya kullanıcısı önemli değildir. Bir DOS makinası ethernetin kabloyu kullanma şansı açısından W2000 server ile aynıdır.
Bazı durumlarda iki sistem kablonun boş olduğunu tespit ederek aynı anda veri aktarımına başlayabilir. Bu durumda iki tarafın yolladığı veri çakışır(Collision). Ethernet kartları çakışmayı hemen tespit ederler(Collision Detection).
Collision durumları
Collision veya çakışma kelimesi insanda olumsuz bir etki uyandırsa da, bir ethernet ağında çakışmaların oluşması gayet normaldir.
Eğer birden fazla ethernet kartı aynı anda veri iletimine geçerlerse çakışma oluşur. Sistemler kendi yolladıklarıyla kablodan geleni karşılaştırarak bunu hemen tespit ederler. Bunun akabinde her iki taraf da özel bir algoritma ile belirlenen rastgele bir süre boyunca beklerler.
Çakışmaların oluşması ethernetin doğasında olan bir şeydir ve her ethernet ağında çakışma olması kaçınılmazdır.
Eğer ağ limitlerin dışında kullanılmıyorsa(ağa dahil sistem sayısı, kullanılan kablo uzunlukları, veri aktarım yükü vs.) çakışmalar saniyenin milyonda biri gibi sürelerde giderilir. Yani çakışmanın ardından birkaç mikrosaniye bekleyen sistem veriyi yollamaya tekrar başlar.
Eğer ağ çok yoğun kullanılıyorsa, aynı frame/veri paketi gönderilirken birden fazla çakışma olabilir. Bu durumda sistemler rastgele belirlenen bekleme süresini uzatmaya başlarlar. Burada süre rastgele belirleniyorsa nasıl daha uzun veya kısa olabilir diye bir soru akla gelebilir. Sürenin rastgele olması her iki tarafında aynı süre bekleyip, sonra da yine aynı anda aktarım yapmalarının önüne geçmek için rastgeledir. Örneğin her iki tarafta birden ona kadar bir sayı tutar ve o kadar milisaniye bekler. Ancak süre belirlenirken, aynı paketin gönderiminde üstüste çakışma oluyorsa(ağda yoğun trafik varsa) süre 1-10 arası değil belki 50-100 arasında seçilir.
Ethernetin bu yapısı ağdaki trafik yoğunluğu arttıkça kendisini duruma uydurmasını sağlar. Ethernet aynı veri paketini 16 denemeden sonra hala gönderemediyse bu paketi iptal eder. Bu ancak çok uzun bir süre çok aşırı yoğunluk yaşanması durumunda, veya kabloda meydana gelen bir arıza nedeniyle olabilir.
Bu noktada ethernetin diğer ağ teknolojilerinde de olduğu gibi veri aktarımını %100 garanti etmediğini görüyoruz. Bu açık üst katman protokollerinin sağladığı veri kontrolü ile telafi edilir. Bir paket yolda kaybolursa veya 16 denemede de yollanamayıp iptal edilirse, alıcı taraftaki üst katman protokol (TCP/IP kullanılıyorsa; TCP) gönderen taraftaki TCP'ye gelen veride bir eksiklik olduğunu bildirecek ve tekrar yollanmasını isteyecektir.
Ethernetin kullandığı CSMA/CD tekniğinin basit yapısı ethernet ağ kartlarının ve diğer ekipmanların rakip teknolojilere (Token Ring) göre daha ucuza üretilebilmesini sağlar. Böylece ethernet ağları çok daha ucuza mal olur.
Ethernet ne kadar hızlı
CSMA/CD tekniği nedeniyle ethernet veri aktarımı yapabileceği belli bir süreyi çakışmalarla uğraşırken harcar. 90 kullanıcılı bir ethernet ağının olduğu firmada pazartesi sabahı 9:00'da herkes aynı anda oturup makinalarını açıp, şifrelerini girip, gün boyunca kullandıkları programa girmeye çalıştığı anda ağda çok büyük miktarda çakışma oluşur. Kullanıcılar açısından sanki herkes aynı anda ağı kullanıyor gibidir ama aslında CSMA/CD çalışmaktadır. Sık sık "sabahları amma yavaş çalışıyor bu aletler" serzenişlerini duyarsınız. Ancak gün boyunca hiçbir zaman bu 90 kullanıcı da aynı anda ağı kullanmayacağı için, ağ daha yüksek performasla çalışır.
Her ethernet ağı belli bir süreyi çakışmalarla ve broadcast mesajlarıyla harcar. Dolayısıyla hiçbir ethernet söylendiği gibi 10Mbs veya 100Mbs'de çalışmaz. Daha doğrusu sizin birim zamanda aktardığınız veri miktarı bu değerlere hiçbir zaman ulaşamaz çünkü ağdaki bu veri aktarım kapasitesinin bir bölümü collision ve broadcast mesajları ile harcanmaktadır.
Ethernetin kullandığı basit iletişim yapısı nedeniyle performans kaybı kaçınılmazdır. Ancak bu basit yapı ucuz üretim maliyetleri anlamına gelir. Sonuç itibariyle getirisi-götürürüsü karşılaştırıldığında ethernet yine de en uygun çözüm durumundadır.