Początek sieci Ethernet datuje się na rok 1970, gdy na hawajskim uniwersytecie została zbudowana sieć radiowa, nosząca nazwę ALOHANET. Jej działanie oparte było o fale radiowe i służyła do komunikowania się pomiędzy poszczególnymi wyspami. Wykorzystując ta ideę David Boggs i Robert Metcalfe z Xerox Palo Alto Research Center stworzyli nową technologię sieciową zwaną Ethernet, która działała w oparciu o przesył danych przez kabel koncentryczny.

Formalną specyfikację Ethernetu opracowało i opublikowało konsorcjum trzech firm: Intel, Xerox, oraz Digital Equipment (DEC). Sieć Ethernet została zaadaptowana przez Institute of Electrical and Electronics Engineers, który stworzył standard o nazwie IEEE 802.3. Od tej chwili całe wyposażenie ethernetowe tworzona jest zgodnie ze specyfikacją IEEE 802.3, nadal jednak używa się nazwy Ethernet.

Protokół zastosowany w sieci Ethernet powstawał przez ewolucję różnych metod transmisji, takich jak:

  • ALOHA - to najstarsza metoda, używana jest w radiowych sieciach rozległych. Polega na tym, że nadawca zaczyna nadawać w dowolnej chwili i po przesłaniu całej ramki, czeka aż odbiorca potwierdzi dotarcie informacji (jednoczesne nadawanie sygnału, spowoduje zniekształcanie danych oraz kolizje)
  • CSMA (ang. Carrier Sense Multiple Access) - wykorzystanie tego protokołu polega na tym, iż nadawca zanim wyśle ramkę, nasłuchuje czy dane łącze jest wolne. Funkcja ta nazywa się: funkcją rozpoznawania stanu kanału transmisyjnego (ang. carrier sense). W takim przypadku, kolizje występują jedynie wtedy, kiedy dwóch nadawców zacznie nadawać równocześnie, upewniwszy się uprzednio, że łącze jest wolne. Sygnały są transportowany między nimi w określonym odcinku czasowym
  • CSMA/CD (ang. Carrier Sense, Multiple Access with Collision Detection) - w przypadku tej metody po zaistnieniu kolizji (w sytuacji, gdy dwóch nadawców zacznie jednocześnie nadawać), nadajnik uzna, że transmisja musi zostać powtórzona - gdyż dane w łączu zostały zniekształcone przez sygnał nadany przez innego nadawcę. Jednak nie przerwie transmisji natychmiast, by zwolnić łącze, lecz będzie jeszcze nadawał przez jakiś okres, by zwiększyć prawdopodobieństwo detekcji kolizji przez pozostałych użytkowników

Norma IEEE 802.3

Standard Ethernet, stanowi pewną odmianę ostatniej z przedstawionych metod, obejmując następujące wytyczne (protokół 802.3):

1. Wszelkie stacje prowadzą nieustanny nasłuch stanu łącza, sprawdzając czy łącze jest wolne, zajęte bądź też IFG (ang. Interframe Gap) odstęp międzyramkowy (tzw. strefa buforowa) dla 10 Mbit równa jest 9,6us (jest to czas przetransmitowania 96 bitów).

2. Komputery mogą przeprowadzać nadawanie tylko wtedy, gdy łącze nie jest zajęte. W momencie zajętości kanału, urządzenia muszą poczekać na koniec transmisji oraz dodatkowo przeczekać cały odstęp międzyramkowy.

3. Jeśli w trakcie nadawania stacja odkryje kolizję, będzie nadawać jeszcze przez okres wymuszenia kolizji dla 10 Mbit, który równy jest 3,2us. Jeżeli kolizja będzie miała miejsce w trakcie nadawania preambuły, wtedy stacja będzie kontynuować nadawanie preambuły, następnie prześle jeszcze 32 bity identycznego sygnału. Po odkryciu kolizji, stacja dobierze długość odcinka czasowego Ti, w którym nie będzie próbowała nadawać.

4. Dla odcinka Ti, liczba "i" stanowi numer podejmowanej próby. Maksymalnie możliwych jest 16 prób, po tym czasie karta sieciowa zwróci błąd. Wielkość Ti wyznacza się ze wzoru:

