Popis parametrů protokolu TCP v systémech Windows 2000 a Windows Server 2003

Překlady článku Překlady článku
ID článku: 224829 - Produkty, které se vztahují k tomuto článku.
Tento článek byl dříve publikován CZ224829
Důležité: Tento článek obsahuje informace o úpravě registru. Před úpravami je nutné registr zálohovat. Seznamte se také s postupem při obnovení registru v případě, že nastanou potíže. Další informace o zálohování, obnovení a úpravě registru najdete v následujícím článku znalostní báze Microsoft Knowledge Base:
256986 Popis registru systému Microsoft Windows
Rozbalit všechny záložky | Minimalizovat všechny záložky

Na této stránce

Souhrn

Tento článek popisuje následující parametry protokolu TCP v systémech Microsoft Windows 2000 a Microsoft Windows Server 2003:
  • velikost okna protokolu TCP,
  • podporované parametry protokolu TCP,
  • proměnná velikost okna protokolu TCP (Windows Scaling) – RFC 1323,
  • časové razítko – RFC 1323,
  • ochrana proti přetečení pořadového čísla paketu (Protection against Wrapped Sequence Numbers, PAWS),
  • výběrové potvrzování (Selective Acknowledgments, SACKs) – RFC 2018,
  • opakování přenosu protokolu TCP a rychlé opakování přenosu.
Tyto parametry protokolu TCP lze změnit nastavením příslušných položek v registru.

Další informace

Upozornění: Při nesprávných úpravách registru pomocí Editoru registru nebo jiným způsobem může dojít k vážným problémům. Tyto problémy mohou vyžadovat přeinstalaci operačního systému. Společnost Microsoft nezaručuje, že tyto problémy bude možné vyřešit. Úpravy registru provádíte na vlastní nebezpečí.

Velikost okna protokolu TCP

Velikost okna protokolu TCP představuje množství přijatých dat (v bajtech), která lze v průběhu připojení uložit do vyrovnávací paměti. Odesílatel může odeslat pouze toto množství dat před čekáním na potvrzení a aktualizaci okna od příjemce. Zásobník protokolu TCP/IP je navržen tak, aby se přizpůsobil většině prostředí, a používá větší velikost okna než v předchozích verzích.

Namísto použití pevně dané výchozí velikosti přijímaného okna používá protokol TCP velikost odpovídající sudému násobku maximální velikosti segmentu (Maximum Segment Size, MSS), která je vyjednána při navázání připojení. Přizpůsobení velikosti okna na straně příjemce na sudé násobky velikosti MSS zvyšuje poměr plně využitých segmentů protokolu TCP při shlukovém přenosu dat.

Velikost okna příjemce je určena následujícím způsobem:
  1. První požadavek na připojení odeslaný vzdálenému systému nabízí velikost okna příjemce 16 kB (16 384 bajtů).
  2. Po navázání připojení je velikost okna příjemce zaokrouhlena směrem nahoru na sudý násobek velikosti MSS.
  3. Velikost okna je nastavena na čtyřnásobek velikosti MSS (na 64 kB), pokud není použita proměnná velikost okna (RFC 1323).
Poznámka: Další informace naleznete v části Proměnná velikost okna protokolu TCP.

Pro připojení v sítích Ethernet je velikost okna obvykle nastavena na 17 520 bajtů (16 kB zaokrouhleno směrem nahoru na 12 segmentů o velikosti 1 460 bajtů). Velikost okna se může snížit, pokud je navázáno připojení k počítači, který podporuje rozšířené parametry hlavičky protokolu TCP, jako například Výběrové potvrzování (Selective Acknowledgments, SACKs) nebo Časové razítko. Tyto dva parametry zvětšují velikost hlavičky protokolu TCP na více než 20 bajtů, a proto v paketech zbývá méně místa pro data.

V předchozích verzích systému Windows NT byla velikost okna pro připojení v sítích Ethernet 8 760 bajtů neboli 6 segmentů o velikosti 1 460 bajtů.

