modified on 19 kwi 2011 at 11:41 ••• 12 220 views

Zorientowane połączenie komunikacyjne

Z MikroTik Wiki

Spis treści

Zorientowane połączenie komunikacyjne (TCP/IP)

Zorientowane połączenie komunikacyjne to tryb transmisji danych, w której musisz najpierw ustanowić połączenie ze zdalnym hostem lub serwerem, zanim można przesyłać dane. Podobnie jest z analogową siecią telefoniczną, gdzie trzeba było nawiązać połączenia, zanim było się w stanie komunikować z odbiorcą. Ustanowienie połączenia wymagało takich operacji, jak wybieranie numeru, odbieranie sygnału, czekanie na wywołanie sygnału itp.


Sesja TCP nawiązanie i zerwanie

Proces, w którym urządzenie nawiązuje połączenie transmisji zorientowanej sesji zdalnej nazywamy uzgodnieniem trójstronnym. W wyniku tych działań tworzy się układ kontroli przepływu i potwierdzenie niezawodności dostaw. TCP posiada kilka typów wiadomości wykorzystywanych w procesie ustanawiania połączenia i zakończenie (patrz Rysunek 2.1.).

Image:image2001.gif


Proces nawiązywania połączenia

  1. Maszyna A chcąc nawiązać połączenie wysyła pakiet zawierający segment TCP z ustawioną flagą SYN (Synchronize) do maszyny B wraz z numerem sekwencyji.
  2. Kiedy maszyna B odbierze wiadomość SYN odpowiada maszynie A pakietem zawierającym flagę SYN oraz flagę ACK (potwierdzenie) ustawiając nagłówek TCP na SYN-ACK.
  3. Kiedy maszyna A odbierze SYN-ACK odsyła z powrotem ACK.
  4. Maszyna B odbiera ACK i wtedy ten stan nazywamy nawiązaniem połączenia.

Proces zerwania połączenia

Po zakończeniu transmisji danych komputer chce zakończyć połączenie, proces rozwiązania połączenia jest inicjowany. W przeciwieństwie do ustanowienia połączenia TCP, który wykorzystuje trójstronne uzgadnienie, zakończenie połączenia używa cztery drogi. Połączenie jest przerywane, gdy obie strony są gotowe zamknięcia połączenia poprzez wysłanie flag FIN i otrzymaniem potwierdzenia.

  1. Host, który musi zakończyć połączenie, wysyła specjalny komunikat z flagą FIN, wskazującą, że zakończy się wysyłanie danych.
  2. Hosta B, który otrzymuje segment FIN, nie zakończy połączenia, ale wejdzie w "stan pasywny"(CLOSE_WAIT) i wysyła ACK dla FIN do hosta A. przyjmującego B wchodzi w stan LAST_ACK. W tym momencie host B nie będzie już obsługiwać dane z hosta, ale nadal przesyła dane do hosta A. Jeśli host B nie ma żadnych danych do przekazania będzie również w stanie zakończyć połączenie poprzez wysłanie segmentu FIN.
  3. Kiedy gospodarz przyjmuje ostatnie ACK od hosta B, wchodzi w stan oczekiwania i wysyła potwierdzenie ACK do hosta B.
  4. Host B dostaje ACK z hosta A i zamyka połączenie.

Segments transmission (windowing)

Teraz, gdy wiemy, w jaki sposób ustanowienia połączenia TCP musimy zrozumieć, jak transmisja danych jest zarządzana i utrzymywana. W komunikacji TCP/IP przesyłanych między hostami sieć jest obsługiwana przez protokół TCP.

Pomyślmy o tym, co się dzieje, gdy datagramy są wysyłane szybciej niż urządzenia odbierającego może przetworzyć. Odbiorą je w pamięci nazywa się bufora. Ale miejsce w buforze nie jest nieograniczone, gdy jego pojemność jest przekroczona odbiornik zaczyna odrzucać ramki. Wszystkie gubienia ramek muszą być retransmitowane ponownie co jest powodem niskiej wydajności transmisji.

Aby rozwiązać ten problem, TCP używa protokołu kontroli przepływu. Mechanizm windowjest używana do kontroli przepływu danych. Po ustanowieniu połączenia, odbiornik określa pole okna (zob. format nagłówka TCP, rys. 1.6.) w każdej ramce TCP. Rozmiar okna określa ilość odebranych danych, ile odbiornik jest gotowy do przechowywania w buforze. Rozmiar okna (w bajtach) jest przesłany wraz z potwierdzeniami do nadawcy. Tak więc rozmiar okna kontroli określa jak wiele informacji może być przenoszonych z jednego hosta na inny bez odbierania potwierdzenia. Nadawca wysyła tylko ilość danych określonych w rozmiarze okna, a następnie będzie czekać na potwierdzenia z aktualizacją rozmiaru okna.

