Forelesning 3

Datakommunikasjon
høsten 2002
Forelesning nr 3,
mandag 2. september
Chapter 3, Transport Layer
Datakom høsten 2002
1
Øvingsoppgaver
Datakom høsten 2002
2
Aktiv og passiv FTP
AKTIV:
SERVER
21
20
Kom.
Data
KLIENT
1026
Kom.
1027
Data
1
2
3
4
Datakom høsten 2002
3
Aktiv og passiv FTP
PASSIV:
SERVER
KLIENT
21
Kom.
20
Data
Port
2024
1026
Kom.
1027
Data
1
2
3
4
Datakom høsten 2002
4
RFC791
IP-adresser
Klasse A (0-127):
0
Nett
Lokal
Klasse B (128-191):
1 0
Nett
Lokal
Klasse C (192-223):
1 1 0
Nett
Datakom høsten 2002
Lokal
5
IP-adresser
 Hvordan angis en IP-adresse?
fire desimale nummer, et pr. byte i adressen, separert med
punktum
Kalles for “dotted decimal notation”
Eksempel
193.69.136.36
Datakom høsten 2002
6
IP-adresser
 Spesielle adresser
Broadcast - en til alle
Lokaladresse har alle bit satt til 1
Loopback (tilgang til tjenester på egen maskin)
127.0.0.1
Alle bit 0; ukjent IP-adresse (eller default rute)
 Måter å adressere
Unicast - en til en
Broadcast - en til alle
Multicast - en til mange
Datakom høsten 2002
7
Subnett
RFC950
 Klasseinndelingen er lite fleksibel, og gir mange
ubrukte adresser
 Bedre utnyttelse av adresseområdet oppnås ved bruk
av subnettmasker.
 En subnettmaske angir hvor stor del av adressen som
er nettprefikset (nett+subnett) og dermed også hvor
stor del lokaladressen er
Datakom høsten 2002
8
Subnett, eksempel
RFC791
Opprinnelig klasse B (1 nett med 65.536 lokaladresser)
1 0
Nett
Lokal
Nå: 64 subnett, hvert med 1022 lokaladresser
1 0
Nett
Subnett
Lokal
Subnettmaske: 255.255.252.0 eller /22
Datakom høsten 2002
9
Tracert kommando
Traceroute, lister opp hvilke rutere som passeres
på vei til mottaker
Benytter TTL (Time To Live) feltet i ICMP Echo
Request
Får svar i form av ICMP Time Exceeded melding
TTL settes til 1 for så å økes med 1 hver gang
Datakom høsten 2002
10
Tracert
Datakom høsten 2002
11
Some Protocols in TCP/IP Suite
Datakom høsten 2002
12
Datakom høsten 2002
13
Ipconfig kommando
N:\>ipconfig /all
Windows 2000 IP Configuration
Host Name . . . . . . . . . . . .
Primary DNS Suffix . . . . . . .
Node Type . . . . . . . . . . . .
IP Routing Enabled. . . . . . . .
WINS Proxy Enabled. . . . . . . .
DNS Suffix Search List. . . . . .
: bak3
:
: Broadcast
: No
: No
: halden.scandpower.no
Ethernet adapter Local Area Connection:
Connection-specific DNS Suffix . : halden.scandpower.no
Description . . . . . . . . . . .
: 3Com EtherLink XL 10/100 PCI For Complete
PC Management NIC (3C905C-TX)
Physical Address. . . . . . . . .
: 00-50-DA-DD-2E-5E
DHCP Enabled. . . . . . . . . . .
: No
IP Address. . . . . . . . . . . .
: 193.69.136.78
Subnet Mask . . . . . . . . . . .
: 255.255.255.0
Default Gateway . . . . . . . . .
: 193.69.136.54
DNS Servers . . . . . . . . . . .
: 193.69.136.53
193.69.136.34
Datakom høsten 2002
14
netstat kommando
N:\>netstat -rn
Active Routes:
Network Destination
0.0.0.0
127.0.0.0
193.69.136.0
193.69.136.78
193.69.136.255
224.0.0.0
255.255.255.255
Default Gateway:
Netmask
Gateway
0.0.0.0
255.0.0.0
255.255.255.0
255.255.255.255
255.255.255.255
224.0.0.0
255.255.255.255
193.69.136.54
127.0.0.1
193.69.136.78
127.0.0.1
193.69.136.78
193.69.136.78
193.69.136.78
Interface
193.69.136.78
127.0.0.1
193.69.136.78
127.0.0.1
193.69.136.78
193.69.136.78
193.69.136.78
Metric
1
1
1
1
1
1
1
193.69.136.54
Persistent Routes: None
Datakom høsten 2002
15
TCP/IP
 Er egentlig en gruppe av protokoller som har fått
