Data Link Layer

Kendi çalışmalarımın hem notunu tutacağım hem de anlatacağım.

author image

Written by

Furkan İbiş

Published on

Jun 4

Data Link Layer

Esenlikler,

Kendimce çalıştığım Networking alanında çeşitli yazılarımı artık bu şekilde websiteme atma kararı verdim. Bu sayede hem anlatmış hem de çalışmış olacağım.

Veri Bağlantı Katmanı, OSI modelinin ikinci katmanıdır ve ağ içerisindeki cihazların birbirleriyle iletişim kurmasını sağlayan yapıdır. Cihazlar, bu katmanda tanımlanan protokollerin özelliklerini kullanarak ağ içinde iletişim gerçekleştirir. Bu katmanda veriye çerçeve (frame) adı verilir.

Ayrıca, bu katmanda hata kontrolü işlemleri gerçekleştirilir, verinin hangi iletim ortamı üzerinden aktarılacağı belirlenir ve çerçeveleme (framing) işlemi, yani verinin kapsüllenmesi (encapsulation) işlemleri uygulanır.

Data Link Later Framing işleminde üst katmandan gelen data'ya L2 header başlığı ve L2 Kuyruk bilgisini ekler.

Başlık bilgisi, Veri Bağlantı Katmanı'nda kullanılan protokole bağlı olarak değişiklik gösterebilse de (yazının ilerleyen bölümlerinde bu protokollere değinilecektir), genel olarak hedef ve kaynak cihazın adresini, üst katman protokol bilgilerini ve çerçevenin başlangıç bitini içermektedir.

Kuyruk bilgisi ise, çerçevenin iletim sırasında bozulup bozulmadığını kontrol etmek amacıyla kullanılır. Genel olarak, çerçevenin boyutu belirli bir matematiksel fonksiyonla hesaplanarak bu alana yazılır. Hedef cihaz çerçeveyi aldığında, bu değer ile çerçevenin gerçek boyutu tutarlı değilse çerçeve reddedilir (drop edilir).

LLC ve MAC Sublayer

Veri Bağlantı Katmanı, kendi içerisinde iki alt katmana (sublayer) ayrılmaktadır.

  1. LLC (Logical Link Control):
    Ağ katmanına geçiş görevi görür. LLC, genel olarak Veri Bağlantı Katmanı'ndaki mantıksal işlemleri yürüten alt katmandır. Senkronizasyon, çoklama (multiplexing), akış kontrolü (flow control) ve hata kontrolü gibi işlemleri gerçekleştirir.

  2. MAC (Media Access Control)

    Media Access Control (MAC), LLC katmanında oluşturulan verinin, fiziksel katmanda doğru iletim ortamına yönlendirilmesinden sorumludur. Bir cihazda bulunan ağ arabirim kartlarının (Network Interface Card - NIC), uygun algoritmalarla veriyi iletebilmesi için, veriyi doğru ağ kartına yönlendirir. Bu sayede veri, doğru fiziksel ortam üzerinden hedefe başarıyla aktarılmış olur.

CSMA/CD ve CSMA/CA Nedir?

Veriler bir iletim ortamı üzerinden aktarılırken, iletim hattının meşgul olması, cihazların gönderdikleri verilerin bozulmasına neden olabilmekteydi. Çünkü bir cihaz veri gönderirken, iletim ortamında hâlihazırda başka bir cihaz da veri iletiyorsa, bu veriler iletim ortamında çarpışabilir ve bu durum, çakışma (collision) olarak adlandırılan veri bozulmalarına yol açabilirdi.