Jeżeli aplikacja otrzymująca może przetwarzać dane tak szybko, jak przychodzą od nadawcy, odbiorca prześle pozytywną informację (zwiększającą rozmiar okna) z każdym potwierdzenia. Nadawca nadaje coraz szybciej i działa to do momentu, kiedy odbiornik otrzymując przychodzące dane ostatecznie zapełni bufor, wtedy odbiornik prześle potwierdzenie z rozmiarem okna zero. Nadawca, który otrzymuje rozmiar okna równy zero musi zatrzymać przekazywanie (wysyłanie) do czasu otrzymania pozytywnego okna (o wartości wyższej od zera). Proces ten przedstawiony jest na rysunku 2.2.

Image:image2002.gif

Hosta A zaczyna nadawać z rozmiarem okna 1000 bajtów, jeden 1000 bajtowa ramka została przesyłana. Odbiorca (host B) zwróci rozmiar okna, i zwiększy go do 2000bajtów. Hosta A otrzymuje ACK i przekazuje dwie ramki (1000 bajtów). Po tym odbiorca przesyła początkowy rozmiar okna równy 2500 bajtów. Teraz nadawca wysyła trzy paczki (dwie zawierające 1000 bajtów, a jedna zawierająca 500 bajtów) i czeka na potwierdzenie. Pierwsze trzy segmenty wypełniają bufor odbiorcy szybciej niż aplikacja może przetworzyć dane, więc przesyła ramkę o rozmiarze okna równym zero, co oznacza, że ​​konieczne jest oczekiwanie, zanim dalsze przekazywanie stanie się możliwe.

Rozmiar okna i jego szybkość zwiększania lub zmniejszania jest dostępna w różnych algorytmach TCP unikania przeciążeń, takich jak Reno, Vegas, Tahoe itp.

Sieć ethernet

CSMA/CD

System Ethernet składa się z trzech podstawowych elementów:

  • fizyczne nośniki, przenoszą sygnał pomiędzy urządzeniami sieci Ethernet,
  • medium system kontroli dostępu wbudowanych w każdym interfejs Ethernet, który pozwala wielu komputerom sprawiedliwie kontrolować dostęp do wspólnego kanału Ethernet,
  • ramki Ethernet, na którą składają się standardowe zestawy bitów używanych do przenoszenia danych w systemie.

Sieci Ethernet wykorzystuje Carrier Sense Multiple Access z detekcją kolizji (CSMA/CD) protokół przesyłu danych. To pomaga kontrolować i zarządzać dostępem do wspólnego pasma gdy dwa lub więcej urządzeń chce przesłać dane w tym samym czasie. CSMA/CD jest modyfikacją Carrier Sense Multiple Access. Carrier Sense Multiple Access z Collision Detection jest stosowany w celu zwiększenia wydajności poprzez zakończenie transmisji CSMA, jak tylko zostanie wykryta kolizja, zmniejszenie prawdopodobieństwa drugiej kolizji.

Zanim powiemy trochę więcej o CSMA/CD, musimy zrozumieć, co jest kolizja, domeny kolizjne i segmenty sieci. Kolizji jest wynikiem dwóch urządzeń, które w tej samej sieci Ethernet próbują transmitować dane w tym samym czasie. Sieć wykrywa "kolizje " dwóch pakietów przesyłanych i wyrzuca oba.

Jeśli mamy jedną dużą sieć i jest podzielona na mniejsze sieci to nazywamy to często segmentacji sieci. Ten podział odbywa się to przy użyciu urządzeń takich jak routery i przełączniki - każdy z portów przełącznika tworzy odrębny segment sieci, w wyniku czego posiada oddzielną domenę kolizyjną. Domena kolizji jest fizycznym segmentem sieci, gdzie pakiety danych "kolizji" trafiają na siebie, gdy są wysyłane na wspólnym medium. Dlatego hub zezwala na to, że tylko jeden komputer może jednocześnie odbierać dane w przeciwnym razie może wystąpić kolizja i dane zostaną utracone.

Image:image2003.gif

Hub (zwana także repeater) jest określony w warstwie fizycznej modelu OSI, ponieważ regeneruje tylko sygnał elektryczny i wysyła sygnał do każdego z portów. Obecnie huby nie dominują w sieciach LAN i są wyparte przez przełącznikami.

Carrier Sense - oznacza, że ​​nadajnik nasłuchuje przewoźnika (zakodowanego sygnału informacji) z innej stacji przed rozpoczęciem transmisji.

Multiple Access - oznacza, że ​​wiele stacji wysyłać i odbierać na jednym nośniku.

Collision Detection - obejmuje algorytmów sprawdzanie kolizji i ogłasza o kolizji z reakcji na zderzenie - sygnał Jam ".

Gdy nadawca jest gotowe do wysyłania danych, sprawdza, ciągłe, jeżeli medium jest zajęte. Jeśli ośrodek bezczynne nadawcy wysyła ramkę.

Spójrz na rysunek 2.4 poniżej, gdzie prosty przykład CSMA / CD jest wyjaśnione.

