Transport - laget (ende-til-ende protokoller) Best effort med multipleksing (UDP) Pålitelig byte-strøm () Foreleser: Kjell Åge Bringsrud E-mail: kjellb@ifi.uio.no 04.04.2003 1 Internett Best-effort overføring IP Nett IP Nett Internett 04.04.2003 2 Best-effort nett kvaliteter kan miste pakker på veien kan endre pakke-sekvensen kan levere dubletter av enkelte pakker setter en øvre grense for pakke-størrelsen kan forsinke pakker uforholdsmessig lenge 04.04.2003 3 1
Vanlige applikasjons-behov garantere avlevering av pakker tillate vilkårlige pakkestørrelser avlevere pakker i riktig sekvens avlevere kun en kopi av hver pakke synkronisere samarbeidende prosesser til hverandre utøver flytkontroll støtte mange applikasjonsprosesser i hver vert 04.04.2003 4 To-deling av komm.systemet Tjener Distribuert applikasjon Klient Bruker Tjeneste aksess punkt Endesystem Komm.nett Overføringssystemet 04.04.2003 5 Internett arkitekturen FTP HTTP NV TFTP Applikasjon ICMP UDP Transport IP Internet ARP Nett 1 Nett 2 Nett 3 Nettverk 04.04.2003 6 2
Best-effort med demultipleksing 04.04.2003 7 Enkel multiplekser/ demultiplekser (UDP) tilbyr multipleksing og demultipleksing ved hjelp av Service aksess punkter kalt porter; ingen flytkontroll; tjener-siden lytter på velkjente porter se /etc/services (Unix); checksum: valgbar Src-address Dest-address 0 Protocol Length Pseudo-hode SrcPort DestPort Checksum Length Data 04.04.2003 8 Pålitelig byte-strøm 04.04.2003 9 3
Oversikt forbindelses-orientert støtter en oktett-strøm mellom to prosesser full dupleks flyt-kontroll hindrer sender å oversvømme mottaker demultipleksing metnings-kontroll hindrer sender å oversvømme nettet 04.04.2003 10 Ende-til-ende protokoll: utfordringer Basert på glidende vindusprotokoll som på linklaget men situasjonen er svært forskjellig Potensielt koble sammen mange prosesser på ulike verter behov for eksplisitt pålitelig forbindelsesetablering og terminering Potensielt forskjellige RTT timeout mekanismene må være adaptive Potensielt lange forsinkelser i nettet mottaker må kunne handtere veldig gamle pakker Potensielt forskjellig kapasitet hos mottakere justerbart glidende vindu (forskjellige buffer-størrelser) Potensielt forskjellig nettverkskapasitet 04.04.2003 unngå/håndtere metning i nettet 11 Oktett-strøm mellom applikasjonsprosesser Applik. pros Applik. pros send buffer send buffer Segm. 3 Segm. 2 Segm. 1 04.04.2003 12 4
Når sender en pakke? maksimum segment størrelse MSS MSS = MTU i nettet maskinen er koplet til minus headere ( & IP) betingelse for sending: MSS er full brukerprosessen har bedt om det timeout 04.04.2003 13 Identifisering av forbindelse A B Src-IPaddr; Src-port Dest-IPaddr; Dest-port 04.04.2003 14 Protokoll egenskaper en forbindelse identifiseres ved et 4-tuppel: [ SrcPort; Src-IPaddr; DestPort; Dest-IPaddr ] hver oktett som sendes har et eget sekvensnummer!! start-sekvensnummer utveksles i etableringsfasen et -segment har et sekvensnummer tilsvarer sekvensnummer til første dataoktett i segmentet en mottatt pakke må falle innenfor det justerbare vinduet Kombinert glidende vindu + flytkontroll Acknowledgements, SequenceNo, AdvertisedWindow Data(SequencNo) sender mottaker 04.04.2003 Ack + Adv.Window 15 5
Justerbart glidende vindu L < W Seq.no = xx; Data(L) Sender Mottaker ; Ackno=(xx+L+1); Wind=W 04.04.2003 16 Segment format Pseudo-header SrcPort DestPort SequenceNum Acknowledgement HdrLen 0 Flags Adv.Window CheckSum UrgPointer Options (variable) Flags: SYN RESET PUSH URG Data Checksum: pseudo header + tcp header + data 04.04.2003 17 Forbindelses-etablering Tre-veis håndtrykk Connect.req Listen.req SYN; Seq.no = x Blokkert Connect.conf SYN,; Seq.no = y; Ackno = x+1 Blokkert, Ackno = y+1 Connect.ind (Listen.ind) 04.04.2003 18 6
Protokoll-maskin Protokoll maskineri TCB A B Transport Control Block all nødvendig tilstandsinfo. (S=socket (,, ) = ref TCB) -objekt IPH H Data -objekt TCB B A 04.04.2003 19 Protokoll-maskin som tilstandsmaskin Tjeneste-primitiver Timer interrupt T-PDU Tilstands maskin T-PDU Set timer Stimuli Reaksjon 04.04.2003 20 Etableringsfasen Klient Connect.req SYN SYN,, Connect.conf Closed SYN_SENT Established SYN SYN, Notasjon: Stimulus Reaksjon SYN-RCVD Connect.conf Connect.req Closed Listen SYN_RCVD Established Tjener Listen.req SYN SYN, Connect.conf 04.04.2003 21 7
Nedkoplingsfasen Send Close.req Rcv Close.conf Data Data Rcv Close.ind Send Close.resp 04.04.2003 22 Nedkoplingsfasen; initiator Established Close.req _WAIT_1 _WAIT_2 TIME_WAIT Close.conf CLOSED 04.04.2003 23 Nedkoplingsfasen; responder Established, Close.ind CLOSE_WAIT Close.resp LAST_ Closed 04.04.2003 24 8
karakteristika SYN okkuperer sekvensno. hver dataoktett okkuperer sekvensno. okkuperer sekvensno. disse prosesseres derfor i riktig sekvens!! Forbindelse etableres før data sendes endelig nedkopling effektueres etter at siste dataoktett er overført og kvittert samtidig etablering resulterer i én forbindelse 04.04.2003 25 9