Add network unit 11 on the seven ISO/OSI layers.

Unlock slides and a quiz covering each OSI layer so the networks path continues past the ISO/OSI vs TCP/IP overview.

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
pepaskopec-blip 2026-09-14 12:08:09 +02:00
commit 2a83b18cdf
5 changed files with 175 additions and 18 deletions

View file

@ -31,7 +31,7 @@ GTK 4 interface.
German learning path German learning path
- **Správa počítačových sítí / Computer Network Administration** is open too - **Správa počítačových sítí / Computer Network Administration** is open too
(shown with a Wi-Fi icon) and leads to a 30-unit computer-networks path; (shown with a Wi-Fi icon) and leads to a 30-unit computer-networks path;
**units 1–10 are playable**, units 11–30 are locked placeholders **units 1–11 are playable**, units 12–30 are locked placeholders
- **Technické vybavení / Computer Hardware** is open (chip icon) and leads - **Technické vybavení / Computer Hardware** is open (chip icon) and leads
to a 10-unit hardware path; **units 1–3 are playable**, units 4–10 are to a 10-unit hardware path; **units 1–3 are playable**, units 4–10 are
locked placeholders locked placeholders
@ -62,7 +62,7 @@ GTK 4 interface.
- **Hints & model answers** – in exercises where you write or complete a German - **Hints & model answers** – in exercises where you write or complete a German
sentence the Czech meaning is shown right away as a hint, and clicking the sentence the Czech meaning is shown right away as a hint, and clicking the
check button also reveals the correct German sentence so you can compare check button also reveals the correct German sentence so you can compare
- **Computer networks path** – ten unlocked units (theory slides + practice): - **Computer networks path** – eleven unlocked units (theory slides + practice):
1. **Výpočet IP adres / IP Address Calculation** – 4-slide VLSM walkthrough 1. **Výpočet IP adres / IP Address Calculation** – 4-slide VLSM walkthrough
and four interactive subnetting tasks (prefix, network, broadcast, host and four interactive subnetting tasks (prefix, network, broadcast, host
range) with check and “show solution” range) with check and “show solution”
@ -75,6 +75,7 @@ GTK 4 interface.
8. Přepojování – slides + quiz 8. Přepojování – slides + quiz
9. Vrstevnaté modely a protokoly – slides + quiz 9. Vrstevnaté modely a protokoly – slides + quiz
10. Model ISO/OSI a TCP/IP – slides + quiz 10. Model ISO/OSI a TCP/IP – slides + quiz
11. Podrobný rozbor 7 vrstev ISO/OSI – slides + quiz
Progress for networks is saved to `progress/net.conf` (one flag per unit); Progress for networks is saved to `progress/net.conf` (one flag per unit);
completed network units show a checkmark on the path and count in Statistics completed network units show a checkmark on the path and count in Statistics
- **Computer hardware path** – three unlocked units (theory slides + quiz): - **Computer hardware path** – three unlocked units (theory slides + quiz):
@ -297,12 +298,13 @@ When launched, the application shows the welcome screen. From there:
unit 2 or **"Bei uns zu Hause"** for unit 3, then pick any bubble to start unit 2 or **"Bei uns zu Hause"** for unit 3, then pick any bubble to start
an exercise. Units 2 and 3 are available even if the earlier units are not an exercise. Units 2 and 3 are available even if the earlier units are not
finished yet. finished yet.
5. On the networks path, units **1–10** are open. Unit 1 (**Výpočet IP adres**) 5. On the networks path, units **1–11** are open. Unit 1 (**Výpočet IP adres**)
walks through four VLSM slides and then four interactive subnetting tasks walks through four VLSM slides and then four interactive subnetting tasks
with check / “show solution”. Units 2–10 each have theory slides followed by with check / “show solution”. Units 2–11 each have theory slides followed by
a multiple-choice quiz (basic concepts, client–server/cloud, transmission a multiple-choice quiz (basic concepts, client–server/cloud, transmission
security, signals, path/channel/circuit, multiplexing, switching, layered security, signals, path/channel/circuit, multiplexing, switching, layered
models, ISO/OSI & TCP/IP). Units 11–30 stay locked placeholders. models, ISO/OSI & TCP/IP, and the seven ISO/OSI layers). Units 12–30 stay
locked placeholders.
6. On the hardware path, units **1–3** are open (architecture / von Neumann, 6. On the hardware path, units **1–3** are open (architecture / von Neumann,
computer history generations, bit & byte), each with slides and a quiz. computer history generations, bit & byte), each with slides and a quiz.
Units 4–10 stay locked. Units 4–10 stay locked.
@ -453,7 +455,7 @@ moderním GTK 4 rozhraním stylovaným přes CSS.
- **Deutsch** je otevřený (bublina s německou vlajkou) a vede na německou - **Deutsch** je otevřený (bublina s německou vlajkou) a vede na německou
učební cestu učební cestu
- **Správa počítačových sítí** je také otevřená (ikona Wi‑Fi) a vede na cestu - **Správa počítačových sítí** je také otevřená (ikona Wi‑Fi) a vede na cestu
s 30 jednotkami; **jednotky 1–10 jsou hratelné**, 11–30 jsou zamčené s 30 jednotkami; **jednotky 1–11 jsou hratelné**, 12–30 jsou zamčené
placeholdery placeholdery
- **Technické vybavení** je otevřené (ikona čipu) a vede na cestu - **Technické vybavení** je otevřené (ikona čipu) a vede na cestu
s 10 jednotkami; **jednotky 1–3 jsou hratelné**, 4–10 jsou zamčené s 10 jednotkami; **jednotky 1–3 jsou hratelné**, 4–10 jsou zamčené
@ -479,7 +481,7 @@ moderním GTK 4 rozhraním stylovaným přes CSS.
„Was siehst du?“, řazení vět, chybějící písmena) „Was siehst du?“, řazení vět, chybějící písmena)
- **Nápovědy a vzorové odpovědi** – u psaných / doplňovaných vět je hned - **Nápovědy a vzorové odpovědi** – u psaných / doplňovaných vět je hned
český význam; po kontrole se ukáže i správná německá věta český význam; po kontrole se ukáže i správná německá věta
- **Cesta počítačových sítí** – deset odemčených jednotek (snímky + cvičení): - **Cesta počítačových sítí** – jedenáct odemčených jednotek (snímky + cvičení):
1. **Výpočet IP adres** – 4 snímky VLSM a čtyři interaktivní úlohy 1. **Výpočet IP adres** – 4 snímky VLSM a čtyři interaktivní úlohy
(prefix, síť, broadcast, rozsah uzlů) s kontrolou a „ukázat řešení“ (prefix, síť, broadcast, rozsah uzlů) s kontrolou a „ukázat řešení“
2. Základní pojmy a rozdělení sítí – snímky + kvíz 2. Základní pojmy a rozdělení sítí – snímky + kvíz
@ -491,6 +493,7 @@ moderním GTK 4 rozhraním stylovaným přes CSS.
8. Přepojování – snímky + kvíz 8. Přepojování – snímky + kvíz
9. Vrstevnaté modely a protokoly – snímky + kvíz 9. Vrstevnaté modely a protokoly – snímky + kvíz
10. Model ISO/OSI a TCP/IP – snímky + kvíz 10. Model ISO/OSI a TCP/IP – snímky + kvíz
11. Podrobný rozbor 7 vrstev ISO/OSI – snímky + kvíz
Postup u sítí se ukládá do `progress/net.conf` (příznak na jednotku); Postup u sítí se ukládá do `progress/net.conf` (příznak na jednotku);
dokončené jednotky mají fajfku na cestě a počítají se ve Statistikách dokončené jednotky mají fajfku na cestě a počítají se ve Statistikách
- **Cesta technického vybavení** – tři odemčené jednotky (snímky + kvíz): - **Cesta technického vybavení** – tři odemčené jednotky (snímky + kvíz):
@ -711,12 +714,12 @@ Po spuštění se zobrazí úvodní obrazovka. Odtud:
4. Otevřete **"Neue Freunde"** (jednotka 1), **"Aus aller Welt"** (2) nebo 4. Otevřete **"Neue Freunde"** (jednotka 1), **"Aus aller Welt"** (2) nebo
**"Bei uns zu Hause"** (3) a vyberte bublinu cvičení. Jednotky 2 a 3 jdou **"Bei uns zu Hause"** (3) a vyberte bublinu cvičení. Jednotky 2 a 3 jdou
otevřít i bez dokončení předchozích. otevřít i bez dokončení předchozích.
5. Na síťové cestě jsou otevřené jednotky **1–10**. Jednotka 1 (**Výpočet IP 5. Na síťové cestě jsou otevřené jednotky **1–11**. Jednotka 1 (**Výpočet IP
adres**) má 4 snímky VLSM a pak 4 interaktivní úlohy s kontrolou / adres**) má 4 snímky VLSM a pak 4 interaktivní úlohy s kontrolou /
„ukázat řešení“. Jednotky 2–10 mají snímky teorie a kvíz s výběrem „ukázat řešení“. Jednotky 2–11 mají snímky teorie a kvíz s výběrem
(základní pojmy, klient–server/cloud, zabezpečení přenosu, signály, cesta/ (základní pojmy, klient–server/cloud, zabezpečení přenosu, signály, cesta/
kanál/okruh, multiplex, přepojování, vrstevnaté modely, ISO/OSI a TCP/IP). kanál/okruh, multiplex, přepojování, vrstevnaté modely, ISO/OSI a TCP/IP,
Jednotky 11–30 zůstávají zamčené. rozbor 7 vrstev ISO/OSI). Jednotky 12–30 zůstávají zamčené.
6. Na cestě technického vybavení jsou otevřené jednotky **1–3** (architektura / 6. Na cestě technického vybavení jsou otevřené jednotky **1–3** (architektura /
von Neumann, historie generací, bit a byte), každá se snímky a kvízem. von Neumann, historie generací, bit a byte), každá se snímky a kvízem.
Jednotky 4–10 zůstávají zamčené. Jednotky 4–10 zůstávají zamčené.
@ -760,8 +763,8 @@ exercise_u1.c cvičení jednotky 1 („Neue Freunde“)
exercise_u2.c cvičení jednotky 2 („Aus aller Welt“) exercise_u2.c cvičení jednotky 2 („Aus aller Welt“)
exercise_u3.c cvičení jednotky 3 („Bei uns zu Hause“) exercise_u3.c cvičení jednotky 3 („Bei uns zu Hause“)
settings.c panel nastavení (režim, téma, jazyk) settings.c panel nastavení (režim, téma, jazyk)
net.c cesta počítačových sítí (30 uzlů), jednotky 1–10 net.c cesta počítačových sítí (30 uzlů), jednotky 1–11
(1: VLSM cvičení; 2–10: kvízy s výběrem) (1: VLSM cvičení; 2–11: kvízy s výběrem)
hw.c cesta technického vybavení (10 uzlů), jednotky 1–3 hw.c cesta technického vybavení (10 uzlů), jednotky 1–3
(architektura, historie, bit/byte + kvízy) (architektura, historie, bit/byte + kvízy)
main.c vstupní bod aplikace a zapojení stránek main.c vstupní bod aplikace a zapojení stránek

