Vlastný network protokol

JPu

Re:Vlastný network protokol
« Odpověď #15 kdy: 05. 01. 2015, 00:25:45 »
Veci sa maju takto. Nechcem robit protokol, ktory sa ma presadit vo svete, ani nijako rozsirene pouzivat. Chcel som si vytvorit vlastnu appku na komunikaciu a najlepsie aby boli spravy sifrovane este na strane klienta. Cize klient-server aplikaciu. Preto som sa pytal na ten vlastny protokol.


Sten

Re:Vlastný network protokol
« Odpověď #16 kdy: 05. 01. 2015, 00:37:52 »
Nový protokol má smysl, pokud přináší nové věci. Jak píše Franta, často je lepší prozkoumat stávající protokoly, protože umožňují věci, o kterých ani nevíte. XMPP má spoustu zajímavých vlastností, které málokdo implementuje (třeba SDP v XMPP pro (video)hovory), a zároveň spoustu věcí řeší spíš zvyklostmi než standardem (třeba nijak nevyžaduje použít TCP, SCTP by byla pro mobilní klienty lepší volba), takže pokud to udělá vaše aplikace, budete mít aplikaci, která umí ty zajímavé vlastnosti a zároveň umí komunikovat s existujícími aplikacemi/servery.

samozrejme, ze ma. problem je, jak takovy protokol oprostit od IPv4 a IPv6, ktera z principu zakotvenem v navrhu znemoznuje, aby komunikace byla anonymni vuci tretim stranam. nad necim podobnym uvazuji uz delsi dobu.

XMPP nevyžaduje IP adresy, všechny zmínky IP nebo TCP se týkají jen implementace přes TCP/IP, viz RFC 6120:
Citace
There is no necessary coupling of XML streams to TCP, and other transports are possible.  For example, two entities could connect to each other by means of HTTP as specified in XEP-0124 and XEP-0206.  However, this specification defines only a binding of XMPP to TCP.

Implementačně hodně volné je použití WebSockets (RFC 7395), které by se dalo postavit třeba nad Tor Hidden Services.

JPu

Re:Vlastný network protokol
« Odpověď #17 kdy: 05. 01. 2015, 00:43:31 »
A samozrejme ide aj o vyukovu cinnost, priucit sa niecomu novemu :)

Dzavy

Re:Vlastný network protokol
« Odpověď #18 kdy: 05. 01. 2015, 00:58:29 »
Veci sa maju takto. Nechcem robit protokol, ktory sa ma presadit vo svete, ani nijako rozsirene pouzivat. Chcel som si vytvorit vlastnu appku na komunikaciu a najlepsie aby boli spravy sifrovane este na strane klienta. Cize klient-server aplikaciu. Preto som sa pytal na ten vlastny protokol.

A co je za problém s XMPP+TLS, popř. OTR (http://wiki.xmpp.org/web/OTR)?

OMG

Re:Vlastný network protokol
« Odpověď #19 kdy: 05. 01. 2015, 07:38:25 »
Veci sa maju takto. Nechcem robit protokol, ktory sa ma presadit vo svete, ani nijako rozsirene pouzivat. Chcel som si vytvorit vlastnu appku na komunikaciu a najlepsie aby boli spravy sifrovane este na strane klienta. Cize klient-server aplikaciu. Preto som sa pytal na ten vlastny protokol.
fascinuje me, kdyz si nekdo rekne, ze udela nejenom vlastni aplikaci, ale i vlastni protokol... ja bych sel mozna jeste i do vyvoje vlastniho OS pro server i pro klienta a sifrovani bych si taky udelal vlastni... a snad jeste natahnout vlastni internet a zridit vlastni mobilni sit... a samozrejme pokud mas tyden casu navic, tak bych si udelal i vlastni HW s vlastnim CPU atd...
 ::)


Kolemjdoucí

Re:Vlastný network protokol
« Odpověď #20 kdy: 05. 01. 2015, 08:48:40 »
Ma zmysel robit vlastny sietovy protokol?