navn etter to av disse.
 Lagdelt, 4 lag er definert i TCP/IP modellen
Modellen er laget etter at protokollene ble tatt i bruk
(i motsetning til ISO’s OSI-modell)
Ikke alltid veldefinert i hvilket lag en protokoll befinner seg
 IPv4 er den versjonen av IP som er i bruk idag
Datakom høsten 2002
16
Kommunikasjonslagene (referert til OSI)
FTP
HTTP
SMTP
Internet-TCP/IP
OSI
Application
Application
DNS
Presentation
Session
TCP
UDP
Transport
Transport
Network
Network
Data Link
Data Link
ICMP
IP
ARP
PPP
Ethernet
Physical
Datakom høsten 2002
17
Innkapsling
IP Header
TCP Header
Data
Data
Datakom høsten 2002
18
Innkapsling
IP Header
TCP Header
Data
Data
Datakom høsten 2002
19
Innkapsling
Ethernet Header
IP Header
TCP Header
Data
Data
Data
Ethernet Checksum
Datakom høsten 2002
20
Innkapsling
‘Protocoll type’ identifiserer neste
protokoll som IP (=0800)
Ethernet Header
‘Protocol’ definerer neste protokoll som
TCP (=6)
IP Header
‘Destination port’ definerer applikasjon,
f.eks. HTTP (=80)
TCP Header
Data
Data
Data
Datakom høsten 2002
Ethernet Checksum
21
TCP & UDP
Transmission Control Protocol
Forbindelsesorientert
RFC 793
User Datagram Protocol (UDP)
Forbindelsesløs (datagram tjeneste)
RFC 768
Datakom høsten 2002
22
Eks. på brukere av TCP
Telnet
port 23
FTP (File Transfer Program)
port 20 og 21
SMTP (Simple Mail Transfer Program)
port 25
DNS (Domain Name System)
port 53
HTTP (WEB-trafikk)
port 80
Datakom høsten 2002
23
Eks. på brukere av UDP
TFTP (Trivial File Transfer Protocol)
port 69
DHCP (Dynamic Host Configuration Protocol)
port 67 og 68
NTP (Network Time Protocol)
port 123
DNS (Domain Name Sytem)
port 53
Datakom høsten 2002
24
Sockets begrepet
Sending socket
Avsender IP-adresse + port nummer
Receiving socket
Mottaker IP-adresse + port nummer
Benyttes ifm API-er
API-Application Program Interface
Datakom høsten 2002
25
TCP
 TCP overfører data mellom en klient og en tjener
(client/server)
 Data overføres i segmenter
 Brukerene av TCP leverer data som en strøm av data
(stream oriented)
 TCP sørger for feilretting og at data leveres videre til
brukeren av TCP i korrekt rekkefølge
 Forbindelsesorientert
