Dator- och nätverksteknik · område 9 · lektion 46
TCP och UDP
ICMP hade inget transportlager och inget portnummer. Här läggs en server till i nätet, och för första gången har paketen något på Layer 4 — och det finns två helt olika sätt att fylla den raden. Sidan går igenom de fyra saker TCP gör som UDP inte gör, varför "UDP är alltid snabbare" inte stämmer på det sätt det brukar sägas, och varför portnummer är en konvention och inte en lag.
"TCP är pålitligt, UDP är snabbt." Den är inte helt fel, men den döljer vad som faktiskt skiljer dem. Räkna paketen i stället, och förklara skillnaden utifrån vad som syns.
1. Servern läggs till
En server är en maskin som tillhandahåller tjänster — här en webbsida och ett namnuppslag. Den kostar ingen ny utrustning; den finns bara i simuleringen. Samma värden för alla grupper, med gruppens nätdel:
| Vad | Värde |
|---|---|
| Serverns adress | 192.168.<grupp>.2 |
| Nätmask | 255.255.255.0 |
| DNS-namn | webb.lab |
.2 ligger utanför maskinernas 10–13 och krockar inte. Namnet är påhittat med avsikt — det finns inte på internet, och det ska inte se ut som om det gör det.
I parets egen kopia:
- End Devices → Server, dra in den och koppla den till switchen med en Copper Straight-Through
- Serverns Desktop → IP Configuration:
192.168.<grupp>.2,255.255.255.0 - Services → HTTP: kontrollera att HTTP On är på — det är den från början
- Services → DNS: DNS Service On. Name:
webb.lab, Type: A Record, Address:192.168.<grupp>.2. Tryck Add - På den PC du ska använda: Desktop → IP Configuration → DNS Server:
192.168.<grupp>.2
Kan du öppna http://192.168.<grupp>.2 i PC:ns Web Browser i Realtime-läge? Kan du det är servern på plats.
Gör den inte det: pinga servern först. ICMP är testet för det lagret.
2. HTTP i simuleringsläget
- Simulation, filter på ARP, DNS, HTTP och TCP
- PC:ns Desktop → Web Browser:
http://192.168.<grupp>.2, Go - Capture/Forward tills sidan har kommit fram, och räkna kuverten i Event List
- Öppna det första TCP-kuvertet. Layer 4: TCP, Src Port och Dst Port. Vilken port är servern på?
Exakt hur många kuvert du räknar beror på om ARP och stängningen i slutet räknas med. Det spelar ingen roll — antalet är stort.
Inget av dem innehåller webbsidan. De är TCP som förbereder sig. Det är den första av de fyra sakerna i nästa avsnitt.
Skärmbilden av sekvensen i Event List, och av Layer 4 i ett TCP-kuvert, är labb 9:s TCP-exempel. Ta den nu.
3. Vad TCP gör
Fyra saker, och var och en med vad den löser:
| TCP gör | Vad det betyder | Vad det löser |
|---|---|---|
| Handskakning | Tre meddelanden innan data skickas: SYN, SYN-ACK, ACK | Båda sidor vet att den andra finns och lyssnar |
| Numrering | Varje segment får ett sekvensnummer | Mottagaren kan lägga dem i rätt ordning, även om de kommer i fel |
| Kvittens och omsändning | Mottagaren kvitterar — acknowledgement, ACK — det som kommit. Det som inte kvitteras skickas igen | Tappade segment kommer ändå fram |
| Flödeskontroll | Mottagaren talar om hur mycket den hinner ta emot, och sändaren bromsar | En snabb sändare dränker inte en långsam mottagare |
På lektion 44 kastades ramen med fel FCS, och ingen fick veta det. Det är TCP som märker att något saknas och skickar om. Ethernet upptäcker felet, TCP rättar det.
Det är kapslingen som ett samarbete, inte bara som kuvert.
Flödeskontrollen syns som fältet WINDOW om du öppnar Outbound PDU Details i ett TCP-kuvert. Det är mottagarens besked om hur mycket den kan ta. I samma flik står också SEQUENCE NUMBER och ACK NUMBER — tre av TCP:s fyra saker syns som fält.
4. DNS-frågan och UDP
- Reset Simulation
- Samma webbläsare, men nu med namnet:
http://webb.lab, Go - Klicka fram. Först kommer två DNS-kuvert: frågan och svaret. Sedan samma TCP-sekvens som förut
- Öppna DNS-frågan. Layer 4: UDP, Dst Port
53
Två paket. Ingen handskakning, ingen kvittens. UDP skickar och är sedan klart, oavsett om något kommer fram. Det kallas förbindelselöst.
| TCP | UDP | |
|---|---|---|
| Handskakning | Ja, tre meddelanden | Nej |
| Numrering och ordning | Ja | Nej |
| Kvittens och omsändning | Ja | Nej |
| Flödeskontroll | Ja | Nej |
| Header | 20 byte | 8 byte |
Frågan är liten, svaret är litet. Kommer svaret inte frågar klienten igen — programmet sköter det själv, snabbare än TCP hade hunnit göra sin handskakning.
Antingen var DNS inte med i Edit Filters, eller så saknar PC:n DNS Server under IP Configuration. Fungerar adressen men inte namnet är det nästan alltid det senare.
Introduktion Nätverk.pdf sidan 6 säger att transportlagret "säkerställer att data kommer fram rätt". Den formuleringen stämmer för TCP — och inte för UDP.
Skärmbilden av DNS-frågan, med UDP och port 53, är labb 9:s UDP-exempel.
5. Är UDP snabbare?
| Det som stämmer | Det som inte stämmer |
|---|---|
| UDP har kortare header och ingen handskakning. Varje enskilt paket kommer iväg fortare | Att hela överföringen därför går fortare. Ska en fil komma fram hel måste något skicka om det som tappas. Gör inte TCP det, måste programmet göra det själv — och då är det inte längre självklart vem som vinner |
Applikationen och nätets skick — inte protokollet. Frågan som avgör valet är: gör det något om en bit saknas?
| Tillämpning | Protokoll | Varför |
|---|---|---|
| En webbsida, en fil | TCP | En saknad bit förstör helheten |
| Ett videosamtal | UDP | En tappad bildruta märks mindre än en fördröjning |
| En DNS-fråga | UDP | Liten fråga. Klienten frågar igen själv |
6. Portarna
Layer 4 bär ett portnummer, och det talar om vilket program på maskinen paketet ska till:
| Port | Tjänst |
|---|---|
80 | HTTP |
443 | HTTPS |
53 | DNS |
Ingenting i TCP hindrar en webbserver från att lyssna på 8080 i stället — då skriver man bara http://webb.lab:8080. Konventionen gör att ingen behöver skriva det.
7. Noderna
Antalet paket i Packet Tracer visar inte vad som händer när något faktiskt tappas. Det gör noderna.
TCP mot UDP
ComputerExplorer → networking → tcp-vs-udp — nodens titel är TCP vs UDP.
- Tryck Tick ▸ och följ båda banorna. Sex paket skickas, och nätverket tappar paket #3
- Kör till slutet. Hur många tick tog TCP? Hur många tog UDP?
- Läs tabellen Sida vid sida
TCP blev klart senare — men med allt. UDP blev klart först — med en lucka.
Per paket, ja. För hela överföringen beror det på om luckan får finnas. Nodens egen sista mening säger samma sak: ingen av dem är bättre.
Handskakningen
ComputerExplorer → networking → tcp-handshake — nodens titel är TCP-handskakning. Stega igenom SYN, SYN-ACK, ACK. Det är de tre första kuverten från Packet Tracer, med tillstånden utskrivna. Noden visar också de fyra meddelanden som stänger anslutningen.
Omsändningen
ComputerExplorer → networking → tcp-reliability — nodens titel är TCP-tillförlitlighet. Välj scenariot Paketförlust. Se segmentet tappas, mottagaren skicka duplicerad ACK, och sändaren skicka om. Det är omsändningen, steg för steg.
Portarna håller isär
ComputerExplorer → networking → ports-sockets — nodens titel är Portar & socketar. Tryck + Öppna anslutning tre gånger, sedan Ta emot ett paket ▸. Alla anslutningar går till port 443 på samma server — ändå hålls de isär. Titta i Sockettabell: vad skiljer raderna?
Varför var UDP klart först i tcp-vs-udp, och var det bra?
8. Utmaning: nätets broms
ComputerExplorer → networking → congestion-control — nodens titel är Överbelastningskontroll.
Flödeskontrollen i avsnitt 3 bromsar för mottagarens skull. Den här noden visar att TCP också bromsar för nätets skull — och att det är en annan mekanism.
- Tryck RTT ▸ för att gå fram en tur och retur i taget, eller Spela ⏵ för att låta den gå
- Följ överbelastningsfönstret: hur växer det, och vad händer när ett paket tappas?
- Formulera skillnaden mot flödeskontrollen i en mening: vem bromsar TCP för, i vardera fallet?
Den meningen är en A-mening. Den visar ett samband: samma protokoll bromsar av två olika skäl, för två olika delar av nätet.
9. Vanliga missuppfattningar
7 rader
| Man tror ofta | Men |
|---|---|
| UDP är opålitligt, alltså dåligt | UDP lovar ingenting. Det är ett val, inte en brist |
| TCP är långsamt | Handskakningen tar tid per anslutning. För en fil som ska komma fram hel är TCP rätt val |
| UDP är alltid snabbare | Per paket, ja. För hela överföringen avgör applikationen och nätets skick |
Port 80 är en regel | Det är en konvention. :8080 fungerar också |
| De tre första TCP-kuverten bär webbsidan | De är handskakningen: SYN, SYN-ACK, ACK. Sidan kommer efter |
| Flödeskontroll och överbelastningskontroll är samma sak | Båda bromsar. Flödeskontrollen för mottagaren, överbelastningskontrollen för nätet |
http://webb.lab borde fungera när adressen gör det | PC:n behöver en DNS Server under IP Configuration för att kunna fråga efter namnet |
10. Ordlista
Ordträning
| Ord | Betyder |
|---|---|
| Server | En maskin som tillhandahåller tjänster, till exempel en webbsida eller ett namnuppslag |
| TCP | Transmission Control Protocol — transportprotokollet med handskakning, numrering, kvittens och flödeskontroll |
| UDP | User Datagram Protocol — transportprotokollet som skickar och är klart. Förbindelselöst |
| Segment | Det transportlagret skickar. Varje TCP-segment har ett sekvensnummer |
| Handskakning | TCP:s tre meddelanden innan data skickas: SYN, SYN-ACK, ACK |
| Sekvensnummer | Numret på ett TCP-segment, så att mottagaren kan lägga dem i rätt ordning |
| ACK | Acknowledgement — kvittensen på att något kommit fram |
| Omsändning | Att skicka om ett segment som inte kvitterats |
| Flödeskontroll | Mottagaren talar om hur mycket den hinner ta emot, och sändaren bromsar. Fältet WINDOW |
| Överbelastningskontroll | TCP bromsar för nätets skull, inte mottagarens. En annan mekanism än flödeskontrollen |
| Förbindelselöst | Utan handskakning och kvittens. Så arbetar UDP |
| Portnummer | Talar om vilket program på maskinen paketet ska till. 80, 443 och 53 är konventioner |
| Socket | En anslutnings adress och port. Håller isär flera samtidiga anslutningar till samma server |