22
i18n.c
View file

@ -257,6 +257,12 @@ const TrEntry tr_ui[] = {
"3 slides about ISO/OSI and TCP/IP, then a quiz."}, "3 slides about ISO/OSI and TCP/IP, then a quiz."},
{"net_ex10_title", "Kvíz: ISO/OSI a TCP/IP", {"net_ex10_title", "Kvíz: ISO/OSI a TCP/IP",
"Quiz: ISO/OSI and TCP/IP"}, "Quiz: ISO/OSI and TCP/IP"},
{"net_unit11", "Podrobný rozbor 7 vrstev ISO/OSI",
"Detailed review of the 7 ISO/OSI layers"},
{"net_unit11_sub", "8 snímků o jednotlivých vrstvách a pak kvíz.",
"8 slides about each layer, then a quiz."},
{"net_ex11_title", "Kvíz: 7 vrstev ISO/OSI",
"Quiz: 7 ISO/OSI layers"},
{"net_quiz_intro", {"net_quiz_intro",
"Vyberte u každé otázky jednu správnou odpověď a stiskněte Zkontrolovat.", "Vyberte u každé otázky jednu správnou odpověď a stiskněte Zkontrolovat.",
"Choose one correct answer for each question and press Check."}, "Choose one correct answer for each question and press Check."},
@ -278,6 +284,8 @@ const TrEntry tr_ui[] = {
"Quiz on layered models and protocols"}, "Quiz on layered models and protocols"},
{"net_quiz10_head", "Kvíz k ISO/OSI a TCP/IP", {"net_quiz10_head", "Kvíz k ISO/OSI a TCP/IP",
"Quiz on ISO/OSI and TCP/IP"}, "Quiz on ISO/OSI and TCP/IP"},
{"net_quiz11_head", "Kvíz k 7 vrstvám ISO/OSI",
"Quiz on the 7 ISO/OSI layers"},
{"net_slide_next", "Další", "Next"}, {"net_slide_next", "Další", "Next"},
{"net_slide_prev", "Zpět", "Back"}, {"net_slide_prev", "Zpět", "Back"},
{"net_slide_start", "Přejít na cvičení", "Go to the exercise"}, {"net_slide_start", "Přejít na cvičení", "Go to the exercise"},
@ -459,6 +467,20 @@ const TrEntry tr_content[] = {
"TCP/IP won because it came from real-world needs"}, "TCP/IP won because it came from real-world needs"},
{"V TCP/IP řeší spolehlivost až vyšší vrstvy", NULL, {"V TCP/IP řeší spolehlivost až vyšší vrstvy", NULL,
"In TCP/IP, reliability is handled by higher layers"}, "In TCP/IP, reliability is handled by higher layers"},
{"Fyzická vrstva přenáší bity a řeší médium", NULL,
"The physical layer transmits bits and handles the medium"},
{"Spojová vrstva má podvrstvy MAC a LLC", NULL,
"The data-link layer has MAC and LLC sublayers"},
{"Síťová vrstva směruje pakety i bez přímého spojení", NULL,
"The network layer routes packets even without a direct link"},
{"Transportní vrstva je jen v koncových uzlech, ne v routerech", NULL,
"The transport layer exists only in end nodes, not in routers"},
{"Relační vrstva řídí relace, dialog a synchronizaci", NULL,
"The session layer manages sessions, dialogue and synchronization"},
{"Prezentační vrstva formátuje data, komprimuje a šifruje", NULL,
"The presentation layer formats, compresses and encrypts data"},
{"Aplikační vrstva je rozhraní pro programy a služby", NULL,
"The application layer is the interface for programs and services"},
{"čtrnáct", NULL, "fourteen"}, {"čtrnáct", NULL, "fourteen"},
{"sedmnáct", NULL, "seventeen"}, {"sedmnáct", NULL, "seventeen"},
{"dvacet", NULL, "twenty"}, {"dvacet", NULL, "twenty"},

