Embedded Ethernet och hubbar/switchar
-
- Inlägg: 401
- Blev medlem: 6 maj 2004, 12:22:36
- Ort: Stockholm
Embedded Ethernet och hubbar/switchar
I böcker om embedded ethernet står det om halv och full duplex. Jag vet naturligtvis vad det är, men nog är väl alltid 10Base-T full duplex, eftersom den har separata rx och tx? 10Base2 och -5, kan ju inte bli annat än halv duplex, eftersom det är en koax. kabel som alla hänger i busstopologi.
Full-duplex borde väl i så fall aldrig kunna få kollisioner, eftersom 10Base-T alltid sänder från A till B. Det finns ju aldrig två sändare elektriskt (eller magnetiskt) hopkodpplade på samma tx! Det är ju heller inte busstopoligi, utan stjärntopoligi. Risken för kollisioner på 10Base-2 borde ju vara mycket högre, eftersom alla delar på samma lina!?
Vidare, om det nu kommer in två meddelanden nästan samtidigt till en hub, lagrar den det som kom in lite "försenat" i en FIFO-buffert, eller ignoreras den bara, så att den får göra en omsändning för det paketet? Ett paket kan ju maximalt vara 1500 bytes, så det är ju inte omöjligt att det finns ett litet (16k) FIFO-minne i kontrollerchipet, även i hubbar...
Så i ett 10-Basde-T nätverk borde det inte bli några kollisioner alls, eller?
Tacksam för svar som är annat än gissningar.
Mvh
Magnus
Full-duplex borde väl i så fall aldrig kunna få kollisioner, eftersom 10Base-T alltid sänder från A till B. Det finns ju aldrig två sändare elektriskt (eller magnetiskt) hopkodpplade på samma tx! Det är ju heller inte busstopoligi, utan stjärntopoligi. Risken för kollisioner på 10Base-2 borde ju vara mycket högre, eftersom alla delar på samma lina!?
Vidare, om det nu kommer in två meddelanden nästan samtidigt till en hub, lagrar den det som kom in lite "försenat" i en FIFO-buffert, eller ignoreras den bara, så att den får göra en omsändning för det paketet? Ett paket kan ju maximalt vara 1500 bytes, så det är ju inte omöjligt att det finns ett litet (16k) FIFO-minne i kontrollerchipet, även i hubbar...
Så i ett 10-Basde-T nätverk borde det inte bli några kollisioner alls, eller?
Tacksam för svar som är annat än gissningar.
Mvh
Magnus
10Base-T behöver inte alls alltid vara full duplex. Det är bara switchar som klarar detta. Detta för att hubbar fungerar som grenuttag, och det som kommer in på en port måste ju komma ut på en annan samtidigt, eller hur?
Om du porten det ska komma ut på redan får data från en annan klient, så uppstår en kollision. Redan där skiter det sig utan att man nödvändigtvis kör full duplex.
En switch däremot fungerar ju som så att den bara "kopplar ihop" två portar i taget. Således är det bara två klienter som pratar med varandra samtidigt, och då kan det inte uppstå någon kollision.
Så hubbat är precis samma sak som att köra bussnät, kollisionshärjat och instabilt.
En hub har ingen FIFO, utan om två skickar samtidigt så får man obönhörligen en kollision. Accessmetoden som används i vanligt trådbundet ethernet är CSMA/CD som står för carrier sense multiple access/collision detection. Detta innebär att klienter bara skickar utan att kolla om det är upptaget och upptäcker om en kollision har inträffat. Därefter väntar de en slumpvis vald tid och försöker igen.
Hade man däremot kört CSMA/AD som betyder collision avoidance så lyssnar klienterna innan de skickar och kollisioner undviks.
Hoppas att jag har klargjort en del
. Är förvånad över hur mycket jag kom ihåg från datorkommunikationskursen på gymnasiet.
Om du porten det ska komma ut på redan får data från en annan klient, så uppstår en kollision. Redan där skiter det sig utan att man nödvändigtvis kör full duplex.
En switch däremot fungerar ju som så att den bara "kopplar ihop" två portar i taget. Således är det bara två klienter som pratar med varandra samtidigt, och då kan det inte uppstå någon kollision.
Så hubbat är precis samma sak som att köra bussnät, kollisionshärjat och instabilt.
En hub har ingen FIFO, utan om två skickar samtidigt så får man obönhörligen en kollision. Accessmetoden som används i vanligt trådbundet ethernet är CSMA/CD som står för carrier sense multiple access/collision detection. Detta innebär att klienter bara skickar utan att kolla om det är upptaget och upptäcker om en kollision har inträffat. Därefter väntar de en slumpvis vald tid och försöker igen.
Hade man däremot kört CSMA/AD som betyder collision avoidance så lyssnar klienterna innan de skickar och kollisioner undviks.
Hoppas att jag har klargjort en del

-
- Inlägg: 401
- Blev medlem: 6 maj 2004, 12:22:36
- Ort: Stockholm
Det blir kollissioner i switchade nät. En switch behöver tex tid att lära sig var alla mac-adresser finns. Ifall mottagande host inte finns i switchens MAC-tabell så skickas det ut på samtliga portar likt ett broadcast. När sedan svarspaketet skickas tillbaka så noterar switchen på vilken port svaret kom in. Nästa paket går "rätt".
Likaså vid broadcast går paketen ut på samtliga portar. Annars faller ju iden med broadcast. Och nej, det är inte bara Microsoft burkar som skickar broadcast (som en del verkar tro!). Alla ethernet anslutna datorer måste skicka broadcast ibland.
Dessutom ligger inte datat i switchens MAC-addresstabell kvar hur länge som helst, det dör ut efter ett tag (2-10 minuter). Ett annat problem är att en switch inte kan lagra hur många macadresser som helst. I specen finns information om hur många den kan lagra. Enda sättet att minska broadcastdomänen är att placera in en router och på så sätt dela upp nätet.
Lite blandad info!
/Magnus
Likaså vid broadcast går paketen ut på samtliga portar. Annars faller ju iden med broadcast. Och nej, det är inte bara Microsoft burkar som skickar broadcast (som en del verkar tro!). Alla ethernet anslutna datorer måste skicka broadcast ibland.
Dessutom ligger inte datat i switchens MAC-addresstabell kvar hur länge som helst, det dör ut efter ett tag (2-10 minuter). Ett annat problem är att en switch inte kan lagra hur många macadresser som helst. I specen finns information om hur många den kan lagra. Enda sättet att minska broadcastdomänen är att placera in en router och på så sätt dela upp nätet.
Lite blandad info!

/Magnus
Nja, inte riktigt! Sätter man upp en NLB-kluster (Network Load Balancing) så är riktiga övervakningsbara hubbar att föredra!!Magnus Pihl skrev:Men eftersom switchar är så billiga nu för tiden (180kr) , så kanske hubbar är "utdöende"?
Ett NLB-kluster lastbalanserar genom att alla webbservrarnas nätverkskort har samma mac-adress och får således samma paket. Sedan räknar varje nod ut vilka paket som just den noden skall ta imot. Detta slutar helt fungera ifall noderna är kopplade via en switch eftersom den bara vill skicka ut data på en port.
/Magnus