Transportnivån. Kommunikation mellan processer. Kommunikation mellan processer. Sockets och TCP. UDP (User Datagram Protocol) Checksumman



Relevanta dokument
Tentamen i Datorkommunikation den 10 mars 2014

DIG IN TO Nätverksteknologier

Föreläsning 5. Vägval. Vägval: önskvärda egenskaper. Mål:

Instuderingsfrågor ETS052 Datorkommuniktion

Karlstads universitet Institutionen för Informationsteknologi Datavetenskap

Internetprotokollen. Maria Kihl

Transport Layer. Transport Layer. F9 Meddelandesändning med UDP EDA095 Nätverksprogrammering. Java och UDP TCP/UDP

DA 2012: F13. Nätverk 2 Ann-Sofi Åhn

Grundläggande nätverksteknik. F3: Kapitel 4 och 5

TCP/IP och Internetadressering

5 Internet, TCP/IP och Tillämpningar

Vad är Internet? - Flera olika slags nät - Vill kunna kommunicera över dessa nät - Vad gör man?

IT för personligt arbete F2

Question 2. a) reliable delivery. 5 June

TCP och UDP-nivån. Portnummer

Kihl & Andersson: , 4.5 Stallings: , , (7.3)

6. Blandade uppgifter

Namn: (Ifylles av student) Personnummer: Tentamensdatum: Tid: Hjälpmedel: Inga hjälpmedel

Internet. Internet hur kom det till? Internets framväxt. Ett hierarkiskt uppbyggt telenät Kretskopplat/circuit switching

IP Från användare till användare Vägval DNS Jens A Andersson (Maria Kihl) Att skicka data över flera länkar. Nätprotokoll

1. Internets Applikationer 8 poäng

Kihl & Andersson: , Stallings: , , DHCP beskrivs även bra på

Länkhantering (feldetektering, felhantering, flödeskontroll) Maria Kihl

5 Internet, TCP/IP och Applikationer

ETS052 Internet Routing. Jens A Andersson

F8 Meddelandesändning med UDP

Tentamen Nätverksprogrammering Lösningsförslag

Nät med flera länkar. Vägval. Enklaste formen av kommunikation:

Katarina Persson TCP/IP i taktiska ad hoc-nät

Hanna Germundsson, Karl-Johan Lundberg.

Karlstads universitet Institutionen för Informationsteknologi Datavetenskap

Hjälpprotokoll till IP

Kihl & Andersson: Kapitel 6 (+ introduktioner från kap 7, men följ slides) Stallings: 9.5, 14.1, 14.2, Introduktion i 14.3, 16.1

Internetprotokollen. Maria Kihl

Från användare till användare. (Maria Kihl)

Kapitel 5: Lokala nät Ethernet o 802.x. Lokala nät. Bryggan. Jens A Andersson (Maria Kihl)

Labb i Datorsystemteknik och programvaruteknik Programmering av kalkylator i Visual Basic

5. Internet, TCP/IP tillämpningar och säkerhet

Tillförlitlig dataöverföring. Jens A Andersson

Säkerhet genom simpel nätverksutrustning. Högskoleingenjörsexamensarbete Fredrik Folke

Uppgift (poäng) 1 (2) 2 (3) 3 (4) 4 (4) 5 (3) 6 (4) 7 (6) 8 (6) 9 (8) Summa

Real-time requirements for online games

Datasäkerhet och integritet

Kapitel 6, 7, o 8: ARP Vägval Från användare till användare. Jens A Andersson (Maria Kihl)

Nätverkslagret - Intro

LABORATIONSRAPPORT Säkerhet och Sårbarhet Laboration 1 Brandväggar

Lösningar till tentan i ETS052 Datorkommunikation

Tentamen Nätverksprogrammering Lösningsförslag

Föreläsning 6: Introduktion av listor

Kapitel 3 o 4. Tillförlitlig dataöverföring. (Maria Kihl)

DSV A Procedurell programmering 5 poäng Tentamen

Objektorienterad Programkonstruktion. Föreläsning 10 7 dec 2015

Tentamen i datakommunikation EDA343/DIT420 Vt 2011

Lösningar till tentan i ETS052 Datorkommunikation

