Quality Of Service

Destekleyen

 

TsgcWSPServer_sgc

TsgcWSPClient_sgc

TsgcWSPClient_MQTT

Java script

 

 

SGC Default Protocol ve MQTT, mesaj teslimatı için QoS (Quality of Service) uygular. 3 farklı tür vardır:

 

Level 0: "En fazla bir kez", mesajların temel TCP/IP ağının en iyi çabasına göre teslim edildiği yer. Mesaj kaybı veya çoğaltma oluşabilir. Bu seviye örneğin, bir bireysel okumanın kaybolmasının önemli olmadığı ortam sensörü verileriyle kullanılabilir, çünkü bir sonraki kısa süre sonra yayınlanacaktır.

 

Level 1: "En az bir kez", mesajların ulaşacağı garanti edilir ancak çoğaltmalar (duplicates) oluşabilir.

 

Seviye 2: "Tam olarak bir kez", mesajların tam olarak bir kez ulaşacağı garanti edilir. Bu seviye, örneğin yinelenen veya kaybolan mesajların yanlış ücretlerin uygulanmasına yol açabileceği faturalandırma sistemlerinde kullanılabilir.

 

 

Seviye 0

Mesaj, temel TCP/IP ağının en iyi çabasına göre teslim edilir. Bir yanıt beklenmez ve protokolde yeniden deneme semantiği tanımlanmaz. Mesaj sunucuya ya bir kez ulaşır ya da hiç ulaşmaz.

 

Aşağıdaki tablo QoS seviye 0 protokol akışını gösterir.

 

Client Mesaj ve yön Server
QoS = 0 PUBLISH
---------->
Action: Abonelere bir mesaj yayınla

Level 1

Bir mesajın sunucu tarafından alınması bir ACKNOWLEDGEMENT mesajı ile onaylanır. Ya iletişim bağlantısında ya da gönderen cihazda tanımlanmış bir arıza varsa veya onaylama mesajı belirli bir süre sonra alınmazsa, gönderen mesajı yeniden gönderir. Mesaj, sunucuya en az bir kez ulaşır.

 

QoS düzey 1 olan bir mesajın mesajda bir Message ID'si vardır.

 

Aşağıdaki tablo, QoS level 1 protokol akışını gösterir.

 

Client Mesaj ve yön Server
QoS = 1
Message ID = x

Action: Mesajı sakla

PUBLISH
---------->
Actions:
  • Mesajı sakla

  • Abonelere bir mesaj yayınla
  • Mesajı sil

Action: Mesajı at ACKNOWLEDGEMENT
<----------
 

 

İstemci bir ACKNOWLEDGMENT mesajı almazsa (ya uygulamada tanımlanan bir zaman süresi içinde ya da bir hata algılanırsa veya iletişim oturumu yeniden başlatılırsa), istemci PUBLISH mesajını yeniden gönderebilir.

 

Level 2

QoS düzeyi 1'in üzerindeki ek protokol akışları, yinelenen mesajların alıcı uygulamaya teslim edilmemesini sağlar. Bu, yinelenen mesajların kabul edilemez olduğu durumlarda kullanım için en yüksek teslim düzeyidir. Ağ trafiğinde bir artış vardır, ancak mesaj içeriğinin önemi nedeniyle bu genellikle kabul edilebilir.

 

QoS seviyesi 2 olan bir mesajın, mesajda bir Message ID'si vardır.

 

Aşağıdaki tablo, QoS level 2 protokol akışını gösterir. Bir PUBLISH akışının alıcı tarafından nasıl işlenmesi gerektiğine dair iki semantik mevcuttur.

 

Client Mesaj ve yön Server
QoS = 2
Message ID = x

Action: Mesajı sakla

PUBLISH
---------->
Action: Mesajı sakla
  PUBREC
<----------
Mesaj ID = x
Mesaj ID = x PUBREL
---------->
Actions:
  • Abonelere bir mesaj yayınlayın
  • Mesajı silin
Action: Mesajı at ACKNOWLEDGEMENT
<----------
Mesaj ID = x

 

Bir hata algılanırsa veya tanımlanmış bir süreden sonra, protokol akışı son onaylanmamış protokol mesajından yeniden denenir. Ek protokol akışları, mesajın abonelere tam olarak bir kez teslim edilmesini sağlar.