Pokud chcete nastavit velikost okna příjemce na určitou hodnotu, přidejte v závislosti na použité verzi systému Windows do příslušného klíče registru hodnotu TcpWindowSize. Postupujte následujícím způsobem:
  1. Klepněte na tlačítko Start a na příkaz Spustit, zadejte příkaz Regedit a klepněte na tlačítko OK.
  2. Rozbalte příslušný podklíč registru odpovídající nainstalované verzi systému Windows:
    • V systému Windows 2000 rozbalte následující podklíč:
      HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\Interfaces
    • V systému Windows Server 2003 rozbalte následující podklíč:
      HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
  3. V nabídce Úpravy přejděte na příkaz Nový a pak klepněte na položku Hodnota DWORD.
  4. Do pole Nová hodnota zadejte hodnotu TcpWindowSize a potom stiskněte klávesu ENTER.
  5. V nabídce Úpravy klepněte na příkaz Změnit.
  6. Do pole Údaj hodnoty zadejte požadovanou velikost okna.

    Poznámka: Platný rozsah velikosti okna je 0 – 0x3FFFC000 šestnáctkově.
Tato hodnota není v registru ve výchozím nastavení zapsána. Pokud přidáte hodnotu TcpWindowSize, přepíše se výchozí algoritmus určující velikost okna, který byl popsán výše.

Poznámka: Hodnota TcpWindowSize může být také přidána do klíče Parameters a nastavena tak globálně pro všechna rozhraní.

Podporované parametry protokolu TCP

V minulosti byly parametry protokolu TCP používány především pro vyjednávání maximální velikosti segmentů. V systému Windows jsou parametry protokolu TCP používány pro proměnnou velikost okna (Windows Scaling), časové razítko a výběrové potvrzování (Selective Acknowledgment, SACK).

K dispozici jsou dva typy parametrů protokolu TCP:
  1. Parametr o velikosti jednoho oktetu, používaný pro indikaci určitého druhu parametru.
  2. Parametr TCP o velikosti více oktetů, který se skládá z indikace druhu parametru a řady oktetů daného parametru.
Následující seznam obsahuje druhy parametrů protokolu TCP, délku, název a popis.
Druh: 0
Délka: 1
Parametr: Konec seznamu parametrů
Popis: Tento parametr se používá, pokud je třeba doplnit počet bitů posledního parametru protokolu TCP.

Druh: 1
Délka: 1
Parametr: Žádná operace
Popis: Tento parametr se používá, pokud je třeba doplnit počet bitů a jeden paket obsahuje více parametrů protokolu TCP.

Druh: 2
Délka: 4
Parametr: Maximální velikost segmentu
Popis: Tento parametr označuje maximální velikost segmentu protokolu TCP, který lze odeslat v síti.

Druh: 3
Délka: 3
Parametr: Parametr proměnné velikosti okna protokolu TCP
Popis: Určuje násobek velikosti okna, pokud je používána velikost okna větší než 64 kB.

Druh: 8
Délka: 10
Parametr: Parametr časového razítka
Popis: Tento parametr se používá k výpočtu času doručení (Round Trip Time, RTT) přenášených paketů.

Druh: 4
Délka: 2
Parametr: Výběrové potvrzování (TCP SACK) je povoleno
Popis: Informuje ostatní hostitele, že je povoleno výběrové potvrzování.

Druh: 5
Délka: Proměnná
Parametr: Parametr výběrového potvrzování (TCP SACK)
Popis: Tento parametr používají hostitelé k určení, zda byly přijaty pakety mimo pořadí.

Proměnná velikost okna protokolu TCP

Pro efektivnější využití sítí s velkou šířkou pásma lze použít větší velikost okna protokolu TCP. Pole velikosti okna protokolu TCP řídí tok dat, jeho velikost je omezena na 2 bajty, velikost okna je tedy omezena na 65 535 bajtů.

Protože pole velikosti není možné zvětšit, je použit násobek velikosti okna. Parametr proměnné velikosti okna protokolu TCP je používán pro zvětšení největší velikosti okna z 65 535 bajtů až na 1 gigabajt.

Parametr proměnné velikosti okna je používán pouze při 3cestném potvrzování parametru TCP (3-way handshake). Hodnota násobku velikosti okna představuje počet bitů, o které se doleva posouvá 16bitové pole velikosti okna. Hodnota násobku velikosti okna může být od 0 (žádný posun) do 14.

