Link Layer

TCP/IP modelinin en altında Link Layer bulunur. Bu katman donanıma özgü katmandır.

Link layer’da, packet bir kez daha frame denilen bir şeyin içine kapsüllenir. Frame header, host’larımızın source ve destination MAC address’lerini, checksums ve packet separators’ı ekler, böylece alıcı bir packet’in ne zaman bittiğini anlayabilir.

Neyse ki aynı network üzerindeyiz, bu yüzden packet’imiz çok uzağa gitmek zorunda kalmayacak. Önce, link layer frame header’a benim source MAC address’imi ekler, ancak Patty’nin MAC address’ini de bilmesi gerekir. Bunu nasıl bilecek ve Internet’te olmadığı için ben bunu nasıl bulacağım? ARP kullanırız!

ARP (Address Resolution Protocol)

ARP, bir IP address ile ilişkili MAC address’i bulur. ARP aynı network içinde kullanılır. Eğer Patty aynı network’te olmasaydı, packet’i alacak bir sonraki router’ı belirlemek için bir routing sistemi kullanırdık ve aynı network’e geldiğimizde ARP’yi kullanabilirdik.

Aynı network’te olduğumuzda, sistemler önce hangi IP address’lerin hangi MAC address’lerle ilişkili olduğunu saklayan ARP look-up table’ı kullanır. Değer orada değilse, o zaman ARP kullanılır. Ardından sistem, ARP protokolünü kullanarak network’e hangi host’un 10.10.1.4 IP’sine sahip olduğunu bulmak için bir broadcast message gönderir. Broadcast message, bir network’teki tüm host’lara gönderilen özel bir mesajdır (uygun bir şekilde “broadcast” göndermek için adlandırılmıştır). İstenen IP address’ine sahip herhangi bir makine, IP address ve MAC address içeren bir ARP packet ile yanıt verecektir.

Artık ihtiyacımız olan tüm veriler (IP address ve MAC address’ler) elimizde olduğuna göre, link layer bu frame’i network interface card’ımız üzerinden bir sonraki cihaza ve Patty’nin network’ünü bulana kadar iletir. Bu adım, anlattığım kadar basit değil, ancak Routing dersinde daha fazla ayrıntıyı tartışacağız.

Ve işte TCP/IP katmanı boyunca basit (ya da o kadar da basit olmayan) bir packet geçişi. Packet’lerin bu şekilde tek yönlü seyahat etmediğini unutmayın. Hâlâ Patty’nin network’üne bile ulaşmadık! Network’ler arasında seyahat ederken, herhangi bir veri gönderilip alınmadan önce en az iki kez TCP/IP modelinden geçmek gerekir. Gerçekte, bu packet’in görünümü şöyle bir şey olacaktır:

Packet Traversal

  1. Pete, Patty’ye bir email gönderir: bu veri transport layer’a gönderilir.

  2. Transport layer, veriyi bir TCP veya UDP header içinde kapsüller ve bir segment oluşturur, segment destination ve source TCP veya UDP port’unu ekler, sonra segment network layer’a gönderilir.

  3. Network layer, TCP segment’ini bir IP packet içine kapsüller, source ve destination IP address ekler. Sonra packet’i link layer’a yönlendirir.

  4. Packet daha sonra Pete’in physical hardware’ine ulaşır ve bir frame içine kapsüllenmiş olur. Source ve destination MAC address frame’e eklenir.

  5. Patty, bu data frame’i physical layer’ı üzerinden alır ve her frame’i veri bütünlüğü için kontrol eder, sonra frame içeriğini de-encapsulate eder ve IP packet’i network layer’a gönderir.

  6. Network layer, daha önce eklenmiş source ve destination IP’yi bulmak için packet’i okur. IP’sinin destination IP ile aynı olup olmadığını kontrol eder, ki öyledir! Packet’i de-encapsulate eder ve segment’i transport layer’a gönderir.

  7. Transport layer segment’leri de-encapsulate eder, TCP veya UDP port numaralarını kontrol eder ve bu port numaralarına göre application layer’a bir bağlantı yapar.

  8. Application layer, belirtilen port üzerinden transport layer’dan veriyi alır ve Patty’ye son email mesajı biçiminde sunar.

Last updated