IMSP (Internet Message Support Protocol)

Eyl 06, 2013

Internet Message Support Protocol (İnternet İleti Destek Kuralı) e-posta standartlarını büyük işlem aralıklarında desteklemek için düzenlenmiştir. IMSP'nin, e-posta alanına ulaşım ya da birden fazla IMAP4 sunucusuyla aynı e-posta alanında çalışan çevreye ait servislerini sağlama konusunda IMAP4'le çalışması düşünülmüştür. IMSP, genişletilmiş e-posta kutusu yönetimi, yapılandırma seçenekleri ve adres defteri gibi servisleri sağlar.

IMSP bir dizi istemci komutları, sunucu cevapları ve sunucu cevaplarının içindeki verileri içerir. İstemcilerin uygulamalarını basitleştirmek için, IMSP'nin komut yapıları İnternet İleti Erişim Kuralı (Internet Message Access Protocol (IMAP))'na benzer. IMSP komutları ve cevaplarının birçoğu anlam ve sözdizimi yönünden IMAP4'teki karşılıklarının ya aynısı ya da benzeridir. IMAP4'te olduğu gibi komutlar ve cevaplar etiketlidir. IMSP'de her komut benzersiz bir tanıtıcıyla başlar. Sunucu da aynı etiketle yanıt verir. Ayrıca, sunucu istediği kadar etiketsiz veri de yollayabilir. Etiketsiz veri  "*" ya da "+" özel karakterlerinden biriyle başlar.

406. portu kullanan IMSP'de veri akışı TCP tarafından sağlanır, bu sebepten dolayı güvenlidir. İstemci sunucuyla bağlantı kurduktan sonra sunucudan yanıt bekler. Üç çeşit sunucu yanıtı vardır: OK (başarı), NO (başarısızlık) ve BAD (tanınmayan komut ya da komut sözdizimsel hatası). Sunucu karşılık olarak etiketsiz "OK" veya "PREAUTH" yanıtını yollar ve bağlantı kuran istemciden komut bekler. Sunucudan yanıt alan istemci komutlarını, her komut için sunucudan yanıt gelmesini beklemek zorunda olmadan gönderebilir. Sunucu ise yanıtlarını, verilerle beraber yollar. İstemci sunucudan yanıt beklemeden komutlarını yolladığı için sunucu istemcinin yolladığı komuta özel etiketin karşılığı olan etiketle yanıt vermedikçe komutların etkisinden emin olunamaz.

Bir IMSP oturumu istemci/sunucu bağlantısının kurulması, sunucudan anlık karşılık ve sunucu/istemci etkileşimlerini içerir. Bahsedilen sunucu/istemci etkileşimleri ise istemci komutu, sunucu verisi ve sunucu sonlandırıcı yanıtından oluşmaktadır. Sunucu ve istemci etkileşimli iletileri sıralı bir yapıdadır. IMSP istemci veya sunucu alıcı kuralı ya her sırayı ya da bir sırada takip edilen bilinen bir sayıdaki oktet dizilerini okur.

İstemci Gönderici  Kuralı  ve Sunucu Alıcı Kuralı

Her istemci komutu "tag" (etiket) olarak adlandırılan bir tanımlayıcı ön takıya sahiptir (genelde küçük bir alfanumerik karakter, A0001, A0002 gibi). İstemci her komut için farklı bir etiket kullanır ve istemci tarafından gönderilen sıralı yapı tam komut belirtmez. Sunucu komut için hazırsa komut tamamlama isteğini yanıt olarak gönderir. Bu yanıt "+" işaretini ön takı olarak alır. Sunucu komutta hata yakalarsa "BAD" yanıtını ve uygun etiketi istemciye yollar. Bu sayede komutu iptal etmiş olur ve istemcinin komutun devamını yollamamasını sağlar. IMSP sunucu alıcı protokolü istemciden gelen bir komut satırını okur, komutu ve argümanlarını parçalara ayırarak sunucu verisi ve sunucu komut sonlandırma yanıtı döner.

Sunucu Gönderici ve İstemci Alıcı Kuralları

