• Sonuç bulunamadı

4. BLUETOOTH PROTOKOL MİMARİSİ

4.4 Lojik Link Kontrolü ve Adaptasyon Protokolü (L2CAP)

4.4.3 Durum Makinesi

4.4.3.1 Olaylar

Olaylar, L2CA katmanına herhangi bir zaman aĢımı ile birlikte gelen mesajlardır. Olaylar alt katmanlardan Gösterge ve Konfirmasyon, üst katmanlardan Talep ve Cevap, eĢdeğer katmanlardan veri, iĢaret Talep ve Cevap ları ve zaman aĢımları sebebiyle oluĢan olaylar Ģeklinde kategorize edilmiĢlerdir.

Alt Katman’dan L2CAP’e Olaylar

AĢağıda Bluetooth spesifikasyonu tarafından tanımlanan ve alt katman protokolleri (örneğin temelbant) ile L2CAP arasında bağlantı kurulum aĢamasında iletilen mesajlar sıralanmıĢtır:

LP_ConnectCfm: Alt katman bağlantısı kurma talebini konfirme eder. Fiziksel link kurulması için doğrulama istenmiĢse bu prosesin geçilmesini de içerir.

ġekil 4.29 Farklı katmanların etkileĢimini gösteren mesaj dizisi planı

LP_ConnectCfmNeg: Alt katman bağlantısı kurma talebinin baĢarısız oluĢunu konfirme eder. Bu durum cihaz ile bağlantı kurulamıyorsa, talep reddedilmiĢse ya da LMP doğrulaması baĢarısız olmuĢsa görülür.

LMP_ConnectInd: Alt katman protokolünün bağlantıyı baĢarılı olarak yaptığını iĢaret eder. Temelbant durumunda kurulan bağlantı bir ACL linkidir. Bir L2CAP varlığı bu bilgiyi fiziksel linklerin takibini korumak için kullanır.

LP_DisconnectInd: Alt katman protokolünün LMP komutları ya da bir zaman aĢımı olayı ile kapatıldığını gösterir.

LP_QoSCfm: Bir servis kalitesi için talebi konfirme eder.

LP_QoSCfmNeg: Bir servis kalitesi için talebin baĢarısız olduğunu konfirme eder. LP_QoSViolationInd: Alt katman protokolünün bir önceki LP_QosReq de belirtilen QoS anlaĢmasının ihlal edildiğini gösterir.

L2CA_ Gösterge

L2CAP_Cevap L2CAP_Talep

Alt Protokol Alt Protokol

Kabul Edici L2CA BaĢlatıcı L2CA Zaman L2CA_ Onay L2CA_ Talep L2CA_ Cevap

L2CAP’ten L2CAP’e İşaretleşme Olayları

L2CAP’ten L2CAP’e iĢaretleĢme olayları uygun L2CAP iĢaretleĢme PDU larının iletimini takiben her bir L2CAP varlığı tarafından meydana getirilirler. L2CAP iĢaretleĢme PDU ları da diğer L2CAP PDU ları gibi bir alt katmandan bir alt protokol gösterge olayı üzerinden alınırlar. Bluetooth spesifikasyonuna göre aĢağıdaki mesajlar L2CAP birimleri arasında iletilmektedir:

L2CAP_ConnectReq: Bir bağlantı talebi paketi alınmıĢtır.

L2CAP_ConnectRsp: Bağlantının kurulduğuna iĢaret eden olumlu sonuç içeren bir bağlantı cevap paketi alınmıĢtır.

L2CAP_ConnectRspPnd: Uzak uç noktanın talebi aldığını ve proses etmekte olduğuna iĢaret eden bir bağlantı cevap paketi alınmıĢtır.

L2CAP_ConnectRspNeg: Bağlantının kurulamayacağını gösteren bir bağlantı cevap paketi alınmıĢtır.

L2CAP_ConfigReq: Uzak uç noktanın kanal parametreleri üzerinde anlaĢmaya varmak istediğini gösteren bir konfigürasyon cevap paketi alınmıĢtır.

L2CAP_ConfigRsp: Uzak uç noktanın görüĢülen tüm kanal parametrelerini kabul ettiğini gösteren bir konfigürasyon cevap paketi alınmıĢtır.

L2CAP_ConfigRspNeg: Uzak uç noktanın alınan cevap paketindeki parametreleri kabul etmediğini gösteren bir konfigürasyon cevap paketi alınmıĢtır.

L2CAP_DisconnectReq: Kanalın bağlantıyı sona erdirme prosesini baĢlatması gerektiğini gösteren bir bağlantıyı sona erdirme talep paketi alınmıĢtır. L2CAP kanal bağlantısının sona erdirilmesinin ardından, L2CAP varlığı lokal CID ini atanmamıĢ CID havuzuna geri gönderir.

