6 Eylül 2017 Çarşamba

Stanag 4691 - Relay Control

Giriş
Relay Control - RC bileşenin açıklaması şöyle
Monitors the LOS network topology to determine network membership and shortest paths to desired destinations. This helper protocol provides Layer 2 routing when required.
Bu bileşen Kernel olarak adlandırılabilir. Çalışma şekli olarak OLSR yönlendirme algoritmasına benziyor ancak işletim sisteminin tablolarına müdahale etmez. Sebebi ise ağa gönderilen paketin IP olmaması.

RC ve Dynamic Link Exchange Protocol
Stanag 4691 Dynamic Link Exchange Protocol - DLEP ile ilgili bir şey söylemiyor ancak yönlendirmeyi iyileştirmek için kullanılabilir.

One-Hope Neighbors
Her katılımcı tüm "good two-way" komşularını bilir. Bu komşular ve ETX (Expected Transmission Count) değerleri MAC alt bileşeni tarafından belirlenir.
MAC -> Good Neighbors + ETX -> RC
ETX değeri double cinsindendir ve [1.0 - infinity) aralığındadır. Bir tablo kullanılarak "Link Cost" değerine dönüştürülür. "Link Cost" [0 - 15] aralığındadır. 15 çok iyi 0 ise çok kötüdür.

Bu komşular RC PDU ile diğer katılımcılara bildirilir. Eğer komşuluk yapısında veya link kalitesinde değişiklik varsa, RC Reporting Interval beklenmeden hemen RC PDU gönderilir. Açıklaması şöyle
Each node will generate a RC PDU whenever a topology change leads to a change in its two-way neighbor list,  and at least once every RC Reporting Interval, usually equal to one cycle time.
Algoritma şöyle
1. Shortest Path'i hesapla. Hesaplama esnasında MPR'ları seç.
2. RC PDU' gönder.

RC Reporting Interval Nedir
Normal şartlar altında "Reporting Interval" her çevrim (cycle)'de 1 keredir. Eğer topolojiyi değiştirecek bir olay olduysa, örneğin komşuluk durumu veya link cost değişirse, RC PDU hemen gönderilir. Reporting Interval timer sabit tutulabilir veya her topoloji değişikliğinden sonra tekrar başlatılabilir.

RC Hold Time Nedir
3 "Reporting Interval" suresidir. Bir katılımcıdan 3 Hold Time yani 3 çevrim boyunca RC PDU gelmezse, o katılımcı ve bildirdiği bağlantılar silinir. Katılımcı başına bir timer kullanılması 254 tane timer açılması anlamına gelebilir.

Yazılım
Klasik routing gerçekleştirimlerinde olduğu gibi "Control Plane" ve "Data Plane" olarak bakmak gerekir. "Control Plane" RC PDU'nun oluşturulması ve gelenlerin işlenmesidir. "Data Plane" ise topoloji üzerinde sorgu yapmaktır.

Servisler
Relay Control PDU almak ve vermek dışında diğer bileşenlere şu servisleri sağlar. Bu servisler "Data Plane" ile ilgilidir.

1. Bağlantı olup olmadığı.
bool isConnected ()  ;
Seçenekler şöyle
a. RT ARP isteklerine cevap vermeden önce bağlantı olup olmadığını kontrol edebilir. Bağlantı yoksa ARP isteğine cevap vermez.
b. MAC paketi göndermeden önce bağlantı olup olmadığını kontrol edebilir. Bağlantı yoksa paketi göndermekten vazgeçebilir.

2. Hedef IP adresine ulaşmak için hangi yolun kullanması gerektiği
int getNextHop (int destinationNode);
Seçenekler şöyle
a. LC paketi hazırlarken bu bilgiyi de MAC'e verir.
b. MAC gönderim esnasında bu bilgisi RC'den  isteyebilir.

3. Broadcast paketlerin röle edilip edilmeyeceği sorgulanır.
bool isMPRSForNode (int sourceNode);
4. Lokal ve röle edilecek paketler arasında denge sağlamak için beni kaç tane katılımcının beni röle olarak seçtiği sorgulanır. Her bir lokal pakete karşılık MPRS yani beni röle seçen katılımcı sayısı kadar röle paket gönderilir. Eğer MPRS sayısı 1 ise her bir lokal pakete karşılık 1 paket röle edilecek demektir. Eğer MPRS sayısı 3 ise her bir lokal pakete karşılık 3 paket röle edilecek anlamına gelir.
int  getMPRSCount ();

5. MAC bileşeni Random Access slot'ları belirlemek için Partition Identifier (PID) sayısına ihtiyaç duyar. PID routing topolojisindeki en küçük Node ID sayısıdır. Eğer PID değişmiş ise MAC kendi içinde bir algoritma başlatır. RC PID olarak kendi Node ID değerimi de döndürebilir.

int  getPID (); veya void notifyPIDChange ();
Seçenekler şöyle
a. MAC PID'in değişip değişmediğini anlamak için bu sorguyu yapar
b. RC PID bilgisini takip eder ve bu bilgi değişince MAC'e bildirir.


RC PDU
Bu PDU bir düğümünün tüm komşularını içerir. Bazı kablosuz ağ tasarımları sadece değişiklikleri göndererek bu ve benzeri PDU'ları küçültüyor. Ancak bu PDU tasarlanırken gerek görülmemiş.

Originator ID Alanı :Bu PDU'yu gönderen katılımcı. Aynı bilgi LLC PDU içinde de var. Neden buraya da konulmuş bilmiyorum.

Sequence Number Alanı : 0 - 255 arasında değer alır. PDU'nun elimizdekinden daha eski olup olmadığını anlamak için kullanılır. Eski PDU'lar gecikmeli olarak gelebilir. Bu sayı başa döndüğü için hangi PDU eski, hangisi yeni diye anlamak biraz zor.

Eldeki sayı 10 gelen sayı 20 olsun -> Paketi işle
Eldeki sayı 10 gelen sayı 255 olsun -> Paketi işle
Eldeki sayı 255 gelen sayı 5 olsun -> Paketi işle
Eldeki sayı 10 gelen sayı 9 olsun -> Paketi işleme

Yani gelen sayı küçük ise ve abs (eldeki sayı - gelen sayı) < 5 ise paket eskidir

Neighbor ID #1 Alanı :

Link Cost #1 Alanı : 0 - 15 arasında değer alır. MAC tarafından belirtilen ETX değeri, bir tablo kullanılarak sayısallaştırılır.

Neighbor Status #1 Alanı : Şu değerleri alabilir.
Status = 0 Neigbor  (but neither MPR or MPRS)
Status = 1 MPR (but not MPRS)
Status = 2 MPRS (but not MPR)
Status = 3 MPR + MPRS
MPR (Multi-Point Relay) benim röle olarak seçtiğim katılımcı. MPRS (Multi-Point Relay Selector) ise beni MPR seçen katılımcı. MPR broadcast paketler için röle görevi görür. Tüm ağa kimin MPR veya MPRS olduğunu bildirmenin açıklaması şöyle.
When data packets of a single priority are considered, packets to be relayed shoulder generally be sent before locally generated packets, except that each node may send one locally generated packet for every K relayed packets,  where K is the number of neighbors that have selected the node as a Multi-Point-Relay  (MPR). Remotely generated traffic is generally preferred to local traffic, as network resources have already been employed in moving the remote traffic at least one hop from source to destination. However, the 1 of K rule just described can be used to prevent local starvation of a relay node when network load exceeds capacity.



Hiç yorum yok:

Yorum Gönder