Chcete-li určit skutečnou velikost okna, vynásobte velikost okna hodnotou 2^S, kde S je hodnota násobku.
Příklad:
Pokud je velikost okna 65 535 bajtů a hodnota násobku je 3,
potom skutečná velikost okna je = 65535 * 2^3,
tj. 524 280 bajtů.
Následující výpis programu Sledování sítě ukazuje použití parametru proměnné velikosti okna:
TCP: ....S., len:0, seq:725163-725163, ack:0, win:65535, src:1217 dst:139(NBT Session)
TCP: Zdrojový port = 0x04C1
TCP: Cílový port = NETBIOS Session Service
TCP: Pořadové číslo = 725163 (0xB10AB)
TCP: Číslo potvrzení = 0 (0x0)
TCP: Posun dat = 44 (0x2C)
TCP: Rezervováno = 0 (0x0000)
+ TCP: Příznaky = 0x02: ....S.
TCP: Okno = 65535 (0xFFFF)
TCP: Kontrolní součet = 0x8565
TCP: Ukazatel naléhavosti = 0 (0x0)
TCP: Parametry
+ TCP: Parametr maximální velikosti segmentu
TCP: Výplňový bit parametru = 1 (0x1)
TCP: Parametr proměnné velikosti okna protokolu TCP
TCP: Typ parametru = Proměnná velikost okna protokolu TCP
TCP: Délka parametru = 3 (0x3)
TCP: Násobek velikosti okna = 3 (0x3)

TCP: Výplňový bit parametru = 1 (0x1)
TCP: Výplňový bit parametru = 1 (0x1)
+ TCP: Parametr časových razítek
TCP: Výplňový bit parametru = 1 (0x1)
TCP: Výplňový bit parametru = 1 (0x1)
+ TCP: Parametr povolené výběrové potvrzování SACK
Je důležité upozornit, že velikost okna použitá ve skutečném 3cestném potvrzování se NEROVNÁ zvětšené velikosti okna. To odpovídá dokumentu RFC 1323, oddíl 2.2: Pole Okno v segmentu SYN (například [SYN] nebo [SYN,ACK]) není nikdy zvětšeno.

To znamená, že první datový paket odeslaný po 3cestném potvrzení má standardní velikost okna. I když je použita zvětšená velikosti okna, počáteční velikost okna má vždy hodnotu 65 535 bajtů. Poté je velikost okna vynásobena hodnotou určenou při 3cestném potvrzení. Následující tabulka obsahuje hranice násobku pro různé velikosti okna.

Zmenšit tuto tabulkuRozšířit tuto tabulku
NásobekHodnota násobkuPočáteční oknoZvětšená velikost okna
0165535 nebo méně65535 nebo méně
1265535131,070
2465535262,140
3865535524,280
416655351,048,560
532655352,097,120
664655354,194,240
7128655358,388,480
82566553516,776,960
95126553533,553,920
1010246553567,107,840
11204865535134,215,680
12409665535268,431,360
13819265535536,862,720
1416384655351,073,725,440

Například:

Pokud je velikost okna v registru zadaná jako 269 000 000 (269 MB) desítkově, násobek velikosti při 3cestném potvrzování je 13, protože násobek 12 by znamenal velikost okna pouze 268 431 360 bajtů (268 MB).

Počáteční velikost okna v tomto příkladu je určena následujícím způsobem:
65 535 bajtů s násobkem velikosti 13,
potom skutečná velikost okna je 65535 * 2^13,
tj. 536 862 720
Pokud je při zadání hodnoty velikosti okna do registru zadána hodnota větší než výchozí hodnota, pokusí se systém Windows najít násobek velikosti vyhovující zadané velikosti okna.

