Forum » Programiranje » Vzpostavitev Ethernet povezave v C-ju
Vzpostavitev Ethernet povezave v C-ju
St753 ::
V C-ju bi rad spisal program, ki bo vzpostavil ethernet povezavo in bral podatke, ki pridejo na port. Ethernet povezava bo direktna med dvemi računalniki, preverjanje/popravljanje napak, preverjanje ali je sporočilo zame in dekodiranje sporočila bom sprogramiral sam, ker imam določeno, kakšna bo kodiranje in dolžina sporočil. Zanima me, kako lahko vzpostavim povezavo in berem podatke, ki prihajajo (na internetu sem našel nekaj funkcij kot so socket(), connect(),...).
Komunikacija bo enosmerna. Ne potrebujem že spisanega programa, rad bi samo vedel, kje si lahko več preberem o tem in točno katere funkcije naj si pogledam, če hočem rešiti problem vzpostavitve povezave in branja podatkov.
Komunikacija bo enosmerna. Ne potrebujem že spisanega programa, rad bi samo vedel, kje si lahko več preberem o tem in točno katere funkcije naj si pogledam, če hočem rešiti problem vzpostavitve povezave in branja podatkov.
Invictus ::
socket(), connect() in ostale funkcije delajo preko TCP/IP.
Ethernet tukaj nima nobene veze.
Nauči se najprej OSI nivoje da boš vedel na katerem nivoju delaš in vzpostavljaš povezavo.
Ethernet tukaj nima nobene veze.
Nauči se najprej OSI nivoje da boš vedel na katerem nivoju delaš in vzpostavljaš povezavo.
"Life is hard; it's even harder when you're stupid."
http://goo.gl/2YuS2x
http://goo.gl/2YuS2x
Zgodovina sprememb…
- spremenil: Invictus ()
St753 ::
Povezavo vpostavljam na fizičnem nivoju. Dal sem samo primer, kaj mi je google vrgel vn, ko sem vpisal, da bi rad v c-ju napisal program, ki vpostavi povezavo . OSI nivoje pa poznam...
St753 ::
Dodatek: Protokol, ki ga moram spisati, bo za osnovo prenosa uporabljal protokol TCP/IP, pri izvedbi protokola pa moram upoštevati, kot da TCP/IP skrbi samo za pretvorbo iz logičnih vrednosti v fizične.
Invictus ::
Na drugi strani potrebuješ "listener". Nekam se pač moraš povezati.
Za enosmeren prenos podatkov je najlažje uporabiti FTP protokol. Ali pa SFTP, če je šef obseden z varnostjo.
Drugače pa samo zapakiraš svoje podatke v "payload" v TCP paketek, notri so pa lahko vse tvoje zadeve, ki jih rabiš.
BTW. TCP/IP ne skrbi za nobeno pretvorbo logičnih vrednosti v fizične ...
Še 1x preberi OSI nivoje.
Za enosmeren prenos podatkov je najlažje uporabiti FTP protokol. Ali pa SFTP, če je šef obseden z varnostjo.
Drugače pa samo zapakiraš svoje podatke v "payload" v TCP paketek, notri so pa lahko vse tvoje zadeve, ki jih rabiš.
BTW. TCP/IP ne skrbi za nobeno pretvorbo logičnih vrednosti v fizične ...
Še 1x preberi OSI nivoje.
"Life is hard; it's even harder when you're stupid."
http://goo.gl/2YuS2x
http://goo.gl/2YuS2x
imagodei ::
> "Še 1x preberi OSI nivoje"
OP, tole. Iz tvojih postov veje ena zmedenost.
OP, tole. Iz tvojih postov veje ena zmedenost.
- Hoc est qui sumus -
St753 ::
Na drugi strani bo "oddajnik", ki mi bo pošiljal sporočila.
Tega se nisem spomnil sam, tako sem dobil nalogo...
Kako ne skrbi? TCP/IP je protokol, ki se uporablja v praksi (OSI je samo teoretični model) in ne vem, kako fizični nivo protokola TCP/IP pošiljla podatke, če jih prej ne pretvori v fizični signal?
Tega se nisem spomnil sam, tako sem dobil nalogo...
Kako ne skrbi? TCP/IP je protokol, ki se uporablja v praksi (OSI je samo teoretični model) in ne vem, kako fizični nivo protokola TCP/IP pošiljla podatke, če jih prej ne pretvori v fizični signal?
imagodei ::
Če ne boš pisal firmware za mrežno kartico, ne vem zakaj se ukvarjaš s pretvorbo v fizične nivoje? TCP/IP ali ISO OSI sta z namenom zasnovana plastno.
Da se ne lotevaš stvari s premalo teoretične podlage?
Da se ne lotevaš stvari s premalo teoretične podlage?
- Hoc est qui sumus -
black ice ::
Za pretvorbo poskrbi hardware, ni potrebe po ročnem ustvarjanju fizičnega signala. Kako misliš, da bi to izgledalo?
St753 ::
Se mi zdi, da smo malo zašli... Sej ne bom sam pretvarjal v fizične nivoje, ravno to je napisano zgoraj ("protokol, ki ga moram spisati, bo za osnovo prenosa uporabljal protokol TCP/IP"). Vse kar rabim je par funkcij v c-ju, ki vzpostavi komunikacijo z vnaprej podanim IP naslovom in portom in branje podatkov iz tega porta.
St753 ::
Kar se pa teoretičnega znanja tiče, ga pa zagotovo nimam dovolj (zato pa sprašujem za pomoč, kje si lahko kaj o tem preberem, katere funckije potrebujem,...).
Sicer je programsko okolje za izvedbo naloge poljubno, vendar sem se odločil, da to naredim v C-ju (čeprav bi bilo najbrž v kakšnem Matlab-u, LabView-u lažje...).
Sicer je programsko okolje za izvedbo naloge poljubno, vendar sem se odločil, da to naredim v C-ju (čeprav bi bilo najbrž v kakšnem Matlab-u, LabView-u lažje...).
Senitel ::
No torej je debata o tem kako uporabljat TCP/IP sockete, kar si si že sam v prvem postu odgovoril in ne o vzpostavljanju Ethernet povezave med dvema napravama.
Skratka najprej še enkrat ponovi OSI model in obnovi znanje kje je Ethernet in kje sta TCP in IP. Potem pa pojdi gledat naprej socket, connect().
Skratka najprej še enkrat ponovi OSI model in obnovi znanje kje je Ethernet in kje sta TCP in IP. Potem pa pojdi gledat naprej socket, connect().
b3D_950 ::
Poglej, če ti to pomaga:
https://forums.hak5.org/index.php?/topi...
http://www.packet-craft.net/Apps.Src/se...
https://forums.hak5.org/index.php?/topi...
http://www.packet-craft.net/Apps.Src/se...
Senitel ::
Eko to je sedaj že en tipičen primer overkill-a, ki nastane iz te zmede, ko dejansko še op sam ne ve, kaj sploh hoče.
Invictus ::
On bi rad samo pošiljal podatke. Sumim pa da tudi šef ne ve kaj hoče.
Sem pa napisal v prejšnjem postu kaj je za naredit ... Skratka ni neka NASA znanost.
Sem pa napisal v prejšnjem postu kaj je za naredit ... Skratka ni neka NASA znanost.
"Life is hard; it's even harder when you're stupid."
http://goo.gl/2YuS2x
http://goo.gl/2YuS2x
St753 ::
Da se ne bom preveč trudil razlagat, kaj rabim narest (in pomotoma kaj narobe povedal), bom nalepil kar link: Seminarska
St753 ::
S tem ethernetom sem pa samo mislil, da bo povezava prek bakra (pa sem vse narobe povedal).
AndrejO ::
Da se ne bom preveč trudil razlagat, kaj rabim narest (in pomotoma kaj narobe povedal), bom nalepil kar link: Seminarska
S tem ethernetom sem pa samo mislil, da bo povezava prek bakra (pa sem vse narobe povedal).
Odprem in glej ga zlomka: "Na zicnem nivoju mora vmesnik uporabljati komunikacijo po internetu (ethernet prikljucek RJ45 ali pa brezzicno komunikacijo)."
Če so že navodila v seminarski tako zblojena, potem ni čudno, da pridejo ven takšna vprašanja.
Zgodovina sprememb…
- spremenil: AndrejO ()
St753 ::
Upam, da je zdej končno jasno kaj bi rad
Še eno vprašanje za zraven. Kako je možno, da je okvir manjši od paketa? Glede na to, da se po procesu enkapsulacije na vsakem nivoju dodajo neke informacije, in se že same podatke razdeli/segmentira, bi pričakoval, da je okvir večji. Sicer ne vem, kako je to dejansko potem sprogramirano, vendar mi je profesor zatrdil, da se to lahko naredi na več načinov (kar verjamem) in da je lahko okvir (v našem primeru 8 bitov) manjši od paketa (v našem primeru 120 bitov) (kar se mi zdi za realne aplikacije manj verjetno).
Edit: Torej naj naštudiram socket() in connect()?
Še eno vprašanje za zraven. Kako je možno, da je okvir manjši od paketa? Glede na to, da se po procesu enkapsulacije na vsakem nivoju dodajo neke informacije, in se že same podatke razdeli/segmentira, bi pričakoval, da je okvir večji. Sicer ne vem, kako je to dejansko potem sprogramirano, vendar mi je profesor zatrdil, da se to lahko naredi na več načinov (kar verjamem) in da je lahko okvir (v našem primeru 8 bitov) manjši od paketa (v našem primeru 120 bitov) (kar se mi zdi za realne aplikacije manj verjetno).
Edit: Torej naj naštudiram socket() in connect()?
Zgodovina sprememb…
- spremenilo: St753 ()
Invictus ::
Da se ne bom preveč trudil razlagat, kaj rabim narest (in pomotoma kaj narobe povedal), bom nalepil kar link: Seminarska
Svašta ...
Že cel kup napak samo v uvodu. In kaj naj bi bil okvir? Niso seznanjen z najnovejšim bluzenju pri prevajanju angleških pojmov v slovenščino ...
"Life is hard; it's even harder when you're stupid."
http://goo.gl/2YuS2x
http://goo.gl/2YuS2x
St753 ::
Segment: layer 4 - transportni sloj
Paket: layer 3 - internetni/omrežni sloj
Okvir: layer 2 - povezavni (data link) sloj
Paket: layer 3 - internetni/omrežni sloj
Okvir: layer 2 - povezavni (data link) sloj
Mavrik ::
Svašta ...
Že cel kup napak samo v uvodu. In kaj naj bi bil okvir? Niso seznanjen z najnovejšim bluzenju pri prevajanju angleških pojmov v slovenščino ...
Okvir je zelo lep prevod besede "frame".
The truth is rarely pure and never simple.
black ice ::
Okvir si jaz razlagam kot datagram na Layerju 2.
S temi prevodi je vedno križ, če nočeš nesporazumov je za vsak primer priporočljivo dopisati pojme v angleščini. Vsaj kar se omrežij tiče.
Edit: Sta me že dva prehitela.
S temi prevodi je vedno križ, če nočeš nesporazumov je za vsak primer priporočljivo dopisati pojme v angleščini. Vsaj kar se omrežij tiče.
Edit: Sta me že dva prehitela.
Zgodovina sprememb…
- spremenilo: black ice ()
MrStein ::
Se mi zdi, da smo malo zašli... Sej ne bom sam pretvarjal v fizične nivoje, ravno to je napisano zgoraj ("protokol, ki ga moram spisati, bo za osnovo prenosa uporabljal protokol TCP/IP"). Vse kar rabim je par funkcij v c-ju, ki vzpostavi komunikacijo z vnaprej podanim IP naslovom in portom in branje podatkov iz tega porta.
socket();
/*bind();*/
connect();
raw socketi nimajo številko porta, pardon "vrat".
Motiti se je človeško.
Motiti se pogosto je neumno.
Vztrajati pri zmoti je... oh, pozdravljen!
Motiti se pogosto je neumno.
Vztrajati pri zmoti je... oh, pozdravljen!
St753 ::
Potem raw socket ja ali ne? Rečeno je bilo, da dobimo IP naslov IN št. porta...
Kako pa je z branjem oz. prejemanjem podatkov? Funkcija recv(); mogoče?
Kako pa je z branjem oz. prejemanjem podatkov? Funkcija recv(); mogoče?
MrStein ::
Motiti se je človeško.
Motiti se pogosto je neumno.
Vztrajati pri zmoti je... oh, pozdravljen!
Motiti se pogosto je neumno.
Vztrajati pri zmoti je... oh, pozdravljen!
Zgodovina sprememb…
- spremenil: MrStein ()
St753 ::
Kje pa dobim file pointer, ki ga dam funkciji read()? Od connect()?
Edit: sem videl, da je stvar opisana v podanem linku. Si bom prebral.
Edit: sem videl, da je stvar opisana v podanem linku. Si bom prebral.
Zgodovina sprememb…
- spremenilo: St753 ()
MrStein ::
Imaš delujoč primer tam: client.c
Motiti se je človeško.
Motiti se pogosto je neumno.
Vztrajati pri zmoti je... oh, pozdravljen!
Motiti se pogosto je neumno.
Vztrajati pri zmoti je... oh, pozdravljen!
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | razlika med OSI in TCP/P modelomaOddelek: Omrežja in internet | 5072 (959) | enxtip |
» | Podatkovna diodaOddelek: Informacijska varnost | 4796 (4172) | vostok_1 |
» | 16. Kakšna je razlika med lokalnim omrežjem in internetom?Oddelek: Šola | 2148 (1638) | Invictus |
» | Ne razumem teh naslovov IP :)Oddelek: Omrežja in internet | 11468 (10136) | SasoS |
» | MAC - IPOddelek: Omrežja in internet | 5049 (4764) | korenje_ver2 |