Ti = Ri S

gdzie:

S - stanowi szerokość szczeliny czasu,

Ri - to losowa liczba pochodząca z przedziału <0,2n-1>, gdzie n = min( i, 10 ).

Czas Ti rośnie wraz z liczbą podjętych prób nadawania, musi on stanowić liczbę losową (która wyznaczana jest wg określonego algorytmu na podstawie adresu karty sieciowej), gdyż w innym przypadku stacje, które nadają sygnał ponawiałyby swe próby w takich samych odcinkach czasu, co spowodowałoby powstawanie kolejnych kolizji. Taki proces określany jest w fachowej literaturze anglojęzycznej terminem backoff.

5. Szczelina czasowa S (ang. slot time) to czas transmisji 512 bitów w przypadku sieci Ethernet 10 Mb/s i 100 Mb/s oraz 4096 bitów w przypadku sieci 1 Gb/s. Wynika to z dwóch elementów:

  • czasu, który potrzebny jest na dotarcie sygnału o maksymalnym rozmiarze z jednego końca sieci na drugi i z powrotem,
  • maksymalnego czasu, który potrzebny jest na rozwiązanie problemów wynikających z nastąpienia kolizji (detekcja kolizji oraz wysłanie sygnału w czasie wymuszania kolizji).

Budowa pakietów IEEE 802.3

Pakiet Ethernetowy zbudowany jest się z ramki, poprzedzonej preambułą oraz bajtem nazywanym znacznikiem początku ramki. Najmniejsza długość ramki to 64 bajty (po 8 bitów), preambuła natomiast złożona jest z 56 bitów, a SFD z ośmiu.

Preambuła - to naprzemienny ciąg bitów (jedynek i zer), informujący o fakcie nadchodzenia ramki. Preambuła zwykle nie jest włączana do wielkości samej ramki, będąc uznawana za fragment procesu komunikacyjnego.

SFD - (ang. Start of Frame Delimiter)- to bajt, który kończy preambułę i ma postać: '10101011'. Bajt ten zawsze zakończony jest dwoma jedynkami. Nie występuje on w standardzie Ethernet, będąc zastąpiony kolejnym bajtem preambuły.

Adresy - to 6 bajtowe liczby, będące sprzętowymi adresami komunikujących się ze sobą interfejsów sieciowych.

Długość - w tym polu określona jest ilość danych (w bajtach), które po nim nastąpią - wartość nie może być większa niż 1500. W przypadku standardu Ethernet wartość tego pola jest zawsze wyższa niż 1500 (dziesiętnie), określając numer protokołu wyższej warstwy, który będzie odbierał dane zaraz po skończeniu obróbki przez standard Ethernetowi.

Dane - jeżeli ilość danych będzie mniejsza niż 46 bajtów, wtedy wprowadzone zostanie tzw. uzupełnienie PAD (ang. padding) i dane będą dopełnione jedynkami, w taki sposób, by rozmiar ramki nie była mniejszy niż 512 bitów (ang. slot time) dla 10 Mbit..

FCS - (ang. Frame Check Sequence) - zawiera 4 kontrolne bajty, tzw. CRC (ang. Cyclic Redundancy Check), które wygenerowane zostały przez interfejs nadający oraz sprawdzane przez interfejs odbierający. Bajty te służą to sprawdzenie, czy dane nie uległy uszkodzeniu.

Wybrane pojęcia, występujące w standardzie IEEE 802.3.

DTE (ang. Data Terminal Equipment) - to urządzenie terminalowe, czyli inaczej stacja, która stanowi unikalne, zaadresowane urządzenie w sieci.

Urządzenie nadawczo-odbiorcze (ang. transceiver) - to urządzenie, umożliwiające stacji transmisje "z" i "do" któregoś z typowych mediów standardu IEEE 802.3. Ponadto ethernetowy transceiver gwarantuje izolację elektryczną między stacjami, wykrywając oraz reagując na kolizje.

MAU (ang. Medium Attachement Unit) czyli moduł dołączania medium to jedno z określeń IEEE używanych w odniesieniu do transceivera. Karta sieciowa ma zazwyczaj transceiver zintegrowany wewnątrz.

