Řekněte mi, jak funguje bitcoin #10: Internet v internetu, třetí část

Řekněte mi, jak funguje bitcoin #10: Internet v internetu, třetí část

V minulém díle jsme probírali kódování a předtím číselné soustavy a způsob, jak počítač zpracovává data. Dnes je na řadě protokol internetu, pakety, servery, URL, P2P sítě, www a digitální certifikáty.

TCP/IP protokoly

Internet je komunikace. Když se dva a více počítačů chtějí dorozumět, musí mluvit stejnou řečí. To je protokol. Analogicky: tato sekvence znamená písmeno „A“, „B“ atd. Internet používá IP – Internet protokol. Každé zařízení, které chce být připojeno k internetu, se musí prezentovat IP adresou, aby ostatní věděli, kam mají odesílat svá data. IP adresu samozřejmě tvoří číslo složené z bitů. Každá část po určitém počtu bitů má svůj význam spojený s lokalitou a umístěním v síti.

Transmission Control Protocol/Internet Protocol vyplynul z výzkumu a vývoje Defense Advanced Research Project Agency (DARPA), který probíhal na konci 60. let. Po zahájení průkopnického ARPANETu v roce 1969, DARPA začala pracovat na celé řadě dalších dat přenášejících technologií. V roce 1972 se Robert E. Kahn připojil k DARPA, přesněji na pracoviště zabývající se zpracováním informací, kde pracoval na obou sítích, jak na satelitní, paketové síti, tak na pozemních, radio-paketových sítí a zjistil, že je možné komunikovat přes obě.

Konstrukce sítě obsahovala rozeznávání, které mělo poskytnout jedinou funkci, a to efektivní vysílání a směřování provozu mezi koncovými uzly, a dále, že ostatní inteligence by měly být umístěny na kraji sítě, v koncových uzlech. Pomocí jednoduchého designu se stalo možným připojit téměř jakoukoli síť k ARPANETu, bez ohledu na místní charakteristiky, čímž se vyřešil tzv. Kahnův problém.

Počítač, který nazveme routerem je vybaven rozhraním pro každou síť. Předává mezi nimi pakety tam a zpět. Původně byl router nazýván bránou (gateway), ale tento termín byl změněn, aby se předešlo zmatku, či záměnou s jinými typy bran.

TCP

TCP protokol je nejpoužívanějším protokolem transportní vrstvy internetu. Protokol zaručuje odesílání a doručování dat ve stejném pořadí, a to opakovaným odesíláním ztracených nebo poškozených paketů přes nespolehlivou síť, čímž řeší problém byzantských generálů.

Aplikace posílá proud (stream) bajtů TCP protokolu k doručení sítí, TCP rozděluje proud bajtů do přiměřeně velkých segmentů. Velikost segmentů je určena parametrem MTU (maximum transmission unit) linkové vrstvy sítě, ke které je počítač připojen. TCP pak předá takto vzniklé pakety IP protokolu k přepravě internetem do TCP modulu na druhé straně TCP spojení. TCP ověří, že se pakety neztratily tím, že každému paketu přidělil pořadové číslo, které se také použije k ověření, že data byla přijata ve správném pořadí.

TCP modul na straně příjemce posílá zpět potvrzení pro pakety které byly úspěšně přijaty. Pokud by se odesilateli potvrzení nevrátilo do rozumné doby (dané obousměrným zpožděním, anglicky round-trip time, RTT), vypršel by odesilatelův časovač a (pravděpodobně ztracená) data by vyslal znovu.

TCP protokol ověřuje, zda přenesená data nebyla poškozena šumem tím, že před odesláním spočte kontrolní součet, uloží jej do odesílaného paketu a příjemce kontrolní součet vypočte znovu a ověří, že se shodují.

Detail

K rozlišení komunikujících aplikací používá TCP čísla portů. Dobře známé aplikace běžící jako servery a pasivně přijímající spojení typicky používají tyto porty. Několik příkladů: FTP (port 21 a 20), DNS (Domain Name Service, port 53) a HTTP (port 80).

Pakety

Data se v internetu šíří formou malých balíčků dat, tzv. paketů. O to, že dorazí všechny, na správné místo a od původního zdroje, aby se vám na druhé straně zobrazil celý obrázek nebo přehrál film, zodpovídá TCP, transmittion control protokol (protokol pro kontrolu přenosu).

