Používá se metoda posuvného okna. Algoritmy bezztrátové komprese obrazu. Co je posuvné okno

Co se stalo Posuvné okno?

TCP neodesílá jeden paket při čekání na potvrzení před odesláním dalšího. Místo toho využívá princip posuvného okna. Tento princip umožňuje odeslat několik zpráv a teprve poté čekat na potvrzení.

TCP posuvné okno

Co je to transportní protokol?

Obrazně řečeno, TCP umístí okno do proudu dat čekajících na přenos a přenese všechna data, která spadají do okna. Po obdržení potvrzení, že všechna data byla doručena, TCP posune okno dále v proudu a odešle další zprávy, které do něj spadají. Díky práci s několika zprávami najednou je může TCP „vystavit“ současně síťový kanál a teprve potom čekat na potvrzení. Metoda posuvného okna výrazně zvyšuje výkon připojení a také efektivitu cyklů potvrzení zpráv a doručení.

Přenos zpráv a potvrzení o doručení pomocí schématu posuvných oken.

Vysílač a přijímač používají posuvné okno široké tři pakety. To znamená, že vysílač nejprve odešle tři pakety a teprve poté čeká na potvrzení. Po přijetí potvrzení o doručení třetího poslední balíček, vysílač může odeslat následující tři.

TCP reguluje šířku pásma sítě vyjednáváním s druhou stranou o určitých parametrech toku dat. Proces přizpůsobení navíc probíhá po celou dobu TCP spojení. Úprava spočívá zejména ve změně velikosti posuvného okna. Pokud síť není silně zatížena a pravděpodobnost kolize dat je minimální, může TCP zvětšit velikost posuvného okna. Současně se zvyšuje rychlost výstupu dat na kanál a připojení se stává efektivnější, protože sítí prochází více dat za stejnou dobu.

Pokud je naopak pravděpodobnost kolize dat vysoká, TCP zmenší velikost posuvného okna. Pokud je velikost posuvného okna považována za normální osm paketů síťový provoz, pak dovnitř nejhorší podmínky, při velkém zatížení internetu se jeho velikost může zmenšit na pět. Naopak, když je na síti málo dat, může se velikost okna zvětšit např. na 10-20 paketů.

Mějte na paměti, že diagram popsaný v předchozích odstavcích je poněkud zjednodušený. TCP ve skutečnosti určuje velikost okna v bajtech. To znamená, že výchozí velikost okna může být několik tisíc bajtů, spíše než osm, deset nebo dvanáct bajtů jako v předchozím příkladu. Modul TCP obvykle vysílá několik segmentů, než se posuvné okno zcela zaplní. Většina internetových systémů nastavuje okno ve výchozím nastavení na 4096 bajtů. Někdy je velikost okna 8192 nebo 16384 bajtů.

Transportní vrstva využívá služby poskytované síťovou vrstvou:

optimální výběr cesty a služby logického adresování. Tyto služby vrstvy 3 poskytují end-to-end spojení mezi odesílatelem a příjemcem. Tato kapitola popisuje, jak transportní vrstva reguluje tok informací přenášených od odesílatele k příjemci. Transportní vrstva má následující charakteristiky:

Datový tok transportní vrstvy je logické spojení mezi koncovými body sítě;

---------------- Mechanismus posuvného okna poskytuje end-to-end kontrolu a spolehlivost připojení, umožňuje sledovat sekvenci čísel paketů a oznámení;

。 ovládat různé síťová připojení v minutě čtvrté úroveň TCP a UDP a k přenosu informací do vyšších úrovní, tzv porty(přístav).

Stoh transportní vrstvyTCP/IP

Jak název napovídá, transportní vrstva zásobníku protokolu TCP/IP je zodpovědná za přenos dat mezi aplikacemi na přijímajícím zařízení a odesílajícím zařízení. Znalost toho, jak funguje transportní vrstva, je klíčem k hlubokému pochopení moderny síťových technologií. V následujících částech jsou podrobně popsány funkce a služby jedné z nejdůležitějších vrstev modelu TCP/IP – transportní vrstvy.

Úvod do zásobníku transportní vrstvyTCP/IP

K popisu čtvrté, dopravní úrovně, se často používá výraz kvalita služeb. UDP, podrobně popsaný níže, je protokol transportní vrstvy, který poskytuje přenosové služby bez připojení. Hlavním protokolem pracujícím na této vrstvě je však TCP, který využívá mechanismus navazování spojení. Hlavní funkce tohoto protokolu jsou transport a spolehlivá kontrola toku informací od odesílatele k příjemci. Mezi hlavní funkce transportní vrstvy patří poskytování end-to-end řízení přenosu, řízení toku pomocí posuvného okénkového mechanismu a zaručení spolehlivosti doručení prostřednictvím stanovení pořadových čísel a použití potvrzení.

Abyste pochopili, proč je potřeba spolehlivý přenos dat a řízení toku, představte si cizince, který mluví velmi rychle. Jeho posluchač bude nejspíš nucen čas od času se zeptat znovu jednotlivá slova(analog spolehlivosti přenosu) a žádá, aby mluvil pomaleji (analog toku).

Transportní vrstva poskytuje prostředky pro spolehlivý přenos dat z odesílajícího uzlu do přijímacího uzlu. Tato vrstva vytváří logické spojení mezi koncovými body sítě; Úkoly transportní vrstvy navíc zahrnují segmentaci a opětovné sestavení dat přenášených různými způsoby aplikací horní vrstvy do jednoho datového toku transportní vrstvy. Tento stream poskytuje přenos dat mezi koncovými body.

