//Pytanie: "Omów algorytm i tablice rutingu datagramów IP"//


===== Definicja =====

Routing (trasowanie, ruting) to wyznaczanie trasy dla pakietu danych w sieci komputerowej, a następnie wysłanie go tą trasą.

{{:sieci_komputerowe:routing.jpg|:sieci_komputerowe:routing.jpg}}

===== Informacje wstępne =====

Tabele routingu są używane przez hosty TCP/IP do obsługi informacji o innych sieciach i hostach IP. Sieci i hosty są identyfikowane za pomocą adresu IP i maski podsieci. Tabele routingu zawierają niezbędne informacje dla hostów lokalnych, dotyczące sposobów komunikowania się ze zdalnymi sieciami i hostami.

Gdy komputer przygotowuje się do wysłania datagramu IP, do nagłówka IP zostaje dodany adres źródłowy IP tego komputera i adres docelowy IP adresata. Następnie docelowy adres IP jest sprawdzany przez komputer, porównywany z zawartością lokalnej tabeli routingu IP, po czym, w zależności od wyniku, wykonane zostają odpowiednie czynności. Komputer podejmuje jedną z trzech następujących akcji:

  * Przesyła datagram do warstwy protokołu nad protokołem IP lokalnego hosta.
  * Przesyła datagram przez jeden z podłączonych interfejsów sieciowych.
  * Odrzuca datagram.

Protokół IP przeszukuje tabelę routingu w poszukiwaniu trasy, która najlepiej pasuje do docelowego adresu IP. Trasy są ustawione w kolejności od najbardziej do najmniej szczegółowej, w następujący sposób:

  * Trasa pasująca do docelowego adresu IP (trasa hosta).
  * Trasa pasująca do identyfikatora sieci docelowego adresu IP (trasa sieciowa).
  * Trasa domyślna.

Jeśli odnalezienie pasującej trasy jest niemożliwe, datagram zostaje odrzucony przez protokół IP.

===== Tabela routingu IP =====

Każdy komputer, na którym uruchomiony jest protokół TCP/IP, podejmuje decyzje dotyczące routingu. Decyzje te są sterowane tabelą routingu IP. 

Poniżej przedstawiono przykładową tabelę routingu IP. Ten przykład dotyczy komputera  o następującej konfiguracji:

  * Adres IP: 10.0.0.169
  * Maska podsieci: 255.0.0.0
  * Brama domyślna: 10.0.0.1


| ^ Docelowy adres sieciowy ^ Maska sieci ^ Brama ^ Interfejs ^ [[Metryka]]((''Metryka routingu'' jest wartością używaną przez algorytmy routingu do określenia, która trasa jest lepsza. Brane są pod uwagę: szerokość pasma, opóźnienie, ilość przeskoków, koszt ścieżki, obciążenie, MTU, niezawodność, koszt komunikacji. Tylko najlepsze trasy przechowywane są w tablicach routingu, podczas gdy inne mogą być przechowywane w bazach danych. Jeśli router korzysta z mechanizmów równoważenia obciążenia (ang. load balancing) w tablicy routingu może wystąpić kilka najlepszych tras. Router będzie je wykorzystywał równolegle, rozpraszając obciążenie równomiernie pomiędzy trasami.))^ 
^ Trasa domyślna | 0.0.0.0 | 0.0.0.0 | 10.0.0.1 | 10.0.0.169 | 30 |
^ Sieć zwrotna | 127.0.0.0 | 255.0.0.0 | 127.0.0.1 | 127.0.0.1 | 1 | 
^ Sieć lokalna | 10.0.0.0 | 255.0.0.0 | 10.0.0.169 | 10.0.0.169 | 30 | 
^ Lokalny adres IP | 10.0.0.169 | 255.255.255.255 | 127.0.0.1 | 127.0.0.1 | 30 | 
^ Adresy multiemisji | 224.0.0.0 | 240.0.0.0 | 10.0.0.169 | 10.0.0.169 | 30 | 
^ Adres emisji ograniczonej | 255.255.255.255 | 255.255.255.255 | 10.0.0.169 | 10.0.0.169 | 1 | 

Każda trasa zajmuje w wyświetlanej tabeli jeden wiersz. Komputer poszukuje w tabeli routingu wpisu, który najlepiej pasuje do docelowego adresu IP.

Komputer używa trasy domyślnej, jeśli żadna inna trasa hosta lub trasa sieciowa nie pasuje do adresu docelowego zawartego w datagramie IP. Datagramy (dla których nie ma trasy pasującej ani jawnej trasy lokalnej) są zwykle przesyłane trasą domyślną na adres domyślnej bramy routera podsieci lokalnej. W poprzednim przykładzie datagram jest przesyłany trasą domyślną do routera o adresie bramy 10.0.0.1.

Ponieważ router odpowiadający bramie domyślnej zawiera informacje dotyczące identyfikatorów sieci innych podsieci IP należących do większej sieci złożonej TCP/IP, datagram będzie wysłany z niego do innych routerów, aż do chwili dostarczenia datagramu do routera IP podłączonego do określonego hosta docelowego.