Má to smysl. Nový protokol s sebou nemusí nést historické nedokonalosti, zpětnou kompatibilitu a případné chyby v návrhu starého protokolu a může použít nové vlastnosti.
Nepočítej ale že s novým protokolem lehce uděláš díru do světa, to bude trvat hodně dlouho.

Kolemjdoucí

Re:Vlastný network protokol
« Odpověď #21 kdy: 05. 01. 2015, 08:52:15 »

Protokol si udělej, to je bez diskuze.
Šifrování zvládneš bez problémů, problémem je dneska ověření autenticity účastníků, na to je třeba protokol i aplikaci důkladně zařídit.

JPu

Re:Vlastný network protokol
« Odpověď #22 kdy: 05. 01. 2015, 11:51:59 »
Dakujem za vase nazory :). Naozaj nechcem prerazit s nejakym protokolom. Mna len zaujimalo, ze ak by som chcel vlastnu klient-server aplikaciu, ze ci je lepsie pouzit stavajuci protokol, alebo vytvorit si novy.

Tonda

  • *****
  • 630
    • Zobrazit profil
    • E-mail
Re:Vlastný network protokol
« Odpověď #23 kdy: 05. 01. 2015, 15:47:20 »
Vzhledem k pracnosti bych rozhodně použil existující protokol a knihovny implementující jeho podporu, je kravina psát sám něco co vyhovujícím způsobem už někdo udělal, tedy pokud je cílem dodat co nejefektivněji požadovanou aplikaci, pokud by tam byly nějaké studijní cíle, tak to může být jinak.

lord z

Re:Vlastný network protokol
« Odpověď #24 kdy: 05. 01. 2015, 15:54:00 »
Pises o sifrovani, takze asi ti jde o bezpecnosti. V tom pripade bych se zameril na jednoduchost. IMHO cokoli komplikovany je plny chyb...

Takze bych prosel existujici protokoly, jestli najdu nejaky o kterem si myslim ze implementace se neda pokazit.

- kdyz ne, tak bych vytvoril vlastni

- kdyz jo, tak bych pouzil existujici protokol, ale jeste bych se rozhodoval jestli ho implementovat sam, nebo pouzit knihovnu a udelat audit kodu...

Stan

Re:Vlastný network protokol
« Odpověď #25 kdy: 05. 01. 2015, 16:29:16 »
Nenech se vyprudit a s otevřeným srdcem a myslí se do toho pusť. Dokud jsi mladý a nemusíš živit rodinu, vymetání slepých uliček je skvělý způsob, jak se hodně naučit, navíc se značným přesahem do další témat. Obzvlášť když je to pro tebe i zábava.

j

Re:Vlastný network protokol
« Odpověď #26 kdy: 05. 01. 2015, 17:30:30 »
Dakujem za vase nazory :). Naozaj nechcem prerazit s nejakym protokolom. Mna len zaujimalo, ze ak by som chcel vlastnu klient-server aplikaciu, ze ci je lepsie pouzit stavajuci protokol, alebo vytvorit si novy.

Klient server je ovsem na IM zastaraly a z hlediska bezpecnosti nepouzitelny reseni. Pokud chces neco zajimavejsiho, tak to musi fungovat p2p. Nesmi v tom proste byt misto, kde muze probihat odposlech nebo i jen zjistovani aktivnich ucastniku.

Karel

Re:Vlastny network protokol
« Odpověď #27 kdy: 05. 01. 2015, 17:31:18 »
Jednotlivec tezko muze vyrobit neco lepsiho nez existujici protokoly. Uz jen z principu ze protokoly stavajici jsou:
....

Překvapilo by vás, kolikrát už jednotlivec něco zlepšil. Vy mít možnost cestovat v čase, tak vaše první zastávka by asi byl Linus v jeho studentských dobách. Samozřejmě za účelem toho mu vysvětlit, že jeho na koleni dělaný OS nikdy nemůže být lepší než stávající OS. Další zastávka CERN a vysvětlit tomu pánovi, že nějaké "www" je hloupost, když už tu máme Gopher. Co dál?