Datový tok transportní vrstvy je logické spojení mezi koncovými body v síti; Transportní vrstva také kontroluje, zda lze navázat spojení mezi aplikacemi. Na Obr. Obrázek 11.2 znázorňuje činnost transportní vrstvy.

Transportní vrstva poskytuje následující funkce:

    segmentace aplikačních dat vyšší úrovně;

    řízení interakcí end-to-end;

    přenos segmentů z jednoho koncového uzlu do druhého;

    řízení toku změnou velikosti okna;

    zajištění spolehlivosti přidělováním čísel a používáním potvrzení.

Pro transportní vrstvu externí síť může být reprezentováno jako určité médium (obvykle znázorněné jako cloud), přes které jsou přenášeny datové pakety od odesílatele k příjemci. Toto prostředí je zodpovědné za určení, která cesta je pro konkrétního příjemce optimální. Již v této fázi můžete pochopit, jakou důležitou roli hrají routery v procesu přenosu dat v síti.

Sada protokolů TCP/IP se skládá ze dvou samostatných protokolů: TCP a IP. Protokol IP je protokol vrstvy 3 bez připojení, který umožňuje efektivní přenos dat po síti. TCP je protokol vrstvy 4 a je to služba orientovaná na připojení, která zajišťuje řízení toku a tudíž vysoce spolehlivý přenos. Kombinace těchto dvou protokolů umožňuje řešit široký kruhúkoly přenosu dat. Zásobník protokolů TCP/IP se samozřejmě skládá z mnoha dalších protokolů, ale TCP a IP jsou hlavní protokoly. Mimochodem, všechny internetová síť je založen konkrétně na zásobníku protokolu TCP/IP.

Řízení toku

Když transportní vrstva TCP předává datové segmenty, může zaručit integritu dat. Jednou z metod k dosažení tohoto cíle je řízení toku (tokřízení) , což zabraňuje problémům spojeným se situacemi, kdy uzel na jednom konci spojení přeteče vyrovnávací paměti stanice na druhém konci. Přetečení způsobuje vážné problémy, protože může vést ke ztrátě dat.

Služby transportní vrstvy umožňují uživatelům vyžadovat spolehlivý přenos dat mezi odesílajícími a přijímacími uzly. Pro zajištění spolehlivého přenosu dat mezi systémy komunikačních partnerů se používá spojově orientovaný mechanismus. Spolehlivá přeprava zajišťuje následující funkce:

    zajišťuje, že odesílatel obdrží potvrzení o doručení každého segmentu;

    zajišťuje opakovaný přenos všech segmentů, u kterých nebylo obdrženo potvrzení o doručení;

    umožňuje segmenty seřadit na místě určení ve správném pořadí;

    zabraňuje přetížení sítě a zajišťuje řízení přetížení, pokud k němu dojde.

Instalace, správa a ukončení relace

V referenčním modelu OSI může více aplikací současně používat jediné přenosové připojení. Funkce přenosu dat je implementována segment po segmentu. To znamená, že různé aplikace mohou přenášet data na principu FIFO (first-in, first-out). Segmenty mohou být určeny jednomu nebo různým příjemcům. Toto pravidlo se někdy nazývá mechanismem multiplexování dialogu aplikace nejvyšší úrovně (obrázek 3).

Rýže. 3. Různé aplikace na nejvyšší vrstvě modelu OSI používají transportní vrstvu

Jednou z hlavních funkcí transportní vrstvy je organizovat komunikační relaci za účelem navázání spojení se systémem peer-to-peer. Aplikace odesílatele a příjemce informují o zahájení přenosu dat OS o inicializaci připojení. Jedna ze stanic zahájí spojení, které musí být přijato druhou stanicí. Moduly operačního systému odpovědné za provoz protokolů mezi sebou komunikují odesláním speciální zprávy a kontrolují možnost přenosu dat a připravenost koncových uzlů.

Po dokončení procesu synchronizace a navázání spojení začne přenos dat. Během procesu přenosu si obě stanice průběžně vyměňují zprávy, aby zajistily správnost přijatých dat. Na Obr. Obrázek 4 znázorňuje typické spojení mezi odesílatelem a přijímačem. První zpráva požadavku je nezbytná pro synchronizaci koncových uzlů. Druhý a třetí jsou potřebné k potvrzení počátečního požadavku na synchronizaci; také synchronizují parametry připojení v opačném směru. Poslední zpráva je potvrzení(acknowledgement), který slouží k informování příjemce, že obě strany jsou připraveny navázat spojení. Po navázání spojení začne přenos dat.

Rýže. 4. Proces navázání spojení s peer-to-peer systémem

Během přenosu dat může dojít k přetížení ze dvou důvodů. První je, že rychlý počítač dokáže generovat datový proud rychleji, než jej dokáže přenést síť. Druhý nastává v situaci, kdy mnoho počítačů současně potřebuje odeslat data jednomu příjemci. V tomto případě může dojít k přetížení příjemce, ačkoli každý odesílatel samostatně nezpůsobuje problémy.

V případech, kdy datagramy dorazí příliš rychle na to, aby je koncový uzel nebo brána zpracovala, jsou dočasně uloženy v paměti. Pokud se datový tok nesníží, bude koncový uzel nebo brána, případně vyčerpávající své paměťové zdroje, nuceny zahodit všechny následující datagramy.

