Veri İletişimi
Önceki İşlevsel Belirtim Sonraki
Veri İletişimi
Bağlantı bir kere kurulduktan sonra veri iletişimi veribölütlerini değiştokuş ederek gerçekleşir. Hatalar (sağlama özeti sınamalarının başarısız olması), ağda sıkışıklık gibi nedenlerden dolayı veribölütleri kaybolabildiğinden veribölütlerinin her birinin teslimatını garantiye almak için TCP yeniden aktarım (bir zamanaşımı sonrası) yapar. Bu işlemden dolayı veya ağın yapısı gereği yinelenmiş veribölütleri gelebilir. Sıra numaraları ile ilgili bölümde açıklandığı gibi TCP veribölütlerindeki sıra ve alındı numaraları üzerinde kabul edilebilirliklerini doğrulamak için bazı sınamalar yapar.
Verinin göndericisi kullanacağı sonraki sıra numarasının değerini GÖN.SNR değişkeninde saklar. Verinin alıcısı ise almayı umduğu sonraki sıra numarasını ALM.SNR değişkeninde saklar. Verinin göndericisi alındılanmamış en eski sıra numarasını GÖN.OLM değişkeninde tutar. Eğer gönderilmiş tüm veri alındılandıktan sonra veri akışı bir süre için boşta kalırsa üç değişkenin eşitlendiği görülür.
Gönderici bir veribölütünü oluşturup gönderdikten sonra GÖN.SNR'yi arttırır. Alıcı ise veribölütünü kabul ettikten sonra ALM.SNR'yi arttırır ve bir alındı yollar. Bu alındı veri göndericisine ulaştığında GÖN.OLM'yi arttırır. Bu değişkenlerin değerleri arasındaki fark iletişimdeki gecikmenin bir ölçüsüdür. Değişkenlerin arttırım miktarı veribölütündeki verinin uzunluğu kadardır. KURULU duruma geçildikten sonra tüm veribölütlerinin alındı bilgilerine dayanarak taşınması gerektiğine dikkat ediniz.
KAPAT kullanıcı çağrısı, bir gelen veribölütündeki SON denetim bayrağının yaptığı gibi bir gitsin işlemi uygular.
Yeniden Aktarım Zamanaşımı
Ağlar arası sistemi oluşturan ağın değişkenliği ve TCP bağlantılarının geniş çapta kullanımı sebebiyle yeniden aktarım zamanaşımının özdevimli saptanması gerekir. Burada göstermelik olarak bir yeniden aktarım zamanaşımını saptama işlemi örneklenmiştir.
Örnek 4.1. Bir Yeniden Aktarım Zamanaşımını Saptama İşlemi Örneği
Beli bir sıra numarası ile bir verinin gönderilmesi ile bu sıra numarasını kapsayan bir alındının alınması (gönderilen veribölütleri ile alınanların eşleşmesi zorunlu değildir) arasında geçen süre ölçülür. Ölçülen bu süreye Gidip Gelme Zamanı (GGZ) denir. Bundan Yaklaşık Gidip Gelme Zamanı (YGGZ) hesaplanır:
    YGGZ = ( ALFA * YGGZ ) + ((1-ALFA)) * GGZ)
buna bağlı olarak da yeniden aktarım zamanaşımı (YAZ) hesaplanır:
    YAZ = asg[ÜSINIR,azm[ASINIR,(BETA*YGGZ)]]
