❗️Toto je původní verze internetového fóra ISPforum.cz do února 2020 bez možnosti registrace nových uživatelů. Aktivní verzi fóra naleznete na adrese https://telekomunikace.cz

Optimalizace TCP protokolu na WAN linkách

Příspěvky, které nespadají do žádného z vytvořených fór.
Walkeer
Příspěvky: 746
Registrován: 15 years ago
antispam: Ano

Re: Optimalizace TCP protokolu na WAN linkách

Příspěvekod Walkeer » 13 years ago

sub_zero píše:
Walkeer píše: 100Mb na jednom miste, 24Mb jinde. Jestli to chapu dobre, tak se vam pri plne zatezi zvysuje PL, ze? Tomu rikam kvalitni internet panecku :) to bych asi reklamoval..


prosim? o zadnym PL se tu nikdo nebavi.. doporucuju si Ti precist celej tento topic jeste jednou + prilozene linky na externi dokumenty :!:

Hapi mluvil o RED, to je Random Early Drop, pokud se nepletu, tak to nahodne zahazuje packety, coz zpusobi snizeni TCP window a zpomaleni rychlosti. Pokud nejaky QoS prvek pouziva RED, tak IMO musi nutne dochazet k PL.
0 x

Uživatelský avatar
hapi
Příspěvky: 12989
Registrován: 18 years ago

Příspěvekod hapi » 13 years ago

jo to jsem přesně myslel. Občas někdo red používá aniž by věděl na co to doopravdy je a nebo v dobré víře že to bude lepší. RED je navržen pro spoje které nesmí být přetížené ať už zdůvodu přetížení obecnýho (třeba koncovách prvků) a nebo z důvodu nárůstu latence při přetížení. Prostě zajistí aby spojem neteklo víc než je přípustno právě tím, že zahazuje náhodně pakety čímž vyvolá umělé snížení rychlosti datových toků. Navíc se nemusí vytvářet nějaká fronta jako u klasickýho shapingu a zpracování RED shapingu je velmi, velmi jednoduché pro jakékoliv zařízení takže i pro takovej cisco router přes kterej teče 10Gbitů může lehce zkrouhnout datovej tok a bude ho to stát minimum výkonu.

Samozřejmně pro window size je to mor ale jak jinak lehce donutit data aby spomalila?
0 x
Supermicro + Mikrotik = SuperTik
high speed routery podle požadavků

Uživatelský avatar
sub_zero
Příspěvky: 1741
Registrován: 19 years ago
antispam: Ano
Bydliště: Olomouc
Kontaktovat uživatele:

Příspěvekod sub_zero » 13 years ago

Stando, to co pises by se uplatnovalo v pripade, ze by nejaka cast linky byla "na strope". Ale pokud udelam iperfem treba plnou kapacitu a FTPkem ne? :wink: To asi shaping nebude.....
0 x
Říkáš-li, že něco nejde, znamená to, že to neumíš.

Jirka Lazorčák

PS: Ta fotka je stará, už mám +15kilo..

Uživatelský avatar
hapi
Příspěvky: 12989
Registrován: 18 years ago

Příspěvekod hapi » 13 years ago

jasně, to ne. Ale u iperfu si musíš vynutít tcp window ne? aby to jelo
0 x
Supermicro + Mikrotik = SuperTik
high speed routery podle požadavků

Uživatelský avatar
sub_zero
Příspěvky: 1741
Registrován: 19 years ago
antispam: Ano
Bydliště: Olomouc
Kontaktovat uživatele:

Příspěvekod sub_zero » 13 years ago

hapi píše:jasně, to ne. Ale u iperfu si musíš vynutít tcp window ne? aby to jelo


ted to testujeme s miractem..mu to jede nejlip s 16kByt/13,2ms odezva

zkus Ty 62.209.209.242
0 x
Říkáš-li, že něco nejde, znamená to, že to neumíš.

Jirka Lazorčák

PS: Ta fotka je stará, už mám +15kilo..

Uživatelský avatar
hapi
Příspěvky: 12989
Registrován: 18 years ago

Příspěvekod hapi » 13 years ago

z toho webu mi to jede 15-25Mbit ale spíš pod 20Mbit. V lince mám ještě dost místo.
0 x
Supermicro + Mikrotik = SuperTik
high speed routery podle požadavků

