TCP spojeni, send() a ztracena data

Petr Janda janda na netbox.cz
Pátek Červenec 7 07:36:24 CEST 2006


On Wed, Jul 05, 2006 at 08:04:35AM +0200, Ladislav Vaiz wrote:
> 
> Petr Janda wrote:
> 
> >- mam tcp spojeni, kterym posilam data prostrednictvim send()
> >- pokud druhej konec upadne, tak send() vrati pocet odeslanych byte,
> > data odejdou ze sitovky (druha strana posle RST), a ja se nikdy
> > nedovim, ze nedorazily na misto
> >- dalsi volani send uz zjisti, ze data nejsou. Neni to ani o poctu
> > paketu (kdyz poslu vice dat, nz MTU), tak se ztrati vsechno z jednoho
> > volani send() )
> >
> >Jak se tyto pripady resi - napisu si vlastni potvrzovani (tak nejak jsem
> >si myslel, ze o tohle se postara TCP)?
> > 
> >
> TCP je "transportní" vrstva - buď přenese data nebo se rozpadne 
> spojení. Nikde se ale nedozvíte, kolik dat se přeneslo, než se to 
> rozpadlo. Musíte si implementovat vlastní "relační" vrstvu, která bude 
> mezi daty přenášet značky a potvrzovat je. Protože se data přenáší 
> sekvenčně, tak  v okamžiku přijetí potvrzení víte, že všechna data 
> před značkou byla přijata.
> La'd"a
> 

Diky, vygooglil jsem to chvili po tom, co jsem poslal dotaz. Moje
blbost, kdybych premyslel, tak na to musim prijit taky, ale to vedro
(jeste ze to mam na co svest :-)
	
	S pozdravem 

				Petr Janda
--
email: janda_at_netbox_dot_cz



Další informace o konferenci Linux