May 1, 2025, Thursday, 120

SK Zadanie 5

From Łukasz Graczykowski

(Difference between revisions)
Jump to: navigation, search
Line 10: Line 10:
== Protokół UDP ==
== Protokół UDP ==
-
UDP (User datagram protocol) jest protokołem który ma następujące własności:
+
UDP (User datagram protocol) jest protokołem transmisji danych, który ma następujące własności:
* Jest bezstanowy (tj. do wysłania komunikatu nie trzeba nawiązywać połączenia)
* Jest bezstanowy (tj. do wysłania komunikatu nie trzeba nawiązywać połączenia)
* Pakietowy (wysyłamy pakiety)
* Pakietowy (wysyłamy pakiety)
Line 16: Line 16:
* Opcjonalnie: zawiera sumę kontrolną
* Opcjonalnie: zawiera sumę kontrolną
* Umożliwia wysyłanie danych do wielu użytkowników
* Umożliwia wysyłanie danych do wielu użytkowników
 +
 +
== Zastosowania UDP ==
 +
* '''Wysyłanie danych do wielu użytkowników'''
 +
Na przykład synchronizacja plików między wieloma serwerami w jednej sieci. Jeden z serwerów wysyła dane za pomocą pakietów broadcast (trafiają one do wszystkich systemów w sieci) przykładowe rozwiązanie (nie sprawdzałem!).
 +
 +
* '''Usługi zero-konfiguracji'''
 +
Do tej pory wszystkie usługi które pisaliśmy wymagały posiadania numeru IP serwera. Jest to całkiem uciążliwe w małych sieciach i sieciach ad-hoc.
 +
 +
Chcielimbyśmy by nasza sieć działała tak że po podłączeniu nasz system może wykryć wszystkie usługi widoczne w sieci.
 +
 +
Tego typu rozwiązania często implementuje się za pomocą UDP.
 +
 +
Przykładem może być usługa NetBIOS, będąca częścią systemu sieciowego systemu Microsoft Winows (zaimplementowanego w linuksie jako SAMBA).
 +
 +
* '''Sieci peer-to-peer'''
 +
Część sieci peer-to-peer korzysta z UDP zamiast z TCP ponieważ nie potrzebują obsługi błędów (same posiadają sumy kontrolne poszczególnych plików).
 +
 +
* '''Wysyłanie wielu małych pakietów'''
 +
Kiedy nasz system wysyla wiele krótkich wiadomości do wielu innych systemów, okazuje się że narzut na handshake TCP jest nie do dość wydajne.
 +
 +
Przykładowo protokół ustalania czasu (Network Time Protocol) korzysta z UDP do komunikacji z klientami.
 +
 +
* '''Rozwiązania wymagające niskich opóźnień'''
 +
W przypadku streamingu mediów (audio, video), czy oprogramowania gier sieciowych ważne jes to by opóźnienie przesłanych informacji było minimalne.

Revision as of 16:13, 25 November 2016

Contents

Zadania

Zadanie 1

Protokół UDP

UDP (User datagram protocol) jest protokołem transmisji danych, który ma następujące własności:

  • Jest bezstanowy (tj. do wysłania komunikatu nie trzeba nawiązywać połączenia)
  • Pakietowy (wysyłamy pakiety)
  • Nie zapewnia retransmisji danych
  • Opcjonalnie: zawiera sumę kontrolną
  • Umożliwia wysyłanie danych do wielu użytkowników

Zastosowania UDP

  • Wysyłanie danych do wielu użytkowników

Na przykład synchronizacja plików między wieloma serwerami w jednej sieci. Jeden z serwerów wysyła dane za pomocą pakietów broadcast (trafiają one do wszystkich systemów w sieci) przykładowe rozwiązanie (nie sprawdzałem!).

  • Usługi zero-konfiguracji

Do tej pory wszystkie usługi które pisaliśmy wymagały posiadania numeru IP serwera. Jest to całkiem uciążliwe w małych sieciach i sieciach ad-hoc.

Chcielimbyśmy by nasza sieć działała tak że po podłączeniu nasz system może wykryć wszystkie usługi widoczne w sieci.

Tego typu rozwiązania często implementuje się za pomocą UDP.

Przykładem może być usługa NetBIOS, będąca częścią systemu sieciowego systemu Microsoft Winows (zaimplementowanego w linuksie jako SAMBA).

  • Sieci peer-to-peer

Część sieci peer-to-peer korzysta z UDP zamiast z TCP ponieważ nie potrzebują obsługi błędów (same posiadają sumy kontrolne poszczególnych plików).

  • Wysyłanie wielu małych pakietów

Kiedy nasz system wysyla wiele krótkich wiadomości do wielu innych systemów, okazuje się że narzut na handshake TCP jest nie do dość wydajne.

Przykładowo protokół ustalania czasu (Network Time Protocol) korzysta z UDP do komunikacji z klientami.

  • Rozwiązania wymagające niskich opóźnień

W przypadku streamingu mediów (audio, video), czy oprogramowania gier sieciowych ważne jes to by opóźnienie przesłanych informacji było minimalne.