(#14) Einführung Transportschicht und UDP Rolf Winter https://www.youtube.com/watch?v=9EUS7BsU588 Transkript (automatisch erstellt) 0:00 bei der betrachtung des schichten modells und der anwendung schicht hatten wir schon einige informationen über die transport schicht der protokolle der 0:06 transport schicht und des dienst modells transport schickt vorweggenommen das war nötig um einige aspekte der anwendung schicht besser verstehen zu koennen 0:14 jetzt folgen die details zu transport schicht insbesondere wird in den folgenden videos auf youtube und tcp eingegangen 0:21 dabei nur ganz kurz denn der dienst den juli anbietet ist aus der sicht eines transport protocol minimal das hauptaugenmerk wird später auf kiel 0:29 gelegt das wesentlich komplexer ist und eine zentrale rolle für die stabilität des internets einnimmt die transport schickt bietet den 0:38 anwendungs schick protokollen einen einfachen dienst an die datenübertragung zwischen prozessen dieser dienst kann unterschiedliche 0:45 implementiert sein so kann er zum beispiel zuverlässig sein das heißt der dienst erkennt verloren gegangene pakete und überträgt die daten neu oder 0:53 unzuverlässig also ohne übertragung bei paketverlust wir hatten schon gesehen dass die pi den unzuverlässigen dienst anbietet und tcp den zuverlässigen 1:03 anwendung können dabei beliebige daten insbesondere beliebig große daten über das netzwerk übertragen das nicht selbst sendet allerdings pakete mit einer 1:11 gewissen maximalen größe die transport schicht übernimmt dabei sender seit ich das aufteilen der daten in segmente beim empfänger werden diese segmente wieder 1:20 zusammengesetzt und der empfangenen anwendung übergeben die transport nutzt selbst den dienst der netzwerk schicht die pakete von 1:29 einem system zu einem anderen leitet dieser dienst ist unzuverlässig oder best effort das heißt pakete können verloren gehen es können sich bit wieder 1:38 einschleichen oder pakete können in einer anderen reihenfolge ankommen als sie verschickt wurden juli ist damit nur eine minimale 1:45 erweiterung dieses dienstes diese hingegen bietet einen signifikanten mehrwert gegenüber dem best effort dienst der netzwerk schicht 1:52 die transport schicht ist dabei in der regel im betriebssystem implementiert das heißt änderungen an transportschiff protokollen ist einem einfachen 2:00 anwendungsentwickler nicht möglich außerdem läuft die transport schicht auf den end systemen und das netzwerk selbst also router und switches benötigen wir 2:09 da einsicht in die steuerinformationen der transport protocol noch muss zustand bezüglich der transport schicht im netz gehalten 2:15 werden damit sind transport protokolle sogenannter ende-zu-ende protokolle bevor wir uns mit der einen zentralen 2:23 transport schickt funktion auseinandersetzen wie jedes transport protocol implementieren muss müssen wir uns die anwendungs schnittstelle der 2:31 netzwerk programmierung noch einmal etwas genauer betrachten diese gezocke genannt und ein zoo kid ist so etwas wie ein hendl um daten über das netzwerk zu 2:39 transportieren sockets com mit einer eigenen programmierschnittstelle die in vielen belangen dateioperationen unix artige betriebssysteme folgen ja der 2:48 rating ist er viel philosophie und zog jetzt tragen dem in gewisser weise rechnung und verhalten sich ähnlich wie dateien allerdings gibt es viele 2:56 operationen insbesondere bei verbindungs orientierten protokollen wie dcp die sich nicht auf dateisystem operation abbilden lassen und daher reicht die 3:05 socket ip von dateioperationen in vielerlei hinsicht ab die original socket ep ist in c geschrieben und der funktions prototyp und einen sockel zu 3:15 kreieren ist ja exemplarisch dargestellt ohne auf die details der sockel tempi eingehen zu wollen gibt es ein paar wichtige eigenschaften die für die 3:22 betrachtung des grund dienstes der transport protokolle wichtig sind insbesondere die verteilung der pakete an prozesse ist hier wichtig denn ein 3:31 prozess kann viele zocker zu öffnen und an end systemen kann viele ip adressen besitzen und ein socket kann eventuell nur auf pakete reagieren die an 3:38 bestimmte ip adressen geschickt wurden daher wird ein socket durch ip adressen und brot nummern identifiziert bei verbindungs losen protokollen wie judith 3:47 i das heißt transport protocol die keine verbindung aufbauen müssen bevor pakete ausgetauscht werden wird das zweit opel aus empfänger ip-adresse und empfänger 3:57 port nummer 1 gesetzt um pakete an ein zocker auszuliefern das heißt pakete von verschiedenen sendern an das gleiche zwei doppel gehen 4:06 an den gleichen zocke bei judith ein dns-server zb der youtube nutzt benötigt nur einen socket um alle dns-anfragen behandeln zu können 4:16 bei diese bier hingegen wie das viert opel aus den beiden ip-adressen und den beiden port nummern vom sender und empfänger benutzt um den zocke zu 4:24 adressieren das heißt die pakete von zwei verschiedenen sendern die die gleichen empfänger informationen beinhalten gehen 4:31 an verschiedene circles der grund ist dass beim erstellen einer verbindung ein neuer socket erzeugt wird und dieser ist an das vierte gebunden 4:39 das heißt ein http server zum beispiel erzeugt für jede dcp verbindung von einem client einen neuen socket das ist wichtig um die grundfunktionen der 4:49 transport protokolle zu verstehen dass multiplexing bzw das dem multiplex in dem multiplexing ist eine empfänger seitige operation 4:58 dabei werden eingehende pakete von der netzwerk schicht entgegengenommen und an den richtigen prozess weitergeleitet wie wir gerade gesehen haben spielt es keine 5:06 rolle ob es sich um einen verbindungsoffizier das protokoll handelt oder nicht denn entweder wird das zwei doppel zur identifizierung des 5:13 opfers oder das viert ubl genutzt multiplexing ist die dazugehörige sender seitige operation hier werden pakete von den prozessen 5:20 eingesammelt und mit steuerinformationen versehen die für das dem multiplex in benötigt werden die transportpflicht fügt zum dem multiplexing 16 bit große 5:29 pop nummern als steuerinformationen dem segment hin zu pop nummern werden dabei in drei verschiedene bereiche eingeteilt der erste bereich sind port nummern 5:38 kleiner als 1000 24 diese werden als system port oder well known port bezeichnet viele betriebssysteme erlauben nur zugriff auf die supports 5:46 von privilegierten prozessen dann gibt es den bereich zwischen 1024 und 49.000 151 dieser bereich wird als user ports oder roger sports bezeichnet 5:58 wie bei den wellen und porz wird dieser bereich von der iena zugewiesen und man muss die nutzung der ports bei der registrierung begründen 6:06 der letzte bereich ist frei verfügbar und die meisten kleinen programme bedienen sich aus diesem bereich denn dynamic ports auch privat oder fmo 6:14 reports genannt also flüchtige ports denn diese werden meist nur kurz vom kleinen genutzt wobei die anderen port bereiche für server dienste gedacht sind 6:22 es wird zeit das erste konkrete transport protocol zu betrachten dass user data protocol kurz judith das multiplexing dem multiplexing als 6:31 minimalanforderung an einen transport protocol wird von judith implementiert es fügt die port nummern des endenden sockets und des empfänger 6:38 das dem paket hinzu pakete können bei der übertragung verloren gehen in der falschen reihenfolge ankommen und mit fehler enthalten 6:46 gdp reagiert auf diese vorgänge selbst nicht mit fehler können wir sehen werden von jp erkannt werden allerdings für das paket bei erkanntem fehler einfach 6:55 verworfen und ist aus anwendungs sicht somit nicht von paketverlust unterscheidbar juli ist verbindungs los das heißt eine anwendung kann ohne eine 7:04 verbindung mit dem empfänger aufbauen zu müssen daten senden dieser umstand ist auch einer der dasein als gründe für die pea dann erstellt 7:11 sich ja schon die frage warum gdp gewählt werden sollte wenn es den viel höherwertigeren dienst von dcp gibt mit dem wegfallen des verbindungsaufbau ist 7:19 entfällt auch die initiale verzögerung beim senden von daten wenn es sich zum beispiel nur um ein paket handelt dann kann der verbindungsaufbau einen nicht 7:27 unerheblichen anteil an der gesamt verzögerung einnehmen hinzu kommt dass gp nur wenig steuerinformationen den paketen hinzufügt dh der overhead von 7:36 judiths gering auch die implementierung von judith ist aufgrund der geringen komplexität des protokolls vergleichsweise einfach und 7:43 benötigt kaum zustand in den end systemen zu guter letzt kann das fehlen einer überlast kontrolle positiv sein überlasst kontrolle ist ein mechanismus 7:51 der versucht das der genutzte paten nicht in anhaltenden stau getrieben wird ein solcher mechanismus sorgt in der regel dafür dass die erlaubte sender 7:59 rate schwankt was bei einigen anwendungen nicht wünschenswert ist aber und dies ist ein ziemlich großes aber über die pi verkehr mit einer hohen 8:08 sender rate kann damit auch anhaltenden stau erzeugen und damit zu gesteigertem paketverlust da er ist hier vorsicht geboten 8:16 werfen wir einen blick auf den juli hat judith fügt einem paket insgesamt acht weithin zu jeweils zwei byd für die beiden port nummern 1 2 bei großes 8:26 längenfeld dass die länge des headers plus der daten in bayern gibt und damit mindestens einen wert von 8 aufweisen muss 8:32 zu guter letzt gibt es noch eine prüfsumme die zur bit fehlererkennung eingesetzt wird dazu aber gleich mehr die einsatzgebiete von judy wiesen 8:41 vielfältig live multimedia wie weiß nutzte gp aber auch dns wie wir gesehen hatten paketverlust wird dabei durch einen timer im dns klein 8:49 abgefangen denn ein der nasri quest ist typischerweise nur ein paket groß und wenn innerhalb einer gewissen zeitspanne keine antwort erfolgt wie der ricoh ist 8:57 einfach nur übertragen das ist schneller als erst eine dvv verbindung aufbauen zu müssen ein gewisser trend ist heute auch neue 9:06 transport protokolle direkt über judith zu implementieren das hört sich zunächst widersinnig an denn man könnte ja auch einfach neue 9:12 transport protokolle spezifizieren das ist mit protokollen wie scp und die ccp er auch passiert allerdings hat sich in der realität als schwierig erwiesen 9:21 diese im internet einzusetzen auch ist es nur wenigen firmen und organisationen möglich dies zu tun den betriebssystem entwickeln 9:29 daher gab es in der vergangenheit bestrebungen den minimalen unity dienst in der anwendung schicht so zu erweitern dass effektiv ein neues transport 9:38 protocol entsteht das meist von tcp in entscheidender weise abweicht bei krieg zum beispiel oder die grundeigenschaft von tcp übernommen wie zum beispiel das 9:48 tau kontroll verhalten aber es wurden sicherheitsmechanismen hinzugefügt und eine reihe von performance verbesserungen bei maico tichy von 9:56 betont hingegen wurde ein neuer stau kontrollmechanismus namens lepad implementiert der weniger aggressiv ist im vergleich zu dem von tcp und damit 10:05 für hintergrund dateitransfers besonders geeignet ist schauen wir uns die prüfsumme von jp etwas genauer an 10:13 streng genommen wird diese punkt summe nicht nur von judith genutzt nun auch von anderen protokollen wie zb tcb die herausragenden eigenschaften dieser pool 10:22 summe sind unter anderem dass sie einfach und damit schnell zu berechnen ist sie hat darüber hinaus diverse andere 10:27 positive mathematische eigenschaften wie der schnelle bilden der negation die prüfsumme wird wie schon erwähnt zur erkennung von bildfehlern eingesetzt das 10:36 heißt wenn während der übertragung aus 0 1 einzel werden oder umgekehrt der eingesetzte algorithmus ist dabei denkbar einfach ein paket mit dabei als 10:47 eine folge von 16 bit werten betrachtet sollte das paket eine ungerade anzahl an besitzen wird ein petting weit bestehend aus nullen angehängt das prüf umfeld 10:57 wird ebenfalls für die berechnung auf null gesetzt die prüfsumme wird als einer komplett summe dieser 16 bit werte berechnet und 11:06 dann invertiert das heißt in der summe werden alle bits umgedreht aus einer einst mit einer null und umgekehrt dieser letzte schritt entspricht der 11:14 negation in einer kompliment arithmetik und dieser wert wird letztendlich in das prüf umfeld geschrieben beim empfänger kann nun die gleiche 11:23 berechnung angestellt werden allerdings muss dank der negation die prüfsumme das prüf umfeld nicht auf null gesetzt werden 11:30 diese berechnung muss - 0 in der einer komplement addition ergeben das heißt alle bits müssen gesetzt sein dann ist die polsumer korrekt 11:38 andernfalls gab es mit fehler und das paket muss verworfen werden schauen wir uns ein beispiel dazu an hier im beispiel werden exemplarisch 2 11:48 16 bit werte addiert bei der einer kompliment addition ist zu beachten dass der übertrag sollte einer existieren nach der addition noch zur finalen summe 11:56 hinzu addiert werden muss diese summe wird daraufhin negiert in dem alle bits investiert werden dies ergibt dann die finale prüfsumme 12:04 die güte dieser prüfsumme ist rein mathematisch gesehen nicht sonderlich hoch weil es triviale fehler gibt die nicht garantiert erkannt werden können 12:11 genauer gesagt können eine gerade anzahl an mit wlan an der gleichen stelle in den 16 bit werten nicht erkannt werden nehmen wir als einfaches beispiel hier 12:20 das in den beiden nicht die abgebildeten 16 bit werten die jeweils ganz rechte stelle verändert wird das heißt aus der 0 im ersten wert mit einer 1 und aus der 12:30 einst im zweiten wert wird eine null das ergebnis in der summe bleibt damit gleich und der fehler wird nicht erkannt eine ungerade anzahl an fehlern wird 12:39 aber garantiert erkannt auch gibt es natürlich gerade an zahlen an mit fehlern die erkannt werden aber eben nicht alle möglichen bit fehler 12:47 kombination garantiert wir werden aber noch bessere prüfsummen kennenlernen jetzt wird die prüfsumme aber nicht über dem gdp header und die folgenden daten 12:55 allein berechnet sondern juli bildet noch einen sogenannten pseudo- hätte den es dem gdp header und den darauf folgenden daten voranstellt er wird bis 13:04 heute härter genannt da dieser in dieser form nicht existiert sondern nur zum zwecke der prüfsummen bildung erzeugt wird der pseudo header beinhaltet unter 13:11 anderem die ip adressen des pakets und ein weiteres element aus dem ip da dass wir noch keine lernen werden damit schützt die 13:19 prüfsumme auch felder aus anderen protokollen das hört sich zunächst interessant an hat aber entscheidende nachteile denn 13:25 rein architektur l verletzte pseudo hätte das schichtmodell denn in der transport schicht muss nun steuerinformationen aus der netzwerk 13:32 schicht bekannt sein des weiteren muss die transportschiff prüfsumme neu gebildet werden sollte sich ip-adresse informationen ändern 13:40 das ist im heutigen internet nicht unüblich wie wir noch lernen werden zusammenfassend transport protokolle sind sogenannte ende-zu-ende protokolle 13:49 die funktionalität nur auf den end systeme implementieren ohne dazu unterstützung vom netz selbst zu benötigen 13:56 der fundamentale minimal dienst eines transport protokolls ist dabei der datenaustausch zwischen prozessen wozu die port nummer benötigt wird denn diese 14:05 werden für das dem multiplexing beim empfänger benötigt der existieren dpa dazu die socket mpi benutzt aber noch 14:12 zusätzlich die empfänger ip adresse bei verbindungs losen protokollen wie youtube oder sogar das volle vier doppel bei gcp juli erweitert den 14:22 unzuverlässigen dienst der netzwerk schicht nur minimal um port nummern für die prozess- adressierung und um eine prüfsumme die das erkennen von 14:30 bildfehlern erlaubt die prüfsumme die utopie und verschiedene andere protokolle einsätzen hat dabei keine sonderlich starken mathematischen 14:37 garantien ist aber sehr leicht zu implementieren und schnell zu berechnen und deckt eine große menge möglicher fehler fälle ab auch wenn triviale 14:45 fehler unter umständen unbemerkt bleiben