Graduately/content/lessons/networks/unit-01.json
FBukovina f7470d333c Add the Next.js web app and shared lesson content.
Move lessons out of the C sources into JSON so the web client can use the same material as the desktop app, and point release builds at desktop/.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-09-17 16:06:15 +02:00

178 lines
7.4 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"id": "unit-01",
"subject": "networks",
"number": 1,
"titleKey": "net_unit1",
"subtitleKey": "net_unit1_sub",
"slides": [
{
"kicker": "1 / 4 • VLSM",
"title": "Podsíťování sítí",
"tip": "Tip: prefix /n = počet jedniček v masce. /24 = 255.255.255.0",
"lines": [
"Cíl: rozdělit jednu IP síť na menší podsítě podle počtu uzlů.",
"Pamatuj si tři role adres v každém bloku:",
"síťová = první adresa bloku",
"broadcast = poslední adresa bloku",
"uzly = vše mezi nimi (síť + 1 až broadcast − 1)"
]
},
{
"kicker": "2 / 4 • Velikosti",
"title": "Jak velký blok potřebuji?",
"tip": "Počet bitů pro uzly h = log₂(velikost), prefix = 32 − h",
"lines": [
"Pro X uzlů potřebuješ blok, do kterého se vejde X + 2 adresy (síť a broadcast).",
"Velikost bloku je vždy mocnina dvojky – vezmi nejmenší blok, který je větší nebo roven X + 2.",
"60 uzlů → 62 → blok 64 → /26",
"30 uzlů → 32 → blok 32 → /27",
"14 uzlů → 16 → blok 16 → /28",
"7 uzlů → 9 → blok 16 → /28"
]
},
{
"kicker": "3 / 4 • Postup",
"title": "Jak na to krok za krokem",
"tip": null,
"lines": [
"1. Seřaď podsítě od největší po nejmenší.",
"2. Pro každou najdi potřebný prefix.",
"3. Začni na síťové adrese ze zadání.",
"4. Rozsah podsítě = od síťové adresy po broadcast.",
"5. Rozsah uzlů = síťová + 1 až broadcast − 1.",
"6. Posuň se hned za broadcast a pokračuj dál."
]
},
{
"kicker": "4 / 4 • Příklad",
"title": "Ukázka: 10.0.0.0/24",
"tip": "A: 60 uzlů, B: 30, C: 14, D: 7",
"lines": [
"A → 10.0.0.0/26 uzly 10.0.0.1–10.0.0.62 broadcast 10.0.0.63",
"B → 10.0.0.64/27 uzly 10.0.0.65–10.0.0.94 broadcast 10.0.0.95",
"C → 10.0.0.96/28 uzly 10.0.0.97–10.0.0.110 broadcast 10.0.0.111",
"D → 10.0.0.112/28 uzly 10.0.0.113–10.0.0.126 broadcast 10.0.0.127"
]
}
],
"tasks": [
{
"number": 1,
"title": "VLSM",
"subtitleKey": "net_ex1_title",
"items": [
{
"kind": "subnet",
"scenario": "1.) Síť má adresu 10.0.0.0/24. Rozdělte ji do podsítí s následujícími požadavky:\n\nPodsíť A: 60 uzlů\nPodsíť B: 30 uzlů\nPodsíť C: 14 uzlů\nPodsíť D: 7 uzlů",
"solution": "A: 10.0.0.0/26 síť 10.0.0.0 uzly 10.0.0.1–10.0.0.62 broadcast 10.0.0.63\nB: 10.0.0.64/27 síť 10.0.0.64 uzly 10.0.0.65–10.0.0.94 broadcast 10.0.0.95\nC: 10.0.0.96/28 síť 10.0.0.96 uzly 10.0.0.97–10.0.0.110 broadcast 10.0.0.111\nD: 10.0.0.112/28 síť 10.0.0.112 uzly 10.0.0.113–10.0.0.126 broadcast 10.0.0.127",
"blocks": [
{
"prefix": 26,
"network": "10.0.0.0",
"broadcast": "10.0.0.63",
"firstHost": "10.0.0.1",
"lastHost": "10.0.0.62"
},
{
"prefix": 27,
"network": "10.0.0.64",
"broadcast": "10.0.0.95",
"firstHost": "10.0.0.65",
"lastHost": "10.0.0.94"
},
{
"prefix": 28,
"network": "10.0.0.96",
"broadcast": "10.0.0.111",
"firstHost": "10.0.0.97",
"lastHost": "10.0.0.110"
},
{
"prefix": 28,
"network": "10.0.0.112",
"broadcast": "10.0.0.127",
"firstHost": "10.0.0.113",
"lastHost": "10.0.0.126"
}
]
},
{
"kind": "subnet",
"scenario": "2.) Síť má adresu 172.16.0.0/16. Rozdělte ji do podsítí s následujícími požadavky:\n\nPodsíť A: 500 uzlů\nPodsíť B: 200 uzlů\nPodsíť C: 100 uzlů\nPodsíť D: 50 uzlů",
"solution": "A: 172.16.0.0/23 síť 172.16.0.0 uzly 172.16.0.1–172.16.1.254 broadcast 172.16.1.255\nB: 172.16.2.0/24 síť 172.16.2.0 uzly 172.16.2.1–172.16.2.254 broadcast 172.16.2.255\nC: 172.16.3.0/25 síť 172.16.3.0 uzly 172.16.3.1–172.16.3.126 broadcast 172.16.3.127\nD: 172.16.3.128/26 síť 172.16.3.128 uzly 172.16.3.129–172.16.3.190 broadcast 172.16.3.191",
"blocks": [
{
"prefix": 23,
"network": "172.16.0.0",
"broadcast": "172.16.1.255",
"firstHost": "172.16.0.1",
"lastHost": "172.16.1.254"
},
{
"prefix": 24,
"network": "172.16.2.0",
"broadcast": "172.16.2.255",
"firstHost": "172.16.2.1",
"lastHost": "172.16.2.254"
},
{
"prefix": 25,
"network": "172.16.3.0",
"broadcast": "172.16.3.127",
"firstHost": "172.16.3.1",
"lastHost": "172.16.3.126"
},
{
"prefix": 26,
"network": "172.16.3.128",
"broadcast": "172.16.3.191",
"firstHost": "172.16.3.129",
"lastHost": "172.16.3.190"
}
]
},
{
"kind": "subnet",
"scenario": "3.) Síť má adresu 192.168.10.0/24. Rozdělte ji do podsítí s následujícími požadavky:\n\nPodsíť A: 120 uzlů\nPodsíť B: 70 uzlů\nPodsíť C: 35 uzlů\nPodsíť D: 15 uzlů",
"solution": "Do sítě /24 se tyto požadavky nevejdou: A i B potřebují /25 (2 × 128 = 256 adres), na C a D už nezbude žádný blok. Při zachování velikostí by bylo nutné větší síť (např. /23).",
"blocks": null
},
{
"kind": "subnet",
"scenario": "4.) Síť má adresu 192.168.2.0/25. Rozdělte ji do podsítí s následujícími požadavky:\n\nPodsíť A: 50 uzlů\nPodsíť B: 25 uzlů\nPodsíť C: 12 uzlů\nPodsíť D: 5 uzlů",
"solution": "A: 192.168.2.0/26 síť 192.168.2.0 uzly 192.168.2.1–192.168.2.62 broadcast 192.168.2.63\nB: 192.168.2.64/27 síť 192.168.2.64 uzly 192.168.2.65–192.168.2.94 broadcast 192.168.2.95\nC: 192.168.2.96/28 síť 192.168.2.96 uzly 192.168.2.97–192.168.2.110 broadcast 192.168.2.111\nD: 192.168.2.112/28 síť 192.168.2.112 uzly 192.168.2.113–192.168.2.126 broadcast 192.168.2.127",
"blocks": [
{
"prefix": 26,
"network": "192.168.2.0",
"broadcast": "192.168.2.63",
"firstHost": "192.168.2.1",
"lastHost": "192.168.2.62"
},
{
"prefix": 27,
"network": "192.168.2.64",
"broadcast": "192.168.2.95",
"firstHost": "192.168.2.65",
"lastHost": "192.168.2.94"
},
{
"prefix": 28,
"network": "192.168.2.96",
"broadcast": "192.168.2.111",
"firstHost": "192.168.2.97",
"lastHost": "192.168.2.110"
},
{
"prefix": 28,
"network": "192.168.2.112",
"broadcast": "192.168.2.127",
"firstHost": "192.168.2.113",
"lastHost": "192.168.2.126"
}
]
}
]
}
]
}