Konference: Počítač SHARP MZ-800 a emulátory

Od: Martin Lukasek
Datum: 19.10.2013 19:54
Předmět: RE: Stare projekty (Unikarta)


Nechci se poustet do vetsich debat, zase tak kovany v tom nejsem, rozumi tomu kolegove v praci, ale DNS Ti pres router s NAT projde, protoze ten tomu DNS protokolu rozumi a vi, co ma cekat, ale jak vi, ze ma prijit UDP paket zpet na nejakou prioprietarni komunikaci z Sharpa. Zevnitr ven to UDP projde, ale musi se Ti vratit zpet a to jde jen, pokud router zna protokol, ne?

 

Martin

 

From: Radek Suk (sharpemu tu byla ta zakroucena vec pandora.cz) [mailto:suk tu byla ta zakroucena vec softex.cz]
Sent: Saturday, October 19, 2013 9:50 PM
To: Konference "Počítač SHARP MZ-800 a emulátory"
Subject: Re: Stare projekty (Unikarta)
Importance: Low

 


Martine UDP zcela bezproblemove projde pres NAT. Take neni problem aby to proslo pres Firewall. Take s verejnou a neverejnou ip adresou to funguje stejne jako u TCP. U neverejne ip musi
vzdy zahajit komunikaci strana co ma neverejnou ip adresu a to plati jak pro TCP tak pro UDP. Existuji vyjimky ale ty nejsou bezne - pak musi byt nastaveno napr. mapovani portu.

Zakladni a hlavni rozdil je v tom ze TCP zajisti na 100% doruceni paketu a i poradi doruceni. UDP to posle ale negarantuje ze kdyz se to na ceste nekde potrati tak se to posle znovu. Proste UDP si
musi samo hlidat poradi a pripadne chyby na ceste resit. Takze paradoxne se to lepe implementuje a na trivialni veci jako je treba ten program "had" pro 6 lidi je to mozna lepsi.

Umim si predstavit program co posle na tvuj server UPD paket na port 2222. Tvuj server ho zduplikuje a posle ho vsem ostatnim. Takto ostatni vedi co kdo stisknul a muzou si vypocitat pozici hadu.
Samozrejme ze by to slo udelat pres TCP.

Jinak nezapomente ze jeden zakladni protokol a to DNS bezi na UDP port 53 a kdyz nebude fungovat tak si neprelozite jmeno na ip adresu!

Radek




Dne 19.10.2013 20:38, Martin Lukasek (sharpemu tu byla ta zakroucena vec pandora.cz) napsal(a):

Ahoj,

 

parada, o necem podobnem relativne jednoduchem jmse mluvili i s Bohousem a klukama na Bytefestu. Otazka zni, jestli ma cenu vubec psat to UDP, protoze neprojde pres NAT, a malokdo bude mit na Sharpu verejnou IP ;-) Moc prilezitosti na setkani taky neni, kde bychom to vyuzili. Takze ja myslim, ze TCP staci. Ja bych k tomu pak treba napsal nejaky server, ktery by umoznil jednoduche pripojeni vice klientu soucasne a vsechno posilal vsem. Strcil bych to pak na pevnou IP. Takto by se dalo zagamesit sitove nabo zachatovat apod.

 

Je nekde ta nova verze Ushellu?

 

Krasny vecer

 

Martin

 

 

From: Michal Hučík (sharpemu tu byla ta zakroucena vec pandora.cz) [mailto:ordoz tu byla ta zakroucena vec ordoz.com]
Sent: Saturday, October 19, 2013 12:25 AM
To: Konference "Počítač SHARP MZ-800 a emulátory"
Subject: Stare projekty (Unikarta)
Importance: Low

 

Ahoj,

po par mesicich jsem se opet dostal k Unikarte. Chvili jsem blbnul s webserverem, ve kterem mi bezela aplikace pro spravu Unikarty, ale v zapeti jsem jej zavrhnul, protoze pameti nemame nazbyt. Proto jsem akorat priohnul stavajici USARTshell tak, aby jej bylo mozne prepnout  bud na RS232, nebo na TCP a  prejmenoval jsem jej na Ushell :)

