İnceleme
Önceki Belirtim Sonraki
İnceleme
Bir Protokolün gerçeklenimi dayanıklı olmalıdır. Her gerçeklenim başkaları tarafından oluşturulanlarla birarada iş görebilmelidir. Bu belirtim protokol hakkında açıklanmamış bir şey kalmamasını hedeflerken farklı yorumlar da mümkündür. Genel olarak, bir gerçenim verirken tutucu, alırken özgürlükçü olmalıdır. Yani, verikatarlarını iyi biçimlenmiş olarak yollamak hususunda dikkatli olmalı ama yorumlayabileceği her verikatarını da kabul etmelidir (temiz kalmaya çalışırken teknik hatalara konu olmamak gibi).
Temel Genel Ağ hizmeti verikatarları üzerine kuruludur ve verikatarlarının hedef konaktaki hedef Genel Ağ protokolü modülünde birleştirilmek üzere ağgeçitlerinde veridilimlerine bölünmesine imkan verir. Elbette verikatarlarının bir ağın içinde veya bir ağın ağgeçitleri arasında özel kabullere göre veridilimlerine bölünmesi ve yeniden birleştirilmesine, bu işlemin Genel Ağ protokollerine ve diğer yüksek seviyeli protokollere şeffaf oluşundan dolayı, ayrıca izin verilir. Veridilimlerine bölme ve yeniden birleştirme işleminin bu şeffaf türüne "ağa bağımlı" dilimleme denir ve burada daha fazla bahsedilmeyecektir.
Genel Ağ adresleri kaynakların ve hedeflerin konak seviyesinde ayrımsanmasını sağlarken bir protokol alanına da imkan verir. Her protokolün bir konakta her gerekli oluşunda çoğullamaya imkan vereceği kabul edilir.
Adresleme
Ağlara adres atamada esneklik sağlayabilmek ve küçükten orta ölçekliye kadar çok fazla sayıda ağa izin vermek için, adres alanı yorumu çok konaklı az sayıda ağ, makul sayıda konaklı makul sayıda ağ ve az konaklı çok sayıda ağ belirtilebilecek şekilde kodlanmıştır. Ek olarak, "ek adresleme kipi" için bir çıkış kodu da vardır.
Adres Biçimleri:
  Yüksek Bitler   Biçim                          Sınıfı
  -------------   -----------------------------  ------
       0          ağ için  7, konak için 24 bit     a
       10         ağ için 14, konak için 16 bit     b
       110        ağ için 21, konak için  8 bit     c
       111        ek adresleme kipi için önlem
Ağ alanındaki sıfır değeri bu ağ anlamındadır. Bu sadece belirli ICMP iletilerinde kullanılır. Ek adresleme kipi tanımlanmamıştır. Bu özelliklerin ikisi de gelecekte kullanım için ayrılmıştır.
Ağ adresleri için atanmış gerçek değerler "Atanmış Numaralar"da [9] verilmiştir.
Yerel ağa göre atanmış yerel adres, fiziksel tek bir konağın sanki bir kaç Genel Ağ konağıymış gibi davranmasını mümkün kılmalıdır. Yani, çeşitli Genel Ağ adreslerinin tek bir arayüze karşılık gelmesini mümkün kılan ağ/konak arayüzleri ile Genel Ağ konak adresleri arasında bir eşlem olması gerekir. Ayrıca tek bir konağın birden fazla fiziksel arayüze sahip olabilmesi ve bunlardaki verikatarlarının tümünün tek bir konağı adresliyormuşçasına ele alınabilmesi mümkün olmalıdır.
ARPANET, SATNET, PRNET ve diğer ağların adresleri ile Genel Ağ adresleri arasındaki eşleşmeler "Adres Eşlemleri"nde [5] açıklanmıştır.
Dilimleme ve Yeniden Birleştirme
Genel Ağ betimleme alanı (ID), yeniden birleştirmek amacıyla veridilimlerini betimlemek için protokol alanları ile kaynak ve hedef adresini birlikte kullanır.
Kalan Veridilimleri bayrağı biti (KD), verikatarı son veridilimi değilse etkin olur. Veridilimi Başlangıcı alanı veridiliminin özgün verikatarındaki göreli başlangıç yerini belirtir. Veridilimleri 8 sekizlilik birimlerle sayılır. Dilimleme stratejisinin tasarımı, özgün verikatarının dilimleme ile ilgili alanlarının sıfır oluşuna (KD = 0, Veridilimi Başlangıcı = 0) dayandırılmıştır. Eğer bir Genel Ağ verikatarı dilimlemeye maruz kalmışsa, veri alanı 8 sekizlilik dilimlere ayrılmış demektir.
Bu biçimleme, 65.536 sekizlinin her biri 8 sekizliden oluşan 8192 (2^13) dilime ayrılmasını mümkün kılar. Bu hesabın verikatarının toplam uzunluk alanı ile tutarlılığına dikkat edilmelidir (elbette, başlık, veridilimlerinde değil toplam uzunluğun içinde hesaba katılır).
Dilimleme yapılırken, bazı seçenekler her veridilimine kopyalanırken bazıları sadece ilk veridiliminde kalır.
Her Genel Ağ modülü dilimleme yapılmaksızın 68 sekizlilik bir verikatarını ilerletebilmelidir. Bunun sebebi en küçük dilimin 8 sekizli ve Genel Ağ başlığının da en fazla 60 sekizli uzunlukta olabilmesidir.
Her Genel Ağ hedefi 576 sekizli uzunluktaki bir verikatarını, ister tek bir 576 sekizlilik verikatarı olarak, ister yeniden birleştirilmek üzere 576 sekizlilik bir veridilimi olarak, alabilmelidir.
Dilimleme işleminden etkilenebilen alanlar şunlardır:
  1. Seçenekler alanı
  2. Kalan Veridilimleri bayrağı
  3. Veridilimi Başlangıcı
  4. Genel Ağ başlığı Uzunluk alanı
  5. Toplam Uzunluk alanı
  6. Başlık Sağlama Özeti
