Bir Client, bir IP Address’e veri göndermeden önce, hedef adresin kendi içinde bulunduğu Network’e ait olup olmadığını belirlemek zorundadır. Bu karar, IP Address ile Subnet Mask arasında yapılan Bitwise AND hesaplama işlemiyle verilir. Her iki değerin karşılıklı Bit’leri 1 olduğunda sonuç 1 olur, aksi durumda 0. Bu işlem sonucunda elde edilen Network ID, Client’ın bağlı olduğu Subnet’i temsil eder.
Aynı Bitwise AND hesaplama işlemi, hedef IP Address için de yapılır. Hedef IP’den elde edilen Network ID, Client’ın Network ID’siyle karşılaştırılır. Eğer ikisi aynıysa, hedef aynı Subnet içindedir ve veri doğrudan gönderilir. Bu durumda Client, ARP protokolüyle hedefin MAC adresini çözümler ve veriyi, Layer 2 seviyesinde iletir. Ancak Network ID’ler farklıysa hedef, başka bir Subnet’tedir ve veri doğrudan gönderilemez. Bu durumda, çıkış noktası olarak tanımlanmış olan Default Gateway devreye girer.
Default Gateway, Client’ın kendi Network’ü dışındaki hedeflere ulaşmak için kullandığı ilk yönlendirme noktasıdır. Bu adres, genellikle bir Router ya da Firewall cihazının LAN Interface’ine atanmış bir IP Address’tir. Client, hedefe ait IP Address’in kendi Subnet’iyle eşleşmediğini anladığında, paketi doğrudan bu Router ya da Firewall cihazının Default Gateway Port’una, yani kendi Network’ünde tanımlı çıkış Interface’ine gönderir. Bu noktadan sonra Router ya da Firewall cihazı, kendi Routing Table’ı üzerinden hedef IP’ye yönelik en uygun rotayı belirler. Çıkış yapacağı Interface tespit edilir; eğer NAT yapılandırması etkinse, iç Network’te kullanılan Private IP, çıkışta Public IP’ye dönüştürülür ve paket dış Network’e gönderilir.

