3.5. Bağlantının Kapatılması
KAPAT, "Göndereceğim veri kalmadı" anlamına gelen bir işlemdir. Bir iki yönlü çalışan bağlantının kapatılması, alıcı tarafın bunu nasıl ele alacağı bilinemediğinden, anlamı belirsiz bir yorumlamanın konusudur, şüphesiz. Biz KAPAT'ı tek yönlü bir bağlantıdaymışız gibi ele alacağız. Diğer ucun KAPALI
duruma geçtiğini öğrenene kadar KAPATan kullanıcı ALmaya devam edebilir. Bu durumda, bir program bir KAPAT öncesinde bazı GÖNDERileri başlatmış olabilirdi ve öbür ucun KAPALI
olmasından dolayı bir ALımın başarısız olduğu sinyallenene kadar ALmaya devam ederdi. Öbür ucun kapanmasından dolayı ortada hiçbir ALım kalmasa bile, biz TCP'nin kullanıcıyı haberdar edeceğini ve böylece kullanıcının kendi tarafını sonlandırabileceğini varsayıyoruz. Bir TCP, bağlantı KAPALI
duruma geçmeden önce tüm GÖNDER tamponlarını güvenle teslim edecektir. Böylece dönecek hiçbir veri kalmadığını uman kullanıcının duymayı beklediği tek şey tüm verisinin hedef TCP tarafından tamamen alınmasıyla öbür ucun KAPALI
duruma geçtiğidir. TCP artık veri kalmadı diyene kadar kullanıcılar gönderime kapadıkları bağlantılarını okumaya açık tutmalıdır.
Başlıca üç durum sözkonusudur:
- Kullanıcı TCP'ye bağlantıyı KAPAT demeye başlar.
-
Uzak TCP bir
SON
denetim sinyali göndermeye başlar. - Her iki kullanıcı aynı anda KAPATır.
- 1. durum: Yerel kullanıcı kapanmayı başlatır
-
Bu durumda, bir
SON
veri bölütü oluşturulur ve giden veri bölütü kuyruğuna yerleştirilir. TCP tarafından kullanıcıdan artık bir GÖNDER kabul edilmez ve TCPSON-BEKLE-1
durumuna geçer. Bu durumda ALımlara izin verilir.SON
içeren veSON
ile öncelenmiş tüm veri bölütleri alındılanana kadar yeniden aktarılır. Diğer TCP,SON
'un her ikisini de alındıladığında ve kendiSON
'unu gönderdiğinde, ilk TCP buSON
'uALN
'leyebilir. BirSON
alan TCP'nin bunuALN
'leyeceğini fakat ek olarak kullanıcısının bağlantısıKAPALI
olana kadar kendiSON
'unu göndermeyeceğine dikkat ediniz. -
2. durum: TCP ağdan bir
SON
alır -
Eğer ağdan talep edilmemiş bir
SON
gelirse, alıcı TCP onuALN
'leyebilir ve kullanıcıya bağlantının kapanacağını söyler. TCP'nin kalan veriyi diğer TCP'ye gönderdikten sonra birSON
göndermesi için kullanıcı bunu bir KAPAT ile yanıtlar. TCP bundan sonra kendiSON
'unun alındılanmasını bekler ve alındıyı aldıktan sonra bağlantıyı siler. BirALN
ulaşmazsa, bir kullanıcı zaman aşımı sonrasında bağlantı terkedilir ve kullanıcıya haber verilir. - 3. durum: Her iki taraf aynı anda kapanır
-
Bir bağlantının her iki ucunun kullanıcılarından aynı anda KAPAT gelmesi
SON
veri bölütlerinin değiştokuşuna sebep olur.SON
larla öncelenmiş tüm veri bölütleri işleme alınıp alındılandığında her TCP kendi aldığıSON
'uALN
'leyebilir. Her ikisi de buALN
'leri aldıktan sonra bağlantıyı siler.
TCP A TCP B 1. KURULU KURULU 2. (Kapat) SON-BEKLE-1 --> <SIRA=100><ALN=300><DNT=SON,ALN> --> KAPAT-BEKLE 3. SON-BEKLE-2 <-- <SIRA=300><ALN=101><DNT=ALN> <-- KAPAT-BEKLE 4. (Kapat) ZMN-BEKLE <-- <SIRA=300><ALN=101><DNT=SON,ALN> <-- SON-ALN 5. ZMN-BEKLE --> <SIRA=101><ALN=301><DNT=ALN> --> KAPALI 6. (2 AVÖ) KAPALI Normal Kapanma
TCP A TCP B 1. KURULU KURULU 2. (Kapat) (Kapat) SON-BEKLE-1 --> <SIRA=100><ALN=300><DNT=SON,ALN> ... SON-BEKLE-1 <-- <SIRA=300><ALN=100><DNT=SON,ALN> <-- ... <SIRA=100><ALN=300><DNT=SON,ALN> --> 3. KAPANIŞ --> <SIRA=101><ALN=301><DNT=ALN> ... KAPANIŞ <-- <SIRA=301><ALN=101><DNT=ALN> <-- ... <SIRA=101><ALN=301><DNT=ALN> --> 4. ZMN-BEKLE ZMN-BEKLE (2 AVÖ) (2 AVÖ) KAPALI KAPALI Aynı Anda Kapanma