Cesta paketů většinou nebývá přímá, protože internet používá obrovské množství zařízení. Aby „to nestálo“, řídí provoz dat tzv. routery (směrnice). Pokud se něco stane, přesměrují pakety jinou cestou, což dělá síť robustní cíleným útokům. Pro bitcoin jedině dobře.

Škálovatelnost

Škálovatelnost neboli rozšiřitelnost, je důležitá vlastnost telekomunikačních systémů, a znamená schopnost přizpůsobovat se vzrůstající zátěži. Routery lze snadno přidávat a škálovat tím internet. Pokud vzroste počet připojených zařízení, tak rychlost neklesne.

Tento seriál se dostane až k řešení škálovatelnosti bitcoinu (the scalability problem) – protože s vyšším počtem transakcí neúměrně rostou transakční poplatky, příp. zpoždění (blok je velký jen 1 MB a uvolní je striktně každých 10 minut, bez ohledu na vyšší počet transakcí, což vede v krajních případech k zahlcenosti).

Klient-server a peer-to-peer síť

Klient-server je síť, kde je komunikace mezi připojenými účastníky vedena a řízena tzv. klientským serverem, peer-to-peer (kolega-kolega) síť je propojení na stejné úrovni bez řídícího serveru (někdy je jeden účastník klientem a druhý serverem, jindy zase naopak).

P2P

Peer To Peer má jednu zásadní výhodu oproti klient-server mechanismům, a tou je neomezená škálovatelnost. To znamená, že s dalšími a dalšími propojenými členy P2P sítě roste přenosová kapacita. Klient-server má svůj limit, protože je centralizovaný a služby poskytuje jeden server.

Této vlastnosti kryptoměny (a decentralizované sítě obecně) právě využívají a stávají se díky tomu lépe odolné vůči útokům zahlcením požadavky (DDoS, více dále) nebo přímým útokům na centrum.

DNS servery

DNS znamená domain name system (systém doménových názvů). Slouží k párování jednoduché adresy webu (domény) s IP adresou serveru, na kterém běží. Proč? Protože jinak bychom si museli pamatovat dlouhé řetězce čísel.

Když DNS server název domény ve své databázi nenajde, připojí se k ostatním DNS serverům a zeptá se jich. Takových serverů najdeme v internetu obrovské množství a není problém přidávat další a zvyšovat množství různých adres, což je další znak škálovatelnosti.

HTTP protokol

HTTP protokol (Hyper Text Transfer Protocol – hypertertextový přenosový protokol) propojuje adresy a hlavně umožňuje, abyste klikli na hypertextový odkaz (ve formě tlačítka, podtrženého textu, reklamy atd.) a dostali se na jinou stránku. Je realizován požadavky typu „dej mi kód této stránky“ (get) nebo „posílám ti data z vyplňovacího formuláře“ a stojí za zobrazováním webových stránek. Hierarchicky patří pod protokoly IP a TCP.

WWW síť

Propojováním hypertextových odkazů vzniká WWW síť (World Wide Web – „celosvětová síť“). Většina webových stránek (dnes už se to nezobrazuje) začíná právě těmito třemi malými písmeny. Co když ale ne? Pak přistupujete přímo na konkrétní internetový server přes zadanou IP adresu a vaše připojení nezprostředkuje DNS server.

URL

URL (Uniform Resource Locator – lokátor zdroje) je to, co zadáváte do adresního řádku ve svém prohlížeči.

HTML jazyk

HTML (Hyper Text Markup Language – hypertextový značkovací jazyk) je způsob, jak zapsat webovou stránku, aby si ji dokázal zobrazit internetový prohlížeč. HTML jazyk má proto spoustu verzí a s každou další přibývají nové funkce, kterým starší prohlížeče nemusejí rozumět (jde především o dynamické prvky). Svým způsobem jde o programovací jazyk.

Bitcoin nemá žádný univerzální programovací jazyk – uzly jde naprogramovat v Javě, C++, Go nebo Pythonu (i když originálně byl naprogramován v C++).

Útoky

DDos

Distributed denial of service, neboli distribuované (prováděné z více míst) odepření služby, je většinou považované za spamový útok. Více lidí, než je schopen internetový server zvládnout, se připojí ve stejném okamžiku, a chce zobrazit webovou stránku nebo se přihlásit.