1
main.c
View file

@ -255,6 +255,7 @@ void activate(GtkApplication *app, gpointer user_data) {
{"netunit8", "netex8", build_net_unit8_page, build_net_unit8_exercise_page}, {"netunit8", "netex8", build_net_unit8_page, build_net_unit8_exercise_page},
{"netunit9", "netex9", build_net_unit9_page, build_net_unit9_exercise_page}, {"netunit9", "netex9", build_net_unit9_page, build_net_unit9_exercise_page},
{"netunit10", "netex10", build_net_unit10_page, build_net_unit10_exercise_page}, {"netunit10", "netex10", build_net_unit10_page, build_net_unit10_exercise_page},
{"netunit11", "netex11", build_net_unit11_page, build_net_unit11_exercise_page},
}; };
for (guint i = 0; i < G_N_ELEMENTS(net_pages); i++) { for (guint i = 0; i < G_N_ELEMENTS(net_pages); i++) {

View file

@ -58,7 +58,8 @@
#define NET8_SLIDES 4 #define NET8_SLIDES 4
#define NET9_SLIDES 4 #define NET9_SLIDES 4
#define NET10_SLIDES 3 #define NET10_SLIDES 3
#define NET_LESSONS 10 #define NET11_SLIDES 8
#define NET_LESSONS 11
#define HW_UNITS 10 #define HW_UNITS 10
#define HW_LESSONS 3 #define HW_LESSONS 3
#define HW_SLIDES 3 #define HW_SLIDES 3
@ -1078,6 +1079,7 @@ GtkWidget *build_net_unit7_page(void);
GtkWidget *build_net_unit8_page(void); GtkWidget *build_net_unit8_page(void);
GtkWidget *build_net_unit9_page(void); GtkWidget *build_net_unit9_page(void);
GtkWidget *build_net_unit10_page(void); GtkWidget *build_net_unit10_page(void);
GtkWidget *build_net_unit11_page(void);
GtkWidget *net_qz_combo(void); GtkWidget *net_qz_combo(void);
void net_qz_set_prefix(GtkComboBoxText *c, int pfx); void net_qz_set_prefix(GtkComboBoxText *c, int pfx);
int net_qz_prefix(GtkComboBoxText *c); int net_qz_prefix(GtkComboBoxText *c);
@ -1101,6 +1103,7 @@ GtkWidget *build_net_unit7_exercise_page(void);
GtkWidget *build_net_unit8_exercise_page(void); GtkWidget *build_net_unit8_exercise_page(void);
GtkWidget *build_net_unit9_exercise_page(void); GtkWidget *build_net_unit9_exercise_page(void);
GtkWidget *build_net_unit10_exercise_page(void); GtkWidget *build_net_unit10_exercise_page(void);
GtkWidget *build_net_unit11_exercise_page(void);
void activate(GtkApplication *app, gpointer user_data); void activate(GtkApplication *app, gpointer user_data);
int main(int argc, char **argv); int main(int argc, char **argv);

132
net.c
View file

@ -5,7 +5,7 @@
NetLesson net_lessons[NET_LESSONS] = { NetLesson net_lessons[NET_LESSONS] = {
/* UI unit N maps to lesson content: unit 1 = IP/VLSM (extra); /* UI unit N maps to lesson content: unit 1 = IP/VLSM (extra);
* units 2–10 = source topics 01–09 (Základní pojmy … ISO/OSI). */ * units 2–11 = source topics 01–10 (Základní pojmy … 7 vrstev ISO/OSI). */
{ .n_slides = NET_SLIDES, .unit_page = "netunit1", .ex_page = "netex1" }, { .n_slides = NET_SLIDES, .unit_page = "netunit1", .ex_page = "netex1" },
{ .n_slides = NET2_SLIDES, .unit_page = "netunit2", .ex_page = "netex2" }, { .n_slides = NET2_SLIDES, .unit_page = "netunit2", .ex_page = "netex2" },
{ .n_slides = NET3_SLIDES, .unit_page = "netunit3", .ex_page = "netex3" }, { .n_slides = NET3_SLIDES, .unit_page = "netunit3", .ex_page = "netex3" },
@ -16,6 +16,7 @@ NetLesson net_lessons[NET_LESSONS] = {
{ .n_slides = NET8_SLIDES, .unit_page = "netunit8", .ex_page = "netex8" }, { .n_slides = NET8_SLIDES, .unit_page = "netunit8", .ex_page = "netex8" },
{ .n_slides = NET9_SLIDES, .unit_page = "netunit9", .ex_page = "netex9" }, { .n_slides = NET9_SLIDES, .unit_page = "netunit9", .ex_page = "netex9" },
{ .n_slides = NET10_SLIDES, .unit_page = "netunit10", .ex_page = "netex10" }, { .n_slides = NET10_SLIDES, .unit_page = "netunit10", .ex_page = "netex10" },
{ .n_slides = NET11_SLIDES, .unit_page = "netunit11", .ex_page = "netex11" },
}; };
void net_paragraph(GtkWidget *box, const char *text) { void net_paragraph(GtkWidget *box, const char *text) {
@ -455,7 +456,8 @@ void net_add_node(GtkFixed *fixed, int index) {
char *text; char *text;
static const char *unit_keys[NET_LESSONS] = { static const char *unit_keys[NET_LESSONS] = {
"net_unit1", "net_unit2", "net_unit3", "net_unit4", "net_unit5", "net_unit1", "net_unit2", "net_unit3", "net_unit4", "net_unit5",
"net_unit6", "net_unit7", "net_unit8", "net_unit9", "net_unit10" "net_unit6", "net_unit7", "net_unit8", "net_unit9", "net_unit10",
"net_unit11"
}; };
card = gtk_button_new(); card = gtk_button_new();
@ -1164,6 +1166,93 @@ GtkWidget *build_net_unit10_page(void) {
slides, NET10_SLIDES); slides, NET10_SLIDES);
} }
GtkWidget *build_net_unit11_page(void) {
static const NetSlide slides[NET11_SLIDES] = {
{
"1 / 8 • Přehled", "Tři skupiny vrstev",
"Tip: přenos → přizpůsobení → aplikace",
{
"Vrstvy orientované na přenos: fyzická, spojová, síťová.",
"Přizpůsobovací vrstva: transportní.",
"Vrstvy orientované na aplikace: relační, prezentační,",
"aplikační.",
NULL,
},
},
{
"2 / 8 • Fyzická", "Přenos bitů",
NULL,
{
"Přenos bitů po médiu.",
"Definuje napětí, kabely, konektory, kódování a modulaci.",
"Řeší také duplex / simplex.",
NULL,
},
},
{
"3 / 8 • Spojová", "Rámce a MAC",
"Tip: podvrstvy MAC (přístup k médiu) a LLC (logické řízení)",
{
"Tvorba rámců a fyzické (MAC) adresy.",
"Kontrola chyb (CRC) a řízení toku mezi sousedními uzly.",
"Podvrstvy: MAC a LLC.",
NULL,
},
},
{
"4 / 8 • Síťová", "Směrování paketů",
NULL,
{
"Směrování (routing) paketů.",
"Funguje i v sítích bez přímého spojení mezi uzly.",
NULL,
},
},
{
"5 / 8 • Transportní", "Segmenty end-to-end",
"Tip: v routerech transportní vrstva není",
{
"Rozklad zpráv na segmenty a jejich zpětné složení.",
"Kontrola pořadí a náprava chyb.",
"Existuje jen v koncových uzlech – není v routerech.",
NULL,
},
},
{
"6 / 8 • Relační", "Relace a dialog",
NULL,
{
"Navazuje, udržuje a ukončuje relace.",
"Řídí dialog („neskákat si do řeči“).",
"Synchronizace – navázání po přerušení.",
NULL,
},
},
{
"7 / 8 • Prezentační", "Formát dat",
NULL,
{
"Formátování dat (např. ASCII).",
"Komprese a šifrování.",
"Převod mezi různými standardy.",
NULL,
},
},
{
"8 / 8 • Aplikační", "Rozhraní pro programy",
NULL,
{
"Rozhraní pro aplikace a služby.",
"Například e-mail, HTTP, FTP nebo terminál.",
NULL,
},
},
};
return build_net_unit_page(&net_lessons[10], "net_unit11", "net_unit11_sub",
slides, NET11_SLIDES);
}
/* Solutions below are the canonical "largest subnet first, in order A–D" /* Solutions below are the canonical "largest subnet first, in order A–D"
* allocation. Scenario 3 does not fit into a /24 as written, which is why * allocation. Scenario 3 does not fit into a /24 as written, which is why
* its "solution" explains that instead. */ * its "solution" explains that instead. */
@ -2055,3 +2144,42 @@ GtkWidget *build_net_unit10_exercise_page(void) {
(int)G_N_ELEMENTS(net10_qs)); (int)G_N_ELEMENTS(net10_qs));
} }
const ChoiceQ net11_qs[] = {
{"Fyzická vrstva se stará o:",
{"Přenos bitů", "Směrování paketů", "Navazování relací",
"Formátování ASCII"}, 4, 0},
{"MAC a LLC jsou podvrstvy:",
{"Síťové vrstvy", "Spojové (linkové) vrstvy", "Transportní vrstvy",
"Aplikační vrstvy"}, 4, 1},
{"Směrování paketů v sítích bez přímého spojení řeší:",
{"Fyzická vrstva", "Relační vrstva", "Síťová vrstva",
"Prezentační vrstva"}, 4, 2},
{"Transportní vrstva existuje:",
{"Jen v koncových uzlech", "I v routerech", "Jen ve switchech",
"Jen na hubu"}, 4, 0},
{"Relační vrstva především:",
{"Definuje napětí a kabely", "Navazuje, udržuje a ukončuje relace",
"Přidává MAC adresy", "Směruje pakety"}, 4, 1},
{"Komprese a šifrování patří do vrstvy:",
{"Fyzické", "Spojové", "Prezentační", "Síťové"}, 4, 2},
{"Aplikační vrstva poskytuje:",
{"CRC mezi sousedy", "Rozhraní pro programy (HTTP, FTP, e-mail…)",
"Jen duplex/simplex", "Jen směrování"}, 4, 1},
};
const char *net11_hints[] = {
"Fyzická vrstva přenáší bity a řeší médium",
"Spojová vrstva má podvrstvy MAC a LLC",
"Síťová vrstva směruje pakety i bez přímého spojení",
"Transportní vrstva je jen v koncových uzlech, ne v routerech",
"Relační vrstva řídí relace, dialog a synchronizaci",
"Prezentační vrstva formátuje data, komprimuje a šifruje",
"Aplikační vrstva je rozhraní pro programy a služby",
};
GtkWidget *build_net_unit11_exercise_page(void) {
return build_net_mcq_page(10, "netunit11", "net_ex11_title", "net_quiz11_head",
net11_qs, net11_hints,
(int)G_N_ELEMENTS(net11_qs));
}