Protokół transmisji sterowania strumieniem
| SCTP (Stream Control Transmission Protocol) | |||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Rodzina: | Rodzina protokołów internetowych | ||||||||||||||||||||||||
| Obszar działania: | Niezawodny, zorientowany połączeniowo protokół transportowy | ||||||||||||||||||||||||
| |||||||||||||||||||||||||
| Normy: | |||||||||||||||||||||||||
Stream Transmission Control Protocol ( SCTP ) to niezawodny , zorientowana na połączenie protokół sieciowy . Należy do warstwy transportowej i opiera się na potencjalnie zawodnej, bezpołączeniowej usłudze kurierskiej .
Cechy i funkcje
Został zaproponowany jako nowy protokół transportowy przez Internet Engineering Task Force (IETF) i opublikowany w standardowym dokumencie RFC 2960 w październiku 2000 r. I zastąpiony przez RFC 4960 we wrześniu 2007 r . Wprowadzenie można znaleźć w dokumencie RFC 3286 . Odpowiedzialnym organem w IETF jest grupa robocza ds . Transportu sygnalizacyjnego lub w skrócie SIGTRAN .
Jako protokół transportowy, SCTP znajduje się na tym samym poziomie modelu odniesienia TCP / IP, co TCP i UDP ( warstwa 4 modelu OSI ).
SCTP implementuje koncepcję asocjacji : tutaj jest ustanawiane połączenie, w którym kilka strumieni danych komunikatów jest transportowanych z zachowaniem sekwencji (między sobą, ale potencjalnie nie z zachowaniem sekwencji). Ponadto indywidualne, na przykład pilne, datagramy mogą być wysyłane oddzielnie i poza kolejnością, co może „wyprzedzać” strumienie danych w kolejności.
SCTP zna również multistreaming i multihoming (jeden host z kilkoma prawidłowymi adresami IP ). Istnieją pulsy używane do aktywnego testowania rozbiórki połączenia.
W przeciwieństwie do TCP, SCTP jest odporny na zalewanie SYN , atak typu „odmowa usługi”, w którym półotwarte połączenia zużywają zasoby serwera. W tym celu używa tak zwanego czterokierunkowego uzgadniania . W takim przypadku serwer nie zapisuje żadnych informacji o statusie w przypadku żądania połączenia (pakiet INIT), ale wysyła je do klienta w postaci ciasteczka (pakiet INIT-ACK). Klient musi wstawić ten plik cookie w swojej odpowiedzi (pakiet COOKIE-ECHO) i jest rozpoznawany przez serwer jako upoważniony do nawiązania połączenia, co serwer potwierdza (pakiet COOKIE-ACK). Podobna procedura jest również możliwa w przypadku protokołu TCP, patrz Pliki cookie SYN .
Pierwotnie SCTP został zdefiniowany jako protokół transportowy, aby móc przesyłać komunikaty sygnalizacyjne ( SS7 ) z sieci telefonicznych za pośrednictwem sieci IP . Wiarygodność protokołu była szczególnie ważna podczas opracowywania. SCTP nadaje się również do innych aplikacji, ponieważ łączy w sobie zalety TCP i UDP. Ważną aplikacją opartą na SCTP jest Reliable Server Pooling (RSerPool).
SCTP używa algorytmów podobnych do TCP do kontroli przepływu i przeciążenia , więc zachowuje się neutralnie w sieci mieszanej (SCTP i TCP).
Język programowania Java oferuje własny interfejs programowania (API) dla SCTP od wersji 7 .
Specyfikacje
- RFC 2960 Stream Transmission Control Protocol (2000)
- RFC 4960 Stream Transmission Control Protocol (2007)
- RFC 6951 - enkapsulacja protokołu transmisji sterowania strumieniem UDP (2013)
linki internetowe
- Strona SCTP Michaela Tüxena
- Strona SCTP firmy Lode Coene
- Strona projektu SCTP Thomasa Dreibholza
- OpenSS7
- Zakończony transport sygnalizacji grupy roboczej (sigtran)
- Lepsza praca w sieci dzięki SCTP