Dilimlenmeyecek (DY) bayrağı etkinse, bu verikatarının veridilimlerine bölünmesine izin VERİLMEZ, ama yokedilebilir. Bu, alan konağın Genel Ağ veridilimlerini yeniden birleştirecek kadar özkaynağa sahip olmadığı durumlarda dilimlemeyi yasaklamak için kullanılabilir.
Dilimlenmeyecek kullanımına örnek olarak küçük bir konağın hat yükünü düşürmek için kullanımı verilebilir. Küçük konak bir verikatarını kabul eden onu belleğinde saklayıp daha sonra çalıştıran bir önyükleme programı içeriyor olabilirdi.
Dilimleme ve yeniden birleştirme işlemleri en kolay örneklerle açıklanır. Aşağıdaki yöntemler gerçeklenim örnekleridir.
Aşağıdaki sözde programlarda kullanılan sembollerin anlamları: "=<" küçük ya da eşittir anlamında, "#" farklı anlamında, "=" eşit anlamında, "<-" atanır anlamındadır. "x..y" x dahil, y hariç, x'ten y'ye kadar olanlar anlamındadır. Örneğin, "4..7" gösteriminde aralığa 4, 5, 6 dahildir, 7 dahil değildir.
Bir Dilimleme İşlemi Örneği
Sonraki ağ boyunca aktarılabilen en büyük verikatarının uzunluğu azami aktarım birimi (Maximum Transmission Unit - MTU) olarak bilinir.
Verikatarının toplam uzunluğu azami aktarım biriminden küçük veya eşitse bu verikatarı yola devam edilmek üzere sonraki adıma teslim edilir; aksi takdirde, veri katarı iki veribölütüne bölünür, ilk veribölütü azami uzunlukta olurken ikinci veribölütü kalanı içerir. İlk veribölütü işlemin sonraki adımına teslim edilirken, ikincisi hala çok büyükse tekrar ikiye bölme işlemine tabi tutulur.
Gösterim:

  VB  -  Veridilimi Başlangıcı
  İBU -  Genel Ağ Başlık Uzunluğu
  DY  -  Dilimlenmeyecek bayrağı
  KD  -  Kalan Veridilimleri bayrağı
  TU  -  Toplam Uzunluk
  EVB -  Eski Veridilimi Başlangıcı
  EİBU - Eski Genel Ağ Başlık Uzunluğu
  EKD -  Eski Kalan Veridilimleri bayrağı
  ETU -  Eski Toplam Uzunluk
  DBS -  Dilim Bloklarının Sayısı
  MTU -  Azami Aktarım Birimi