Skriftlig tentamen i kursen TDTS04 Datornät och distribuerade system kl. 8 12

Datakommunikation I 5p

F9 Meddelandesändning med UDP

Ansvarig lärare: Håkan Sundell, Anders Gidenstam, Jürgen Claussen Telefonnummer: (4214, 4134)

Denial of Services attacker. en översikt

Tillförlitlig dataöverföring Egenskaper hos en länk Accessmetoder. Jens A Andersson

TENTAMEN. Kurskod/Kurs: 5DV013, Datakommunikation och datornät. Ansvariga lärare: Jerry Eriksson Anders Broberg

Från användare till användare ARP. (Maria Kihl)

Datakommunikation vad är det?

IP grunder och arkitektur

DT123G - Nätverksanalys

Tentaexempel. Maria Kihl

Dugga Datastrukturer (DAT036)

Grundläggande datavetenskap, 4p

Föreläsning 4: Lokala nät (forts ) Ethernet o 802.x Stora nät och behovet av nätprotokoll Transportprotokoll. Emma Fitzgerald

Laboration i Datakommunikation - Introduktion till Sockets och TCP/IP

Stora datanät. Maria Kihl

2D1395, Datasäkerhet. GF3 Paketfiltrering

Föreläsning 9 Transportprotokoll UDP TCP

Tentamensskrivning Nätverksprogrammering (EDA095 - FED) , kl 8-13

Övning 4 EITF25 & EITF Protokoll. October 29, 2016

Datakommunikation och Internet

För att din dator ska fungera på IP-nivån så behövs tre saker konfigureras:

Snabbguide Visma Compact API Version 5.1 Copyright Visma Spcs AB Visma Compact API

Transportskiktets uppgifter. Transportskiktet UDP. UDP-kapning (DNS) DNS-sökning, Ethernet-ram <#>

Transportskiktet. Sidorna , i boken

Säkerhet. Säker kommunikation - Nivå. Secure . Alice wants to send secret message, m, to Bob.

TDTS04 Datornät och distribuerade system, 15 mars 2010 Svar sammanställda av Juha Takkinen, IDA,

Grundläggande nätverksteknik. F2: Kapitel 2 och 3

KomSys Hela kursen på en föreläsning ;-) Jens A Andersson

Introduktion Lync-/SfB-Infrastruktur Cellips infrastruktur Brandväggskrav Lync/SfB Server PSTN Gateway...

Föreläsning 5: ARP (hur hitta MAC-adress) Från applikation till applikation

Ansvarig lärare: Håkan Sundell, Anders Gidenstam, Jürgen Claussen Telefonnummer: (4214, 4134)

Ansvarig lärare: Anders Gidenstam, Shirin Tavara, Karl Jansson Telefonnummer: (4097) (4399)

IPv6 Jonas Westerlund Institutionen för Informationsbehandling Åbo Akademi, Åbo, Finland

Datalänklagret. Datalänklagret ska:

Skriftlig tentamen i kursen TDTS04 och TDTS43 Datornät och distribuerade system kl

Mattias Wiggberg 1. Orientera på Internet. IP-adress. IP-adresserna räcker inte... Mer om IP-adresser

TENTAMEN. Kurskod/Kurs: 5DV013, Datakommunikation och datornät 5DV065, Datakommunikation och Internet

Föreläsning 5: Stora datanät Från användare till användare ARP

Att installera och använda nmap

Tentamen Nätverksprogrammering Lösningsförslag

Sockets: server. with Ada.Command_Line; use Ada.Command_Line; with Ada.Exceptions; use Ada.Exceptions; with Ada.Text_IO; use Ada.

Föreläsning 3. Datorkunskap 50p Marcus Weiderstål Bromma Gymnasium

SMD 134 Objektorienterad programmering

Transkript:

