Presentation laddar. Vänta.

Presentation laddar. Vänta.

6558/G558 DATAKOMMUNIKATION UDP Pålitlig byteström TCP.

Liknande presentationer


En presentation över ämnet: "6558/G558 DATAKOMMUNIKATION UDP Pålitlig byteström TCP."— Presentationens avskrift:

1 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 Application process Read bytes TCP 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 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 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 SenderReceiv er

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 =  x EstRTT +  x SampleRTT –  +  = 1 –  mellan 0,8 och 0,9 –  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 + (  x Diff) Dev = Dev +  x ( |Diff| - Dev ) –här är  mellan 0 och 1 Timeouten påverkas av variansen TimeOut =  x EstRTT +  x Dev –där  = 1 och  = 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 "6558/G558 DATAKOMMUNIKATION UDP Pålitlig byteström TCP."

Liknande presentationer


Google-annonser