Bir Router ya da Firewall cihazı, Default Gateway olarak tanımlandığında yalnızca bir çıkış IP’si olarak değil, aynı zamanda yönlendirme kararlarının alındığı merkezi kontrol noktası haline gelir. Bu cihaz üzerinde tanımlı olan Routing Table, gelen her paketin hedef IP Address’ine göre en uygun çıkış arayüzünü belirler. Eğer hedef IP Address, bu tabloda açıkça tanımlanmış belirli bir rota ile eşleşiyorsa, paket doğrudan o rotaya uygun arayüzden iletilir. Ancak hedef IP için tanımlı özel bir rota yoksa, yönlendirme kararı varsayılan rota üzerinden alınır.
Varsayılan rota, genellikle 0.0.0.0/0 şeklinde tanımlanır ve Routing Table’da en düşük öncelikli ama en geniş kapsama sahip kural olarak yer alır. Bu yapı sayesinde, bilinmeyen veya tanımsız tüm hedef IP trafiği tek bir çıkış noktasına yönlendirilmiş olur. Yani bir Client, kendi Subnet’i dışında bir IP’ye ulaşmak istediğinde yalnızca kendi Default Gateway’ine erişmekle yetinemez; bu Gateway’in, gelen paketin hedefini değerlendirebileceği düzgün tanımlanmış bir Routing Table’a sahip olması gerekir. Aksi halde, paket ilk noktada teslim alınsa bile uygun bir rota bulunamadığı için düşer ya da yönsüz kalır.
Routing Table üzerinde varsayılan rota tanımlı değilse ya da hedef IP, bilinen bir Network ile eşleşmiyorsa, bu durumda paketler çoğunlukla silinir ya da ICMP Destination Unreachable hatası üretilir. Bu nedenle sadece Client tarafında Default Gateway tanımlamak yeterli değildir; aynı zamanda Router ya da Firewall cihazının Routing Table’ı da trafiğin hedefe ulaşabilmesini sağlayacak şekilde yapılandırılmış olmalıdır.
LAN ve WAN Arasındaki Fark ve İlişki
LAN (Local Area Network), fiziksel veya mantıksal olarak aynı Subnet içinde yer alan Client’ların doğrudan, yüksek hızlı ve düşük gecikmeli şekilde haberleştiği Network yapısıdır. Tüm Client’lar aynı Network ID’ye sahiptir ve Switch üzerinden MAC adresleriyle iletişim kurar. Layer 2 seviyesinde, Broadcast ve ARP gibi protokollerle doğrudan erişim sağlanır.
WAN (Wide Area Network) ise birbirinden bağımsız LAN yapılarını birbirine bağlayan, daha geniş bir kapsama alanına sahip Network ortamıdır. LAN’daki bir Client, WAN üzerindeki bir hedefe ulaşmak istediğinde veriyi önce kendi Default Gateway’ine gönderir. Bu geçişte artık sadece IP farklılığı değil, fiziksel Network segmentasyonu da devreye girer. LAN ile WAN arasındaki bağlantı çoğu zaman NAT, erişim kontrolü ve yönlendirme kuralları ile sınırlandırılmıştır. Tüm bu işlemler, Client tarafında değil, Router ya da Firewall gibi yönlendirici cihazlar üzerinde gerçekleştirilir.
Virtual Local Area Network (VLAN) yapılarında da benzer bir mekanizma geçerlidir. Her VLAN, ayrı bir IP Subnet olarak tanımlanır ve kendine ait bir Default Gateway adresi bulunur. Örneğin VLAN 10 için 192.168.10.1, VLAN 20 için 192.168.20.1 kullanılıyorsa, bu iki VLAN arasındaki iletişim, yalnızca Routing (yönlendirme) özelliği olan bir cihaz üzerinden gerçekleşebilir. VLAN yapısı sayesinde Broadcast Domain’ler ayrıştırılır, trafiğin segmentasyonu yapılır ve güvenlik politikaları uygulanabilir hale gelir.
Default Gateway, yalnızca bir IP çıkışı değildir. Routing, NAT, Access Control (erişim kontrolü) ve Client’tan gelen veri akışının hedef IP Address’e göre uygun çıkış arayüzüne yönlendirilmesi gibi işlemlerin merkezinde yer alır. Client’ın kendi Network’ü dışındaki her hedef için başvurduğu yegane noktadır. Yanlış tanımlanması durumunda, dış Network’lerle iletişim tamamen kesilir. Bu yüzden Default Gateway, tüm Network mimarisi içinde salt bir ayar değil, veri akışının başladığı ve şekillendiği stratejik bir bileşendir.
Default Gateway, yalnızca hedefi bilinmeyen trafiğin değil, tüm yönlendirme sürecinin başladığı ilk noktadır. Bu yapının nasıl çalıştığını anlamak için tanımsal açıklamalar tek başına yeterli değildir. Asıl ilişki, Client ile Default Gateway arasında kurulan bağlantının IP/Subnet düzeyinde nasıl değerlendirildiğinde gizlidir. Aşağıdaki bölümlerde, bu yapının aynı Network içinde ve farklı Network’ler arasında nasıl işlediği senaryolar üzerinden adım adım incelenmiştir.
⚡ Senaryo-1: Aynı Network'te Default Gateway Süreci
1- PC-1 bilgisayarının IP adresi 10.10.10.72, iletişim kuramak istediği PC-60 bilgisayarının IP adresi ise 10.10.10.107'dir. PC-1 bilgisayarı, bu her iki bilgisayara ait IP adreslerinin Binary değerleri ile yine PC-1 bilgisayarının 255.255.255.0 Subnet Mask bilgisinin Binary değerininin yukarıdaki PC-1 bilgisayarının Routing Table bilgisi içinde yazılı olan Network ID ile aynı Network içinde olup olmadığını Bitwise AND yöntemi ile kontrol edecektir.