Bu sebeple ağ geliştiricileri zamanında CSMA/CD (Carrier Sence Multiple Access Collision Detection) ve CSMA/CA (Carrier Sence Multiple Access / Collision Avodiance) algoritmalarını geliştirdiler.

  1. Carrier Sence Multiple Access - Collision Detection Bir iletim ortamı düşünelim; bu iletim ortamı bus topolojiye sahip olsun ve beş adet cihaz birbiriyle iletişim halinde bulunsun. Yani, kısaca bu durumu aşağıdaki görselde görebilirsiniz.

    Bu noktada, bus topolojisinin doğası gereği iletim ortamının boş olması gerekmektedir. Kullanıcılar, bu iletim ortamını kullanabilmek adına bir rekabet içerisine girerler; çünkü yalnızca tek bir iletim ortamı vardır ve tüm kullanıcılar bu ortamı kullanabilmek için mümkün olan en hızlı şekilde veri göndermeye çalışırlar.

    Bu durumu, bir ortamda konuşmak için sıra bekleyen bir grup insana benzetebiliriz. Herkesin anlatacak bir şeyleri vardır ve konuşmak için sıraya girmek zorundadırlar. Bir kişinin konuşması bittiğinde, diğerlerinin anlatmak istediklerini mümkün olan en hızlı şekilde aktarmaya başlamaları gerekmektedir.

    Peki ya bir kişi konuşurken başka biri de konuşmaya başlarsa? Bu durumda konuşmaların çakışması, anlatılanların anlaşılmaz hale gelmesine neden olacaktır. Sonuç olarak, gruptaki kişilerden biri bu karışıklıktan rahatsız olacak, herkesi susturacak ve bir süre sonra ilk konuşmaya başlayan kişi yeniden anlatmaya başlayacaktır.

    Bilgisayar ağları, tipik olarak insan iletişimine benzer şekilde çalışır; CSMA/CD algoritması da bu prensiple işler. Verdiğim görselde, PC A'nın PC C'ye veri gönderdiğini varsayalım. Diğer tüm cihazlar, PC A'nın iletim ortamını boşaltmasını bekler. Ta ki, dikkatsiz PC E hattın boş olduğunu düşünerek kendi verilerini PC C'ye göndermeye başlayana kadar. Bu noktada PC C, kendisine gelen verilerin bozulduğunu tespit eder ve ağdaki tüm cihazlara belirli bir bit dizisi göndererek çakışma (collision) olduğunu bildirir. Bu bit dizisini alan cihazlar, rastgele bir süre boyunca veri iletimini durdurur. Belirlenen rastgele sürenin sona ermesinin ardından bir cihaz veri göndermeye başlar ve iletim ortamı yeniden dolmuş olur.

  2. Carrier Sence Multiple Access Collsion Avoidance Bu noktada, daha düzenli bir ortamımız olduğunu varsayalım; yine konuşmak isteyen beş kullanıcı bulunmaktadır ve hepsi konuşmaya başlamadan önce, diğer kullanıcılara hattı ne kadar süre kullanacaklarını bildirirler. Bu sayede, belirtilen süre boyunca diğer kullanıcılar veri iletimine başlamazlar. Süre dolduktan sonra, ilk kullanıcı veri iletmek için diğer kullanıcılardan önce süresini belirtmeli ve veri iletimine başlamalıdır.

Bana göre verilebilecek en iyi örnek, CSMA/CA'yı 1980’lerin siyasetçilerinin televizyon ekranında yaptıkları tartışmalara; CSMA/CD’yi ise günümüz siyasetçilerinin televizyon programlarındaki konuşma çabalarına benzetebiliriz.

Topolojiler

Bus topolojisini örnek üzerinden gösterdim. Peki, başka hangi topolojiler bulunmaktadır? Öncelikle, topolojiler bir ağ yöneticisinin kurumdaki ağı tanıması ve gerekli konfigürasyonları yapabilmesi için oldukça önemlidir. Genel olarak, bir ağ uzmanı bir kuruma geldiğinde soracağı ilk soru, “Topolojinizi görebilir miyim?” şeklinde olur.

Kısaca, topolojileri bir ağın haritası olarak düşünebiliriz.

  1. Fiziksel Topoloji Fiziksel topoloji, genel olarak hangi cihazın nerede bulunduğunu ve hangi cihazın hangi cihaza bağlı olduğunu gösterir.

  2. Mantıksal Topoloji Mantıksal topoloji ise genel olarak bir ağın VLAN adreslemeleri, sunucuların IP bilgileri gibi daha çok mantıksal unsurlarını gösterir.

LAN ve WAN Topolojileri Nelerdir?

  1. LAN Topolojileri Genel olarak, Yerel Alan Ağlarında (Local Area Network - LAN) kullanılan topolojiler aşağıda listelenmiştir.

    1. Bus Cihazlar, tek bir iletim ortamı üzerinden birbirine bağlıdır. Bu nedenle, bir cihaz veri gönderirken tüm iletim ortamını meşgul eder ve diğer cihazlar veri gönderebilmek için sıra beklemek zorunda kalır. Bu durum, cihazlar arasında rekabetçi bir ortam oluşmasına neden olur. Ayrıca, bu tür ağlarda cihaz sayısı arttıkça çarpışma (collision) sayısı da artar.
    2. Ring Cihazlar halka şeklinde birbirine bağlıdır. Token adı verilen bir yapı, cihazlar arasında sırayla dolaşarak her bir cihazda iletilecek veri olup olmadığını kontrol eder. Eğer token'in ulaştığı cihazda iletilecek veri varsa, token bu veriyi hedef cihaza iletir.
    3. Star Ağ kullanıcıları, merkezi bir cihaz üzerinden birbirine bağlanır. Bu sayede, LAN kontrolü merkezi bir cihaz aracılığıyla yapılandırılabilir. Özellikle switch cihazlarının geliştirilmesiyle, günümüzde star topolojisi LAN’larda en yaygın kullanılan topoloji haline gelmiştir.
    4. Tree Bu, hiyerarşik bir topolojidir ve kullanıcılar, hiyerarşik bir yapı içerisinde bir üst düğüme (node) bağlı olacak şekilde konumlanır. Bu yapı, LAN topolojisinin hiyerarşik olarak organize edilmiş bir versiyonudur.
  2. WAN Topolojileri

    1. Point to Point (P2P) Bu topolojide, bir cihaz ile hedef cihaz, WAN üzerinde tek bir iletim ortamı üzerinden birbirine bağlıdır.

    2. Hub and Spoke Bu topolojide kullanıcılar, tek bir merkezi cihaz üzerinden birbirine bağlıdır. Bu yapı, her ne kadar merkezi bir yönetim imkânı sağlasa da, merkezi cihazın iletim yapamaz hale gelmesi durumunda, ağdaki tüm cihazlar birbirleriyle iletişim kuramaz duruma gelmesine sebep olabilir.

    3. Mesh Bu yapıda, her cihaz ağdaki diğer tüm cihazlarla doğrudan bir iletim ortamına sahiptir. Bu sayede, herhangi bir iletim ortamının bozulması veya iletim yapamaz hale gelmesi durumunda bile, alternatif rotalar üzerinden veri iletimi devam ettirilebilir.

Half Duplex ve Full Duplex Nedir?

Cihazların aynı anda veri gönderip alabilmesine olanak tanıyan yapıya full-duplex, aynı anda veri gönderip alamadıkları yapıya ise half-duplex denir.

Günümüzde switch cihazları, iletim yaptıkları cihazların iletişim yapısını otomatik olarak algılayabilmektedir. Bu sayede, genellikle özel bir ayar yapılmasına gerek kalmaz. Ancak istenildiği takdirde, cihazlar half-duplex ya da full-duplex modunda iletişim kuracak şekilde manuel olarak konfigüre edilebilir.

Bu yazıda amaç, Data Link Layer protokolleri hakkında çeşitli bir fikir sahibi olmanızı sağlamaktı. Çünkü bir konuyu anlamadan önce, o konudaki sorunun ne olduğunu kavrayabilmek, etkili öğrenmenin en önemli yöntemlerinden biridir.

Her bir protokol, kendi yapısında farklılık gösterir. İletim ortamı algoritmaları, güvenlik önlemleri ve diğer işleyiş mekanizmaları protokolden protokole değişiklik göstermektedir.

IEEE 802.3 ya da Ethernet?

Öncelikle Ethernet’in tarihçesinden kısaca bahsetmek yerinde olacaktır. Çünkü günümüzde “Ethernet” olarak adlandırılan yapı, aslında Ethernet II ya da IEEE 802.3 protokolü olabilir.