Aby se zabránilo ztrátě dat, funkce přenosu může odesílateli odeslat informační zprávu: „Zařízení není připraveno k příjmu. Tento indikátor, který funguje jako červený semafor, signalizuje odesílateli, aby přestal odesílat data. Jakmile je přijímač schopen znovu zpracovat další data, odešle zprávu indikátoru transportu „zařízení připraveno přijímat data“, což je podobné zelenému semaforu. Po obdržení takového indikátoru může odesílatel obnovit vysílání segmentů.

Po ukončení přenosu dat odešle odesílatel příjemci signál, který indikuje dokončení přenosu. Příjemce potvrdí, že spojení je přerušeno, načež je spojení mezi stroji dokončeno.

Třífázové podání ruky

Protokol TCP používá algoritmus orientovaný na spojení, takže před přenosem dat musí být vytvořeno logické spojení. Aby bylo možné navázat síťové spojení mezi dvěma pracovními stanicemi, je nutné synchronizovat jejich počáteční pořadová čísla (ISN - Initial Sequence Number). Synchronizace je dosaženo výměnou specializovaných segmentů, které obsahují SYN (zkratka pro ssynchronizace) a čísla ISN. Moduly, které nesou bit SYN, se také někdy nazývají zprávy SYN. Chcete-li vyřešit problém s vytvořením, musíte vybrat vhodný mechanismus pro výběr čísel ISN vytvořením počátečního připojení pro výměnu čísel ISN.

Synchronizace vyžaduje, aby každá strana odeslala své počáteční ISN a obdržela potvrzení ve formě ACK (zkratka pro potvrzení) od jiného účastníka připojení. Kromě toho musí každá strana získat ISN číslo komunikačního partnera a odeslat o něm ACK upozornění. Sekvence výměny zpráv mezi dvěma síťovými uzly, A a B, je popsána níže.

Tato zpráva se nazývá třífázové potvrzení (tři- cesta podání ruky) (obr. 5).

Rýže. 5. Třífázové podání ruky

1. AB SYN. Moje počáteční sériové číslo ISN je X, číslo ACK je 0, bit SYN je nastaven, ale bit ACK není nastaven.

2. BACK. Vaše pořadové číslo je X+1, moje ISN číslo je Y, bity SYN a ACK jsou nastaveny.

3.AZADNÍ. Vaše pořadové číslo je Y+1, moje pořadové číslo je X+1, bit ACK je nastaven a bit SYN není nastaven.

Třícestný handshaking je asynchronní spojovací mechanismus, který je nezbytný pro synchronizaci pořadových čísel, protože taková čísla nezávisí na nějakém virtuálním globálním čítači v síti. Proto se v síti s protokolem TCP používají různé mechanismy pro přidělování čísel ISN. Jedním z nich je třístupňové podání ruky. Tento mechanismus však není určen pouze k získání čísla ISN. Pomocí něj si koncová zařízení vyměňují informace o velikosti okna přenosu dat, parametru MTU a zpoždění přenosu dat v síti. Příjemce prvního SYN nemá žádné prostředky k určení, zda přijatý segment byl odloženou starou zprávou nebo novou zprávou, dokud není přijata další zpráva; jedinou výjimkou je, pokud příjemce ukládá poslední pořadové číslo použité na spojení (což není vždy možné). Příjemce tedy musí požádat odesílatele o ověření takové SYN zprávy.

Mechanismus posuvného okna

V nejobecnější formě spolehlivého spojově orientovaného předávání dat musí být datové pakety doručeny na přijímací konec ve stejném pořadí, v jakém byly přeneseny. Protokol signalizuje selhání, pokud dojde ke ztrátě, poškození, duplikaci nebo přijetí datových paketů v nesprávném pořadí. Nejjednodušším řešením tohoto problému je použití potvrzení příjemců o přijetí každého datového segmentu.

Pokud je však odesílatel nucen po odeslání každého segmentu čekat na potvrzení, jak je znázorněno na Obr. 6, pak se přenosová rychlost tímto způsobem výrazně sníží. Vzhledem k tomu, že od okamžiku, kdy odesílatel ukončí odesílání datového paketu, do dokončení zpracování jakéhokoli přijatého potvrzení uplyne určitý časový interval, lze jej použít k přenosu další části dat. Je volán počet datových paketů, které mohou být odeslány odesílateli bez přijetí potvrzení okno(okno).

V TCP protokol používají se tzv. čekající potvrzení; obsahují číslo související s očekávaným oktetem jako další. Mechanismus posuvného okna je místo, kde se velikosti oken vyjednávají dynamicky během relace TCP. Mechanismus posuvného okna je mechanismus řízení toku, který vyžaduje, aby příjemce přijal potvrzení od odesílatele po přenosu určitého množství dat.

Rýže. 6. Velikost okna je jedna

K řízení toku dat mezi dvěma zařízeními používá TCP mechanismus řízení toku(mechanismus řízení toku). Příjemce hlásí odesílateli, že data obdržel; přijetí takového upozornění vám umožní nastavit velikost okna. Okno specifikuje počet oktetů na základě aktuálního potvrzovacího čísla, které je TCP zařízení schopno přijmout v daný čas.

Například při velikosti okna 3 může odesílatel odeslat příjemci tři oktety. Poté musí počkat na potvrzení od příjemce. Pokud příjemce obdržel tři oktety, musí o tom odeslat potvrzení odesílateli oktetů. Odesílatel pak může odeslat další tři oktety. Pokud příjemce neobdrží tři oktety, například kvůli přetečení vyrovnávací paměti, pak nepošle potvrzení. Pokud odesílatel neobdrží potvrzení, znamená to, že je třeba znovu odeslat poslední oktety a zároveň snížit přenosovou rychlost.

