Tiny Transport Protocol

Z testwiki
Wersja z dnia 20:39, 6 wrz 2020 autorstwa imported>PBbot (zamiana „odnośnie” na „odnośnie do”)
(różn.) ← poprzednia wersja | przejdź do aktualnej wersji (różn.) | następna wersja → (różn.)
Przejdź do nawigacji Przejdź do wyszukiwania

TinyTP (Szablon:Ang.) – 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

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 lttp musi spełniać następujący warunek:

lttpllapl'lmpl'ttp,

gdzie:

llap – maksymalna wielkość ramki IrLAP,
l'lmp, l'ttp – 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 w dla każdego z kanałów. O wartości okna w decyduje rozmiar bufora TinyTP. Źródło może wysłać SDU, jeśli w>0, po czym od wartości w odejmowane jest 1.

Dlatego, każda aplikacja może wysłać maksymalnie w SDU bez otrzymania sygnału potwierdzającego. Gdy w osiąga wartość 0 wysyłanie segmentów jest zatrzymywane. Następnie po otrzymaniu sygnału potwierdzającego, wartość w 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
w okno odbiornika TinyTP [-]
tta minimalna długość cyklu przetwarzania IrLAP s
lTTP maksymalny rozmiar segmentu TinyTP bit
llap maksymalna długość ramki IrLAP bit
l'lmp nagłówek IrLMP 16bitów
l'ttp nagłówek TinyTP 8bitów
Tta czas w którym TinyTP przetwarza otrzymane segmenty i przygotowuje sygnał potwierdzający s

Optymalizacja

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: w, rozmiar ramki IrLAP: llap, długość cyklu przetwarzania IrLAP – tta, wielkość bufora TinyTP.

Poprzez odpowiedni dobór parametrów (ich optymalizację): tta=104s, lttp=llapl'lmpl'ttp, ta sama wartość w 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 – tta.

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

Zobacz też