UDP protokol brainstorming

poruka: 1
|
čitano: 1.397
|
moderatori: XXX-Man, vincimus
1
+/- sve poruke
ravni prikaz
starije poruke gore
16 godina
neaktivan
offline
UDP protokol brainstorming

Hola.

 

Pravilo broj jedan - tko mi savjetuje da se ostavim UDP-a i okrenem TCP-u, nek slobodno potrazi neki drugi thread.

 

Imam task dizajnirati novi highperformance protokol. Glavne karakteristike su da ispucava povelik broj malenih paketa i mora imati transport control jer je svaki paket bitan. Tipicni jeftin nacin za ostvarivanje transport controla je ACK/NAK kontrola, no ovo je pogodnije za velik MTU, a ne bas za sisteme koji spamaju pakete, i moglo bi zagusiti bandwidth vrlo skoro.

Malo sam istrazivao UDT, i iako ima odlican congestion control, nije mi prigodan zbog toga jer kod UDT-a, veci MTU je bolji.

 

NDA je poprilicno striktan pa ne mogu bas puno laprdati o sistemu, no u bazi s jedne strane se nalazi n agenata, s druge strane cluster (tj. bolje receno cloud) s brdom procesa koji procesiraju podatke s agenata. Average payload je 32-64 bytea, max 128.

S obzirom da bi bilo idealno da komunikacija bude jednosmjerna koliko god je to moguce, ideja na koju sam dosao je ova:

 

Init:

1. Agent salje sinkronizacijski paket u server cluster sa vrijednoscu brojaca i max. vrijednoscu brojaca

2. Server ACK-a sinkronizaciju

 

Best case Komunikacija:

1. Agent salje numerirane pakete i pritom inkrementira brojac. Poslani paketi se spremaju u history queue koji ima tocno onoliko mjesta, koliko i max vrijednost brojaca. Kad dostigne max vrijednost, resetira brojac na nulu i nastavlja.

2. Server prima pakete i inkrementira svoj brojac, i pritom pazi da pristigli paketi imaju tocan redoslijed. Takodjer kalkulira checksum paketa i testira da li je sve OK

 

Dupli paket fail:

1. Server ignorira dupli paket

 

Paket u pogresnom redoslijedu:

1. Server discarda paket i pocinje spamati agenta s paketom koji trazi nastavak komunikacije od odredjenog broja. Server nastavlja spamanje sve dok ne dobije paket s odgovarajucim brojem.

2. Cim agent primi resinkronizacijski paket od servera, pocinje iz historya slati pakete redom od broja koji server trazi, dok ne dodje do HEAD-a. Dupli paketi koje je server poslao se discardaju.

 

Missing packet:

- Ista procedura kao i za pogresan redoslijed.

 

Resync:

- Prilikom reseta brojaca, salje se resync paket da bi klijent znao da je server jos uvijek 'ziv'.

- Server ACK-a resync paket

 

U svim failovima, pokusaj resinkronizacije se ponavlja odredjeno vrijeme dok ne nastupi timeout - u tom slucaju se reportira greska i 'prekid' komunikacije.

 

 

Ideje, komentari, sugestije, kritike... :-)

Still awake, I continue to move along, cultivating my own nonsense....welcome to the wasteland, where you'll find ashes...nothing but ashes...
Poruka je uređivana zadnji put čet 3.3.2011 20:38 (Deus ex machina).
 
2 0 hvala 1
1
Nova poruka
E-mail:
Lozinka:
 
vrh stranice