Bitwise AND Hesaplama İşlemi
IP adresleme yapısı içinde Subnet Mask ile birlikte kullanılan Bitwise AND işlemi, bir IP adresinin hangi Network ID’ye ait olduğunu belirlemek için kullanılan Bit düzeyinde bir karşılaştırma yöntemidir. Bu işlemde IP adresi ve Subnet Mask, Binary formatta alt alta yazılır ve her iki değerin karşılıklı Bit’leri AND işlemine tabi tutulur. Kural nettir: sadece iki taraf da 1 ise sonuç 1 olur; diğer tüm durumlar 0 döner. Elde edilen Binary ifade, adresin bağlı olduğu Network ID’yi verir.
Bu işlem yalnızca hesaplama düzeyinde kalmaz. İşletim sistemi, paketin aynı Local Network (LAN) içinde mi kalacağını yoksa Routing Table (yönlendirme tablosu) üzerinden dış bir hedefe mi gideceğini belirlemek için doğrudan bu sonucu kullanır. Özellikle Kernel Mode'da, IP stack tarafından yürütülen bu kontrol sayesinde hedef adresin bulunduğu Network doğru biçimde tespit edilir ve trafik uygun çıkış noktasına yönlendirilir. Eğer hedef aynı Network içindeyse, ARP üzerinden MAC adresi çözülerek iletişim doğrudan kurulur. Aksi durumda paket, varsayılan Default Gateway’e yönlendirilir.
Tüm bu işlemler, CPU ve işletim sistemi tarafından yazılım düzeyinde gerçekleştirilir. NIC (Network Interface Card), bu hesaplamaları doğrudan yapmaz; yalnızca Network Stack üzerinden aldığı talimatla verinin fiziksel olarak iletilmesini sağlar.
Şimdi aşağıdaki örnek üzerinden, IP adresleri ile Subnet Mask'lerin birlikte nasıl kullanıldığını ve Bitwise AND işlemi sonucunda hangi Network ID’ye ait olduklarının nasıl hesaplandığını adım adım göstereceğim. Böylece iki IP adresinin aynı Network içinde olup olmadıkları teknik olarak da doğrulanmış olacak.
Konuya hiç ya da tam hakimiyeti olmayan ve konunun daha derin teknik boyutunu incelemek isteyenler, ayrıca hazırladığım Bitwise AND ile Network ID Hesaplama başlıklı makaleye de göz atabilir.
PC-1 |
IP Adresi |
10 |
10 |
10 |
72 |
Binary Değeri |
10100000 |
10100000 |
10100000 |
10001000 |
Subnet Mask Değeri |
255 |
255 |
255 |
0 |
Binary Değeri |
11111111 |
11111111 |
11111111 |
00000000 |
PC-60 |
IP Adresi |
10 |
10 |
10 |
107 |
Binary Değeri |
10100000 |
10100000 |
10100000 |
01101011 |
Subnet Mask Değeri |
255 |
255 |
255 |
0 |
Binary Değeri |
11111111 |
11111111 |
11111111 |
00000000 |
1.1- Elde ettiğim bu Binary değerlerini alt alta koyarak sağlamasını yapıyorum. Sağlama yaparken kural, her zaman şu şekilde olacaktır:
1 |
+ |
1 |
= |
1 |
1 |
+ |
0 |
= |
0 |
0 |
+ |
1 |
= |
0 |
0 |
+ |
0 |
= |
0 |
1.2- Aşağıdaki Bitwise AND hesaplama işlemi sonucunda 10.10.10.72 ve 10.10.10.107 IP adreslerinin 10.10.10.0/24 Network'ünde olduğu yani aynı Network'te oldukları sonucu çıkacaktır.
|
PC-1 Bitwise AND İşlemi |
IP Adresi |
10100000 |
10100000 |
10100000 |
10001000 |
Subnetmask |
11111111 |
11111111 |
11111111 |
00000000 |
Sonuç |
10100000 |
101000000 |
10100000 |
00000000 |
Network |
10 |
10 |
10 |
0 |
|
PC-60 Bitwise AND İşlemi |
IP Adresi |
10100000 |
10100000 |
10100000 |
01101011 |
Subnetmask |
11111111 |
11111111 |
11111111 |
00000000 |
Sonuç |
10100000 |
101000000 |
10100000 |
00000000 |
Network |
10 |
10 |
10 |
0 |
2- Bu Bitwise AND hesaplama sonucunda PC-1 bilgisayarı, iletişim kuracağı PC-60 bilgisayarları ile aynı Network'te olduğunu kontrol ettikten sonra, senaryomuz gereği, ilk defa iletişime geçeceği için ARP Request Frame'i oluşturup, Target IP alanına PC-60 bilgisayarının 10.10.10.107 IP adresi bilgisini, Target MAC Address alanına ise Broadcast MAC adresi olan FF:FF:FF:FF:FF:FF bilgisini yazacaktır.

