3.2. Terminoloji

TCP işlemlerine çok fazla dalmadan önce terminoloji üzerinde ayrıntılı olarak durmak istiyoruz. Bir TCP bağlantısının sürdürülmesi çeşitli değişkenlerin hatırlanmasını gerektirir. Bu değişkenlerin saklanacağı yer olarak Aktarım Denetim Bloğu (ADB) adını verdiğimiz bir bağlantı kaydı tasarladık. Yerel ve uzak soket numaralarını, bağlantı önceliği ve güvenliği, kullanıcıların gönderim ve alım tamponların göstericileri yeniden aktarım kuyruğunun göstericisi ve o anki veri bölütü, ADB'de saklanan değişkenler arasında sayılabilir. Ek olarak gönderim ve alım sıra numaraları ile ilgili çeşitli değişkenler de ADB'de saklanır.

Gönderi Sıra Numaraları Değişkenleri
GÖN.OLM - gönderi alınmadı
GÖN.SNR - sonraki gönderi
GÖN.PEN - gönderi penceresi
GÖN.ACL - gönderi aciliyet göstericisi
GÖN.WL1 - son pencere güncellemesinde kullanılan veri bölütü sıra numarası
GÖN.WL2 - son pencere güncellemesinde kullanılan veri bölütü alındı numarası
İGS     - ilk gönderi sıra numarası
Alım Sıra Numaraları Değişkenleri
ALM.SNR - sonraki alım
ALM.PEN - alım penceresi
ALM.UP  - alım aciliyet göstericisi
İAS     - ilk alım sıra numarası

Bu değişkenlerden bazılarının sıra değişkenleri uzayıyla ilişkilendirlmesinde aşağıdaki şeklin yardımı olabilir.

Şekil 4. Gönderi Sıra Numaraları Uzayı
         1         2          3          4
    ----------|----------|----------|----------
           GÖN.OLM    GÖN.SNR    GÖN.OLM
                                +GÖN.PEN

1 - alındı'lanmış eski sıra numaraları
2 - alındı'lanmamış sıra numaraları
3 - yeni veri aktarımı için izin verilen sıra numaraları
4 - henüz izin verilmemiş gelecekteki sıra numaraları

          Gönderi Sıra Numaraları Uzayı

Gönderi penceresi Şekil 4'teki sıra numaraları uzayının 3 ile etiketlenmiş bölümüdür.

Şekil 5. Alım Sıra Numaraları Uzayı
        1         2          3
   ----------|----------|----------
          ALM.SNR    ALM.SNR
                    +ALM.PEN

1 - alındı'lanmış eski sıra numaraları
2 - yeni alım için izin verilen sıra numaraları
3 - henüz izin verilmemiş gelecekteki sıra numaraları

        Alım Sıra Numaraları Uzayı

Alım penceresi Şekil 5'teki sıra numaraları uzayının 2 ile etiketlenmiş bölümüdür.

Ayrıca değerlerini o anki veri bölütündeki alanlardan alan ve incelememizde sıkça kullanılacak olan birtakım değişkerler daha vardır.

O anki Veri bölütü Değişkenleri
VBL.SIRA - veri bölütü sıra numarası
VBL.ALN  - veri bölütü alındı numarası
VBL.UZN  - veri bölütü uzunluğu
VBL.PEN  - veri bölütü penceresi
VBL.ACL  - veri bölütü aciliyet göstericisi
VBL.PRC  - veri bölütü öncelik değeri

Bir bağlantı yaşamı boyunca bir seri durumdan geçer. Bu durumlar: DİNLE, EŞZ-GÖNDER, EŞZ-ALINDI, KURULU, SON-BEKLE-1, SON-BEKLE-2, KAPAT-BEKLE, KAPANIŞ, SON-ALN, ZMN-BEKLE ve kurgusal durum KAPALI. KAPALI kurgusaldır, çünkü hiç ADB'nin olmadığı zamanı ve dolayısıyla bağlantı yokluğunu ifade eder. Durumların kısaca anlamları:

DİNLE

Bir porttan bir TCP bağlantısının beklendiğini gösterir.

EŞZ-GÖNDER

Bir bağlantı isteği gönderildikten sonra bununla eşleşen bir bağlantı isteğinin beklendiğini gösterir.

EŞZ-ALINDI

Bir bağlantı isteği gönderilip alındıktan sonra onaylayıcı bağlantı isteği alındısının beklendiğini gösterir.

KURULU