Oppkoblingsfase
Dataoverføringsfase
Nedkoblingsfase
Datakom høsten 2002
26
TCP streams og segmenter
A
B
Stream
TCP
Stream
Segmenter
Datakom høsten 2002
TCP
27
TCP pakke
Datakom høsten 2002
28
Oppgaver til TCP
Adressering
Multipleksing, en TCP prosess må kunne
håndtere flere applikasjoner
Flytkontroll
Feilkontroll
Opp og nedkobling
Datakom høsten 2002
29
Adressering
Applikasjon adresseres med:
host, port
• Kalles en socket i TCP
Port representerer en bruker av TCP, dvs en applikasjon
Transport entity identifikasjon
• TCP og UDP
Host og nettverksadresse, dvs IP-adresse
Datakom høsten 2002
30
Multipleksing
Flere applikasjoner kan benytte samme
transport protokoll
Applikasjon identifiseres med port nummer eller
service access point (SAP)
Datakom høsten 2002
31
Flytkontroll
Variabel transmissjonsforsinkelse
Vanskeligjør bruk av timere
Må ha flytkontroll pga at:
Mottaker ikke kan motta data så raskt som avsender
sender
Resulterer i buffere som fylles
Datakom høsten 2002
32
Håndtering av krav til
flytkontroll (1)
Gjør ingenting
Segmenter kastes
Avsender vil ikke motta ACK og vil retransmittere
Resulterer i mer inndata
Avise segmenter når buffer er fullt
Trigger flytkontroll på lavere lag.
Hvis flere transportforbindelser er multiplekset over
en enkelt nettverksforbindelse foregår flytkontrollen
“summen” av alle transportforbindelsene
Datakom høsten 2002
33
Håndtering av krav til
flytkontroll (2)
Bruke av fast sliding window protokoll
Fungerer bra i pålitelige nett
Manglende mottak av ACK håndteres som flytkontroll
Fungerer dårlig i upålitelige nett
Kan ikke skille mellom tapte pakker og flytkontroll
Bruk av “credit scheme”
Datakom høsten 2002
34
Credit Scheme
Vindusstørrelse og ACK er ikke lenger koblet
sammen
Kan gi ACK uten å gi kreditt og vice versa
Hver oktett har et sekvensnummer
Hvert transport segment har sekvens nummer,
ack nummer og vindusstørrelse i header
Datakom høsten 2002
35
TCP oppkobling
Maskin A
Maskin B
SYN (SYNchronize sequence numbers)
SYN, ACK
ACK
TID
Kalles for: Three-way handshake
Datakom høsten 2002
36
TCP sekvens nummer
Maskin A
Maskin B
SYN=1, Sequence=X
SYN=1, ACK=1, Sequence=Y, Ack no=X+1
ACK=1, Ack no=Y+1
TID
Datakom høsten 2002
37
Netstat –s (gir protokollstatistikk)
TCP Statistics
Active Opens
= 696
Passive Opens
= 39
Failed Connection Attempts = 46
Reset Connections
= 363
Current Connections
=3
Segments Received
= 265696
Segments Sent
= 275847
Segments Retransmitted
= 285
Datakom høsten 2002
38
TCP - Transmission Control Protocol
RFC793
TCP Header
Source Port
Destination Port
Sequence Number
Acknowledge Number
Header
Length
Reserved
U A P R S F
R C S S Y I
G K H T N N
TCP Checksum
Window Size
Urgent Pointer
Options
Datakom høsten 2002
39
URG (Urgent mode) flagg
Urgent mode
Gir mulighet for den ene part å fortelle at ”urgent
data” er sent innimellom den normale datastrømmen
Urgent mode aktiveres ved å
URG bit settes = 1
16 bir urgent pointer settes til et positivt offset
Urgent data befinner er da i de oktettene som angis
av sequence number + urgent pointer offset
Benyttes av telnet, rlogin og FTP.
Datakom høsten 2002
40
ACK – Acknowledge number
Benyttes til å si at dette er kvittering for
mottatte data
Datakom høsten 2002
41
PSH (PUSH) flagg
Avsender side:
Brukeren av TCP setter PUSH flagget for at TCP skal
sende data som er mottatt med en gang, dvs ikke
vente til at bufferet f.eks. er fullt.
Mottaker side:
TCP skal sende de mottatte data umiddelbart til
brukeren av TCP
Eksempel på bruk er telnet
Datakom høsten 2002
42
RST (RESET) flagg
RESET flagg benyttes til å
resette en forbindelse
avbryte en forbindelse
Oppsett til en ikke eksisterende port
TCP sender RESET
UDP sender ICMP port unreachable
Eksempel telnet til en ikke eksisterende port
Datakom høsten 2002
43
SYN (SYNCHRONIZE) flagg
Synkronisering av sekvens nummer ifm initiering
av en forbindelse
Avsender sender et SYN segment som
inneholder ”initial sequence number”
Mottaker returnerer et syn segment som også
inneholder ”initial sequence number”
Datakom høsten 2002
44
FIN flagg
Indikerer at forbindelsen skal kobles ned, dvs
det skal ikke overføres flere data
TCP avslutter forbindelsen
TCP foretar en såkalt ”half close” når en
forbindelse kobles ned
Dette betyr at selv om den ene siden har sendt
FIN kan fortsatt den andre siden sende data
Datakom høsten 2002
45
TCP Mekanismer (1)
Oppsett
Three way handshake
Mellom to porter (source og destination port)
Data transfer
Logisk strøm av oktetter
Oktettene er nummerert modulo 223
Flyt kontroll basert på kreditt av nummer av oktetter
Data buffres hos avsender og mottaker
Datakom høsten 2002
46
TCP Mekanismer (2)
Nedkobling
Graceful close
TCP bruker sender CLOSE primitive
Transport entity setter FIN flagg på siste segment
som sendes
ABORT primitive
All sending og mottak av data opphører
RST sendes
Datakom høsten 2002
47
TCP - Sekvens opp- /nedkobling
RFC793
SYN
SYN, detaljer
SYN, ACK
ACK
- Data FIN
ACK
FIN ACK detaljer
FIN
ACK
Sekvens detaljer
Datakom høsten 2002
48
TCP half close - nedkobling
A
Applikasjon avslutter
B
FIN
ACK
DATA
Applikasjon leser
data
Applikasjon sender
data
FIN
ACK
Datakom høsten 2002
49
Implementeringsopsjoner
Send
Deliver
Accept
Retransmit
Acknowledge
Datakom høsten 2002
50
Sending av data
Hvis ikke PUSH flagget er satt kan TCP sende
data når den synes det “passer”
Data buffres i et sende buffer
Kan vente med å sende til den har fått en viss
mengde data
Datakom høsten 2002
51
Levering av data
Hvis ikke PUSH flagg, levere når det passer
KAn levere data etter hvert som den mottar
segmenter
Kan lagre data i et buffer før det sendes videre
Datakom høsten 2002
52
Aksept av mottatte data
Segments kan ankomme ute av sekvens
Segmenter
Akseptere kun segmenter i riktig rekkefølge
Forkaste segmenter som ikke kommer i riktig
rekkefølge
Innenfor vindusstørrelsen
Akseptere alle segmenter innenfor mottakervindu
Datakom høsten 2002
53
Retransmisjon
TCP vedlikeholder en kø av de segmenter som
er sendt og som ikke det er mottatt ack på
TCP vil retransmittere hvis det ikke er mottatt
ACK innen en viss tid
Datakom høsten 2002
54
Acknowledgement
Øyeblikkelig
Kumulative, dvs mottar flere segmenter før ACK
sendes
Datakom høsten 2002
55
TCP Slow Start
Algoritme som skal sørge for at TCP tilpasser
seg overføringskapasiteten i nettet
Kalles ”Congestion window” eller cwnd
Er initielt satt til et segment hvor størrelsen av
segmentet er den segmentstørrelsen som er
annonsert av mottakeren
Hver gang en ACK mottas økes cwnd med 1
Datakom høsten 2002
56
UDP
User datagram protocol
RFC 768
Forbindelsesløs tjeneste
Det settes ikke opp noen forbindelse mellom
avsender og mottaker som med TCP
Upålitelig
Garanterer ikke at data kommer frem
Lite overhead
Datakom høsten 2002
57
UDP og fragmentering
Et UDP datagram resulterer hos avsender i et IP
datagram
Et IP datagram kan imidlertid bli fragmentert
dersom MTU (Maximum Transfer Unit) er mindre
enn størrelsen på IP datagrammet
Dette settes i sammen hos mottakeren, men
hvis det er feil forkastes alle fragmenter
IP ber ikke om retransmisjon, og heller ikke UDP
Tjenesten som benytter UDP må derfor ta
ansvar for all retransmisjon
Datakom høsten 2002
58
UDP - User Datagram Protocol
RFC768
UDP Header
Source Port
Destination Port
UDP length
UDP checksum
UDP length = lengden av hele datagrammet
UDP checksum = sjekksum av hele datagrammet
Eksempel
Datakom høsten 2002
59