← Område 9 Uppslag · TCP och UDP Ordlista

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.

Sloganen att ifrågasätta

"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:

VadVärde
Serverns adress192.168.<grupp>.2
Nätmask255.255.255.0
DNS-namnwebb.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:

  1. End Devices → Server, dra in den och koppla den till switchen med en Copper Straight-Through
  2. Serverns Desktop → IP Configuration: 192.168.<grupp>.2, 255.255.255.0
  3. Services → HTTP: kontrollera att HTTP On är på — det är den från början
  4. Services → DNS: DNS Service On. Name: webb.lab, Type: A Record, Address: 192.168.<grupp>.2. Tryck Add
  5. På den PC du ska använda: Desktop → IP Configuration → DNS Server: 192.168.<grupp>.2
Kontrollfrågan

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

  1. Simulation, filter på ARP, DNS, HTTP och TCP
  2. PC:ns Desktop → Web Browser: http://192.168.<grupp>.2, Go
  3. Capture/Forward tills sidan har kommit fram, och räkna kuverten i Event List
  4. Ö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.

Titta på de tre första TCP-kuverten

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örVad det betyderVad det löser
HandskakningTre meddelanden innan data skickas: SYN, SYN-ACK, ACKBåda sidor vet att den andra finns och lyssnar
NumreringVarje segment får ett sekvensnummerMottagaren kan lägga dem i rätt ordning, även om de kommer i fel
Kvittens och omsändningMottagaren kvitterar — acknowledgement, ACK — det som kommit. Det som inte kvitteras skickas igenTappade segment kommer ändå fram
FlödeskontrollMottagaren talar om hur mycket den hinner ta emot, och sändaren bromsarEn snabb sändare dränker inte en långsam mottagare
Två lager, två uppgifter

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

  1. Reset Simulation
  2. Samma webbläsare, men nu med namnet: http://webb.lab, Go
  3. Klicka fram. Först kommer två DNS-kuvert: frågan och svaret. Sedan samma TCP-sekvens som förut
  4. Ö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.

TCPUDP
HandskakningJa, tre meddelandenNej
Numrering och ordningJaNej
Kvittens och omsändningJaNej
FlödeskontrollJaNej
Header20 byte8 byte
Varför UDP för DNS?

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.

Syns inga DNS-kuvert?

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ämmerDet 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
Vad som faktiskt avgör

Applikationen och nätets skick — inte protokollet. Frågan som avgör valet är: gör det något om en bit saknas?

TillämpningProtokollVarför
En webbsida, en filTCPEn saknad bit förstör helheten
Ett videosamtalUDPEn tappad bildruta märks mindre än en fördröjning
En DNS-frågaUDPLiten 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:

PortTjänst
80HTTP
443HTTPS
53DNS
En konvention, inte en lag

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

Den bärande noden

ComputerExplorer → networking → tcp-vs-udp — nodens titel är TCP vs UDP.

  1. Tryck Tick ▸ och följ båda banorna. Sex paket skickas, och nätverket tappar paket #3
  2. Kör till slutet. Hur många tick tog TCP? Hur många tog UDP?
  3. Läs tabellen Sida vid sida

TCP blev klart senare — men med allt. UDP blev klart först — med en lucka.

Tabellen säger "minimal" vid UDP:s fördröjning. Stämmer det?

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?

Kontrollfrågan

Varför var UDP klart först i tcp-vs-udp, och var det bra?

8. Utmaning: nätets broms

Utmaning

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.

  1. Tryck RTT ▸ för att gå fram en tur och retur i taget, eller Spela ⏵ för att låta den gå
  2. Följ överbelastningsfönstret: hur växer det, och vad händer när ett paket tappas?
  3. 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 oftaMen
UDP är opålitligt, alltså dåligtUDP lovar ingenting. Det är ett val, inte en brist
TCP är långsamtHandskakningen tar tid per anslutning. För en fil som ska komma fram hel är TCP rätt val
UDP är alltid snabbarePer paket, ja. För hela överföringen avgör applikationen och nätets skick
Port 80 är en regelDet är en konvention. :8080 fungerar också
De tre första TCP-kuverten bär webbsidanDe är handskakningen: SYN, SYN-ACK, ACK. Sidan kommer efter
Flödeskontroll och överbelastningskontroll är samma sakBåda bromsar. Flödeskontrollen för mottagaren, överbelastningskontrollen för nätet
http://webb.lab borde fungera när adressen gör detPC:n behöver en DNS Server under IP Configuration för att kunna fråga efter namnet

10. Ordlista

Ordträning

OrdBetyder
ServerEn maskin som tillhandahåller tjänster, till exempel en webbsida eller ett namnuppslag
TCPTransmission Control Protocol — transportprotokollet med handskakning, numrering, kvittens och flödeskontroll
UDPUser Datagram Protocol — transportprotokollet som skickar och är klart. Förbindelselöst
SegmentDet transportlagret skickar. Varje TCP-segment har ett sekvensnummer
HandskakningTCP:s tre meddelanden innan data skickas: SYN, SYN-ACK, ACK
SekvensnummerNumret på ett TCP-segment, så att mottagaren kan lägga dem i rätt ordning
ACKAcknowledgement — kvittensen på att något kommit fram
OmsändningAtt skicka om ett segment som inte kvitterats
FlödeskontrollMottagaren talar om hur mycket den hinner ta emot, och sändaren bromsar. Fältet WINDOW
ÖverbelastningskontrollTCP bromsar för nätets skull, inte mottagarens. En annan mekanism än flödeskontrollen
FörbindelselöstUtan handskakning och kvittens. Så arbetar UDP
PortnummerTalar om vilket program på maskinen paketet ska till. 80, 443 och 53 är konventioner
SocketEn anslutnings adress och port. Håller isär flera samtidiga anslutningar till samma server