Majklik
Příspěvky: 1949
Registrován: 14 years ago

Příspěvekod Majklik » 13 years ago

Pěkná diskuse.
Co může způsobit, že jedním spojením nedokážu ucpat celou konektivitu je celá řada a bylo by to na román. :-(

Tabulka velikost okna proti RTT a clkové propustnost linky je celkem jasná, ale je třeba vzít v potaz spolehlivost linky. Platí to tak jen pro zcela bezeztrátovou linku. Pokud se sem tam se vám ztrtí paket a chci TCP okno hadně nad 64 KiB, tak musí být aktivován TCP scaling a ten se volí jen na otevření spojení v SYN paketech a pak se trvale používá stejný. Vedlejší efekt tohoto je, že nemůžete měnit velikost okna za chodu zcela plynule, ale pokud ten scaling přestřelíte, tak při drobné ztrátovosti linky docílíte toho, že ji nedokážete ucpat jedním spojením (protože minimální snížení okna je o moc velký krok dolů, než kolik by stačilo k vytížení linky).

U samby není jen problém v TCP okně v linuxu, ale i vlastní CIFS protokol vkládá další režii, takže na stejné trase a HW při porovnání FTPčko by mohlo dát lepší výsledky, hlavně FTP server obvykle používá nějakou formu systémového volání sendfile() (unixy) nebo TransmitFile() (Windows), která řeší odeslání souboru v rámci jádra OS bez účasti aplikační vrstvy a ušetří se tuna času přesouváním dat po paměti (u novější samby jde použít v konfiguraci use sendfile=yes a umí to znatelně urychlit některé typy přenosů, pokud mám klienty W2K a výše). Jen u linux kernelu řady 2.6 se měnil u TCP algoritmus pro manipalici s oknem a potvrzování nejméně 3x s ohledem na sítě LFN.

Co se týče vlivu L2 prvků na zpoždění delší linky, tak je obvkyle menší, než vliv té vzdálenosti (pokud se bavíme o WAN sítích po republice). Rychlost světla v optickém kabelu není žádný zázrak (v podstatě na rádiových dobrých trasách můžete udělat lepší RTT právě s využitém rychlejšího šíření signálu). K tomu pláči, že já mán přes data carriera odezvu mnohem větší než jiný, který tam ma třeba i X L2 prvků. Někdo od Plzně může mít štestí, že sedí na přímé lince jdoucí do Prahy do NIXu (pokud měřím proti němu) a někdo u Tábora může mít smůlu, že do Prahy mu to jde J. Hradec, Jihlava, Havl. Brod, Pardubice, Kolín, Praha. Tohle už pár km navíc je. Obvkyle toto půjde nějakou SDH tchnologií, takže vliv zpoždení vlastních prvků po trase bude minimální (respektive přechod z async ethernetu do sync linku bud emít větší režii, která se vyplatí na dlouhé trase, kde se sync prvkách umoří).
Jiná věc je šmejd L2 krabice. Teorie, kolik zpoždění vloží jeden switch dělající store-forward je hezká, realita bývá krutě jiná. Ale stále se bavíme o desítkách us na jeden prvek. Třeba zmíněné HPčka Procurve 2510G, ty celkem zpomalí předávání mezi porty, pokud je nějaký jiný port ve skupině v 100 Mbps režimu, asi málo vnitřních sběrnic a problém synchronizqíc mezi nima (a starší stovková řada je ještě tragičtější, pokud je velký počet VLAN). Jistě, mohu volat po switchích typu fast-forward, ale od dob, co jsou rychlé RAMky a je ji dost, tak se to u switchů nepoužívá. Respektive Cisco to zase vytáhlo na scénu a nabízí (tuším třeba Catalyst 4900), ale to řešení není určeno nna MAN/WAN sítě. Mířeno pro datacentra, kde provozují single image clustery a snaží se tím natlačit do aplikací, kde vládne InfiniBand sítě. To znamená, kde je požadavke nejen velká přenosová rychlost, ale zároveň i minimální dopravní zpoždění (tady Ethernet může závidět, ale také je to jiná cena).
Myšlenka MPLS není přínosná do L2 sítě ohledně odezvy. MPLS na L2 síti má smysl pro řešení přenosu různých protokolů a překonání bariéry 4000 VLAN. Jako urychlovač má smysl na routované síti, kdy MPLS urychluje průchod směrovači. Ta myšlenka s Cisco CEF nebyla asi úplně správná, to se opět týká až L3 beden (a defacto u cisca je aktivní CEF/dCEF podklad pod MPLS). Popkud mám plně routovanou síť, tak MPLS mí na odezvě něcí nahoní (a to i na wifi síti na Mikrotikách).
Ano rychlé spojení na L2 síti blížící se k hranici Etherneut spolehlivě zabije flow control na L2 vrstvě (802.3x), ale tuhle prasárnu snad nikdo nepoužívá, srážka TCP s tímto obvykle nedopadne dobře. Obecně srážka se switchovaným ethernetme, kde je daná síť zahlcována nad 80% kapacity se nechová úplně dobře, ale to platí při multiaccess přístupu, když jsou jen dva, tak ty efekty nejsou tak rychlé.

Jiné důvody, proč jedním spojením si neucpu celou síť: nejedna síť, kde mají třeba koupeno 300 Mpbs, poslední míle k nim je 1 Gpbs, krása, pohoda, ale předtím má carrier pár chytřejších L2+ beden staršího data, tak proč je nevyužít, tak dál to jde jako port channel přes 3x 100 Mbps kanály a má vyřízeno i osekání konektivity na koupenou hranici. A pak záleží dost na politice těch switchů, jak rozhazují pakety do toho trunku. Dost často to dělají tak, že pakety jednoho spojení jen jednou cestou (pro LACP je to tak i přímo ve specifikaci pro Ethernet) a v reálu to pro koncáka znamená, že jedno spojení nevytíží celou linku (ale u tohoto to platí na jedno spojení a jedno, zda TCP/UDP/cokoliv).

Co se toho řízení průtoku na stanovenou hranici týče, tak je víc technik než jen dropování paketů. Třeba přehazování pořadí paketů, také povede ke snížení rychlosti. Někdy to některé technologie proužívaly pro lepší vytěžování infroastruktuy, řazením různých paketu k sobě, což vede k přeházení pořadí také, ale snad už to časot nepotkáte (u O2 jsme třeba zaznamenal). Jiná možnost, která je v některých bedna implmenetována, tak pro TCP zdržují ACK pakety a také vás tím patřičně přibrzdí (tohle ale nepotkáte u data carriera).

Jinka hezká příčina a celkem zákeřná, proč nedokážu ucpat linku naplno jedním spojením (nebo i vícero, ale tam to není tak patrné) je srážka dvou řízení toků. Jedno u data carriera a druhé u vás. Obecně se to skládá z kroku měření nad nějakým časovým kvantem a pak se v dalším uplatní nějaká politika řízení (často ne hned v následujícíh, ale ob jedno). Tohle se děje u carriera a taktéž u Vás, pokud dopravní zpoždění mezí místem, kde to dělá nadřazená síť a kdy to děláte vy bude v nějakém násobku toho časového kroku řízení toků a pokud se rychlost přiblíží stropu, tak se může stát, že dojde k dvojitému podobnému "regulačnímu zásahu" na stejná data. Efekt je, že pokud linkou se snažíte protlačit jen jedno TCP spojení, tak to nedokáže vymačkat víc jak jednu 1/2, 1/4, .. teoretického maxima. Tohle ale dost závisí i na algoritmu, co daná TCP implemntace používá. Pokud ucpu linku vícero spojeníma, tak to tak vidět není (nebo smolně je nepochopitelně bržděno jedno spojení a ostatní jedou OK). Neprojevuje se to tam, kde probíhá aktivní řizení po celé trase na vícero prvkách za sebou a ne jen diskrétně na jednom místě (což defacto není řízení toků, ale jen vstupní kondiciování, či jak tomu říká teoreie). Také to nenastane, pokud u sebe řídíte toky tka, aby nedošlo k zahlcení celé kapacity (nedojde na působneí nadřazeného řízení limitu toku). O kolik je potřeba podstřelit závisí na kapacitě linky mezi body řízení u sebe a carrirera. Defacot jde o stjený případ srážky různých oken, tkao tunelování TCP v TCP, srážky TCP s L2 flow control, ....

A takto by šlo mastit možné případy dál a dál, na což není už vhodná ranní doba. :-(
0 x

Uživatelský avatar
hapi
Příspěvky: 12989
Registrován: 18 years ago

Příspěvekod hapi » 13 years ago

to je všechno sice hezký jenomže tohle bych pochopil kdyby se rychlost snížila o pár procent a ne o většinu obzvlášť když se na hranici linky jednim spojením nikdy nevyškrábeš například natestu dáš 20-30Mbit a linka je 200Mbit. To mi nejde do hlavy.

S MPLS s tebou souhlasim že je to spíš jako vlan a smysl nejspíš bude mít na routingu ale nesouhlasim s nějakym urychlení nebo spíš snížení latence na mikrotikách. Co jsem tu zkoušel i když to nebylo zrovna korektní, tak největší snížení latence proběhlo při vypnutí conn trackingu ale to bylo testovaný na dvou zařízeních tedy že jedno přibalilo MPLS a druhý zase odebralo a kdyby to šlo skrz třetí prvek furt skrz mpls, asi by to vypadalo lépe.
0 x
Supermicro + Mikrotik = SuperTik
high speed routery podle požadavků

Majklik
Příspěvky: 1949
Registrován: 14 years ago

Příspěvekod Majklik » 13 years ago

Nemá smyls MPLS mezi dvěma sousedníma routery na výkon. Máš režii navíc na routeru kde paket vstupuje do MPLS sítě a kde ji opouští. Urychlení nastává na routerech které dostanou MPLS paket a tlačí ho dál jako MPLS.
Samozřejmě vypnutí trackingu spojení se projeví víc, je to dost žrout výkonu. Přemýšlím, že při tom pokusu jen se dvěma routery se možná vůbec MPLS nepoužije v ROSu. Pokud přijde na to, že jde jen o předání paketu mezi dvěma sousendíma routery, tak MPLS značky do paketu vůbec nepoužije (pokud se konfiguruje jako klasický IP akcelerátor a ne kombinace MPLS/VPLS).

Dobře, ten pokus s upload TCP děláš s vlivem celé své sítě a data carriera nebo odpojíš svoji síť, místo ni připojíš jednu obludku, která se snaží přímo tlačit/sosat FTP. Zkus to a porovnej výsledky a pak se dá začít špekulovat o prvním kroku zda má/nemá na to vliv moje infrastruktura.
0 x

Uživatelský avatar
sub_zero
Příspěvky: 1741
Registrován: 19 years ago
antispam: Ano
Bydliště: Olomouc
Kontaktovat uživatele:

Příspěvekod sub_zero » 13 years ago

V první řadě díky Majklíkovi za super příspěvěk!

Já tohle vše de facto chápu, ale nejde mi do hlavy jedna jediná věc... proč je tak velkej rozdíl mezi testem iperf, FTP, HTTP?
0 x
Říkáš-li, že něco nejde, znamená to, že to neumíš.

Jirka Lazorčák

PS: Ta fotka je stará, už mám +15kilo..

Majklik
Příspěvky: 1949
Registrován: 14 years ago

Příspěvekod Majklik » 13 years ago

hapi píše:to je všechno sice hezký jenomže tohle bych pochopil kdyby se rychlost snížila o pár procent a ne o většinu obzvlášť když se na hranici linky jednim spojením nikdy nevyškrábeš například natestu dáš 20-30Mbit a linka je 200Mbit. To mi nejde do hlavy.


Ještě k tomuhle. Ty efekty někdy nesnižují o pár procent, ale na zlomky maximálky v závislosti na některých soubězích. Ale můj soukromý názor je, že majoritní problém je v prasácky napsaných aplikacích (měl jsem tu čest to mlátit do hlavy už pěkné řádce programátorů, jak se to ne/má dělat a řada jich koukala jak bagr na tvrdou hlínu, přestože je to roky živí).
Pokud chceš se dobrat toho, proč to dává tak málo a máš k dispozici jen ten přenášený stream dat, tak se dá z toho hodně odchadnout, pokud k tomu je i odchycená aplikace, jak následují systémové/knihovní volání, tak často problém se přemění ve zvracení a dál není na síťové vrstvě co řešit.

Jinak obecně, pokud chceš u konkrétního spojení se někam dobrat, tak předpokládám, že jseš schopen ho celé odchytit a koukal bych na toto:
V SYN/SYN ACK fázi se mrknout jak je MSS, hlavně s ohledem na skutečně to, co projde sítí. Kdo používá něco jako PPPoE/L2TP/MPLS a nemá pro koncové klienty oblíbené MTU 1500 a MSS přitom bude nastaveno na MTU 1500, tak ho čekají problémy. Někdo už zjsitil, že když je nastaveno DF v paketu tak občas spojení nejede vůbec (debilní firewally po cestě/u klienta bránící MTU discovery), tak to řeší shazováním DF (nemělo by se, ale když už to i ROS umí) a má klid, ale s efektem, že když je MSS moc dlouhé, tak pak každý paket se fragmentne na dva a přenosová efektvivita jde do háje, hlavně na wifinách. Jiný bod je, pokud MSS se nastřelí moc nízko. Defaultně se určuje tak, že pokud koncová IP padá do lokální sítě, tak se MSS navrhne z MTU LAN-TCP-IP záhlaví, pokud to jde dál, tak některé systémy mají snahu tam cpát default 576, což není ono, tisíce malých paketů ucpou kde co. Nezapomenout případně na aktivní TCP rozšiřující hlavičky, které ten výpočet o 20 bajtů trochu nakopnou (např meření RTT). Následně mrknout dál do dat, zda nedochází k fragmentaci paketů, která to efektivně srazí dolů, třeba vlastnostmi sítě o kus dál za naší hranicí u protistrany.
Dále mrknout, zda došlo k vyjednání windows scale a pokud ano, tak v jakých hodnotách. Pokud dojde na scale faktorem 2^10 a více, tak už se může projevit to, co jsem psal, že minimální úkrok v okně dolů je už dost velký na nevytížení linky (nicméně by neměl jít na zlomek kapacity, u 2^12 a více to už bude úlet na normánlí koncové síti - programátor to kapánek přestřelil).
Taktéž v SYN/SYN ACK mrknout, zda došlo na vyjendání podpory ECN, pokud ano, tak koukat, zda nedošlo za přenosu pak k nastavení ECN bitu od routerů jako žádost o snížení toku (to tvrzení výše, že RED znamená vždy zahazování paketů není úplně přesné, pokud si spojení vyjedná ECN, tak limitující prvek používající RED prvně přistoupí k nastavování ECN a teprve když nezareagují komunikující konce, tak je začne dropovat, nicméně ROS v kombinaci s REDem ECN nepodporuje, samotný linux to s tc umí, stejně tak Cisco a další). Windows ECN umí od Vist/W2K8, ale výchozí stav je vypnuto, linux umí také.

Pokud je vidět za běhu dat působení ECN, tak to něco po cestě se snaží řezat. Pokud vypadávají pakety, tak opět buď řeže něco bez podpory ECN nebo ztráta dat, která pak má dopad na rychlost a je třeba hledat kde se děje, ale to už je pak jiné kolo problému.
Dále se dívat, co dělá nabízené max okno hlášené klientem. Pokud nejsou výpadky paketů a ani ECN do toho nekecá, tak to má být rozumně se držící hodnota dle algoritmu v daném OS to najet na něco ustáleného. Pokud ta hodnota padá dolů a zase vyskakuje, případně se drží hodně nízko, tak to nezvládl autor aplikace klienta - přebírá data po malých blocích z vyrovnávacích bafrů a ne dost hbitě a toto působí zpoždění. Pokud bude okno padat až na nulu, tak autor byl totální trotl a asi si nastavil wake up watermark na velikosti 100% plného bafru a tím to zabije. OS nabafruje plný bafr pro TCP daného spojení, pak ohlásí protistraně tou nulou v okně, že nemůže dále přijímat a až to aplikace načte, tak opět ohlásí, že se může jet dále = prvotřídní zabiják výkonu.
Pokud okno nabízené klientem se drží pořád ustáleně daného maxima, tak se podívat, jak na to reaguje vysílací strana. Jednak zda po ACK rychle jdou další data a kolik jich je. Pokud dojde míň dat, než je okno, tak odesílací strana nestačí krmit odesílací bafr, buď ho má příliš nízký a krmí po malých částech, případně i opět debilita autora na Ntou, že si nastaví low watermark na prázdný bafr, tak bude docházet k opožděnému ack přiijatých dat, takže dojde-li méně dat než okno, tak přijímající klient bude čekat nějakou dobu, než je potvrdí (myšlenka stacku je, že je škoda posílat prazdný ACK, chvíli počkáme, zda nebude i něco dat k odeslání protistraně, linux takto nyní čeká tuším 40 ms, RFC připouští až 500 ms). Toto opožděné potvrzování je velice účinná brzda přenosu. Účinně toto brzdí i v mnohem nenápadnější formě, kdy k opožděnému potvrzování dochází jen částečně. To je případ, kdy odesílací strana má bafr nastavený na velikost, která neopovídá násobkům velikosti okna a aplikace jede synchronně, kdy chce budit až je bafr prázdný, pak to dopadne tak, že se část dat přesune v několika oknech rychle poslaných a pak následuje ten konec daného bafru menší než okno, ten se potvrdí opožděně a vysílací strana opět něco pak dokrmí. Toto stlačí přenosovku také, al enneí to na toku na první pohled vidět, až při projití celé sekvence se pak i dá určit, jak velký odesílací bafr má server. Záleží na kombinaci velikosti okna, velikosti odesílaného bafru a jak má aplikace nestaveny limity pro informování, zda má dodat/vyčíst další data a i jak nastavuje některé další vlastnosti socketu. Potom může nastat jiný případ (podobně odesílací i přijímací strana), kdy přenos řeší asynchronně, ale neberou rozumně limity pro buzení na přebírání dat a strká se to a odesílá s každým paketem a menším blokem blokem dat, pak počítatč akorát mlátí dokola tuny systémových volání na kopírování dat a 100x málo kopírovaných dat umořilo osla (a to i v případě použití sendfile() s blbě nastavenými parametry socketu)....

Takže pokud si odchytíš celé takovéto pomalé spojení i s časy, tak se dá analýzou dospět k tomu, kde to pravdpěodobně stojí. Přeji příjemnou zábavu, než ti napadne sníh. :-)
0 x

Majklik
Příspěvky: 1949
Registrován: 14 years ago

Příspěvekod Majklik » 13 years ago

sub_zero píše:proč je tak velkej rozdíl mezi testem iperf, FTP, HTTP?


Protože iperf je jendoúčelová aplikace zaměřená jen na jednu stranu reálného problému, a to toho, jak protlačit maximum tím síťovým spojením a používá k tomu vše, co IP stack v OS umí nabídnout a dál nic neřeší a psali to lidi, co z toho dokážou vymačkat maximum.
Kdežto HTTP a FTP server (klient) musí řešit hromadu dalších věci, načítat data z disku, ukládat, vizualizovat atd a fakticky se tak v tom přenosu projevuje třeba u FTP celý přenosový řetězec, jak se data čtou z disku, posílají po síti a zase ukládají na disk. Nejsi schopen jen čarováním se síťovou vrstvou z toho vyrazit víc, než dovolí limit nějakého dalšího článku v tom řetězci.
Navíc úkolem těch serverů ani není primárně ucpat celou síť jendím spojením. U takového HTTP, což je dneska považováno z interaktivní spojení, se nastavují vlasntosit na socket, které jdou rovnou proti vytížení linky na max a hlavně má řešit hromadu klientů, skripty a tunu dalšího a ne jen síťovou komunikaci, takže ji autoři věnovali jen patřičný díl úsilí. U FTP je to už trošku jinak, ale opět závisí na dalších fakorech v tom řetězci a když je něco blbě, tak se to na lince s jinejma vlastnostma (než měl autor) může projevit degradací výkonu. Zkrátka udělal něco hodně nevhodně se na LAN ztratí, rychlost odezvy a kapacita LAN to překreje (nevymačká ji naplno, ale slušně), kdežto v kombinaci s WAN pomalejší linkou a větší odezvou se do toho plně projeví.
Pokud to programátor prasácky napíše, tak s tím nevyčaruješ zázrak (na unixu už jen procenta ve výkonu udělá, zda pro TCP komunikaci budu data rvát přes read()/write() místo recv()/send() , zcela jinak při použití readv()/writev() a na použití snedmsg()/recvmsg() nemá skoro nikdo odvahu). Co se dá za tunu parametrů nastavit obecně socketu nebo už poak adresně pro TCP spojení také moc autorů neřeší a často se stejná volba chová dosti rozdílně v různých OS, už jen takový TCP_NODELAY (většinou intuitivně chápaný jak funguje) se chová jinak na původních BSD implementacích a jinak v linuxu a zrovna třeba Apache ho používá a linuxu to jeho přenosový strop sráží. a to řada technik vedoucích k minimalizaci zpoždění a rychlosit odezvy většinu programátor vyděsí k smrti a kolikrát nemají ani smysl do dané applikace si tím komplikovat život.

Takže bych z toho nedělal vědu, pokud to řešíš jako ISP, tak pokud z linek vymačkáš strop pomocí iptrafu, tak to dělá co má. Nemůžeš to vyladit tak, aby jsi tím řešil problém věech aplikací, jak přistupují k síti a co ideálně očekávají. Můžeš jít jen obecně zvyšováním propustnosti a srážením latence spojení, minimalizací jitteru a ztrátovosti, ale vždy tě zastaví limity dané technologie/financí/fyziky.
0 x

Uživatelský avatar
sub_zero
Příspěvky: 1741
Registrován: 19 years ago
antispam: Ano
Bydliště: Olomouc
Kontaktovat uživatele:

Příspěvekod sub_zero » 13 years ago

Děkuju za vyčerpávající odpověď.
Takže jen malé shrnutí... pokud pomocí iperfu nebo jiný "hloupý" utility dostanu z linek maximum a následně třeba FTP jen desetinu, je to tedy problém na aplikační vrstvě, ano?
Nemám bouchat do data carrierů a dožadovat se nápravy? Mám raději napsat nějakýmu Frantovi, co napsal ten FTP server? :) Je mi jasný, že pokud by se TCP rozumně neřídil, asi by nynější kapacity serverů, sdílenýho prostředí apod už dávno nestačily.
Jde mi hlavně o to, že pokud v dnešní době nabízí poskytovatelé na FTTx 100Mbit lajny a uživatel je stejně nedokáže vytížit a "reklamuje" tu službu (teď se nebavme o agregaci), jak má ten poskytovatel reagovat? Když uživatel mu tvrdí: "Já měl před vaší firmou firmu xyz a u nich to v pohodě šlo." A já tomu věřím. Čím dál více se setkávám s tak markantním rozdíly v kvalitě a rychlosti služeb jednotlivých poskytovatelů a právě toto mě přimělo začít hledat chybu jinde než u nás v síti.

