Zarovnani paketu ovladacem sitovky

Dalibor Straka dast na panelnet.cz
Středa Květen 19 23:01:27 CEST 2004


On Wed, May 19, 2004 at 07:29:15PM +0200, Pavel Kankovsky wrote: > On Wed, 19 May 2004, Dalibor Straka wrote:
> 
> > nevite kde v retezci aplikace->tcp->ip->ethernet se zarovnavaji pakety
> > na urcitou delku? Treba paket velikosti 65Byte se zarovna na 66Byte.
> 
> Nikde. Zadne zarovnavani se neprovadi (*). Mozna v aplikaci samotne.
> 
> (*) Pominu-li mozne doplnovani ethernetovych ramcu ma minimalni velikost
> (pokud to hloupy hw nedela sam) a to, ze implementace protokolu
> pravdepodobne davaji prednost "kulatym" hodnotam, kdyz maji moznost
> urcit, jak bude paket dlouhy (napr. pri sestavovani hlavicky, nebo pri
> segmentaci/fragmentaci).
> 

Dobre, beru i ethernetovou vrstvu ;-). Pokud je hw tak hloupy, je treba
mu paket trosku nafouknout, aby mi po ethernetu prosel. Budu
konkretnejsi. Pokud nekdo napise z 50ti pocitacu
$telnet mujserver 22
odesle se jeden SYN na muj server a dojde. Muj server vrati SYN+ACK a 
20 pocitacu z 50 tento paket ignoruje. Kdyz poslu pingy, bez problemu
chodej. Zkoumal jsem driver pro 3com a ten hw neni vubec hloupy, na rozdil
od ruznych konvertoru ethernetem <-> pci (rtl 8139, atd.) umi harwarove
spoustu veci (checksumy, fronty, atd.) a nehaze irq po kazdym paketu ;-).

Nekde jsem videl (ale za boha nevim kde), ze paket nesmi byt mensi nez 
66Byte. Neni to nekde popsane, zajimalo by me to, jak se dofukuje paket
v linuxu.

-- Dalibor Straka


Další informace o konferenci Linux