Každý SCTP paket se skládá ze společné hlavičky a informačních chunků.
Všechny chunky mají stejný formát a liší se pouze obsahem.
Na obrázku vpravo je chunk vyznačen zeleným pozadím.
Typ chunku
8bitová hodnota definovaná IETF pro rozlišení obsahu chunku.
Příznaky chunku
Osm bitů příznaků, jejichž definice závisí na typu chunku. Implicitní hodnota je nula.
Délka chunku
16bitová hodnota bez znaménka udává celkovou délku chunku v bytech, která zahrnuje pole typ, příznaky, délka a data chunku, ne však jeho zarovnání na násobek 4.
Data chunku
Libovolná data závislá na typu chunku.
Pokud se délka chunku nerovná násobku 4, pak protokol implicitně doplní (padding) chunk byty s kódem 0.
Definice volitelného parametru (s proměnnou délkou)
+
Bity 0 – 15
16 – 31
0
typ parametru
délka parametru
32
parametr hodnota
Každý typ chunku může definovat sadu parametrů, které jsou umístěny uvnitř pole hodnota chunku (a jejichž délka je zahrnuta v délce chunku).
Existují dva typy parametrů:
Pevné parametry – musí být vždy přítomné v uvedeném pořadí
Volitelné parametry proměnnou délkou – následují vždy až po pevných parametrech a může jich být libovolný počet v libovolném pořadí.
Pro volitelné parametry (které mají proměnnou délku) se pole typ parametru, délka parametru a hodnota parametru chovají jako příslušná pole v chunku.
Minimální velikost parametru 4 byty je použita, když je pole hodnota parametru prázdné a parametr obsahuje pouze pole typ parametru a délka parametru.
U – Pokud je nastaven, indikuje, že tato data jsou neřazený chunk a pořadové číslo není validní. Pokud je fragmentován neřazený chunk, pak každý fragment má nastaven tento příznak.
B – Pokud je nastaven, označuje počáteční fragment. Nefragmentované chunky mají tento příznak nastaven.
E – Pokud je nastaven, označuje koncový fragment. Nefragmentované chunk mají tento příznak nastaven.
délka chunku
Délka chunku má minimální hodnotu 17, protože data délky 0 nejsou dovolena.
Pevné parametry:
Transmission sequence number (TSN)
Pořadové číslo pro celý proud DATA (použitý pro sestavení fragmentovaných bloků).
Identifikátor proudu
Identifikátor proudu, do kterého tento datový chunk patří
Stream sequence number
Identifikátor pořadového čísla pro zprávu v tomto proudu. Pokud zpráva je fragmentovaná, pak tato hodnota se udržuje pro všechny fragmenty.
Payload protokol identifikátor
Identifikátor protokolu závislý na aplikaci. SCTP samotné toto pole nepoužívá ani nemodifikuje, může být však modifikováno zařízeními po trase. Hodnota 0 má význam žádný paylod protokol není zadán.
Navrhovaný přírůstek životní doby cookie (milisekund)
448
typ parametru = 11
délka parametru
480
Jméno počítače zakončená znakem NULL
512
typ parametru = 12
délka parametru
544
Typ adresy číslo 1
Typ adresy číslo 2
576
Typ adresy číslo 3
…
608
typ parametru = 32768
délka parametru
640
Explicitní oznámení o zahlcení (rezervováno)
typ chunku
Pro inicializaci (INIT) vždy 1.
příznaky chunku
Zatím není definován žádný příznak.
délka chunku
délka chunku, minimálně 20, když hodnota chunku je prázdná a žádné volitelné parametry nejsou použity
Pevné parametry mají stejný význam jako u INIT ACK:
Initiate tag
32bitové číslo bez znaménka, které je obsaženo ve společné hlavičce každého SCTP paketu v poli verifikační tag.
Oznámený kredit okna příjemce (a_rwnd)
Množství vyhrazeného místa ve vyrovnávací paměti pro tuto asociaci, které musí být vždy zachováno.
počet odchozích proudů
počet odchozích proudů (ve směru od odesilatele zprávy INIT), které bude možné používat v této asociaci. Nula není povolená hodnota a příjemce na ni musí odpovědět ABORT.
počet příchozích proudů
Neprovádí se žádné vyjednávání, musí být dostupných minimálně tolik proudů kolik bylo udáno.
Počáteční TSN
Libovolně zvolená počáteční hodnota transmission sequence number.
Volitelné parametry jsou vyznačeny střídáním zeleného a modrého pozadí:
typ parametru = 5
Tento parametr obsahuje všechny IPv4 adresy použité na odesílající straně. Pro multihomed spojení.
typ parametru = 6
Tento parametr obsahuje všechny IPv6 adresy použité na odesílající straně. Pro multihomed spojení.
typ parametru = 9
Tento parametr obsahuje navrhovaný přírůstek doby života, o který by příjemce měl zvětšit svoji implicitní hodnotu doby života cookie (v milisekundách).
typ parametru = 11
Tento parametr je jméno počítače (hostname) podle RFC 1123, část 2.1. Vyhodnocení (resolution) tohoto jména není součástí SCTP. Jméno musí končit znakem s kódem 0, který musí být zahrnut v délce parametru.
typ parametru = 12
Tento parametr obsahuje typy adres, které odesilatel podporuje (např. IPv4 = 5, IPv6 = 6, hostname = 11).
typ parametru = 32768
Tento parametr je rezervovaný pro podporu explicitních oznámení o zahlcení.
INIT ACK chunk obsahuje stejné hodnoty jako INIT, ale typ chunku je vždy 2.
Povinné parametry, pouze pro INIT ACK:
typ parametru = 7 (State Cookie)
State cookie obsahuje minimální informace pro vytvoření Transmission Control Block a je podepsána soukromým klíčem odesilatele. Formát cookie není specifikován.
délka chunku (minimální hodnotu je 8, pokud pole hodnota obsahuje pouze jednu chybu. Velikost je 4 bytů plus velikost všech příčin chyby.
Pevné parametry: žádné.
Volitelné parametry jsou vyznačeny střídáním zeleného a modrého pozadí:
typ parametru = 1
Tento parametr identifikuje, že odesilatel přijal nevalidní identifikátor proudu.
typ parametru = 2
Tento parametr indikuje, že odesilatel přijal INIT nebo INIT ACK chunk s chybějícími povinnými parametry.
typ parametru = 3
Tento parametr indikuje přijetí validního stavového cookie, který byl opožděn o zadaný počet mikrosekund.
typ parametru = 4
Tento parametr indikuje, že odesilatel nemá prostředky pro spojení; obvykle v ABORT chunku.
typ parametru = 5
Tento parametr identifikuje adresu, kterou odesilatel nemohl resolvovat (pravděpodobně protože nepodporuje příslušný typ adresy); obvykle v ABORT chunku.
typ parametru = 6
Tento parametr identifikuje chybný chunk, když nejvyšší dva bity typu chunku jsou 01 nebo 11.
typ parametru = 7
Tento parametr identifikuje, že povinný parametr v INIT nebo INIT ACK chunku má chybnou hodnotu.
typ parametru = 8
Tento parametr je určen odesilateli INIT ACK chunku, který obsahoval chybný parametr.
typ parametru = 9
Tento parametr indikuje, že DATA chunk neobsahoval uživatelská data; obvykle v ABORT chunku.
typ parametru = 10
Tento parametr indikuje, že odesilatel přijal COOKIE ECHO, když byl ve stavu SHUTDOWN-ACK-SENT.
↑CASTAGNOLI, G., S. Braeuer; M. Herrman. Optimization of Cyclic Redundancy-Check Codes with 24 and 32 Parity Bity. IEEE Transactions on Communications. 1993, s. 883. DOI10.1109/26.231911.Je zde použita šablona {{Cite journal}} označená jako k „pouze dočasnému použití“.. Castagnoli's et al. work on algorithmic selection of CRC polynomials
↑
Koopman, P. 32-Bit Cyclic Redundancy Codes Pro Internet Applications. The International Conference on Dependable Systems and Networks. 2002, s. 459. Dostupné online. DOI10.1109/DSN.2002.1028931.Je zde použita šablona {{Cite journal}} označená jako k „pouze dočasnému použití“.. Verifikace Castagnoliho výsledků úplným prohledáním a některé nové vhodné polynomy