Obecně je těžké tyto útoky odhalit. Používá se k tomu specializovaná umělá inteligence. Ve chvíli, kdy jsou totiž intenzivní přístupy realizovány z více různých míst, je obtížné rozeznat útok od přístupové špičky.

Ostatní útoky nás nebudou zajímat, protože přímo nesouvisejí s Bitcoinem.

Finální mapa internetu

Shňme si internetovou strukturu a místo bitcoinu.

  • Jednotlivé servery, počítače, tablety, mobily, chytré hodinky, chytrá auta, ledničky, bankovní terminály atd.
    • TCP/IP komunikace
    • Místní routery (Wi-Fi)
  • Optická vlákna
  • Internetový poskytovatel (větší uzel v síti), DNS servery
    • Routery
    • Optická vlákna, mobilní internet

Bitcoin protokol je na úrovni TCP/IP protokolu. Nezáleží na přenašeči (opravdu – existuje i Kryptoradio), takže bitcoin může fungovat i v primitivních podmínkách po atomové válce. Bitcoin ale využívá obrovské struktury, kterou internet poskytuje. Teoreticky, kdokoliv se může připojit ke komukoliv. Bez internetu by bitcoin musel využít jinou síť nebo vybudovat novou – jde především o propojení. Program na něm může běžet jakýkoliv, ale pro chod bitcoinu je nutné mít navzájem spojeno více počítačů. Proto existuje např. kryptorádio. Nikdo ovšem nevylučuje i kryptomorseovku.

Vrstvy

Podívejme se na internet podíváme i ze softwarového hlediska.

Zdroj: https://www.webopedia.com/quick_ref/OSI_Layers.asp

Bitcoinové uzly komunikují na transportní vrstvě internetu, tedy na TCP.

Topologie sítí

  • Sběrnicová (BUS) – spojovací kabel prochází kolem všech počítačů a nerozvětvuje se

Zdroj: https://commons.wikimedia.org/wiki/File:NetworkTopology-Bus.png

  • Hvězdicová (STAR) – všechny do jednoho

Zdroj: https://commons.wikimedia.org/wiki/File:Hvězdicová_topologie.png

  • Kruhová (RING) – spojení obou konců sběrnice

Zdroj: https://commons.wikimedia.org/wiki/File:Kruhová_topologie.PNG

  • Stromová (TREE) – propojení hvězdicových sítí

Zdroj: https://commons.wikimedia.org/wiki/File:NetworkTopology-Tree.png

  • Obecný graf (grafem myšleno uspořádání bodů a jejich spojů) – obsahuje spoje navíc
  • Virtuální – softwarově nasimulované

Digitální certifikáty

Digitální certifikáty jsou nezbytné pro pochopení chytrých smluv – posledního a nejvyššího levelu kryptografie. Spočívají v podepisování veřejných kryptografických klíčů internetových služeb a v podstatě garantují řešení problému naprostého zveřejnění, protože vám říkají:

„Stránka, kterou si prohlížíš, je šifrovaná. Abys měl garanci, že veřejný klíč, s nímž ji budeš dešifrovat, skutečně náleží jejímu provozovateli a že jí nikdo nepadělá, tak já si provozovatele ověřím a klíč podepíšu (podepsaný veřejný klíč je ten certifikát). Když je ten klíč tedy podepsaný mnou, tzv. certifikační autoritou (můj podpis si musíš ověřit jinak), patří skutečně té webové stránce a tvoje komunikace je plně zabezpečená tzv. Secure Socket Layer protokolem (SSl, zelený zámeček v adresním řádku prohlížeče).“

Detailnější informace o fungování digitálního certifikátu naleznete i v tomto článku.

Závěr

V dnešním příspěvku jsem opravdu hojně bral informace z Wikipedie, tak nebuďte zklamaní, že některé pasáže jsou dokonce jen lehce pozměněné od původních specializovaných článků. Teď víme, jak fungují počítačové sítě, a proto můžeme v dalším díle pochopit, jak funguje Bitcoinová síť.

Zdroje

https://cs.wikipedia.org/wiki/TCP/IP

https://cs.wikipedia.org/wiki/Transmission_Control_Protocol

https://cs.wikipedia.org/wiki/Hypertext_Transfer_Protocol

https://cs.wikipedia.org/wiki/Internet

Sdílet příspěvek

Napsat komentář

Tato stránka používá Akismet k omezení spamu. Podívejte se, jak vaše data z komentářů zpracováváme..