Image:image2004.gif
  1. Każdy komputer w segmencie, który chce wysłać dane "nasłuchuje", co dzieje się na nośnikach fizycznych (przewodowo) sprawdza, czy ktoś już nie wysyła danych.
  2. Host A i C w tym samym segmencie sieci widzą, że nikt inny nie wysyła i nie próbuje wysłać ramki.
  3. Host A i C nasłuchują w tym samym czasie, więc obaj przekazują ramki w tym samym czasie i następuje kolizja. Wynik kolizji określamy jako "noise" jest to zmiana napięcia sygnału w linii (drut).
  4. Host A i C wykrywają zderzenia ramek i wysłają sygnał "jam" do innych komputerów, aby powiedzieć by nie wysyłali danych w tej chwili. Zarówno Host A i C muszą retransmitować te dane, ale nie chcą wysyłać ramek jednocześnie po raz kolejny. Aby tego uniknąć, host A i C przyjmują losowy czas (ms) rozpoczęcia przed ponownym uruchomieniem procesu nasłuchiwania CSMA/CD.

Każdy komputer w sieci Ethernet działa niezależnie od wszystkich innych stacji w sieci.

Pół i pełen duplex w sieci ethernet

Standardów Ethernet taki jak Ethernet II i Ethernet 802.3 są standaryzowane przez IEEE (Instytut Inżynierów Elektryków i Elektroników) (eng. Institute of Electrical and Electronics Engineers). Różnica polega na tym, że Ethernet II nagłówek zawiera pola typu protokołu, podczas gdy w Ethernet 802.3 została zmieniona długość tego pola. Ethernet jest standardem metody dostępu o nazwie CSMA/CD. Ethernet obsługuje różne przepustowości transmisji danych Ethernet (10BaseT) – 10 Mbps, Fast Ethernet (100Base-TX) – 100 Mbps Gigabit Ethernet (1000Base-T) – 1000 Mbps poprzez różnego rodzaju media fizyczne (skrętke (miedź), kabel koncentryczny, światłowód). Dzisiaj kable Ethernet składają się z czterech skręconych par (8 przewodów). Na przykład, 10Base-T używa tylko jedną z tych par przewodów do pracy w obu kierunkach w trybie pół-duplex (half-duplex).

Pół-duplex dla transmisji danych oznacza, że ​​dane mogą być przesyłane w obu kierunkach między dwoma węzłami, ale tylko w jednym kierunku w tym samym czasie. Również w Gigabit Ethernet jest zdefiniowany (half-duplex) w tej specyfikacji, ale nie jest to stosowane w praktyce.

Pełen-duplex (Full-duplex) transmisji danych oznacza, że ​​dane mogą być przesyłane w obu kierunkach przy użyciu różnych skrętek dla każdego kierunku w tym samym czasie. Pełen Duplex Ethernet, gdzie kolizje nie są możliwe, ponieważ dane są wysyłane i odbierane przy użyciu różnych drutów, a każdy segment jest podłączona bezpośrednio do przełącznika. Ethernet w trybie pełnego dupleksu oferuje wydajność w obu kierunkach, na przykład, jeżeli komputer obsługuje Gigabit Ethernet (trybu pełen duplex) i adres bramki (routera) również obsługuje, wtedy między komputerem a bramą jest dostępne pasmo o przepustowości 2 Gb/s.

Przykład prostej komunikacji w sieci

Protokół ARP

Address Resolution Protocol (ARP) jest protokołem służącym do mapowania Internet Protocol (IP) hosta w sieci lokalnej na adres sprzętowy (adres MAC). Adres fizycznych/sprzętowy jest znany także jako Media Access Control lub jako adres MAC. Każde urządzenie sieciowe utrzymuje tabele ARP (cache), które zawierają listę adresów MAC i odpowiadający im adresy IP. Adres MAC jednoznacznie identyfikuje każdy interfejs sieciowy w sieci. Adresy IP są wykorzystywane do wyboru trasy do miejsca docelowego (w procesie routingu), ale ramka wracająca do interfejsu jest już kierowana przy użyciu adresu MAC.

Kiedy host w sieci lokalnej chce wysłać pakiet IP do innego hosta w tej samej sieci, musi ona szuka adresu MAC hosta docelowego w swojej pamięci podręcznej ARP. Jeżeli adres MAC hosta docelowego nie jest w tablicy ARP, to żądanie ARP jest wysyłane do urządzeń w sieci, aby odnaleźć odpowiedni adres IP. ARP wysyła wiadomości jako prośbę do wszystkich urządzeń w sieci LAN, zwracając się do urządzenia z określonego adresu IP do odpowiedź z jego adresem MAC. Urządzenie rozpoznaje adres IP, a jego własnych ARP zwraca odpowiedź z własnym adresem MAC. Rysunek 2.5 pokazuje, jak wygląda ARP dla adresu MAC w sieci lokalnej.

Image:image2005.gif

Polecenia wyświetlające obecną zawartość tablicy ARP w komputerach klasy PC (Linux, DOS) oraz w routerze MikroTik (polecenia mogą wykonywać tą samą czynność, ale ich składnia może lekko się różnić):

Dla windows i Unix: arp – a wyświetla listę adresów IP wraz z odpowiadającymi im adresami MAC

ip arp print – to samo co arp – a , ale wyświetla tablicę ARP na routerze MikroTik.


[Powrót do menu strony]