AUI (ang. Attachment Unit Interface) - to połączenie między transceiverem a kontrolerem, obecnie niemal niewystępujące. Był to pewien rodzaj kabla oraz gniazdek wykorzystywanych do komunikacji pomiędzy kartą sieciową a dołączanych do niej transceiverami. Dopiero po tym transceiver mógł być połączony z medium transmisyjnym (np.: koncentrykiem bądź skrętką)

Segment - to część okablowania danej sieci limitowana przez mosty (ang. bridge), przełączniki (ang. switch), routery, terminatory lub wzmacniaki. Najczęściej jest to połączenie pomiędzy dwoma komputerami, bądź koncentratorem a komputerem (w przypadku skrętki lub światłowodu), albo jeden odcinek koncentryka, który łączący wiele urządzeń.

Wzmacniak (ang. repeater) - stanowi elektryczne połączenie pomiędzy dwoma segmentami danej sieci. Do jego głównych zadań należy wzmacnianie i odnawianie sygnałów w celu powiększenia rozległości sieci. Wzmacniak nie wpływa na logiczną zawartość ramek.

Koncentrator (ang. hub, concentrator, switch) - umożliwia podłączenie (topologia gwiazdy) kilku urządzeń sieciowych, tworząc jeden segment. Koncentrator można potraktować jak połączenie kilku wzmacniaków (wzmacniak wieloportowy).

Technologie w sieci Ethernet

Full-duplex

Full-duplex pozwala dwóm stacjom na równoczesną wymianę informacji przez łącze typu punkt-do-punktu (ang. point-to-point). Stacje te muszą jednak mieć niezależne ścieżki odbioru i nadawania. Kabel koncentryczny nie spełnia niestety tego warunku, gdyż posiada tylko jedną ścieżkę, tak więc nie możliwa jest transmisja full-duplex przez koncentryk. Poza tym w trybie tym można połączyć tylko dwie stacje, których interfejsy sieciowe przygotowane są do pracy w tym trybie.

Zaletę trybu full-duplex stanowi brak ograniczeń, co do długości segmentów, które wynikają z wymagań czasowych (rozpiętość sieci, szczelina czasowa). W trybie full-duplex długość segmentu ograniczona jest jedynie przez parametry danego medium transmisyjnego, np.: w przypadku skrętki CAT5 charakterystyka elektryczna kabla ogranicza jego długość do 100 metrów. Jeżeli chodzi o transmisję full-duplex nie możliwe jest wykrywanie kolizji, co w pewnych przypadkach może nastręczać problemów. W sytuacji, gdy jedno urządzenie sieciowe ustawione jest do pracy w trybie full-duplex i zostanie podłączone do koncentratora, nastąpi zjawisko zwielokrotnionych kolizji, gdyż w przypadku takiego połączenia urządzenie to uznaje, że przydzielone zostało mu całe pasmo i nie przeprowadza kontroli, czy może rozpocząć nadawanie. Największe korzyści z użycia trybu full-duplex otrzymać można używając go do połączeń rdzenia sieci z przełącznikami oraz serwerów i przełączników.

MAC Control

Protokół ten obsługuje sytuacje dotyczące zagubienia ramki w sieci, jej odrzucenia, uszkodzenia bądź opóźnienia. Rozmiar takiej ramki jest minimalnym dopuszczalnym rozmiarem ramki i wynosi 64 bajty.

W trakcie transmisji full-duplex, MAC przenosi komendy PAUSE. Takie komendy mogą być odbierane tylko przez stacje, które skonfigurowane są do pracy w trybie full-duplex. Oprócz kodu, w ramce umieszczona jest również informacja dotycząca czasu, przez jaki ma być wstrzymane wysyłanie ramek do określonej stacji. W ten sposób realizowany jest mechanizm, który w czasie rzeczywistym steruje przepływem informacji.

Automatyczne negocjowanie

Protokół Auto-Negotiation używa do przesyłania danych systemu sygnalizacji zwanego FLP (ang. Fast Link Pulse). Sygnały te stanowią zmodyfikowaną wersję sygnałów NLP (ang. Normal Link Pulse), które wykorzystywane są do weryfikowania integralności łącz w standardzie 10-Base-T. Za wyjątkiem Gigabit Ethernet - systemu, który pracuje w na światłowodach, nie istnieją standardy auto-negocjacji IEEE określone dla światłowodów.

