Дорогой anonymous - какая у вас стоит операционная система если не секрет?
(собираю небольшую статистику)
потому что очень меня напрягает вещь что многое ставиться бинарями и народ не привыкает
что софт должен всегда собираться из сорцов .. в этом плане мне очень нравится
идеология FreeBSD - в ней вроде "все правильно". [holly war - сосать].
Etot tot samiy anonimus, kotoriy zadal etot vopros, takje tot samiy, kotoriy zadaval voprosi neskol'ko ranee o tom, kak napisat' TCP clienta (imeetsya vvidu hardware part a ne vsyakay soft fignya tipa: "open, bind, listen, accept...") na controllere.
I vot poyavilas' u menya problemka sleduyuschego tipa:
- moya jelezyaka zvonit Linux mashine i po PPP s svyazivaetsya Lin mashinoy,
- TCP otveta na perviy TCP/IP paket ya ne poluchayu.
Voznikaet vopros: "Why?".
Zapuskayu tcpdump, on mne pishet, chto u menya nepravil'naya checkSum IP paketa.
Vot dlya etogo mne i ponadobilis' ishodniki tcpdump. Interesno, kak je tcpdump rasschitivaet checksum.
Pasiba sasha999, ishodniki Ok i bolee togo, tcpdump schitaet checkSum takje kak i ya!!! Chert.
I vot Dorogoy lg, esli uj Vi stol' opitni v *nix sistemah, podskajite tupomu anonimusu, kak skompilit' ishodniki s dobavlennoy v nih Debug figney.
Mujiki, ocen nado ;)))
A na schet Operacionki. Tochno ne znayu, po-moemu Suse6.1, komp stoit na rabote, pritaschil ya ego dlya otladki iz sosedney komnati ;)))
Dlya menya versiya i tip *nix - sovershenno nevajno.
транслит все таки плохо по мне ну да ладно:
так я и не понял:
> kak napisat' TCP clienta (imeetsya vvidu hardware part a ne vsyakay soft
fignya
ты имеешь ввиду не napisat' а spayat'? или все же написать soft для контроллера этой железки?
если спаять то я тут мало чем помочь могу. Если софт то надо определиться:
1) что за железка такая? какая архитектура и все такое
2) что от нее тебе надо? (a: будет у меня автоматически дозваниваться провайдеру при получении
IP пакета и обрывать соединение после некоторого idle timeout b: будет роутить или натить чтото c: иметь telnet севис
etc etc)
Еще у меня возникла мысль что эта железка некая карта (PCI | ISA)? И ты хочешь написать к ней некий специфичный
драйвер?
тогда напиши что это за карта:
1) Что умеет
2) Что надо
еще не понятно о какой checksum идет речь:
1) о ip checksum
2) tcp checksum
3) other checksum (f.i: icmp checksum)
еще раз спрошу - не портит ли этот checksum на своем хардверном уровне.
то есть допустим не проставлен флаг во время записи пакета в ее буффер что checksum уже посчитана.
или checksum delayed - типа ей надо посчитать все это дело ..
вобщем давай все подробно описывай и не стесняйся ..
Izvini za translit, mne i samomu prosche pisat' na English or Deutsch, but I'm not sure you can understand me.
Ya - student v odnom nemeckom VUZe i parallel'no podrabativayu na jizn' :)) Zadachka sleduyuschaya:
1. Est' kakaya-to jelezyaka, kotoraya sobiraet dannie. Posle togo, kak dannie sobranni ih nado kuda-to det'.
2. Est' odin pribor, nazivaetsya defibrillyator i nositsya na cheloveke. Defibrillyator imeet v sostave analizytor kardiogrammi i, kogda u cheloveka ne vse v poryadke s serdcem, rabotaet kak shocker. Parallel'no nado dat' znat' vrachu chto u pacienta problemi.
Vse, chto opisano vishe, snabjeno GSM modemom. Pri neobhodimosti dozvanivaetsya kuda nado i t.d. Ti, konechno, znaesh, o "sloistosti" steka:
SERIAL,
PPP,
IP,
TCP,
Application level.
Application level budet svoy, no seychas, dlya testa ya zadalsya HTTP clientom. V konechnom itoge, esli ya smogu po TCP/IP, port 80, poslat' stroku "GET" i poluchit' vrazumitel'niy otvet ot apache, znachit PPP and TCP/IP stack are OK.
>что за железка такая? какая архитектура и все такое
V jelezke stoit MSP kontroller ot Texas Instrument, kotoriy po RS232 soedinen s modemom.
тогда напиши что это за карта:
1) Что умеет
2) Что надо
Poka nichego ne umeet, chto nado - napisal vishe.
Tak vot. S modemom ya uje "dogovorilsya": on zvonit i dozvanivaetsya. S PPP toje proshel: otkril LCP, po IPCP poluchil IP address sebya i hosta, oblomal CCP na schet compression - no compression are used. Vse eto testiroval s pomosch'yu pppd na Linux mashine: delal log file i smotrel che proishodit. Teper' Linux mashina shlet mne LCP Echo Request packets, moya jelezyaka bodro ovvechaet LCP Echo Reply.
Sleduyuschiy shag - otkrit TCP/IP level. Poetomu, posle togo, kak otkrilsya PPP, ya shlyu perviy TCP/IP packet, s PPP on viglyadit sleduyuschim obrazom (log ot moego kontrollera):
chto-to yavno ne to, poskol'ku ya vchera vzyal funkciyu vichisleniya IP checksum iz tcpdump programmi - rezul'tat tot je chto daet i moya funkciya.
Ochen' hochetsya v tcpdump, v mesto rasscheta checksum vstavit' neskol'ko debugovih shtuchek, perekompilit tcpdump, a potom posmotret' v chem je problema.
No ya - ne slishkom opiten v Linuxe, vchera slil ishodniki tcpdump, raspakoval, a dal'she che? Dayu '#make', Linux pishet
make: *** No targerts. Stop.
dayu "make install", pishet:
'make: Nothing to be done for install'
Esli ne trudno, prosvyatite chaynika.
Mojet k tomu vremeni ya i sam naydu, no vse je poka ne nashel :)
A vasche ya baldeyu ot Open Source. Klassnaya shtuka. V proshlom godu pisal UDF generator faylovoy sistemi dlya Nero (oni nedaleko nahodyatsya), dlya testa vstavlyal debug primochki v drayver UDF sistemi Linuxa, delal 'make modules', zameschal stariy drayver novim, potom montiroval projjeniy mnoyu disk ot moego generatora. V /var/log/messages smotrel, che proishodit. Interesno, kak bi ya otlajival takoy pribambas ne bud' Linuxa? ;-))) Teper' pochti takaya je ficha, tol'ko nado nayti kak peresobrat' paket.
клевая фишка :) я видел подобное по телику ..
сразу видно по пакету что говно ..
и что это за 5f 8c 7e? явно левость .. 02 04 01 00 я так понимаю что это maximum segment size = 256 к томуже ip_len = 44 (00 2c) а у тебя 47 - то есть
3 лишних байта откуда то (может ты в checksum засунул тоже?).
есть уже написаные "мини ip/tcp стеки" с рабочим интерфесом для app level
называется эта хрень uip:
In recent years, the interest of connecting small embedded devices to IP networks has increased. In order to be able to communicate over the Internet, an implementation of the TCP/IP protocol stack is needed. uIP is an implementation of the most important parts of the TCP/IP protocol suite. The goal of the uIP implementation is to reduce both the code size and the memory usage to a minimum. uIP is an order of magnitude smaller than any existing generic TCP/IP stack today - in fact, it is probably the smallest TCP/IP stack ever written in a high level language. uIP is written in the C programming language and the source code is free to distribute and use for both non-commercial and commercial use
http://dunkels.com/adam/uip/
Удачи!
клевая фишка :) я видел подобное по телику ..
сразу видно по пакету что говно ..
и что это за 5f 8c 7e? явно левость .. 02 04 01 00 я так понимаю что это maximum segment size = 256 к томуже ip_len = 44 (00 2c) а у тебя 47 - то есть
3 лишних байта откуда то (может ты в checksum засунул тоже?).
есть уже написаные "мини ip/tcp стеки" с рабочим интерфесом для app level
называется эта хрень uip:
In recent years, the interest of connecting small embedded devices to IP networks has increased. In order to be able to communicate over the Internet, an implementation of the TCP/IP protocol stack is needed. uIP is an implementation of the most important parts of the TCP/IP protocol suite. The goal of the uIP implementation is to reduce both the code size and the memory usage to a minimum. uIP is an order of magnitude smaller than any existing generic TCP/IP stack today - in fact, it is probably the smallest TCP/IP stack ever written in a high level language. uIP is written in the C programming language and the source code is free to distribute and use for both non-commercial and commercial use