Alınan verinin kullanıcıya teslim edilebileceği bir açık bağlantıyı gösterir. Bu bağlantının veri aktarımının yapıldığı normal fazıdır.

SON-BEKLE-1

Uzak TCP'den bir bağlantı sonlandırma isteğinin ya da evvelce gönderilmiş bağlantı sonlandırma isteğinin alındısının beklendiğini gösterir.

SON-BEKLE-2

Uzak TCP'den bir bağlantı sonlandırma isteğinin beklendiğini gösterir.

KAPAT-BEKLE

Yerel kullanıcıdan bir bağlantı sonlandırma isteğinin beklendiğini gösterir.

KAPANIŞ

Uzak TCP'den bir bağlantı sonlandırma isteği alındısının beklendiğini gösterir.

SON-ALN

Uzak TCP'ye evvelce gönderilmiş (bir bağlantı sonlandırma isteği alındısı içeren) bağlantı sonlandırma isteğinin alındısının beklendiğini gösterir.

ZMN-BEKLE

Uzak TCP'nin bağlantı sonlandırma isteğinin alındısını almasına kadar geçecek sürenin beklendiğini gösterir.

KAPALI

Artık bir bağlantının olmadığını gösterir.

Bir TCP bağlantısı yanıtlarla bir durumdan diğerine geçilen bir süreçtir. Yanıtların sebepleri , GÖNDER, AL, KAPAT, TERKET ve DURUM kullanıcı çağrıları; özellikle EŞZ, ALN, BŞT ve SON bayraklarını içeren gelen veri bölütleri; ve zaman aşımlarıdır.

Şekil 6'daki durum şeması sadece sebepleri ve sonuçlarıyla durum değişikliklerini görselleştirir. Fakat durum değişikliklerine bağlı hata durumları ve eylemler dikkate alınmamıştır. Sonraki bölümde TCP'nin olaylara tepkisi daha ayrıntılı incelenecektir.

Dikkat

Bu şema sadece bir özettir ve belirtimin tamamı olarak ele alınmamalıdır.

Şekil 6. TCP Bağlantı Durumları Şeması
                             +----------+ ---------------\  doğrudan AÇ
                             |  KAPALI  |                 \ -----------
                             +----------+<---------------\   \ ADB oluştur
                                |    ^                  \   \ EŞZ gönder
                   edilgen AÇ   |    |   KAPA            \   \
                   -----------  |    | ----------         \   \
                   ADB oluştur  |    | ADB'yi sil          \   \
                                V    |                      \   \
                             +----------+           KAPA     |   \
                             |   DİNLE  |         ---------- |    |
                             +----------+         ADB'yi sil |    |
                    EŞZ al      |    |    GÖNDER             |    |
               --------------   |    |    -------            |    V
+--------+     EŞZ,ALN gönder  /      \   EŞZ gönder       +--------+
|        |<---------------------          -------------------->|        |
|  EŞZ   |                    EŞZ al                       |   EŞZ  |
| ALINDI |<------------------------------------------------- | GÖNDER |
|        |                   EŞZ gönder                    |        |
|        |--------------------          -------------------|        |
+--------+ EŞZ'nin ALN'sini al \      /  EŞZ,ALN al        +--------+
  |        -------------------  |    |  ------------
  |                  x          |    |   ALN gönder
  |                             V    V
  |  KAPA                    +----------+
  | -------                  |  KURULU  |
  | SON gönder               +----------+
  |                   KAPA      |    |      SON al
  V                ----------   |    |    ---------
+---------+        SON gönder  /      \   ALN gönder   +-------------+
|  SON    |<--------------------          --------------->| KAPAT-BEKLE |
| BEKLE-1 |-----------------------                     +-------------+
+---------+                SON al  \                       KAPA    |
  | SON'un ALN'sini al   ---------  |                   ---------- |
  | ------------------   ALN gönder |                   SON gönder V
  V        x                        V                      +---------+
+----------+                   +---------+                 | SON-ALN |
|SONBEKLE-2|                   | KAPANIŞ |                 +---------+
+----------+                   +---------+      SON'un ALN'sini al |
  |              SON'un ALN'sini al |           ------------------ |
  |              ------------------ |                    x         |
  |    SON al            x          |    ZmnAşımı=2AVÖ             |
  |  ----------                     V    -------------             V
   \ ALN gönder                +---------+ ADB'yi sil      +---------+
     --------------------------->|ZMN BEKLE|------------------>|  KAPALI |
                               +---------+                 +---------+

                       TCP Bağlantı Durumları Şeması