Velikost okna TCP se může měnit podle toku dat mezi dvěma síťovými zařízeními. Každé potvrzení odeslané od příjemce obsahuje informaci o počtu bajtů, které je příjemce schopen přijmout. Protokol TCP umožňuje použití tzv. okna řízení přetížení, které v dobré kondici rovná se oknu přijímajícího zařízení, ale jeho velikost se zmenší na polovinu, pokud dojde ke ztrátě jakéhokoli segmentu dat (například v důsledku přetížení sítě). Tento mechanismus umožňuje zmenšit nebo zvětšit velikost okna podle potřeby při správě vyrovnávací paměti zařízení a zpracování datového toku. Větší velikost okna umožňuje současný přenos velké množství oktety.

Když odesílatel přenese tři oktety, přepne se na čekání na signál ACK pro čtyři oktety. Pokud je přijímač schopen zpracovat dvouoktetový datový blok, zahodí třetí oktet a označí jej jako další očekávaný datový blok. To určuje novou velikost okna, která se rovná dvěma. Odesílatel přenese další dva oktety, ale velikost okna je stále tři (za předpokladu, že zařízení stále zvládne tři oktety najednou). Příjemce požaduje oktet číslo 5 a nastaví nová velikost okna rovnající se dvěma.

Potvrzení

Spolehlivý mechanismus doručování zajišťuje, že datový tok odesílaný jednou stanicí bude doručen datovým spojem jiné stanice bez duplikace nebo ztráty dat. Pozitivní potvrzení s opakovaným přenosem je jednou z technik, která zaručuje spolehlivé doručení datových toků. Pozitivní potvrzení vyžaduje, aby příjemce po obdržení dat komunikoval s odesílatelem zasláním zpět potvrzovací zprávy. Odesílatel zaznamená každý odeslaný paket a před odesláním dalšího datového paketu čeká na potvrzení. V okamžiku, kdy je segment předán, odesílatel také spustí časovač a znovu přenese datový blok, pokud nastavit časovačem před obdržením potvrzení uplyne čas.

Na Obr. Obrázek 7 ukazuje odesílatele vysílající pakety 1, 2 a 3. Přijímač potvrdí pakety vyžádáním paketu 4. Odesílatel po obdržení potvrzení odešle pakety 4, 5 a 6. Pokud paket 5 není doručen příjemci , odešle potvrzení požadující další odesílací paket 5. Odesílatel znovu odešle paket 5 a musí obdržet příslušné potvrzení, aby mohl pokračovat v odesílání paketu číslo 7.

Protokol TCP vynucuje sekvenci segmentů následovanou potvrzením. Každému datagramu je před přenosem přiděleno číslo (obr. 8). Poté, co příjemce obdrží všechny datagramy, jsou tyto sestaveny do kompletní zprávy. Odpovědností protokolu TCP je obnovit poškozená, ztracená, duplikovaná nebo nefunkční data, která byla přenesena přes internet. Mechanismus obnovy funguje tak, že každému přenášenému oktetu je přiděleno pořadové číslo, po jehož obdržení musí příjemce odeslat potvrzení (ACK). Pokud během čekacího intervalu není přijato žádné potvrzení, odesilatel data odešle znovu. Jakmile jsou oktety doručeny příjemci, jejich pořadová čísla se použijí k opětovnému sestavení zprávy z fragmentů a odstranění duplikátů. Poškozená data jsou obnovena pomocí kontrolního součtu, který je přidán ke každému přenášenému segmentu. Kontrolní součet je ověřen příjemcem a pokud se neshoduje, poškozená data jsou zahozena.

Rýže. 7. Velikost okna je tři

Rýže. 8. Pořadová čísla a potvrzení

ProtokolTCP

TCP(Transmission Control Protocol - protokol řízení přenosu) je protokol transportní vrstvy orientovaný na spojení, který poskytuje spolehlivý, plně duplexní přenos dat. Protokol TCP je součástí zásobníku protokolů TCP/IP. V prostředí orientovaném na připojení musí být vytvořeno spojení mezi dvěma počítači, aby bylo možné zahájit přenos dat. Protokol TCP je zodpovědný za segmentaci zpráv do paketů, jejich opětovné sestavení u příjemce a opětovné odeslání všech částí dat, pokud nebyly přijaty. Protokol je také schopen vytvářet virtuální kanály mezi aplikacemi koncových uživatelů.

Služby a protokoly vyšší úrovně, které využívají mechanismy TCP:

    FTP (File Transfer Protocol);

    HTTP (Hypertext Transfer Protocol);

    SMTP (Simple Mail Transfer Protocol - jednoduchý e-mailový protokol);

Pole segmentů TCP zobrazená na snímku jsou popsána níže.

Port odesílatele -číslo volajícího portu.

Port příjemce -číslo volaného portu.

Sériové číslo -číslo používané k uspořádání příchozích dat ve správném pořadí.

Potvrzovací číslo- číslo dalšího očekávaného oktetu TCP.

HLEN počet 32!bitových slov v záhlaví.

Vyhrazené pole- všechny bity jsou nastaveny na 0.

Kousky kódu- servisní funkce (například nastavení a ukončení relace).

Okno- počet oktetů, které je odesílatel ochoten přijmout.

Kontrolní součet- vypočítaný kontrolní součet záhlaví a datová pole.

Ukazatel naléhavých dat- označuje konec urgentních dat.