Algoritma:

  TU =< MTU ise,
    bu verikatarı yola devam etmek üzere sonraki adıma teslim edilir
  değilse ve DY = 1 ise,
    verikatarı yokedilir
  değilse,
    ilk veridilimini üretmek için:
      (1)  Özgün Genel Ağ başlığı kopyalanır;
      (2)  EİBU <- İBU; ETU <- TU; EVB <- VB; EKD <- KD;
      (3)  DBS <- (MTU-İBU*4)/8;
      (4)  İlk İBU*8 veri sekizlisi iliştirilir;
      (5)  Doğru Başlık:
            KD <- 1;  TU <- (İBU*4)+(DBS*8);
            Sağlama Özeti yeniden hesaplanır;
      (6)  bu veridilimi yola devam etmek üzere sonraki adıma teslim edilir;

    ikinci veridilimini üretmek için:
      (7)  Genel Ağ başlığı seçmece kopyalanır (bazı alanlar kopyalanmaz,
            Seçenek tanımlarına bakınız);
      (8)  Verinin kalanı eklenir;
      (9)  Doğru Başlık:
            İBU <- (((EİBU*4)-(seçenek uzunluğu kopyalanmaz))+3)/4;
            TU <- ETU - DBS*8 - (EİBU-İBU)*4);
            VB <- EVB + DBS;  KD <- EKD;
            Sağlama Özeti yeniden hesaplanır;
      (10) Bu veridilimi dilimleme sınamasına teslim edilir;
  sınama sonu.
Yukarıdaki algoritmada her veridilimi (sonuncu hariç) izin verilen azami boyutta üretilmektedir. Bunun yerine azami boyuttan daha küçük veridilimleri üretmek de bir seçenek olabilir. Örneğin, sonuç azami aktarım biriminden küçük olana kadar büyük verikatarlarını peşpeşe ikiye bölen bir yordam gerçeklenebilirdi.
Bir Yeniden Birleştirme Örneği
Her verikatarı için tampon betimleyici, kaynak, hedef, protokol ve betimleme alanlarının toplamı olarak hesaplanır. Eğer bu dilimlenmemiş verikatarı ise (Veridilimi Başlangıcı ve Kalan Veridilimleri alanlarının ikisi de sıfırsa), bu tampon betimleyici ile ilişkili yeniden birleştirme özkaynakları serbest bırakılır ve verikatarı yola devam etmek üzere sonraki adıma teslim edilir.
Bu tampon betimleyici ile ilişkili elde başka veridilimi yoksa, yeniden birleştirme özkaynakları ayrılır. Bu özkaynaklar, bir veri tamponu, bir başlık tamponu, bir veridilimi bloğu bit tablosu, bir toplam veri uzunluğu alanı ve zamanlayıcıdan oluşur. Veridilimindeki veri, Veridilimi Başlangıcı ve Uzunluk değerlerine göre veri tamponuna yerleştirilir ve veridilimi bloğu bit tablosundaki alınan veridilimi bloklarının karşılığı olan bitler etkin yapılır.
Eğer bu ilk veridilimi ise (yani, Veridilimi Başlangıcı sıfır ise), bu başlık başlık tamponuna yerleştirilir. Eğer bu son veridilimi ise (yani, Kalan Veridilimi alanı sıfırsa), toplam veri uzunluğu hesaplanır. Eğer bu veridilimi verikatarını tamamlıyorsa (veridilimi blokları tablosundaki bitlere bakarak saptanır), verikatarı yola devam etmek üzere sonraki adıma teslim edilir; aksi takdirde, zamanlayıcı bu veridiliminin yaşam süresi alanındaki değere ve mevcut zamanlayıcı değerinin azamisine ayarlanır; ve yeniden birleştirme yordamı, denetimi kendini çağıran sürece bırakır.
Eğer zamanlayıcılar zamanaşımına uğrarsa, bu tampon betimleyici ile ilgili yeniden birleştirme özkaynaklarının tamamı serbest bırakılır. Zamanlayıcının ilk ayar değeri yeniden birleştirme bekleme süresinin alt sınırıdır. Eğer gelen veridilimindeki Yaşam Süresi, mevcut zamanlayıcı değerinden büyükse bekleme zamanı arttırılacağından ama küçükse azaltılmayacağından bu değer bir alt sınırdır. Üst sınır ise azami yaşam süresidir (yaklaşık 4,25 dakika). Zamanlayıcının ilk ayar değeri olarak şu an önerilen 15 saniyedir. Bu, bu protokolden elde edilen deneyimle değişebilir. Bu parametre değerinin seçiminin tampon sığasına bağlı oluşuna ve tampon sığasınında aktarım ortamının hızı ile orantılı oluşuna dikkat ediniz. Yani, veri hızı ile zamanlayıcı değerinin çarpımı tampon boyutunu verecektir (örn, 10Kb/s X 15s = 150Kb).
  Gösterim:

    VB    -  Veridilimi Başlangıcı
    İBU   -  Genel Ağ Başlık Uzunluğu
    KD    -  Kalan Veridilimleri bayrağı
    TTL   -  Yaşam Süresi
    TU    -  Toplam Uzunluk
    TVU   -  Toplam Veri Uzunluğu
    BUFID -  Tampon betimleyici
    ALBT  -  Alınan Veridilimi Bit Tablosu
    ZAS   -  Zamanlayıcı Alt Sınırı

  Algoritma:

    (1)  BUFID <- kaynak|hedef|protokol|betimleme;
    (2)  VB = 0 ve KD = 0 ise,
    (3)     ve BUFID tamponu ayrılmışsa,
    (4)        bu BUFID için tampon boşaltılır;
    (5)          Verikatarı sonraki adıma teslim edilir;
                 İşlem bitirilir.
    (6)   değilse (BUFID tamponu ayrılmamışsa),
    (7)      BUFID ile yeniden birleştirme özkaynakları ayrılır;
             TIMER <- ZAS; TVU <- 0;
    (8)      Veridilimindeki veri BUFID tamponuna
             VB*8 .. (TU-(İBU*4))+VB*8 sekizlileri olarak yerleştirilir
    (9)      VB .. VB+((TU-(İBU*4)+7)/8) ALBT bitleri bir yapılır;
    (10)     MF = 0 ise, TVU <- TU-(İBU*4)+(VB*8)
    (11)     VB = 0 ise, başlığı başlık tamponuna koy
    (12)     TVU # 0 ise,
    (13)        ve 0 .. (TVU+7)/8 ALBT bitleri bir ise,
    (14)           TU <- TVU+(İBU*4)
    (15)           Verikatarını sonraki adıma teslim et;
    (16)           Bu BUFID için yeniden birleştirme özkaynaklarını
                   serbest bırak;
                İşlem bitirilir.
    (17)     TIMER <- MAX(TIMER,TTL);
    (18)     sonraki veridilimineveya zamanaşımına kadar işlemden vazgeç;
    (19)  Zaman dolar: Bu BUFID için yeniden birleştirme özkaynaklarını boşalt;
          Yordam sonu.