Každopádně ještě jednou díky!
0 x
Říkáš-li, že něco nejde, znamená to, že to neumíš.

Jirka Lazorčák

PS: Ta fotka je stará, už mám +15kilo..

Uživatelský avatar
hapi
Příspěvky: 12989
Registrován: 18 years ago

Příspěvekod hapi » 13 years ago

napadlo mě jedno srovnání. Před asi rokem jsme měly na serveru aplikaci proftpd, tedy aplikaci pro ftp server. Tenhle ftp server dokáže při stahování z něj zarvat celej gigovej ethernet bez mrknutí oka. Kdykoliv jsem do počítače něco z něj stahoval, doslova rval data na strop všech linek po cestě. Teď máme ve stejnym OS pureftp a ten to nedokáže ani zdaleka tak nacpat a běží sotva polovinou rychlostí giga. Tady je jasný, že za to může aplikace. Možná by stálo za to na chilku vyměnit aplikaci na ftp server jestli by se něco změnilo.
0 x
Supermicro + Mikrotik = SuperTik
high speed routery podle požadavků

Uživatelský avatar
sub_zero
Příspěvky: 1741
Registrován: 19 years ago
antispam: Ano
Bydliště: Olomouc
Kontaktovat uživatele:

Příspěvekod sub_zero » 13 years ago

hapi píše: Možná by stálo za to na chilku vyměnit aplikaci na ftp server jestli by se něco změnilo.


jojo hochu, do Linuxu se poustet nebudu, to je vyssi stredni..jak to nejde "naklikat", tak ruce pryc :D (Linuxaci prominou)
0 x
Říkáš-li, že něco nejde, znamená to, že to neumíš.

Jirka Lazorčák

PS: Ta fotka je stará, už mám +15kilo..