Hodnotu násobku velikosti okna a časové razítko určuje hodnota Tcp1323Opts v následujícím klíči registru:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters
  1. Na hlavním panelu klepněte na tlačítko Start, klepněte na příkaz Spustit a zadáním příkazu Regedit spusťte Editor registru.
  2. V Editoru registru klepněte na nabídku Úpravy, přejděte na příkaz Nový a pak klepněte na příkaz Hodnota DWORD.
  3. Do pole Nová hodnota zadejte řetězec Tcp1323Opts, stiskněte klávesu ENTER a pak v nabídce Úpravy klepněte na příkaz Změnit. Poznámka: Platné hodnoty jsou 0, 1, 2 nebo 3, kde:
0 znamená zakázat parametry podle dokumentu RFC 1323,
1 znamená povolit pouze proměnnou velikost okna,
2 znamená povolit pouze časová razítka,
3 znamená povolit oba parametry.
Tato položka registru řídí parametry časové razítko a proměnná velikost okna odpovídající dokumentu RFC 1323. Časové razítko a proměnná velikost okna jsou ve výchozím nastavení povoleny, ale lze je řídit pomocí uvedených příznakových bitů. Bit 0 řídí proměnnou velikost okna a bit 1 řídí časové razítko.

Časová razítka

Dříve používal zásobník protokolů TCP/IP pro určení času doručení (Round Trip Time, RTT) jeden vzorek na každé odeslané okno dat. Při odeslání paketu byl nastaven časovač, který byl zastaven při přijetí potvrzení (časovač opakování přenosu, retransmit timer). Pokud například byla velikost okna 64 240 bajtů (44 plných segmentů) v síti Ethernet, byl pouze jeden z každých 44 paketů použit k výpočtu času doručení. Při maximální velikosti okna 65 535 bajtů byla tato frekvence vzorkování dostatečná. Při použití proměnné velikosti okna a maximální velikosti okna 1 gigabajt již tato frekvence vzorkování RTT dostatečná není.

Parametr Časové razítko protokolu TCP lze nyní nastavit tak, aby byl použit na segmenty (data a ACK), které zásobník považuje za odpovídající k provedení operací, jako je výpočet času RTT, kontrola PAWS atd. Při použití těchto dat může být čas RTT přesně vypočítán i při použití velkých oken. Čas RTT je použit pro výpočet intervalů opakování přenosu. Přesné určení času RTT a intervalů opakování přenosu jsou nutné pro zajištění optimální průchodnosti sítě.

Pokud je při relaci protokolu TCP použito časové razítko, původce relace odešle tento parametr v prvním paketu 3cestného potvrzování protokolu TCP (paket SYN). V průběhu relace pak mohou tento parametr použít obě strany.

Parametr časového razítka protokolu TCP (TSopt):

Zmenšit tuto tabulkuRozšířit tuto tabulku
Druh = 8Délka = 10Hodnota TS (Tsval)Odpověď TS Echo (Tsecr)
1 bajt1 bajt4 bajty4 bajty

Pole parametru časového razítka lze zobrazit ve výpisu programu Sledování sítě po rozbalení pole parametrů protokolu TCP, jak je uvedeno níže:
TCP: Parametr časových razítek
TCP: Typ parametru = Časová razítka
TCP: Délka parametru = 10 (0xA)
TCP: Časové razítko = 2525186 (0x268802)
TCP: Časové razítko odpovědi = 1823192 (0x1BD1D8)

Ochrana proti přetečení pořadového čísla paketu (Protection against Wrapped Sequence Numbers, PAWS)

Velikost pole pořadového čísla paketu protokolu TCP je omezena na 32 bitů, a tak je omezen počet pořadových čísel paketů. Ve vysokorychlostních sítích a při rozsáhlých datových přenosech se může stát, že jsou všechna pořadová čísla paketů vyčerpána dříve, než je paket v síti doručen. Při odesílání dat v síti s přenosovou rychlostí 1 Gb/s mohou být pořadová čísla paketů vyčerpána již za 34 sekund. Pokud dojde ke zpoždění paketu, může se stát, že v síti existuje jiný paket se stejným pořadovým číslem. Aby takové konflikty nevznikaly, je jako doplněk k pořadovému číslu paketu používáno časové razítko TCP. Pakety pak mají aktuální a průběžné časové razítko. Starší paket má starší časové razítko a je zahozen.

Výběrové potvrzování (Selective Acknowledgments, SACKs)

