[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