PC-1 ARP Request Frame içeriği

2.1- PC-1 bilgisayarı, Data paketinin iç Network ortamında yönlendirme işlemini, Routing Table içinde 2. satırdaki yönlendirme rotasını kullarak gerçekleştirecek.

3- PC-1 tarafından yollanan ARP Request Frame'i içindeki Target IP bilgisinde PC-60 bilgisayarının IP adresi olan 10.10.10.107 IP adresi bilgisi yazılı olduğu için ARP Request paketi, PC-60 bilgisayarı tarafından kabul edildi. ARP Request ile Broadcast yapıldığı için iligi ARP Request, doğal olarak aynı Network içindeki Default Gateway IP adresi olan 10.10.10.254 IP adresine de iletildi ancak ARP Request Frame'i içinde yer alan Target IP bilgisindeki hedef IP adresi 10.10.10.254 olmaması sebebiyle ARP Request, Default Gateway tarafından reddedildi.

⚡ Senaryo-2: Farklı Network'te Default Gateway Süreci #1
1- Bu senaryoda 10.10.10.0/24 Network'ündeki IP adresi 10.10.10.72 olan PC-1 bilgisayarı, bu sefer de 172.16.0.0/24 Network'ündeki IP adresi 172.16.0.70 olan PC-55 bilgisayarı ile haberleşecek. PC-1 bilgisayarı, aynı şekilde tekrar her iki bilgisayara ait IP adresinin Binary değerleri ile kendi Subnet Mask değeri olan 255.255.255.0 Binary değerini, Routing Table bilgisi içinde yazılı olan Network ID ile aynı Network içinde olup olmadığını, Bitwise AND yöntemi ile kontrol edecek.

2- Bu Bitwise AND hesaplama işlemi sonucunda IP adresi 10.10.10.72 olan PC-1 bilgisayarı, iletişim kuracağı hedef Network'teki IP adresi 172.16.0.70 olan PC-55 bilgisayarı ile aynı Network'te olmadığı sonucunu çıkartacak ve Daha önceden Default Gateway IP adresinin MAC adresi bilgisini kendi Cache'ine yazdığı için Data paket Frame'i içindeki Target IP alanına PC-55 bilgisayarının IP adresini, Target MAC Address alanına da Default Gateway MAC adresi bilgilerini ekleyerek Data paketini, kendi Network'ü dışına çıkartabilmek için, doğrudan Default Gateway'e gönderecek.
PC-1 Data peket Frame içeriği

PC-1 ARP Cache içeriği

2.1- PC-1 bilgisayarı, Data paketini kendi Network'ü dışındaki hedef Network'e yollaması için Default Gateway'e iletmesi gerektiği bilgisini de yine Bitwise AND hesaplama işlemi sonucunda Routing Table içinde yazılı olan 1. satırdaki yönlendirme kuralına göre yapmaktadır.

3- Data paketini Default Gateway Port'undan alan Firewall ya da Router cihazı; paketi, doğrudan hedef Network'e iletecek. Bir Data peketini Firewall ya da Router gibi Router cihazların Default Gateway Port'una ilettikten sonra geriye kalan tüm işlem, bu Router cihazlarınındır. Hedef Network'e yönlenme işlemi, bir VLAN ile ayrıştırılmış farklı bir Network olabileceği gibi, Intetnet ortamındaki farklı bir Network de olabilmektedir. Buradaki davranış biçimi, Firewall ya da Router gibi Router cihazlarda yazılı olan kurallar ile belirlenir.


⚡ Senaryo-3: Farklı Network'te Default Gateway #2
1- Bu senaryonun bir öncekinden farkı, PC-1 bilgisayarının ARP Cache'inin boş olması olacak. Bu sayede hedef Network ortamına Data paketi iletimi gerçekleşmeden önce Network ortamındaki Client PC ile Firewall ya da Router gibi Router cihazlar arasındaki iletişim sürecinin nasıl ilerlediğine değineceğim. Bu senaryoda 10.10.10.0/24 Network'ündeki IP adresi 10.10.10.72 olan PC-1 bilgisayarı, yine 172.16.0.0/24 Network'ündeki IP adresi 172.16.0.70 olan PC-55 bilgisayarı ile haberleşecek. PC-1 bilgisayarı, aynı şekilde tekrar her iki bilgisayara ait IP adreslerinin Binary değerleri ile 255.255.255.0 değerindeki kendi Subnet Mask bilgisinin Binary değerini, Routing Table bilgisi içinde yazılı olan Network ID ile aynı Network içinde olup olmadığını Bitwise AND yöntemi ile kontrol edecek.

