Chyba. V tom Vasem priklade neco chybi. Takze soucasny stav:
1] uzivatel stahne program
2] spusti
3] posle kod protistrane
1] protistrana stahne program
2] spusti
3] vytuka kod
Hotovo.
S ipv6:
1] uzivatel stahne program
2] spusti
3] oznami sve ipv6 protistrane
4] nakonfiguruje prichozi firewall pro ipv6 adresu protistrany
(5] natuka kod)
1] protistrana stahne program
2] spusti
3] natuka ziskanou ipv6 adresu (zkuste to telefonicky)
4] oznami svou ipv6 adresu
(5] natuka kod)
Hotovo.
Moc se to nezjednodusilo.
On ten firewall na SOHO routeru nemusí být úplně restriktivní, můžeš mít povolený nějaký porty dovnitř. Pak je firewall na tom komplu, který zahodí přístup z dalších portů, který ten kompl nepoužívá. Z IP stacku vypadne klasický socket, otevřený na konkrétní IP adresu a port. A s ním aplikace normálně funguje. Autentizaci "tím kódem" si řeší aplikace lokálně.
Pro předání IP adresy může být použitý "pevný bod" někde mimo, ukážu ti to na příkladu šachů. A je počítač hráče A (bílý figurky), B je počítač hráče B, S je server provozovatele
IPV4
Hráč A Otevře program, vygeneruje partii, zobrazí se mu její číslo
1. A: mrkne do DNS na adresu sachy.gamesy.com
2. A->S: Tady A, generuji partii 3135456
3. S->A: OK
4. A->S: Chce někdo hrát partii 3135456?
5. S-> A: Ne
6. Opakuje 4 a 5, dokud se někdo nepřihlásí (S nemá jak ho kontaktovat skrz NATy)
Hráč B dostane číslo hry, otevře program a zadá její číslo
7. B: mrkne do DNS na adresu sachy.gamesy.com
8. B->S: Tady B, chci hrát partii 3135456
9. S->B: Ok
10. 4. A->S: Chce někdo hrát partii 3135456?
11. S-> A: Ano
Hráč A táhne
12. A->S: Figurka z pole X na pole Y
13. S->A: OK
14: B->S: Jak táhl protihráč?
15: S->B : Figurka z pole X na pole Y
Hráč B přemýšlí:
16: A->S: Jak táhl protihráč?
17: S->A: Zatím nijak
18: Opakuj 16 a 17, dokud B netáhne
Hráč B táhne:
19. B->S: Figurka z pole X na pole Y
20. S->B: Ok
21. A->S: Jak táhl protihráč?
22. B->S: Figurka z pole X na pole Y
23. B->S: Jak táhl protihráč?
....
IPv6
Hráč A Otevře program, vygeneruje partii, zobrazí se mu její číslo
1. A: mrkne do DNS na adresu sachy.gamesy.com
2. A->S: Tady A, generuji partii 3135456
3. S->A: OK
Hráč B dostane číslo hry, otevře program a zadá její číslo
4. B: mrkne do DNS na adresu sachy.gamesy.com
5. B->S: Tady B, chci hrát partii 3135456
6. S->B: Partii má připravenou A
7. B->A: Ahoj, chci hrát partii 3135456
8. A->B: Ok, začínáme
Hráč A táhne
12. A->B: Figurka z pole X na pole Y
13. B->A: OK
Hráč B přemýšlí:
(nic se neděje, až se rozmyslí, následuje krok 14)
Hráč B táhne:
14. B->A: Figurka z pole X na pole Y
15. A->B: Ok
...
Takže rozdíly jsou, že v IPv4 je potřeba tlumočník mezi A a B se vším, co z toho plyne
1) Až o několik řádů vyšší provoz na serveru provozovatele u IPv6 (dotazy na začátek hry, odpovědi a celá hra)
2) Hra je kvantována rychlostí dotazování na server - pokud bude 1s, tak si prostě rapid šachy nedáš.
3) Mimo navázání spojení nepotřebuješ v 6ce kontaktovat server hry
4) U IPv4 je vyšší latence - S musí přijmout požadavek, ověřit, uložit do DB a na dotaz ho znovu najít,
5) U IPv6 během vlastní hry nepotřebuješ server, tzn. pokud je hráč u stejnýho ISP, nejde komunikace na server do Tramtárie a stejnou cestou stejná informace zpátky
No a u jiných her, třeba u závodniček, stříleček atd. se rychlejší odezva a menší traffic (nebo víc dat při stejným trafficu) taky docela hodí.
Jo, a ještě jak nakousla Kate, provozovateli serveru není jedno, jestli při stejné hře má pronajatý nějaký dvoujádro s jednoduchou appkou na ukládání partie a IP adresy do DB, nebo tři racky plný serverů a load balancery na 40Gbps lince. Ani z pohledu ceny železa, ani z pohedu ceny hostingu, ani z pohledu energetické náročnosti (a to ani ekonomicky, ani ekologicky)
Tak ohledně IPv6, firewall na zařízení a na routeru zabíjím "soukromý" věci jako NFS, Sambu, CUPS apod. Nemám zapotřebí, aby si u mě někdo něco tiskl, nebo se hrabal na diskách.
No a zvenčí je samozřejmě dobrý zabít pakety se zdrojovou adresou, která se shoduje s prefixem routeru. + pár dalších věcí, na který nejsem zvědavý...