Systém Windows nabízí podporu pro zvýšení výkonu známou jako Výběrové potvrzování (SACK). Možnost SACK je obzvláště důležitá pro připojení používající velká okna protokolu TCP. Před představením možnosti SACK mohl příjemce potvrdit pouze pořadové číslo paketu úplného přijatého datového proudu, neboli levou stranu přijímacího okna. S pomocí možnosti SACK může příjemce i nadále potvrzovat levou stranu přijímacího okna, ale dále může jednotlivě potvrzovat i jiné bloky přijatých dat. Možnost SACK používá následující parametry hlavičky protokolu TCP.

Možnost SACK používá dva typy parametrů protokolu TCP.

Parametr Výběrové potvrzování je povoleno (TCP SACK-Permitted) je používán pouze v paketu SYN (při navazování připojení protokolu TCP) pro indikaci, že lze používat výběrové potvrzování.

Druhý parametr, Výběrové potvrzování protokolu TCP, obsahuje potvrzení jednoho nebo více bloků dat. Datové bloky jsou označeny pomocí pořadového čísla prvního a posledního paketu bloku dat. To bývá také označováno jako levá a pravá strana bloku dat.

Druh 4 je parametr Výběrové potvrzování je povoleno, druh 5 je parametr Výběrové potvrzování protokolu TCP. Délka je délka tohoto parametru v bajtech.

Parametr Výběrové potvrzování je povoleno:

Zmenšit tuto tabulkuRozšířit tuto tabulku
Druh = 4Délka = 2
1 bajt1 bajt

Parametr Výběrové potvrzování protokolu TCP:

Zmenšit tuto tabulkuRozšířit tuto tabulku
Druh = 5Délka = proměnná
1 bajtLevá strana 1. bloku až pravá strana 1. bloku
...
Levá strana n. bloku až pravá strana n. bloku

Pokud je parametr Výběrové potvrzování povolen, lze vyřadit jeden paket nebo sadu paketů a příjemce může informovat odesílatele, které pakety byly přijaty a kde jsou mezi bloky dat mezery. Odesílatel poté může výběrově opakovaně odeslat pouze chybějící pakety bez nutnosti opakovaného odeslání bloků dat, které byly přijaty úspěšně. Parametr Výběrové potvrzování je řízen hodnotou registru SackOpts.

Použití výběrového potvrzování je určeno hodnotou SackOpts v následujícím klíči registru:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
  1. Na hlavním panelu klepněte na tlačítko Start, klepněte na příkaz Spustit a zadáním příkazu Regedit spusťte Editor registru.
  2. V programu Editor registru vyhledejte výše uvedený klíč, klepněte na něj a potom klepněte na příkaz Změnit v nabídce Úpravy.
  3. Do pole Údaj hodnoty zadejte požadovanou hodnotu.
Poznámka: Platné binární hodnoty jsou 0 nebo 1, výchozí hodnota je 1. Tento parametr určuje, zda je povoleno Výběrové potvrzování (Selective ACK, SACK – RFC 2018).

Následující výpis programu Sledování sítě obsahuje potvrzení všech dat až do pořadového čísla paketu 54857341 a dále data od paketu 54858789 do paketu 54861685. Data od paketu 54857341 do paketu 54858788 nebyla doručena.
TCP: .A...., len:0, seq:925104-925104, ack:54857341, win:32722, src:1242 dst:139
TCP: Zdrojový port = 0x04DA
TCP: Cílový port = NETBIOS Session Service
TCP: Pořadové číslo = 925104 (0xE1DB0)
TCP: Číslo potvrzení = 54857341 (0x3450E7D)
TCP: Posun dat = 44 (0x2C)
TCP: Rezervováno = 0 (0x0000)
+ TCP: Příznaky = 0x10: .A....
TCP: Okno = 32722 (0x7FD2)
TCP: Kontrolní součet = 0x4A72
TCP: Ukazatel naléhavosti = 0 (0x0)
TCP: Parametry
TCP: Výplňový bit parametru = 1 (0x1)
TCP: Výplňový bit parametru = 1 (0x1)
+ TCP: Parametr časových razítek
TCP: Výplňový bit parametru = 1 (0x1)
TCP: Výplňový bit parametru = 1 (0x1)
TCP: Parametr Výběrové potvrzování
TCP: Typ parametru = 0x05
TCP: Délka parametru = 10 (0xA)
TCP: Levá strana bloku = 54858789 (0x3451425)
TCP: Pravá strana bloku = 54861685 (0x3451F75)