Ethernet'in Tarihi

Ethernet’in ilk versiyonu 1976 yılında geliştirilmiştir. 1978 yılında ise Ethernet’in ikinci versiyonu olan Ethernet II, DEC, Intel ve Xerox ortaklığında yayımlanmıştır. 1983 yılında ise yeni bir Ethernet versiyonu olan IEEE 802.3 geliştirilmiş ve genel olarak Ethernet II ile birlikte kullanılmaya başlanmıştır. Biz de bu iki protokolü kısaca Ethernet olarak adlandırmaktayız.

Frame'e Genel Bakış

Öncelikle, Ethernet frame’ine genel bir bakış atalım.

Öncelikle, 8 bitlik 1 ve 0'lardan oluşan bir preamble değeri gelir.

Ethernet II protokolünde preamble tamamen 1 ve 0'lardan oluşurken, IEEE 802.3 protokolünde preamblenin ilk 7 biti 1 ve 0'lardan oluşur; 8. bit ise 1 olarak ayarlanır. Kısaca preamble değeri şu şekilde olabilir: "1010101**1**".

Son iki bit ise frame’in başladığını ifade eder ve hedef cihaz, gelen frame’in başlangıcını bu iki bit sayesinde anlar.

Source Address ve Destination Address

Ethernet protokolü adresleme için MAC adreslerini kullanır ve bu adresler 48 bitten oluşur. MAC adresleri kısaca iki bölüme ayrılır. Her MAC adresi, bir NIC (Network Interface Card) kartını ifade eder ve bu adresler "Burned-in Address" olarak tanımlanır. Çünkü üretici firma, bu NIC kartlarına özel, mantıksal olmayan, fiziksel bir adres belirler.

MAC adreslerinin iki bölümden oluştuğunu belirtmiştim; bu iki alan OUI ve UAA olarak isimlendirilir. OUI, üretici firmanın IEEE’den aldığı adres iken, UAA cihazlara özgü alandır. Bu sayede, MAC adresi sorgulama (MAC address lookup) gibi çevrimiçi araçlar kullanılarak, bir cihazın hangi firma tarafından üretildiği kolayca belirlenebilir.

Peki, bir frame neden hedef adresiyle başlar? Cevap oldukça basittir: Switch cihazları, çeşitli frame iletim algoritmalarına sahiptir. Bu algoritmalar, alınan frame’in nasıl işleneceğini belirler. Örneğin, frame alındığında önce hata kontrolü mü yapılacak, yoksa frame alındıktan hemen sonra hedef adres okunarak doğrudan iletim mi başlayacak, bu gibi kararlar söz konusudur.

  1. Store and Forward İsminden de anlaşılabileceği üzere, switch bu modda çalıştığında gelen frame’i tamamen alır, işler, hata kontrolü yapar ve eğer herhangi bir hata tespit edilmezse frame’i iletir. Bu yöntem, nispeten yavaş olsa da güvenilirliği yüksek bir iletim sağlar.

  2. Cut-Through Bu modda ise switch cihazı, hedef MAC adresini okur okumaz, herhangi bir hata kontrolü yapmadan eşzamanlı olarak frame’i iletmeye başlar. Bu sayede Store and Forward yöntemine göre daha hızlı bir iletim sağlanır; ancak, hata kontrolü yapılmadığı için iletim güvenilirliği daha düşüktür.

Bir frame’de kaynak MAC adresi mutlaka unicast olmak zorundadır. Hedef MAC adresi ise unicast, multicast veya broadcast şeklinde olabilir.

Type / Lenght

Şimdi, biraz daha problemli bir alana gelmiş bulunuyoruz.

Ethernet II çerçevesinde bu alan "type" olarak adlandırılır ve frame'in üst katmanda taşıdığı protokolün türünü belirtir.

Örneğin, bir frame içerisinde IPv4, ARP ya da IPv6 protokolü taşınıyor olabilir. Bu durumda, type alanına bakılarak protokol belirlenir ve ilgili işleme göre veriler, uygun NIC (ağ arabirim kartı) tarafından yönlendirilir.