Burada ÜSINIR zamanaşımının üst sınırını (örn, 1 dakika), ASINIR ise zamanaşımının alt sınırını (örn, 1 saniye) ifade etmektedir. ALFA bir yuvarlatma katsayısı (örn, 0,8 ... 0,9), BETA ise gecikme değişim katsayısıdır (örn, 1,3 ... 2,0).
Acil Bilgi İletişimi
TCP acil durum mekanizmasının amacı gönderen kullanıcının alan kullanıcıyı acil veriyi kabul etmesi için teşvik etmek ve alan kullanıcının bütün acıl veriyi alması durumunda alan TCP'nin bunu belirtmesine izin vermeyi mümkün kılmaktır.
Bu mekanizma veri akımındaki bir noktanın acil bilgi sonu olarak tasarlanmasına izin verir. Alıcı TCP'de alım sıra numarasının (ALM.SNR) bu noktanın her önüne geçişinde, TCP kullanıcıya "acil kip"e geçmesini, alım sıra numarası aciliyet göstericisini yakaladığında ise "normal kip"e geçmesini söylemelidir. Eğer aciliyet göstericisi kullanıcı "acil kip"te iken güncellenirse, güncelleme kullanıcıya görünür olmayacaktır.
Bu yöntem, aktarılan tüm veribölütlerinde taşınmak üzere bir aciliyet alanı tahsis eder. ACL denetim bayrağı aciliyet alanının anlamlı olduğunu belirtir ve aciliyet göstericisini belirtmek üzere veribölütü sıra numarasına eklenmesi gerekir. Bu bayrağın yokluğu ortada acil bir verinin bulunmadığını gösterir.
Bir aciliyet göstericisi göndermek için kullanıcı ek olarak en azından bir veri sekizlisi göndermek zorundadır. Eğer gönderen kullanıcı ayrıca bir gitsin belirtirse hedef sürece acil bilginin teslim zamanı ileri alınır.
Pencere Yönetimi
Her veribölütünde gönderilen pencere, pencere göndericisinin (veri alıcısının) o an kabul etmeye hazır olduğu sıra numaraları aralığını gösterir. Bu bağlantıdaki veri tamponunun kullanılabilir alanı ile ilgili bir önkabul vardır.
Geniş bir pencere belirtilmesi aktarımı teşvik eder. Kabul edilebilecekten fazla veri gelmesi durumunda ise fazlası iptal edilir. Bu, haddinden fazla yeniden gönderime, ağa ve TCP'lere gereksiz yük eklenmesine sebep olur. Küçük bir pencere belirtilmesi, veri aktarımını, veribölütü aktarımları arasındaki gidip gelme gecikmesini başlatan noktada sınırlayabilir.
Sağlanan mekanizmalar bir TCP'ye büyük bir pencerenin ardından daha fazla veri kabul edilmesini zorlamaksızın daha küçük bir pencere ilan etmesini mümkün kılar. Buna "percere kırpma" denir ve kesinlikle mani olunur. Sağlamlık ilkesi gereğince, TCP'ler kendi pencerelerini kırpamazlar, fakat diğer TCP'lerde kısmen böyle bir davranışa karşı hazırlıklı olunmalıdır.
Gönderen TCP kullanıcıdan geleni kabule hazır olmalı ve gönderi penceresi sıfır bile olsa en azından yeni verinin bir sekizlisini göndermelidir. Gönderen TCP pencere sıfır olsa bile alıcı TCP'ye düzenli olarak veriyi yeniden aktarmalıdır. Percerenin sıfır olduğu durum için yeniden aktarım aralığı olarak 2 dakika önerilmektedir. Bu yeniden aktarımda aslolan sıfır pencereli TCP'lerle pencerenin yeniden her açılışının diğerine güvenilir şekilde raporlanacağını garanti etmektir.
Alan TCP'nin bir sıfır penceresi varken bir veribölütü geldiğinde, mevcut pencereyi (sıfır) ve sonraki beklediği sıra numarasını gösteren bir alındıyı yine de göndermelidir.
Gönderen TCP aktaracağı veriyi o anki pencereye sığacak şekilde veribölütleri olarak paketler ve yeniden aktarım kuyruğunda bu veribölütlerini yeniden paketleyebilir. Böyle yeniden paketleme gerekli değildir ama yararlı olabilir.
Veri akışının tek yönlü olduğu bir bağlantıda, pencere bilgisi hepsi aynı sıra numarasına sahip alındı veribölütlerinde taşınır, bu durumda sırasız bile gelseler onları yeniden sıralamak için hiçbir yol olmayacaktır. Bu ciddi bir sorun değildir, fakat pencere bilgisinin ara sıra geçici olarak veri alıcıdaki eski raporları temel alması mümkün olacaktır. Bu sorundan kaçınmak için en yüksek alındı numarasını taşıyan veribölütlerindeki (evvelce alınmış en yüksek alındı numarasına eşit veya daha büyük alındı numaralı veribölütlerindeki) pencere bilgisine göre hareket etmek en iyisidir.
Pencere yönetim yöntemi, iletişim başarımında önemli bir etkiye sahiptir. Aşağıdaki açıklamalar, gerçeklenimcilere önerilerdir.
Pencere Yönetim Önerileri
Az sayıda büyük veribölütü kullanarak daha iyi başarımın elde edildiği durumda çok küçük bir pencere ayrılması verinin çok sayıda küçük veribölütünde aktarılmasına sebep olur.
Küçük pencerelerden kaçınmak için bir öneri, alıcı için bir pencerenin güncellenmesini, bağlantı için olası en büyük tahsisatın en azından yüzde X'i kadar ek bir tahsis gerçekleşene kadar ertelemektir (burada X, 20 ile 40 arası olabilir).
Diğer bir öneri ise, göndericinin veriyi göndermeden önce pencerenin yeterince büyümesini bekleyerek küçük veribölütleri göndermekten kaçınmasıdır. Kullanıcıdan bir gitsin işlemi gelirse veribölütü küçük bile olsa veri gönderilmelidir.
Alındıların geciktirilmemesi gerektiğine yoksa gereksiz yeniden aktarıma yolaçılacağına dikkat ediniz. Bir strateji küçük bir veribölütü geldiğinde (pencere bilgisini güncellemeksizin) bir alındı gönderdikten sonra pencere büyük olduğunda yeni pencere bilgisi ile başka bir alındı göndermek olurdu.
Sıfır penceresi algılanmak üzere gönderilmiş veribölütü ek olarak aktarılan verinin giderek daha küçük veribölütlerine parçalanmasını da başlatabilir. Sıfır penceresi algılanmak üzere gönderilmiş tek bir veri sekizlisi içeren bir veribölütü kabul edilirse mevcut pencerenin tek sekizlisini tüketir. Gönderen TCP basitçe sıfırdan farklı pencere gönderdikçe aktarılan veri büyüklü küçüklü veribölütlerine bölünecektir. Zamanla, büyük veribölütlerinin biri biraz küçük diğeri biraz büyük bir çifte bölünmesi pencere tahsis eden alıcıda arasıra beklemelerle sonuçlanır. Ve bir süre sonra veri aktarımı bilhassa küçük veribölütlerinde olmaya başlar.
Burada öneri; en basitini yapma eğilimindeki gerçeklenimlerde pencere yönetim mekanizmaları çok sayıda küçük pencereyle sonuçlanmak eğiliminde olduğundan, TCP gerçeklenimlerinin etkin olarak küçük pencere tahsislerini daha büyük pencereler halinde birleştirmeye çalışmaları gerektiğidir.
Önceki Üst Ana Başlık Sonraki
Öncelik ve Güvenlik Başlangıç Arayüzler
Bir Linux Kitaplığı Sayfası