SCTP csomagok

Az SCTP protokoll adategységeit (PDU-k) SCTP csomagoknak nevezzük. Ha az SCTP protokoll IP fölött fut (az RFC2960-ban leírtak szerint), akkor egy SCTP csomag egy IP csomag hasznos adattartalmát képezi. Az SCTP csomagok egy közös fejlécből, valamint adatblokkokból (chunk) állnak. Több adatblokk legfeljebb a Path-MTU méretig egyetlen csomagba multiplexálható. Egy adatblokk vezérlési információkat és felhasználói adatokat is tartalmazhat.

attachment:pdu60.png

Több adatblokkot tartalmazó SCTP adategység

A közös fejléc

A közös fejléc 12 bájtot tartalmaz. Az SCTP a társítás azonosításához a TCP és UDP protokollokkal megegyező porthasználatot alkalmazza. Az átviteli hibák észlelése érdekében minden SCTP csomag egy 32-bites ellenőrzőösszeggel van védve (Adler-32 algoritmus), amely robusztusabb, mint a TCP és UDP 16-bites ellenőrzőösszege. Az érvénytelen ellenőrzőösszeggel rendelkező SCTP csomagokat a rendszer csendben figyelmen kívül hagyja. A közös fejléc egy ellenőrző címke (verification tag) nevű 32-bites értéket is tartalmaz. Az ellenőrző címke társításspecifikus, és a társítás kezdetekor megtörténik a végpontok közötti cseréje. Egy társítás tehát két címkeértéket használ. A címkékkel kapcsolatos részletes információk az SCTP állapotok részben találhatók.

Adatblokkok

Minden adatblokk egy adatblokk-típus mezővel kezdődik, amely a különböző adatblokk-típusokat különbözteti meg. Ezt követi egy adatblokk-specifikus flag, majd egy adatblokk-hossz mező, amelyre a különböző hosszúságú adatblokkok miatt van szükség. Az érték mező tartalmazza az adatblokk tényleges hasznos adattartalmát. Eddig 13 adatblokk-típus van normál használathoz definiálva. Ezek az alábbiakban láthatók. Az egyszerűség kedvéért ezek definícióját az RFC2960 dokumentumból másoltuk ki:

Azonosító       Adatblokk-típus
   -----           ----------
   0          - Hasznos adatok (DATA)
   1          - Inicializálás (INIT)
   2          - Inicializálás nyugtázása (INIT ACK)
   3          - Szelektív nyugtázás (SACK)
   4          - Heartbeat kérés (HEARTBEAT)
   5          - Heartbeat nyugtázás (HEARTBEAT ACK)
   6          - Megszakítás (ABORT)
   7          - Leállítás (SHUTDOWN)
   8          - Leállítás nyugtázása (SHUTDOWN ACK)
   9          - Műveleti hiba (ERROR)
   10         - Állapot cookie (COOKIE ECHO)
   11         - Cookie nyugtázás (COOKIE ACK)
   12         - Explicit torlódás-értesítési echo (ECNE) számára fenntartva
   13         - Csökkentett torlódási ablak (CWR) számára fenntartva
   14         - Leállítás befejezve (SHUTDOWN COMPLETE)
   15 - 62    - IETF által fenntartva
   63         - IETF által definiált adatblokk-bővítések
   64 - 126   - IETF által fenntartva
   127        - IETF által definiált adatblokk-bővítések
   128 - 190  - IETF által fenntartva
   191        - IETF által definiált adatblokk-bővítések
   192 - 254  - IETF által fenntartva
   255        - IETF által definiált adatblokk-bővítések