2- Bu Bitwise AND hesaplama işlemi sonucunda PC-1 bilgisayarı, iletişim kuracağı 172.16.0.0/24 Network'ündeki 172.16.0.70 IP adresine sahip PC-55 bilgisayarı ile aynı Network'te olmadığı sonucunu çıkartacaktır. Daha önceden Default Gateway IP adresinin MAC adresi bilgisi, kendi ARP Cache'ine yazmadığı için bir ARP Request Frame'i oluşturup, Frame içindeki Target IP alanına Default Gateway IP adresi, Target MAC Address alanına da Boradcast MAC Adresi olan FF:FF:FF:FF:FF:FF bilgileri yazılmıştır.
PC-1 ARP Request Frame içeriği

PC-1 ARP Cache içeriği

2.1- PC-1 bilgisayarı, Data paketini kendi Network'ü dışındaki hedef Network'e yollaması için Default Gateway'e iletmesi gerektiği bilgisini de yine Bitwise AND hesaplama işlemi sonucunda Routing Table içinde yazılı olan 1. satırdaki yönlendirme kuralına göre yapmaktadır.

3- PC-1 bilgisayarı tarafından yollanan ARP Request Frame'i içindeki Target IP bilgisinde Default Gateway IP adresi olan 10.10.10.254 bilgisi yazılı olduğu için ARP Protokolü, doğal davranış biçimi olarak ARP Request'i tüm Network ortamında Broadcast ile yayınlıyor.


4- ARP Request Frame'i içinde yazılı olan Target IP Address bilgisi 10.10.10.254 olduğu için ilgili Request Frame'i, Default Gateway tarafından kabul edildi.

5- Default Gateway tarafından ARP Request'e dönülen ARP Reply Frame'i ile PC-1 bilgisayarı, Default Gateway MAC adresi bilgisini öğrenerek, bunu ARP Cache'ine kaydetti.
Default Gateway ARP Reply Frame içeriği

PC-1 ARP Cache içeriği

6- Kendi iç Network'ündeki ARP sürecini tamamlayan PC-1 bilgisayarı, ilgili Data paketini hedef Network'e göndermek için Data paket Frame'i içindeki Target IP alanına 172.16.0.0/24 Network'ündeki PC-55'in IP adresi bilgisini, Destination MAC Address alanına da Default Gateway MAC adresi bilgisini ekleyip, paketini tekrar Default Gateway'e gönderecek.
PC-1 Data paket Frame içeriği

6.1- PC-1 bilgisayarı, Data paketini kendi Network'ü dışındaki hedef Network'e yollaması için Default Gateway'a iletmesi gerektiği bilgisini de yine Bitwise AND hesaplama işlemi sonucunda Routing Table içinde yazılı olan 1. satırdaki yönlendirme kuralına göre yapmaktadır.

7- Data paketini Default Gateway Port'undan alan Firewall ya da Router cihazı; paketi, doğrudan hedef Network'e iletecek. Bir Data peketini Firewall ya da Router gibi Router cihazların Default Gateway Port'una ilettikten sonra geriye kalan tüm işlem, bu Router cihazlarınındır. Hedef Network'e yönlenme işlemi, bir VLAN ile ayrıştırılmış farklı bir Network olabileceği gibi, Intetnet ortamındaki farklı bir Network de olabilmektedir. Buradaki davranış biçimi, Firewall ya da Router gibi Router cihazlarda yazılı olan kurallar ile belirlenir.


