Protokol katmanlarından bahsettiğime göre artık ağların nasıl çalıştığına
        dair gerçekleri öğrenmenin ve SOCK_DGRAM paketlerinin
        nasıl oluşturulduğuna dair örnekler vermenin zamanı geldi. Pratik olarak
        bu bölümü atlayabilirsiniz, ancak burayı okursanız iyi bir temel bilgiye
        sahip olursunuz.
      
        
      
        Hey çocuklar, Veri Paketleme konusunu öğrenme zamanı! Bu çok çok önemli.
        O kadar önemli o kadar önemli ki burada yani Chico Eyaletinde ağ
        teknolojilerine dair bir kurs alırsanız bu konu ile mutlaka
        karşılaşırsınız ;-). Temelde konu şu: bir paket doğar,
        sonra bu paket önce muhatap olduğu ilk protokol tarafından (mesela TFTP
        protokolü) ile bir başlık (ve ender olarak da olsa bir dipnot ile)
        kullanılarak paketlenir (kapsüle konur), ardından tüm bu yığın
        (TFTP başlığı da dahil) bir sonraki protokolün (örn. UDP) kurallarına
        göre paketlenir, sonra IP ve en sonundaki en alt katman olan donanım
        katmanındaki fiziksel protokol ile (örn. Ethernet) paketlenir.
      
        Başka bir bilgisayar bu paketlenmiş paketi aldığında önce donanım Ethernet
        başlığını çıkarır, ardından işletim sistemi çekirdeği IP ve UDP başlıklarını
        alır ve ardından da TFTP programı TFTP başlığını alır ve içindeki veriye
        erişir.
      
        Artık şu kötü üne sahip Katmanlı Ağ Modeli (Layered Network Model)
        kavramından bahsedebilirim. Bu ağ modeli diğer modellere pek çok
        üstünlüğü bulunan bir ağ işlevselliğinden bahseder. Mesela yazdığınız
        soket programının tek bir harfini bile değiştirmenize gerek kalmadan
        bu programı farklı fiziksel donanımlar üzerinde çalıştırabilirsiniz
        (seri, thin Ethernet, AUI, her ne ise) çünkü düşük seviyedeki programlar
        sizin yerinize ayrıntıları hallederler. Ağ donanımının fiziksel detayları
        ve topolojisi soket programcısını ilgilendirmez.
      
        Daha fazla laf kalabalığı yapmadan bu müthiş modelin katmanlarını liste
        olarak vereyim, ağ ile ilgili sınava girerseniz işe yarayabilir:
      
        - Uygulama
- Sunum
- Oturum
- Taşıma
- Ağ
- Veri Bağlantısı
- Fiziksel
        Fiziksel katman donanımla ilgilidir (seri, Ethernet, vs.). Uygulama
        katmanı fiziksel katmandan alabildiğine uzaktır -- kullanıcılar ağ ile bu
        katmanda temas kurar.
      
        Açıkçası bu model o kadar geneldir ki eğer isterseniz bu modeli arabanıza
        bile uygulayabilirsiniz. Unix ile daha uyumlu bir katmanlı model şöyle
        yazılabilir:
      
        - 
            Uygulama Katmanı (telnet, ftp, etc.)
           
- 
            Konaktan Konağa Taşıma Katmanı (TCP, UDP)
           
- 
            Internet Katmanı (IP ve yönlendirme)
           
- 
            Ağa Erişim Katmanı (Ethernet, ATM ya da her ne ise)
           
        Bu aşamada söz konusu katmanların veri paketlenmesinin hangi aşamalarına
        karşılık geldiğini görebiliyor olmalısınız.
      
        Tek bir paketi oluşturmak için ne kadar çok iş yapılması gerektiğini
        gördünüz mü! Aman allahım! Üstelik paket başlık bilgilerini de
        cat komutunu kullanarak elle girmeniz gerekiyor!
        Şaka şaka! Tek yapmanız gereken eğer veri akış soketi kullanıyorsanız
        send() ile veriyi göndermek. Eğer veri paketi soketi
        kullanıyorsanız bu sefer de yapılması gereken paketi uygun şekilde
        paketleyip sendto() işlevini kullanarak bunu yollamak.
        Çekirdek sizin için Taşıma katmanını ve Internet katmanını kurar,
        donanımınız da Ağa Erişim Katmanını halleder. Ah, modern teknoloji.
      
        Ağ teorisi ile ilgili kısa dersimiz burada sona eriyor. Ah evet tabii ki
        yönlendirmeyle ilgili söylemem gereken şeyler vardı: unutun! Bundan
        bahsetmeyeceğim. Yönlendirici (router) IP başlığını çeker yönlendirme
        tablosuna bakar, seçim yapar, vs. vs. vs. Eğer gerçekten meraklı iseniz
        
IP RFC belgesine bakın. Bunu
        öğrenmezsiniz ölmezsiniz.