Uz mam i jakousi ucelenejsi predstavu o tom jak by melo vypadat API.

Fyzicka vrstva je na sharpu dle meho nazoru zbytecna. Omezil bych se asi jen na funkci, ktera precte z registru ENC29J60 stav linky up/down.

Aplikacni vrstva - na tu tam nemame uz prilis mnoho pameti. Pokud nejaka bude nadbyvat, tak tam chci dat dns resolver a dhcp klient ... Kdyz se mi podari carovat s volnym mistem, tak treba i http a smtp klient, atp...

Samotne API pro praci se siti bude realizovano v duchu zjednodusenych BSD sockets. Bude mozne otevrit omezene mnozstvi UDP, nebo TCP socketu. Dale bude mozne otevrit anonymni socket, ktery bude naslouchat na urcenem TCP portu a umozni Sharpu zareagovat na prichozi TCP spojeni.

( U protokolu UDP neni v tuto chvili zadny anonymni listening mozny. Mam predstavu jak to tam dopsat, nicmene potrebuje nekdo psat serverovou UDP aplikaci?)

S otevrenym socketem bude mozne pracovat jako se souborem. Pri zapisu (odesilani packetu) jsme vsak limitovani pameti - Unikarta se musi starat i o retransmit v pripade nedoruceni packetu. K tomuto ucelu bude zrejme potreba vymyslet vice odesilacich rezimu, ktere budou odesilat data jak automaticky po naplneni bufferu, tak i manualne - dle potreby. Nasledne si bude muset Sharp pockat na to az od protistrany prijde ACK - potvrzeni o prijeti packetu. Do te doby se nebude smet ze Sharpa na odesilaci buffer vubec sahat (pokud tedy pro konfort neobetujeme vice pameti tak, aby velikost bufferu prevysovala max velikost odesilaneho packetu).
Bude tam tedy muset existovat nejaky transportni semafor. K tomuto ucelu bude samozrejme fajn mit moznost naprogramovat si interrupt system v Unikarte tak, aby nas zatahal za rukav jakmile bude mit opet volno.
Mam uz i jakousi predstavu o tom, ze by jsme tam mohli mit nejaky dynamicky buffer, jehoz rozlozeni by si kazdy mohl nastavit dle vlastnich preferenci a ovlivnovat tak potom cinnost jednotlivych periferii. Jen aby z toho pak nevzniknula pouze komplikovana programatorska hricka :)

Dnes jsem tedy kroutil maticky a dotahoval sroubky na Ushellu. Zde je report z prenosu dat Unikarta (SD) -> PC :

# ./a.out tcp:192.168.167.80:23 read sdmgr_cpm.DSK /tmp/sdmgr_cpm.DSK
    Unicard - TCP Shell
Sending Reset...
    OK:RESET
Sending Read...
    READ sdmgr_cpm.DSK
    OK:READ sdmgr_cpm.DSK
Receiving FSIZE: 0x000bdf00
Receiving Data.............
    OK:CLOSE 0x29a8fa20

*************************
* Size:        777984 B *
* Speed:   29640.87 Bps *
*************************

Tedy cca 230 kbps ...


Michal



---
POZOR! Provoz systému Pandora.cz bude k 30. listopadu 2013 ukončen.
Více informací: http://goo.gl/b99cI


---
POZOR! Provoz systému Pandora.cz bude k 30. listopadu 2013 ukončen.
Více informací: http://goo.gl/b99cI

 


---
POZOR! Provoz systému Pandora.cz bude k 30. listopadu 2013 ukončen.
Více informací: http://goo.gl/b99cI


Ostatní příspěvky vlákna:

 
[2013/1 (17)] [2013/2 (52)] [2013/3 (60)] [2013/4 (68)] [2013/5 (60)] [2013/6 (42)] [2013/7 (9)] [2013/8 (48)] [2013/9 (1)] [2013/10 (40)] [2013/11 (45)]


[1999 (1)] [2000 (168)] [2001 (733)] [2002 (459)] [2003 (654)] [2004 (224)] [2005 (105)] [2006 (182)] [2007 (201)] [2008 (294)] [2009 (363)] [2010 (782)] [2011 (522)] [2012 (642)] [2013 (442)]