Makalenin buraya kadarki kısmında bir Host’un hedef IP adresine göre aldığı yönlendirme kararının temelinde yatan mekanizma detaylı biçimde incelendi. Hedef adres, Host’un bağlı bulunduğu Subnet dışında yer alıyorsa, bu paketin doğrudan hedef cihaza değil; tanımlı olan Default Gateway’e gönderilmesi gerektiği açıklandı. Burada belirleyici olan şey, hedefin ulaşılabilir olup olmaması değil; IP seviyesinde yapılan Subnet karşılaştırmasıdır.
IP başlığına bakarak yönlendirme kararı alınır, ardından bu karara uygun şekilde Ethernet Frame oluşturulur. Eğer hedef IP adresi farklı bir Subnet’e aitse, oluşturulan Frame'in Destination MAC Address alanına, hedef cihazın değil; Default Gateway’in MAC adresi yazılır. Bu sayede paket, yönlendirme işlemini gerçekleştirecek olan cihaza fiziksel düzeyde ulaştırılır. Layer 2 ve Layer 3 seviyeleri arasındaki bu eşgüdüm, veri iletiminin temel yapı taşlarından biridir.
Default Gateway tanımı, Subnet dışındaki Network’lere çıkış noktası olarak işlev görür. Bu tanım eksik ya da hatalı yapıldığında dış Network’lere erişim, tamamen kesilir. Hedefe ulaşmak bir yana, yönlendirme için gerekli ilk adım bile atılamaz. Ancak yapı doğru şekilde kurgulandığında her paket için karar mekanizması, sorunsuz biçimde devreye girer ve trafik akışı tutarlı şekilde yönlendirilir.
Subnet dışı IP adreslerine ulaşmak için kullanılan bu yöntem, bir IP paketi gönderildiği anda otomatik olarak çalışır. Paketler nereye gitmesi gerektiğini bilerek hareket eder; çünkü sistem, hedefin konumunu değerlendirip, ilk durağın Default Gateway olması gerektiğine kendisi karar verir. Bu davranış, modern Network’lerin arka planında sessizce ama kesinlikle işlemeye devam eder.
Şimdi de Windows'ta Bitwise AND Hesaplama Sürecinin nasıl işlediğine, işletim sisteminin bu süreçte hangi adımları izlediğine ve yönlendirme kararını alırken bu hesaplamayı nasıl kullandığına daha yakından bakalım.
Windows'ta Bitwise AND Hesaplama Süreci
Bitwise AND hesaplama, yalnızca bir matematiksel işlem değil; Windows işletim sisteminde bir IP Packet'in hangi yöne gönderileceğine karar veren temel mekanizmadır. Bu karar, Client’ın hedef IP Address için kendi Subnet içinde mi yoksa dışında mı bir yol izlemesi gerektiğini belirler. İşlem yüzeyde basit görünse de Windows Kernel, bu süreci sistemsel düzeyde ve gerçek zamanlı olarak yönetir.
Bir IP Packet, Windows TCP/IP Stack üzerinden çıkmadan önce, Kernel, Hedef IP doğrudan erişilebilir mi? yoksa bir Default Gateway aracılığıyla mı gönderilmeli? sorusunu net olarak yanıtlamalıdır. Bu kararın merkezinde Bitwise AND hesaplama vardır. İşletim sistemi, hedef IP Address ile yerel Subnet Mask arasında bit düzeyinde AND işlemi yapar. Aynı işlem, Client’ın kendi IP Address’i ile Subnet Mask’i arasında da uygulanır. Ortaya çıkan iki Network ID karşılaştırılır. Eşleşiyorsa hedef, aynı Subnet içindedir; paket doğrudan gönderilir. Eşleşmiyorsa Windows, bu paketi Routing Table’da tanımlı bir rota üzerinden yönlendirmeye çalışır. Tanımlı özel bir rota yoksa, karar doğrudan Default Gateway’e yönelir.
Burada dikkat edilmesi gereken nokta, Default Gateway tanımının kullanıcı arayüzünde görünen statik bir IP Address olmaktan ibaret olmamasıdır. Windows Kernel, bu adresi yalnızca varsayılan çıkış noktası olarak değil, aynı zamanda Routing Table’da tanımlı herhangi bir rota bulunmadığında başvurulacak genel rota olan 0.0.0.0/0 olarak değerlendirir. Hedef IP Address, Routing Table’daki başka bir satırla eşleşmiyorsa ya da Subnet dışındaysa, Kernel paketi doğrudan Default Gateway Interface’ine yönlendirir.
Bu karar, Windows’un Network Stack içinde Routing Decision Engine tarafından verilir ve işlem tamamlandığında paket NIC sürücüsü üzerinden çıkışa hazırlanır. Eğer fiziksel adres bilinmiyorsa, ARP süreci tetiklenir ve MAC adresi çözülür. Fakat tüm bu sürecin tetikleyicisi hala aynı yerdedir: Bitwise AND hesaplama sonucunda yapılan Subnet karşılaştırması.
Yani IP iletişiminin en temel ayrımı şudur: Paket doğrudan mı gönderilecek, yoksa Default Gateway üzerinden mi yönlendirilecek? Windows üzerinde her IP çıkışında bu karar ilk adımda verilir. Bitwise AND hesaplama bu yönüyle yalnızca bir protokol işlemi değil, aynı zamanda yönlendirme mantığının tetikleyicisidir. Bu kararın uygulanma noktası ise her zaman tanımlı olan Default Gateway Interface’idir.
1. IP ve Subnet Bilgileri İlk Olarak Registry’ye Yazılır
Kullanıcı, bir NIC'e manuel olarak IP adress, Subnet Mask ya da Default Gateway tanımladığında veya DHCP üzerinden bu bilgiler geldiğinde Windows, bu değerleri önce kalıcı olarak Registry’ye yazar. Bu kayıtlar şu yoldadır:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces\{GUID} |