Sunucu tarafından istemciye gönderilen veri ve komut tamamlayıcısı olmayan durum yanıtları "*" işaretini ön takı olarak alır ve etiketsiz yanıtlar olarak adlandırılır. Sunucu verisi bir istemci komutunun sonucu olarak gönderilebildiği gibi sunucu tarafından tek taraflı olarak da gönderilebilir. Her iki gönderimde sözdizimi yönünden bir fark bulunmamaktadır. Sunucu komut tamamlayıcı sonuç yanıtı başarı ya da başarısızlık olarak belirtir ve işlemi başlatan istemci komutu ile aynı etikete sahiptir. Bu yüzden, birden fazla komut işlemdeyse sunucu tamamlayıcı yanıtındaki etiket, yanıtın hangi komuta uygulandığını tanımlar. Üç çeşit sunucu tamamlayıcı yanıtından biri dönülür (OK, NO ve BAD). IMSP istemcisi alıcı kuralı, sunucudan yanıt satırı okur ve yanıtın ön takısına göre tepki gösterir. Bir istemci istek göndermediği sunucu verileri de dahil olmak üzere her zaman sunucudan yanıt kabul etmeye hazır durumda olmalıdır. Sunucu verileri kaydedilerek istemci sunucuya veri isteği göndermek zorunda kalınmaz ve kaydedilen kopya referans olarak gösterilebilir.

Durum ve Akış Diyagramı

Bir IMSP sunucusu üç farklı durumda bulunabilir ve çoğu komutlar belli durumlarda geçerlidir. İstemcinin uygun olmayan bir durumda yolladığı komut kural hatasına neden olur. Bu durumda sunucu, sunucu uygulamasına bağlı olarak "BAD" ya da "NO" yanıtı dönecektir. Kimlik doğrulanmayan durum (non-authenticated state), çoğu komut izinlerinin olmadığı bir durumdur. Bağlantı kurulumundan kimlik doğrulama öncesine kadar geçen süreyi kapsar. Kimlik doğrulama durumunda ise çoğu komutun izni vardır. Diğer durum ise oturum kapama durumudur. Oturum kapama durumunda ise oturum sonlandırılır, sunucu bağlantıyı kapatır. İstemci isteğiyle ya da sunucunun tek taraflı kararıyla bu duruma girilir. IMSP metin şeklinde komutlar ve yanıtlar kullanır. IMSP verileri atom, numara, karakter dizisi, parantezli liste veya NIL olabilir.

Komut Olmadığı Durumlarda Yanıt Yollama

Sunucu uygulamaları komut işlemde olmadığı zaman etiketsiz yanıt gönderme iznine sahiptir. Bu şekilde yanıt gönderen sunucu uygulamaları akış kontrol şartlarını sağlamalıdır. Özellikle veri büyüklüğünün temel iletimin uygun pencere büyüklüğünü aşmadığını doğrulamalı veya bloklu olmayan yazıları kullanmalıdırlar.

Otomatik Oturum  Kapama Zamanlaması

Sunucu aktif olmayan otomatik oturum kapama zamanlamasına sahipse bu zamanlama en azından 30 dakika olmalıdır. Bu zaman aralığında istemciden herhangi bir komut alınması otomatik oturum kapama zamanlamasını yeniden başlatmak için yeterli olmalıdır.

Birden Çok Komutun İşlemde Olması

İstemci yeni bir komut göndermek için sonuç tamamlama yanıt komutunu beklemek zorunda değildir. Temel veri akışındaki akış kontol kısıtlamalarına bağlıdır. Benzer şekilde sunucu da başka komutların sonuçlarını etkileyecek bir komuttan dolayı oluşan belirsizlik haricinde tamamlama komutunu göndermek için sıradaki komutun işleme girmesini beklemek zorunda değildir. Böyle bir belirsizlik olursa sunucu tamamlama komutunu istemci komutunun verilme sırasına göre yönetir.

IMAP4 Protokol Fallback (IMAP4 Son Çare Kuralı)
   
Bir istemci, kullanıcı tarafından yönlendirilirse ya da verilen bir ana bilgisayarda posta kutusu servisiyle iletişim kurmak için anlık yapılandırma yaparsa, öncelikle o ana bilgisayarda IMSP servisine ulaşmaya çalışmalıdır. Bu durumda istemci IMAP4 e-posta kutusu yönetimi komutları yerine IMSP e-posta kutusu yönetimi komutlarını kullanmalıdır. IMSP sunucusuna istenmeyen bağlantı olması sebebiyle bağlanılamazsa istemci IMAP4 kuralını kullanmak durumundadır.