Možnosti- aktuálně je definován jeden parametr: maximální velikost TCP segment.

Data- data protokolu vyšší úrovně.

ProtokolUDP

UDP (Uživatel Datagram Protokol- uživatelský protokol přenosu datagramů), jehož formát segmentu je zobrazen na snímku, je přenosový protokol bez připojení v zásobníku protokolů TCP/IP. UDP je jednoduchý protokol, který vyměňuje datagramy bez potvrzení a bez záruky doručení. Jednoduchost protokolu se projeví při srovnání segmentových formátů protokolů UDP a TCP. Při použití protokolu UDP musí být zpracování chyb a opakovaný přenos dat řešeno protokolem vyšší úrovně. Pokud je například přenos přerušen při odesílání dat přes TFTP, může informace znovu stáhnout pouze lidský operátor.

Níže uvedený seznam zobrazuje pole segmentu UDP, který je zobrazen na snímku

    Port odesílatele -číslo volajícího portu.

    Port příjemce -číslo volaného portu.

    Délka- počet bajtů, včetně hlavičky a dat.

    Kontrolní součet- vypočítaný kontrolní součet záhlaví a datových polí.

    Data- data protokolu vyšší úrovně.

Protokol UDP nepoužívá mechanismus posuvného okna, takže musí být zajištěna spolehlivost přenosu dat protokoly aplikační vrstvy(protokol aplikační vrstvy). UDP byl navržen pro aplikace, které nepotřebují spojovat uspořádané segmenty dohromady.

Protokol UDP používají následující služby a protokoly vyšší úrovně:

    TFTP (triviální protokol pro přenos souborů - nejjednodušší protokol přenos souboru);

    SNMP (Simple Network Management Protocol - jednoduchý protokol pro správu sítě);

    DHCP (Dynamic Host Configuration Protocol - dynamický protokol konfigurace hostitele);

    DNS (doména Systém jmen- služba doménových jmen).

Čísla portů protokoluTCPAUDP

K přenosu informací do horní úrovně jak protokol TCP, tak protokol UDP použijte číslo portu nebo tzv. socket. Čísla portů se používají ke sledování různých interakcí probíhajících současně v síti.

Vývojáři aplikačního softwaru souhlasili s používáním vyhrazených čísel portů přidělených úřadem IANA (Internet Assigned Numbers Authority). Například jakákoli výměna zahrnující přenos dat pomocí protokolu FTP by měla používat standardní porty 20 (pro data) a 21 (pro řízení). Síťové komunikaci, která nezahrnuje aplikace, které mají dobře známé číslo portu, jsou čísla portů přidělována náhodně, ale jsou vybírána ze specifického rozsahu hodnot nad 1023. Některé porty jsou vyhrazeny v protokolech TCP a UDP. Ačkoli jsou některé porty vyhrazeny v TCP a UDP, aplikace nemusí být pevně připojeny k těmto číslům.

Jak je znázorněno na snímku, vyberte příslušnou aplikaci koncový systém používá číslo portu. Číslo zdrojového portu je obvykle nějaké číslo větší než 1023, které je dynamicky přidělováno odesílajícím uzlem. Například uzel se pokouší připojit k jinému uzlu přes FTP odesláním paketů, které specifikují cílový TCP port číslo 21 (FTP), a dynamicky generuje zdrojové číslo portu 1028. Tato dvojice portů (odesílatel a příjemce) určuje jedinečnost interakce mezi dvěma uzly. Pokud stejný uzel zahájí FTP připojení s třetím uzlem, cílový port zůstane nastaven na 21, ale port odesílatele je vybrán jako jiný (například 1030), aby se oddělily dvě komunikační relace.

Nyní je potřeba zadat velikost posuvného okna pro výpočet autokorelací. Posuvné okno se používá k výpočtu hodnot autokorelační funkce pro funkci zadanou na konečném intervalu, který jste zadali pro výpočet korelačního koeficientu. Posuvné okno zachycuje prvních M časových snímků časové řady a poté se v každém kroku posouvá o jeden časový rámec v intervalu, který jste zadali pro výpočet korelací dvou nástrojů.

Posuvné okno může formálně nabývat hodnot od dvou do 999. Nastavení hodnoty nad 999 nedává smysl, protože maximální interval používaný při výpočtech je 1000. Ve skutečnosti však velikost posuvného okna nemůže být větší než N- 1, kde N je velikost zvoleného intervalu (počet řádků použitých ve výpočtech).

Posuvné okno menší než 2 nedává z definice smysl.

Pokud nepotřebujete vypočítat autokorelaci, zadejte velikost pohyblivého okna menší než 2. V tomto případě bude kalkulačka Scientific Trader ignorovat výpočet funkce autokorelace.

Začátečníci se obvykle zajímají o to, jakou velikost posuvného okna je nejlepší nainstalovat. To obvykle závisí na tom, jaký interval vás zajímá z hlediska studia chování autokorelací. Mějte však na paměti následující.

Pokud máte co do činění s nějakou velmi pravidelnou funkcí, například periodickou, kdy zkoumaný interval obsahuje mnoho period, pak takovou pravidelnost zkoumané funkce dobře detekuje krátké posuvné okénko. Pomocí pokusu a omylu můžete vybrat velikost posuvného okna, která se přibližně shoduje s periodou pravidelnosti zkoumané funkce.

Pokud máte co do činění s bílým šumem (v v tomto případě s jeho diskrétním analogem, kde jsou přítomny všechny frekvence z intervalu odříznutého hodnotou časového rámce s přibližně stejnými amplitudami), pak je takový proces nejlépe detekován dlouhým posuvným oknem, jehož velikost se blíží studovanému intervalu.

