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.
Bu diyagram...Dr. Robert M. Metcalfe tarafından 1976 yılının haziran ayında National Computer Conferance'da ethernetin doğuşu sırasında çizildi.
Ethernetin doğuşundan beri bu diyagramdaki temellere dayanan kullanım süregeldi.
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.
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).