Transportnivån Kommunikation mellan processer :HEVHUYHU 6RFNHW 0LQSURFHVV 6RFNHW /RJLVNNRPPXQLNDWLRQPHOODQDSSOLNDWLRQV SURFHVVHU1lWYHUNVQLYnQLQQHElUORJLVN NRPPXQLNDWLRQPHOODQQRGHU (QVRFNHWSRUW JUlQVVQLWWPHOODQWUDQVSRUWQLYnQRFK DSSOLNDWLRQVSURFHVVHQ KHOWDOPHGXQLNLGHQWLWHW UHVHUYHUDGH Kommunikation mellan processer Från transportnivån till rätt process demultiplexing Från processen - multiplexing 8'3 )UnQSRUW 7LOOSRUW Sockets och TCP En socket används för att uppkoppling (t.ex. 80) Ny socket används för dialog, servern skapar ny process/tråd Identifieras av Š Klientens IP-adress Š Klientens portnummer Š Serverns IP-adress Š Portnummer för tjänsten UDP (User Datagram Protocol) ELWDU.lOOSRUW 'HVWLQDWLRQVSRUW /lqjg &KHFNVXPPD $SSOLNDWLRQVGDWD Checksumman Algoritm alla 16-bits ord = S Trunkera S till 16 bitar Beräkna 1-komplementet av S = S1 Kontroll: S + S1 = 1111 1111 1111 1111 1000 1000 1000 1000 + 1101 1101 1101 1101 1 0110 0110 0110 0101 0110 0110 0110 0101 1001 1001 1001 1010 0110 0110 0110 0101 + 1001 1001 1001 1010 1111 1111 1111 1111

Säker kommunikation Överföringsfel Tillståndsdiagram uppifrån Skicka Paketera Skicka iväg nerifrån Ta emot Extrahera Skicka uppåt Checksummor för felupptäckt Positiva och negativa bekräftelser Upprepade meddelanden sändare mottagare Tillståndsdiagram sändare uppifrån Skicka Ta emot ACK Vänta ACK Eller NAK Ta emot emot NAK Skicka en gång till Korrupt bekräftelse Inför ett sekvensnummer Š NAK eller korrupt => skicka om Felaktigt meddelande Skicka NAK nerifrån mottagare Korrekt meddelande Extrahera Skicka uppåt Skicka ACK Š Om en korrekt kopia dyker upp, skicka ACK Sekvensnummer i bekräftelse Tillståndsdiagram för sändare Skicka tillbaka senast korrekta sekvensnummer => endast ACK behövs Om man mottar två ACK med samma sekvensnummer => meddelandet efter korrupt Ta emot emot ACK(1) Uppifrån (0) Vänta ACK (1) Skicka(0) Vänta ACK (0) Uppifrån (1) Korrupt eller ACK(1) Skicka(0) en gång till Ta emot emot ACK(0) Korrupt eller ACK(0) Skicka(1) en gång till Skicka(1)

Borttappade meddelanden Tillståndsdiagram för mottagare n kan vänta en stund och upprepa meddelandet om inget svar erhålls n skickar med sekvensnummer för senast korrekt meddelande nerifrån (0) Korrupt eller (1) Skicka ACK(1) en gång till Ta emot(0) Packa upp Skicka uppåt Skicka ACK(0) Ta emot emot ACK(1) Packa upp Skicka uppåt Skicka ACK(1) Korrupt eller (0) Skicka ACK (0) en gång till Nerifrån(1) Fall 1: Hakuna Matata Fall 2: Borttappat paket WLPHRXW Fall 3: Borttappad bekräftelse Fall 4: Tidig timeout WLPHRXW WLPHRXW

Pipelining Sliding windows Kan inte vänta på en bekräftelse för varje meddelande. Mer än en bit för sekvensnummer Buffert på sändarsidan av icke bekräftade meddelande Buffert på mottagarsidan för att kunna leverera i rätt ordning. bekräftade möjliga 2 sända 3 väntande ej användbara Fönsterstorlek = 5 Sändande sida Skicka om fönsterstorleken inte överskrids Bekräftelse t.o.m. sekvensnummer i ACK Vid time-out skickas alla paket som inte bekräftats (en timeout för först skickat men ej bekräftat) Mottagande sida Nästa förväntade kommer in => skicka ACK med samma sekvensnummer och leverera till applikationsnivån Felaktig ordning => kasta, skicka ACK på senaste korrekta (alla skickas om i alla fall) Selective Repeat Endast paket med problem skickas om Fortfarande sliding window Varje paket bekräftas för sig (timeout för varje, ej bekräftat, paket). n lagrar paket som kommer in i fel ordning TCP Transmission Control Protocol Connection-oriented Mellan slutnoder, inga mellannoder inblandade Tillstånd enbart hos klient och server Š Sänd- eller mottagningsbuffert Š Diverse tillstånd

Meddelandeformat Sekvensnummer Som UDP: källadress, destinationsadress, check-summa, längd, data från applikationen Sekvens- och bekräftelsenummer (32 bitar) Antalet bytes en mottagare är villig att ta emot Fält för förhandling om buffert- och fönsterstorlek Flaggor som ACK, RST, SYN, FIN Diverse skräp som inte används 6HN $FN 6HN $FN 6HN $FN 6HN $FN Väntetider Vänta en stund innan meddelande skickas om (en timer per nod) Beräknad svarstid = 0,875 * beräknad svarstid + 0,125 * aktuell svarstid Beräknad avvikelse = 0,75 * beräknad avvikelse + 0,25 * aktuell svarstid beräknad svarstid Vänta en stund = beräknad svarstid + 4 * beräknad avvikelse Förenklad sändare Public Class TCPData End Class Public Class TCPSegment End Class Public Class IPSender End Class Public Class TCPSender Private nextseqnum, sendbase As Integer Private averagetime, deviation As Double Private thetimer As Timers.Timer Private IP As IPSender Public Sub New(ByVal initialseq As Integer, ByVal average As Double, ByVal dev As Double, ByVal ip As IPSender) Me.nextSeqNum = initialseq Me.sendBase = initialseq Me.averageTime = average Me.deviation = dev Me.theTimer = New Timers.Timer() Me.theTimer.Enabled = False Me.IP = ip End Sub Public Sub send(byval d As TCPData) Dim segment As TCPSegment = New TCPSegment(d, nextseqnum) If Not thetimer.enabled Then thetimer.interval = averagetime + 4 * deviation thetimer.autoreset = False thetimer.enabled = True End If IP.send(segment) nextseqnum += d.lenght End Sub

Public Sub timerevent() Dim d As TCPSegment hämta segment som inte bekräftats 'använd det som har lägst sekvensnummer IP.send(d) 'starta timer End Sub Public Sub ackrecieved(byval seq As Integer) If seq > sendbase Then sendbase = seq 'om det finns ej bekräftade segment 'starta om timer End If End Sub End Class Fall 1 WLPHRXW Fall 2 Fall 3 7LPHRXW 6HT 7LPHRXW 6HT 7LPHRXW 6HT Förbättringar Flödeskontroll Omstart av timer efter time-out Vill inte översvämma mottagaren Kan betyda att nätet överbelastat Š Fördubbla intervallet för varje gång Tre ack för ett meddelade Flera senare meddelande mottagna men ett hål har uppstått Š Skicka om direkt, vänta inte på timer 6WRUOHNHQ VNLFNDVLDOOD VYDU

Uppkoppling Nedkoppling 1. Skicka meddelande med SYN=1 och initialt sekvensnummer 2. Servern svarar med SYN=1, sitt initiala sekvensummer samt bekräftar klientens sekvensnummer 3. Klienten bekräftar serverns sekvensnummer 1. A skickar meddelande med FIN=1 2. B bekräftar 3. B skickar med meddelande med FIN=1 4. A bekräftar Belastning Belastning Exempel 1: Två sändande noder via en gemensam router med oändlig buffert samt kapacitet R Exempel 2: begränsad buffert i router 0RWWDJQD 5 6NLFNDGH ) UGU MQLQJ 5 6NLFNDGH 0RWWDJQD,GHDOIDOOHW 9HUNOLJWXWIDOO 5 6NLFNDGH 6NLOOQDGHQ EHURUSn" Belastning Belastningskontroll TCP Exempel 3: flera noder, flera routrar 0RWWDJQD 6NLFNDGH

Lyssna Åtgärda (förenklat) 7LPHRXW GXSOLFHUDGH Ny variabel (fönster) för data som kan skickas Halvera storleken vid belastning Öka storleken försiktigt Storlek += meddelandestorlek Öka mer i början