[elektro] 18f87j60

Moczik Gabor pm-01 at progzmaster.hu
Thu Aug 13 07:17:45 CEST 2009


Tóth Péter wrote:
>>> Hát mondom, ha a checksum még problémás, akkor még a HTTP odébb van.
>>>   
>> De már csak a HTTP-nél problémás. Kapok egy TCP SYN-t, válaszolok egy 
>> SYN+ACK-val és elfogadja, tehát a checksum jó.

Ebben nincs adat, lehet hogy ha adat is van, akkor nem jó.

>>> A sequence number (SEQ mező) egyébként jól működik?
>>>   
>> Remélem. Na, még annak kacifántos a leírása... Elküldtem a szervizes 
>> havernak, aki mellesleg filmeket feliratoz hobbiból és csak kerekedett 
>> a szeme.
>> A pontos rendszerére még nem jöttem rá, de látom, hogy van, amikor az 
>> előző packet ACK összegét veszi fel és pl. HTTP-nél hozzá kell még 
>> adni a text hosszát is...

NEM A HTTP-nél!!!

Alapvető logikai probléma van. A TCP független a HTTP-től, és fordítva.

A TCP egy önálló protokoll, amivel adatot lehet továbbítani, teljesen 
mindegy hogy mit.

A HTTP meg egy másik protokoll, ami _általában_ a TCP-t használja 
adattovábbításra, de akár használhatna bármi mást is, pl. soros portot.

Előállítasz egy HTTP csomagot, ezt átadod a TCP rétegnek mint adat, az 
IP rétegnek megmondod a cél IP címet, és ennyi a teendő ezen a részen.

Az adattal a többi teendő a TCP dolga. A TCP-nek kell kiszámolni a 
checksum-ot, a SEQ number-t, minden egyebet.
Mégegyszer, teljesen mindegy, hogy az adat mezőben HTTP csomag van, vagy 
akármi más.

Javaslom hogy nézd át (értsd meg a lényegét) az OSI modellnek.
http://hu.wikipedia.org/wiki/OSI_modell

-------

A SEQ number egyébként egy byte számláló. Ha a SYN bit 1, akkor a kezdő 
sorszámot határozza meg, mindkét oldal generál egy saját kezdő sorszámot 
(ISN). A tovbbiakban minden átvitt _adat_ byte után növelni kell a 
byte-ok számával a saját sorszámot. ACK küldése esetén az Ack number 
mezőbe a túloldalról fogadott csomagban lévő SEQ+1 értékét kell 
visszaigazolni.

http://ntrg.cs.tcd.ie/undergrad/4ba2/transport/5.pc.08.html

Az ISN ne mindig ugyanonnan induljon, legyen véletlenszerű, különben 
keveredést okozhat.

>> Köszi, de C-vel ne fáradj, nem veszi be a biológiai fordítóm :)

Volt valami assembly is, csak én meg nem vagyok mazohista. :-)



More information about the Elektro mailing list