L2CAP_DisconnectRsp: Bir bağlantıyı sona erdirme cevap paketi alınmıĢtır. Bu iĢaretin alınmasından sonra, cevabı alan L2CAP varlığı lokal CID ini atanmamıĢ CID havuzuna geri gönderir. Uygun gelen bir negatif cevap yoktur çünkü bağlantıyı sona erdirme prosesi mutlaka gerçekleĢtirilmelidir.

L2CAP’ten L2CAP’e Veri Olayları

L2CAP birimleri arasında iletilen ve bir veri paketinin alındığını gösteren tek bir mesaj vardır ve bu mesaj L2CAP_Data dır.

Üst Katman’dan L2CAP’e Olaylar

AĢağıda Bluetooth spesifikasyonu tarafından tanımlanan ve üst katman protokolleri ile L2CAP arasında bağlantı kurulum aĢamasında iletilen mesajlar sıralanmıĢtır: L2CA_ConnectReq: Uzak bir cihaza kanal oluĢturulması için üst katmandan gelen bir taleptir.

L2CA_ConnectRsp: Bir üst katmandan uzak bir cihazdan gelen bağlantı talebini gösteren bir cevap alınmıĢtır.

L2CA_ConnectRspNeg: Bir üst katmandan uzak bir cihazdan gelen bağlantı talebinin reddedildiğini gösteren bir cevap alınmıĢtır.

L2CA_ConfigReq: Bir üst katmandan kanalı tekrar konfigüre etme talebi gelmiĢtir. L2CA_ConfigRsp: Bir üst katmandan kanalı tekrar konfigüre etme talebine istinaden cevap gelmiĢtir.

L2CA_ConfigRspNeg: Bir üst katmandan kanalı tekrar konfigüre etme talebine istinaden olumsuz cevap gelmiĢtir.

L2CA_DisconnectReq: Bir üst katmandan kanal bağlantısının acilen sonlanmasına iliĢkin bir talep gelmiĢtir.

L2CA_DisconnectRsp: Bir üst katmandan bağlantının sonlanmasına iliĢkin cevap gelmiĢtir. Uygun gelen bir negatif cevap yoktur çünkü bağlantıyı sona erdirme talebi her zaman kabul edilmelidir.

L2CA_DataRead: Bir üst katmandan L2CAP varlığından alınan verinin üst katmana iletimi isteği gelmiĢtir.

L2CA_DataWrite: Bir üst katmandan açık olan bir kanal üzerinden iletim yapmak üzere üst katmandan L2CAP varlığına veri iletimi isteği gelmiĢtir.

Zamanlayıcı Olayları

AĢağıda Bluetooth spesifikasyonu tarafından tanımlanan ve kanal sona erdiriliĢ prosesi aĢamasında sonlanma noktaları arasında iletilen zamanlayıcı mesajları sıralanmıĢtır:

Response Timeout eXpired (RTX): Uzak sonlanma noktasının iĢaretleĢme taleplerine tepki vermediği durumda kanalı sona erdirmekte kullanılır. Bu

alındığında sona erer. Eğer ilk zamanlayıcı zaman aĢımına uğrarsa, ikinci bir talep mesajı gönderilir ya da talepte belirtilen kanaldan kopulur. Ġkinci bir talep mesajı gönderilirse, RTX zaman aĢımı değeri bir öncekinin en az iki katı olacak Ģekilde yeni bir değere ayarlanır. Uygulamalar kanalı sona erdirmeden önce L2CAP katmanında gösterilecek maksimum talep tekrarı adedini belirlemek durumundadır. Bu karar iĢaretleĢme linkinin temizleme (flush) zaman aĢımına bağlıdır. Temizleme (flush) zaman aĢımı değeri uzadıkça fiziksel katmanda daha fazla tekrar iletim yapılarak kanal güvenliği artırılmıĢ olur. Böylelikle L2CAP katmanında daha az tekrar iletime gerek olur.

Extended Response Timeout eXpired (ERTX): Uzak sonlanma noktasının baĢka bir talep iĢaretini proses ettiğinden Ģüphe duyulduğunda RTX zamanlayıcısının yerine kullanılır. Bu zamanlayıcı uzak sonlanma noktası bir talebi beklettiğine dair cevap döndüğünde (L2CAP_ConnectRspPnd olayı alındığında) baĢlar, resmi cevap alındığında veya fiziksel link sonlandığında sona erer. Eğer ilk zamanlayıcı zaman aĢımına uğrarsa, ikinci bir talep mesajı gönderilir ya da talepte belirtilen kanaldan kopulur. Ġkinci bir talep mesajı gönderilirse, özel ERTX zamanlayıcısı kaybolarak yeni bir RTX zamanlayıcı atanır. Tüm zamanlama prosedürü yukarıda RTX zamanlayıcısında anlatıldığı gibi tekrar baĢlar.