Pokud provedete nezávislý výzkum autokorelací různých tržních nástrojů, uvidíte, že většina z nich se nachází ve střední oblasti mezi čistě pravidelným pohybem s přídavkem náhodný hluk a čistý bílý šum. To znamená, že to na jedné straně není kasino a na druhé straně to není nějaký přísný zákon pohybu, ke kterému se přidal hluk tak vysoké amplitudy, že se v tomto hluku vizuálně utopily známky pravidelnosti. . Vše, co je zde řečeno o výzkumu, se týká především denních dat, protože právě tato data jsem podrobil největšímu výzkumu, protože na těchto datech převážně pracuji.

Například, pokud mluvíme o hlavních měnových párech, pak nelze jasně oddělit pravidelný pohyb a hluk, jak se to dělí v teorii signálu, kdy máte nějaký druh rádiového signálu, ale je utopen v rušení. Jedním z důvodů nemožnosti takto jasného rozdělení dynamiky měny na pravidelnost a šum je to, že pravidelnost dynamiky měnového páru sama o sobě představuje nekonečnou řadu (nebo konečný součet s velký početčleny) regulárních funkcí klesající amplitudy, na které se superponuje šum s ne stejnými, ale různými amplitudami. Plus nestacionarita celého procesu, kdy se vaše statistické vlastnosti na konci zkoumaného intervalu mohou značně lišit od statistických vlastností na začátku zkoumaného intervalu. Diskuse o těchto otázkách však daleko přesahuje rámec tohoto návodu.

Tak co máme?

Pokud je velikost posuvného okna mnohem menší než zkoumaný interval, získáte dlouhou funkci autokorelace, protože posuvné okno vytvoří mnoho snímků. To ale bude málo informativní funkce, pokud se tam ovšem neobjeví nějaké krátkodobé zákonitosti. Naopak, pokud je velikost posuvného okna příliš blízko velikosti zkoumaného intervalu, pak taková autokorelační funkce obsahuje spoustu informací, ale bude velmi krátká. Posuvné okno udělá velmi málo snímků a například nedosáhne bodu, kdy se autokorelace blíží nule.

Doporučuji proto vždy začít zkoumat neznámý tržní instrument s velikostí pohyblivého okna přibližně poloviční velikosti studovaného intervalu. A teprve poté se na základě získaných výsledků rozhodnout, zda posuvné okno zmenšit nebo zvětšit. Pokud je například v denním časovém rámci zkoumán interval tří měsíců, pak je to přibližně 64–67 řádků. To znamená, že velikost posuvného okna může být nejprve brána jako 33 bodů. Pak můžete vidět, co se změní, když vezmete velikost posuvného okna na jeden měsíc (22 bodů) a dva měsíce (44 bodů).

Jednou z nejpřirozenějších technik používaných k organizaci spolehlivého přenosu je podání ruky. Odesílatel odešle data a čeká, až obdrží potvrzení o tom, že jeho data bezpečně dorazila k příjemci. Používá protokol TCP speciální případ handshake - algoritmus posuvného okna. Než přistoupíme k podrobnému zvažování implementačních vlastností tohoto algoritmu v protokolu TCP, je velmi užitečné o něm diskutovat z obecné perspektivy.

Existují tedy dvě metody pro organizaci procesu výměny účtenek: metoda nečinného zdroje a metoda posuvného okna.

Metoda nečinnosti zdroje vyžaduje, aby zdroj odesílající rámec (v tomto případě nezáleží na tom, jaký název je použit pro jednotku přenášených dat) čekal na příjem od přijímače, který indikuje, že původní rámec byl přijat a data v je správný, a teprve potom poslal další snímek (nebo zopakoval zkreslený). Pokud účtenka do časového limitu nedorazí, je rámec (nebo účtenka) považován za ztracený a jeho přenos se opakuje. Na Obr. Obrázek 1 ukazuje, že druhý rámec je odeslán až po obdržení potvrzení o doručení prvního rámce. Poté však nastala dlouhá pauza ve vysílání dalšího třetího framu.

Během této pauzy byl zdroj nucen opakovat přenos snímku 2, protože potvrzení o jeho první kopii bylo ztraceno. Je jasné, že s takovým algoritmem pro zdrojovou operaci musí být přijímající strana schopna rozpoznat duplicitní snímky a zbavit se jich.

Rýže. 1. Metoda nečinnosti zdroje

Je zcela zřejmé, že při použití tato metoda výkon výměny dat je nižší, než je potenciálně možné - vysílač by mohl vyslat další rámec ihned po odeslání předchozího, ale musí počkat na příjem.

Druhá metoda se nazývá metoda posuvného okna. V tomto způsobu, aby se zvýšila rychlost přenosu dat, je zdroji dovoleno vysílat určitý počet rámců v nepřetržitém režimu, to znamená maximální možnou rychlostí pro zdroj ještě před přijetím příjmu pro tyto rámce. Počet rámců, které je povoleno přenášet tímto způsobem, se nazývá velikost okna.

Obrázek 2 ilustruje použití této metody pro okno s 5 snímky. V počátečním okamžiku, kdy ještě nebyly odeslány žádné snímky, okno definuje rozsah čísel snímků od 1 do 5 včetně. Zdroj začne vysílat rámce a po nějaké době obdrží jako odpověď potvrzení. Pro jednoduchost předpokládejme, že účtenky přicházejí ve stejném pořadí (ale ne nutně stejným tempem), jako snímky, kterým odpovídají. V okamžiku, kdy odesílatel obdrží potvrzení 1, okno se posune o jednu pozici nahoru a definuje nový rozsah rámců povolených k odeslání (od 2 do 6).