İki veya daha fazla veridiliminin aynı veriyi içermesi durumunda, ya tamamen ya da bir kısmi örtüşme boyunca, bu yordam veri tamponundaki en son veriyi kullanır ve verikatarı teslim alınır.
Betimleme
Bir verikatarı için Betimleyici seçimi, veridilimlerini eşsiz olarak kimliklendirmenin bir yolunu sağlamak ihtiyacına dayanır. Veridilimlerini birleştiren protokol modülü veridilimlerinin aynı verikatarına ait olup olmadığına kaynak, hedef, protokol ve betimleyicinin hepsinin aynı olup olmadığına bakarak karar verir. Bu durumda, gönderici Betimleyiciyi verikatarının (veya onun veridilimlerinin) Genel Ağ'da canlı olduğu süre için bu kaynak, hedef çifti ve protokol için eşsiz olarak seçmelidir.
Gönderen protokolün, Genel Ağ'daki son azami paket ömrü süresince haberleştiği her hedef için bir girdi tuttuğu bir betimleyici tablosuna gerek duyduğunu anlaşılıyor.
Betimleyici alanı 65536 farklı değere izin verdiğinden, bazı konaklar basitçe hedeften bağımsız olarak eşsiz betimleyiciler kullanabilirler.
Bazı yüksek seviyeli protokoller betimleyici seçimini kendilerine uydurur. Örneğin, TCP protokolü modülleri birbirinin aynı TCP veribölütleri aktarabilir (yeniden aktarım olayı). Eğer yeniden aktarım özgün aktarımla aynı betimleyiciyi taşıyorsa, her verikatarının veridilimleri doğru TCP veribölütünü oluşturmakta kullanıldığından, doğru alım olasılığı artar.
Hizmet Türü
Hizmet Türü (HT) Genel Ağ hizmet kalitesinin seçimidir. Hizmet Türü, üstünlük, gecikme, işlem gücü ve güvenilirlik soyut parametreleri üzerinden belirlenir. Bu soyut parametreler, içinden verikatarı geçen ağların asıl hizmet parametreleriyle eşlenmek içindir.
Üstünlük. Bir verikatarının öneminin bağımsız ölçüsü.
Gecikme. Hemen teslim bu belirteci taşıyan verikatarları için önemlidir.
İşlem Gücü. Yüksek veri hızı bu belirteci taşıyan verikatarları için önemlidir.
Güvenirlik. Tesliminden emin olmak için daha fazla çaba gösterilmesi bu belirteci taşıyan verikatarları için önemlidir.
Örneğin, ARPANET bir öncelik bitine ve "standart" iletilerle (0. tür) "denetimsiz" iletiler (3. tür) arasında bir seçim imkanına sahiptir (tek paketlik ve çok paketli iletiler arasındaki seçim de ayrı bir hizmet parametresi olarak düşünülebilir). Denetimsiz iletilerin teslimatları daha az güvenilir olmaya ve daha az gecikmeye uğramaya meyleder. Bir Genel Ağ verikatarının ARPANET boyunca gönderileceğini varsayalım. Genel Ağ hizmet türü şöyle verilmiş olsun:
  Üstünlük:   5
  Gecikme:    0
  İşlem Gücü: 1
  Güvenirlik: 1
