TL; DR> MAC adresleri, bir Ethernet ağının (ve WiFi gibi diğer bazı standartlara benzer) düşük bir bileşenidir. Bir cihazın yerel fiziksel ağdaki (LAN) bir makine ile iletişim kurmasını sağlar ve İnternet üzerinden yönlendirilemez - çünkü fiziksel donanım teorik olarak dünyanın herhangi bir yerine takılabilir.
Buna karşılık, IP adresleri tüm interneti kapsar ve yönlendiriciler, hedeflerine ulaşmak için birden fazla atlamaya ihtiyaç duysalar bile nereye veri göndereceklerini bulmak için bunları kullanırlar - ancak yerel ağınızdaki fiziksel donanıma müdahale etmekte yardımcı olmazlar.
Ethernet'ten daha iyi bir standart bulmuş olsaydık, MAC adreslerini kullanmayabilirdi, ancak internetten IP trafiği, internetten diğer insanlar daha önce hiç duymamış olsa bile, yine de üzerinden akabilirdi.
IP'den daha iyi bir standart bulmuş olsaydık (örneğin tüm IPv4 adresleri tükenirse IPv6), çoğu Ethernet donanımı yeni tür trafiği değişiklik yapmadan taşıyabilirdi - ve basit bir yazılım / bellenim güncellemesi geri kalanının çoğunu giderebilirdi.
Yerel Ethernet (veya wifi) ağ işlevi yapmak için MAC adresleri gerekir. Fiziksel bağlantı paylaşılsa bile, bir ağ cihazının doğrudan bağlı tek bir cihazın dikkatini çekmesine izin verir. Binlerce cihaz tek bir kuruluşta birbirine bağlandığında bu önemli olabilir. Daha geniş internette hiçbir işlevi yoktur.
Bu sorunun cevabını gerçekten anlamak için, OSI (bazen 7 katmanlı olarak da bilinir) modelini anlamanız gerekir .
Doğrudan fiziksel bağlantısı olmayan ayrı makinelerde çalışan 2 uygulama arasında iletişimin gerçekleşmesi için çok iş yapılması gerekiyor.
Eski günlerde, her uygulama uzak uçtaki uygulamaya ulaşacak ve çözülebilecek uygun bir sinyal üretmek için hangi makine kod talimatlarının çalıştırılması gerektiğini tam olarak bilirdi. Tüm iletişim etkili bir şekilde noktaya uçtu ve konuşlandırılacağı duruma tam olarak uyacak şekilde yazılım yazılması gerekiyordu. Açıkçası, bu sürdürülemezdi.
Bunun yerine ağ oluşturma problemi katmanlara ayrılmıştı ve her katman uzaktaki bir makinede eşleşen katmanla nasıl konuşulacağını ve bunun altındaki makineyle yerel makinede nasıl bir katman (ve bazen yukarıda) konuşacağını biliyordu. Diğer katmanlarla ilgili hiçbir şey bilmiyordu - bu yüzden web tarayıcınızın bir token ring, ethernet veya wifi ağı kullanan bir makinede çalışıp çalışmamasına dikkat etmesi gerekmez - ve kesinlikle hangi donanımı bilmesi gerekmez uzaktaki makine kullanır.
Bu işi yapmak için, 7 katmanlı model iç içe geçmiş zarflar gibi bir sistem kullanır; uygulama verilerini oluşturur ve İşletim Sisteminin teslim etmesi için bir zarfa sarılır. İşletim sistemi bunu başka bir zarfa sarar ve Ağ sürücüsüne iletir. Ağ sürücüsü bunu başka bir zarfa sardı ve fiziksel kabloya yerleştirdi. Ve bunun gibi.
Alt katman, katman 1 , fiziksel katmandır. Bu teller, transistörler ve radyo dalgaları tabakasıdır ve bu tabakada, iletişim çoğunlukla sadece bir olanlar ve bir şeyler akışıdır. Veriler fiziksel olarak bağlı her yere gidiyor. Bilgisayarınızın ağ bağlantı noktasını bir CAT-5 kablosu kullanarak anahtarınıza takın.
Katman 2 , Veri bağlantı katmanıdır. Bu, olanlar ve geceler için bir yapı, bazı hata tespit ve düzeltme yetenekleri ve fiziksel olarak bağlı cihazın (buradaki fiziksel bağlantılar aslında wifi üzerinden olabilir) mesaja dikkat etmesi gerektiğine dair bazı göstergeler sağlar. MAC adreslerinin devreye girdiği katman budur ve daha sonra geri döneceğiz. Ancak MAC adresleri bu katmandaki tek olasılık değil. Token ring ağları, örneğin, farklı bir veri bağlantısı uygulamasına ihtiyaç duyar.
Katman 3 , Ağ katmanıdır. Bu, IP'nin çalıştığı katmandır (yalnızca tek ağ katmanı protokolü olmasa da) ve bilgisayarların "ağ" üzerindeki herhangi bir makineye ulaşabilecek bir ileti göndermesine olanak sağlayan katmandır. Söz konusu makineler arasında doğrudan bir bağlantı olması gerekmez.
Katmanlar 4-7 daha yüksek seviye protokollerdir. Donanımdan uzaklaşıp uygulamaya daha da yaklaşıyorlar. Örneğin, TCP, IP'nin üstüne oturur ve mesajları kaybolduğunda otomatik olarak yeniden gönderen mekanizmalar sağlar.
Böylece MAC adresleri Katman 2'de çalışır ve aynı fiziksel bağlantıyı paylaşan diğer makineler tarafından göz ardı edilecek mesajların gönderilmesi için fiziksel olarak birbirine bağlı 2 makineye izin verir.
Makineye veri göndermek isteyen bir uygulamam olduğunu varsayalım.
Katman 3, verileri, diğerlerinin yanı sıra, IP adresi 8.8.8.8'i içeren bir zarf içine sarar ve bunu katman 2'ye verir.
Katman 2 bu IP adresine bakar ve doğrudan bağlı olduğu hangi makineye bu mesajla baş edebileceğine karar verir. Doğrudan bağlı olan IP adreslerinin seçiminde, makinedeki ağ kartının ilgili MAC adresi ile birlikte bir arama tablosu olacaktır. Bu arama tablosu, bir ağ kartının doğrudan bağlı diğer cihazlarla ilgili sorular sormasını sağlayan ARP adlı bir protokol kullanılarak oluşturulmuştur. Ethernet, bir cihazın fiziksel olarak bağlı tüm cihazlarla konuşmasını sağlayan FF: FF: FF: FF: FF: FF özel bir MAC adresi saklar .
IP adresi tablodaysa (veya ARP aracılığıyla çözülebilirse), Katman 3 zarfını, yeni başlıkta MAC adresi ile birlikte Katman 2 zarfına saracak ve tüm paketi Katman 1'deki donanıma geçirecektir. Eşleşen MAC adresine sahip ağ kartı mesajı alacak ve ağ sürücüsü Katman 2 zarfını açacak ve içeriği, işletim sisteminin hangi kısmının belirli bir IP adresinde mesaj almayı beklediğine kadar iletecektir.
Alternatif olarak, IP adresi yerel ağda değilse, yeni zarf bu ağ arayüzü için yapılandırılmış olan varsayılan ağ geçidinin (yani Router) MAC adresine sahip olacak ve donanım paketi yönlendiriciye taşıyacaktır.
Yönlendirici, katman 2 zarfında kendi MAC adresini fark eder ve seviye 2 paketini açar. Seviye 3 zarfındaki IP adresine bakar ve mesajın daha sonra nereye gitmesi gerektiğine karar verir, bu muhtemelen ISS'nizdeki yönlendirici olacaktır. Yönlendirici NAT (veya benzeri) kullanıyorsa, dahili IP adreslerinizi gizli tutmak için bu noktada seviye 3 zarfını bile değiştirebilir. Daha sonra, seviye 3 zarfı, ISS'nin yönlendiricisinin MAC adresine yönlendirilen yeni bir seviye 2 zarfa saracak ve mesajı oraya gönderecektir.
Dış zarfı çıkarma ve içerikleri zincirdeki bir sonraki adıma yönelik yeni bir zarf içine sarma işlemi, mesaj hedef makineye ulaşana kadar devam edecektir.
Zarflar daha sonra, mesaj katmanları yukarı doğru hedeflenen alıcıya ulaşana kadar geriye doğru yürüdükçe sökülmeye devam edecektir; bu, bir yerde bir uygulama olacak, umarız mesajla ne yapacağını bilemeyecek, mesajı oraya ya da cevabı orijinal makineye geri döndürmek için gerekli tüm adımları attı.
Ama hepsi işe yarıyor, neredeyse sihir gibi!
Ağ anahtarlarının, ağ trafiğini akışını optimize etmek için MAC adreslerini kullanabileceğini unutmayın. Bir ethernet hub'ı, gelen tüm trafiği tüm bağlantı noktalarına iletir, buna karşılık bir anahtar trafiği yalnızca paketin hedef MAC adresinin bağlı olduğu tek bağlantı noktasına iletebilir. Bu, ağın etkin bant genişliğini arttırır; Belirli bağlantı noktalarını hedefleyerek, anahtar ağın gereksiz bölümlerinde trafiği yönlendirmekten kaçınır. Anahtar, hangi aygıtların hangi bağlantı noktasına bağlı olduğunu belirlemek için ARP veya paket koklama özelliğini kullanır. Anahtarlar, Katman 2 paketlerinin içeriğini tamamen yok sayar.