Hálózati architektúrák és rendszerek Csomagkapcsolt hálózatok IP-kommunikáció 2008. ősz 1
Adminisztráció Előadók: Farkas Károly egy. docens farkask@hit.bme.hu Dallos György egy. docens dallos@hit.bme.hu, IL116, tel. 2095 Szabó Csaba Attila egy. tanár tárgyfelelős szabo@hit.bme.hu, IL115, tel. 2049 Időpontok, helyszín: Szerda 16:15, IE218; Csütörtök 10:15, IB110 Tananyag: előadások http://oziris.nyme.hu/~farkas/na_bme/index.html 2
A tárgy felépítése (1) Lokális hálózatok. Az IEEE architektúra. Ethernet Csomagkapcsolt hálózatok IP-komm. Az Internet Végpontok közötti kapcsolat, transzport-prot., TCP, UDP A TCP/IP protokoll-család. Alkalmazási példa: VoIP Áramkörkapcsolt hálózatok PSTN, ISDN, 2. generációs cellás mobil-rendszerek Kapcsolat-orientált hálózatok SDH Synchronous Digital Hierarchy ATM Asynchronous Transfer Mode MPLS Multi-Protocol Label Switching 3. generációs mobil rendszerek Optikai kommunikáció Alapok Wavelength routing és csomagkapcsolás 3
A tárgy felépítése (2) Hozzáférési hálózatok: xdsl FTTx, xpon CATV Szélesávú vezetéknélküli hozzáférés (BWA Broadband Wireless Access) Áttekintés PAN, Bluetooth WiFi WiMAX Újgenerációs hálózatok (NGN Next Generation Networks) A távközlési megközelítés NGN a mobil világban: 4G vagy B3G (Beyond-3G) Tervezési kérdések Összefoglalás, tartalék 4
A kommunikációs hálózatok fő típusai (az adattovábbítás módja szerint) 5
Tartalom Az Internet és a TCP/IP protocol stack Az IP, az IP protokoll-család Transzport protokollok: UDP and TCP Next generation IP: az IPv6 Alkalmazási példa: VoIP 6
Az Internet-architektúra Alapelvek és klasszikus definíciók Internetwork Összekapcsolt hálózatok, az Internet Hálózat Fizikai hálózat, csomópontokból (node-okból) és összekö(tte)tésekből (link-ekből) áll Bármely kommunikációs rendszer, amely képes csomagok küldésére (Ethernet, egy pont-pont összeköttetés, bármely WAN wide area network nagyterületű hálózat) Gateway-ek (átjárók) vagy router-ek (útvonalválasztók) Összekapcsolják a fizikai hálózatokat A csomagokat a célállomás felé irányítják Host-ok Bármely gép, amelyen az alkalmazás található 7
Hálózatok és gateway-ek Net 1 G Net 2 Két hálózat, a G, gateway-jel (routerrel) összekapcsolva G csomagokat továbbít N1-ből N2-be és N2-ből N1-be Net 1 G1 Net 2 G2 Net 3 Három hálózat, két gateway-jel összekötve G1 továbbítja az N1-ből származó és N2-be vagy N3-ba irányuló csomagokat 8
Az Internet protokoll-architektúra Internet-protokoll(ok) TCP/IP A transzport (szállítási) és network (hálózati) rétegbeli protokollok TCP - Transmission Control Protocol IP Internetwork Protocol Csak az IP protokoll Az IP vagy TCP/IP protokoll stack Az összes hálózati és transzport és magasabb rétegbeli protokoll Szabványosítva az RFC-kben (IETF) 9
Az Internet szabványosítása, IETF, RFC-k IETF: nyílt, nemzetközi szervezet tagjai:hálózattervezők, üzemeltetők, szolgáltatók, berendezésszállítók, kutatók Munka mailing list-eken keresztül Working groups RFC-k Request for comments Hagyományból: text-formátum, az ábrák is Status: INFORMATIONAL, DRAFT STANDARD, PROPOSED STANDARD, STANDARD, Pl.: RFC 3550: RTP A Transmission Protocol for Real-Time Applications, July 2003 STANDARD (RFC 1889: RTP, PROPOSED STANDARD) RFC 3251: Electricity over IP, April 1, 2002. 10
A TCP/IP protokoll architektúra: összehasonlítás az OSI 7-rétegű modellel OSI-rétegek Application TCP/IP arch. Presentation Process / Application Layer Session Transport Network Host-to-Host Layer Internet Layer Példa: FTP Példa: TCP IP (továbbá ) Data Link Physical Network Interface Layer A TCP/IP nem foglalkozik ezekkel 11
TCP/IP protokollok az Internet-csomópontokban end-systems vs nodes: különböző protokoll-készletet alkalmaznak Host A Process/Application Layer Host-to-Host Layer Router B Router Y Host Z Process/Application Layer Host-to-Host Layer Internet Layer Internet Layer Internet Layer Internet Layer Network Interface Layer NI NI A B NI NI A B Network Interface Layer 12
A teljes TCP/IP protokoll-család SMTP FTP TELNET DNS TCP SNMP BOOTP ASN 1 DHCP UDP IP (+ICMP and IGMP) ARP RARP Network interface Hagyományos egydimenziós architektúra-ábrázolás Különböző protokollok különböző funkcionális csoportokhoz tartoznak Ezt célszerű több dimenzióban ábrázolni 13
A távközlésben alkalmazott architektúrális modell és az IP-protokollok User Plane Az információ-tartalom továbbítása Control Plane Híváskezelés (call processing) Management Plane Menedzsment (O&M - Operation and management) Example: the IP protocol family User Control Management IP ARP RARP ICMP IGMP RIP, OSPF, BGP 14
A különböző rétegek adategységei, a beágyazás (encapsulation) elve Black-box elv: data link layer PDU FRAME network layer PDU PACKET higher layer protocol data unit 15
Beágyazás és protokoll-adategységek a TCP/IP-ben Local Network Header IP Header UDP/TCP Header Application Data Local Network Trailer UDP Datagram or TCP Segment IP Datagram Data Link Local Network Frame A példában a fizikai hálózat LAN 16
Tartalom Az Internet és a TCP/IP protocol stack Az IP, az IP protokoll-család Transzport protokollok: UDP and TCP Next generation IP: az IPv6 Alkalmazási példa: VoIP 17
Az IP protokoll: összefoglalás Az IP funkciói Az IP és társ-protokolljai Az IP címzési struktúra IP datagram továbbítás Az IP routing-ról (útvonalválasztás) Hiba- és vezérlőüzenetek az IP-ben az ICMP protokoll IP Multicast (IP-többesadás) 18
Az IP funkciói Csomagkapcsolt, datagram-típusú (Összeköttetésmentes/connectionless) adattovábbítás Best effort, nincs hibajavítás A protokoll két fő eszköze: Címzés Fragmentáció Három címzési/csomagtovábbítási lehetőség: unicast (egyesadás) multicast (többesadás) broadcast (adatszórás) Fragmentáció: szükséges, mivel a LAN-ok keretformátumai különbözőek és lehetnek nagyobbak az IP csomagméretnél 19
Az IP- család IP + társprotokollok Mindez a hálózati rétegen belül, alrétegek IGMP ICMP IP ARP RARP Internet Control Message Protocol Internet Group Mngment Protocol Address Resolution Protocol Reverse ARP 20
Az IP-protokoll címzési sémája (1) Class A 0 1 2 3 4 8 16 24 31 0 netid hostid Class B 1 0 netid hostid Class C 1 1 0 netid hostid Class D 1 1 1 0 multicast address Class E 1 1 1 1 0 reserved for future use 21
Az IP-protokoll címzési sémája (2) Előnyök Az A, B, C osztályok az első 2 bit alapján megkülönböztethetők A hálózati és végpont-címek könnyen szeparálhatók Jelölés Oktettek decimális számok, ponttal elválasztva ( dotted decimal notation) Példa: a C -osztályú címtartomány eleje és vége: 110 00000 0 0 0 0 0 0 192.0.0.0 11011111 1 1 1 1 1 1 223.255.255.255 22
Speciális esetek Multicast címzés: később Töbszörös címek multi-homed (több hálózatra csatlakozó) csomópontok számára következmény: az IP cím nem határoza meg egyértelműen a csomópontot, hanem annak egy hálózathoz tartozását Hálózatnak is lehet címe: hostid = 0 Broadcast-cím: hostid = csupa 1 Limited broadcast (a hálózaton belül): csupa 1 Ez a host: csupa 0 Host ezen a hálózaton: netid = 0, hostid Loopback cím: 127. bármi 23
Az IP-címzés következményei 1. Ha a host másik hálózatra megy át, az IP címe meg kell, hogy változzon 2. Az IP-címek alapján történő útvonalválasztás során a többszörös IP című hostokhoz vezető út függ attól, melyik IP-címet használjuk 3. Többszörös IP című hostoknál csak egy IP-cím ismerete nem biztos, hogy elég az eléréséhez Net1 A1 GW Host A Host B A2 Net2 A3 A4 A5 Host A Host B: A4 közvetlenül, A5 a GW-n át Ha Host B lekapcsol Net1-ről; A4 ismerete nem elég! 24
Az IP-datagram formátuma 0 4 8 16 19 24 31 VERS HLEN TYPE OF SERV TOTAL LENGTH IDENTIFICATION FLAGS FRAGMENT OFFSET TIME TO LIVE PROTOCOL HEADER CHECKSUM SOURCE IP ADDRESS DESTINATION IP ADDRESS IP OPTIONS (IF ANY) DATA PADDING 25
Datagram-formátum: részletek (1) VERS a jelenlegi verzió, =4 HLEN fejrész-hossz, 32 bites szavakban, min HLEN=5 (20 oktett) Type of service kért QoS erre a datagramra Bits 0-2 Precedence Példák: network ctrl priority routine Bit 3 Késleltetés (normal/low) Bit 4 Throughput (normal/light) Bit 5 Reliability (normal/high) Bit 6-7 Reserved 26
Datagram-formátum: részletek (2) Total Length a datagram hossza oktett-ben max. hossz: 2 16 65.535 oktett előírt min. hossz: 576 oktett Identifier Flags - fragmentációhoz Fragment offset Time to live a hálózatban tartózkodás maximális időtartama, mp-ben vagy ugrásokban mérve, max. 255 Protocol melyik magasabb rétegbeli PDU ül ebben a datagramban, pl.: 6 = TCP, 17 = UDP Header checksum 27
Az IP routing-ról ALAPOK Routing-táblák a csomópontokban Csak a cím netid -részét használjuk Next stop módszer MI VAN A TÁBLÁKBAN? Célcím a router címe, ameyhez továbbítani kell Subnet mask HOGYAN SZERZIK MEG A ROUTEREK A ROUTING- INFORMÁCIÓT? Vector distance algoritmus Link state algoritmus 28
Hiba- és vezérlőüzenetek az IP protokollban az ICMP ICMP: hibajelző mechanizmus A gw informálja a kiindulási host-ot (miért nem a közbenső gw-ket?) ICMP: eszköz az elérhetőség tesztelésére ECHO RQ, ECHO RPLY ( ping ) A nem elérhető célpontok jelzése congestion/flow control ( source quench ) Segítség az útvonalválasztáshoz Útvonalváltozás-kérés Körkörös vagy nagyon hosszú utak detektálása Órajel-szinkronizálás 29
IP Multicast (1) Multicast: IP-csomagok küldése egy forrástól többszörös címzettnek Példa: C küld az {A,E,F} multicast-csoportnak A B C R1 D F E R2 Előny: átviteli kapacitások megtakarítása az unicast-hoz képest Fontos alkalmazásokhoz szükséges: VoIP konferenciahívások, media streaming G 30
IP Multicast (2) Az IGMP-t (Internet Group Message Protocol) alkalmazásával D osztályú címzés 1110 28 bites csoport-azonosító A 224.0.0.0-től 239.255.255.255-ig tartó címtartomány fenntartva; 224.0.0.1: all hosts. Még ha nincs is az IGMP implementálva, a host-oknak képeseknek kell lenniük csatlakozni ehhez a csoporthoz A routerek módosított routing-protokollokal működnek A multicast IP-címek leképezése fizikai címekre: implementálva 802.3 (Ethernet)-re minden broadcast-képességű fizikai hálózatra 31
Tartalom Az Internet és a TCP/IP protocol stack Az IP, az IP protokoll-család Transzport protokollok: UDP and TCP Next generation IP: az IPv6 Alkalmazási példa: VoIP 32
Host layer protokollok: UDP és TCP UDP User Datagram Protocol TCP Transmission Control Protocol Az UDP és TCP közös képességei: Portok kezelése Multiplexálási képesség Alapvető különbség az UDP és a TCP között: o Az UDP kapcsolatmentes (connectionless) szállításiszolgáltatást nyújt o A TCP összeköttetés-alapú (connection oriented) 33
UDP User Datagram Protocol (1) Portok kezelése: Az IP-rétegben a csomagok host-nak vannak címezve A host-okon belül: több alkalmazás, folyamat megkülönböztetésük: port-ok használatával Foglalt (reserved) és rendelkezésre álló (available) portszámok Foglalt portok: ide mindig lehet küldeni datagram-okat pl. 69: TFTP Az UDP-en belül megállapításra kerülnek az alkalmazandó port-számok Multiplexelés/demultiplexelés A port-mechanizmus segítségével 34
UDP User Datagram Protocol (2) Multiplexelés és demultiplexelés Példa: A1 A2 A3 Alkalmazások Port 1 Port 2 Port 3 UDP IP layer Demultiplexelés a portok alapján Beérkező UDP datagram 35
UDP User Datagram Protocol (3) bits: 0 15 16 31 UDP Source Port UDP Destination Port UDP Message Length UDP Checksum Data Source port opcionális (nem használt: 0) Hossz: oktettben. min: 8 Checksum: opcionális (nincs: 0) Az UDP checksum az egyetlen lehetőség annak ellenőrzésére, hogy a datagram helyesen érkezett-e meg (a IP-csomag ellenőrzése csak a fejrészt fogja át) 36
UDP User Datagram Protocol Összefoglalás: funkcionalitás és a költsége Port-kezelés, ezáltal a különböző alkalmazások/folyamatok megkülönböztetése Több alkalmazás egyidejű kezelése porthozzárendeléssel és multiplexeléssel/demultiplexeléssel Hibajelzés az UDP datagram tartalmára és az IP csomag további részeire A fentiek ára: 8 oktett-nyi overhead 37
TCP Transmission Control Protocol Fő jellemzői Célkitűzés: megbízható transzport-szolgáltatás nyújtása az IP nem megbízható datagram szolgáltatásán Jellemzői: Stream típusú szállítás: bit-oktett-stream-ek sorrendhelyes átvitele Virtuális csatornák: összeköttetés épül fel és marad fenn a kommunikáció tartamára Pufferelt átvitel: a stream-ből a datagram megtöltéséhez szükséges mennyiséget várja össze Strukturálatlan stream: nincsenek határolók a stream-en belül Full duplex kapcsolatok: két független stream Piggybacking: vezérlő információk küldése az ellenkező irányban folyó stream-be ágyazva 38
TCP PDU (= segment ) struktúra 0 4 10 16 19 24 31 SOURCE PORT DESTINATION PORT SEQUENCE NUMBER ACKNOWLEDGEMENT NUMBER HLEN RESERVED CODE BITS WINDOW CHECKSUM URGENT POINTER OPTIONS (IF ANY) DATA PADDING Sequence no: a szegmens-ben levő adat pozíciója a küldő byte stream-jében Ack no: annak az oktettnek a sorszáma, amelyet a forrás legközelebb vár 39
TCP PDU (= segment ) struktúra 0 4 10 16 19 24 31 SOURCE PORT DESTINATION PORT SEQUENCE NUMBER ACKNOWLEDGEMENT NUMBER HLEN RESERVED CODE BITS WINDOW CHECKSUM URGENT POINTER OPTIONS (IF ANY) PADDING DATA Code bits: a szegmens tartalma Window: a küldő ismertté teszi a vételi pufferének méretét Checksum: mint az UDP-ben Urgent pointer: out of band adatok küldésére 40
Megbízható transzport-szolgáltatás 1. Pozitív nyugtázás A szokásos elv: a következő csomagot csak azt követően lehet küldeni, hogy ACK érkezett az előzőre. Duplikált ACK-k kezelése: sorszámozás Következmény: nem hatékony 2. Csúszó ablakos ( sliding window ) mechanizmusok Ablak-módszer; az ablak mérete megadja a kintlevő nyugtázatlan csomagok max. számát. Pl.: w=8 A TCP-ben: az ablak-mechanizmus oktett-eken működik Következmény: jó hatékonyság Egyben forgalomszabályozási (flow control) módszer is (biztosítja azt a sebességet, amit a vevő képes feldolgozni) 41
Go-Back-N k-bit-es sorszám (seq #) a csomag fejlécében Küldő N-ig terjedő ablak ( window ), az egymást követő nem nyugtázott csomagok megengedett száma ACK(n): minden csomagot nyugtáz (ACK-zik) beleértve az n-et is (seq # n) együttes ACK ( cumulative ACK ) Duplikált ACK-t kaphat (ld. fogadó) Időzítő (timer) kell minden menet közbeni csomagra Timeout(n): újraküldi az n. csomagot és minden nagyobb sorszámút az ablakban 42
Go-Back-N Csak ACK: az ACK mindig a legnagyobb sorszámú, sorrendben, és helyesen kapott csomagra lesz kiküldve Duplikált ACK-et eredményezhet Csak a várt sorszámra kell emlékezni Sorrenden kívüli (out-of-order) csomag Eldobásra kerül (nem pufferel) -> nincs fogadó puffer! Csomag re-ack (ismétlés) a legnagyobb sorrendhelyes sorszámmal 43
Go-Back-N: Működés közben 44
Selective Repeat A fogadó egyedileg nyugtáz minden helyesen megkapott csomagot A csomagokat puffereli nem sorrendben történő kézbesítés esetére A küldő csak azokat a csomagokat küldi újra, amelyekre nem kapott ACK-et A küldőnek időzítője van minden nem ACK-zett csomagra Küldő ablak N egymást követő sorszám (seq #) Ismét az elküldött, nem ACK-zett csomagok sorszáma korlátoz 45
Selective Repeat: Küldő, fogadó ablakok 46
Selective Repeat működése Küldő Adat érkezik felülről: Ha a következő sorszám az ablakon belül van, csomag küldése Timeout(n): N. csomag újraküldése, időzítő indítása ACK(n) [sendbase,sendbase+n] ablakban: Az n. csomag megérkezettként jelölése Ha n a legkisebb még nem nyugtázott csomag, az ablak alapjának átállítása a következő még nem nyugtázott sorszámra Az n. csomag a [rcvbase, rcvbase+n-1] ablakban: ACK(n) küldése Fogadó Sorrenden kívüli: pufferelés Sorrendben: csomag átadása (és minden pufferelt, sorrendhelyes csomag átadása), az ablak alapjának átállítása a következő még meg nem kapott sorszámra Az n. csomag a [rcvbase-n, rcvbase-1] ablakban: ACK(n) Egyébként: Eldobás (ignore) 47
Selective Repeat működés közben 48
Selective Repeat: ellentmondás Példa: Sorszámok: 0, 1, 2, 3 Ablakméret = 3 A fogadó nem lát különbséget a két eset között! Nem helyesen új adatként továbbítja a duplikált adatot az (a) változat szerint Kérdés: Mi a kapcsolat a sorszámtartomány és az ablakméret között? 49
Sliding window módszer a TCP-ben Alapelv: 1 2 3 4 5 6 7 8 9 10 11 w = 8 (oktett) nyugtázott küldött ezt még lehet adni Várakozás ACK-ra: time out Mekkorára válasszuk a time out-ot? Probléma a túl kicsivel és a túl naggyal Megoldás: a teljes terjedési időhöz (round-trip time) igazítani, adaptívvá tenni Szabályok arra, hogy mit tegyünk, ha nem jön ACK a time-out alatt 50
TCP sorszámok és ACK-ek Sorszámok: A szegmens adatok első bájtjának bájtfolyam sorszáma ACK-k: Annak a bájtnak a sorszáma, amelyet a küldőtől vár Cumulative ACK Kérdés: Hogyan kezeli a fogadó a sorrenden kívüli szegmenseket? A TCP specifikáció nem mond semmit, az implementációtól függ Az A hoszt C -t küld Az A hoszt nyugtázza a visszaküldött D -t Hoszt A Hoszt B Seq=42, ACK=79, data = C Seq=79, ACK=43, data = D Seq=43, ACK=80 Egyszerű telnet működés A B hoszt nyugtázza a kapott C -t, és D -t küld vissza Idő 51
TCP ACK előállítás [RFC 1122, RFC 2581] Esemény a fogadónál Sorrendhelyes szegmens érkezése a várt sorszámmal. Minden korábbi sorszám már nyugtázott Sorrendhelyes szegmens érkezése a várt sorszámmal. Egy további szegmens nyugtája felfüggesztve Sorrenden kívüli szegmens érkezése a vártnál nagyobb sorszámmal. Rés detektálása Szegmens érkezése, amely részben vagy teljesen kitölti a rést TCP fogadó tevékenység Az ACK késleltetése. Várj max. 500 ms-ot a következő szegmensre! Ha nincs szegmens, küldd az ACK-et! Azonnali egyetlen cumulative ACK küldése, mindkét sorrendhelyes szegmens nyugtázása Duplikált ACK azonnali küldése a következő várt bájt sorszámnak jelzésével ACK azonnali küldése annak a szegmensnek a megadásával, amely a rés alsó szélét jelenti 52
Gyors újraküldés (Fast Retransmit) A Timeout időszakok sokszor viszonylag hosszúak Hosszú késleltetés az elveszett csomag újraküldése előtt Az elveszett szegmensek felismerése duplikált ACK-val A küldő sokszor sok szegmenst küld közvetlenül egymás után Ha egy csomag elveszik, sok duplikált ACK következik Ha a küldő 3 ACK-et kap ugyanarra az adatra, felteszi, hogy a nyugtázott szegmens utáni szegmens elveszett: Gyors újraküldés (fast retransmit): újraküldi a szegmenst már az óra lejárta előtt 53
TCP forgalomszabályozás A TCP kapcsolat fogadó oldalának van egy fogadó puffere: Forgalomszabályozás A küldő nem akarja túltölteni a puffert azzal, hogy túl sokat, túl gyorsan küld Az alkalmazási processz lehet, hogy lassan tud olvasni a pufferből Sebesség összehangolási szolgálat Összehangolja a küldési sebességet a fogadó alkalmazás feldolgozási sebességével 54
TCP forgalomszabályozás működése (Tegyük fel, hogy a TCP fogadó eldobja a sorrenden kívüli szegmenseket) Szabad hely a pufferben = RcvWindow = RcvBuffer - [LastByteRcvd - LastByteRead] A fogadó megadja a szegmensben a puffer szabad helyének nagyságát (vagyis a RcvWindow méretét) A küldő korlátozza a nem nyugtázott adatok mennyiségét a RcvWindow-ra Biztosítja, hogy a fogadó puffer nem csordulhat túl 55
TCP torlódásvezérlés: Additív növekedés, multiplikatív csökkenés Megközelítés: növeljük addig az átviteli sebességet (ablakméretet), a használható sávszélesség kipróbálásával, amíg veszteség nem történik Additív növelés (AI): növeljük a CongWin-t 1MSS-selminden RTT alatt, amíg csomagvesztést nem detektálunk Multiplikatív csökkentés (MD): csökkentsük a CongWin-t a felére csomagveszteség detektálásakor congestion window Fűrészfog tulajdonság látható: próbálkozás a sávszélesség beállítására 24 Kbytes 16 Kbytes 8 Kbytes time 56
TCP torlódásvezérlés: Részletek A küldő korlátozza az átvitelt: LastByteSent-LastByteAcked CongWin Durván rate = CongWin RTT Bytes/sec A CongWin dinamikusan változik az érzékelt hálózati torlódás függvényében Hogyan érzékeli a küldő a torlódást? Vesztési esemény = timeout vagy 3-szoros (duplikált) ACK A TCP küldő csökkenti a sebességet (CongWin) csomagvesztés után Négy mechanizmus: AIMD Lassú start (slow start) Konzervatív viselkedés timeout események után Gyors újraküldés 57
TCP Slow Start (lassú start) Amikor torlódás kezdődik, CongWin = 1 MSS Példa: MSS = 500 byte & RTT = 200 msec Kezdeti sebesség = 20 kbps Az elérhető sávszélesség lehet >> MSS/RTT Kívánatos a sebesség gyors emelése a megfelelő szintig Amikor az összeköttetés létrejön, növeljük a sebességet exponenciálisan az első csomagvesztési eseményig, vagy egy előre beállított küszöbértékig 58
TCP Slow Start (folytatás) Amikor az összeköttetés létrejön, növeljük a sebességet exponenciálisan az első csomagvesztési eseményig CongWin duplázása minden RTT-ben, a CongWin növelése által minden kapott ACK-re Összegzés: a kezdeti sebesség alacsony, de a gyorsítás exponenciális mértékű RTT Host A Host B one segment two segments four segments time 59
Finomítás Kérdés: Mikor kell átkapcsolni az exponenciális növelésről a lineárisra? Válasz: Amikor a CongWin értéke elérte a timeout előtti értékének a felét (threshold). CongWin Implementáció: Változó küszöb Vesztési eseménykor a CongWin a vesztés előtti értékének a felére állítódik 60
Fast Retransmission (gyors újraküldés) 3 duplikált ACK után a CongWin-t a felére csökkentjük, és az ablak ezután lineárisan nő. De timeout esemény után a CongWin-t 1 MSS-re állítjuk, és slow start fázis, vagyis az ablak exponenciálisan nő a küszöbig, majd onnantól kezdve lineárisan. Mögöttes filozófia A 3 duplikált ACK azt jelzi, hogy a hálózatot azért hagyják el szegmensek, a torlódás nem jelentős A timeout egy sokkal veszélyesebb torlódási helyzetet mutat 61
Összegzés: TCP torlódásvezérlés Amikor a CongWin a Threshold (küszöb) alatt van, a küldő a slow start fázisban tartózkodik, az ablak exponenciálisan nő. Amikor a CongWin a Threshold felett van, a küldő a torlódás-elkerülő (congestion avoidance) fázisban tartózkodik, az ablak lineárisan nő. Amikor háromszoros duplikált ACK érkezik, a Threshold CongWin/2-re, a CongWin a Threshold-ra lesz beállítva, és torlódás-elkerülő fázis következik. Amikor timeout történik, a Threshold CongWin/2- re, a CongWin 1 MSS-re lesz beállítva, és slow start fázis következik. 62
Összegzés: TCP torlódásvezérlés congestion avoidance fast retransmission congestion avoidance CongWin slow start slow start 63
Hívásfelépítés a TCP-ben 3-way handshake eljárás Esemény A-nál Üzenetek Esemény B-nél SYN küldése, seq = x SYN + ACK vétele ACK y+1 küldése SYN vétele SYN, seq = y, ACK x+1 küldése ACK vétele 64
Híváslebontás a TCP-ben Modified 3-way handshake eljárás Esemény A-nál Üzenetek Esemény B-nél FIN seq=xx küldése ACK vétele FIN + ACK vétele ACK yy+1 küldése FIN vétele ACK xx+1 küldése (Az alkalmazás informálása) FIN, seq=yy, ACK xx+1 küldése ACK vétele 65
TCP és UDP: összefoglalás o Mindkettő host layer/transport layer protokoll o Mindkettő portokat kezel o multiplexelés/demultiplexelés o ezáltal interface az alkalmazói folyamatok felé o Az UDP összekött.mentes, best effort szolgáltatás o nem garantál célbajuttatást, csak hibajelzést nyújt o Gyorsan célbajuttat o A TCP összeköttetés-orientált, megbízható transzport szolgáltatás o sorrendhelyes, hibamentes szállítást nyújt o ára: késleltetés 66
Tartalom Az Internet és a TCP/IP protocol stack Az IP, az IP protokoll-család Transzport protokollok: UDP and TCP Next generation IP: az IPv6 Alkalmazási példa: VoIP 67
Az újgenerációs Internet felé: az IPv6 protokoll Nyilvánvalóvá vált, hogy a jelenlegi IP verzió (IPv4) jelentős módosításokra szorult, hogy megfeleljen a jövő követelményeinek Fő motivációk: Új számítástechnikai és komunikációs technológiák Új alkalmazások Növekvő méretek és terhelések A címtartomány kimerülése Az IPv6 kidolgozásra és elfogadása került mint az újgenerációs Internet-protokoll 68
A címtartomány kimerülése? Jelenlegi felhasználószám? 1997-ben 22.5 M host volt 2004-ben kb. 250 M, kb. 800 M felh. Mennyi van? A-oszt.: 128 hálózat, 16.777.216 host, kb. 2000 M B-oszt.: 16.384 hálózat, 65.536 host, kb. 1000 M C-oszt.: 2.097.152 hálózat, 256 host, kb. 500 M Összesen kb. 3.5 milliárd -> egy nagyságrend! De: Probléma: strukturáltság. És: Végpontszám várható drasztikus növekedése a hagyományos Internet-végpontokon kívüli területeken: szenzorhálózatok, kézi készülékek (PDA-k, mobilok), POS-terminálok, Internetre csatlakozó tv-készülékek Előrejelzés: a jelenlegi struktúrájú címtartomány 2005-2010 között kimerül 69
IPv6: tulajdonságok Megnövelt címtartomány, ami elég kb. 30 évre Egyszerűbb és rugalmasan bővíthető fejrészformátum Alapfejrész: kevesebb funkció Bővíthetőség opcionális funkciókkal Gyorsabb feldolgozás a csomópontokban Erőforrás-allokáció támogatása Biztonságos kommunikáció támogatása Mobilitás támogatása Továbbfejlesztési lehetőség (nyitottság) 70
IPv6: a datagram formátuma Általános formátum Basic header Extension header 1.. Extension header N Data opcionális A basic fejrész 0 4 16 24 31 vers Priority (4) Flow label (24) Payload length Next hdr Hop limit Sender address Destination address 71
IPv4 <-> IPv6 Version mindkettőben IPv4 Type of service IPv6 Priority IPv4 Total length IPv6 payload length IPv4 Time to live IPv6 Hop limit A v6 fejrész hosszabb (a hosszabb címek miatt), de egyszerűbb, kevesebb mező 72
IPv6: címzés Megnövelt címtartomány: 128 bit-es címzés, nincs osztálystruktúra Ez elég sok! 2exp128 -> ~10exp38 [Tanenbaum]: 1000 IP cím/földfelszín nm-re Ábrázolás: 16 bites hexadecimális számok Pl.: 0000:0000:0000:0000:1234:5678:9ABC:DEFF A nullák rövidítése (sok van!) Kezdő nullák elhagyása a szavakban 0-s sorozatok helyettesítése :: szimbólummal, pl.: ::1234:5678:9ABC:DEFF 73
IPv6: címzési módok Unicast mint a v4-ben Multicast ez az IPv6 natív módja, nincs broadcast Type: a cím elején 3 8 bit. Példák: 1111 1111 (1/256) : multicast 1111 1110 (1/256) : local unicast 010 (1/8) : aggregatable global unicast Közvetlen leképezhetőség a 48 bit Ethernetcímekre 74
QoS az IPv6-ban Priority Hasonlóan a v4 ToS -hoz Flow label Kidolgozás alatt Virtuális összeköttetések biztosítására adatfolyamok számára Adatfolyamot a cím és a flow label azonosítja, egy forrás-célállomás pár esetén több folyam is lehet Növekedési (skálázhatósági) probléma a folyamalapú eljárásoknál 75
IPv6: opciók Annak érdekében, hogy a fő fejrész egyszerű maradjon, header extension-ok Hop-by-hop Options Header Különféle információ, amelyet minden csomópont meg kell vizsgáljon Jumbogramm-ok támogatása (óriás-datagrammok) Routing header Routerek felsorolása, amelyeket útba kell ejteni Fragmentation header Mint a v4-ben, de csak a forrás darabolhat Destination Options Header Csak a célállomás vizsgálja Egyelőre nincs megtöltve tartalommal Authentication header Encapsulation Security Playload header 76
IPv6: source routing (Routing extension header) A routing header: 0 8 16 24 31 Next hdr Hdr length Type Segments left Reserved First address Second address 77
IPv6: szegmentálás és újra összerakás (Fragment extension header) Szegmentálás csak a forrásnál (közbenső router-ek nem szegmentálnak) Következmény: a forrásnak ismernie kell a max. csomaghosszat a teljes útvonal mentén Segmentation info in an additional header 0 8 16 29 31 Next header Reserved Fragment offset MF DATAGRAM IDENTIFIER UTOLSÓ SZEGMENS : MF = 0 78
IPv6 fejrész-példák IPv6 fejrész Köv. fejrész = TCP TCP fejrész és adat IPv6 fejrész Köv. fejrész = routing Routing fejrész Köv. fejrész = TCP TCP fejrész és adat IPv6 fejrész Köv. fejrész = routing Routing fejrész Köv. fejrész = fragment. Fragment. fejrész Köv. fejrész = TCP TCP fejrész és adat 79
Átmenet az IPv4-ről IPv6-ra Indokolt már ma? Címtartomány-gazdálkodási lehetőségek az IPv4-ben, pl. NAT-ok (Network Address Translator) QoS: bonyolultnak és nem skálázhatónak tűnik a folyam-szintű QoS-biztosítás, helyette: nyers erő (overprovisioning) Two types with embedded IPv4 address compatible address: 96 zeros and the IPv4 address mapped address: 80 zeros, 16 1s and the IPv4 80
IPv4 címtartomány-kímélés NAT-ok alkalmazásával M A G Á N H Á L Ó Z A T NAT útvonalválasztó Kimenő forgalom Bejövő forgalom Helyi Internet Hálózat P U B L I K U S H Á L Ó Z A T Hátrányok: logikai kapcsolatok létrehozása a NAT-on túli állomásokkal, DNS, tunneling 81
Irodalom Tanenbaum könyv (2oo4) II. kiadás 5.6.8 fejezet Farkas Károly: IPv6 a jövő Internet-protokollja? Híradástechnika, 2oo5. október 82
Tartalom Az Internet és a TCP/IP protocol stack Az IP, az IP protokoll-család Transzport protokollok: UDP and TCP Next generation IP: az IPv6 Alkalmazási példa: VoIP 83
A VoIP-hez szükséges protokollok (a legfontosabb további funkciók illusztrálása) Hívásvezérlés Beszédtovábbítás QoS RÉTEGEK H.323 RTP RSVP Application TCP UDP Host IP Network 84
A VoIP-hez szükséges protokollok (folyt.) A feltüntetett magasabb rétegbeli protokollok példák három fontos funkcionális csoportra: 1 A beszédfolyam továbbítása RTP, Real Time Protocol 2 Hívásvezérlés VoIP-rendszerekben H.323, az ITU szabvány a hívásvezérlésre (és még több más funkciót is tartalmaz) 3 Erőforrás-menedzsment, QoS RSVP, Resource Reservation Protocol 85
TCP és UDP a VoIP rendszerekben 1. A beszédfolyam továbbítása: a) Közvetlenül IP felett lehetséges, de nem célszerű b) UDP felett célszerű az UDP portkezelése miatt c) TCP felett nem használható (a késleltetés miatt) és nem szükséges (a beszédcsomagok elveszhetnek) d) Magasabb rétegbeli, az IP-n vagy az IP + UDP-n ülő protokollon (pl.: RTP, l. később) 2. Vezérlő/menedzsment-info: Tipikusan TCP-n 3. Felhasználói adatok átvitele, integrált beszéd-adatalkalmazásoknál: TCP 86
Mit tekintünk át a VoIPkérdéskörből? A beszéd, mint csomag Beszédcsomagok továbbítása (transzport) az RTP igénybevételével IP-UDP-RTP fejrész-halmozódás: overhead, fejrész-kompresszió Szolgáltatásminőség biztosítása IPhálózatokban IntServ és DiffServ Hívásfeldolgozás (call processing) 87
Beszédfelolgozás beszédcsomagkommunikációs rendszerekben Analóg-digitális átalakítás A 64 kbit/s-os beszéd Redundancia kivonása a beszédmintafolyamból Tömörítési technikák A tömörített beszéd jellemzői Az inaktív szakaszok kivonása Szünet/aktivitás detekció Csomagokká alakítás Beszédcsomag-folyam továbbítása csomagkapcsolt hálózaton: késleltetés, jitter, csomagvesztés 88
Analóg-digitális átalakítás PCM: miért 64 kbit/s? Amplitudó Amplitudó Mintavétel Kvantálás Idő 8000 minta/s (125 μs mintavételi időköz) 8 bites kvantálás (7 bit az USA-ban) 8 khz * 8 bit = 64 kbit/s (USA: 56 kbit/s) Idő 89
Speech redundancies (1) In time domain: non-uniform amplitude distributions coarser encoding of larger samples, little gain sample-to-sample correlations many coding methods are based on it cycle-to-cycle correlations pitch interval-to-pitch interval correlations pause In frequency domain: non-uniform long-term spectral densities sound-specific short-term spectral densities (indicate time domain redundancies) 90
Speech redundancies (2) Pitch intervals Voiced sounds Pitch interval Encoding of pitch waveforms Unvoiced sounds 91
Speech compression coding Three main categories of methods 1. Waveform coding removes waveform redundancies quality criteria: reproduction of the waveform with min. MSE suitable for non-voice signals, as well (fax, modem signals) achievable compression rate: up to 4 2. Speech coding or vocoding no waveform reproduction the goal is to achive good perceptual quality higher compression rates can be achieved 3. Hybrid methods Combination of two approaches 92
Coding/compression methods: waveform coding DPCM differential PCM Simplest case: transmit the coded difference between the present and preceeding samples More sophisticated (more efficient): use a predictor to estimate the amplitude of the next input speech sample and encode the difference only ADPCM adaptive use statistics of the encoded signal to optimize predictor coefficients and quantizer 93
Coding/compression methods: speech coding (vocoding) Sub-band coding Divide the spectrum into a few sub-bands and encode each sub-band separately (adjust the coding to the energy level and optimize based on perceptual significance) Linear predictive coding (LPC) Analyses the waveform to produce a timevarying model of the vocal tract excitation and transfer function Linear prediction analysis/synthesis (LPAS) 94
Summary of some speech coding standards Standard Coding method Bit rate, kbps Complexity Delay, ms G.711 PCM 64 1 0,125 G.726 ADPCM 32 10 0,125 G.728 LPAS, CELP 16 50 0,625 G.729 LPAS, 8 30 15 G.723.1 LPAS, 6,3/5,3 25 37,5 95
Perceptual quality of some speech coding standards 96
Speech packetization and reproduction Analog speech signal silence Speech packet at source Speech packets at destination Reproduced speech signal time 97
Silence/activity detection (1) Analog speech signal time Output of the speech detector time 98
Silence/activity detection (2) Saving: min. 50% Filling in the silence periods at the receiver (noiselike signal; smoothing at boundaries) Incorrectness in detecting an active period: t s : cutting out the beginning (distortion) t h : taking the beginning of the silence as speech (utilization) Two methods energy level detection zero crossing count Selection of the threshold to minimize distortion 99
Speech packetization and reproduction, delays t c coding delay, not indicated (can be significant) t p packetization delay; fixed γ propagation delay across the network sources: actual propagation delay (usually small) processing delay (in nodes) queueing delay (in nodes) t R artificial delay inserted to allow for jitter compensation and correcting packet misorder t d decoding delay, not indicated Total delay: δ = t c + t p + γ + t R + t d 100
Jitter In δ, some components are random values, in particular processing and queueing delays SOURCE A B C time DESTINATION A B C time γ 1 γ 2 = γ 1 γ 3 γ 2 101
Packet loss Losses occur due to bit errors (no error correction in packet voice networks) discarding packets at (i) intermediate nodes (ii) destination Packet losses up to 10% are tolerable if Losses occur at random time instants Packets (=speech segments) are relatively short (~10 ms) Places of lost packets are filled in Fill-in: with noise-like sample series and preferably with smoothing at the boundaries 102
A beszédminőséget befolyásoló tényezők csomagkommunikációs hálózatokban Késleltetés (delay) Oka: elsősorban a processzálás a forrásnál és a célban, esetleg a közbenső csomópontokban Megengedett maximum: 150 ms körül Késleltetés-ingadozás (jitter, delay variance) Oka: a feldolgozási késleltetések változásai Megengedett maximum: néhány tíz ms Csomagvesztés Oka: bithibák és csomag-eldobás Megengedett maximum: néhány %, feltéve ha A kiesett beszédszegmensek rövidek (10 ms nagys.r.) Véletlenszerűen oszlanak meg az időben 103
Beszédtovábbítás IP hálózatokban Transport : A beszédtartalom továbbítása a hívások alatt Általánosabban: média transport; médiatartalom továbbítása (beszéd, adat, video) Beszéd (média-) továbbító protokollok: A továbbítással és a kapcsolódó vezérlési típusú kommunikációval foglalkoznak RTP Real-time Transport Protocol 104
RTP az IP protokoll-családban RÉTEGEK H.323 RTP RSVP Application TCP UDP Host IP Network 105
Az RTP által nyújtott szolgáltatások Különböző tartalom-típusok kezelése (payload type identification) Sorszámozás (sequence numbering) Időbélyegek (time-stamping) 106
RTP: a csomagfejrész formátuma (1) 0 1 2 3 8 16 31 v=2 p x cc m PT sequence number timestamp Synchronization Source Identifier (SSRC) Contributing Source Identifiers (CSRC) 107
RTP: a csomagfejrész formátuma (2) Version (V, 2 bits) Az RTP verziószáma az RFC 1889 szerint Padding (P, 1 bit) Ha 1, a csomag nincs teljesen megtöltve tartalommal Padding: az utolsó byte megmondja, hány byte-ot kell figyelmen kívül hagyni Extension (X, 1 bit) Ha 1, a fejrészt változó hosszúságú bővítményfejrész (header extension) követi Ha van bővítmény, az első 2 byte megadja a hosszát A bővítmény-fejrész a fix fejrész utolsó érvényes mezője után következik 108
RTP: a csomagfejrész formátuma (3) CSRC count (CC, 4 bits) a CSRC azonosítók száma = a mpxált források száma (a források azonosítója: a CSRC mezőben) Ha csak egy forrás van: CC = 0 Marker (M, 1 bit) Jellegzetes, fontos események megjelölése a csomagfolyamban példa: frame-határok különböző tömörítési eljárásoknál, a beszéd aktív időszakainak eleje/vége A profil határozza meg, hogyan kell interpretálni Payload type (PT, 7 bits) ~ profil, kódolás típusa 109
RTP: a csomagfejrész formátuma (4) Sequence number (16 bits) Lehetővé teszi az elveszett csomagok detektálását és a csomagsorrend helyreállítását Kezdőértéke véletlen szám (a fejrész-kompresszióhoz szükséges); 1-gyel növekszik minde elküldött RTP csomag után Timestamp (32 bits) Megadja az RTP csomag 1. oktettjének megfelelő mintavételi időpontot SSRC (32 bits) Az RTP csomag forrását azonosítja, az azonosítót az RTCP protokoll rendeli hozzá CSRC (0 15 times 32 bits) contributing source : az RTP mixer által előállított kombinált stream-en belül 110
RTP profilok = A média-kódolás megfeleltetése a payload-típusoknak. Példák (sok más definiálva az RFC-ben): Média Bit per Mintavételi frekvencia, Frame méret, Csomaggyakoriság, RTP payload Kódolás Minta kbit/s ms ms type G.722 8 16-20 9 G.728-8 2.5 20 15 GSM - 8 20 3 Comfort noise 19 111
Az RTP-t használó real-time alkalmazások QuickTime (Apple) RealAudio és RealVideo (RealNetworks) NetMeeting (Microsoft) CU-SeeMe (CUSeeMe) IP/TV (Cisco) Az RTSP-t (= Real-Time Streaming Protocol) is használják 112