Presentation laddar. Vänta.

Presentation laddar. Vänta.

UDP Pålitlig byteström TCP

Liknande presentationer


En presentation över ämnet: "UDP Pålitlig byteström TCP"— Presentationens avskrift:

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


Ladda ner ppt "UDP Pålitlig byteström TCP"

Liknande presentationer


Google-annonser