LPIC-1 Internet Protocols, X11 Display Managers, and Accessibility
- Tell TCP, UDP, and ICMP apart by their delivery guarantees and pick the right one for a given service
- Map a service to its well-known port using /etc/services
- Use a CIDR mask to decide whether a destination is local or must go through the gateway, in both IPv4 and IPv6
- Name the three layers of the Linux GUI stack and switch between graphical and text login with the systemd default target
- Identify the common Linux accessibility tools and what each one helps with
Why protocols come in flavours
Understand that the transport protocol is a deliberate trade-off, and that the exam tests whether you know which service uses which.
Every conversation on a network runs over a transport protocol, and the protocol is a deliberate engineering choice — not an accident. The two you meet constantly are TCP and UDP, with ICMP off to the side for diagnostics.
Think of TCP as a registered letter: the post office confirms delivery, re-sends anything lost, and guarantees the pages arrive in order. That reliability costs an exchange of paperwork up front. Think of UDP as a postcard: you drop it in the box and hope it lands. No confirmation, no re-send, no ordering — but also no overhead and no waiting.
- TCP — connection-oriented and reliable. It opens a connection with a three-way handshake (
SYN->SYN-ACK->ACK) before any data flows, then tracks, acknowledges, and re-transmits. Used where every byte must arrive: HTTP/HTTPS, SSH, SMTP. - UDP — connectionless and fire-and-forget. No handshake, no acknowledgements. Used where speed beats perfection or where one tiny request/reply doesn't justify a connection: DNS, DHCP, NTP, most streaming.
- ICMP — not for carrying user data at all. It's the network's diagnostic and error channel:
ping(echo request/reply) and the "time exceeded" messages that maketraceroutework both ride on ICMP.
Check yourself
A service sends one small request and expects one small reply, retrying on its own if nothing comes back, with no need for ordering or a persistent connection. Is TCP or UDP the natural fit?
- TCP — connection-oriented and reliable. It opens a connection with a three-way handshake (
Ports and /etc/services
Look up which port belongs to which service using the local name database.
An IP address gets a packet to the right host; a port number gets it to the right program on that host. Ports 0-1023 are the well-known ports, reserved for standard services so that anyone, anywhere, can reach
httpsby knocking on 443 without arranging it first.Linux keeps a human-readable map of port -> service name in `/etc/services`. It's a plain text file, so you can grep it — and that's exactly how you settle a "which port is this on, and is it TCP or UDP?" question without memorising the whole list.
grep -E '\b(ssh|http|https)\b' /etc/services | headssh 22/tcp # SSH Remote Login Protocol ssh 22/udp http 80/tcp www # WorldWideWeb HTTP http 80/udp https 443/tcp # HTTP protocol over TLS/SSL https 443/udp
- -E
- Extended regular expressions, so the alternation (a|b|c) and word-boundary \b work without backslash-escaping the parentheses.
- \b...\b
- Word boundaries: match the whole word
ssh, notsshinside some longer token, to cut false hits.
Each line reads name, then port/protocol, then aliases and a comment. So ssh 22/tcpmeans SSH lives on port 22 over TCP. Notice every service is listed for bothtcpandudp— the file reserves the number on each protocol; it does not claim the service actively uses both. SSH in practice is TCP. Use the file to find the number, and your protocol knowledge to know which transport really matters.Check yourself
Which file would you grep to find out that the SMTP service conventionally uses port 25?
Addressing: local or gateway?
Use the CIDR mask to decide whether a destination is on your subnet or has to be routed via the gateway.
An IPv4 address is 32 bits, written as four dotted octets like
192.0.2.10. On its own that's just a number — the CIDR mask is what gives it meaning. A mask like/24says "the first 24 bits are the network, the rest is the host." Everything sharing your network bits is on your subnet (a local hop); everything else has to be handed to the gateway to be routed onward.This is the single most useful decision a host makes for every packet: is the destination local, or do I send it to the gateway? The host answers it by masking both addresses and comparing the network parts.
Work an example with the documentation-reserved range
192.0.2.0/24:- Your host:
192.0.2.10/24-> network192.0.2.0 - Destination
192.0.2.200-> network192.0.2.0-> same network -> deliver directly (local) - Destination
198.51.100.5-> different network -> not local -> send to the gateway
Now change only the mask. With
192.0.2.10/26, the network block is just192.0.2.0-192.0.2.63. Suddenly192.0.2.200is outside your subnet and must go via the gateway. Same addresses, different mask, opposite routing decision.ip -br addrlo UNKNOWN 127.0.0.1/8 ::1/128 eth0 UP 192.0.2.10/24 fe80::5054:ff:fe12:3456/64
- -br
- Brief: one tidy line per interface (name, state, addresses) instead of the verbose multi-line default.
- addr
- The address object — show IP addresses assigned to interfaces (same as
ip address show).
eth0carries192.0.2.10/24— a 32-bit IPv4 address with a /24 mask, so this host's subnet is192.0.2.0to192.0.2.255. It also hasfe80::.../64, an IPv6 link-local address (more on that next). The/24here is precisely what the host uses to decide local-vs-gateway for every outbound packet.Check yourself
Host
192.0.2.10/26wants to reach192.0.2.200. Does it deliver directly on the local subnet, or hand the packet to the gateway?- Your host:
IPv6 in one step
Read an IPv6 address, including :: zero-compression and the fe80:: link-local block.
IPv6 is 128 bits — four times the width of IPv4 — written as eight groups of four hex digits, like
2001:db8:0:0:0:0:0:1. Two shorthand rules keep that readable:- Drop leading zeros in each group:
0db8becomesdb8. - `::` collapses one run of all-zero groups to nothing. So
2001:db8:0:0:0:0:0:1shortens to2001:db8::1. The rule that catches people: `::` may appear only once in an address, because otherwise the number of zero-groups it stands for would be ambiguous.
One block matters even on a machine with no internet: `fe80::/10` is link-local. Every IPv6 interface auto-configures an
fe80::address that is valid only on that single link — it is never routed off the local segment. It's the IPv6 equivalent of a name you only answer to inside your own house; it works for neighbours on the wire but means nothing to the outside world. (2001:db8::/32is the reserved documentation range, the IPv6 cousin of192.0.2.0/24.)ip -6 -br addrlo UNKNOWN ::1/128 eth0 UP 2001:db8::a/64 fe80::5054:ff:fe12:3456/64
- -6
- Restrict output to the IPv6 address family, hiding IPv4 so the view is uncluttered.
- -br
- Brief one-line-per-interface format.
eth0shows two IPv6 addresses.2001:db8::a/64is a routable (here, documentation-range) address — note the::standing in for the run of zero groups.fe80::5054:ff:fe12:3456/64is the link-local address: present on essentially every IPv6 interface, usable only on this link, never forwarded by a router.::1/128onlois the IPv6 loopback — the compressed form of0:0:0:0:0:0:0:1.Check yourself
An IPv6 address begins with
fe80::. What is special about where it can be used?- Drop leading zeros in each group:
The Linux GUI stack
Name the three layers of the graphical stack and tell the display server apart from the display manager.
When a Linux machine shows a graphical desktop, three distinct layers are stacked up, and the exam loves to test whether you can keep them straight:
1. Display server — the software that actually talks to the GPU, draws pixels, and handles mouse/keyboard input. The traditional one is X11 (the X Window System); the modern replacement is Wayland. This is the engine underneath everything graphical.
2. Display manager — the graphical login screen. It starts at boot, presents the username/password prompt, and after you authenticate it launches your session. Common ones are GDM (GNOME), SDDM (KDE), and LightDM.
3. Desktop environment — the windows, panels, and apps you see after login: GNOME, KDE Plasma, Xfce, and so on.
Think of it as a theatre. The display server is the stage machinery and lighting rig that makes any scene possible. The display manager is the box office that checks your ticket and lets you in. The desktop environment is the play you actually watch. Different jobs, easy to confuse because you only ever see the last one.
Whether a machine boots to that graphical login at all is decided by the systemd default target:
- `graphical.target` — boot all the way to the display manager and a GUI login.
- `multi-user.target` — boot to a full multi-user system but text console only, no GUI.
You switch the default with
systemctl set-default, and you can check the current setting withsystemctl get-default.systemctl get-defaultgraphical.target
This host boots to `graphical.target` — it will start the display manager and present a GUI login. To make it boot to a text console instead you'd run sudo systemctl set-default multi-user.targetand reboot.get-defaultis the read-only way to confirm which world you're in before changing anything.Check yourself
Which systemd target makes a machine boot to a full multi-user system with no graphical login, just a text console?
Accessibility tools
Match each common accessibility feature to the barrier it removes.
LPIC-1 expects you to recognise the standard Linux accessibility (a11y) features and what each one is for. They cluster by the barrier they address:
- Vision — Orca is the screen reader: it reads the interface aloud and drives a Braille display. A magnifier enlarges part of the screen. High-contrast themes and large text help low-vision users.
- Motor / dexterity — the on-screen keyboard lets someone type with a pointer instead of a physical keyboard. Several keyboard-assist modes help too:
- Sticky keys — press modifiers (
Ctrl,Alt,Shift) one at a time instead of holding several at once, so one-finger or one-hand users can still doCtrl+Alt+Del.- Slow keys — a key must be held briefly before it registers, filtering out accidental brushes against keys.
- Bounce keys — ignores a repeated keystroke that arrives too quickly, helping users with tremor who hit a key twice unintentionally.
Know Orca by name (it's the one most asked) and be able to say what sticky/slow/bounce keys each do — they're easy to mix up.
Check yourself
Which Linux accessibility tool reads the screen contents aloud for blind and low-vision users?
Try it in your live terminal
Run these safe, read-only commands on the real sandbox to your right and read what they tell you.
You have a real shell. Every command here is read-only — it inspects state and changes nothing. Run them in order and connect each result back to the concept it came from.
grep -E '\b(ssh|http|https)\b' /etc/services | headConfirm the well-known ports from the local database: ssh on 22, http on 80, https on 443. Notice each appears for both tcp and udp — the file reserves the number, your protocol knowledge picks the transport. ip -br addrRead this host's IPv4 and IPv6 addresses with their CIDR masks. Find the /NN on your main interface — that mask is what decides local-vs-gateway for every packet you send. systemctl get-defaultSee whether this machine boots to graphical.target (GUI login via a display manager) or multi-user.target (text console). Read-only — it reports the setting without changing it.
- Pick the transport by its guarantee: TCP = registered letter (reliable, ordered, three-way handshake); UDP = postcard (connectionless, fire-and-forget); ICMP = diagnostics like ping. Don't assume TCP — DNS and DHCP are UDP.
/etc/servicesmaps service names to well-known ports (0-1023). It tells you the conventional port, not what's actually listening.- The CIDR mask owns the local-vs-gateway decision — mask both addresses, compare the network parts. Same addresses can route differently under /24 vs /26.
- IPv6 is 128-bit;
::compresses one run of zero-groups (only once), andfe80::is link-local — on-link only, never routed. - The GUI stack is three layers: display server (X11/Wayland, the engine) -> display manager (GDM/SDDM/LightDM, the login screen) -> desktop environment. Switch GUI/text via the systemd default target.
- Accessibility: Orca reads the screen; magnifier enlarges; on-screen keyboard replaces typing; sticky (modifiers in sequence), slow (hold to register), bounce (ignore fast repeats) assist keyboard use.
| Concept | Key fact | Exam trap to avoid |
|---|---|---|
| TCP | Connection-oriented, reliable, 3-way handshake | It's not the right tool for one-shot lookups |
| UDP | Connectionless, fire-and-forget | Don't forget DNS/DHCP are UDP, not TCP |
| ICMP | Diagnostics: ping, traceroute errors | It carries no user data |
| /etc/services | Name -> well-known port/protocol | It's a lookup table, not a live scan |
| CIDR mask | Decides local vs gateway | Misreading /24 vs /26 flips the answer |
IPv6 :: | Collapses one run of zero-groups | May appear only once per address |
fe80:: | Link-local, on-link only | Never routed off the segment |
| Display server | X11 / Wayland — draws pixels | Not the login screen |
| Display manager | GDM/SDDM/LightDM — GUI login | Not the same as the display server |
| systemd target | graphical vs multi-user | multi-user = text login, no GUI |
| Orca | Screen reader (speech + Braille) | A magnifier is a different tool |
