W artykule, który prezentujemy poniżej, zagłębimy się w fascynujący świat Trivial File Transfer Protocol. Zbadamy jego pochodzenie, ewolucję w czasie i jego dzisiejsze znaczenie. Od wielu aspektów po wpływ na społeczeństwo – zagłębimy się w każdy aspekt, aby przedstawić kompletną i wzbogacającą wizję. Niezależnie od tego, czy Trivial File Transfer Protocol jest postacią historyczną, zjawiskiem społecznym czy aktualnym tematem, ten artykuł dostarczy Ci informacji potrzebnych do zrozumienia jego znaczenia i wpływu na otaczający nas świat. Przygotuj się więc na zagłębienie się w ten ekscytujący temat i odkryj wszystko, co warto wiedzieć o Trivial File Transfer Protocol.
TFTP (ang. Trivial File Transfer Protocol) – względnie prosty protokół wykorzystywany do przesyłania plików.
Jest on implementowany na protokole UDP, chociaż jego definicja nie wyklucza stosowania innych protokołów pakietowych. Nie posiada większości funkcji protokołu FTP – np. nie może wyświetlać katalogów, ani uwierzytelniać użytkowników, a jego jedynym zadaniem jest odczytywanie plików z komputera zdalnego i transmitowanie ich do niego.
Przesył TFTP rozpoczyna się od żądania odczytu lub zapisu pliku, które żąda również połączenia. Plik wysyłany jest w blokach o długości od 0 do 512 bajtów. Pakiet danych mniejszy niż 512 bajtów wskazuje zakończenie przesyłu. Każdy z pakietów musi być potwierdzony przez pakiet potwierdzający, zanim będzie mógł zostać wysłany następny pakiet. Pakiet danych traktowany jest jako potwierdzenie, że komputer wysyłający otrzymał potwierdzenie poprzedniego pakietu danych. Jedynie pakiet końca transmisji nie wymaga potwierdzenia.
Jeżeli jakiś pakiet ulegnie zagubieniu, to u planowanego odbiorcy następuje przeterminowanie, a ten następnie żąda transmisji zagubionego pakietu. Pakiet retransmitowany w tym przypadku, to ostatni pakiet poprzedniej transmisji, więc nadawca musi zachować do retransmisji tylko jeden pakiet. Poprzednie potwierdzenia gwarantują, że pakiety uprzednio wysłane zostały otrzymane.
Każdemu z pakietów danych towarzyszy numer bloku. Numery bloków są kolejne i zaczynają się od jeden, z wyjątkiem pozytywnej odpowiedzi na żądanie zapisu, która jest pakietem potwierdzającym o numerze bloku zero. Zazwyczaj pakiet potwierdzający zawiera numer bloku potwierdzanego pakietu danych.
Poza jednym wyjątkiem, błąd sprawia zakończenie połączenia. Błąd, sygnalizowany przez pakiet błędu, nie jest potwierdzany ani retransmitowany. Dlatego też, kiedy pakiet ulegnie zagubieniu, do wykrycia zakończenia wykorzystywane jest przeterminowanie.
Jeżeli port źródłowy otrzymanego pakietu jest niewłaściwy, to błąd nie powoduje zakończenia; do hosta, z którego pochodzi pakiet, zostaje wysłany pakiet błędu.
Protokół TFTP obsługuje trzy tryby przesyłania, chociaż tylko dwa z nich są zazwyczaj wykorzystywane:
Protokół TFTP obsługuje pięć typów pakietów, z których każdy ma swój własny kod operacji. Pakiety RRQ i WRQ zawierają następujące pola:
Typy pakietów TFTP
Opcode | Typ pakietu |
---|---|
1 | Żądanie odczytu (RRQ) |
2 | Żądanie zapisu (WRQ) |
3 | Dane (DATA) |
4 | Potwierdzenie (ACK) |
5 | Błąd (ERROR) |
Specyfikacja RFC 2347 ↓ rozszerza pakiety RRQ i WRQ, aby hosty wysyłające i odbierające mogły negocjować dodatkowe opcje TFTP. Do potwierdzania żądania negocjacji opcji zgłoszonego przez klienta wykorzystywany jest nowego typu pakiet TFTP, potwierdzenie opcji (OACK). Specyfikacja RFC 2349 ↓ jeszcze bardziej rozszerza pakiety RRQ i WRQ, aby umożliwić hostom protokołu TFTP uzgadnianie interwałów przeterminowania oraz rozmiarów przesyłu.
Do wysyłania określonego pliku wykorzystywane są pakiety DATA; zawierają one następujące pola:
Potwierdzane są wszystkie pakiety, poza podwojonymi ACK-ami oraz pakietami DATA sygnalizującymi zakończenie, chyba że wystąpi przeterminowanie. Pakiet DATA potwierdza pakiet ACK poprzedniego pakietu DATA. Pakiety ACK lub ERROR potwierdzają pakiety WRQ i DATA, a pakiety DATA lub ERROR potwierdzają pakiety RRQ oraz ACK. Pakiet ACK o numerze bloku zero potwierdza WRQ. Pakiet ACK zawiera następujące pola:
Pakiet ERROR może być potwierdzeniem każdego innego typu pakietu. Zawiera on następujące pola:
Użytkownik może wydawać polecenia protokołu TFTP z konsoli polecenia. Zazwyczaj jednak są one wykorzystywane przez aplikacje opierające się na TFTP, takie jak zestawy poczty elektronicznej.
Demon TFTP (TFTPD) jest przykładem usługi opartej na protokole TFTP, wykorzystywanej przez system Windows 2000 oraz dystrybucje systemów Linux. Serwer usług instalacji zdalnej (PXE) wykorzystuje tę usługę do pobierania plików, które są mu potrzebne do rozpoczęcia procesu instalacji zdalnej.
Kody błędów TFTP
Kod błędu | Znaczenie |
---|---|
0 | Niezdefiniowany. Sprawdź komunikat o błędzie (jeżeli jest). |
1 | Nie znaleziono pliku. |
2 | Naruszenie dostępu. |
3 | Dysk pełny lub przekroczona alokacja. |
4 | Zabroniona operacja TFTP. |
5 | Nieznana tożsamość przesyłu. |
6 | Plik już istnieje. |
7 | Nie ma takiego użytkownika. |