Tietoliikenne II Syksy 2005 Markku Kojo 1 Syksy 2005 Tietoliikenne II (2 ov,, 4 op) Markku Kojo Helsingin yliopisto Tietojenkäsittelytieteen laitos 2 Page1 1
Kirjallisuus ja muuta materiaalia Kurssikirja: Kurose & Ross, Computer Networking, A Top-Down Approach Featuring the Internet (3rd edition), Addison Wesley, 2005 TAI: Saman kirjan 2. painos, mutta siinä vähemmän mobiiliasiaa Lisäksi aiheeseen liittyviä IETF RFC dokumentteja ja mahdollisesti jotakin muuta materiaalia Muuta hyödyllistä kirjallisuutta mainittu kurssikuvauksessa Kurssin kotisivu http://www.cs.helsinki.fi/u/kojo/tiliii/ Kalvokopiot, harjoitustehtävät, tiedotteet, tarkentuva sisältö, kurssikuvaus, 3 Alustava sisält ltö Kurssi täydentt ydentää ja syventää Tietoliikenne I kurssin asioita, jotka oletetaan tunnetuksi ja ovat siten implisiittisesti osa sisält ltöä 1. Johdanto: TCP/IP IP-arkkitehtuuri 2. TCP-protokolla protokolla: ruuhkanhallinta, suorituskyky, viimeaikaisia TCP-parannuksia 3. IP-protokolla protokolla,, ICMP, ARP, DHCP, CIDR, NAT 4. IPv6 5. Internet-reititys: reititys: RIP, OSPF, BGP 6. Monilähetysreititys 7. Liikkuvuus, Mobile IP 8. Palvelun laatu Internetissä: Internet QoS ja Multimedia tuki 9. Verkko-/linkkiteknologioista 9. 4 Page2 2
1. Johdanto Protokollaohjelmistot perustuvat kerrosmalliin ISO:n OSI -kerrosmalli Internet(TCP/IP) kerrosmalli Kullakin kerroksella omat selkeästi määritellyt tehtävät Kerrosten tehtävät ja toiminnot voivat olla erilaisia eri malleissa 5 ISO:n OSI -malli Host Application 7 Isäntäkone Sovelluskerros Presentation 6 Esitystapakerros Session 5 Istuntokerros Transport 4 Kuljetuskerros Network Data Link Physical 3 2 1 Verkkokerros Siirtoyhteyskerros / Linkkikerros Fyysinen kerros 6 Page3 3
TCP/IP -kerrosmalli Sovellusprosessi Pistokerajapinta Kuljetuskerros Sovellusprotokollat Kuljetusprotokollat Sovellusprosessi Pistokerajapinta TCP, UDP Verkkokerros Verkko protokollat IP Linkkikerros Linkki protokollat Ethernet, Token ring, PPP,... 7 TCP/IP -protokollaperhe Telnet FTP SMTP X OSI layers HTTP DNS... 5-7 TCP UDP... OSI layer 4 ICMP IGMP IP (v4/v6)... OSI layer 3 Network Interface OSI layers 1-2 8 Page4 4
2. TCP-protokolla TCP-protokollan peruspiirteet ja toiminta jo tunnettua Tietoliikenne I kurssilta Ruuhkanhallinta Suorituskyky Viimeaikaisia parannuksia (lähinnä ruuhkanhallintaan ja TCP:n suorituskykyyn) 9 TCP:n sovelluksille tarjoama palvelu Kaksisuuntainen tavuvirta Luotettava kuljetus Dataa ei katoa eikä vääristy, säilyttää järjestyksen, ei monista (kahdenna) dataa EI säilytä sanomarajoja sovelluksen huolehdittava sanomarajoista!! (vrt( vrt.. Unix putki) Vuonvalvonta (flow control) Vastaanottava TCP mainostaa kuittauksen yhteydessä paljonko lähettävä TCP voi vielä lähettää ilman lisäkuittauksia Ruuhkanhallinta (congestion control) Reitittimet pudottavat paketteja, jos eivät voi toimittaa eteenpäin (lähtevällä linkillä ruuhkaa), puskuritila ylivuotaa Pikadatan välitys rajoitetusti mahdollista Kommunikoinnin vaiheet yhteyden muodostus, tiedon siirto (keskustelu), yhteyden purku 10 Page5 5
TCP-otsakkeen kentät Source port Destination port TCP head. length Checksum Checksum Sequence number Acknowledgement number U A P R S F R C S S Y I G K H T N N Window size Urgent pointer Options (0 or more 32 bit words) Data (optional) 11 TCP-optiot Optio-kentt kenttä valinnaisia piirteitä varten Option pituus on max. 40 tavua - TCP header length -kenttä = 4 bittiä kertoo otsakkeen pituuden 32 bitin sanoina => 15*4 tavua = 60 tavua - 20 tavua vakio-otsaketta otsaketta => enintää ään 40 tavua optioita varten Option tyyppi Option pituus Option merkitys 1 tavu 1 tavu pituus - 2 tavua 12 Page6 6
TCP-yhteyden muodostus Client Server Connection request SYN=1, seq=client_isn ACK SYN=1, seq=sever_isn, ack=client_isn+1 SYN=0, seq=client_isn+1, ack=server_isn+1 Connection granted 13 TCP maksimisegmentin koko TCP segmentin maksimikoko (MSS, Maximum Segment Size) määm äärää kuinka paljon dataa yksittäinen inen segmentti voi kuljettaa TCP-lähettäjän n kayttämä MSS (SMSS, Sender MSS) määm ääräytyy paikallisen koneen käyttk yttämän ulosmenolinkin MTU:n (Maximum Transfer Unit) ja yhteyden muodostuksessa MSS-optiolla sovittavan arvon perusteella MTU Suurin linkkikehykseen mahtuva datamää äärä MSS = MTU IP-otsake TCP-otsake - Esim. Ethernet MTU = 1500B MSS=1500-20 20-20=146020=1460 - Huom: : otsakkeet voivat olla myös suurempia, jos optioita 14 Page7 7
MSS -optio 2 4 maksimi segmentin koko 1 tavu 1 tavu 2 tavua Kumpikin osapuoli ilmoittaa yhteyttä muodostettaessa oman MSS-arvonsa toiselle osapuolelle SYN-segmentiss segmentissä MSS-optio kertoo ko. osapuolen vastaanottoa varten hyväksym ksymän suurimman segmentin koon eri suuntiin voi olla eri koko jos MSS-optiota ei käytetk ytetä,, tulee voimaan oletus- MSS (536 tavua) ilmoitettu MSS voi olla suurempi tai pienempi kuin oletus-mss 15 MSS-neuvottelu Client Server Connection request SYN=1, seq=client_isn MSS=1460 ACK Set SMSS = Min(536, Link_MTU-40) SYN=1, seq=sever_isn, ack=client_isn+1 MSS=536 SYN=0, seq=client_isn+1, ack=server_isn+1 Connection granted Set SMSS = Min(1460, Link_MTU-40) 16 Page8 8
TCP-yhteyden päättäminen Close Client FIN Server ACK FIN Close ACK d wait Closed Closed 17 TCP tiedonsiirrosta TCP-kerros pilkkoo sovellukselta saadun datan MSS:n kokoisiksi segmenteiksi ja lisää TCP-otsakkeen Segmentin otsakkeessa järjestysnumero= segmentin ensimmäisen isen datatavun järjestysnumero Kuittauksessa kerrotaan seuraavaksi odotettavan tavun numero Kuittaukset kumulatiivisia Viivästetty kuittaus (Delayed ACK) Vastaanottaja ei tarvitse kuitata jokaista segmenttiä Vähintään joka toinen segmentti kuitattava Viive korkeintaan 500ms, jos seuraava segmentti ei tule - Useimmissa toteutuksissa viive 200 ms 18 Page9 9