Bu örnekte, bu parametrelerin bu değerlere eşlenmesi ARPANET için ARPANET öncelik bitinin etkin ayarlanması demek olurdu, çünkü Genel Ağ üstünlüğü kendi aralığının üst yarısındadır; standart iletiler seçilmiş olurdu, çünkü işlem gücü ve güvenirlik gereksinimleri belirtilmiş ama gecikme istenmemiştir. Hizmet eşleme ile ilgili daha ayrıntılı bilgi "Hizmet Eşlemleri"nde [8] bulunmaktadır.
Yaşam Süresi
Yaşam süresi gönderici tarafından verikatarının Genel Ağ sisteminde kalabileceği azami süreye ayarlanır. Eğer verikatarı Genel Ağ sisteminde yaşam süresinden daha uzun süre kalırsa verikatarı yokedilir.
Bu alanın değeri Genel Ağ başlığının işleme sokulduğu her noktada verikatarını işlemeye harcanan zamanı yansıtacak şekilde düşürülmelidir. Asıl harcanan zamana ilişkin yerel bir bilginin olmaması halinde bile alanın değeri 1 düşürülmelidir. Süre saniye cinsinden ölçülür (yani 1, bir saniye demektir). Bu durumda azami yaşam süresi 255 saniye, yani 4,25 dakika olur. Verikatarını işleyen her modül işlem zamanı bir saniyeden az bile sürse, yaşam süresini bir azaltması gerekir. Bu bakımdan Yaşam Süresi bir verikatarının mevcut olabileceği asıl süreyi değil sürenin üst sınırını belirler. Yaşam Süresi belirlemenin amacı, teslim edilemeyen verikatarlarının yokedilmesini sağlamak için verikatarlarının ömrünü sınırlamaktır.
Bazı daha yüksek seviyeli güvenilir protokoller eski yinelenmiş verikatarlarının belli bir süre geçtikten sonra artık gelmeyeceği kabulüne dayanırlar. Yaşam süresi böyle protokoller için önkabullerinin güvencesini sağlamanın bir yoludur.
Seçenekler
Seçenekler verikatarları için isteğe bağlıdır, fakat gerçeklenimlerde hepsi gereklidir. Yani, bir seçeneğin varlığı ya da yokluğu gönderici açısından sadece bir seçim olduğu halde her Genel Ağ modülünün her seçeneği değerlendirecek yeteneği olmalıdır. Seçenek alanında çok sayıda seçenek bulunabilir.
Seçenekler 32 bitlik sınırda bitmeyebilirler. Genel Ağ başlığında seçenek sekizlilerinin boş olanları sıfır sekizlileri olmalıdır. Bunlardan ilki "Seçenek Sonu" seçeneği olarak yorumlanır ve Genel Ağ başlığının kalanı dolgu kabul edilir.
Her Genel Ağ modülü her seçeneğin gerektirdiği gibi davranabilmelidir. Güvenlik Seçeneği, eğer sınıflandırılmış, sınırlanmış veya bölmelenmiş trafik geçirilecekse gereklidir.
Sağlama Özeti
Genel Ağ başlığı sağlama özeti Genel Ağ başlığı değişmişse tekrar hesaplanır. Örneğin yaşama süresinin azalması, Genel Ağ seçeneklerinde artış veya değişiklik, dilimleme dolayısıyla başlık değişebilir. Bu Genel Ağ seviyesinde sağlama özeti, Genel Ağ başlığının aktarım hatalarından korunması için düşünülmüştür.
Yeniden aktarım gecikmeleri olmaması için bir kaç bit hatasını kabul edebilen bazı uygulamalar vardır. Eğer Genel Ağ protokolü veri doğruluğu için zorlanacaksa böyle uygulamalar desteklenmemelidir.
Hatalar
Genel Ağ protokol hataları ICMP iletileri [3] olarak raporlanabilir.
Önceki Üst Ana Başlık Sonraki
Genel Ağ Başlığı Biçimi Başlangıç Arayüzler
Bir Linux Kitaplığı Sayfası