Yani burada her Network arayüzü için bir konfigürasyon saklanır. Ama bu veriler, paket iletimi sırasında aktif kullanılmaz. Registry, sadece bir depo gibidir; kararlarda söz sahibi değildir.
Aşağıdaki PowerShell komutunu kullanarak, Registry'de {GUID} altında tutulan bu IP, Subnet Mask, Default Gateway ve DNS gibi bilgileri sistem üzerinden kolayca görüntüleyebilirsiniz. Bu komut, doğrudan Registry'yi okumasa da aynı verileri TCP/IP yapılandırmasından çekerek kullanıcıya sunar.
Get-NetIPConfiguration -InterfaceAlias "Wi-Fi"; (Get-NetAdapter -InterfaceAlias "Wi-Fi").InterfaceGuid |

2. Bilgisayar Açıldığında tcpip.sys Devreye Girer
Sistem açıldığında ya da ağ bağdaştırıcısı etkinleştiğinde, işletim sistemi çekirdeğinde çalışan tcpip.sys dosyası bu Registry kayıtlarını okur. Bu sürücü:
C:\Windows\System32\drivers\tcpip.sys |
yolunda bulunur ama aslında bir dosya değil, bir çekirdek modülüdür. Yani çalışmaya başladığında RAM’e yüklenir ve artık canlı bir sistem bileşeni gibi davranır.