Opakování přenosu protokolu TCP a rychlé opakování přenosu

Opakování přenosu protokolu TCP

Jako doplněk k běžnému opakování přenosu spouští protokol TCP časovač opakování přenosu při předání každého odchozího segmentu směrem k protokolu IP (Internet Protocol). Pokud není pro daný segment přijato potvrzení do vypršení časovače, je segment opakovaně odeslán.

Doba časovače opakování přenosu (Retransmission Timeout, RTO) je pomocí upřesněného času doručení (Smoothed Round Trip Time, SRTT) odpovídajícího dokumentu RFC 793 průběžně upravována tak, aby odpovídala charakteru připojení. Doba časovače je při každém opakovaném odeslání segmentu zdvojnásobena. Pomocí tohoto algoritmu optimalizuje protokol TCP přenosy dat s ohledem na běžné zpoždění způsobené typem připojení.

Rychlé opakování přenosu

Protokol TCP v některých případech opakuje přenos dat ještě před vypršením časovače opakování přenosu. Nejčastější příčinou je funkce známá jako rychlé opakování přenosu. Pokud příjemce, který podporuje rychlé opakování přenosu, obdrží data s pořadovým číslem paketu větším než očekávaným, je pravděpodobné, že některá data byla vyřazena. Aby o této události informoval odesílatele, odesílá příjemce okamžitě potvrzení s číslem paketu, který byl očekáván. Stejné potvrzení pak odešle pro každý další přijatý paket protokolu TCP. Jakmile odesílatel přijme množinu potvrzení se stejným pořadovým číslem paketu, je pravděpodobné, že došlo k jeho vyřazení. Odesílatel okamžitě opakovaně odešle segment, který příjemce očekává, bez čekání na vypršení časovače opakování přenosu. Tato optimalizace výrazně zvyšuje přenosovou rychlost v prostředí, kde často dochází k vyřazení paketů.

Ve výchozím nastavení systém Windows opakuje odeslání segmentu, pokud přijme třetí potvrzení se stejným pořadovým číslem paketu (jedno potvrzení a dva duplikáty) a pokud je přijaté pořadové číslo opožděno za aktuálním. Tato funkce je řízena hodnotou registru TcpMaxDupAcks.

Počet shodných potvrzení požadovaných pro rychlé opakování přenosu je určen hodnotou TcpMaxDupAcks v následujícím klíči registru:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
  1. Na hlavním panelu klepněte na tlačítko Start, klepněte na příkaz Spustit a zadáním příkazu Regedit spusťte Editor registru.
  2. V programu Editor registru vyhledejte výše uvedený klíč, klepněte na něj a potom klepněte na příkaz Změnit v nabídce Úpravy.
  3. Do pole Údaj hodnoty zadejte požadovanou hodnotu.
Poznámka: Platné hodnoty jsou 1-3, výchozí hodnota je 2.

Tento parametr určuje počet duplicitních potvrzení se stejným pořadovým číslem paketu před rychlým opakováním přenosu segmentu, který byl vyřazen během přenosu.

Vlastnosti

ID článku: 224829 - Poslední aktualizace: 25. srpna 2006 - Revize: 6.1
Informace v tomto článku jsou určeny pro produkt:
  • Microsoft Windows 2000 Server
  • Microsoft Windows 2000 Advanced Server
  • Microsoft Windows 2000 Professional Edition
  • Microsoft Windows 2000 Datacenter Server
  • Microsoft Windows Server 2003, Enterprise Edition (32-bit x86)
  • Microsoft Windows Server 2003, Standard Edition (32-bit x86)
  • Microsoft Windows Server 2003, Datacenter Edition (32-bit x86)
Klíčová slova: 
kbinfo kbenv kbnetwork KB224829

Dejte nám zpětnou vazbu

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com