Ladda ner presentationen
Presentation laddar. Vänta.
1
UDP Pålitlig byteström TCP
6558/G558 DATAKOMMUNIKATION UDP Pålitlig byteström TCP
2
End-to-End protokoll Underliggande best-effort nätverk
paket försvinner data kommer fram i oordning data kommer fram i duplikat paketen har ändlig storlek nätverken kan fördröja vidarebefordringen nästan godtyckligt länge Krav i sista hand leveransgaranti av data datat kommer fram ungefär i önskad ordning precis ett exemplar av datat kommer fram stöd för godtyckligt stora datamängder stöd för synkronisering tillåt mottagaren att reglera sändaren dataflöde stöd flera applikationer samtidigt på varje nod
3
User Datagram Protocol UDP Enkel demultiplexing
Opålitlig och oordnad datagramservice Har inbyggd multiplexering Ingen flödeskontroll Mottagarapplikationer identifierade via portar servrar har kända portnummer listas i /etc/services Headerformat Frivillig checksum: UDP header + data + pseudoheader (IP-headerns protokollnr, source-IP, destination-IP, UDP length)
4
Pålitlig byteström Innehåll Upprätta koppling / avsluta koppling
Sliding window Flödeskontroll Adaptiv time-out
5
User Datagram Protocol UDP
6
Transmission Control Protocol TCP
Kopplingsorienterad Byteström applikationer sänder bytes TCP skickar segment applikationer läser bytes Full duplex Flödeskontroll: mottagaren hindrar sändaren från att överbelasta mottagaren Rusningskontroll: hindrar sändaren från att fylla nätverket
7
TCP byteström Application process Write bytes TCP Send buffer Segment
Transmit segments Read Receive buffer ■ ■ ■
8
Datalänk vs Transport Många värdar är samtidigt kopplade
koppla upp och riva ner förbindelsen Varierande RTT adaptiv time-out Långa förseningar i nätverket Beredskap att få in mycket sena paket Sändare/mottagare har olika kapaciteter möjlighet att adaptera sändningshastigheten Nätverket är kapacitetsmässigt inhomogent beredskap för kongestion
9
TCP segmentformat
10
TCP segmentformat SrcPort, DstPort
multiplexerindex (SrcPort,SrcIpAddr,DestPort,DestIpAddr) SequenceNum, Acknowledgement, AdvertisedWindow Sliding window, flow control HdrLen 32 bit words Flags SYN, FIN, RESET, PUSH, URG, ACK Checksum TCP header + data + pseudoheader (SrcIpAddr, DestIPAddr, IP length) UrgPtr Data från början till UrgPtr är av typ URG
11
TCP uppkoppling Active participant (client) (server)
SYN, SequenceNum = x ACK, Acknowledgment =y+1 Acknowledgment =x+1 SYN+ACK, SequenceNum=y,
12
TCP dataöverföring
13
TCP tillståndsdiagram
14
TCP Sliding window protokollet
15
TCP Sliding window protokollet
Sändaren LastByteAcked <= LastByteSent LastByteSent <= LastByteWritten buffra bytes mellan LastByteAcked och LastByteWritten Mottagaren LastByteRead < NextByteExpected NextByteExpected <= LastByteRcvd +1 buffra bytes mellan LastByteRead and LastByteRcvd
16
Flödeskontroll Sändarens bufferstorlek: MaxSendBuffer
Mottagarens bufferstorlek: MaxRcvBuffer Mottagaren: AdvertisedWindow = MaxRcvBuffer –(NextByteExpected- NextByteRead) Sändaren: blockera protokollet ovanför transportnivån om (LastByteWritten-LastByteAcked) > MaxSendBuffer Kvittera allt inkommande data (skicka Ack) Var ihärdig då AdvertisedWindow = 0
17
Silly Window Syndrome Hur aggressivt skall sändaren skicka halvfulla segment eftersträva segment med data av storleken Maximum Segment Size MSS = MTU – IPheader-TCPHeader Sändaren kan styra Efter att ha meddelat AdvertizedWindow=0 vänta tills det finns utrymme för MSS panta med kvitteringarna Sender Receiver
18
Nagles’ algoritm Hur länge väntar sändaren med att sända data?
för länge: interaktiva applikationer lider för kort: nätverket fylls av små segment strategier: sändarens klocka triggar eller mottagen ACK triggar När data kommer från högre nivå if ( mängden data >= MSS och de annonserade fönstren tillåter) then skicka else if (det finns okvitterat data i buffern) then vänta else skicka datat
19
TCP: adaptiv retransmission
Uppmät SampleRTT för varje segment / ACK par Beräkna det vägda medeltalet av RTT EstRTT = a x EstRTT + b x SampleRTT a + b = 1 a mellan 0,8 och 0,9 b mellan 0,1 och 0,2 Sätt TimeOut på basen av EstRTT TimeOut = 2 x EstRTT
20
Karn/Partridge algoritm
Mät inte RTT vid retransmission Dubblera timeout efter varje retransmission
21
Jacobson/Karels’ algoritm
Ett annat sätt att beräkna medeltal för RTT som beaktar fluktuationer Diff = SampleRTT – EstRTT EstRtt = EstRtt + (d x Diff) Dev = Dev + d x ( |Diff| - Dev ) här är d mellan 0 och 1 Timeouten påverkas av variansen TimeOut = m x EstRTT + f x Dev där m = 1 och f = 4 Obs! algortimen beror på klockans granularitet (t.ex. 500 ms) noggranna timeout-mekanismer viktiga i samband med kongestionskontroll
22
Övning 5, exempel 1
Liknande presentationer
© 2024 SlidePlayer.se Inc.
All rights reserved.