Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Hlavičky TCP a UDP
- Obsah hlavičky TCP
- Zdrojový port (16 bitů)
- Identifikuje odesílající port.
- Cílový port (16 bitů)
- Identifikuje přijímací port.
- Sekvenční číslo (32 bitů)
- Má dvojí úlohu:
- Pokud je nastaven příznak SYN (1), pak je to počáteční sekvenční číslo. Sekvenční číslo skutečného prvního datového bajtu a potvrzené číslo v odpovídajícím ACK je pak toto sekvenční číslo plus 1.
- Pokud je příznak SYN nulový (0), pak se jedná o kumulované sekvenční číslo prvního datového bajtu tohoto segmentu pro aktuální relaci.
- Číslo potvrzení (32 bitů)
- Pokud je nastaven příznak ACK, pak je hodnota tohoto pole další sekvenční číslo, které odesílatel ACK očekává. Tím se potvrzuje přijetí všech předchozích bajtů (pokud existují). První ACK odeslaný každým koncem potvrzuje samotné počáteční sekvenční číslo druhého konce, ale žádná data.
- Posun dat (4 bity)
- Určuje velikost hlavičky TCP ve 32bitových slovech. Minimální velikost záhlaví je 5 slov a maximální 15 slov, což dává minimální velikost 20 bajtů a maximální 60 bajtů, což umožňuje až 40 bajtů možností v záhlaví. Toto pole má svůj název podle toho, že je zároveň offsetem od začátku segmentu TCP ke skutečným datům.
- Rezervováno (4 bity)
- Pro budoucí použití a mělo by být nastaveno na nulu.
- V letech 2003-2017 byl poslední bit (bit 103 záhlaví) definován jako příznak NS (Nonce Sum) experimentálním RFC 3540, ECN-nonce. ECN-nonce se nikdy nerozšířilo a RFC bylo přesunuto do stavu Historic[10].
- Příznaky (8 bitů)
- Obsahuje 8 1bitových příznaků (řídicích bitů):
- CWR (1 bit): Příznak CWR (Congestion window reduced) nastavuje vysílající hostitel, aby oznámil, že přijal segment TCP s nastaveným příznakem ECE a reagoval v mechanismu řízení zahlcení[a].
- ECE (1 bit): ECN-Echo má dvojí úlohu v závislosti na hodnotě příznaku SYN. Označuje:
- Pokud je příznak SYN nastaven (1), znamená to, že partner TCP je schopen ECN.
- Pokud je příznak SYN nulový (0), znamená to, že během normálního přenosu byl přijat paket s nastaveným příznakem Congestion Experienced (ECN=11) v záhlaví IP. a) Slouží jako indikace přetížení sítě (nebo hrozícího přetížení) pro odesílatele TCP.
- URG (1 bit): Označuje, že pole Urgentní ukazatel je významné.
- ACK (1 bit): Označuje, že pole potvrzení je významné. Všechny pakety po počátečním paketu SYN odeslaném klientem by měly mít tento příznak nastaven.
- PSH (1 bit): Funkce Push. Žádá o odeslání dat z vyrovnávací paměti přijímající aplikaci.
- RST (1 bit): Resetuje spojení.
- SYN (1 bit): Synchronizace sekvenčních čísel. Tento příznak by měl být nastaven pouze u prvního paketu odeslaného z každé strany. Některé další příznaky a pole mění význam v závislosti na tomto příznaku a některé platí pouze tehdy, když je nastaven, a jiné, když je nulový.
- FIN (1 bit): Poslední paket od odesílatele
- Velikost okna (16 bitů)
- Velikost přijímacího okna, která udává počet jednotek velikosti okna[b], které je odesílatel tohoto segmentu aktuálně ochoten přijmout[c] (viz § Řízení toku a § Škálování okna.)
- Kontrolní součet (16 bitů)
- Pole 16bitového kontrolního součtu se používá pro kontrolu chyb v záhlaví TCP, užitečném zatížení a pseudozáhlaví IP. Pseudozáhlaví se skládá ze zdrojové IP adresy, cílové IP adresy, čísla protokolu TCP (6) a délky záhlaví a užitečného zatížení TCP (v bajtech).
- Ukazatel naléhavosti (16 bitů)
- Pokud je nastaven příznak URG, pak je toto 16bitové pole offsetem od pořadového čísla označujícím poslední naléhavý datový bajt.
- Možnosti (proměnná 0-320 bitů, v jednotkách po 32 bitech)
- Délka tohoto pole je určena polem posunu dat. Volby mají až tři pole: Option-Kind (1 bajt), Option-Length (1 bajt), Option-Data (proměnná). Pole Option-Kind označuje typ volby a je jediným polem, které není volitelné. V závislosti na hodnotě Option-Kind mohou být nastavena další dvě pole. Option-Length udává celkovou délku volby a Option-Data obsahuje data spojená s volbou, pokud jsou k dispozici. Například byte Option-Kind 1 znamená, že se jedná o volbu bez operace, která se používá pouze pro vycpávku a za níž nenásledují pole Option-Length ani Option-Data. Bajt Option-Kind 0 označuje konec možností a je rovněž pouze jednobajtový. Bajt Option-Kind 2 označuje volbu Maximum Segment Size a následuje za ním bajt Option-Length určující délku pole MSS. Option-Length je celková délka daného pole možností, včetně polí Option-Kind a Option-Length. Takže zatímco hodnota MSS je obvykle vyjádřena dvěma bajty, Option-Length bude mít hodnotu 4. Jako příklad lze uvést, že opční pole MSS s hodnotou 0x05B4 je v sekci TCP options kódováno jako (0x02 0x04 0x05B4).
- Některé volby mohou být odeslány pouze při nastavení SYN; níže jsou označeny jako [SYN]. Druh volby a standardní délky jsou uvedeny jako (Druh volby, Délka volby).
- ---------------------------------------------------------------------------------------------------------------------------------------
- Obsah hlavičky UDP
- * Source port number
- This field identifies the sender's port, when used, and should be assumed to be the port to reply to if needed. If not used, it should be zero. If the source host is the client, the port number is likely to be an ephemeral port. If the source host is the server, the port number is likely to be a well-known port number from 0 to 1023.[4]
- * Destination port number
- This field identifies the receiver's port and is required. Similar to source port number, if the client is the destination host then the port number will likely be an ephemeral port number and if the destination host is the server then the port number will likely be a well-known port number.[4]
- Length
- This field specifies the length in bytes of the UDP header and UDP data. The minimum length is 8 bytes, the length of the header. The field size sets a theoretical limit of 65,535 bytes (8-byte header + 65,527 bytes of data) for a UDP datagram. However, the actual limit for the data length, which is imposed by the underlying IPv4 protocol, is 65,507 bytes (65,535 bytes − 8-byte UDP header − 20-byte IP header).[5]
- Using IPv6 jumbograms it is possible to have UDP datagrams of size greater than 65,535 bytes.[6] RFC 2675 specifies that the length field is set to zero if the length of the UDP header plus UDP data is greater than 65,535.
- Checksum
- The checksum field may be used for error-checking of the header and data. This field is optional in IPv4, and mandatory in most cases in IPv6.[7] The field carries all-zeros if unused.[8]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement