vyuka:cviceni:x36dsi:projekt2_nezobrazovat

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
vyuka:cviceni:x36dsi:projekt2_nezobrazovat [2010/04/14 20:58] vikturekvyuka:cviceni:x36dsi:projekt2_nezobrazovat [2010/04/26 13:46] (current) vikturek
Line 45: Line 45:
  
 Na síti se budou moci vyskytnout 2 typy datových rámců: Data a BPDU. V prvním stupni obtížnosti 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+vás budou zajímat pouze rámce pro přenos hrubých dat (DATA). Báze 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 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  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ý+size. (Ani ack nemusíte nutně využít pokud nechcete.) 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!!! ji obsahuje jako cílovou adresu, je rozeslán do celé sítě. Hodnota broadcastu je 0!!!
  
Line 72: Line 72:
 ==Switch== ==Switch==
  
-Switch samotny by se měl co nejvíce blížit realnému switchi. Modul přepínače má teké několik povinných parametrů: +Switch samotny by se měl co nejvíce blížit realnému switchi. Modul přepínače má také několik povinných parametrů: 
-  *int portBufferSize - velikost vstupního bufferu pro každý port. (Velikost znamená kolik rámců se může do bufferu ulozit, velikosti jednotlivých rámců v tom nehrají roli.) +  *__int portBufferSize__ - velikost vstupního bufferu pro každý port. (Velikost znamená kolik rámců se může do bufferu ulozit, velikosti jednotlivých rámců v tom nehrají roli.) 
-  *bool roundRobin - zapnutí a vypnutí metody výběru dalšího paketu pomocí Round Robin. (Vysvětleno dále v textu.) +  *__bool roundRobin__ - zapnutí a vypnutí metody výběru dalšího paketu pomocí Round Robin. (Vysvětleno dále v textu.) 
-  *bool cutThrough - zapnutí metody Cut-Through pro přeposílání paketů mezi porty. Ve stupni obtížnosti 1 nechte defaultně false.+  *__bool cutThrough__ - zapnutí metody Cut-Through pro přeposílání paketů mezi porty. Ve stupni obtížnosti 1 nechte defaultně false.
  
-Switch má standardně 8 portů. 8 vstupních a 8 výstupních. Pro každý port má vstupní buffer. Kapacita bufferu je dána parametrem a udává počet rámců, který lze do bufferu vložit bez ohledu na jejich velikost.+Switch má standardně 8 portů. 8 vstupních a 8 výstupních. Pro každý vstupni port má vstupní buffer. Kapacita bufferu je dána parametrem a udává počet rámců, který lze do bufferu vložit bez ohledu na jejich velikost.
  
 Switch má pro každý port tabulku MAC adres, kam ukládá zdrojové MAC adresy rámců, které na daném portu obdrží.  Switch má pro každý port tabulku MAC adres, kam ukládá zdrojové MAC adresy rámců, které na daném portu obdrží. 
Line 90: Line 90:
 1) roundRobin == false - v tomto případě začne switch kontrolovat vždy buffer na prvním portu a pak pokračuje dále. V případě, že je buffer prvního portu plný, jsou nejdříve postupně obslouženy rámce z prvního portu, dokud neni prázdný a teprve pak postupuje k dalšímu. V této metodě se múže stát, že rámce z posledních portů nejsou obslouženy vůbec! 1) roundRobin == false - v tomto případě začne switch kontrolovat vždy buffer na prvním portu a pak pokračuje dále. V případě, že je buffer prvního portu plný, jsou nejdříve postupně obslouženy rámce z prvního portu, dokud neni prázdný a teprve pak postupuje k dalšímu. V této metodě se múže stát, že rámce z posledních portů nejsou obslouženy vůbec!
  
-2) roundRobin == true - v tomto případě začne switch kontrolovat nejdříve buffer prvního portu, pak obsluhuje a po skončení obsluhy kontroluje další port (ne ten, na kterém předtím skončil). Takto pokračuje stále dokola. Tato metoda začne sice u prvního portu, ale pak už spravedlivě prochází jeden port za druhým. Pokud je switch chvíli neaktivní a pak opět začne prohledávat porty, začíná vždy portem, který následuje za tím posledním prohledávaným.+2) roundRobin == true - v tomto případě začne switch kontrolovat nejdříve buffer prvního portu, pak obsluhuje a po skončení obsluhy kontroluje další port (ne ten, na kterém předtím skončil). Takto pokračuje stále dokola. Tato metoda začne sice u prvního portu, ale pak už spravedlivě prochází jeden port za druhým. Pokud je switch chvíli neaktivní a pak opět začne prohledávat porty, začíná vždy portem, který následuje za tím posledním prohledaným při poslední aktivitě switche.
  
 ===Co je vaším úkolem?=== ===Co je vaším úkolem?===
  
