Ethernet Frame Nedir?

Ethernet teknolojisi, OSI katmanının 2. katmanında çalışan, ağa dahil cihazların haberleşmesini sağlayan son derece esnek bir veri paketleme yöntemidir. Ethernet üzerinden gönderilen her paket, bir frame olarak paketlenir. Bu frame paketleri, veriyi kaynaktan, hedefe taşıyan birimlerdir ve 7 kısımdan oluşur. Bunları basitçe inceleyecek olursak;

  1. Preamble: 7 byte uzunluğunda, frame’in başladığını bildiren dizilerdir. Alıcı, bu paket sayesinde veri iletiminin başladığını anlar.
  2. Start Frame Delimiter (SFD): Frame’in gerçek başlangıcını belirten, 1 byte değerindeki alandır. SFD; Preamble ile MAC adresi arasında ki sınırı belirtir.
  3. Destination MAC Address: Frame’deki hedef MAC adresini belirtir. 6 byte uzunluğundadır.
  4. Source MAC Address: Veriyi gönderen kaynak cihazın MAC adresini barındıran kısımdır. Bu da 6 byte uzunluğundadır.
  5. EtherType / Length: Gönderilen / alınan frame’in ne tür bir protokol içerdiğini veya toplam uzunluğunu belirtir. IP gibi temel protokollerin tanımlanması bu alanda yapılır.
  6. Payload: Asıl gönderilen verinin bulunduğu yerdir. Genellikle en fazla 1500 byte boyutunda olur. Fakat bu kısım 46 byte‘tan küçükse, en az boyuta ulaşmak için pad denilen, doldurma işlemi yapılır. MTU (Maximum Transmission Unit) burasıdır.
  7. Frame Check Sequence (FCS): Frame’in en sonunda yer alır ve 4 byte uzunluğundadır. Bu paket, verinin iletimi sırasında bir hasar olup, olmadığını belirtir.

Ethernet Frame’lerin Çalışma Prensibi

Yazımızın başında da dediğimiz gibi, Ethernet Frame’leri, OSI katmanının 2. seviyesinde bulunur. Frame’ler, kaynakta oluşturulur ve hedefe gönderilmek üzere 1. katmandan yani fiziksel katmandan iletimi gerçekleştirilir. Hedef cihaz, kendisine gelen frame’deki Destination MAC Adress kısmını kontrol eder ve eğer kendisine geldiyse, veriyi kabul eder. Eğer uyuşma yoksa, son adımdaki FCS alanında hata kontrolü sayesinde frame’i red eder ve Source MAC Adress’teki cihaza hata mesajı döner.

Yukarıda ki kısımları bir örnek ile açıklayacak olursak;

  1. Preamble dediğimiz, ilk kısmın değeri her zaman 10101010 şeklindedir. Yani bu frame parçasını gören alıcı, bir verinin geleceğini anlar.
  2. Preamble dediğimiz değeri alan alıcı, bu verinin bittiğini SFD değeri ile anlar. Alıcı, gönderici tarafından 10101010 değerine ek olarak 1 byte‘ı aldığında, frame 10101011 şeklinde gözükür. Bu 10101011 değerini alan alıcı, bundan sonra hedef MAC adresi değerini bekler.
  3. Örneğin, hedef MAC adresi 00:1A:2B:3C:4D:5E olsun. Hedef MAC adresinde bu değerden başka, 00:00:5E:xx:xx:xx değeri varsa bu multicast, FF:FF:FF:FF:FF:FF değeri varsa bunun bir broadcast olduğunu anlar.
  4. Hedef MAC adresi adımından sonra, cihazla tekrardan iletişim kurmak adına göndericinin MAC adresini öğrenir. Eğer bu işlemler bir router veya switch üzerinde oluyorsa, MAC adresine göre IP adres tablosu güncellenir.
  5. Tüm bu işlemlerden sonra veri iletiminin protokolüne bakılır. Eğer bu işlemler IPv4 üzerinden gerçekleşiyorsa bu alanda 0x0800 değeri, IPv6 üzerinden gerçekleşiyorsa 0x86DD değerini, ARP işlemi ise 0x0806 değerini alır.
  6. Geldik en önemli kısma, kaynak ile hedef arasında bir oturum başlattık. Sonrasında alıcı olan cihaz, göndericiyi tanıdı ve protokol belirlendi. Şimdi ise veri kısmına geldik. Örnek olması adına mesela gönderilen mesajımı Hello, Network! olsun. Bu verinin ASCII karşılığı 48 65 6C 6F 2C 20 4E 65 74 77 6F 72 6B 21 şeklindedir. Yani bu alanda taşınan verinin karşılığı budur.
  7. Tüm bu işlemlerden sonra, bir hata tespit algoritması olan CRC32 algoritması ile frame’in doğruluğu kontrol edilir. 1. 2. 3. 4. 5. ve 6. adımdaki değerlerin, doğruluğunu kontrol eder ve sonuçta 4 byte‘lık bir veri paketi ortaya çıkar. Bu değer ilk önce kaynakta hesaplanır ve frame’in sonuna, yani FCS kısmına eklenir. Alıcı, veriyi aldıktan sonra aynı algoritma ile bir hesaplama yapar ve eğer FCS değeri, alınan frame de ki ilgili alan ile uyuşuyorsa veri iletimi tamamlanır. Eğer alıcı, FCS değerinden farklı bir değer ortaya çıkartırsa paket red edilir ve kaynağa hata kodu dönülür.

Örnek olarak bir frame’in tam yapısını inceleyelim;

ALANDEĞER
PREAMBE + SFD10101010 10101010 10101010 10101010 10101010 10101010 10101010 10101011
Hedef MAC Adresi00:1A:2B:3C:4D:5E
Kaynak MAC AdresiA1:B2:C3:D4:E5:F6
EtherType0x0800
Pay load48 65 6C 6C 6F 2C 20 4E 65 74 77 6F 72 6B 21
FCS0xC1D2A3B4
Örnek Bir Frame Paketi

Ethernet II ile IEEE 802.3 Arasında ki Farklar

Bu yazıyı, Ethernet II mimarisine göre ele aldım. Bunun nedeni Ethernet II’nin günümüzde en çok kullanılan frame formatı olmasından kaynaklı. Fakat IEEE 802.3 ile Ethernet II arasında çok ufak bir fark var.

Ethernet II alanını incelerken, EtherType kısmından söz ettik. Burada üst katmanın protokolünü belirttiğinden (IPv4, IPv6, ARP) bahsetmiştik. Bu sayede kaynak ile hedefin, hangi protokolde konuştuğunu belirlediklerini söyledik.

IEEE 802.3’te ise bu alan yerine Lenght değeri bulunur. Bu alan, kendisinden sonra gelen payload alanının uzunluğunu belirtrken, protokol bilgisini barındırmaz.

Veri iletiminin IP bazlı olmasından dolayı ağırlıklı olarak Ethernet II kullanılıyor. Ethernet II’de hangi protokolün kullanıldığı belirtilmesi, uyumluluğu artırmaktadır.

Ethernet II ile IEEE 802.3 arasındaki farkı daha net görebilmek için;

What-is-Ethernet-Frame-Format-Diagram Ethernet Frame Nedir?

Yalnız evlerimizde ki DSL ve Fiber internet gibi, uzun mesafeli bağlantılar, 802.3’ün gelişmiş versiyonu olan 802.3ah protokolünü kullanmaktadırlar.

Bir Cevap Yazın

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.