vyuka:cviceni:x36dsi:projekt2_nezobrazovat

This is an old revision of the document!


Implementujte zjednodušený model linkové vrstvy ethernetu.

Celý projekt bude mít několik stupňů obtížnosti. Kolik a jak obtížných - to uvidím během spolupráce s vámi. Při implementaci je třeba zadané věci naprogramovat zcela přesně, neboť vaším úkolem bude vyrobit především požadované moduly, které budou v rámci testování začleněny do referenčního přostředí. Chování jednotlivých modulů bude zadáno explicitně. Tedy bude přesně definováno jejich chování. Kódová implementace je na každém z vás. Důležité je především správné chování modulu a dodržení jeho předepsaného rozhraní.

Stupeň 1

Vyrobte simulaci zjednodušené sítě s PC stanicemi a switchem.

Datový rámec

Datový rámec napodobuje opravdový rámec z ethernetu. Vzhledem k tomu, že se jedná o datovou strukturu, která se bude přenášet mezi vašimi moduly a referenčním prostředí, tak struktura datového rámce je přesně daná. Následuje kód message definition v Omnetu (více informací o tom co to je bude probráno na cvičení nebo je lze najít v manuálu v kapitole 5.2).

Messages.msg:

enum MessageTypes{
DATA = 0;
BPDU = 1;
}

message BaseMessage {
int destinationMac;
int sourceMac;
int type = enum(MessageTypes);
}

message DataMessage extends BaseMessage{
bool ack;
int priority;
int size;
}
message SwitchMessage extends BaseMessage{

}

Na síti se budou moci vyskytnout 2 typy datových rámců: Data a BPDU. V prvním stupni obtížnosti vás budou zajímat pouze rámce pro přenos hrubých dat (DATA). Báse všech rámců je BaseMessage, kde je uložena zdrojová a cílová MAC adresa a typ datového rámce. V DataMessage se nacházejí informace týkající se přenosu datové informace. Je zde ack - potvrzení o doručení, priority a size. V tomto stupni vás zajímá pouze ack a size. SwitchMessage nebudete v tomto stupni obtížnosti potřebovat. Broadcast je taková MAC adresa, že rámec, který ji obsahuje jako cílovou adresu, je rozeslán do celé sítě. Hodnota broadcastu je 0!!!

PC stanice

PC stanice slouží v simulaci jako generátory a terminátory datových rámců. Modul PC stanice obsahuje dvě brány, jednu pro vstup, druhou pro výstup. Stanice má pak několik povinných parametrů, které je nutné použít. Je možné, že tyto parametry budou použity referenčním prostředím, proto je nutné zachovat přesně jejich názvy.

  • int MAC - MAC adresa dané stanice
  • double generationIntervalMin - spodní časová hranice generevání datového rámce
  • double generationIntervalMax - horní časová hranice generování datového rámce
  • double treshold - práh, který je přičítán k oběma predchozím hodnotám (Slouží k jednoduché změně délky genorovacího intervalu)
  • int maxMAC - celkový počet PC v simulaci (hodí se ke generování existujících MAC adres)

Každá PC stanice dostane přidělenu jednu MAC adresu. Pro jednotnost se dohodneme, že pokud bude v simulaci například 5 PC, budou mít MAC adresy 1,2,3,4,5. Žádná PC stanice nesmi mít MAC adresu 0, protože je to hodnota vyhrazená pro broadcast. Stanice generuje datové rámce o velikosti (size) 1 až 1500. Pro generování velikosti použijte funkci uniform(). Stanice pak generuje nové pakety v náhodných intervalech <genereationMin + treshold, genereationMax + treshold>. Opět použijte funkci uniform(). Nakonec potřebujete generovat cílové MAC adresy. K tomu použijte parametr maxMAC. Stanice by neměla odesílat rámce se svou MAC adresou jako cíl. Zdrojová MAC adresa v rámci je samozřejmě adresa stanice, která rámec vytvořila.

  • vyuka/cviceni/x36dsi/projekt2_nezobrazovat.1271259839.txt.gz
  • Last modified: 2010/04/14 15:43
  • by vikturek