Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem Platí hodnota MSS pro oba směry?

Pokud se sestavuje TCP spojení, pak platí signalizovaná hodnota MSS pro daný směr, kdo ji vyslal a nebo spojení jako celek má jen jednu hodnotu MSS?


IP source:54001> server:80: Flags [S], seq 1097913221, win 64240, options [mss 1440,nop,wscale 8,nop,nop,sackOK], length 0
IP server:80> source:54001: Flags [S.], seq 956563554, ack 1097913222, win 29200, options [mss 1320,nop,nop,sackOK,nop,wscale 9], length 0

Bude mít TCP spojení hodnotu 1440 směrem od serveru a 1320 k serveru , nebo jednu hodnotu pro oba směry (tu nižší)?

Předmět Autor Datum
to záleží na tom jak se protokol domluví....klidně můůže i plavat...
paul 22.04.2024 12:22
paul
Co je to za nesmysl? Pokud plavbou myslíš to, že jde změnit uprostřed TCP spojení , tak to nedává sm…
tupolev 22.04.2024 12:47
tupolev
No a co když ti během spojení spadne nějaký spoj mezi hostiteli a routery to odroutují jinudy, kde j…
touchwood 22.04.2024 18:11
touchwood
:puff: To mě nenapadlo :změna trasy mající jiné mtu. Jsk se to clampne přes iptables? Já konkrétně m…
tupolev 23.04.2024 21:01
tupolev
clamping se používá tam, kde je třeba. Takže když máš WAN link spolehlivě fungující s 1500B MTU, nen…
touchwood 23.04.2024 21:03
touchwood
Jo , významu MSS rozumím, dá se logicky odvodit pro jaký směr patří a čí hodnotu signalizuje... Když…
tupolev 24.04.2024 08:20
tupolev
https://siete.ics.upjs.sk/prednaska-5/
Jan Fiala 22.04.2024 12:56
Jan Fiala
Celý text jsem přečetl a nenašel explicitní zmínku, jestli MSS je jeden parametr pro celé spojení (t…
tupolev 22.04.2024 13:04
tupolev
Vidíš a já tam čtu: dohadovanie MSS (maximum segment size) pri nadväzovaní spojenia. MSS je maximál…
Jan Fiala 22.04.2024 14:20
Jan Fiala
The MSS can be used completely independently in each direction of data flow. Zdroj: https://datatra…
cif 22.04.2024 15:10
cif
Pak jsem nemel pravdu a omlouvam se.
Jan Fiala 22.04.2024 16:08
Jan Fiala
No a na tom, jestli MSS platí oboustraně je postavena má otázka: A je nutné dělat i clamping i v pří… poslední
tupolev 24.04.2024 08:25
tupolev

Co je to za nesmysl? Pokud plavbou myslíš to, že jde změnit uprostřed TCP spojení , tak to nedává smysl, protože tak to není dynamický parametr, ale základní parametr platící od počátku spojení.
A mě právě zajímá, jak ten prokol se domlouví, jestli když na začátku spojení A pošle v options MSS XYZ a a B pošle MSS ABC, jestli se tím myslí že pro oba směry platí jedna hodnota(patrně nižší z obou) a nebo platí pro každý směr ta kterou přijaly od protistrany.
Nebo chceš říct, že existuje TCP option, která mění význam optionu MSS na to platící pro celé spojení a na to pro každou stranu zvlášť?

No a co když ti během spojení spadne nějaký spoj mezi hostiteli a routery to odroutují jinudy, kde je velikost paketu omezena (edit: např. nějakým nouzovým VPN tunelem)?
MSS signalizuje vždy router odesílající straně, takže vskutku může být rozdílná v obou směrech. V dnešní době přefirewallovaného internetu však není jistota, že ICMP MSS paket skutečně dorazí k cíli, a tudíž je třeba aby spolehlivě fungoval clamping a fragmentace.

:puff: To mě nenapadlo :změna trasy mající jiné mtu.
Jsk se to clampne přes iptables? Já konkrétně musím použít clamp narouteru, který forwarduje z vpn : cíl netuší o existenci tunelu

A je schopen clamping (iptables -I forward -j MSS --clamp-to-pmtu...) ale ďábel je v detailu: k pravidlu patří --tcp-flags SYN,RST SYN

Nicméně ten zužujíci selektor --tcp-flags vyřazuje použití uprostřed spojení

A nebo prostě se spojení ukončí.... Co myslíte?

Jo , významu MSS rozumím, dá se logicky odvodit pro jaký směr patří a čí hodnotu signalizuje...
Když odesílám paket, tak tím dávám informaci o svém konci, nemohu zčista jasna vědět MSS protistrany. To by byla strana.

A zároveň MSS říká, Takovouhle maximální hodnotu jsem schopen přijmout. To by byl směr. Protože jaksi odeslání se předpokládá že svá strana si pohlídá.

Celý text jsem přečetl a nenašel explicitní zmínku, jestli MSS je jeden parametr pro celé spojení (tedy pro oba směry) a nebo každá stran má svoju MSS. I když z toho vyznívá, že asi platí jedno MSS pro oba směry, ale chtěl jsem se ujistit a dostat odpověď.

Neřeším Congestion a flow control.

Vidíš a já tam čtu:

dohadovanie MSS (maximum segment size) pri nadväzovaní spojenia. MSS je maximálna veľkosť dát v tele TCP segmentu.

Předpokládal jsem, že to z toho je jasné... Platí to pro oba směry. Nemělo by smysl, aby jedna strana při vysílání měla omezenou velikost packetu a při příjmu by jí to nevadilo.

No a na tom, jestli MSS platí oboustraně
je postavena má otázka:
A je nutné dělat i clamping i v příchozím směru? Tím myslím z venku přijde do tunelu paket, tunel na druhém konci ho před forwardnutím . Be toho si myslí, že v případě vracení odpovědi od serveru:80 k source server klidně může odesílat pakety přes routeru, které budou nad MTU tunelu a bude je muse gragmentovat ...

K tomu podotázky:
-dojdou fragmentované odpovědi až k source nebo je druhý konec tunelu reassembluje?
-nebo příchozí clamping není potřeba a router upozorní server přes ICMP too long a on sníží MSS+MTU?

Když si to pročítám, tak pozor, to mé vyjadřování může být nepřesné, ale příchozí clamping má vliv na odchozí pakety.... Snad jsem vám nezamotal hlavu.

Nyní se děje odchozí clamping - při odpovědi na příchozí spojení router opraví MSS z těch 1440 na 1320) před vysláním do tunelu. Tím opravím informaci, kterou odesílám protistraně, aby mi neposílala velké pakety.

(Pokud se podíváte na úryvek v úvodním příspěvku, tak příchozí směr je směrem od source na server:80) (pakety jsou zachyceny na rozhraní vpn. Kdyby byly zachycena na rozhraní eth0 vedoucí k serveru, tak druhý paket by měl MSS ještě před odchozím clampingem, tedy 1460)

Zpět do poradny Odpovědět na původní otázku Nahoru