internet (2) - staff.hs-mittweida.dewin/vorlesungen/internet2.pdf · – mit hdlc-rahmenbildung...
TRANSCRIPT
Internet (2)Transportdienste und -protokolle
© Prof. Dr.-Ing. habil. Lutz WinklerFakultät Elektro- und Informationstechnik
https://[email protected]
2013-09
Internet 2 – Transportdienste und -protokolle
Ziel und Inhalt der Vorlesung
2Prof. Dr.-Ing. habil. Lutz Winkler ::: https://www.telecom.hs-mittweida.de
� Ziel Vermittlung von Kenntnissen zu Diensten und Protokollen der Schichten 2 bis 4, einschließlich des Betriebes.
� InhaltÜbersicht: Internetarchitektur, Protokollstack, Kerntransportprotokolle .......................2
L2-Protokolle: SLIP, PPP, PPPoE ........................................................................................6
L3-Protokolle: IPv4, IPv6 ..................................................................................................20
L4-Protokolle: TCP, UDP ……….......................................................................................... 37
Unterschied Download, Streaming ................................................................................. 65
Multicast Bone ................................................................................................................ 66
Literatur ...........................................................................................................................68
Internet 2 – Transportdienste und -protokolle
Übersicht: Internetarchitektur
3Prof. Dr.-Ing. habil. Lutz Winkler ::: https://www.telecom.hs-mittweida.de
Internet-Backbone B
Ro
ute
r
Internet A
GW
z.B. 2, 4, 8, 16, 34,155 Mbits/s
Internet-Backbone A
Ro
ute
r
z.B. 34, 155, 620 Mbits/s
Koax, LWL
Router Router
RouterRouter
Zu Hause:PC mit Modem oder ISDN-Karte
z.B. 34, 155, 620 Mbits/s
34, 155, 620 Mbits/s
Internet ZGW
Dial-Up-
ServerFernsprechnetz
DSL-Modem
Cu-Doppelader DSL-Modem
DSL-Modem
z.B. Down-/Uplod:786/128, 1024/192, 2048/256 … kbit/s.
Firma, Einrichtung
Firma, Einrichtung
z.B. 33, 64, 128 kbit/s.
Zu Hause:PC mit DSL-Modem und Ethernet-Karte
Koax, LWL
Koax, LWL
DSL-Modem
DSL-Modem
DSL-Modem
DSLAM
Internet 2 – Transportdienste und -protokolle
Übersicht: Internet - Protokollstack
Prof. Dr.-Ing. habil. Lutz Winkler ::: https://www.telecom.hs-mittweida.de 4
Netzwerk mit Routers Server
http ftpsmtppop
Server-Anwendungen
WWW FTP Mail
Client-Anwendungen
Telefonleitung
Modem/ISDN-Karte
Modem/ISDN-Karte
LWL, Koax, Twisted Pair
LAN-Karte LAN-Karte
PPP LLC, MAC
IP IP
TCP/UDP TCP/UDP
Bitübertragung Bitübertragung
DL-Datenpakete Link-Datenpakete
Ende-zu-Ende-Datentransport
IP-Datenpakete IP-Datenpakete
http ftpsmtppop
WWW FTP Mail
„Well known“-PortadressenPortadressen 2180
Anwendungsprotokolle
Anwendungen
Layer 765
OSI
Application
Layer 4
Layer 3
Layer 2
Layer 1
PPP
IP
LLCMAC
IPR
Internet
Client
25110
Internet 2 – Transportdienste und -protokolle
Übersicht: OSI-Sicht – Kerntransportprotokolle
Prof. Dr.-Ing. habil. Lutz Winkler ::: https://www.telecom.hs-mittweida.de 5
FTPDHCP DNS
TCPTransmission Control Protocol
UDPUser Datagram Protocol
Ping
IPInternet Protocol
ICMPInternet Control
Message Protocol
MACMedia Access Control
FTP
LAN
LCP, PAP,CHAP, CBCP
IPCP,IPXCP, ...
ModemDSL-Modem
Au
f-A
bb
au
ein
er
Fern
spre
chve
rbin
du
ng
Transport-und
Helfer-Protokolle
SMTPPOP
HTTP
WWW
Anwendungs-Protokolle
Anwendungen,Dienste
Netzwer-spezifischeProtokolle
Laye
r 2
Laye
r 1
Laye
r 3
Laye
r 5
..7
Laye
r 4
ARPAddress Resolution
Protocol
SLIP,PPP
RARPReverse Address
Resolution Protocol
DSL/ISDN/Fernsprechnetz/ …
ISDN-Karte
DHCP DNS
DFÜ
ARP RARP
LLCWMAC
WLAN
PPPoE
Internet 2 – Transportdienste und -protokolle
L2-Protokolle: Anwendungsszenario für PPP und SLIP
Prof. Dr.-Ing. habil. Lutz Winkler ::: https://www.telecom.hs-mittweida.de 6
� Das Point-to-Point-Protocol wird in Zugangsnetzen zum Internet genutzt.� Es löste das weniger leistungsfähige Serial Line Internet Protocol ab.
InternetFernsprechnetz
OV
St
OV
St
PC
Modem Modem
Modem
Modem
InternetFernsprechnetz
NT
BA
NT
PA
OV
St
OV
St
ISDN-Karte
ISDN-Karten
PPP (SLIP)
Internet
FernsprechnetzSplitte
r
OV
St
Ethernet-Karte
DSL
AM
DSL-Mod.
Splitte
r
DSL-Mod.
DSL-Mod.
DSL-Mod.
PPP over Ethernet/ATM (PPPoE, PPPoA)
Cu-Doppelader
PC
PC
Dial-Up-Server
Dial-Up-Server
Internet 2 – Transportdienste und -protokolle
L2-Protokolle: SLIP - Serial Line Internet Protocol
Prof. Dr.-Ing. habil. Lutz Winkler ::: https://www.telecom.hs-mittweida.de 7
"The TCP/IP protocol family runs over a variety of network media: IEEE
802.3 (ethernet) and 802.5 (token ring) LAN's, X.25 lines, satellite links, and serial lines. There are standard encapsulations for IP packets defined for many of these networks, but there is no standard for serial lines. SLIP, Serial Line IP, is a currently a de facto standard, commonly used for point-to-point serial connections running TCP/IP. It is not an Internet standard. Distribution of this memo is unlimited."
7
4
3
1 Modem/ISDN-Karte
SLIP
IP
TCP UDP
SMTPPOPHTTP
WWW E-Mail
2
� SLIP ist ein einfaches zeichenorientiertes Schicht-2-Protokoll, was auf temporären asynchron arbeitenden Netzzugängen verwendet wird [RFC 1055, 1988].
� Zum Beispiel zwischen Modem/ISDN-Karte und Dial-Up-Server.
Internet 2 – Transportdienste und -protokolle
L2-Protokolle: SLIP - Serial Line Internet Protocol
Prof. Dr.-Ing. habil. Lutz Winkler ::: https://www.telecom.hs-mittweida.de 8
� Blockanfang und -ende werden durch das Zeichen 0xc0 ($c0, 1100 0000b) markiert.
� Zur Sicherung der Zeichentransparenz wird ein Zeichenstuffing unter Benutzung des SLIP-ESC-Zeichens 0xdb ($db, 1101 1011b) vorgenommen:
– 0xc0 wird als 0xdb 0xdc (1101 1011 1101 1100) übertragen,
– 0xdb wird als 0xdb 0xdd (1101 1011 1101 1101) übertragen.
� Blockaufbau und Prinzip des Stuffings:
c0 db
IP - Datagramm
c0 db dc c0db dd
Blockende/
Blockanfang
Blockende
IP-Datagram
SLIP-Frame
Internet 2 – Transportdienste und -protokolle
L2-Protokolle: SLIP - Serial Line Internet Protocol
Prof. Dr.-Ing. habil. Lutz Winkler ::: https://www.telecom.hs-mittweida.de 9
� SLIP-Kritik:− unterstützt keinen Mechanismus zur Zuweisung einer IP-Adresse.
�Diese muss händisch im PC eingetragen werden.− SLIP kennt keinen Mechanismen zur Benennung eines N-Title.
� Es können nur IP-Frames übertragen werden. − SLIP unterstützt keine Fehlersicherung über eine Block-Check-Summe.
� Übertragungsfehler müssen die höheren Schichten (TCP, Anwendung) beseitigen.
� CSLIP, Compressed Slip ist ein SLIP bei dem die IP/TCP-Header nicht vollständig gesendet werden [RFC 1144, 1990].
� Insbesondere bei der Übertragung von einzelnen Zeichen, sind TCP/IP sehr geschwätzig. Beide Protokolle umhüllen dieses eine Zeichen mit jeweils 20 Byte PCI. D.h., bei der Übertragung von einem Byte werden 41 gesendet.
� CSLIP hat ein Verfahren spezifiziert, wo anstelle der 40 Byte nur 3 oder 5 Byte übertragen werden.
� Des weiteren kann CSLIP bis zu 16 logische Verbindungen über einen Link unterstützen.
� Heutzutage wird hauptsächlich PPP eingesetzt.
Internet 2 – Transportdienste und -protokolle
L2-Protokolle: PPP - Point-to-Point Protocol
RFC 1661, 1994 STD 51
"Abstract
The Point-to-Point Protocol (PPP) provides a standard method for transporting multi-protocol datagrams over point-to-point links. PPP is comprised of three main components:
1. A method for encapsulating multi-protocol datagrams.
2. A Link Control Protocol (LCP) for establishing, configuring, and testing the data-link connection.
3. A family of Network Control Protocols (NCPs) for establishing and configuring different network-layer protocols.
10Prof. Dr.-Ing. habil. Lutz Winkler ::: https://www.telecom.hs-mittweida.de
7
4
3
1 Modem/ISDN-Karte
PPP
IP
TCP UDP
SMTPPOPHTTP
WWW E-Mail
2
This document defines the PPP organization and methodology, and the PPP encapsulation, together with an extensible option negotiation mechanism which is able to negotiate a rich assortment of configuration parameters and provides additional management functions. The PPP Link Control Protocol (LCP) is described in terms of this mechanism."
Internet 2 – Transportdienste und -protokolle
L2-Protokolle: Dienste der PPP-Protokollfamilie
� Aufbau, Konfiguration, Abbau und Test von Schicht-2-Verbindungen (Nutzung des
Link Control Protocols, LCP).
� Authentikation, Datenkompression, Rückruf (PAP/CHAP, CCP,CBCP).
� Protokolleinstellungen für Schicht-3-Protokolle (IPCP)
� Übertragung von Datagrammen (IP, IPX usw.)
– mit Blockbildung bei asynchronem Link (8-Bit-Zeichen, keine Parität),
– mit HDLC-Rahmenbildung für IP-Datagramme, wenn der Link synchron bitorientiert arbeitet.
11Prof. Dr.-Ing. habil. Lutz Winkler ::: https://www.telecom.hs-mittweida.de
LCPRFC 1661
IPCPrfc1332
CHAP CCP
NBCP
PAPrfc1334
CBCPrfc 1570
IPXCP
PPP-Protokollfamilie
PPP in HDLC-likeFraming RFC 1662
IPCP IP Control Protocol (ist das DHCP für PPP)
IPXCP IPX Control Protocol
NBCP NetBIOS Control Protocol
PAP Password Authentication Protocol
CHAP Challenge Handshake Authentication Protocol
CCP Compression Control Protocol
CBCP Call Back Control Protocol
LCP Link Control Protocol
Internet 2 – Transportdienste und -protokolle
L2-Protokolle: PPP – HDLC-Framing /RFC 1662, 1994/
Prof. Dr.-Ing. habil. Lutz Winkler ::: https://www.telecom.hs-mittweida.de 12
7e ff 03 7e
addressflag control N-title information check sum flag
bis zu 1500 Byte
c0 21 LCP data
c0 23 PAP data
c0 29 CCP data
80 21 IPCP
08 00 IP-Datagramm
81 27 IPX-Datagramm
broadcast-address
unnumberedinformation
HDLC-Rahmenformat:
Link Control Protocol
Password Authentication Protocol
Compression Control Protocol
IP Control Protocol
Internet 2 – Transportdienste und -protokolle
L2-Protokolle: PPP – Stuffing bei HDLC -Framing /RFC 1662, 1994/
Prof. Dr.-Ing. habil. Lutz Winkler ::: https://www.telecom.hs-mittweida.de 13
� Bei einer zeichenorientierten Übertragung wird die Transparenz durch “Zeichenstopfen” mit dem Zeichen 0x7d ($7d, 0111 1101B) erreicht.
� Stopfvorschrift:– alle Zeichen mit einer ASCII-Codierung < $20 sowie die Zeichen 0x7e, 0x7d werden
dadurch markiert, indem 0x7d vorangestellt wird.– und im nächsten Zeichen das 6. Bit invertiert wird (das 6. Bit hat die Wertigkeit 25) .
� Beispiel:
B1 41 02 03 7d 42 7e 33
B1 41 22 23 5d 42 5e 337d 7d 7d 7d
� Beim bitorientierten Link �Regelfall, wird die Transparenz des Kanals durch das “Nullstopfen” gesichert (für alle Bit’s zwischen dem Start- und Ende-Flag wird nach 5-mal “1” eine “0” gestopft und im Empfänger wieder entfernt).
das ist zu
übertragen
das wird
übertragen
Internet 2 – Transportdienste und -protokolle
L2-Protokolle: PPP – Haupt-Zustände /RFC 1661/
Prof. Dr.-Ing. habil. Lutz Winkler ::: https://www.telecom.hs-mittweida.de 14
(1) Herstellen einer Verbindung vom Host zum Dial-Up-Server | DSLAM | CMTS.
(2) PPP-Verbindung mittels LCP konfigurieren: �Message Transfer Unit, �Authentikationsprotokoll,
�Kompression usw.
(3) Authentikation des Nutzers gegenüber dem Dial-Up-Server: mit �PAP oder �CHAP
(4) Einstellung von Schicht-3-Parametern mittels IPCP (so ähnlich wie DHCP)
�temporäre IP-Adresse, �Subnetzmaske, �Default Gateway, �DNS-Adressen
(5) Nutzung der Verbindung
(6) Abbau der PPP-Verbindung und Abbau der Wählverbindung
Ruheper LCP
logische Verbindungkonfigurieren
phys.Verbindungherstellen per PAP
oder CHAPautentifizieren
per LCPlogische Verbindung
beenden
per UI-FramesDaten übertragen
log. Verbindungbeenden
per IPCPIP-Adresse, Default Gateway-Adresse,
Subnetzmaske, DNS1/2
phys.Verbindungbenden
Verbindungnutzbar
erfolgreicherfolglos erfolglos
erfolgreich
Internet 2 – Transportdienste und -protokolle
L2-Protokolle: PPP over ISDN : Verbindungsaufbau, LCP-Phase
Prof. Dr.-Ing. habil. Lutz Winkler ::: https://www.telecom.hs-mittweida.de 15
InternetFernsprechnetz
NT
BA
NT
PA
OV
St
OV
St
SETUPSETUP SETUP
CONNECTCONNECTCONNECT
(1) DFÜ-Programm wird gestartet����Wählverbindung herstellen
B B
D D
ConfigRq (Magic-Number, Compression, CallBack, …)
(2) Verbindungsparameter proRichtung getrennt aushandeln Jede Seite schlägt der anderen Parameter vor, der andere akzeptiert (Ack) oder weist zurück (Rej). Die Beziehung ist errichtet, wenn jede Seite ConfigAck gesendet hat.
ConfigRq (MRU, PAP)
LCP LCP
ConfigAck (MRU, PAP)
ConfigRej (Compression, CallBack)
Beispiel für Ablehnung:Protokollfeld- und Adressen-
feld-Kompression, CallBack ConfigRq (Ctrl-Char, Magic-Number)
ConfigAck (Ctrl-Char, Magic-Number)
Dial-Up-ServerDial-Up-Client
MRU -Maximum Receive Unit
PAP - Password Authentication Protocol (RFC1334)
64 kbit/s-B-KanalB-Kanal geschaltet
Basiseinstellungen ausgehandelt
Magic-Number dient zur
Schleifenerkennung.
Internet 2 – Transportdienste und -protokolle
L2-Protokolle: PPP over ISDN: PAP, IPCP, Kommunikation, LCP, Abbau
Prof. Dr.-Ing. habil. Lutz Winkler ::: https://www.telecom.hs-mittweida.de 16
B B
AuthenticateRq (User-ID, PWD)(3) Authentifizierung des Nutzers
gegenüber dem Dial-Up-Server PAPPAP
AuthenticateAck ()
IPCPIPCPConfigRq (IP-Address=0, Primary DNS, Secundary DNS)
ConfigRq (IP-Address)
(4) IP-Addresse, Default Gateway,Netzmaske, DNS-Adressen beziehen
ConfigAck (IP-Address)
ConfigAck (IP-Address, Primary DNS, Secundary DNS)
UI-Frame (Protocol-Field, Data)
UI-Frame (Protocol-Field, Data)(5) Communication
TerminateRq ()
TerminateAck ()
LCP LCP
DISCONNECTDISCONNECT DISCONNECT
RELEASERELEASE
D D
RELEASE COMPLETE RELEASE
COMPLETE
(6) logische Verbindung beenden
(6) B-Kanal-Verbindung beenden
Layer is Up
DFÜ-Programm wird beendet
Internet 2 – Transportdienste und -protokolle
L2-Protokolle: PPP over Ethernet /RFC 2516, 1999/
� Im STD 51 (RFC's 1661/1662) wurden Protokolle festgelegt zur:– Link-Parametrisierung,– Authentifikation,– IP-Konfigurierung.
� Diese wurden für Punkt-zu-Punkt-Beziehungen entwickelt.
17Prof. Dr.-Ing. habil. Lutz Winkler ::: https://www.telecom.hs-mittweida.de
7
43
1 xDSL
TCP UDP
SMTPPOPHTTP
WWW E-Mail
PPPoEEthernet-MAC
PPPIP
2
� Heutzutage können z.B. an einem DSL-Zugang mehrere Host's über einen Ethernet-Switch betrieben werden �P2MP.
� In RFC 2516 "A Method for Transmitting PPP Over Ethernet (PPPoE) wurde deshalb festgelegt:
− Wie PPP-Frames in einem Ethernet-Frames übertragen werden.− Wie über einen "Discovery process" die Ethernet-Adressen der Remote-Host's dem
Zugangskonzentrator (z.B. DSLAM, CMTS) bekannt gemacht werden.
� In PPPoE unterscheidet man deshalb Rahmen für:− den Erkundungsprozess,− die Datenkommunikation.
Internet 2 – Transportdienste und -protokolle
L2-Protokolle: PPPoE - Rahmenaufbau
destination address(6 octets)
source address(6 octets)
ether type(2 octets)
payload
cheksum
18Prof. Dr.-Ing. habil. Lutz Winkler ::: https://www.telecom.hs-mittweida.de
� Eine PPPoE-Instanz nutzt den folgenden Rahmenaufbau, wobei:
− Destination address:• im Erkundungsprozess die Unicast-address oder ff-ff-ff-ff-ff-ff• beim Datentransport immer die Unicast-address verwendet werden.
− Source-address immer die Unicast-address ist.
− Ethertype:• 0x8863 (Discovery Stage - Erkundung) oder• 0x8864 (PPP Session Stage- Sitzung).
− Payload0..3 4..7 8..15 16..31
Version Type Code Session_IDLength Payload ….
− The VER field is four bits and MUST be set to 0x1 for this version. − The TYPE field is four bits and MUST be set to 0x1 for this version.− The CODE field is eight bits and is defined below for the Discovery and PPP Session stages. − The SESSION_ID field is sixteen bits. It is an unsigned value in network byte order. It's value is defined
below for Discovery packets. The value is fixed for a given PPP session and, in fact, defines a PPP session along with the Ethernet SOURCE_ADDR and DESTINATION_ADDR.
− The LENGTH field is sixteen bits. The value, in network byte order, indicates the length of the PPPoEpayload. It does not include the length of the Ethernet or PPPoE headers.
Internet 2 – Transportdienste und -protokolleProf. Dr.-Ing. habil. Lutz Winkler ::: https://www.telecom.hs-mittweida.de 19
L2-Protokolle: PPPoE – Discovery process, LCP, PAP, IPCP
� Analysieren Sie mittels und RFC 2516 und Wireshark folgenden PPPoE-Beispiel1) !
� Nebenstehend die AnsichtFlow Graph aus dem MenüStatistics
1) Quelle: http://packetlife.net/captures/protocol/pppoes/
usr ntw
Internet 2 – Transportdienste und -protokolle
L3-Protokolle: IPv4 - Internet Protocol /RFC 791, 1981/
Prof. Dr.-Ing. habil. Lutz Winkler ::: https://www.telecom.hs-mittweida.de 20
7
4
2
1 Modem/ISDN-Karte
MAC
IPv4TCP UDP
SMTPPOPHTTP
WWW E-Mail
3
“The internet protocol provides for transmitting blocks of data called datagrams from sources to destinations, where sources and destinations are hosts identified by fixed length addresses. The internet protocol also provides for fragmentation and reassembly of long datagrams, if necessary, for transmission through "small packet" networks.”
“There are no mechanisms to augment end-to-end data reliability, flow control, sequencing, or other services commonly found in host-to-host protocols.”
Internet 2 – Transportdienste und -protokolle
L3-Protokolle: IPv4 - Übersicht
Prof. Dr.-Ing. habil. Lutz Winkler ::: https://www.telecom.hs-mittweida.de 21
PCI Protocol Control InformationPDU Protocol Data UnitSDU Service Data Unit
TCP oder UDP-PDU
IP-PCI IP-SDU
TCP, UDP
IP
Schicht 2
N-DATA.Rq�
DL-DATA.Rq�
IP-PDU (protocol data unit)
� IP � connectionless
– Sender sendet Datagramme, die nicht vom Empfänger quittiert werden.
– Große L4-Segmente werden in Datagramme fragmentiert und erst am Ziel reassembliert.
– Das Routing wird anhand der weltweit eindeutigen IP-Adresse realisiert.
– Fehler in der Netzschicht werden durch das Internet Control Message Protocol ICMP an die Quelle gesendet. ICMP ist integraler Bestandteil der Netzschicht.
Internet 2 – Transportdienste und -protokolle
L3-Protokolle: IPv4 – Protocol Control Information (PCI)
Prof. Dr.-Ing. habil. Lutz Winkler ::: https://www.telecom.hs-mittweida.de 22
Version IP-Protokollversion, hier steht bei IPv4 (0100)b, bzw. (4)h
IP-Header length IP-Headerlänge: als Multiplikator*4-Byte (Mindestwert ist 5, also (0101)B, (5)h)
Type of Service (TOS) oderDifferentiated Services (DiffServ)
Die Nutzung dieses Feldes erfolgt entweder nach RFC 1394: als Type-of-Service-Feld odernach RFC 2474: als Verkehrsprofil
Total length1 Byteanzahl des Datagramms inklusive Header (max. 216=65535 Byte).
Identification field 16-Bit-Zufallszahl wird bei IP-Initialisierung ermittelt. Jedes Datagramm enthält Id-Field und IP-Absenderadresse. Dadurch wird es temporär einmalig. Wert wird nach jedem Datagram inkrementiert.
Flags und Fragment offset
Große L4-Segmente müssen an die MTU-Größe (Maximum Transfer Unit) angepasst �fragmentiertwerden. Zur Fragmentierung werden das Id-Field, Flags und Fragment-Offset verwendet.
Time-to-live (TTL): Anfangswert beim Absenden ist 255,128, 64. Jeder Router dekrementiert Wert um 1 (bei längerer Verweildauer pro Sekunde um 1). Ist TTL=Null, wird Datagram verworfen und eine ICMP-Message an den Absender geschickt. Damit verhindert man das Kreisen verirrter Pakete im Netz.
Protocol field (N+1)-title: z.B. TCP=6, UDP=17, ICMP=1, �Alle Dezimal-Werte siehe RFC 3232
Header checksum Wird über IP-Header gebildet, um Fehler zu erkennen.
IP-Addresses siehe Script Internet1
0..3 4..7 8..11 12..15 16..19 20..23 24..27 28..31
Version Header length Type of Service (TOS) oderDifferentiated Services(DiffServ) Total length (in bytes)
Identification 3 Flags Fragment offset
Time to live (TTL) Protocol Header checksum
Source IP address
Destination IP address
Options (if any)Data
Internet 2 – Transportdienste und -protokolleProf. Dr.-Ing. habil. Lutz Winkler ::: https://www.telecom.hs-mittweida.de 23
L3-Protokolle: IPv4 – Fragmentierung
� Bei Zerlegung (Fragmentierung):– werden viele IP-Header-Felder beibehalten (ID, Addresses, TOS, …).– es ändern sich Total Length, Flags, Fragment Offset und Header Checksum.
� Fragmente werden durch weitere Router nicht defragmentiert, dies macht erst der Zielhost.
� Fragmentverlust: erhält Zielhost erstes Fragment, startet er Timer. Sind bei TimeOut noch nicht alle Fragmente da, werden alle bisherigen Fragmente verworfen.
Netz 2, MTU=576 ByteNetz 1, MTU=1500 Byte
Router
IP-PCI
Ziel-Host
IP-PCI 11
IP-PCI 12
IP-PCI 13
Defragmentierung
Fragmentierung
Großes Datagramm (1500 Byte)wird in drei kleinere (mit max. 576 Byte)
zerlegt �fragmentiert
Internet 2 – Transportdienste und -protokolleProf. Dr.-Ing. habil. Lutz Winkler ::: https://www.telecom.hs-mittweida.de 24
L3-Protokolle: IPv4-Fragmentierung
� Drei Felder steuern Fragmentierung– Identification: kennzeichnet zusammengehörige Fragmente.– More fragment-Flag wird auf „1“ gesetzt, beim letzten Fragment auf „0“.– Fragment offset: enthält Offset bezogen auf den Anfang des Original-Datagrams in 8-Byte-
Schritten.
Identification16 bit
Fragment offset13 bit
Flags3 bit
0reserved
0 | 1DF: Don't Fragment
0 | 1MF: More Fragments
DF=0: darf fragmentiert werden; DF=1 nicht fragmentierenMF=0: letztes Fragment bzw. einziges Fragment; MF=1: ein Fragment von mehreren.
� Beispiel: Netz-1-MTU=1500 Byte, ID=33344; Netz-2-MTU=576 Byte− 576-20=556 ����nächster durch 8 teilbarer Wert = 552 ���� 552/8=69− 1500 in 552-Byte-Pakete ergibt 3 Fragmente zu 552+552+396 Byte
Fragment 1 2 3
Identification 33344 33344 33344
Total Length 572 572 416 20-Byte-PCI +Daten
Fragment Offset 0 69 138 * 8 Byte
More fragment flag 1 1 0
Internet 2 – Transportdienste und -protokolleProf. Dr.-Ing. habil. Lutz Winkler ::: https://www.telecom.hs-mittweida.de 25
L3-Protokolle: IPv4-Fragmentierung
� Beispiel /Halsall, Seite 504/
– An NSDU of 1000 octets is to be transmitted over a network which supports a Maximum transfer unit of 256 octets (identification=456).
� Lösung
– Maximum usable data per datagram=256-20=236 octets (max. Byte-Anzahl pro Datagramm)
– Use 29*8=232 octets (Nutzbare Byte-Anzahl pro Datagramm als ganzzahliges Vielfaches von 8 Byte)
– Five datagrams are required, four with 232 octes of user data and one with 72 octets.
– The fields are as follows:
Fragment 1 2 3 4 5
Identification 456 456 456 456 456
Total Length 252 252 252 252 92 20-Byte-PCI +Daten
Fragment Offset 0 29 58 87 116 * 8 Byte
More fragment flag 1 1 1 1 0
Internet 2 – Transportdienste und -protokolleProf. Dr.-Ing. habil. Lutz Winkler ::: https://www.telecom.hs-mittweida.de 26
L3-Protokolle: IPv4-QOS (Quality of Service) mittels TOS/DissServ
� Das Internet wird für viele Dienste genutzt. Jeder Dienst stellt andere Anforderungen an die QOS des IP-Transportnetzes:– E-Mail: sichere Übertragung innerhalb von Sekunden/Minuten.– WWW: kurze Antwort-Zeit u.a.– Voice over IP: minimale Verzögerung der Sprachdaten, bei geringem Jitter usw.
� Zur Priorisierung gibt es zwei Methoden: TOS und DiffServ.
� Prinzip: Eckrouter teilen Pakete in Klassen ein �Klassenzuordnung bestimmt Routingzeitpunkt.
Eck-RouterKlassifizierer
3
2
1
0
7
6
5
4
3
2
1
0
Scheduler
ingress portEingangsport
egress portAusgangsport
Die Klassenkennzeichnung kann erfolgen:− L2-Mitteln: siehe IEEE-802.1p− L3-Mitteln: IP-TOS, IP-DiffServ
Internet 2 – Transportdienste und -protokolleProf. Dr.-Ing. habil. Lutz Winkler ::: https://www.telecom.hs-mittweida.de 27
TOS-Werte nach /RFC 1349/.
L3-Protokolle: IPv4-TOS - Type of Service, Precedence
� 4 Bits (Bit 3 .. 6) bilden TOS-Feld, wo Anwendungen QOS angeben können.
� 3 Bits (Bit 0 .. 2) werden durch Edge-Router genutzt, um IP-Pakete in 8 Precedence-Klassen einzuteilen, als Prioritäts-Info für das Routing.
genutzt durch die Applikationen
Bit 3
Minimizedelay
Bit 4
Maximizetroughput
Bit 5
Maximizereliability
Bit 6
Minimizemonetary cost
Bit 7
immer 0
Hex value
Normal service 0 0 0 0 0 0x00
Telnet/Rlogin 1 0 0 0 0 0x10
FTP control 1 0 0 0 0 0x10
FTP data 0 1 0 0 0 0x08
SMTP command phase 1 0 0 0 0 0x10
SMTP data phase 0 1 0 0 0 0x80
ICMP 0 0 0 0 0 0x00
40 158 16 31
4 5 6 70 1 2 3
Precedence TOS-Field
Klasse Bit 0 Bit 1 Bit 2
7 1 1 1
6 1 1 0
5 1 0 1
4 1 0 0
3 0 1 1
2 0 1 0
1 0 0 1
0 0 0 0
TOS-Werte nach /RFC 1349/
Internet 2 – Transportdienste und -protokolleProf. Dr.-Ing. habil. Lutz Winkler ::: https://www.telecom.hs-mittweida.de 28
L3-Protokolle: IPv4-DiffServ - Differentiated Services
� Als DiffServ-Feld werden 6 Bits (Bit 0..5) verwendet. Bit 6, 7 sind derzeit Null.
� Die Verwendung ist standardisiert in /RFC 2474, RFC 2475/.
� Mit 6 Bit kann man 26=64 Klassen (Differentiated Service Codepoints -DSCP) bilden. Damit kann man Verkehrsanforderungen besser priorisieren
� 3 Bits (Bit 0, 1, 2) werden, zur Sicherung der Abwärtskompatibilität zu TOS, als Class Selector Codepoints verwendet.
� Die restlichen 3 Bits enthalten die Weiterleitungspriorität.
� Im Unterschied zu TOS, können Anwendungen sowohl die Klasse als auch die Weiterleitungspriorität einstellen. Edge-Router können diese Angaben prüfen und ev. überschreiben.
40 158 16 31
4444 5555 6 70000 1111 2222 3333
Class Selector Code Point
Differentiated Service Codepoints -DSCP
Internet 2 – Transportdienste und -protokolleProf. Dr.-Ing. habil. Lutz Winkler ::: https://www.telecom.hs-mittweida.de 29
L3-Protokolle: Analysieren Sie folgende IPv4-PCIs
45 00 00 2C 0F 86 40 00 7F 06 F8 A0 8D 37 60 43 8D 37 02 6A
--Data--------------------------
04 51 05 DF 01 86 1A 8D 00 00 00 00 60 02 20 00 D4 C7 00 00 02 04 05 B4
45 00 00 28 0F 87 40 00 7F 06 F7 A4 8D 37 60 43 8D 37 02 6A
--Data--------------------------
04 51 05 DF 01 86 1A 8E 00 29 AC A0 50 10 22 38 3D 73 00 00
v/hl/tos totLength Identif. Fragm. TTL Prot. Hchecksum sourceIP destIP
IP-PCI-1 �Lösung IP-PCI-2 �Lösung
v/hl/tos totLength Identif. Fragm. TTL Prot. Hchecksum sourceIP destIP
Internet 2 – Transportdienste und -protokolle
L3-Protokolle: IPv6 /RFC 2460, 1998/
IP version 6 (IPv6) is a new version of the Internet Protocol, designed as the successor to IP version 4 . The changes from IPv4 to IPv6 fall primarily into the following categories:
− Erweiterte Adressierung: eine IPv6-Adresse ist 128 Bit, damit lassen sich eine große
Anzahl von Hosts adressieren, eine bessere Adressenhierarchie und auto-konfigurierte Adressen einrichten. Desweiteren wird Multicast besser unterstützt und eine neuer Adressentyp "Anycast" definiert . Damit kann man IP-Pakete an einen aus eine Gruppe von Knoten (nodes) senden.
30Prof. Dr.-Ing. habil. Lutz Winkler ::: https://www.telecom.hs-mittweida.de
7
4
2
1 PHY
MAC
IPv6TCP UDP
SMTPPOPHTTP
WWW E-Mail
3
−Headervereinfachung: Einige IP4-Header wurden abgeschafft oder optional. Damit verbessern sich in den Routers Durchsatz und Übertragungungsverzögerung. Z.B. wurde "Header checksum" abgeschafft, da beiIPv4 jeder Router diesen Wert neu berechnen musste.
Bessere Unterstützung von Erweiterungen und Optionen
− Flow Labeling Capability: Im Header wurde ein Flow label field vorgesehen. womit man einen "pseudo-verbindungsorientierten" Datentransport in einem "verbindungslosen" Netzwerk realisieren kann.
− Authentication and Privacy Capabilities Extensions: Zur Unterstützung einer Authentikation, Daten-Integrität und Daten-Vertraulichkeit.
Internet 2 – Transportdienste und -protokolle
L3-Protokolle: IPv6 – Protocol Control Information (PCI)
Prof. Dr.-Ing. habil. Lutz Winkler ::: https://www.telecom.hs-mittweida.de 31
Version IP-Protokollversion, hier steht bei IPv6 (0110)b, bzw. (6)h
Traffic Class Die Nutzung dieses Feldes erfolgt nach RFC 2474. Dieses Feld ist kompatibel zu IPv4.
Flow Label Dieses Feld entspricht dem MPLS-Protokoll (Multiprotocol Label Switching), RFC 3031/3032. Innerhalb eines CL-Netzes wird, adressiert über Labels, verbindungsorientiert geroutet. Damit kann man Virtuelle Netze im globalen IP-Netz bilden. Man kann QOS garantieren und eine größere Sicherheit. Die Nutzung des Feldes in IPv6 ist im RFC 3697 geregelt.
Payload Length Byteanzahl des Datagramms ohne Header (max. 216=65535 Byte). Wert 0 verweist auf ein Jumpopaket.
Next Header Identifiziert den Header, der unmittelbar dem IPv6-Header folgt. Ist vergleichbar mit dem Protocol-Field bei IPv4, siehe RFC 1700 und folgende.
Hop Limit Entspricht dem Time-to-Live-Feld von IPv4. Anfangswert beim Absenden ist 255,128, 64. Jeder Router dekrementiert Wert um 1 (bei längerer Verweildauer pro Sekunde um 1). Ist TTL=Null, wird Datagram verworfen und eine ICMP-Message an den Absender geschickt. Damit verhindert man das Kreisen verirrter Pakete im Netz.
IP-Addresses siehe Script Internet1
0..3 4..7 8..11 12..15 16..19 20..23 24..27 28..31Version 4Bit Traffic Class 8Bit Flow Label 20Bit
Payload Length 16Bit Next Header 8Bit Hop Limit 8Bit
Source Address 128Bit
"""
Destination Address 128Bit
"""
Extension Headers (optional)Payload …
Internet 2 – Transportdienste und -protokolle
L3-Protokolle: IPv6 – Hauptheader /Tannenbaum, S. 510 ff/
� Flow Label (Flussmarke)
– das Konzept ist identisch ähnlich dem MPLS-Protocol (Multiprotocol Label Switching).
– Ist der Markenwert ≠ 0, werden die Router prüfen, welchen Weg diese Datenpakete durch das verbindungslose Netz gehen. Man kann damit virtuelle Netze mit z.B. Durchsatzgarantie, höherer Sicherheit bilden.
– Jeder Datenfluss ist adressiert durch Ziel-, Absender-IP und Label.
� Payload length (Nutzdatenlänge) gibt an, wie viel Byte nach dem fixen 40 Byte Hauptheader kommen.
� Next Header (nächster header) gibt an, ob dem Hauptheader ein Optionsheader folgt. Im Optionsheader gibt es wieder dieses Feld.
– Derzeit sind 6 Optionsheader-Typen spezifiziert.
– Gibt es keinen Erweiterungsheader, steht in diesem Feld z.B. das Schicht-4-Protoll TCP oder UDP.
� Hop Limit (Teilstreckenlimit) wird in jedem Router dekrementiert, um die Lebensdauer von Paketen im Netz zu begrenzen. In IPv4 hieß dieser Wert TTL (time
to live) und sollte in Routers pro Sekunde dekrementiert werden.
32Prof. Dr.-Ing. habil. Lutz Winkler ::: https://www.telecom.hs-mittweida.de
Internet 2 – Transportdienste und -protokolle
L3-Protokolle: IPv6 – Weggefallene Header /Tannenbaum, S. 510 ff/
� IP-Header length ist nicht notwendig, da der IPv6-Hauptheader eine feste Länge von 40 Byte hat und danach die Optionsheader kommen, jeder mit eigener Längenangabe.
� Protocol field wird quasi durch Next Header ersetzt.
� Fragmentation (Fragmentierung) gibt es in IPv6 nicht mehr.
– Alle Teilnetze müssen eine Paketmindestgröße von 1280 Byte unterstützen. Bei IPv4 waren das nur 576 Byte.
– Sendet der Host ein zu großes Paket, bekommt er von dem Router, der das Paket nicht weiter leiten kann, eine ICMP-Nachricht mit der Längenangabe.
– Die Fragmentierung findet also beim Absenderhost statt und belastet nicht mehr die Rechenleistung der Router.
� Header check sum (Header-Prüfsumme) wurde weggelassen, weil
– die Teilstrecken heutzutage geringere Fehlerraten haben,
– oft in der Schicht-2 eine Datensicherung genutzt wird (LLC – logical link control),
– TCP eine Ende-zu-Ende-Sicherung realisiert, wodurch Schicht-3-Fehler behoben werden.
33Prof. Dr.-Ing. habil. Lutz Winkler ::: https://www.telecom.hs-mittweida.de
Internet 2 – Transportdienste und -protokolle
L3-Protokolle: IPv6 – Optionsheaders /Tannenbaum, S. 514 ff/
� Derzeit gibt es mehrere Erweiterungsheadertypen, die in der angegeben Reihenfolge verwendet werden sollten.
34Prof. Dr.-Ing. habil. Lutz Winkler ::: https://www.telecom.hs-mittweida.de
Optionsheader genutzt durch
Kurzbeschreibung
Hop-by-hop alle Router Bisher wurde nur eine Option definiert, zur Übertragung von Jumbo-Frames (größer als 64 KiByte = 65536 Byte).
Destinationoptions
Zielhost Muss nur vom Zielhost ausgewertet werden. Derzeit noch nicht benutzt.
Routing alle Router Der Routing-Header dient dazu, Routeradressen zu definieren, die in der Route vorhanden sein müssen (Wegepunkte beim Navi). Zwischen den Wegpunkten können beliebige andere Router genutzt werden.
Fragmentation Hosts Der Fragment-Header enthält ähnliche Konzepte, wie bei IPv4: Paket-Identifier, Fragment-Nummer, Bit zur Kennzeichnung, ob fragmentiert wurde bzw. das noch ein Fragment folgt oder keins mehr. Router
Authentification Hosts In einer IPv4-Umgebung wurde ein sicheren Datentransport durch IPSec möglich. Mittels eines AH Authentification header (AH ) kann man den Hash, gebildet über IP-Header+AH+TCP-Header+Data , an den Empfänger übertragen. Damit kann ziemlich sicher der Absender autentifiziert werden. Dieses Konzept muss durch IPv6 unterstützt werden.
Encryptedsecurity payload
Hosts Der "Encryptet security payload"-Header (ESP) sichert in erster Linie die Geheimhaltung der Daten durch Verschlüsselung. Im ESP-Header befindet sich zusätzlich ein Feld HashedMessage Authentication Code (HMAC), worüber auch die Authentification realisiert werden kann. ESP realisiert Authentifikation und Verschlüsselung, AH nur Authentifikation. ESPmuss von IPv6 unterstützt werden.
Internet 2 – Transportdienste und -protokolle
L3-Protokolle: IPv6 – Optionsheader
� Drei Beispiele für die Erweiterung des IPv6-Headers durch Optionsheader– Next-Header=6: Es gibt keine Extension Headers, es wird ein TCP-Segment übertragen.
– Next-Header=43: Es gibt einen Extension Header mit Routing-Informationen. Es folgt ein TCP-Segment.
– Next-Header=43: Es gibt einen Routing Header, gefolgt von einem Fragment-Header mit Fragmentierungsangaben. Es folgt ein TCP-Segment.
35Prof. Dr.-Ing. habil. Lutz Winkler ::: https://www.telecom.hs-mittweida.de
1IPv6 -HeaderNext Header=6
1)TCP-Header + Data …
2IPv6 -HeaderNext Header=43
1)Routing-HeaderNext Header=6
1)TCP-Header + Data …
3IPv6 -HeaderNext Header=431)
Routing-HeaderNext Header=44
1)Fragment-HeaderNext Header=6
1)TCP-Header + Data …
1) siehe http://www.iana.org/assignments/protocol-numbers/protocol-numbers.xml
Internet 2 – Transportdienste und -protokolle
L3-Protokolle: IPv6 – Header-Beispiel
36Prof. Dr.-Ing. habil. Lutz Winkler ::: https://www.telecom.hs-mittweida.de
Analysieren Sie folgenden IPv6-PCI:6c0000000041064020010db800000000000000000000000120010db8000000000000000000000002
0110 IP-Version: 61100 0000 Traffic Class: 0xc00000 0000 0000 0000 0000 Flowlabel: 0x00000000 0000 0100 0001 Payload Length: 65 Byte 0000 0110 Next Header: 6 �TCP0100 0000 Hop Limit: 6420010db8000000000000000000000001 Source-IP: 2001:db8::1/32 1)
20010db8000000000000000000000002 Dest.-IP: 2001:db8::2/32 1)
1) Dummy-Adressen für Dokumentationszwecke (wenn man z.B. Buch, Artikel schreibt), siehe RFC 3849 ansonsten findet man weltweit vergebene Adressblöcke unter: http://www.dfn.de/dienstleistungen/dfninternet/ipadressvergabe0/ipv6bloeckeweltweit/
Internet 2 – Transportdienste und -protokolle
L4-Protokolle: TCP - Transmission Control Protocol /RFC 7931), 1981/
The Transmission Control Protocol (TCP) is intended for use as a highly reliable host-to-host protocol between hosts in packet-switched computer communication networks, and in interconnected systems of such
networks.
As noted above, the primary purpose of the TCP is to provide reliable, securable logical circuit or connection service between pairs of processes. To provide this service on top of a less reliable internet communication system requires facilities in the following areas:
− Basic Data Transfer
− Reliability
− Flow Control
− Multiplexing Connections
− Precedence and Security
1) Updated by Updated by: 1122, 3168, 6093, 6528
7
3
1 PHY
DL
IP
TCP UDP
SMTPPOPHTTP
WWW E-Mail
2
4
37Prof. Dr.-Ing. habil. Lutz Winkler ::: https://www.telecom.hs-mittweida.de
Internet 2 – Transportdienste und -protokolle
L4-Protokolle: TCP-Schicht-Dienste
� Verbindungsaufbau:
– Vor der Datenübertragung wird eine Verbindung zwischen den beiden TCP-Instanzen aufgebaut �3-Wege-Handshake zur Anfangs-Initialisierung (seqNr, ackNr, winSz).
– Es ist eine Duplex-Verbindung, jede Seite sendet zur anderen einen Byte-Strom.
� Gesicherte Datenübertragung:
– Die Daten werden segmentiert und jedes Segment mit einem Header versehen. Im Header befinden sich �Absender- und Zielportnummer �Sequenznummer �Empfangspuffergröße usw.
– Durch Sequenznummern, kann der Empfänger fehlende Segmente erkennen. Fehlerbehaftete Pakete werden beim Empfänger einfach weggeworfen.
– Jedes fehlerfrei empfangene Paket wird vom Empfänger quittiert.
– Der Sender überwacht die Quittierung von Datensegmenten durch einen Timer. Sendet er ein Datensegment, startet er einen Timer. Läuft dieser ab, bevor er eine Quittung erhalten hat, sendet er das Segment noch einmal.
� Verbindungsabbau:
– Die beim Aufbau hergestellte Duplexverbindung, wird beim Abbau wie zwei Einzelverbindungen behandelt.
– Jede Seite muss seine Verbindung getrennt abbauen.
38Prof. Dr.-Ing. habil. Lutz Winkler ::: https://www.telecom.hs-mittweida.de
Internet 2 – Transportdienste und -protokolle
L4-Protokoll TCP: Dienste, Primitives und Protokoll
TCP-Entity
Clt-ApplicationEvents
Actions
SAP*
TCP-Entity
Srv-Application
TCP-Protokoll
Entities kommunizieren mittels Segments auch PDUs genannt:− SYN synchronisation - Verbindungsaufbau− ACK acknowledge - Quittung− PSH push - Datensegment− FIN finale - Verbindungsabbau− RST restart – Rücksetzen einer Verbindung− URG urgend – dringende out of band data
Port
Events
Actions
TCP- Dienste Action/Event SegmentsVerbindungsaufbau listen on port Srv-Appl.: meldet sich passiv am TCP-Stapel an, wartet auf Verbindungen
open port SYN, SYN/ACK, ACK Clt-Appl.: stellt aktiv eine Connection zu einer Srv-Appl. her
connected Positivantwort auf listen on port oder open port
connected failed Negativantwort auf listen on port oder open port
Datenübertragung send data PSH, ACK, PSH/ACK Sende Daten über die Connection
read data Empfange Daten aus der Connection
data ready Daten können aus der Connection gelesen werden
errored Die Connection ist fehlerhaft und wurde beendet
Verbindungsabbau close FIN, ACK, FIN/ACK Beende die Connection
closed Die Connection wurde beendet
SAP*PortTCP-Dienste
39Prof. Dr.-Ing. habil. Lutz Winkler ::: https://www.telecom.hs-mittweida.de
Internet 2 – Transportdienste und -protokolle
L4-Protokoll TCP: Funktionsweise (Prinzip)
ServerClientTCP-Instanz X
SYN-Segment
TCP-Instanz YTCP-Segmente (auch PDUs genannt)
Applikation Applikation
listen on port (passiv open)(activ) open port
SYN/ACK-Segment
ACK-Segmentconnected connected
Verbindungs-Aufbau
3-Wege-Hand-shake
PSH/ACK-Segment mit data (A)send data(A)
PSH/ACK-Segment mit data (a)
data ready (A)
ACK-Segment
send data(a)
ACK-Segment
data ready(a)
data read(a)
data read(a)Daten-
kommu-nikation
ACK-Segment
FIN-Segment
FIN-Segmentcloseclosed
closed
closeVerbindungs-
Abbau
Primitives PrimitivesTCP-Segmente (Protocol Data Units)
40Prof. Dr.-Ing. habil. Lutz Winkler ::: https://www.telecom.hs-mittweida.de
ACK-Segment
Internet 2 – Transportdienste und -protokolle
L4-Protokoll TCP: Protocol Control Information (auch Header)
0..3 4..7 8..11 12..15 16..19 20..23 24..27 28..31
Source port number (spNr) 16 bit Destination port number (dpNr) 16 bit
Sequence number (seqNr) 32 bit
Acknowledge number (ackNr) 32 bit
Header length Reserved 4 bit URG ACK PSH RST SYN FIN Windows size (winSz)1 6 bit
TCP checksum 16 bit Urgent pointer 16 bit
Options (if any)Data (if any)
Source Port, Destination Port Bindung der Anwendungen an den TCP-Kommunikationsstack. Man kann 216 Ports adressieren, siehe extra Chart.
Sequence Number (seqNr): Wird zur Nummerierung der Datensegmente verwendet. Damit kann man fehlende Segmente erkennen und fehlerfreie quittieren. Jede Seite verwaltet eigene Nummerierung. Austausch der Startwerte beim Verbindungsaufbau.
Acknowledge number (ackNr): Wird zur Qittierung des Startwertes oder zur Quittierung von Daten verwendet. Die ackNr=x bedeutet, habe bisher das Byte x-1 empfangen, erwarte jetzt x.
Header Length: TCP-Headerlänge Multiplikator*4-Byte �Mindestwert ist 5*4 Byte, also 0101B
Flags zeigen den Typ des TCP-Segmentes an (eins oder mehrere können gesetzt sein):
URG: Dringend-Segment (urgent), im Feld Urgent Pointer steht Zeiger. ACK: Quittungs-Segment (acknowledge), Quittierung einer TCP-Dateneinheit durch AcknowledgeNumber.PSH: Daten sofort zur Anwendung (push), Informations (Daten)-SegmentRST: Verbindung zurücksetzen (restart), SYN: Sequenznummern synchronisieren (synchronisation)
FIN: Datenende beim Sender (final).
Windows size Enthält die momentane Größe des Empfangspuffers in Byte und wird zur Flusssteuerung verwendet. Ist der Empfangspuffer des Partners voll, wird nichts mehr gesendet, bis wieder Platz ist. Muss mindestens MSS groß sein.
TCP-Checksum Diese Prüfsumme wird über den Header+Daten gebildet und dient der Empfangsseite zur Fehlererkennung
Urgent pointer Nur gültig, mit URG-Flag. URG-Pointer zeigt auf Anfang der normale Daten. Alles zwischen Header und der Stelle auf die der URG-Pointer zeigt, sind dringende Daten.
OptionsDas Options-Feld enthält Zusatzinformationen, die nicht durch Header-Infos übertragen werden können. Optionen werden in der Regel beim Verbindungsaufbau ausgetauscht. Die Optionen sind ein Vielfaches von 32 Bit lang. Sind sie das nicht, muss mit Null-Bits aufgefüllt werden (Padding).
41Prof. Dr.-Ing. habil. Lutz Winkler ::: https://www.telecom.hs-mittweida.de
Internet 2 – Transportdienste und -protokolle
L4-Protokoll TCP: Einzelheit Portnummern
service echo http pop3 imap ldap https
port 7 23 25
protocol(s) tcp,udp tcp,udp tcp
� Damit mehrere Anwendungen gleichzeitig TCP- und/oder UDP-Kommunikation machen können, hat man Portnummern eingeführt.
� Für TCP und UDP gibt es jeweils 216=65536 Portnummern, von 0 bis 65535.
� 3 Portnummernbereiche (verwaltet durch IANA - Internet Assigned Numbers Authority)
– Well Known Ports: 0.. 1023, für allgemein anerkannte Dienste
• Beispiele: �FTP: 21/TCP ����Telnet: 23/TCP ����SMTP: 25/TCP ����POP: 110/TCP ����HTTP: 80/TCP
– Registered Ports: 1024..49151, für proprietäre Dienste
• Beispiel: �SIP: 5060/TCP|UDP
– Private Ports: 49152..65535, für private Anwendungen
� Bis 1992 ging die Well Known Ports lediglich von 0..256.
� Portnummern findet man:– http://www.iana.org/assignments/port-numbers
– C:\WINDOWS\system32\drivers\etc\services
� Ergänzen Sie die fehlenden Werte:
42Prof. Dr.-Ing. habil. Lutz Winkler ::: https://www.telecom.hs-mittweida.de
Internet 2 – Transportdienste und -protokolle
L4-Protokoll TCP: Einzelheit Reihenfolgesteuerung
� Sendedaten werden als fortlaufenden Datenstrom aufgefasst. Mittels der seqNr und der ackNr wird die Einhaltung der Byte-Reihenfolge realisiert. Es sind Zahlen zwischen 0 .. (232-1) zulässig.
– Bei TCP werden die Bytes nummeriert. Im Feld seqNr steht die Nummer des 1. Bytes im aktuellen Segment.
– In der ackNr steht die Bytenummer, die im nächsten Segment als seqNr erwartet wird.
� Beim Verbindungsaufbau werden die Startwerte für die seqNr zwischen den Instanzen ausgetauscht. Der Startwert ist ein Zufallswert!
� Außerdem werden die Empfangspuffergrößen ausgetauscht, damit die Instanzen wissen, wie viel Byte der Partner momentan empfangen kann
� TCP-Verbindungsaufbau mittels SYN/ACK-Sequenzen zur Initialisierung der Verbindung, auch 3-Wege-Handshake genannt.
TCP-Instanz X
(1) SYN-Segment mit seqNr=X
(2) SYN/ACK-Segment mit seqNr= Y und ackNr= X+1
TCP-Instanz YByteStream
connected(3) ACK-Segment mit seqNr=X+1 und ackNr= Y+1
connected
open port
43Prof. Dr.-Ing. habil. Lutz Winkler ::: https://www.telecom.hs-mittweida.de
Internet 2 – Transportdienste und -protokolleProf. Dr.-Ing. habil. Lutz Winkler ::: https://www.telecom.hs-mittweida.de 44
L4-Protokoll TCP: Einzelheit Reihenfolgesteuerung
� Beispiel: Eine TCP-Instanz habe 3500 Byte zu senden. Der Sequ-Nr-Startwert sei 8000, MSS betrage 1000 Byte.
� Die Instanz teilt diese 3500 Byte in 4 Segmente, die mit den gezeigten Sequence-Numbers gesendet, bzw. mit den gezeigten Acknowledge-Numbers quittiert werden.
� Beachte: Die Ack-Nr ist der Erwartungswert der nächsten Sequ-Nr. Quittungsgeber sagt: wenn du mir was sendest, erwarte ich folgende Sequ-Nr.
Segment 1 Segment 2 Segment 3 Segment 4
Sequ-Nr 8001 9001 10001 11001
Bytes 1 … 1000 1001 … 2000 2001 … 3000 3001 … 3500
Ack-Nr 9001 10001 11001 11501
Internet 2 – Transportdienste und -protokolle
L4-Protokoll TCP: Einzelheit Reihenfolgesteuerung
� Beispiel:
– X habe bisher 560 Byte gesendet oder als Startwert ermittelt. Die Empfangs-puffergröße betrage 2048 Byte.
– Y habe bisher 900 Byte gesendet oder als Startwert ermittelt. Die Empfangs-puffergröße sei 8192 Byte.
(1) X sendet SYN mit seqNr=560, winSz=2048
Ermitteln Sie die fehlenden Werte und tragen sie diese in den MSC ein!
45Prof. Dr.-Ing. habil. Lutz Winkler ::: https://www.telecom.hs-mittweida.de
TCP-Instanz X
(1) SYN ( seqNR= ackNr= winSz= )
(2) SYN/ACK ( seqNr= ackNr= winSz= )
TCP-Instanz YByteStream
connected(3) ACK ( seqNr= ackNr= winSz= )
connected
open port
Internet 2 – Transportdienste und -protokolle
� Options werden im RFC 1323 deklariert:
– End of option list
– No operation 1)
– Maximum segment size 2)
– Windows scale factor
– Timestamp
1)zum Auffüllen auf Vielfache von 4 Byte2)in SYN-Segment zur Angabe der maximalen Segmentgröße die TCP verwenden sollte, damit IP nicht fragmentieren muss.
� siehe nächste Folie
3) darf nur in SYN/PSH-Segment ohne gesetztes ACK-Flag verwendet werden. Der Wert repräsentiert den lokalen Sendezeitpunkt.
4) der Wert ist nur gültig, wenn das ACK-Flag gestzt ist. Der Wert repräsentiert den Sendezeitpunkt bei der entfernten Instanz.
L4-Protokoll TCP: Einzelheit Optionen
kind=0
kind=1
kind=2 len=4 2 bytes MSS
kind=3 len=3 1 byte
kind=8 len=10 4 bytes timestamp value3) 4 bytes timestamp echo replay4)
byte1 byte2 byte3 byte4
46Prof. Dr.-Ing. habil. Lutz Winkler ::: https://www.telecom.hs-mittweida.de
Internet 2 – Transportdienste und -protokolle
L4-Protokoll TCP: Maximum Segment Size - MSS
� RFC 8791983 "The TCP Maximum Segment Size and Related Topics" befasst sich mit der Frage, welche Segmentgröße TCP verwenden sollte, damit IP nicht fragmentieren muss:
MSS = MTU – sizeof(TCPHDR) – sizeof(IPHDR)
47Prof. Dr.-Ing. habil. Lutz Winkler ::: https://www.telecom.hs-mittweida.de
� Die MTU (Maximum Transfer
Unit) ist die Anzahl von Oktetts, die ein Netzwerk max. übertragen kann. IP darf also der Schicht-2 keine größeren Pakete zum Senden übergeben.
TCP
IP
MAC
Physical
Net
wor
k
Ethernet: 64 .. 1518 Oktetts
MAC-HDR =18 Oktetts
IP-HDR =20 Oktetts
TCP-HDR =20 Oktetts
- 18
1500MTU ����
- 20
- 20
1460MSS ����
Internet 2 – Transportdienste und -protokolleProf. Dr.-Ing. habil. Lutz Winkler ::: https://www.telecom.hs-mittweida.de 48
L4-Protokoll TCP: Retransmission Time Out – RTO /rfc 2988/
� Sendet eine TCP-Instanz ein PSH-Segment wartet sie RTO auf Antwort, bevor sie das Segment neu sendet.
� RTO ist ein dynamischer Wert, der den TCP-Datendurchsatz bestimmt.
� Jede TCP-Instanz nutzt zur Ermittlung von RTO zwei Statusvariable:SRTT (smoothed1) round-trip time) and RTTVAR (round-trip time variation).
� Regeln zur Ermittlung von SRTT, RTTVAT und RTO
(1) noch kein RTT gemessen: RTO=3 s festgelegt
(2) erste RTT-Messung RTTakt liegt vor: SRTTnew = RTTakt
RTTVARnew = RTTakt /2RTO = SRTTnew + 4 * RTTVARnew
(3) Für jede weitere RTT-Messung:RTTVARnew = 0,75 * RTTVARold + 0,25 * |SRTTold - RTTakt| SRTTnew = 0,875 * SRTTold + 0,125 * RTTakt
RTO = SRTTnew + 4*RTTVARnew
1) smoothed – geglätted
Excel-Arbeitsmappe "Berechnung RTO nach RFC 2988"https://www.telecom.hs-mittweida.de/kommunikationstechnikvorlesungen/teachware.html#c18955
Internet 2 – Transportdienste und -protokolleProf. Dr.-Ing. habil. Lutz Winkler ::: https://www.telecom.hs-mittweida.de 49
L4-Protokolle: TCP - Urgent Pointer
� TCP erlaubt das Übermitteln dringender Daten (out of band data).
� Enthält ein Segment dringende Daten, ist das URG-Flag gesetzt und das Feld Urgent-Pointer enthält einen Zeiger auf das erste normale Datenbyte.
� Dringende Daten werden sofort an die Anwendung weiter geleitet .
0..3 4..7 8..11 12..15 16..19 20..23 24..27 28..31
Source Port Number 16 bit Destination Port Number 16 bit
Sequence number 32 bit
Acknowledge number 32 bit
Header length reserved 6 bit
URG
ACK
PSH
RST
SYN
FIN
Windows size 16 bit
TCP checksum 16 bit Urgent pointer 16 bit
Options (if any)
Urgend Data
Data1.Byte
Internet 2 – Transportdienste und -protokolle
L4-Protokoll TCP: Übung - Analysieren Sie folgende Header
04 51 05 DF 01 86 1A 8D 00 00 00 00 60 02 20 00 D4 C7 00 00 02 04 05 B4
spNr dpNr seqNr ackNr hl fl winSz CRC uPtr options
Head1: LösungHead2: Lösung
spNr dpNr seqNr ackNr hl fl winSz CRC uPtr options
05 DF 04 51 00 29 AC 9F 01 86 1A 8E 60 12 22 38 25 B6 00 00 02 04 05 B4
50Prof. Dr.-Ing. habil. Lutz Winkler ::: https://www.telecom.hs-mittweida.de
Internet 2 – Transportdienste und -protokolle
L4-Protokoll TCP: Übung - Analysieren Sie folgende Header
05 DF 04 51 00 29 AC A0 01 86 1A 9C 50 10 22 2A 3D 73 00 00
51Prof. Dr.-Ing. habil. Lutz Winkler ::: https://www.telecom.hs-mittweida.de
spNr dpNr seqNr ackNr hl fl winSz CRC uPtr options
05 DF 04 51 00 29 AC A0 01 86 1A 9C 50 18 22 2A 2A C4 00 00
03 00 00 0E 09 D0 03 E4 00 0D 00 C0 01 0A
Head3: LösungHead4: Lösung
spNr dpNr seqNr ackNr hl fl winSz CRC uPtr options
Internet 2 – Transportdienste und -protokolle
L4-Protokoll TCP: State Machine /Stevens/
CLOSE_WAIT
LAST_ACKFIN_WAIT_1
FIN_WAIT_2
CLOSING
TIME_WAIT
appl: passive opensend: <nothing>
CLOSED
appl: active opensend: SYN
LISTEN
SYN_SENT
ESTABLISHED
starting point
passive open
active open
data transfer state
SYN_RCVD appl: close or timeout
send: <nothing>
recv: FIN
send: ACK
recv: SYN, ACKsend: ACK
recv: SYNsend: SYN, ACK
simultaneous open
recv: RST
recv: SYN
send: SYN, ACK
appl: close send: FIN
recv: FIN
send: ACK
recv: FIN, ACKsend: ACK
recv: FIN
send: ACK
recv: ACKsend: <nothing>
recv: ACKsend: <nothing>
recv: ACK
send: <nothing>
appl: close send: FIN
appl: send datasend: SYN
appl: close send: FIN
passive close
normal transitions for client
normal transition for server appl: application request
recv: received segment
send: sent segment
simultaneous close
2MSL timeout
recv: ACKsend: <nothing>
MSL maximum segment lifetime (0,5..2 min)
52Prof. Dr.-Ing. habil. Lutz Winkler ::: https://www.telecom.hs-mittweida.de
active close
Internet 2 – Transportdienste und -protokolle
L4-Protokoll TCP: Connection establishment im Detail
� Eine TCP-Verbindung wird durch ein sogenanntes 3-Wege-Handshake eröffnet: Die Serverapplikation “meldet” sicham Stack an, die TCP-Instanz ist im Zustand LISTEN.
1. Die Clientapplikation fordert eine Verbindung zum Server. Es wird ein SYN-Frame gesendet, die seqNr=X, winSz und MSS werden übermittelt.
2. Die Serverseite antwortet mit einem SYN/ACK-Frame, die seqNr=Y, winSz und MSS der Serverseite werden übermittelt, die seqNrder Clientseite wird durch ackNr=X+1 bestätigt (X+1, nächster erwarteter Wert)
3. Der Client bestätigt mit einem ACK-Frame die seqNr der Serverseite (ackNr=Y+1, nächster erwarteter Wert)
ServerClient
TCP-Instanz X
SYN (seqNr= X , winSz= 1892, mss=1460)
TCP-Instanz YTCP-Segmente (PDU‘s|Frames)Applikation Applikation
CLOSED CLOSED
listen on port (passiv open)
LISTEN(activ) open port
SYN_SENT
SYN/ACK (seqNr= Y, ackNr=X+1, winSz=8760, mss=1460)
SYN_RCVD
ACK (seqNr= X+1, ackNr=Y+1, winSz=1892)
ESTABLISHED ESTABLISHED
connected
connected
53Prof. Dr.-Ing. habil. Lutz Winkler ::: https://www.telecom.hs-mittweida.de
Internet 2 – Transportdienste und -protokolle
Segment 1 ************************************************************************************00000: 00 AA 00 12 BC B1 00 00 92 90 6F 2E 08 00 45 00 Ethernet, IP00010: 00 2C 86 0F 40 00 7F 06 F8 A0 8D 37 60 43 8D 3700020: 02 6A 04 51 05 DF 01 86 1A 8D 00 00 00 00 60 02 TCP00030: 20 00 D4 C7 00 00 02 04 05 B4
Segment 2 ************************************************************************************00000: 00 00 92 90 6F 2E 00 AA 00 12 BC B1 08 00 45 00 Ethernet, IP00010: 00 2C 34 03 40 00 80 06 49 AD 8D 37 02 6A 8D 3700020: 60 43 05 DF 04 51 00 29 AC 9F 01 86 1A 8E 60 12 TCP00030: 22 38 25 B6 00 00 02 04 05 B4
Segment 3 ***********************************************************************************00000: 00 AA 00 12 BC B1 00 00 92 90 6F 2E 08 00 45 00 Ethernet, IP00010: 00 28 87 0F 40 00 7F 06 F7 A4 8D 37 60 43 8D 3700020: 02 6A 04 51 05 DF 01 86 1A 8E 00 29 AC A0 50 10 TCP00030: 22 38 3D 73 00 00
L4-Protokoll TCP: Connection establishment trace
54Prof. Dr.-Ing. habil. Lutz Winkler ::: https://www.telecom.hs-mittweida.de
Internet 2 – Transportdienste und -protokolle
L4-Protokoll TCP: Übung - Connection establishment
55Prof. Dr.-Ing. habil. Lutz Winkler ::: https://www.telecom.hs-mittweida.de
LAN
IPTCP
LAN
IPTCP
Application Application
Ermitteln Sie aus dem Trace für TCP:Typ des Segmentes 1: Typ des Segmentes 1: Typ des Segmentes 1:
Ermitteln Sie für den A-Teilnehmer:Eigene Ethernet-Adresse:
Socket-AdresseIP-Adresse:
TCP-Port-Nummer: sequNr:
winSz:MSS:
Ermitteln Sie für den B-Teilnehmer:Eigene Ethernet-Adresse:
Socket-AdresseIP-Adresse:
TCP-Port-Nummer: sequNr:
winSz:MSS:
Internet 2 – Transportdienste und -protokolle
Server
L4-Protokoll TCP: Data transfer
� Der Client sendet an den Server Daten der Anzahl A mittels eines ACK/PSH-Segments. � Der Server quittiert den Empfang mit einem ACK-Segment� Der Server schickt anschließend zwei Datensegmente der Anzahl a und b.
Client
TCP-Instanz X
ACK/PSH sequNr=X+1, ackNr=Y+1
TCP-Instanz YTCP-Segmente (PDU‘s)Applikation Applikation
send data(A)
ACK/PSH sequNr=Y+1, ackNr=X+A+1
ESTABLISHED ESTABLISHED
data ready (A)
ACK ackNr= X+A+1
send data(a)
ACK ackNr= Y+a+1
data ready(a)
ACK/PSH sequNr=Y+a+1, ackNr=X+A+1
send data(b)
ACK ackNr= Y+a+b+1
data ready(b)
ACK/PSH sequNr=Y+a+1, ackNr=X+A+1
data read(a)
data read(a)
data read(a)
56Prof. Dr.-Ing. habil. Lutz Winkler ::: https://www.telecom.hs-mittweida.de
Internet 2 – Transportdienste und -protokolle
L4-Protokoll TCP: Data transfer trace
Segment 1****************************************************************************************Rahm Zeit 7 16.752 00000: 00 AA 00 12 BC B1 00 00 92 90 6F 2E 08 00 45 00 Ethernet, IP00010: 00 36 89 0F 40 00 7F 06 F5 96 8D 37 60 43 8D 3700020: 02 6A 04 51 05 DF 01 86 1A 8E 00 29 AC A0 50 18 TCP00030: 80 00 CC F5 00 00 03 00 00 0E 09 E0 00 00 03 E4 Data00040: 00 C0 01 0D
Segment 2******************************************************************************************Rahm Zeit 8 16.892 00000: 00 00 92 90 6F 2E 00 AA 00 12 BC B1 08 00 45 00 Ethernet, IP00010: 00 28 35 03 40 00 80 06 48 B1 8D 37 02 6A 8D 3700020: 60 43 05 DF 04 51 00 29 AC A0 01 86 1A 9C 50 10 TCP00030: 22 2A 3D 73 00 00
Segment 3******************************************************************************************Rahm Zeit 9 17.004 00000: 00 00 92 90 6F 2E 00 AA 00 12 BC B1 08 00 45 00 Ethernet, IP00010: 00 36 36 03 40 00 80 06 47 A3 8D 37 02 6A 8D 3700020: 60 43 05 DF 04 51 00 29 AC A0 01 86 1A 9C 50 18 TCP00030: 22 2A 2A C4 00 00 03 00 00 0E 09 D0 03 E4 00 0D Data00040: 00 C0 01 0A
Segment 4******************************************************************************************Rahm Zeit 10 17.16800000: 00 AA 00 12 BC B1 00 00 92 90 6F 2E 08 00 45 00 Ethernet, IP00010: 00 28 8A 0F 40 00 7F 06 F4 A4 8D 37 60 43 8D 3700020: 02 6A 04 51 05 DF 01 86 1A 9C 00 29 AC AE 50 10 TCP00030: 7F F2 DF 9C 00 00
57Prof. Dr.-Ing. habil. Lutz Winkler ::: https://www.telecom.hs-mittweida.de
Internet 2 – Transportdienste und -protokolle
L4-Protokoll TCP: Übung - Data transfer
� Skizzieren Sie den Ablauf des Datentransfers (siehe vorangehende Folie). Ermitteln Sie die Werte für seqNr, ackNr, winSz!
ServerClient
TCP-Instanz X TCP-Instanz YTCP-Segmente (PDU‘s)Applikation Applikation
ESTABLISHED ESTABLISHEDsend data(A)
ACK/PSH(01 86 1a 8e, 00 29 ac a0, 80 00) Data(A)
ACK( 00 29 ac a0, 01 86 1a 9c, 22 2a)
58Prof. Dr.-Ing. habil. Lutz Winkler ::: https://www.telecom.hs-mittweida.de
Internet 2 – Transportdienste und -protokolle
L4-Protokoll TCP: Connection termination
� Der Verbindungsabbau wird für jede Halbverbindung extra realisiert:– FIN_WAIT1: X sendet an Y FIN-Segment und wartet auf ACK-Segment von Y– FIN_WAIT2: X wartet auf Abbau der Verbindung von Y– CLOSE_WAIT: Y hat Verbindungsabbau von X quittiert. X darf an Y keine Daten mehr senden, Y kann aber noch
an X Daten senden.– TIME_WAIT: X quittiert FIN von Y mit ACK und wartet MSL (2*maximum segment lifetime) ehe der Zustand
CLOSED erreicht wird. �Damit ist Portnummer erst nach dieser Wartezeit wieder benutzbar.
ServerClient
TCP-Instanz X TCP-Instanz YTCP-Segmente (PDU‘s)Applikation Applikation
ESTABLISHED ESTABLISHED
FIN-Segment sequNr=Mclose
FIN_WAIT1ACK-Segment ackNr=M+1
CLOSE_WAITFIN-Segment sequNr=N
FIN_WAIT2
LAST_ACK
closed
TIME_WAIT
ACK-Segment ackNr=N+1
CLOSED
CLOSED
2MSL
59Prof. Dr.-Ing. habil. Lutz Winkler ::: https://www.telecom.hs-mittweida.de
close
closed
closed
Internet 2 – Transportdienste und -protokolle
L4-Protokoll TCP: Connection termination trace
Segment 1 ************************************************************************************Rahm Zeit 14 17.769 00000: 00 AA 00 12 BC B1 00 00 92 90 6F 2E 08 00 45 00 Ethernet, IP00010: 00 28 8C 0F 40 00 7F 06 F2 A4 8D 37 60 43 8D 3700020: 02 6A 04 51 05 DF 01 86 1B 51 00 29 AD 46 50 11 TCP00030: 7F 5A DE E6 00 00
Segment 2 ************************************************************************************Rahm Zeit 15 17.770 00000: 00 00 92 90 6F 2E 00 AA 00 12 BC B1 08 00 45 00 Ethernet, IP00010: 00 28 39 03 40 00 80 06 44 B1 8D 37 02 6A 8D 3700020: 60 43 05 DF 04 51 00 29 AD 46 01 86 1B 52 50 10 TCP00030: 21 75 3C CC 00 00
Segment 3 ************************************************************************************Rahm Zeit 16 17.771 00000: 00 00 92 90 6F 2E 00 AA 00 12 BC B1 08 00 45 00 Ethernet, IP00010: 00 28 3A 03 40 00 80 06 43 B1 8D 37 02 6A 8D 3700020: 60 43 05 DF 04 51 00 29 AD 46 01 86 1B 52 50 11 TCP00030: 21 75 3C CB 00 00
Segment 4 ************************************************************************************Rahm Zeit 17 17.771 00000: 00 AA 00 12 BC B1 00 00 92 90 6F 2E 08 00 45 00 Ethernet, IP00010: 00 28 8D 0F 40 00 7F 06 F1 A4 8D 37 60 43 8D 3700020: 02 6A 04 51 05 DF 01 86 1B 52 00 29 AD 47 50 10 TCP00030: 7F 5A DE E5 00 00
60Prof. Dr.-Ing. habil. Lutz Winkler ::: https://www.telecom.hs-mittweida.de
Internet 2 – Transportdienste und -protokolle
L4-Protokoll TCP: Übung - Connection termination
� Skizzieren Sie den Ablauf des Verbindungsabbaus (siehe vorangehende Folie)
– Geben Sie die Segmenttypen und die TCP-Zustände an!
– Ermitteln Sie die Werte für seqNr, ackNr!
61Prof. Dr.-Ing. habil. Lutz Winkler ::: https://www.telecom.hs-mittweida.de
ServerClient
TCP-Instanz X TCP-Instanz YTCP-Segmente (PDU‘s)Applikation Applikation
ESTABLISHED ESTABLISHED
FIN (seqNr= )
Internet 2 – Transportdienste und -protokolleProf. Dr.-Ing. habil. Lutz Winkler ::: https://www.telecom.hs-mittweida.de 62
L4-Protokolle: UDP – User Datagram Protocol /RFC 768, 1980/
"Introduction
This User Datagram Protocol (UDP) is defined to make available a datagram mode of packet-switched computer communication in the environment of an interconnected set of computer networks. This protocol assumes that the Internet Protocol (IP) is used as the underlying protocol.
This protocol provides a procedure for application programs to send messages to other programs with a minimum of protocol mechanism. The protocol is transaction oriented, and delivery and duplicate protection are not guaranteed.
Applications requiring ordered reliable delivery of streams of data should use the Transmission Control Protocol (TCP)."
7
3
1 PHY
DL
IP
TCP UDP
SMTPPOPHTTP
WWW E-Mail
2
4
Internet 2 – Transportdienste und -protokolle
L4-Protokolle: UDP – Protocol Control Information (PCI)
� UDP ist ein einfaches, datagramm-orientiertes Transportschicht-Protokoll.
� Jede Output-Operation eines Anwendungsprozesses erzeugt genau ein UDP-Datagramm.
63Prof. Dr.-Ing. habil. Lutz Winkler ::: https://www.telecom.hs-mittweida.de
0..3 4..7 8..11 12..15 16..19 20..23 24..27 28..31
Source Port Number 16 bit Destination Port Number 16 bit
UDP length16 bit UDP checksum16 bit
Data
Source/Destination Port
Bindung der Anwendungen an den UDP/IP-Kommunikationsstack. Man kann 216 Ports adressieren.
UDP length Länge des Header+Daten. Minimum=8. Diese Längenangabe ist redundant, da die Länge in Total length des IP-Headers nochmal angegeben wird.
UDP-Checksum Diese Prüfsumme wird über den Header+Daten gebildet und dient der Fehlererkennung
Internet 2 – Transportdienste und -protokolle
L4-Protokoll UDP: Traces
Datagram 1********************************************************************von LUWI12 (141.55.210.23, 00A0244D36E2) an DNS (141.55.192.50, 00E05285C900)
00000: 00 E0 52 85 C9 00 00 A0 24 4D 36 E2 08 00 45 00 ..R.....$M6...E.
00010: 00 3C 11 EB 00 00 80 11 7C 0D 8D 37 D2 17 8D 37 .<......|..7...7
00020: C0 32 0D 9B 00 35 00 28 B1 5E 00 01 01 00 00 01 .2...5.(.^......
00030: 00 00 00 00 00 00 03 77 77 77 06 6E 6F 76 65 6C .......www.novel
00040: 6C 03 63 6F 6D 00 00 01 00 01 l.com.....
Datagram 2******************************************************************** von DNS (141.55.192.50, 00E05285C900) an LUWI12 (141.55.210.23, 00A0244D36E2)
00000: 00 A0 24 4D 36 E2 00 E0 52 85 C9 00 08 00 45 00 ..$M6...R.....E.
00010: 00 ED 31 26 00 00 3F 11 9D 21 8D 37 C0 32 8D 37 ..1&..?..!.7.2.7
00020: D2 17 00 35 0D 9B 00 D9 44 C0 00 01 81 80 00 01 ...5....D.......
00030: 00 03 00 03 00 03 03 77 77 77 06 6E 6F 76 65 6C .......www.novel
00040: 6C 03 63 6F 6D 00 00 01 00 01 C0 0C 00 01 00 01 l.com...........
64Prof. Dr.-Ing. habil. Lutz Winkler ::: https://www.telecom.hs-mittweida.de
Ermitteln Sie:destPort:sourPort:udpLength:
Ermitteln Sie:destPort:sourPort:udpLength:
Internet 2 – Transportdienste und -protokolle
Player
Player
Player
Unterschied Download und Streaming
Festplatte
(1) Download per TCP/IP
(1) RTP/UDP/IP Echtzeitdaten
(1) RTSP/UDP/IP-Start, -Stop, -Vor, -Zurück, -Pause
65
Prof. Dr.-Ing. habil. Lutz Winkler ::: https://www.telecom.hs-mittweida.de
RTP-Client
RTP-Server
(1) RTCP/UDP/IP QOS-Pakete
(1) RTSP/UDP/IP-DatenRTSP-Client
RTSP-Server
Cache
TCP-Server
TCP-Client
(2) Abspielen
(1) Abspielen
(1) Abspielen
RTP real time protocol (RFC 1889)RTCP real time control protocol (RFC 1890)RTSP real time streaming protocol
Internet 2 – Transportdienste und -protokolle
Mbone – Multicast-Backbone
� Multicast-Adressen der Klasse D dienen zur Adressierung einer Gruppe von Rechnern in einem Netz, auch gerichteter Broadcast genannt
� Server die z.B. Live Video/Radio im Internet aussenden, bekommen eine Multicast-adresse
� Client A, Client B bauen z.B. eine Verbindung zu einem Multicast-Server auf.– Router erkennen Multicast-Adresse, markieren den Link, über den eine Multicast-Verbindung
aufgebaut wurde.– Kommen Pakete mit dieser Multicast-Adresse vom Server, werden diese nur an die markierten
Links weitergeleitet.
� Die Router bilden damit für diese Multicast-Adresse ein virtuelles Netz im Netz:Mbone genannt.
66Prof. Dr.-Ing. habil. Lutz Winkler ::: https://www.telecom.hs-mittweida.de
Client A Client BRouter
Multicast-Server
Router
Internet 2 – Transportdienste und -protokolle
Unterschied: Unicast - Multicast
67Prof. Dr.-Ing. habil. Lutz Winkler ::: https://www.telecom.hs-mittweida.de
Internet 2 – Transportdienste und -protokolleProf. Dr.-Ing. habil. Lutz Winkler ::: https://www.telecom.hs-mittweida.de 68
Literatur
Fachbücher
Comer Computernetzwerke und Internets, Prentice Hall, 2002, ISBN 3-8272-9552-1
Tanenbaum Computernetzwerke, Pearson Studium, 2003, ISBN 978-3-8273-7046-4
Halsall Data Communications, Computer Networks and Open Systems, Addison Wesley 1996, ISBN 0-201-42293-X
Stevens TCP/IP Illustrated, Volume 1 The Protocols, Addison Wesley 1994, ISBN 0-201-63346-9
Badach, Hoffmann
Technik der IP-Netze, Hanser Verlag, 2007, ISBN 978-3-446-21935-9
Stainov IPnG, Das Internet-Protokoll der nächsten Generation, Internat. Thomson Publ., 1997, ISBN 3-8266-4018-7
Taschenbuch
STEIN Taschenbuch Rechnernetze und Internet, Fachbuchverlag Leipzig, 2004, ISBN 3-446-22573-0
Standards
IETF http://tools.ietf.org
Wiresharktraces
http://wiki.wireshark.org/SampleCaptures
http://packetlife.net/captures
URLs
Webbasierter IP-Analysator http://zyxel.trc.dk/
RFC‘c http://tools.ietf.org/html oder http://www.ietf.org