Mesajlar, Omnet'te merkezidir ve bir modelde, mesajlara ait objeler olayları, paketleri, komutları, görevleri, alıcıları veya diğer türden varlıkları temsil ederler.
Omnet'te mesajlara ait objeler, cMessage adlı sınıftan ve bu sınıfa ait olan cPacket alt sınıfı tarafından elde edilmektedir.
Ağlarda, cPacket sınıfı ağ paketleri için kullanılır. Frameler, datagramlar, taşıma paketleri vb. gibi. cMessage sınıfı ise geri kalan her şey için kullanılır. Kullanıcılar cMessage ve cPacket sınıflarına yeni türler veya yeni veriler eklemeleri konusunda özgürdürler.
cMessage şunları içerir :
Mesajı Adı (message name) alanı, programcı tarafından kolaylıkla kullanılabilen, const char * tipinde bir stringtir. Grafiksel çalışma arayüzünde mesaj adı birçok yerde görüntülenir. Bu nedenle açıklayıcı bir ad seçmek genellikle daha faydalı olacaktır. Mesaj adları cObject sınıfından miras alınmaktadırlar.
Mesaj Türü (message kind) integer bir türdür. Bazı negatif değerler simülasyon kütüphanesinde rezerve edilmiş olsa da sıfır ve pozitif değerler bir model içerisinde herhangi bir amaçla kolaylıkla kullanılabilirler. Mesaj türü, genellikle mesajın rolü, türü, kategorisi veya kimliği gibsinden iletilen bir değeri taşımak için kullanılır.
Zamanlama Önceliği (scheduling priority) adlı alan, varış zamanı aynı olan mesjaların teslimat sırasını belirlemek için, genellikle simülasyon çekirdeği tarafından kullanılır. Pratikte çok nadir olarak kullanılır.
Send time, arrival time, source module, source gate, destination module, destination gate gibi alanlar mesajların son gönderimi veya programlanması hakkında bilgileri içerirler ve bu alanlar modelden değiştirilmemelidirler. Bu alanlar, mesajlar gelecekteki olaylar için programlanmış iken (future events set kısaca FES), öncelikli olarak simülasyon çekirdeği tarafından kullanılırlar. Çünkü mesaj bir modüle iletildiği zaman bu bilgiler halen mesaj objesinde yer almaya devam ederler.
Time stamp, bir zaman damgasıdır. Önemli bir alandır. Simülasyon çekirdeği tarafından incelenmez veya değiştirilmez. Kullanıcı bunu istediği bir amaç için kullanmakta özgüdür. Bu zaman bilgisi, varış bilgisi (arrival time) ile karıştırılmamalıdır.
parameter list, control info and context pointer alanları, bazı simülasyon görevlerini programlamayı kolaylaştıran alanlardır.
Yukarıda açıklanan ve cMessage sınıfı içerisinde yer alan bu ifadelerin bir kısmı simülasyonun çekirdeği için kullanılırken, bazıları da programcıya kolaylıklar sağlaması için sunulmuşlardır.
cPacket sınıfının, ile cMessage sınıfının bir alt sınıfı olduğunu söylemiştik. Bu sınıf ise, cMessage içerisinde sunulan ağ paketlerini temsil eden alanları genişletleten faydalı bir sınıftır.
cPacket sınıfı ise şunları içerir :
Packet length (mesaj uzunluğu) alanı, paket uzunluklarını bit cinsinde temsil eder. Bir bağlantıya atanan bir veri hızı boyunca bir paket yolculuk ederken, simülasyon çekirdeği packet length alanını kullanarak iletim süresini hesaplar ve ayrıca sıfırdan farklı bir bit hata oranıyla, paket iletim kanallarında hata modellemesi için kullanılır.
Encapsulated packet (kapsüllenmiş paket) alanı, protokol katmanlarının modellenmesine, kapsülleme (encapsulation) ve kapsülleme (encapsulation) kavramını destekleyerek, yardımcı olur.
Bit error flag (bit hatası bayrağı) alanı, paketin sıfır olmayan paket hata oranına (packet error rate kısa PER) sahip bir kanal üzerinden veya bit hata oranına (bit error rate kısa BER) sahip bir kanal üzerinden gönderildikten sonra, hata modellemesi sonucunu taşır. Paketi aldıktan sonra bu bayrağı incelemek ve üzerinde hareket etmek alıcının sorumluluğundadır.
is-reception-start flag olarak geçen bu ifadenin Türkçe'ye çevirilmesi pek mantık değil ama bunun için özetle, "alım başlangıcı mı değil mi" değerini tutan bir bayrak diyebiliriz. Bu bayrak mesaj paketinin, paket veri hızı olan kanaldan geçtikten sonra, alımın başlangıcını mı yoksa bitişini mi temsil ettiğini söyler. Bu bayrak ise, deliver-on-reception-start flag bayrağı tarafından kontrol edilir. Bunu bayrağın açıklamasına özetle, "alış başlangıcı üzerinden teslim et" anlamı taşıyan bir bayraktır.
Bayrak ifadesi bilgisayar alanında, "işaret, sinyal, bir şeyin durumunu belirten değişken" anlamlarına gelir.
Konuya yaptığım ufak tefek eklemeler haricinde ilgili yazı Omnet dökümantasyonundan çevrilmiştir. Aklınıza takılan noktaları aşağıdaki yorum formu aracılığıyla iletebilirsiniz. İyi çalışmalar.
0 yorum:
Yorum formuna konuyla ilgili görüş ve sorularınızı bırakabilirsiniz.
Yorumunuza mümkün olan en kısa sürede dönüş yapılacağından emin olabilirsiniz.
Eklenen yorumlar, moderatör onayından sonra yayınlanmaktadır.