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ŞZveri 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İNLEdurumuna 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ŞZveri bölütü hazırlanır. Bir ilk gönderi sıra nunarası (İGS) seçilip<SIRA=İGS><DNT=EŞZ>biçiminde birEŞZveri bölütü gönderilir.GÖN.OLMdeğişkenineİGS,GÖN.SNRdeğişkenineİGS+1atanır,EŞZ-GÖNDERdurumuna 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
İGSseçilir. BirEŞZveri bölütü gönderilir,GÖN.OLMdeğişkenineİGS,GÖN.SNRdeğişkenineİGS+1atanır.EŞZ-GÖNDERdurumuna geçilir. GÖNDER ile ilişkili veriEŞZveri bölütü ile gönderileceği gibiKURULUduruma 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
İGSseçilir. BirEŞZveri bölütü gönderilir,GÖN.OLMdeğişkenineİGS,GÖN.SNRdeğişkenineİGS+1atanır.EŞZ-GÖNDERdurumuna geçilir. GÖNDER ile ilişkili veriEŞZveri bölütü ile gönderileceği gibiKURULUduruma 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
-
KURULUduruma 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-1yapı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
-
KURULUduruma 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İ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 veri bölütünün işlenmesi konusunda ele alınacaktır.
- KAPAT-BEKLE Durumu
-
Uzak taraf zaten bir
SONgö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.
KAPALIdurumu 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
SONveri bölütü oluşturulup o gönderilir veSON-BEKLE-1durumuna geçilir; aksi takdirde,KURULUduruma 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
SONveri bölütü oluşturulur ve o gönderilir. Her durumda,SON-BEKLE-1durumuna 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
SONyayınlanana kadar (ilkSONyeniden 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
SONveri 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.
KAPALIdurumu 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.
KAPALIdurumu 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ŞTveri 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ŞTiçin biçimlenmiş olan hariç) boşaltılmalı, ADB silinmeli,KAPALIduruma geçilip dönülmelidir. - KAPANIŞ Durumu SON-ALN Durumu ZMN-BEKLE Durumu
-
"tamam" yanıtı verilip ADB silinir,
KAPALIduruma 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ŞTiçeren veri bölütü varsa iptal edilir. BirBŞTiçermeyen bir gelen veri bölütü yanıt olarak birBŞTgö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.ALNbiti etkin değilse, sıra numarası olarak sıfır kullanılır.<SIRA=0><ALN=VBL.SIRA+VBL.UZN><DNT=BŞT,ALN>ALNbiti etkinse,<SIRA=VBL.ALN><DNT=BŞT>Ve döner.
- Durum, DİNLE ise
-
- İlk sınama bir
BŞTiçin yapılır. -
Gelen
BŞTyoksayılmalıdır. Dönülür.
- İkinci sınama bir
ALNiçin yapılır. -
Bir bağlantı hala
DİNLEdurumundayken bir alındı gelirse kötüdür.ALNkılıklı bir veri bölütü gelmişse bir kabul edilebilirBŞTveri bölütü oluşturulur:<SIRA=VBL.ALN><DNT=BŞT>Dönülür.
- Üçüncü sınama bir
EŞZiçin yapılır. -
EŞZbiti 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ŞTveri bölütü gönderilir ve dönülür.<SIRA=VBL.ALN><DNT=BŞT>VBL.PRC > ADB.PRCise, kullanıcı ve sistem tarafından izin verilmişseADB.PRC<-VBL.PRCatanır; izin verilmemişse, birBŞTveri bölütü gönderilir ve dönülür.<SIRA=VBL.ALN><DNT=BŞT>VBL.PRC < ADB.PRC ise devam edilir.ALM.SNRdeğişkenineVBL.SIRA+1atanır,İASdeğişkenineVBL.SIRAatanır ve başka her denetim ve metin daha sonra işlenmek üzere kuyruğa alınır.İGSseçilmeli ve şöyle birEŞZveri bölütü gönderilmelidir:<SIRA=İGS><ALN=ALM.SNR><DNT=EŞZ,ALN>GÖN.SNRdeğişkenineİGS+1veGÖN.OLMdeğişkenineİGSatanır. Bağlantı durumuEŞZ-ALINDIyapılır. Gelen başka her denetim ve veri (EŞZile birleşik)EŞZ-ALINDIdurumunda işlenecektir, fakatEŞZveALNtekrar 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ŞZiçermeyen) birALNiçermelidir; böyleceALNiş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ŞTveri 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
ALNbiti için yapılır. -
ALNbiti etkinseALNbiti etkinseVBL.ALN =< İGSveyaVBL.ALN > GÖN.SNRise, birBŞTveri bölütü gönderilir (BŞTbiti 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.SNRiseALNkabul edilebilirdir.
- İkinci sınama
BŞTbiti için yapılır -
-
BŞTbiti etkinse -
ALNkabul edilebilir ise kullanıcı "hata: bağlantı baştan başlatılıyor" sinyalini alır, veri bölütü iptal edilir,KAPALIduruma geçilir, ADB silinir ve dönülür. Aksi takdirde (ALNyoksa), 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ŞTveri bölütü gönderilir. -
Bir
ALNvarsa<SIRA=VBL.ALN><DNT=BŞT>Aksi takdirde
<SIRA=0><ALN=VBL.SIRA+VBL.UZN><DNT=BŞT,ALN> -
Bir
ALNvarsa -
Eğer veri bölütündeki öncelik ile ADB'deki tam olarak uyuşmuyorsa bir
BŞTveri bölütü gönderilir.<SIRA=VBL.ALN><DNT=BŞT> -
Bir
ALNyoksa -
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ŞTveri 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ŞTveri 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ŞZbiti için yapılır -
Bu adıma sadece
ALNtamamsa geçilmelidir, değilse birALNyoktur ve veri bölütü birBŞTiçermez.EŞZbiti etkinse ve güvenlik/bölüm ve öncelik kabul edilebilir ise,ALM.SNR = VBL.SIRA+1veİAS = VBL.SIRAyapılır.GÖN.OLMdeğeriVBL.ALN'ye eşit olacak şekilde arttırılmalı (birALNvarsa) 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ı durumuKURULUyapılır ve birALNveri 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 yoksaACLbitinin sınandığı altıncı adımda işleme devam edilir, aksi takdirde dönülür. Aksi takdirde,EŞZ-ALINDIdurumuna geçilir, birEŞZ,ALNveri 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,KURULUduruma geçildikten sonra işlenmek üzere kuyruğa alınır ve dönülür.
Beşinci sınamada, ne
EŞZne deBŞTbiti 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.SIRAsı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.PENALM.PEN sıfırsa, hiçbir veri bölütü kabul edilmez, fakat geçerli
ALN,ACLveBŞ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ŞTbiti 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ŞZveSONdahil) 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ŞTbiti için yapılır. -
- EŞZ-ALINDI Durumu
-
BŞTbiti etkinse-
Bağlantı bir edilgen AÇ çağrısı ile başlatılmışsa (örn,
DİNLEdurumundan gelinip), bağlantıDİNLEdurumuna 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ÖNDERdurumundan 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,KAPALIduruma geçilip ADB silinir ve dönülür.
-
KURULU
SON-BEKLE-1
SON-BEKLE-2
KAPAT-BEKLE -
BŞTbiti 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.KAPALIduruma geçildikten sonra ADB silinir ve dönülür. -
KAPANIŞ Durumu
SON-ALN Durumu
ZMN-BEKLE -
BŞTbiti etkinseKAPALIduruma 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ŞTveri 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ŞTveri 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.KAPALIduruma geçildikten sonra ADB silinir ve dönülür.
- Dördüncü sınama
EŞZbiti 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ŞZpencere içindeyse o bir hatadır, birBŞTveri 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,KAPALIduruma geçildikten sonra ADB silinir ve dönülür.EŞZpencere 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
ALNalanı için yapılır. -
ALNbiti etkin değilse veri bölütü iptal edilir ve dönülürALNbiti etkinse- EŞZ-ALINDI Durumu
GÖN.OLM =< VBL.ALN =< GÖN.SNRiseKURULUduruma geçilip işlem sürdürülür.Veri bölütü alındısı kabul edilebilir değilse bir
BŞTveri bölütü oluşturulur:<SIRA=VBL.ALN><DNT=BŞT>ve gönderilir.
- KURULU Durumu
GÖN.OLM < VBL.ALN =< GÖN.SNRiseGÖN.OLM <- VBL.ALNyapı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).ALNyinelenmiş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) birALNgönderilir, veri bölütü yokedilir ve dönülür.GÖN.OLM < VBL.ALN =< GÖN.SNRise, gönderi penceresi güncellenmemelidir. (GÖN.PS1 < VBL.SIRAveya (GÖN.PS1 = VBL.SIRAveGÖN.PS2 =< VBL.ALN)) ise,GÖN.PEN <- VBL.PEN,GÖN.PS1 <- VBL.SIRAveGÖN.PS2 <- VBL.ALNyapı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
KURULUdurumdaki işlemlere ek olarak, bizimSONalındılandığı andaSON-BEKLE-2durumuna geçilir ve işleme bu durumda devam edilir.- SON-BEKLE-2 Durumu
KURULUdurumdaki 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
KURULUdurumdaki işlemlerin aynısı yapılır.- KAPANIŞ Durumu
KURULUdurumdaki işlemlere ek olarak, bizimSON'u alındılayanALNvarsaZMN-BEKLEdurumuna 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. BizimSONalındılandığı anda ADB silinir,KAPALIduruma 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
ACLbiti için yapılır. -
-
KURULU Durumu
SON-BEKLE-1 Durumu
SON-BEKLE-2 Durumu -
ACLbiti 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
SONalınmış olduğundan bu olmamalıdır.ACLyoksayı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 -
KURULUdurumdayken, 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İTsin bayrağı taşıyorsa, kullanıcı bilgilendirilir, tampon döndüğünde birGİ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.SNRkabul edilen veri kadar arttırılır ve tamponun kullanılabilirliği bakımındanALM.PENayarlanır.ALM.SNRveALM.PENtoplamı 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
SONalınmış olduğundan bu olmamalıdır. Veri bölütü metni yoksayılır.
-
KURULU Durumu
- Sekizinci sınama
SONbiti için yapılır. -
Durum
KAPALI,DİNLEveyaEŞZ-GÖNDERise, VBL.SIRA doğrulanamayacağından,SONişleme alınmaz; veri bölütü yokedilir ve dönülür.SONbiti 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,SONkadar arttırılır veSONiçin bir alındı gönderilir. Kullanıcıya henüz teslim edilmemiş her veri bölütü metni içinSON'unGİTsin uygulayacağına dikkat ediniz.-
KURULU Durumu
EŞZ-ALINDI Durumu KAPAT-BEKLEdurumuna geçilir.- SON-BEKLE-1 Durumu
Bizim
SON ALNlenmişse (belki bu veri bölütünde),ZMN-BEKLEdurumuna 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-BEKLEdurumuna geçilir, zaman-bekle zamanlayıcısı çalıştırılır, diğer zamanlayıcılar kapatılır.- KAPAT-BEKLE Durumu
KAPAT-BEKLEdurumunda kalınır.- KAPANIŞ Durumu
KAPANIŞdurumunda kalınır.- SON-ALN Durumu
SON-ALNdurumunda kalınır.- ZMN-BEKLE Durumu
ZMN-BEKLEdurumunda 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.