Procesy odesílání balíků a přijímání účtenek jsou na sobě zcela nezávislé. V našem příkladu odesílatel pokračuje v přenosu rámců, ale nějakou dobu za ně nedostane potvrzení. Po přenosu snímku 6 je okno vyčerpáno a zdroj pozastaví vysílání.

Rýže. 2. Metoda posuvného okna

Po obdržení potvrzení 2 (pro snímek 2) se okno posune o jeden nahoru a definuje rozsah snímků povolených pro přenos od 3 do 7. K podobnému „posouvání“ okna dochází po obdržení každého potvrzení: okno se posune nahoru o 1, ale jeho velikost se nemění a zůstává rovna 5. Po obdržení příjmu 8 okno skončí v rozmezí od 9 do 13 a zůstane tak poměrně dlouho, protože zdroj z nějakého důvodu přestane dostávat potvrzení o dodání rámů. Po odeslání posledního povoleného rámce 13 vysílač opět zastaví vysílání, aby jej obnovil po přijetí příjmu 9.

Při odeslání rámce je u zdroje nastaven časový limit. Pokud pro nastavit čas Pokud potvrzení pro odeslaný rámec nedorazí, pak je rámec (nebo jeho potvrzení) považován za ztracený a rámec je přenesen znovu. Pokud tok inkas přichází pravidelně v toleranci 5 snímků, pak směnný kurz dosahuje maximální možné hodnoty pro daný kanál a přijatý protokol.

V obecný případ Metoda posuvného okna je složitější na implementaci než metoda nečinnosti zdroje, protože vysílač musí ukládat do vyrovnávací paměti kopie všech rámců, pro které ještě nebyly přijaty příjmy. Kromě toho je při použití této metody nutné sledovat několik parametrů algoritmu, jako je velikost okna, číslo rámce, pro který byla přijata účtenka, číslo rámce, který lze před přijetím nové účtenky ještě odeslat.

Hlavní myšlenkou této metody (často se jí také říká metoda LZ1, viz) je použití dříve přečtené části vložte soubor jako slovník. Kodér vytvoří okno pro vstupní soubor a přesune jej zprava doleva jako řetězec znaků, které vyžadují kompresi. Metoda je tedy založena na posuvném okně. Okno je rozděleno na dvě části. Část vlevo se nazývá vyhledávací vyrovnávací paměť. Ten bude sloužit jako aktuální slovník a bude vždy obsahovat znaky, které nedávno dorazily a byly zakódovány. Pravá část okno se nazývá předběžná vyrovnávací paměť obsahující text, který bude nyní zakódován. V praxi se vyhledávací vyrovnávací paměť skládá z několika tisíc bajtů a délka dopředné vyrovnávací paměti je několik desítek znaků. Vertikální pruh | mezi znaky ta e znamená aktuální rozdělení mezi dva buffery. Řekněme tedy, že text „sir_sid_eastman_easily_t“ je již zkomprimován a text „eases_sea_sick_seals“ potřebuje komprimaci.

sir_sid_eastman_easily_t

easys_sea_sick_seals

Kodér skenuje vyhledávací vyrovnávací paměť v obráceném pořadí (zprava doleva) a hledá první výskyt znaku e z dopředné vyrovnávací paměti. Takový znak na začátku slova odhalí snadno. To znamená, že e je (podle offsetu) ve vzdálenosti 8 od konce vyhledávací vyrovnávací paměti. Kodér pak určí, kolik shodných znaků následuje za těmito dvěma znaky e. V tomto případě má shoda znaků eas délku 3. Kodér pokračuje v hledání a snaží se najít delší odpovídající sekvence. V našem případě existuje další odpovídající sekvence o stejné délce 3 ve slově eastman s offsetem 16. Dekodér vybere nejdelší z nich, a pokud se délky shodují, i nejvzdálenější a připraví štítek (16, 3, „e“).

Výběr vzdálenějšího odkazu usnadňuje kodéru. Je zajímavé poznamenat, že výběr nejbližší shody, přestože je program poněkud složitější, má také určité výhody. V tomto případě je vybrán nejmenší posun. Může se zdát, že to nemá žádnou výhodu, protože tag bude mít dostatek bitů pro uložení největšího offsetu. Je však možné sledovat LZ77 s Huffmanovým kódováním nebo jiným statistickým kódováním štítků, kde jsou kratší offsety přiřazeny více krátké kódy. Tato metoda navržená Bernardem Herdem se nazývá LZH. Pokud je dosaženo mnoha krátkých posunů, pak s LZH je dosaženo větší komprese.

Další myšlenka je velmi snadno uchopitelná. Dekodér neví, jakou shodu si kodér vybral, zda nejbližší nebo nejvzdálenější, ale vědět to nepotřebuje! Dekodér jednoduše přečte štítky a použije offset k nalezení textový řetězec ve vyhledávacím bufferu. Je mu jedno, jestli je to první náhoda nebo poslední.

