[LUGOS-PROG] Tezave s komunikacijo prek TCP/IP

polz polz at writeme.com
Mon Sep 10 11:49:15 CEST 2001


> Ali ima kdo kaksno idejo, kako bi se tega problema lotil. Ali bom moral sam
> ugotavljati za vsak paket, ce sem res ze prebral vse.
TCP ti zagotavlja, da bo cez prisel cel paket, pri cemer je mozno, da
ne bo prisel cez v 1 enem kosu.
To je potrebno npr. v sledecem primeru (mreze):

LAN1 [router] ------PPP----- [router2]

PPP ima MTU (najvecjo dovoljeno velikost paketa) recimo okrog 700.
LAN ima, ce je na ethernetu, MTU 1500.
TCP ti sedaj omogoca to, da se paketki vmes fragmentirajo in potem
kasneje sestavijo nazaj.

Mozne resitve:
1. uporabi select() pri branju, da pocakas na podatke. Kdaj so prisli vsi
podatki, bos moral ugotavljati sam.
2. uporabi UDP paketke in poskrbi, da ti bo MTUP na route-u znan, potem pa
spet sam sestavljaj kose paketkov skupaj. Ce kak paketek vmes izgine,
moras spet pohandlati sam.

Ce se ne motim, je minimalni dovoljeni MTU 64 bytov (ampak nisem siguren),
kar pomeni, da v skrajnem primeru lahko posiljas tako majhne paketke.

Se opozorilo: pod IPv6 ti za fragmentacijo skrbita
ze server in client sama (namesto routerjev). To pomeni, da se ti bo res
vedno in stalno dogajalo, da bodo paketki, ki pridejo celi cez mrezo,
lahko manjsi od 1500 bytov. Racunaj na to.



More information about the lugos-prog mailing list