-1) implementujte zadané moduly a do jednoho switche zapojte 8 PC stanic. U switche nastavte velikost bufferů na 3. Metoda Round-Robin bude true (pojede to tedy s tou efektivnější metodou. +1) implementujte zadané moduly a do jednoho switche zapojte 8 PC stanic. U switche nastavte velikost bufferů na 3. Metoda Round-Robin bude true (pojede to tedy s tou efektivnější metodou.\\ 
-2) u PC stanice navrhněte nebo použijte nějaký potvrzovací protokol. Stačí aby měl timeout (aby poznal, že se rámec prostě ztratil) a nějaké sekvenční číslo (aby poznal, které rámce se ztratily). Na základě těchto údajů bude každá PC stanice měřit svou průměrnou ztrátovost odeslaných rámců. (Pokud potřebujete do rámce přidat další položky, vytvořte nový typ rámce, který bude z DataMessage dědit.) +2) u PC stanice navrhněte nebo použijte nějaký potvrzovací protokol. Stačí aby měl timeout (aby poznal, že se rámec prostě ztratil) a nějaké sekvenční číslo (aby poznal, které rámce se ztratily). Na základě těchto údajů bude každá PC stanice měřit svou průměrnou ztrátovost odeslaných rámců. (Pokud potřebujete do rámce přidat další položky, přidejte je přímo do těla DataMessage.)\\ 
-3) u PC stanic najděte takové nastavení parametrů, aby začalo docházet ke ztrátám rámců. Až se vám to podaří zkuste vyvodit jakou závislost má velikost vstupních bufferů na celkovou průměrnou ztrátovost rámců (= součet průměrných ztrát všech PC stanic / 8). Výsledky slovně zhodnoťte, zkuste vytvořit přehledný graf a nezapomeťe uvést, pro jak velký vzorek dat jste měření provedli a jak dlouho jste měřili. +3) u PC stanic najděte takové nastavení parametrů, aby začalo docházet ke ztrátám rámců. Až se vám to podaří zkuste vyvodit jakou závislost má velikost vstupních bufferů na celkovou průměrnou ztrátovost rámců (= součet průměrných ztrát všech PC stanic / 8). Výsledky slovně zhodnoťte, zkuste vytvořit přehledný graf a nezapomeťe uvést, pro jak velký vzorek dat jste měření provedli a jak dlouho jste měřili. Upozornění: Velikost timeoutu je klíčová pro správné naměření statistik. Každý si tedy zvolí velikost timeoutu a svá měření vztáhne k této hodnotě. Ve zprávě uveďte Vaše zamyšlení jaký vliv má velikost timeoutu na Vaše výsledky.\\ 
-4) Pokuste se provést statistické porovnání chování switche v zatíženém provozu se zapnutou a vypnutou metodou Roun-Robin. +4) Pokuste se provést statistické porovnání chování switche v zatíženém provozu se zapnutou a vypnutou metodou Roun-Robin.\\ 
-5) Vypracujte stručnou přehlednou zprávu o vašich výsledcích. Stručnost a věcnost je vítána.+5) Vypracujte stručnou přehlednou zprávu o vašich výsledcích. Stručnost a věcnost je vítána.\\
  
 ===Slovo na závěr=== ===Slovo na závěr===
  
-Ǔlohu jsem záměrně definoval velice volně. Úkoly, které máte splnit se blíží požadavkům, kterým programátoři občas musí čelit. V úloze nejde ani tolik o to, jak skvěle a efektivně naprogramujete celou simulaci, ale jde především o to, abyste se dokázali dopracovat k rozumným požadovaným výsledkům. Představte si, že máte nový produkt s danými vlastnosmtmi (switch). Vaším úkolem je o této nové koncepci získat potřebné údaje. Proto je implementace PC stanic vícemeně na vás. Zadaveteli je jedno jak potvrzujete rámce mezi PC stanicemi, zadavetele zajímá výsledek jak se nové zařízení chová. Na vás je, abyste jej rozumně otestovali a dokázali interpretovat naměřené výsledky.+Ǔlohu jsem záměrně definoval velice volně. Úkoly, které máte splnit se blíží požadavkům, kterým programátoři občas musí čelit. V úloze nejde ani tolik o to, jak skvěle a efektivně naprogramujete celou simulaci, ale jde především o to, abyste se dokázali dopracovat k rozumným požadovaným výsledkům. Představte si, že máte nový produkt s danými vlastnosmtmi (switch). Vaším úkolem je o této nové koncepci získat potřebné údaje. Proto je implementace PC stanic vícemeně na vás. Zadaveteli je jednojak potvrzujete rámce mezi PC stanicemi, zadavetele zajímá výsledekjak se nové zařízení chová. Na vás je, abyste jej rozumně otestovali a dokázali interpretovat naměřené výsledky.
  
  • vyuka/cviceni/x36dsi/projekt2_nezobrazovat.1271278727.txt.gz
  • Last modified: 2010/04/14 20:58
  • by vikturek