Obecně má štítek LZ77 tři pole: offset, délku a další znak ve vyrovnávací paměti pro předčítání (v našem případě by to bylo druhé e v ukázkách. Tento štítek se zapíše do výstupního souboru a okno se posune doprava (nebo je vstupní soubor posunut doleva) do čtyř pozic: tři pozice pro porovnávací sekvenci a jedna pozice pro další znak.

Sid_eastman_easily_tease

s_sea_sick_seals…

Pokud zpětné vyhledávání nenalezne shodu znaků, pak se štítek zapíše s offsetem 0 a délkou 0. Ze stejného důvodu bude mít štítek třetí složku. Štítky s nulovým posunem a délkou jsou vždy na začátku práce, když je vyhledávací buffer prázdný nebo téměř prázdný. Prvních sedm kroků kódování pro náš příklad je zobrazeno níže.

sir_sid_eastman_r

ir_sid_eastman_e

r_sid_eastman_ea

Sid_eastman_eas

sid_eastman_easi

astman_easily_te

Je jasné, že popisky formuláře (0,0,...), které kódují jednotlivé znaky, neposkytují dobrou kompresi. Jejich délku lze snadno odhadnout. Velikost offsetu je rovna , kde je délka vyhledávacího bufferu. V praxi je tato vyrovnávací paměť dlouhá několik set bajtů, takže offset je dlouhý 10 - 12 bitů. Pole „délka“ má velikost rovnou , kde je délka dopředné vyrovnávací paměti (další odstavec vysvětlí, proč je nutné odečíst 1). Dopředná vyrovnávací paměť je obvykle dlouhá několik desítek bajtů. Délka tohoto pole je tedy několik bitů. Velikost pole "znak" je obvykle 8 bitů, ale obecně - , kde je velikost abecedy. Plná velikost štítku (0,0,...) jednoho znaku rovná bit, která je mnohem delší než délka 8 „raw“ znaku bez nulových prvků kódu.

Následující příklad ukazuje, proč může být pole délky delší než velikost dopředné vyrovnávací paměti:

alf_eastman_easily_grows_alf

První znak a ve vyrovnávací paměti vyhledávání je stejný jako 5. znak a ve vyrovnávací paměti vyhledávání. Obě krajní a se mohou zdát shodná s délkou shody 3, takže kodér vybere znak zcela vlevo a vytvoří štítek (28,3, "a"). Ve skutečnosti kodér vytváří štítek (3,4 „_“). Čtyřznakový řetězec "alfa" z předběžné vyrovnávací paměti odpovídá třem "alf" znakům vyhledávací vyrovnávací paměti a prvnímu znaku "a" předběžné vyrovnávací paměti. Důvodem je to, že dekodér si s takovou značkou poradí velmi přirozeně bez jakýchkoliv úprav. Začíná na pozici 3 vyhledávací vyrovnávací paměti a zkopíruje další 4 znaky, jeden po druhém, čímž se vyrovnávací paměť rozšíří doprava. První 3 znaky jsou zkopírovány ze starého obsahu vyrovnávací paměti a čtvrtý je kopií prvního z těchto tří nových. Následující příklad je ještě přesvědčivější (i když je trochu vymyšlený):

alf_eastman_easily_yells_A

Kodér vytvoří štítek (1,9 „A“), který odpovídá prvním devíti kopiím znaku „A“ ve vyrovnávací paměti napřed, včetně desátého znaku A. Proto může být délka shody v zásadě stejná na velikost dopředné vyrovnávací paměti mínus 1.

Dekodér metody LZ77 je mnohem jednodušší než kodér (tj. metoda LZ77 je metoda asymetrické komprese). Musí vytvořit stejnou vyrovnávací paměť jako kodér. Dekodér zadá štítek, najde shodu ve svém bufferu, zapíše odpovídající znaky a znak ze třetího pole do bufferu. Tato metoda nebo její modifikace funguje dobře, pokud je soubor komprimován jednou (nebo několikrát), ale často dekomprimován. Často používaný archiv starých časů komprimované soubory může sloužit jako dobrý příklad použití tohoto algoritmu.

Na první pohled popsaná metoda komprese nečiní žádné předpoklady o vstupních datech. Zejména není věnována pozornost četnosti výskytu jednotlivých znaků. Malé zamyšlení však odhalí, že vzhledem k povaze posuvného okna metoda LZ77 vždy porovnává předběžný buffer s aktuálním obsahem vyhledávacího bufferu, ale ne s daty, která dorazila před velmi dlouhou dobou (a která již odešla). vyhledávací vyrovnávací paměť). Proto se implicitně předpokládá, že podobné oblasti vstupního souboru se opakují blízko sebe. Data, která splňují tuto vlastnost, budou dobře komprimována.

Základní metoda LZ77 byla výzkumníky a programátory v průběhu 80. a 90. let v mnoha ohledech vylepšena. Jeden možný způsob toto je použití kódů variabilní délka při kódování polí posunu a délky ve štítku. Dalším způsobem je zvětšit velikost obou vyrovnávacích pamětí. Zvětšení vyrovnávací paměti umožňuje vyhledávat více shod, ale za cenu prodloužení doby vyhledávání. Je zřejmé, že velká vyrovnávací paměť pro vyhledávání bude vyžadovat sofistikovanější datovou strukturu pro urychlení vyhledávání (viz § 2.4.2). Třetí vylepšení se týká posuvného okna. Nejjednodušší přístup je po každé shodě přesunout veškerý text doleva. Rychlejší technikou je nahrazení lineárního okna cyklickou frontou, ve které se posouvání okna provádí resetováním dvou ukazatelů (viz § 2.1.1). Dalším vylepšením je přidání jednoho bitu (příznaku) ke každému štítku, což eliminuje třetí pole (viz §2.2).




Horní