Olay İşleme
Önceki İşlevsel Belirtim Sonraki
Olay İşleme
Bu bölümde betimlenen işlemler olası bir gerçeklenim örneğidir. Başka gerçeklenimlerin işlem sıraları birazcık farklı olabilir, fakat bu bölümdekilerden esasta değil sadece ayrıntıda farklı olmalıdırlar.
TCP etkinliğinin ayırıcı özellikleri olaylara verdiği yanıtlardır denebilir. Meydana gelen olaylar üç kategoride incelenebilir: kullanıcı çağrıları, veribölütlerinin varışı ve zamanaşımları. Bu bölümde her bir olaya TCP'nin verdiği işlemsel yanıtlar açıklanmıştır. Çoğu durumda gereken işlem bağlantının durumuna bağımlıdır.
Meydana gelen olaylar:
Kullanıcı Çağrıları
AÇ
GÖNDER
AL
KAPAT
TERKET
DURUM
Ulaşan Veribölütleri
Veribölütü Varışları
Zamanaşımları
Kullanıcı Zamanaşımı
Yeniden Aktarım Zamanaşımı
ZMN-BEKLE Zamanaşımı
TCP/Kullanıcı arayüzü modeli hemen bir dönüş ve bir olay veya bir sözde kesme üzerinden olası bir gecikmiş yanıt alan kullanıcı komutlarından oluşur. Aşağıdaki açıklamalarda "sinyal" bir gecikmiş yanıta sebep olan şey anlamında kullanılmıştır.
Hata yanıtları karakter dizgeleri olarak verilmiştir. Örneğin, mevcut olmayan bağlantılara atıf yapan kullanıcı komutları şu yanıtı alır: "hata: bağlantı açık değil".
Sıra numaraları, alındı numaraları, pencereler, vesaire ile ilgili tüm aritmetik işlemler 2^32'lik bir sıra numaraları uzayıyla sınırlıdır. Ayrıca "=<" işareti 2^32 ile bölümden artandan küçük veya eşit oduğunu gösterir.
Gelen veribölütlerine uygulanan işlemlerde izlenen doğal yol, önce sıra numarasının doğruluğunun sınanması (sıra numarası uzayının beklenen "alım penceresi" aralığına düşen sıra numaralarından biri olup olmadığı) ve bu sıra numarasına göre kuyruğa alınıp işlenmesidir.
Bir veribölütü daha önce alınmış veribölütleri ile örtüştüğünde, veribölütünü sadece yeni veriyi içerecek şekilde yeniden oluşturur ve başlık alanlarını uygun biçimde ayarlarız.
Bir durum değişikliğinden bahsedilmedikçe TCP'nin aynı durumda kalacağına dikkat ediniz.
Çağrısı
KAPALI Durumu (örn, ADB'nin olmayışı)
Bağlantı durum bilgisini saklamak üzere yeni bir Aktarım Denetim Bloku (ADB) oluşturulur. Yerel soket belirteci, yabancı soket, öncelik, güvenlik/bölüm ve kullanıcı zamanaşımı bilgileri doldurulur. Yabancı soketin bazı parçalarının bir edilgen çağrısında belirsiz olabileceğini ve gelen EŞZ veribölütündeki parametrelere göre doldurulacağına dikkat ediniz. Bu kullanıcı için istenen güvenlik ve önceliğin doğrulanmasına izin verilebilmesi için "hata: önceliğe izin verilmiyor" veya "hata: güvenlik/bölüme izin verilmiyor" şeklinde bir hata dönmemiş olması gerekir. Eğer çağrı edilgen ise DİNLE durumuna geçilir ve dönülür. Çağrı etkin ise ve yabancı soket belirsizse, "hata: yabancı soket belirsiz" hatası döner. Çağrı etkin ise ve yabancı soket belirliyse, bir EŞZ veribölütü hazırlanır. Bir ilk gönderi sıra nunarası (İGS) seçilip <SIRA=İGS><DNT=EŞZ> biçiminde bir EŞZ veribölütü gönderilir. GÖN.OLM değişkenine İGS, GÖN.SNR değişkenine İGS+1 atanır, EŞZ-GÖNDER durumuna geçilir ve döner.
Eğer çağrıcı belirtilen yerel sokete erişemiyorsa, "hata: bağlantı bu süreç için kuraldışı" hatası döner. Yeni bir bağlantı oluşturmak için yeterli yer yoksa, "hata: özkaynaklar yetersiz" hatası döner.
DİNLE Durumu
Çağrı etkin ve yabancı soket belirli ise, bağlantı edilgenden etkine döner, bir İGS seçilir. Bir EŞZ veribölütü gönderilir, GÖN.OLM değişkenine İGS, GÖN.SNR değişkenine İGS+1 atanır. EŞZ-GÖNDER durumuna geçilir. GÖNDER ile ilişkili veri EŞZ veribölütü ile gönderileceği gibi KURULU duruma geçildikten sonraki aktarım için kuyruğa da alınabilir. Aciliyet bitinin veri ile gönderilmesi komutta istenmişse, veribölütleri bu komutun bir sonucu olarak gönderilir. İstek için kuyrukta yer yoksa, yanıt "hata: özkaynaklar yetersiz" olur. Eğer yabancı soket belirtilmemişse, "hata: yabancı soket belirsiz" hatası dönülür.
EŞZ-GÖNDER Durumu
EŞZ-ALINDI Durumu
KURULU Durumu
SON-BEKLE-1 Durumu
SON-BEKLE-2 Durumu
KAPAT-BEKLE Durumu
KAPANIŞ Durumu
SON-ALN Durumu
ZMN-BEKLE Durumu
"hata: bağlantı zaten mevcut" hatası döner.
GÖNDER Çağrısı
KAPALI Durumu (örn, ADB'nin olmayışı)
Eğer kullanıcının böyle bir bağlantıya erişim izni yoksa, "hata: bağlantı bu süreç için kuraldışı" hatası döner.
Aksi takdirde, "hata: bağlantı yok" hatası döner.
DİNLE Durumu
Yabancı soket belirliyse, bağlantı edilgenden etkine döner, bir İGS seçilir. Bir EŞZ veribölütü gönderilir, GÖN.OLM değişkenine İGS, GÖN.SNR değişkenine İGS+1 atanır. EŞZ-GÖNDER durumuna geçilir. GÖNDER ile ilişkili veri EŞZ veribölütü ile gönderileceği gibi KURULU duruma geçildikten sonraki aktarım için kuyruğa da alınabilir. Aciliyet bitinin veri ile gönderilmesi komutta istenmişse, veribölütleri bu komutun bir sonucu olarak gönderilir. İstek için kuyrukta yer yoksa, yanıt "hata: özkaynaklar yetersiz" olur. Eğer yabancı soket belirtilmemişse, "hata: yabancı soket belirsiz" hatası döner.
EŞZ-GÖNDER Durumu
EŞZ-ALINDI Durumu
KURULU duruma geçildikten sonra aktarılmak üzere veri kuyruğa alınır. Kuyrukta yer yoksa, yanıt "hata: özkaynaklar yetersiz" olur.
KURULU Durumu
KAPAT-BEKLE Durumu
Tampon veribölütlenir ve bir alındı bindirilip (alındı değeri = ALM.SNR) ile gönderilir. Bu tamponu hatırlamak için yeterli yer yoksa, yanıt "hata: özkaynaklar yetersiz" olur.
Aciliyet bayrağı etkinse, GÖN.ACL <- GÖN.SNR-1 yapılır ve giden veribölütlerinde aciliyet göstericisi etkinleştirilir.
SON-BEKLE-1 Durumu
SON-BEKLE-2 Durumu
KAPANIŞ Durumu
SON-ALN Durumu
ZMN-BEKLE Durumu
"hata: bağlantı kapanıyor" döner ve istek yerine getirilmez.
AL Çağrısı
KAPALI Durumu (örn, ADB'nin olmayışı)
Eğer kullanıcının böyle bir bağlantıya erişim izni yoksa, "hata: bağlantı bu süreç için kuraldışı" hatası döner.
Aksi takdirde, "hata: bağlantı yok" hatası döner.
DİNLE Durumu
EŞZ-GÖNDER Durumu
EŞZ-ALINDI Durumu
KURULU duruma geçildikten sonra aktarılmak üzere veri kuyruğa alınır. Kuyrukta yer yoksa, yanıt "hata: özkaynaklar yetersiz" olur.
KURULU Durumu
SON-BEKLE-1 Durumu
SON-BEKLE-2 Durumu
İsteği yerine getirmek için gelen veribölütlerinden kuyruğa alınanlar yetersizse, istek kuyruğa alınır. AL çağrısını hatırlamak için kuyruk alanı yoksa, yanıt "hata: özkaynaklar yetersiz" olur.
Kuyruktaki gelen veribölütleri alım tamponunda yeniden oluşturulur ve kullanıcıya dönülür. Durum uygunsa, GİTsin imlemesi yapılır.
ALM.ACL kullanıcıya aktarılmakta olan verinin önündeyse kullanıcı acil veri varlığı konusunda uyarılır.
TCP, verinin kullanıcıya tesliminden sorumlu olduğunda, kullanıcıyla iletişimin bir alındı üzerinden yapılması gerekir. Böyle bir alındının oluşumu, aşağıda, bir gelen veribölütünün işlenmesi konusunda ele alınacaktır.
KAPAT-BEKLE Durumu
Uzak taraf zaten bir SON göndermiş olduğundan, AL çağrıları elde mevcut olup da henüz kullanıcıya teslim edilmemiş metinden oluşmalıdır. Teslimatı bekleyen metin yoksa, AL çağrısı "hata: bağlantı kapanıyor" yanıtını alacaktır. Aksi takdirde, bekleyen metin AL çağrısını oluşturmakta kullanılabilir.
KAPANIŞ Durumu
SON-ALN Durumu
ZMN-BEKLE Durumu
"hata: bağlantı kapanıyor" döner.
KAPAT Çağrısı
KAPALI Durumu (örn, ADB'nin olmayışı)
Eğer kullanıcının böyle bir bağlantıya erişim izni yoksa, "hata: bağlantı bu süreç için kuraldışı" hatası döner.
Aksi takdirde, "hata: bağlantı yok" hatası döner.
DİNLE Durumu
Askıdaki AL çağrıları "hata: kapanış" yanıtları ile döndürülür. ADB silinir. KAPALI durumu geçilir ve dönülür.
EŞZ-GÖNDER Durumu
Kuyruktaki GÖNDER veya AL çağrıları "hata: kapanış" yanıtları ile döndürülür. ADB silinir.
EŞZ-ALINDI Durumu
Hiç GÖNDER yoksa ve gönderilecek bekleyen veri de yoksa, bir SON veribölütü oluşturulup o gönderilir ve SON-BEKLE-1 durumuna geçilir; aksi takdirde, KURULU duruma geçince işlenmek üzere kuyruğa alınır.
KURULU Durumu
Veribölütlerine bölünerek GÖNDER çağrıları haline getirilmiş verilerin tümü kuyruğa alındıktan sonra bir SON veribölütü oluşturulur ve o gönderilir. Her durumda, SON-BEKLE-1 durumuna geçilir.
SON-BEKLE-1 Durumu
SON-BEKLE-2 Durumu
Kesinlikle bu bir hatadır ve bir "hata: bağlantı kapanıyor" yanıtı alınmalıdır. İkinci bir SON yayınlanana kadar (ilk SON yeniden aktarılabilirse de) bir "tamam" da kabul edilebilir bir yanıt olurdu.
KAPAT-BEKLE Durumu
Önceki tüm GÖNDER çağrıları veribölütleri haline getirilene kadar bu istek kuyruğa alınır; sonra bir SON veribölütü gönderilir, KAPANIŞ durumuna geçilir.
KAPANIŞ Durumu
SON-ALN Durumu
ZMN-BEKLE Durumu
"hata: bağlantı kapanıyor" yanıtı alınır.
TERKET Çağrısı
KAPALI Durumu (örn, ADB'nin olmayışı)
Eğer kullanıcının böyle bir bağlantıya erişim izni yoksa, "hata: bağlantı bu süreç için kuraldışı" hatası döner.
Aksi takdirde, "hata: bağlantı yok" hatası döner.
DİNLE Durumu
Askıdaki AL çağrıları "hata: bağlantı baştan başlatılıyor" yanıtları ile döndürülür. ADB silinir. KAPALI durumu geçilir ve dönülür.
EŞZ-GÖNDER Durumu
Kuyruktaki GÖNDER veya AL çağrıları "hata: bağlantı baştan başlatılıyor" yanıtları ile döndürülür. ADB silinir. KAPALI durumu geçilir ve dönülür.
EŞZ-ALINDI Durumu
KURULU Durumu
SON-BEKLE-1 Durumu
SON-BEKLE-2 Durumu
KAPAT-BEKLE Durumu
Bir BŞT veribölütü gönderilir.
    <SIRA=GÖN.SNR><DNT=BŞT>
Kuyruktaki tüm GÖNDER veya AL çağrıları "hata: bağlantı baştan başlatılıyor" yanıtları ile döndürülmeli; aktarım veya yeniden aktarım için kuyruğa alınmış tüm veribölütleri (yukarıda BŞT için biçimlenmiş olan hariç) boşaltılmalı, ADB silinmeli, KAPALI duruma geçilip dönülmelidir.
KAPANIŞ Durumu
SON-ALN Durumu
ZMN-BEKLE Durumu
"tamam" yanıtı verilip ADB silinir, KAPALI duruma geçilip dönülür.
DURUM Çağrısı
KAPALI Durumu (örn, ADB'nin olmayışı)
Eğer kullanıcının böyle bir bağlantıya erişim izni yoksa, "hata: bağlantı bu süreç için kuraldışı" hatası döner.
Aksi takdirde, "hata: bağlantı yok" hatası döner.
DİNLE Durumu
"durum = DİNLE" ve ADB göstericisi döner.
EŞZ-GÖNDER Durumu
"durum = EŞZ-GÖNDER" ve ADB göstericisi döner.
EŞZ-ALINDI Durumu
"durum = EŞZ-ALINDI" ve ADB göstericisi döner.
KURULU Durumu
"durum = KURULU" ve ADB göstericisi döner.
SON-BEKLE-1 Durumu
"durum = SON-BEKLE-1" ve ADB göstericisi döner.
SON-BEKLE-2 Durumu
"durum = SON-BEKLE-2" ve ADB göstericisi döner.
KAPAT-BEKLE Durumu
"durum = KAPAT-BEKLE" ve ADB göstericisi döner.
KAPANIŞ Durumu
"durum = KAPANIŞ" ve ADB göstericisi döner.
SON-ALN Durumu
"durum = SON-ALN" ve ADB göstericisi döner.
ZMN-BEKLE Durumu
"durum = ZMN-BEKLE" ve ADB göstericisi döner.
Veribölütü Varışları
Durum, KAPALI ise (örn, ADB'nin olmayışı)
Gelen veribölütündeki tüm veri iptal edilir. BŞT içeren veribölütü varsa iptal edilir. Bir BŞT içermeyen bir gelen veribölütü yanıt olarak bir BŞT gönderilmesine sebep olur. Alındı ve sıra numarası alanlarının değerleri suçlu veribölütünü gönderen TCP tarafından baştan başlatma işlemi için kabul edilebilir şekilde seçilir.
ALN biti etkin değilse, sıra numarası olarak sıfır kullanılır.
    <SIRA=0><ALN=VBL.SIRA+VBL.UZN><DNT=BŞT,ALN>
ALN biti etkinse,
    <SIRA=VBL.ALN><DNT=BŞT>
Ve döner.
Durum, DİNLE ise
İlk sınama bir BŞT için yapılır.
Gelen BŞT yoksayılmalıdır. Dönülür.
İkinci sınama bir ALN için yapılır.
Bir bağlantı hala DİNLE durumundayken bir alındı gelirse kötüdür. ALN kılıklı bir veribölütü gelmişse bir kabul edilebilir BŞT veribölütü oluşturulur:
    <SIRA=VBL.ALN><DNT=BŞT>
Dönülür.
Üçüncü sınama bir EŞZ için yapılır.
EŞZ biti etkinse, güvenlik sınanır. Eğer gelen veribölütündeki güvenlik/bölüm ile ADB'deki tam olarak uyuşmuyorsa bir BŞT veribölütü gönderilir ve dönülür.
    <SIRA=VBL.ALN><DNT=BŞT>
VBL.PRC > ADB.PRC ise, kullanıcı ve sistem tarafından izin verilmişse ADB.PRC<-VBL.PRC atanır; izin verilmemişse, bir BŞT veribölütü gönderilir ve dönülür.
    <SIRA=VBL.ALN><DNT=BŞT>
VBL.PRC < ADB.PRC ise devam edilir.
ALM.SNR değişkenine VBL.SIRA+1 atanır, İAS değişkenine VBL.SIRA atanır ve başka her denetim ve metin daha sonra işlenmek üzere kuyruğa alınır. İGS seçilmeli ve şöyle bir EŞZ veribölütü gönderilmelidir:
    <SIRA=İGS><ALN=ALM.SNR><DNT=EŞZ,ALN>
GÖN.SNR değişkenine İGS+1 ve GÖN.OLM değişkenine İGS atanır. Bağlantı durumu EŞZ-ALINDI yapılır. Gelen başka her denetim ve veri (EŞZ ile birleşik) EŞZ-ALINDI durumunda işlenecektir, fakat EŞZ ve ALN tekrar işleme sokulmaz. Dinleme tamamen belli değilse (örn, yabancı sotetin tamamen belli olmaması durumu), belirsiz alanlar şimdiden doldurulmalıdır.
Dördüncü sınama başka metin veya denetim için yapılır.
Bir başka denetim veya metin kılıklı veribölütü (EŞZ içermeyen) bir ALN içermelidir; böylece ALN işlemi tarafından iptal edilir. Bağlantının bu varoluşu tarafından gönderilmiş hiçbir şeyin yanıtı olamayacağından bir gelen BŞT veribölütü geçerli olamazdı. Bu yüzden burada böyle bir veribölütü almazsınız ama alırsanız da veribölütü iptal edilir ve dönülür.
Durum, EŞZ-GÖNDER ise
İlk sınama ALN biti için yapılır.
ALN biti etkinse
VBL.ALN =< İGS veya VBL.ALN > GÖN.SNR ise, bir BŞT veribölütü gönderilir (BŞT biti etkin olmadıkça; aksi takdirde, veribölütü iptal edilip dönülür).
    <SIRA=VBL.ALN><DNT=BŞT>
ve veribölütü iptal edilir. Dönülür.
GÖN.OLM =< VBL.ALN =< GÖN.SNR ise ALN kabul edilebilirdir.
İkinci sınama BŞT biti için yapılır
BŞT biti etkinse
ALN kabul edilebilir ise kullanıcı "hata: bağlantı baştan başlatılıyor" sinyalini alır, veribölütü iptal edilir, KAPALI duruma geçilir, ADB silinir ve dönülür. Aksi takdirde (ALN yoksa), veribölütü iptal edilir ve dönülür.
Üçüncü sınama güvenlik ve öncelik için yapılır.
Eğer veribölütündeki güvenlik/bölüm ile ADB'deki tam olarak uyuşmuyorsa bir BŞT veribölütü gönderilir.
Bir ALN varsa
    <SIRA=VBL.ALN><DNT=BŞT>
Aksi takdirde
    <SIRA=0><ALN=VBL.SIRA+VBL.UZN><DNT=BŞT,ALN>
Bir ALN varsa
Eğer veribölütündeki öncelik ile ADB'deki tam olarak uyuşmuyorsa bir BŞT veribölütü gönderilir.
    <SIRA=VBL.ALN><DNT=BŞT>
Bir ALN yoksa
Eğer veribölütündeki öncelik ADB'dekinden daha yüksekse, kullanıcı ve sistem tarafından izin verilmişse, ADB'deki öncelik veribölütündekine yükseltilir; önceliğin yükseltilmesine izin verilmezse, bir BŞT veribölütü gönderilir.
    <SIRA=0><ALN=VBL.SIRA+VBL.UZN><DNT=BŞT,ALN>
Eğer veribölütündeki öncelik ile ADB'dekinden daha düşükse devam edilir.
Eğer bir BŞT veribölütü gönderilmişse veribölütü iptal edilir ve dönülür.
Dördüncü sınama EŞZ biti için yapılır
Bu adıma sadece ALN tamamsa geçilmelidir, değilse bir ALN yoktur ve veribölütü bir BŞT içermez.
EŞZ biti etkinse ve güvenlik/bölüm ve öncelik kabul edilebilir ise, ALM.SNR = VBL.SIRA+1 ve İAS = VBL.SIRA yapılır. GÖN.OLM değeri VBL.ALN'ye eşit olacak şekilde arttırılmalı (bir ALN varsa) ve yeniden aktarım kuyruğundaki veribölütleri alındılandıklarından silinmelidir.
GÖN.OLM > İGS (bizim EŞZ, ALN'lenmişti) ise, bağlantı durumu KURULU yapılır ve bir ALN veribölütü oluşturulur ve gönderilir:
    <SIRA=GÖN.SNR><ALN=ALM.SNR><DNT=ALN>
Aktarım için kuyruğa alınmış veri ve denetimler de dahil edilebilir. Veribölütünde başka veri ve denetim yoksa ACL bitinin sınandığı altıncı adımda işleme devam edilir, aksi takdirde dönülür.
Aksi takdirde, EŞZ-ALINDI durumuna geçilir, bir EŞZ,ALN veribölütü oluşturulur ve gönderilir:
    <SIRA=İGS><ALN=ALM.SNR><DNT=EŞZ,ALN>
Veribölütünde başka veri ve denetim varsa, KURULU duruma geçildikten sonra işlenmek üzere kuyruğa alınır ve dönülür.
Beşinci sınamada, ne EŞZ ne de BŞT biti etkinse, veribölütü iptal edilip dönülür.
Aksi takdirde,
İlk sınama sıra numarası için yapılır
EŞZ-ALINDI Durumu
KURULU Durumu
SON-BEKLE-1 Durumu
SON-BEKLE-2 Durumu
KAPAT-BEKLE Durumu
KAPANIŞ Durumu
SON-ALN Durumu
ZMN-BEKLE Durumu
Veribölütleri sırayla işlenir. Ulaşanlar üzerindeki ilk denemeler eski yinelenmişleri iptal etmek içindir, fakat bu işlem VBL.SIRA sırasıyla yapılır. Bir veribölütünün içeriği eski ve yeniyi birlikte içeriyorsa, sadece yeni parçalar işlenmelidir.
Gelen bir veribölütünün kabul edilebilirliği için dört durum sözkonusudur:
  Veribölütü    Alım     Sınama
   Uzunluğu   Penceresi
  ----------  ---------  -------------------------------------------

      0           0      VBL.SIRA = ALM.SNR

      0          >0      ALM.SNR =< VBL.SIRA < ALM.SNR+ALM.PEN

     >0           0      kabul edilebilir değil

     >0          >0      ALM.SNR =< VBL.SIRA < ALM.SNR+ALM.PEN veya
                         ALM.SNR =< VBL.SIRA+VBL.UZN-1 < ALM.SNR+ALM.PEN
ALM.PEN sıfırsa, hiçbir veribölütü kabul edilmez, fakat geçerli ALN, ACL ve BŞT'leri kabul etmek için özel bir izin verilmelidir.
Gelen bir veribölütü kabul edilebilir değilse, yanıtta bir alındı gönderilmelidir (BŞT biti etkin olmadıkça; etkinse veribölütü iptal edilip dönülür).
    <SIRA=GÖN.SNR><ALN=ALM.SNR><DNT=ALN>
Bir alındı gönderildikten sonra kabul edilmeyen veribölütü iptal edilir ve dönülür.
Onu izleyen veribölütünün ALM.SNR'de başlayan ve pencereyi aşmayan idealleştirilmiş veribölütü olduğu varsayılır. Asıl veribölütleri bu kabule sığması için pencerenin (EŞZ ve SON dahil) dışına düşen kısımları kırpılarak ve sadece ALM.SNR'de başlayan veribölütü işlenerek yeniden biçimlendirilebilir. Daha yüksek sira numaraları ile başlayan veribölütleri daha sonra işlenmek üzere tutulabilir.
İkinci sınama BŞT biti için yapılır.
EŞZ-ALINDI Durumu
BŞT biti etkinse
Bağlantı bir edilgen çağrısı ile başlatılmışsa (örn, DİNLE durumundan gelinip), bağlantı DİNLE durumuna geçirilir ve dönülür. Kullanıcıya bilgi verilmesine gerek yoktur. Bağlantı bir etkin çağrısı ile başlatılmışsa (örn, EŞZ-GÖNDER durumundan gelinip), bağlantı reddedilir ve kullanıcıya "bağlantı reddedildi" sinyali yollanır. Her durumda, yeniden aktarım kuyruğundaki tüm veribölütleri silinir. Ve etkin durumunda, KAPALI duruma geçilip ADB silinir ve dönülür.
KURULU
SON-BEKLE-1
SON-BEKLE-2
KAPAT-BEKLE
BŞT biti etkinse askıdaki AL ve GÖNDER çağrıları "baştan-başlat" yanıtları almalıdır. Tüm veribölütü kuyrukları boşaltılır. Kullanıcılar ayrıca talep edilmemiş bir genel "bağlantı yeniden başlatılıyor" sinyali almalıdır. KAPALI duruma geçildikten sonra ADB silinir ve dönülür.
KAPANIŞ Durumu
SON-ALN Durumu
ZMN-BEKLE
BŞT biti etkinse KAPALI duruma geçildikten sonra ADB bilinir ve dönülür.
Üçüncü sınama güvenlik ve öncelik için yapılır.
EŞZ-ALINDI Durumu
Eğer veribölütündeki güvenlik/bölüm ve öncelik ile ADB'dekiler tam olarak uyuşmuyorsa bir BŞT veribölütü gönderilir ve dönülür.
KURULU Durumu
Eğer veribölütündeki güvenlik/bölüm ve öncelik ile ADB'dekiler tam olarak uyuşmuyorsa bir BŞT veribölütü gönderilir ve askıdaki AL ve GÖNDER çağrıları "yeniden-başlat" yanıtları alırlar. Tüm veribölütü kuyrukları boşaltılır. Kullanıcılar ayrıca talep edilmemiş bir genel "bağlantı yeniden başlatılıyor" sinyali almalıdır. KAPALI duruma geçildikten sonra ADB silinir ve dönülür.
Bu portlar arasındaki farklı güvenlik veya öncelikli eski bir bağlantıdaki bir veribölütünün mevcut bağlantının terkedilmesine sebep olmadan engellenmesi için bu sınamanın aşağıdaki sıra numarası sınamasında yeraldığına dikkat ediniz.
Dördüncü sınama EŞZ biti için yapılır.
EŞZ-ALINDI Durumu
KURULU Durumu
SON-BEKLE-1 Durumu
SON-BEKLE-2 Durumu
KAPAT-BEKLE Durumu
KAPANIŞ Durumu
SON-ALN Durumu
ZMN-BEKLE Durumu
EŞZ pencere içindeyse o bir hatadır, bir BŞT veribölütü gönderilir, askıdaki AL ve GÖNDER çağrıları "baştan-başlat" yanıtları alır, tüm veribölütü kuyrukları boşaltılır, kullanıcılar ayrıca talep edilmemiş bir genel "bağlantı yeniden başlatılıyor" sinyali alır, KAPALI duruma geçildikten sonra ADB silinir ve dönülür.
EŞZ pencere içinde değilse bu adıma gelinmeden, ilk adımda (sıra numarası sınaması) bir alındı gönderilirdi.
Beşinci sınama ALN alanı için yapılır.
ALN biti etkin değilse veribölütü iptal edilir ve dönülür
ALN biti etkinse
EŞZ-ALINDI Durumu
GÖN.OLM =< VBL.ALN =< GÖN.SNR ise KURULU duruma geçilip işlem sürdürülür.
Veribölütü alındısı kabul edilebilir değilse bir BŞT veribölütü oluşturulur:
    <SIRA=VBL.ALN><DNT=BŞT>
ve gönderilir.
KURULU Durumu
GÖN.OLM < VBL.ALN =< GÖN.SNR ise GÖN.OLM <- VBL.ALN yapılır. Yeniden aktarım kuyruğundaki veribölütleri alındılandıklarından silinmelidir. Kullanıcılar GÖNDERilmiş ve tamamen alındılanmış tamponlar için olumlu alındılar almalıdır (örn, GÖNDER tamponu "tamam" yanıtı ile dönmelidir). ALN yinelenmişse (VBL.ALN < GÖN.OLM), bu yoksayılır. Birşeylerin henüz gönderilmemiş alındıları varsa (VBL.ALN > GÖN.SNR) bir ALN gönderilir, veribölütü yokedilir ve dönülür.
GÖN.OLM < VBL.ALN =< GÖN.SNR ise, gönderi penceresi güncellenmemelidir. (GÖN.PS1 < VBL.SIRA veya (GÖN.PS1 = VBL.SIRA ve GÖN.PS2 =< VBL.ALN)) ise, GÖN.PEN <- VBL.PEN, GÖN.PS1 <- VBL.SIRA ve GÖN.PS2 <- VBL.ALN yapılır.
GÖN.PEN'in, GÖN.OLM'den bir mesafe belirttiğine, GÖN.PS1'in GÖN.PEN'i güncellemekte kullanılan son veribölütünün sıra numarasını kaydettiğine ve GÖN.PS2'nin GÖN.PEN'i güncellemekte kullanılan son veribölütünün alındı numarasını kaydettiğine dikkat ediniz. Buradaki sınama eski veribölütleri kullanılarak pencerenin güncellenmesini engeller.
SON-BEKLE-1 Durumu
KURULU durumdaki işlemlere ek olarak, bizim SON alındılandığı anda SON-BEKLE-2 durumuna geçilir ve işleme bu durumda devam edilir.
SON-BEKLE-2 Durumu
KURULU durumdaki işlemlere ek olarak, yeniden aktarım kuyruğu boşsa kullanıcının KAPAT'ı alındılanabilir ("tamam") fakat ADB silinmez.
KAPAT-BEKLE Durumu
KURULU durumdaki işlemlerin aynısı yapılır.
KAPANIŞ Durumu
KURULU durumdaki işlemlere ek olarak, bizim SON'u alındılayan ALN varsa ZMN-BEKLE durumuna geçilir, yoksa veribölütü yoksayılır.
SON-ALN Durumu
Bu durumda gelebilen tek şey bizim SON'un bir alındısıdır. Bizim SON alındılandığı anda ADB silinir, KAPALI duruma geçilir ve dönülür.
ZMN-BEKLE Durumu
Bu durumda gelebilen tek şey uzak SON'un bir yeniden aktarımıdır. O tek şey alınır ve 2 AVÖ'lük zamanaşımından sonra yeniden başlanır.
Altıncı sınama ACL biti için yapılır.
KURULU Durumu
SON-BEKLE-1 Durumu
SON-BEKLE-2 Durumu
ACL biti etkinse ALM.ACL <- azm(ALM.ACL,VBL.ACL) yapılır ve kullanıcıya tüketilen verinin önünde aciliyet göstericisi (ALM.ACL) varsa uzak tarafın acil veriye sahip olduğu sinyallenir. Eğer kullanıcı zaten sinyallenmişse (veya hala "acil kip"te ise), devam niteliğindeki bu acil veri için kullanıcı tekrar sinyallenmez.
KAPAT-BEKLE Durumu
KAPANIŞ Durumu
SON-ALN Durumu
ZMN-BEKLE
Uzak taraf tarafından bir SON alınmış olduğundan bu olmamalıdır. ACL yoksayılır.
Yedinci sınama veribölütü metni için yapılır.
KURULU Durumu
SON-BEKLE-1 Durumu
SON-BEKLE-2 Durumu
KURULU durumdayken, veribölütü metninin kullanıcının AL tamponlarına teslimi mümkündür. Gerek tampon dolana gerekse veribölütü boşalana kadar veribölütlerindeki metin tamponlara taşınabilir. Veribölütü boş ve bir GİTsin bayrağı taşıyorsa, kullanıcı bilgilendirilir, tampon döndüğünde bir GİTsin alınmış olur.
TCP, verinin kullanıcıya tesliminin sorumluluğunu aldığında, ayrıca, verinin alımını da alındılamalıdır.
TCP, verinin sorumluluğunu aldığı anda, ALM.SNR kabul edilen veri kadar arttırılır ve tamponun kullanılabilirliği bakımından ALM.PEN ayarlanır. ALM.SNR ve ALM.PEN toplamı azalmamalıdır.
Veri İletişimi bölümündeki pencere yönetim önerilerini lütfen dikkate alınız.
Şöyle bir alındı gönderilir:
    <SIRA=GÖN.SNR><ALN=ALM.SNR><DNT=ALN>
Bu alındı, mümkünse yersiz bir gecikmeye uğramasızın, aktarılmakta olan bir veribölütüne bindirilmiş olmalıdır.
KAPAT-BEKLE Durumu
KAPANIŞ Durumu
SON-ALN Durumu
ZMN-BEKLE Durumu
Uzak tarafta bir SON alınmış olduğundan bu olmamalıdır. Veribölütü metni yoksayılır.
Sekizinci sınama SON biti için yapılır.
Durum KAPALI, DİNLE veya EŞZ-GÖNDER ise, VBL.SIRA doğrulanamayacağından, SON işleme alınmaz; veribölütü yokedilir ve dönülür.
SON biti etkinse, kullanıcıya "bağlantı kapanıyor" denip askıdaki AL çağrılarına aynı ileti döndürülür, ALM.SNR, SON kadar arttırılır ve SON için bir alındı gönderilir. Kullanıcıya henüz teslim edilmemiş her veribölütü metni için SON'un GİTsin uygulayacağına dikkat ediniz.
KURULU Durumu
EŞZ-ALINDI Durumu
KAPAT-BEKLE durumuna geçilir.
SON-BEKLE-1 Durumu
Bizim SON ALNlenmişse (belki bu veribölütünde), ZMN-BEKLE durumuna geçilir, zaman-bekle zamanlayıcısı çalıştırılır, diğer zamanlayıcılar kapatılır; aksi takdirde, KAPANIŞ durumuna geçilir.
SON-BEKLE-2 Durumu
ZMN-BEKLE durumuna geçilir, zaman-bekle zamanlayıcısı çalıştırılır, diğer zamanlayıcılar kapatılır.
KAPAT-BEKLE Durumu
KAPAT-BEKLE durumunda kalınır.
KAPANIŞ Durumu
KAPANIŞ durumunda kalınır.
SON-ALN Durumu
SON-ALN durumunda kalınır.
ZMN-BEKLE Durumu
ZMN-BEKLE durumunda kalınır. 2 AVÖ'lük zaman-bekle zamanaşımı başlatılır.
ve dönülür.
Kullanıcı Zamanaşımı
Herhangi bir durumda, kullanıcı zamanaşımı dolarsa, tüm kuyruklar boşaltılır, kullanıcı genellikle "hata: kullanıcı zamanaşımından dolayı bağlantı terkedildi" ile ve askıdaki çağrılar için sinyallenir, ADB silinir, KAPALI duruma geçilir ve dönülür.
Yeniden Aktarım Zamanaşımı
Herhangi bir durumda, yeniden aktarım kuyruğundaki bir veribölütünde yeniden aktarım zamanaşımı dolarsa, veribölütü tekrar yeniden aktarım kuyruğunun başına gönderilir, yeniden aktarım zamanaşımı yeniden başlatılır ve dönülür.
ZMN-BEKLE zamanaşımı
Bir bağlantı üzerinde ZMN-BEKLE zamanaşımı dolarsa ADB silinir, KAPALI duruma geçilir ve dönülür.
Önceki Üst Ana Başlık Sonraki
Arayüzler Başlangıç Kullanılan Terimler ve Kısaltmalar
Bir Linux Kitaplığı Sayfası