İşte tcpip.sys, bu IP ve Subnet bilgilerini Registry'den çekip RAM'de kendine ait veri yapıları içine yerleştirir. Bundan sonra sistemin vereceği tüm Routing kararları, bu RAM'deki güncel bilgilerle çalışır.
3. Bu Bilgiler RAM’de Nasıl Tutulur ve Kullanılır?
tcpip.sys, her bir NIC için bellekte özel bir yapı bloğu oluşturur. Bu yapıların içinde:
✔ IP address
✔ Subnet Mask
✔ Default Gateway
✔ Interface Index
gibi bilgiler tutulur. Bu bilgiler her paket iletiminde, diskten değil, doğrudan RAM'den çekilir. RAM üzerinde işlemek demek, bu yapıların CPU tarafından anlık olarak okunması, işlenmesi ve karar verilmesi demektir. Yani karar, CPU’da verilir.
İşlemci, RAM'deki verileri kendi Register'larına çeker; işlemi, Bitwise AND hesaplama işlemi dahil, burada yapar. Bitwise AND hesaplama, RAM’de duran source_ip ve subnet_mask gibi değerlerin CPU’da karşılaştırılmasıyla yapılır.
✅ IP address, Subnet Mask gibi bilgiler, tcpip.sys tarafından RAM'de yapılandırılmış veri bloklarında tutulur.
✅ İşlemci bu bilgileri RAM'den okur, CPU’nun kendi Register’larına çeker.
✅ Bitwise AND işlemi doğrudan CPU’da gerçekleşir.
✅ Sonuç tekrar RAM'de karşılaştırılır ya da yönlendirme kararında kullanılır.
4. Routing Kararı ve Bitwise AND İşlemi Tam Olarak Burada Başlar
Bir uygulama, bir dış IP adresine veri göndermek istediğinde sistem, önce OSI Transport Layer üzerinden gelen segmenti IP Packet haline getirir. Ardından OSI Network Layer tarafına geçilir. Tam bu aşamada işletim sistemi, bu hedef IP adresinin Network'te olup olmadığını anlamak için şu adımları izler:
1. source_ip (örnek: 10.10.10.10)
2. destination_ip (örnek: 10.10.20.5)
3. subnet_mask (örnek: 255.255.255.0)
Ardından RAM içinde bu iki Network ID karşılaştırılır:
✔ Eşitse → Paket aynı Network'e gider → ARP süreci başlar → Hedef MAC çözülür.
✔ Farklıysa → Paket başka Network’e yönlendirilir → Default Gateway MAC adresi çözülür.
Bu işlem Windows çekirdeği (Kernel) içindeki RtLookupRoute(), IppFindBestInterface() gibi fonksiyonlar aracılığıyla yürütülür ve tamamen tcpip.sys'in RAM'deki yapıları üzerinden ilerler.
5. NIC Bu Sürecin Hiçbir Yerinde Karar Verici Değildir
NIC (Network Interface Card), yukarıda anlatılan hiçbir karara dahil olmaz. O sadece işletim sisteminden aldığı Ethernet Frame’i fiziksel ortamda iletmekle sorumludur.
👉 Network Interface Card (NIC):
❌ IP bilmez
❌ Subnet Mask anlamaz
❌ Routing kararı veremez
❌ AND işlemi yapmaz
NIC'e sadece "şu hedef MAC adresine bu Frame'i gönder" denir. İşletim sistemi, NIC’e veri gönderme talimatını vermeden önce aslında çoktan onlarca teknik adımı tamamlamış olur. source_ip ve destination_ip bilgileri alınır, subnet_mask ile yapılan Bitwise AND (AND'leme) işlemiyle Network ID’ler hesaplanır, hedefin aynı Network'te olup olmadığı anlaşılır. Bu kontrol sonucuna göre ya doğrudan gönderim yapılır ya da paket önce Default Gateway’e yönlendirilir. Eğer gerekirse hedefin ya da Default Gateway MAC adresi, ARP ile çözülür ve Ethernet Frame, bu bilgilerle hazırlanır.
Tüm bu işlemler, işletim sisteminin çekirdeğinde çalışan tcpip.sys modülü tarafından gerçekleştirilir. IP bilgileri RAM üzerinde yapılandırılmış veri bloklarında tutulur. CPU, bu bloklardan verileri okur, hesaplamayı kendi içinde yapar ve sonucu yine RAM'deki yapılar üzerinde değerlendirir. Bu süreçte sabit diske dönülmez, herhangi bir dış bileşene ihtiyaç duyulmaz. Her karar çekirdek katmanda, milisaniyeler içinde alınır.
Network Interface Card (NIC), bu sürecin içinde hiçbir zaman aktif bir aktör değildir. Ne karar verir, ne kıyas yapar, ne yön belirler. NIC, sadece işletim sisteminden gelen hazır Ethernet Frame’i fiziksel ortama iletmekle görevlidir. Ona yalnızca hedef MAC adresiyle birlikte veri verilir ve o bunu taşır. Ne subnet_mask bilir, ne IP yorumu yapar, ne de Routing mantığına dair bir katkısı vardır.
Bu kadar görünmez ve hızlı ilerleyen bir süreçte bile sistem, her IP paketinde aynı kontrolü yeniden yapar. Çünkü IP iletişimi ezbere değil, her defasında yapılan hesaplamaya göre yönlendirilir. Bitwise AND hesaplama işlemi de bu karar sürecinin en temel adımıdır. Paket dış dünyaya çıkmadan önce, işletim sistemi RAM'deki verileri kullanarak hedefin nerede olduğunu hesaplar ve hangi yöne gideceğini belirler. NIC ise yalnızca bu kararın sonucunu fiziksel olarak ileten son duraktır.
Faydalı olması dileğiyle...
Her türlü görüş ve önerilerinizi aşağıdaki yorum panelinden bırakabilir, kafanıza takılanları veya merak ettiklerinizi sorabilirsiniz.