Tiny Transport Protocol

Z Wikipedii, wolnej encyklopedii

TinyTP (ang. Tiny Transport Protocol) – protokół transportowy w IrDA obsługujący kontrolę przepływu strumienia danych w kanale. TinyTP można określić jako prostszą wersję protokołu TCP. Działa on przy współpracy z innym protokołem niższej warstwy, mianowicie z IrLMP, który jest odpowiedzialny za nadzorowanie łącza i zapewnianie funkcji multipleksowania.

TinyTP jest opcjonalnym protokołem IrDA, jednakże jest tak ważny oraz tak szeroko implementowany, że generalnie jest postrzegany jako wymagany. I pomimo iż, IrLAP (protokół niższej warstwy implementowany obowiązkowo) zapewnia rzetelny i niezawodny transfer danych,

TinyTP jest wręcz wymagany, by zapewnić aplikacji poprawną od początku do końca transmisję i dostarczenie danych.

W TinyTP sterowanie strumieniem jest wysoko-poziomowe, natomiast w IrLAP niskopoziomowe. Ponadto TinyTP doskonale radzi sobie z problemem blokady kanałów obsługiwanych przez multiplekser IrLMP (LM-MUX). W przypadku IrLAP występowanie tych błędów jest możliwe mimo że protokół ten zapewnia wysokiej jakości sterowanie przepływem multipleksowanego kanału.

Stos protokołów IrDA przedstawia się następująco:

Stos protokołów IrDA
IrLMP-IAS (information access services) IrCOMM IrOBEX IrLAN
TinyTP
IrLMP-MUX (IrLMP multiplexer)
IrLAP (IrDA link access protocol)
Warstwa Fizyczna

Kolorem oznaczone zostały protokoły opcjonalne, pozostałe są implementowane obowiązkowo.

Funkcje[edytuj | edytuj kod]

Dwie podstawowe funkcje spełniane przez omawiany protokół to:

  • segmentacja i ponowne składanie danych – SAR (Segmentation and Reasembly),
  • sterowania strumieniem w kanale (z pośrednictwem LMP).

Sterowanie strumieniem w kanale jest bardzo ważna funkcją TinyTP. Między innymi protokół ten pozwala jednej ze stron przerwać nadawanie informacji bez żadnych negatywnych skutków w pracy drugiej. W przypadku zwykłego sterowania, przerwa w transmisji niekorzystnie wpływa na pracę drugiej strony.

Odnośnie do pierwszej funkcji: TinyTp umożliwia podział całego pakietu na mniejsze segmenty danych. Z segmentów tych, czyli z tzw. SDU (Service Data Unit), po udanej transmisji zostaje ponownie złożony w całość wysyłany pakiet. Maksymalna wielkość SDU jest określana przez protokół TinyTP/IrLMP w chwili rozpoczęcia pierwszego połączenia. Jedna jednostka SDU jest dopasowywana do jednej ramki IrLAP. Maksymalna wielkości SDU musi spełniać następujący warunek:

gdzie:

– maksymalna wielkość ramki IrLAP,
– wielkości nagłówków IrLMP i TinyTP (odpowiednio o rozmiarach 16 i 8 bitów).

Aby przeprowadzać sterowanie przepływem, TinyTP utrzymuje wartość okna odbiornika dla każdego z kanałów. O wartości okna decyduje rozmiar bufora TinyTP. Źródło może wysłać SDU, jeśli po czym od wartości odejmowane jest 1.

Dlatego, każda aplikacja może wysłać maksymalnie SDU bez otrzymania sygnału potwierdzającego. Gdy osiąga wartość 0 wysyłanie segmentów jest zatrzymywane. Następnie po otrzymaniu sygnału potwierdzającego, wartość jest uaktualniana i proces całej transmisji zaczyna się od początku.

Warto zaznaczyć też, że po inicjalizacji połączenia TinyTP dodaje do każdego pakietu 1 bajt nagłówka zawierającego informacje odnośnie do wielkości bufora i segmentacji.

Schemat przebiegu transmisji danych z wykorzystaniem protokołu TinyTP szkicowo przedstawiony jest na rysunku:

Rysunek 1. Transmisja danych z użyciem protokołu TinyTP.

Gdzie:

Parametr Opis Jednostka
okno odbiornika TinyTP [-]
minimalna długość cyklu przetwarzania IrLAP s
maksymalny rozmiar segmentu TinyTP bit
maksymalna długość ramki IrLAP bit
nagłówek IrLMP 16bitów
nagłówek TinyTP 8bitów
czas w którym TinyTP przetwarza otrzymane segmenty i przygotowuje sygnał potwierdzający s

Optymalizacja[edytuj | edytuj kod]

Obecnie pracuje się nad zoptymalizowaniem przepustowości kanału (ang. TinyTP throughput). Największy wpływ na ten parametr mają między innymi: okno odbiornika TinyTP: rozmiar ramki IrLAP: długość cyklu przetwarzania IrLAP – wielkość bufora TinyTP.

Poprzez odpowiedni dobór parametrów (ich optymalizację): ta sama wartość dla każdej aplikacji, można osiągnąć przepustowość 16Mbps.

Zależność przepustowości kanału przy różnych wielkościach okna odbiornika od BER (Bit Error Rate) przedstawiona jest na poniższym rysunku.

Rysunek 2. Zależność przepustowości kanału TinyTP od BER.

Natomiast poniższy rysunek przedstawia zależność przepustowości kanału przy różnych wielkościach okna odbiornika od długość cyklu przetwarzania IrLAP –

Rysunek 3. Zależność przepustowości kanału TinyTP od długość cyklu przetwarzania IrLAP –

Zobacz też[edytuj | edytuj kod]