1000 Base-T

Protokół ten umożliwia transmisję o prędkości 1000 Mb/s poprzez skrętkę standardu Cat-5 długości 100 m. Została tu zdefiniowana również transmisja full-duplex (z wykorzystaniem 4 par), która umożliwia osiąganie przepustowości rzędu 2000 Mb/s.

W standardzie tym znaleźć można opcjonalny tryb pracy, określany potokiem ramek. Umożliwia to transmisję w określonym czasie nadawania więcej niż jednej ramki, co przyczynia się do poprawy osiągów systemu podczas przesyłania dużej liczby krótkich ramek.

Sygnały, kodowanie

Jeśli transceiver został uszkodzony i w ciągły sposób zaczyna nadawanie sygnału, to taką sytuację nazywa się jabberingiem. W takich przypadkach definiowaną rolą transceivera jest zablokowanie sygnału.

Sygnały płynące w 10 Mbps koncentryku, światłowodzie oraz skrętce używają dość prostego mechanizmu kodowania Manchester. Sygnały danych i zegara są połączone i w środku każdego bitu ma miejsce przeskok taktu. Jeżeli chodzi o zasady tego kodowania, przedstawiają się one następująco:

  • 0 - sygnał, który posiada wysoką wartość w pierwszej połowie okresu i niską w drugiej,
  • 1 - sygnał, który posiada niską wartość w pierwszej połowie okresu i wysoką w drugiej.

Także światłowodowe wersje 10 Mbps Ethernetu stosują kodowanie Manchester.

Sygnały w przypadku skrętki dla 10-Base-T posiadają poziomy napięcia od -2,5V do +2,5V, a dla standardu 100-Base-T od -1V do +1V. Dlatego sygnalizacja ta nie potrzebuje punktu zerowego, tak jak w koncentryku.

Kodowanie w przypadku 100 Mbps oparte jest na kodowaniu zwanym blokowym, np. blok danych o wielkości 4 bitów kodowany jest przy pomocy 5-bitowego symbolu (4B/5B). Dodatkowych symboli kodowych używa się do celów kontrolnych, np.: sygnalizacji startu ramki czy sygnalizacji błędów. Na skutek kodowania blokowego transmisja charakteryzuje się rzeczywistą szybkością na poziomie 125 Mbaudów. Dodatkowo symbole transmitowane są za pomocą systemu, który określa się mianem wielopoziomowego progu-3 (MTL-3), co oznacza, że podczas każdej zmiany sygnał będzie posiadał jeden z trzech poziomów. W trakcie każdego taktu zegara brak zmiany w poziomie sygnału oznacza się logicznym zerem, natomiast zmiana - logiczną jedynką.

Protokół Określania Adresów (ARP)

ARP (ang. Address Resolution Protokol) to protokół umożliwiający przekształcanie określonych adresów protokołów sieciowych (tutaj adresów IP) na 48-bitowe adresy MAC (Ethernetowe). W chwili, kiedy protokół warstwy Internetowej chce przesłać datagram do warstwy dostępowej sieci (a ściślej mówiąc warstwy łącza danych w modelu ISO/OSI), warstwa ta musi sprecyzować docelowy adres komputera, do którego dany datagram ma zostać przekazany. Jeśli adres ten nie jest jeszcze znany, rozesłane zostanie zapytanie rozgłoszeniowe (tzw. broadcast - z adresem docelowym równym FFFFFFFFFFFF) skierowany do wszystkich urządzeń znajdujących się w sieci lokalnej. Komputer cel (jeżeli istnieje w danej sieci lokalnej) rozpozna zawarty ramce adres protokołu IP i odpowie, podając swój MAC-adres. W tej chwili protokół ARP działający na komputerze źródłowym uzupełni swoją tablicę o adres komputera docelowego. Następnym razem, gdy nastąpi ponowienie transmisji do tego właśnie urządzenia, komputer źródłowy zaadresuje datagram już bezpośrednio, kierując go do określonej karty sieciowej (należy pamiętać, że adres Ethernetowy stanowi równocześnie niepowtarzalny adres danego urządzenia sieciowego - w tym przypadku karty sieciowej).