Zkrátka jednotlivec může vyrobit něco lepšího než stávající protokoly. Už jen z principu že protokoly stávající jsou:
1. Nedokonalé.

Zda se to povede zrovna autorovi otázky, o tom se polemizovat neodvažuji. Ale musím zásadně odmítnout vaše absolutní tvrzení. Protože je to z kategorie "už z principu nemůže létat nic, co je těžší než vzduch".

Karel

Re:Vlastný network protokol
« Odpověď #28 kdy: 05. 01. 2015, 17:48:03 »
Veci sa maju takto. Nechcem robit protokol, ktory sa ma presadit vo svete, ani nijako rozsirene pouzivat. Chcel som si vytvorit vlastnu appku na komunikaciu a najlepsie aby boli spravy sifrovane este na strane klienta. Cize klient-server aplikaciu. Preto som sa pytal na ten vlastny protokol.

Existuje jednoduché pragmatické pravidlo: v první fázi si napiště protokol vlastní. Příliš mnoho projektů skončilo na tom, že autor trávil týdny i měsíce implementací podmnožiny existujícího protokolu. Ono i jen naučit se existující protokol je leckdy úkol na semestr, což u projektu, co je jinak na dvě odpoledne, znamená problém. Lepší je udělat si vlastní a postupně (v horizontu dnů až týdnů) podle potřeby rozšiřovat. Pokud se projekt nějak ujme, tak pak je teprve vhodné zvážit migraci na existující protokol.

Ještě bych upozornil na past "existujících řešení". Pokud se budete snažit standardní protokol implementovat v takové kvalitě a rozsahu, aby s vaším SW mohl fungovat software někoho jiného, tak tím i v případě tak jednoduché věci jako je IM strávíte desítky hodin, možná spíše stovky. Pokud váš záměr od samého počátku není "chci spolupracovat se SW XYZ", tak začněte vlastním (byť naivním) protokolem a časovou investici do naučení se a implementace standardního protokolu nechte na pozdější fázi projektu. Pokud váš projekt budete dále rozvíjet, tak dříve nebo později poznáte ten okamžik, kdy je vhodné přejít na standardní protokol.

A nakonec jedna výjimka: pokud jsou pro standardní protokol dostupné kvalitní knihovny, tak bývá lepší sáhnout po nich. Jak knihovnu použít se dá nastudovat za pár hodin (spíše rychleji).

Karel

Re:Vlastný network protokol
« Odpověď #29 kdy: 05. 01. 2015, 18:04:45 »
Vzhledem k pracnosti bych rozhodně použil existující protokol a knihovny implementující jeho podporu, je kravina psát sám něco co vyhovujícím způsobem už někdo udělal, tedy pokud je cílem dodat co nejefektivněji požadovanou aplikaci, pokud by tam byly nějaké studijní cíle, tak to může být jinak.

Ono "použil existující protokol" a "knihovny implementující jeho podporu" jsou dvě různé věci. Rozhodně jsem pro použití existujících knihoven. Pokud ale neexistují, respektive ne zrovna v dobré kvalitě SW a dokumentace, tak bych se raději použitím existujícího protokolu nezalamoval. Dělal jsem program na synchronizaci adresářů mezi počítači. Rozhodl jsem se to udělat přes FTP protokol (roku 1996) a 80% času mi zabral právě ten FTP protokol. Od té doby vždy používám vlastní "binární" protokoly přímo nad TCP. Většina projektů mi umřela (nepodařilo se je dokončit nebo nakonec pro ně nebylo využití), tak jsem rád, že jsem netrávil na samém počátku desítky hodin implementací existujících protokolů. Co přežilo, tak nakonec nějaký ten standardní protokol dostalo. I když třebas LPD kladlo odpor dlouho a efektivně, protože právě tam byla situace u open source knihoven poměrně neutěšená (zlepšila se vůbec?)