Differences

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

Link to this comparison view

rl:labs:02:contents:01 [2013/10/09 21:35]
razvan.deaconescu [01. Switch vs. Hub]
rl:labs:02:contents:01 [2023/10/17 10:51] (current)
vlad_iulius.nastase [01. [10p] Implementare Hub]
Line 1: Line 1:
-==== 01. Switch vs. Hub ====+==== 01. [15p] Implementare ​Hub ====
  
-Vrem să urmărim diferențele între switch și hub. Vom folosi o topologie PacketTracer și vom simula transmiterea ​de pachete între stații.+Vom implementa in Python funcționalitatea ​de baza a unui Hub. Cum am vazut si in cadrul laboratorului anterior, pentru fiecare frame primit, hub-ul îl trimite pe toate interfețele (link sau port)Mai jos gasim o descriere in pseudocod:
  
-În topologia PacketTracer de la {{:rl:labs:02:contents:​rl_2013-2014_laborator-02_01.pkt|această adresă}} se află 2 rețele de câte 4 calculatoare;​ diferența între topologii este dispozitivul de interconectare:​ una este cu un **switch** iar cealaltă este cu un **hub**. Trimiteți pachete între oricare 2 calculatoare în cele 2 topologii pentru a vă asigura că există conectivitate.+<​code>​ 
 +while hub is powered on: 
 +    for each port: 
 +        if there is incoming data: 
 +            read the incoming data 
 +            for each other port: 
 +                send the data to that port 
 +</​code>​
  
-Intrați în modul "​Simulation"​ și trimiteți câte un pachet între 2 calculatoareFaceți acest lucru pentru ambele rețeleObservați ce pachete sunt generate în rețea în fiecare caz.+In acest exercițiu vom implementa ​un Hub in Python pornind de la un API simplu de primire si trimitere de frame-uri EthernetVom porni 
 +de la scheletul de la [[https://​gitlab.cs.pub.ro/​rl/​schelet-hub|urmatoarea adresa]]. Tot acolo, gasiti in **README.md** detalii despre rularea scheletului. Implementarea se va face in **hub.py**, in dreptul celor doua TODO-uri.
  
-Ce putețspune despre diferența dintre switch șhub? Dar despre domeniile de coliziune existente în fiecare caz?+<code Python>​ 
 +# data este de tip byte array 
 +interface, data, length = recv_from_any_link() 
 +send_to_link(interface,​ data, length) 
 +</​code>​ 
 + 
 +<​hidden>​ 
 +<code Python>​ 
 +def main(): 
 +    interfaces = range(0, wrapper.init() + 1) 
 + 
 +    while True: 
 +        interface, data, length = recv_from_any_link() 
 +         
 +        print("​Received frame of size {} on interface {}"​.format(length,​ interface)) 
 + 
 +        for in interfaces:​ 
 +            if != interface:​ 
 +                print("​Forwarding to interface {}"​.format(i)) 
 +                send_to_link(i,​ data, length) 
 +</​code>​ 
 +</​hidden>​
rl/labs/02/contents/01.1381343720.txt.gz · Last modified: 2013/10/09 21:35 by razvan.deaconescu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0