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
[email protected] Dallos György egy. docens
[email protected], IL116, tel. 2095 Szabó Csaba Attila egy. tanár tárgyfelelős
[email protected], 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
PSTN, ISDN, 2. generációs cellás mobil-rendszerek
SDH – Synchronous Digital Hierarchy ATM – Asynchronous Transfer Mode MPLS – Multi-Protocol Label Switching
Alapok Wavelength routing és csomagkapcsolás
Áramkörkapcsolt hálózatok
Kapcsolat-orientált hálózatok
3. generációs mobil rendszerek Optikai kommunikáció
3
A tárgy felépítése (2)
Hozzáférési hálózatok:
xDSL FTTx, xPON CATV
Áttekintés PAN, Bluetooth WiFi WiMAX
A távközlési megközelítés NGN a mobil világban: 4G vagy B3G (Beyond-3G)
Szélesávú vezetéknélküli hozzáférés (BWA – Broadband Wireless Access)
Újgenerációs hálózatok (NGN – Next Generation Networks) 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
TCP/IP arch.
Application Presentation
Process / Application Layer
Session Transport
Host-to-Host Layer
Network
Internet Layer
Data Link
Network Interface
Physical
Layer
Példa: FTP Példa: TCP IP (továbbá…) 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
Host Z
Process/Application Layer Host-to-Host Layer Internet Layer Network Interface Layer
Process/Application Layer
Router B Router Y Internet Layer
Internet Layer
NI NI
NI NI
A B
A B
Host-to-Host Layer Internet Layer Network Interface Layer
12
A teljes TCP/IP protokoll-család SNMP
BOOTP FTP ASN 1 DHCP SMTP TELNET DNS TCP 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 Control Plane Management Plane
Az információ-tartalom továbbítása Híváskezelés (call processing) 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
Internet Control Message Protocol
IP ARP
Address Resolution Protocol
RARP
Internet Group Mngment Protocol
Reverse ARP 20
Az IP-protokoll címzési sémája (1) Class A
01234
0
8
16
netid
24
31
hostid
Class B
1 0
Class C
1 10
netid
Class D
1 1 10
multicast address
Class E
1 11 10
reserved for future use
netid
hostid hostid
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. 2. 3.
Ha a host másik hálózatra megy át, az IP címe meg kell, hogy változzon 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 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 A2
A3
A4
Host A
Host B A5
Net2 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
VERS
8
HLEN
16
TYPE OF SERV
IDENTIFICATION TIME TO LIVE
19
24
31
TOTAL LENGTH FLAGS FRAGMENT OFFSET
PROTOCOL
HEADER CHECKSUM
SOURCE IP ADDRESS DESTINATION IP ADDRESS IP OPTIONS (IF ANY)
PADDING
DATA … 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: 216 → 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 ROUTINGINFORMÁ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 C
B R1
D E
F
R2 G
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 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
Port 1
Port 2
Port 3
UDP
Alkalmazások
Demultiplexelés a portok alapján Beérkező UDP datagram
IP layer 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) PADDING DATA … •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.
2.
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 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üldő k-bit-es sorszám (seq #) a csomag fejlécében 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:
[rcvbase, rcvbase+N-1]
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)
Fogadó
Az n. csomag a
[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
ACK(n) küldése 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 ablakban:
ablakban:
[rcvbase-N, rcvbase-1]
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
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 nyugtázott
w = 8 (oktett)
küldött
50
TCP sorszámok és ACK-ek Sorszámok: A szegmens adatok első bájtjának bájtfolyam sorszáma
ACK-k:
Hoszt A
Az „A” hoszt Seq =42, A CK=7 ‘C’-t küld 9, dat a = ‘C ’
A „B” hoszt nyugtázza ’ D ‘ = a kapott „C”-t, , data 3 4 = K és „D”-t küld 9, A C 7 = q Se vissza
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
Hoszt B
Az „A” hoszt nyugtázza a visszaküldött „D”-t
Seq=4 3, ACK =80
Idő Egyszerű telnet működés 51
TCP ACK előállítás Esemény a fogadónál
[RFC 1122, RFC 2581]
TCP fogadó tevékenység
Sorrendhelyes szegmens érkezése Az ACK késleltetése. Várj max. a várt sorszámmal. Minden korábbi 500 ms-ot a következő szegmensre! Ha nincs szegmens, küldd az ACK-et! sorszám már nyugtázott Sorrendhelyes szegmens érkezése Azonnali egyetlen cumulative ACK küldése, mindkét sorrendhelyes a várt sorszámmal. Egy további szegmens nyugtázása szegmens nyugtája felfüggesztve Sorrenden kívüli szegmens érkezése a vártnál nagyobb sorszámmal. Rés detektálása
Duplikált ACK azonnali küldése a következő várt bájt sorszámnak jelzésével
Szegmens érkezése, amely részben vagy teljesen kitölti a rést
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) Ha a küldő 3 ACK-et kap ugyanarra az adatra, felteszi, hogy a Hosszú késleltetés az elveszett nyugtázott szegmens csomag újraküldése előtt utáni szegmens Az elveszett szegmensek elveszett: felismerése duplikált ACK-val A Timeout időszakok sokszor viszonylag hosszúak
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
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
Sebesség összehangolási szolgálat Az alkalmazási processz lehet, hogy lassan tud olvasni a pufferből
Ö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 A fogadó megadja a szegmensben a puffer szabad helyének nagyságát (vagyis a RcvWindow méretét) (Tegyük fel, hogy a TCP fogadó eldobja a sorrenden kívüli szegmenseket)
Szabad hely a pufferben = RcvWindow = RcvBuffer - [LastByteRcvd - LastByteRead]
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 1 MSS-sel minden 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: Hogyan érzékeli a küldő a torlódást? LastByteSent-LastByteAcked Vesztési esemény = ≤ CongWin timeout vagy 3-szoros Durván (duplikált) ACK A TCP küldő csökkenti a CongWin rate = Bytes/sec sebességet (CongWin) RTT csomagvesztés után A CongWin dinamikusan Négy mechanizmus: változik az érzékelt hálózati AIMD torlódás függvényében 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, Amikor az összekötCongWin = 1 MSS tetés létrejön, növeljük a sebességet Példa: MSS = 500 byte & exponenciálisan az első RTT = 200 msec csomagvesztési Kezdeti sebesség = 20 eseményig, vagy egy kbps előre beállított Az elérhető sávszélesség küszöbértékig lehet >> MSS/RTT Kívánatos a sebesség gyors emelése a megfelelő szintig
58
TCP Slow Start (folytatás)
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ű
Host A
RTT
Amikor az összeköttetés létrejön, növeljük a sebességet exponenciálisan az első csomagvesztési eseményig
Host B one segm ent
two segm en
ts
four segm ents
time 59
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
Finomítás
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/2re, 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 fast retransmission
congestion avoidance
CongWin
congestion avoidance
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 SYN küldése, seq = x SYN + ACK vétele ACK y+1 küldése
Üzenetek
Esemény B-nél 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 FIN seq=xx küldése ACK vétele FIN + ACK vétele ACK yy+1 küldése
Üzenetek
Esemény B-nél 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.
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:
Mennyi van?
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 20052010 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
vers
4
16
Priority (4) Payload length
24
31
Flow label (24) 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
Next hdr
8
16
Hdr length
24
Type
31
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
Next header
16
Reserved
29 31
Fragment offset
MF
DATAGRAM IDENTIFIER UTOLSÓ SZEGMENS : MF = 0
78
IPv6 fejrész-példák IPv6 fejrész
TCP fejrész és adat
Köv. fejrész = TCP
IPv6 fejrész
Routing fejrész
TCP fejrész és adat
Köv. fejrész = routing Köv. fejrész = TCP
IPv6 fejrész
Routing fejrész
Fragment. fejrész
TCP fejrész és adat
Köv. fejrész = routing Köv. fejrész = fragment. Köv. fejrész = TCP
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 Hálózat
Internet
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
H.323
Beszédtovábbítás
RTP
TCP
UDP IP
QoS
RÉTEGEK
RSVP
Application
Host 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
3
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) Erőforrás-menedzsment, QoS – RSVP, Resource Reservation Protocol 85
TCP és UDP a VoIP rendszerekben 1.
A a) b) c)
beszédfolyam továbbítása: Közvetlenül IP felett– lehetséges, de nem célszerű UDP felett – célszerű az UDP portkezelése miatt 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
no waveform reproduction the goal is to achive good perceptual quality higher compression rates can be achieved
Combination of two approaches
2. Speech coding or vocoding
3. Hybrid methods
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
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
Complexity Delay, ms
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: ts: cutting out the beginning (distortion) th: 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 tc – coding delay, not indicated (can be significant) tp – packetization delay; fixed γ – propagation delay across the network sources: actual propagation delay (usually small) processing delay (in nodes) queueing delay (in nodes) tR – artificial delay inserted to allow for jitter compensation and correcting packet misorder td – decoding delay, not indicated Total delay: δ = tc + tp + γ + tR + td 100
Jitter In δ, some components are random values, in particular processing and queueing delays SOURCE
A
B
C
time
DESTINATION
A γ1
B γ2 = γ1
C
time
γ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
TCP
RSVP UDP
IP
Application
Host
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 12 3 v=2 p x
8 cc
m
16 PT
31 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): Frame méret, ms
Csomaggyakoriság, ms
RTP payload type
Média Kódolás
Bit per Minta
Mintavételi frekvencia, kbit/s
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