3.9. 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ır.
TCP etkinliğinin ayırıcı özellikleri olaylara verdiği yanıtlardır denebilir. Meydana gelen olaylar üç kategoride incelenebilir: kullanıcı çağrıları, veri bölütlerinin varışı ve zaman aşı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 Veri bölütleri
-
Veri bölütü Varışları
- Zaman aşımları
-
Kullanıcı Zaman aşımı Yeniden Aktarım Zaman aşımı ZMN-BEKLE Zaman aşı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 veri bö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 veri bölütü daha önce alınmış veri bölütleri ile örtüştüğünde, veri bö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.
3.9.1. AÇ
Ç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ı zaman aşımı bilgileri doldurulur. Yabancı soketin bazı parçalarının bir edilgen AÇ çağrısında belirsiz olabileceğini ve gelen
EŞZ
veri bölütündeki bağımsız değişkenlere 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 iseDİ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, birEŞZ
veri bölütü hazırlanır. Bir ilk gönderi sıra nunarası (İGS
) seçilip<SIRA=İGS><DNT=EŞZ>
biçiminde birEŞZ
veri bö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. BirEŞZ
veri bö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 veriEŞZ
veri bölütü ile gönderileceği gibiKURULU
duruma geçildikten sonraki aktarım için kuyruğa da alınabilir. Aciliyet bitinin veri ile gönderilmesi komutta istenmişse, veri bö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.
3.9.2. 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. BirEŞZ
veri bö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 veriEŞZ
veri bölütü ile gönderileceği gibiKURULU
duruma geçildikten sonraki aktarım için kuyruğa da alınabilir. Aciliyet bitinin veri ile gönderilmesi komutta istenmişse, veri bö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 veri bö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 veri bö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.
3.9.3. 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 veri bö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 veri bölütleri alım tamponunda yeniden oluşturulur ve kullanıcıya dönülür. Durum uygunsa,
GİT
sin 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 veri bö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.
3.9.4. 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
veri bölütü oluşturulup o gönderilir veSON-BEKLE-1
durumuna geçilir; aksi takdirde,KURULU
duruma geçince işlenmek üzere kuyruğa alınır. - KURULU Durumu
-
Veri bölütlerine bölünerek GÖNDER çağrıları haline getirilmiş verilerin tümü kuyruğa alındıktan sonra bir
SON
veri bö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 (ilkSON
yeniden aktarılabilirse de) bir "tamam" da kabul edilebilir bir yanıt olurdu. - KAPAT-BEKLE Durumu
-
Önceki tüm GÖNDER çağrıları veri bölütleri haline getirilene kadar bu istek kuyruğa alınır; sonra bir
SON
veri bö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.
3.9.5. 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
veri bö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 veri bö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.
3.9.6. 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.
3.9.7. Veri bölütü Varışları
- Durum, KAPALI ise (örn, ADB'nin olmayışı)
-
Gelen veri bölütündeki tüm veri iptal edilir.
BŞT
içeren veri bölütü varsa iptal edilir. BirBŞT
içermeyen bir gelen veri bölütü yanıt olarak birBŞT
gönderilmesine sebep olur. Alındı ve sıra numarası alanlarının değerleri suçlu veri bö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 veri bölütü gelmişse bir kabul edilebilirBŞT
veri bö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 veri bölütündeki güvenlik/bölüm ile ADB'deki tam olarak uyuşmuyorsa birBŞT
veri bö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şseADB.PRC<-VBL.PRC
atanır; izin verilmemişse, birBŞT
veri bö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şkenineVBL.SIRA+1
atanır,İAS
değişkenineVBL.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 birEŞZ
veri bölütü gönderilmelidir:<SIRA=İGS><ALN=ALM.SNR><DNT=EŞZ,ALN>
GÖN.SNR
değişkenineİGS+1
veGÖN.OLM
değişkenineİGS
atanır. Bağlantı durumuEŞZ-ALINDI
yapılır. Gelen başka her denetim ve veri (EŞZ
ile birleşik)EŞZ-ALINDI
durumunda işlenecektir, fakatEŞZ
veALN
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ı veri bölütü (
EŞZ
içermeyen) birALN
içermelidir; böyleceALN
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 gelenBŞT
veri bölütü geçerli olamazdı. Bu yüzden burada böyle bir veri bölütü almazsınız ama alırsanız da veri bölütü iptal edilir ve dönülür.
- İlk sınama bir
- Durum, EŞZ-GÖNDER ise
-
- İlk sınama
ALN
biti için yapılır. -
ALN
biti etkinseALN
biti etkinseVBL.ALN =< İGS
veyaVBL.ALN > GÖN.SNR
ise, birBŞT
veri bölütü gönderilir (BŞT
biti etkin olmadıkça; aksi takdirde, veri bölütü iptal edilip dönülür).<SIRA=VBL.ALN><DNT=BŞT>
ve veri bölütü iptal edilir. Dönülür.
GÖN.OLM =< VBL.ALN =< GÖN.SNR
iseALN
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, veri bölütü iptal edilir,KAPALI
duruma geçilir, ADB silinir ve dönülür. Aksi takdirde (ALN
yoksa), veri bölütü iptal edilir ve dönülür.
-
- Üçüncü sınama güvenlik ve öncelik için yapılır.
-
-
Eğer veri bölütündeki güvenlik/bölüm ile ADB'deki tam olarak uyuşmuyorsa bir
BŞT
veri bö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 veri bölütündeki öncelik ile ADB'deki tam olarak uyuşmuyorsa bir
BŞT
veri bölütü gönderilir.<SIRA=VBL.ALN><DNT=BŞT>
-
Bir
ALN
yoksa -
Eğer veri bölütündeki öncelik ADB'dekinden daha yüksekse, kullanıcı ve sistem tarafından izin verilmişse, ADB'deki öncelik veri bölütündekine yükseltilir; önceliğin yükseltilmesine izin verilmezse, bir
BŞT
veri bölütü gönderilir.<SIRA=0><ALN=VBL.SIRA+VBL.UZN><DNT=BŞT,ALN>
Eğer veri bölütündeki öncelik ile ADB'dekinden daha düşükse devam edilir.
-
Eğer bir
BŞT
veri bölütü gönderilmişse -
veri bölütü iptal edilir ve dönülür.
-
Eğer veri bölütündeki güvenlik/bölüm ile ADB'deki tam olarak uyuşmuyorsa bir
- Dördüncü sınama
EŞZ
biti için yapılır -
Bu adıma sadece
ALN
tamamsa geçilmelidir, değilse birALN
yoktur ve veri bölütü birBŞ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ğeriVBL.ALN
'ye eşit olacak şekilde arttırılmalı (birALN
varsa) ve yeniden aktarım kuyruğundaki veri bölütleri alındılandıklarından silinmelidir.GÖN.OLM > İGS
(bizimEŞZ
,ALN
'lenmişti) ise, bağlantı durumuKURULU
yapılır ve birALN
veri bö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. Veri bölütünde başka veri ve denetim yoksaACL
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, birEŞZ
,ALN
veri bölütü oluşturulur ve gönderilir:<SIRA=İGS><ALN=ALM.SNR><DNT=EŞZ,ALN>
Veri bö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 deBŞT
biti etkinse, veri bölütü iptal edilip dönülür. - İlk sınama
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 -
Veri bö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 veri bölütünün içeriği eski ve yeniyi birlikte içeriyorsa, sadece yeni parçalar işlenmelidir.Gelen bir veri bölütünün kabul edilebilirliği için dört durum sözkonusudur:
Veri bö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 veri bölütü kabul edilmez, fakat geçerli
ALN
,ACL
veBŞT
'leri kabul etmek için özel bir izin verilmelidir.Gelen bir veri bölütü kabul edilebilir değilse, yanıtta bir alındı gönderilmelidir (
BŞT
biti etkin olmadıkça; etkinse veri bö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 veri bölütü iptal edilir ve dönülür.
Onu izleyen veri bölütünün
ALM.SNR
'de başlayan ve pencereyi aşmayan idealleştirilmiş veri bölütü olduğu varsayılır. Asıl veri bölütleri bu kabule sığması için pencerenin (EŞZ
veSON
dahil) dışına düşen kısımları kırpılarak ve sadeceALM.SNR
'de başlayan veri bölütü işlenerek yeniden biçimlendirilebilir. Daha yüksek sira numaraları ile başlayan veri bölütleri daha sonra işlenmek üzere tutulabilir.
-
EŞZ-ALINDI Durumu
- İkinci sınama
BŞT
biti için yapılır. -
- EŞZ-ALINDI Durumu
-
BŞT
biti etkinse-
Bağlantı bir edilgen AÇ ç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Ç ç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 veri bölütleri silinir. Ve etkin AÇ 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 veri bö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 etkinseKAPALI
duruma geçildikten sonra ADB bilinir ve dönülür.
- Üçüncü sınama güvenlik ve öncelik için yapılır.
-
Bu portlar arasındaki farklı güvenlik veya öncelikli eski bir bağlantıdaki bir veri bö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.
- EŞZ-ALINDI Durumu
Eğer veri bölütündeki güvenlik/bölüm ve öncelik ile ADB'dekiler tam olarak uyuşmuyorsa bir
BŞT
veri bölütü gönderilir ve dönülür.- KURULU Durumu
Eğer veri bölütündeki güvenlik/bölüm ve öncelik ile ADB'dekiler tam olarak uyuşmuyorsa bir
BŞT
veri bölütü gönderilir ve askıdaki AL ve GÖNDER çağrıları "yeniden-başlat" yanıtları alır. Tüm veri bö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.
- 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, birBŞT
veri bölütü gönderilir, askıdaki AL ve GÖNDER çağrıları "baştan-başlat" yanıtları alır, tüm veri bö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.
-
EŞZ-ALINDI Durumu
- Beşinci sınama
ALN
alanı için yapılır. -
ALN
biti etkin değilse veri bölütü iptal edilir ve dönülürALN
biti etkinse- EŞZ-ALINDI Durumu
GÖN.OLM =< VBL.ALN =< GÖN.SNR
iseKURULU
duruma geçilip işlem sürdürülür.Veri bölütü alındısı kabul edilebilir değilse bir
BŞT
veri bölütü oluşturulur:<SIRA=VBL.ALN><DNT=BŞT>
ve gönderilir.
- KURULU Durumu
GÖN.OLM < VBL.ALN =< GÖN.SNR
iseGÖN.OLM <- VBL.ALN
yapılır. Yeniden aktarım kuyruğundaki veri bö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
) birALN
gönderilir, veri bö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
veGÖN.PS2 =< VBL.ALN
)) ise,GÖN.PEN <- VBL.PEN
,GÖN.PS1 <- VBL.SIRA
veGÖN.PS2 <- VBL.ALN
yapılır.GÖN.PEN
'in,GÖN.OLM
'den bir mesafe belirttiğine,GÖN.PS1
'inGÖN.PEN
'i güncellemekte kullanılan son veri bölütünün sıra numarasını kaydettiğine veGÖN.PS2
'ninGÖN.PEN
'i güncellemekte kullanılan son veri bölütünün alındı numarasını kaydettiğine dikkat ediniz. Buradaki sınama eski veri bölütleri kullanılarak pencerenin güncellenmesini engeller.- SON-BEKLE-1 Durumu
KURULU
durumdaki işlemlere ek olarak, bizimSON
alındılandığı andaSON-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, bizimSON
'u alındılayanALN
varsaZMN-BEKLE
durumuna geçilir, yoksa veri bölütü yoksayılır.- SON-ALN Durumu
Bu durumda gelebilen tek şey bizim
SON
'un bir alındısıdır. BizimSON
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 yeniden aktarımıdır. O tek şey alınır ve 2 AVÖ'lük zaman aşı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 etkinseALM.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.
-
KURULU Durumu
- Yedinci sınama veri bölütü metni için yapılır.
-
-
KURULU Durumu
SON-BEKLE-1 Durumu
SON-BEKLE-2 Durumu -
KURULU
durumdayken, veri bölütü metninin kullanıcının AL tamponlarına teslimi mümkündür. Gerek tampon dolana gerekse veri bölütü boşalana kadar veri bölütlerindeki metin tamponlara taşınabilir. Veri bölütü boş ve birGİT
sin bayrağı taşıyorsa, kullanıcı bilgilendirilir, tampon döndüğünde birGİT
sin 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ındanALM.PEN
ayarlanır.ALM.SNR
veALM.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 veri bö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. Veri bölütü metni yoksayılır.
-
KURULU Durumu
- Sekizinci sınama
SON
biti için yapılır. -
Durum
KAPALI
,DİNLE
veyaEŞZ-GÖNDER
ise, VBL.SIRA doğrulanamayacağından,SON
işleme alınmaz; veri bö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 veSON
için bir alındı gönderilir. Kullanıcıya henüz teslim edilmemiş her veri bölütü metni içinSON
'unGİT
sin uygulayacağına dikkat ediniz.-
KURULU Durumu
EŞZ-ALINDI Durumu KAPAT-BEKLE
durumuna geçilir.- SON-BEKLE-1 Durumu
Bizim
SON ALN
lenmişse (belki bu veri bö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 zaman aşımı başlatılır.
-
KURULU Durumu
ve dönülür.
3.9.8. Kullanıcı Zaman aşımı
Herhangi bir durumda, kullanıcı zaman aşımı dolarsa, tüm kuyruklar boşaltılır, kullanıcı genellikle "hata: kullanıcı zaman aşı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.
3.9.9. Yeniden Aktarım Zaman aşımı
Herhangi bir durumda, yeniden aktarım kuyruğundaki bir veri bölütünde yeniden aktarım zaman aşımı dolarsa, veri bölütü tekrar yeniden aktarım kuyruğunun başına gönderilir, yeniden aktarım zaman aşımı yeniden başlatılır ve dönülür.
3.9.10. ZMN-BEKLE
zaman aşımı
Bir bağlantı üzerinde ZMN-BEKLE
zaman aşımı dolarsa ADB silinir, KAPALI
duruma geçilir ve dönülür.