Professional Documents
Culture Documents
Kuroise, Keith - Számítógép Hálózatok Működése
Kuroise, Keith - Számítógép Hálózatok Működése
mkdse kzelts
vilgszerte a legnpszerbb ke az alapok elsajttshoz, k oka, hogy friss szemllettel s korszer meg a szmtgp-hlzatok oktatst, tantsi mdszerrel ellenttben fellrl ilkalmazsi rtegtl indulva trgyalja a zatokat. A rtegzett szerkezet segts- 5k tlthatjk a szmtgp-hlzatok azonban gy tanuljk meg az architek- zhez tartoz klnbz fogalmakat s gy kzben ltjk a teljes kpet, ahogyan hoz illeszkednek. m az internet ll, s a szerzk eltrbe ati biztonsg krdseit a legelterjedtebb zati technikkkal egytt. < szmra kszlt, akik elszr foglalkoz-hlzatokkal. Hasznlhat mind inforillamosmrnki szakokon, az egyetemi s a mesterkpzsben egyarnt, valamint telekommunikcis iparban dolgozk
ogy a hlzatok tanulsa (s tantsa!) \ knyvben a humor, a hasonlatok alkaldi pldk remlhetleg hozzjrulnak
Kurose
rr
SZAMITOGEPHLZATOK MKDS
Alkalmazsorientlt megkzelts
www.panem.hu
PANEM
A m eredeti cme: Computer Networking: A Top-Down Approach. 4th Edition. Copyright 2008 Pearson Education, Inc. Hungarian language edition Copyright 2009 Panem Knyvkiad Kft., Budapest
ISBN 978-963-545-498-3
A kiadsrt felel a Panem Knyvkiad Kft. gyvezetje, Budapest, 2009 Fordtotta: dr. Barta Erzsbet (4. fejezet), Bogatin Gyrgy (2. fejezet), Czap Lszl (8. fejezet), Ers Levente (5. s 6. fejezet), Kvr Jnos (Bevezets, 1. fejezet), Sipos Katalin (3. fejezet), Sztah Dvid (7. s 9. fejezet) Lektorlta: dr. Harangoz Jzsef Tipogrfia: Mihalecz Pl Bortterv: Tth Attila Nyomdai elkszts: AlmandinBooks
panem@panem.hu www.panem.hu Minden jog fenntartva. Jelen knyvet, illetve annak rszeit tilos reproduklni, adatrgzt rendszerben trolni, brmilyen formban vagy eszkzzel - elektronikus ton vagy ms mdon - kzlni a kiadk engedlye nlkl.
Nyomta s kttte: a Drer Nyomda Kft. Gyuln Felels vezet: Kovcs Jnos
Tartalomjegyzk
Tartalomjegyzk.................................................................................................... 7
A szmtgp-hlzatok s az internet.............................................................26
1.1.Mi az az internet?........................................................................................... 2
1.1.1.Alkotrszek................................................................................................ 2
1.1.2.Szolgltatsok............................................................................................. 5
1.2.1.Kliens- s szerverprogramok....................................................................14
1.2.2.Hozzfrsi hlzatok...............................................................................14
1.3.1.Vonalkapcsols s csomagkapcsols.......................................................30
1.3.3.lnternetszolgltatk s internet-gerinchlzatok...................................41
1.4.1.Ksleltetsek ttekintse.........................................................................46
1.4.4.Szmtgp-hlzatok tbocstkpessge............................................58
1.5.1.Rtegezett architektra............................................................................ 63
1.7.5.Legutbbi fejlesztsek..............................................................................90
1.8.sszefoglals................................................................................................ 92
Krdsek.............................................................................................................. 94
Feladatok............................................................................................................. 96
2.1.2.Kommunikl folyamatok.......................................................................119
2.1.5.Alkalmazsi protokollok..........................................................................130
2.2.3.HTTP-zenetformtumok........................................................................140
2.3.1.FTP-parancsok s -vlaszok....................................................................129
2.4.1.SMTP......................................................................................................... 134
2.4.2.sszehasonlts a HTTP-vei....................................................................113
2.4.4.Levl-hozzfcrsi protokollok.................................................................118
2.5.3.DNS-rekordok s -zenetek....................................................................131
2.6.P2P-alkalmazsok....................................................................................... 139
2.6.1.P2P-fj1cserls...................................................................................... 140
F \....................................................................................................................... 143
2.7.TCP-szoketprogramozs............................................................................. 166
2.7.1.TCP-szoketprogramozs.......................................................................... 168
l.......................................................................................................................... 183
t.......................................................................................................................... 186
O........................................................................................................................ 245
O......................................................................................................................... 211
1......................................................................................................................... 196
1......................................................................................................................... 196
r,=2X................................................................................................................ 231
I I l i.................................................................................................................... 106
1.1.1.
Tartalomjegyzk.................................................................................................... 7
A szmtgp-hlzatok s az internet.............................................................26
1.1.Mi az az internet?........................................................................................... 2
1.1.1.Alkotrszek................................................................................................ 2
1.1.2.Szolgltatsok............................................................................................. 5
1.2.1.Kliens- s szerverprogramok....................................................................14
1.2.2.Hozzfrsi hlzatok...............................................................................14
1.3.1.Vonalkapcsols s csomagkapcsols.......................................................30
1.3.3.lnternetszolgltatk s internet-gerinchlzatok...................................41
1.4.1.Ksleltetsek ttekintse.........................................................................46
1.4.4.Szmtgp-hlzatok tbocstkpessge............................................58
1.5.1.Rtegezett architektra............................................................................ 63
1.7.5.Legutbbi fejlesztsek..............................................................................90
1.8.sszefoglals................................................................................................ 92
Krdsek.............................................................................................................. 94
Feladatok............................................................................................................. 96
2.1.2.Kommunikl folyamatok.......................................................................119
2.1.5.Alkalmazsi protokollok..........................................................................130
2.2.3.HTTP-zenetformtumok........................................................................140
2.3.1.FTP-parancsok s -vlaszok....................................................................129
2.4.1.SMTP......................................................................................................... 134
2.4.2.sszehasonlts a HTTP-vei....................................................................113
2.4.4.Levl-hozzfcrsi protokollok.................................................................118
2.5.3.DNS-rekordok s -zenetek....................................................................131
2.6.P2P-alkalmazsok....................................................................................... 139
2.6.1.P2P-fj1cserls...................................................................................... 140
F \....................................................................................................................... 143
2.7.TCP-szoketprogramozs............................................................................. 166
2.7.1.TCP-szoketprogramozs.......................................................................... 168
l.......................................................................................................................... 183
t.......................................................................................................................... 186
O........................................................................................................................ 245
O......................................................................................................................... 211
1......................................................................................................................... 196
1......................................................................................................................... 196
r,=2X................................................................................................................ 231
I I l i.................................................................................................................... 106
23
Elsz
24
Elsz
Elsz
Elsz
VIl
dvzljk a Szmtgp-hlzatok mkdse. Alkalmazsorientlt megkzelts cm knyv negyedik kiadsban. Ht ve, az els kiads megjelense ta knyvnket tbb szz fiskola s egyetem kezdte hasznlni, tbb mint 10 nyelvre lefordtottk, s tbb mint szzezer egyetemi hallgat s szakmabeli hasznlta vilgszerte. Az olvasktl rendkvl sok pozitv visszajelzs rkezett.
Mi az j a negyedik kiadsban?
Szerintnk a siker egyik fontos oka az, hogy knyvnk friss s idszer mdon kzelti meg a szmtgp-hlzatok oktatst. Ebben a negyedik kiadsban vannak vltozsok, de vltozatlanul hagytuk azt, amirl gy hisszk (s ebben a knyvet hasznl oktatk s hallgatk is megerstettek), hogy a knyv legfontosabb aspektusai: alkalmazsorientlt, szolgltatsalap szemllete, vagyis az, hogy fellrl lefel kzelti meg a szmtgp-h- lzatokat; az internetre s a modern hlzatokra helyezi a hangslyt; figyelmet fordt mind az elmletre, mind a gyakorlatra, tovbb rthet az a mdszer, amely vgl is elvezet a szmtgphlzatok megismershez. Ennek ellenre szmos lnyeges dolgot vltoztattunk is ebben a kiadsban. A hlzati biztonsg rendkvli fontossga miatt ez a terlet nagyobb hangslyt kap, s hlzati biztonsggal foglalkoz krdseket mr az 1. fejezetben bemutatunk, majd ezt minden fejezetben j szempontokkal bvtjk. A 8. fejezetben (amelyet az els kiadstl kezdve a hlzati biztonsgnak szenteltnk) megjtottuk s kibvtettk a hlzati biztonsg terletnek bemutatst. j informcikkal frisstettk s bvtettk a vezetk nlkli hlzatokrl szl tmakrt az IEEE 802.11-rl (WiFi), IEEE 802.16-rl (WiMAX) s a mobilhlzatokrl. A P2Palkalmazsokrl - az alkalmazsi protokollok egyre fontosabb csaldjrl - szl lersaink nem csak a fjlmegoszt protokollokat fedik le, hanem az olyan fjleloszt protokollokat is, mint a BitTorrent s az j P2P multimdia-alkalmaz sokkal, mint pldul az IP-n keresztli hangtvitelt hasznl Skype. A helyi s a multimdia-hlzatokrl szl fejezetek tkrzik az ezen terletek elmletben s gyakorlatban trtnt vltozsokat. Az I. fejezet kiegszlt a vgpontok kztti tbocstkpessg vizsglatval. A knyvben vgig j, korszer pldkat s friss hivatkozsokat hasznltunk. A fejezetek vgre j krdsek, feladatok kerltek.
Olvaskznsg
Ez a knyv azok szmra kszlt, akik elszr foglalkoznak a szmtgphlzatokkal. Hasznlhat mind informatikai, mind villamosmrnki szakon. A programozsi nyelvek ismeretrl a knyv csak annyit felttelez, hogy a hallgatk gyakorlattal rendelkeznek a C, C++ vagy Java nyelvekben (s csak nhny helyen van erre szksg). Br ez a knyv rszletesebb s analitikusabb, mint sok ms bevezet jelleg hlzatokkal foglalkoz knyv, ritkn hasznl olyan matematikai
Vili
ELSZ
fogalmakat, amelyeket nem tantanak a kzpiskolban. Kerltnk mindenfle bonyolult szmtst, valsznsg-szmtsi vagy sztochasztikus feldolgozsi fogalmakat (ennek ellenre tallhat nhny krds s feladat azok szmra, akik biztosabb alapokkal rendelkeznek). A knyv ezrt megfelel mind az egyetemi alapkpzsben (BSc), mind a mesterkpzsben (MSc), valamint hasznos lehet a telekommunikcis iparban dolgozk szmra is.
Alkalmazsorientlt szemllet
Knyvnk ht vvel ezeltt ttr szerepet tlttt be, mivel alkalmazsorientlt (szolgltatsalap) szemlletben foglalkozott a hlzatokkal - azaz elsknt az alkalmazsi rteget mutatta be, majd onnan haladt lefel a fizikai rteg fel. Ez a megkzelts szmos elnnyel jr. Elszr is azrt, mert hangslyt fektet az alkalmazsi rtegre (a hlzatok nagyra ntt terletre), s mg inkbb azrt, mert sok mai ttrs a szmtgp-hlzatok tern - belertve a webet, a P2P-fjl megosztst s a mdia letltst - az alkalmazsi rtegben trtnt. Az alkalmazsi rtegbeli krdsekre helyezett korai hangsly klnbzik legtbb ms knyv megkzeltstl, amelyeknek csak kis rsze foglalkozik a hlzati alkalmaz sokkal, a kvetelmnyeikkel, az alkalmazsi rteg paradigmival (pldul kliensszerver s egyenrang felek kztti adatcsere) s az alkalmazi programinterfszekkel. Msodszor, a sajt oktati tapasztalatunk (s ms, ezt a knyvet hasznl oktatk tapasztalata) az volt, hogy rendkvl ersen motivlja a hallgatkat, ha a hlzati alkalmazsokkal rgtn az elejn foglalkozunk; ha arrl tanulnak, hogyan mkdnek az olyan hlzati alkalmazsok, mint az e-mail s a web, amelyeket naponta hasznlnak. Ha egyszer a hallgat megrti az alkalmazsokat, megrti a hlzati szolglati modelleket is, amelyek ezen alkalmazsok tmogatshoz szksgesek. Cserbe szmos mdszert megvizsglhat, ho gyan nyjthatjk s valsthatjk meg az alsbb rtegek ezeket a szolgltatsokat. Az al kalmazsok korai trgyalsa gy felkelti az rdekldst a knyv tovbbi rszhez. Harmadszor, az alkalmazsorientlt megkzelts lehetv teszi az oktatnak, hogy mr a korai szakaszban bemutassk a hlzati alkalmazsok fejlesztst. A hallgatk nem csak ltjk, hogyan mkdnek a npszer protokollok, hanem meg is tanuljk, milyen knny elkszteni a sajt hlzati alkalmazsaikat s
Vili
ELSZ
alkalmazsi protokolljai kt. A alkalmazsorientlt, szolgltatsalap megkzeltssel a hallgatk korn megismerhetik az alkalma zi program interfsz (API) fogalmt, a szolglati modelleket s a protokollokat - olyan fontos fogalmakat, amelyek a kvetkez rtegekben jra megjelennek. Java szoketprogramozsi pldk bemutatsval anlkl emeljk ki a kzponti gondolatot, hogy bonyolult
kddal sszezavarnnk a hallgatkat. Villamosmrnk hallgatknak nem okozhat gondot a Java-kd megrtse.
informatikus
Hangsly az interneten
Ebben a negyedik kiadsban kihagytuk az internet jellemzse szavakat a cmbl, de ez nem jelenti azt, hogy nem helyezzk az internetet a kzppontba! Az volt a meggondolsunk, hogy mivel az internet mr ennyire thatja mindennapjainkat, gy reztk, hogy brmelyik hlzatokkal foglalkoz knyvben jelents hangslyt kell fektetni r, s gy ezek a szavak valahogy flslegess vltak. Termszetesen ms hlzati architektrk fogalmaival s protokolljaival is foglalkozunk. m a kzppontban az internet ll, s ezt a tnyt tkrzi az is, hogy az internet trteg architektrja kr ptettk fel a knyvet: ezek az alkalmazsi, szlltsi, hlzati, adatkapcsolati s a fizikai rteg. Az internet kzppontba helyezsnek msik elnye, hogy a legtbb informatikus s villamosmrnk hallgat szvesen tanul az internetrl s protokolljairl. Tudjk, hogy az internet forradalmi s tforml technika, s ltjk, hogy alapjaiban vltoztatja meg vilgunkat. Az internet fontossga miatt a hallgatk termszetesen kivncsiak, hogy mi van a kalap alatt. gy az internet mint vezrfonal hasznlatval egy oktatnak knny rdekess tenni az alapelveket a hallgatk szmra.
Az alapelvek ismertetse
A knyv egyedi vonsaibl kett - az alkalmazsorientlt megkzelts s az internet hangslyozsa - megjelent az els hrom kiads cmben. Ha mg egy harmadik kifejezst is beleprselhettnk volna az alcmbe, az tartalmazta volna az alapelvek szt. A hlzatok terlete elg rett mr, hogy szmos alapvet fontossg problmt azonostsunk. Pldul a szlltsi rtegben az alapvet problmk kz tartozik a megbzhatatlan hlzati rteg fltti megbzhat kommunikci, az sszekttets felptse/lebontsa s a kzfogs, a torldskezels s forgalomszablyozs s a nyalbols. A hlzati rteg kt alapvet fontossg krdse az, hogyan hatrozhat meg kt tvlaszt kztt a helyes t, s hogyan kell sszektni nagyszm heterogn hlzatot. Az adatkapcsolati rtegben az alapproblma a tbbszrs hozzfrs csatorna megosztsa. A hlzati biztonsg terletn a titkostst, a hitelestst s a csomagok srtetlensgt biztost technikk mind kriptogrfiai alapokon nyugszanak. Ez a knyv meghatrozza az alapvet hlzati problmkat, s tanulmnyozza ezen problmk megkzeltsi lehetsgeit. Azok a hall gatk, akik megtanuljk ezeket az alapelveket, hossz idre szl ismereteket szereznek a mai hlzati szabvnyok s protokollok elavulsa utn is, hiszen az alapelvek, amelyeket megtestestenek, sokig fontosak lesznek. Hisszk, hogy a hallgatk kezdeti rdekldst felkelt internethasznlatnak, s ezutn az alapkrdsek s a megoldsi megkzeltsek hangslyozsnak kombincija lehetv teszi, hogy a hallgatk gyorsan beletanuljanak brmilyen hlzati technikba.
Oktatsi szempontok
Tbb mint 20 ve oktatunk szmtgp-hlzatokat. Egytt tbb mint 45 vnyi oktatsi tapasztalatot srtettnk a knyvbe, s ez id alatt tbb ezer hallgatt tantottunk. A szmtgp-hlzatok aktv kutati is voltunk. (Valjban Jim s Keith elszr egyetemi hallgatknt tallkozott 1979-ben a Columbia Universityn Mischa Schwartz szmtgp-hlzatok eladsn.) gy gondoljuk, hogy ezrt j rltssal rendelkeznk a hlzat tmakrre, s valszn jvbeli fejldsre. Mindazonltal ellen tudtunk llni a ksrtsnek, hogy a knyv anyagt a sajt kedvenc kutatsi projektjeink fel mozdtsuk el. gy vljk, ha az olvast rdekli a sajt kutatsunk, elltogathat szemlyes weboldalainkra. gy ez a knyv a modern szmtgp-hlzatokrl szl - a jelen protokolljairl s technolgi irl, valamint a mgttk lv alapelvekrl. gy hisszk, hogy a hlzatok tanulsa (s tantsa!) lvezetes is lehet. A knyvben a humor, az letszer hasonlatok alkalmazsa s a valdi pldk remlhetleg hozzjrulnak ehhez.
ELSZ
XXIX
rdekessgek
A szmtgp-hlzatok trtnete gazdag s rdekfeszt. Klnsen fontosnak tartottuk, hogy elmesljk a knyvben a szmtgp-hlzatok trtnett. Ezt az 1. fejezetben egy klnleges trtneti rszben, s a tovbbi fejezetek kzel tucatnyi trtnetben tettk meg (lsd az Egy kis trtnelem cm rsokat). Ezekben a trtnetekben foglalkozunk a csomagkapcsols feltallsval, az internet fejldsvel, az olyan hatalmas, hlzatok kal foglalkoz vllalatok szletsvel, mint a Cisco s a 3Com s mg sok ms fontos ese mnnyel. Olyan klnleges esetekrl is beszmolunk, amelyek a szmtgp-hlzatok fontos alapelveit emelik ki (lsd Elvek a gyakorlatban cm rszeket). gy vljk, hogy ezek a trtnetek elsegtik, hogy a hallgatk tisztban legyenek nhny alapvet koncepci fontossgval, amelyet a modern hlzatokban hasznlnak. A hlzati biztonsggal a Fkuszban a biztonsg cm kiemelt rszekben foglalkozunk a knyv minden fejezetben.
Interjk
Mg egy eredeti tulajdonsga van a knyvnek, amely inspirlhatja s motivlhatja a hallgatkat, nevezetesen beszlgetseket tartalmaz neves fejlesztkkel, akik a hlzatok terletn tevkenykedtek: Len Kleinrock, Bram Cohen, Sally Floyd, Vint Cerf, Simon Lam, Charlie Perkins, Henning Schulzrinne, Steven Bellovin s Jeff Case.
Segdanyagok oktatknak
Egy teljes kiegszt csomagot is biztostunk az oktatknak, hogy segtsgkre legynk a trgy tantsban. Ez az anyag elrhet az Addison-YVesley Instructors Resource Centeren (http://vvww.avv.com/irc ). Ltogasson el az Instructors Resource Centerre, vagy kldjn e-mailt a computing@avv.com cmre tovbbi informcirt, hogyan rhetk el ezek a kiegsztsek. PowerPoint^-flik. PowerPoint-flikat biztostunk, melyek rszletesen lefedik
ELSZ
XXX
mind a kilenc fejezetet. A flik nem csupn monoton felsorolsokbl llnak, de grafikt s animcit is alkalmaznak, hogy mg rdekesebbek s vizulisan is vonzbbak legyenek. Az eredeti PowerPoint-flikat az oktat testre szabhatja a sajt tantsi ignyeinek megfelelen. A flik kzl nhnyat azok az oktatk ksztettek, akik ebbl a knyvbl tantottak.
ELSZ
XVll
XXXI
Elsz
. A feladatok megoldsa. Elrhetv tesszk a knyvben tallhat krdsek, feladatok megoldsi tmutatit.
A knyv 1. fejezete nmagban is egszknt kezelhet ttekints a szmtgphlzatokrl. Ez a fejezet szmos kulcsfogaimat s terminolgit bemutatva kpezi a knyv tbbi rsznek alapjt. Az sszes tbbi fejezet kzvetlenl fgg az 1. fejezettl. Azt javasoljuk, hogy az 1. fejezet elolvassa utn az oktatk a 2., 3., 4. s 5. fejezeteket sorban vegyk t, kvetve a filozfinkat, vagyis hogy fellrl lefel haladunk. Ezen fejezetek kzl mindegyikre hatssal van az elz fejezetek anyaga. Az els t fejezet utn az oktatnak nincs megktve a keze. Az utols ngy fejezet kztt nincs fggsg, gy brmilyen sorrendben tanthatja azokat. Az utols ngy fejezet anyaga azonban fgg az els t fejezet anyagtl. Sok oktat megtantja az els t fejezetet, s azutn amolyan desszertknt lead egyet az utols ngy fejezetbl.
Ksznetnyilvnts
Mita 1996-ban elkezdtk rni ezt a knyvet, sok ember adott felbecslhetetlen mrtk segtsget, s befolysolta az elkpzelseinket arrl, hogyan lehet a
ELSZ
XXXII
legjobban szervezni s tantani egy hlzatos trgyat. NAGY KSZNETT mondunk mindenkinek, aki segtett minket a knyv els piszkozattl kezdve egszen eddig a negyedik kiadsig. Sok ksznettel tartozunk annak a sok szz olvasnak a vilg minden tjrl - hallgatknak, egyetemi oktatknak, szakmabelieknek akik elkldtk gondolataikat s megjegyzsei ket a knyv korbbi kiadsaihoz, s javaslatokat tettek a knyv tovbbi kiadsaival kap csolatban. Kln ksznet illeti nv szerint az albbiakat:
ELSZ
XXXIII
A1 Aho (Columbia University) Hisham Al-Mubaid (University of Houston-Clear Lake) Pratima Akkunoor (Arizona State University) Paul Amer (University of Delaware) Shamiul Azom (Arizona State University) Paul Barford (University of Wisconsin) Bobby Bhattacharjee (University of Maryland) Steven Bellovin (Columbia University) Pravin Bhagwat (Wibhu) Supratik Bhattacharyya (previously at Sprint) Ernst Biersack (Eurecom Institute) Shahid Bokhari (University of Engineering & Technology, Lahore) Jean Bolot (Sprint) Daniel Brushteyn (former University of Pennsylvania student) Ken Calvert (University of Kentucky) Evandro Cantu (Federal University of Santa Catarina) Jeff Case (SNMP Research International) JefF Chaltas (Sprint) Vinton Cerf (Google) Byung Kyu Choi (Michigan Technological University) Bram Cohen (BitTorrent, Inc.) Constantine Coutras (Pace University) John Daigle (University of Mississippi) Edmundo A. de Souza e Silva (Federal University of Rio de Janiero) Philippe Decuctos (Eurecom Institute) Christophe Diot (Thomson Research) Michalis Faloutsos (University of California at Riverside) Wu-chi Feng (Oregon Graduate Institute) Sally Floyd (ICIR, University of California at Berkeley) Paul Francis (Cornell) Lixin Gao (University of Massachusetts) JJ Garcia-Luna-Aceves (University of California at Santa Cruz) Mario Gerla (University of California at Los Angeles) David Goodman (Polytechnic University) Tim Gridin (Cambridge University) Max Hailperin (Gustavus Adolphus College) Bruce Harvey (Florida A&M University, Florida State University) Carl Hauser (Washington State University) Rachelle Heller (George Washington University) Phillipp Hoschka (INRIA/W3C) Wen Hsin (Park University) Albert Huang (former University of Pennsylvania student) Esther A. Hughes (Virginia Commonwealth University) Jobin James (University of California at Riverside) Sugih Jamin (University of Michigan) Shivkumar Kalyanaraman (Rensselaer Polytechnic Institute) Jussi Kangasharju (University of Darmstadt)
Sneha Kasera (University of Utah) Hyojin Kim (former University of Pennsylvania student) Leonard Klein rock (University of California at Los Angeles) David Kotz (Dartmouth College) Beshan Kulapala (Arizona State University), Rakesh Kumar (Polytechnic University) Miguel A. Labrador (University of South Florida) Steve Lai (Ohio Slate University) Tim-Berners Lee (World Wide Web Consortium) Lee Leitner (Drexel University) Brian Levine (University of Massachusetts) William Liang (former University of Pennsylvania student) Willis Marti (Texas A&M University) Nick McKeown (Stanford University) Josh McKinzie (Park University) Deep Medhi (University of Missouri, Kansas City) Bob Metcalfe (International Data Group) Sue Moon (KAIST) Erich Nahum (IBM Research) Christos Papadopoulos (Colorado Sate University) Craig Partridge (BBN Technologies) Radia Perlman (Sun Microsystems) Jitendra Padhye (Microsoft Research) Kevin Phillips (Sprint) George Polyzos (Athens University of Economics and Business) Sriram Rajagopalan (Arizona State University) Ramachandran Ramjec (Microsoft Research) Ken Reek (Rochester Institute of Technology) Martin Reisslein (Arizona State University) Jennifer Rexford (Princeton University) Leon Reznik (Rochester Institute of Technology) Sumit Roy (University of Washington) Avi Rubin (Johns Hopkins University) Dan Rubenstein (Columbia University) Douglas Salane (John Jay College) Despina Saparilla (Lucent Bell Labs) Henning Schulzrinne (Columbia University) Mischa Schwartz (Columbia University) Harish Sethu (Drexel University) K. Sam Shanmugan (University of Kansas) Prashant Shenoy (University of Massachusetts) Clay Shields (Georgetown University) Subin Shrestra (University of Pennsylvania) Mihail L. Sichitiu (NC State University) Peter Steenkiste (Carnegie Mellon University) Tatsuya Suda (University of California at Irvine) Kin Sun Tam (State University of New York at Albany) Don Towsley (University of Massachusetts) David Turner (California State University, San Bernardino)
ELSZ
21
Nitin Vaidya (University of Illinois) Michele Weigle (Clemson University) David Wetherall (University of Washington) Ira Winston (University of Pennsylvania) Raj Yavatkar (Intel) Yechiam Yemini (Columbia University) Ming Yu (State University of New York at Binghamton) Ellen Zegura (Georgia Institute of Technology) Hui Zhang (Carnegie Mellon University) Lixia Zhang (University of California at Los Angeles) Shuchun Zhang (former University of Pennsylvania student) Xiaodong Zhang (Ohio State University) ZhiLi Zhang (University of Minnesota) Phil Zimmermann (independent consultant) Cliff C. Zou (University of Central Florida) Szeretnnk kifejezni ksznetnket a teljes Addison-Wesley csapatnak is, akik rendkvl magas sznvonal munkt vgeztek (s akik elviseltek kt nagyon sok figyelmet ignyl szerzt): klnsen Michael Hirschnek, Marilyn I.loydnaks Lindsey Triebelnek. Ugyancsak ksznjk a kt grafikusnak, Janet Theurernek s Patrice Rossi Calkinnak a 2., 3. s 4. fejezetben lv gynyr brkat, s Nancy Kotarynak, Alicia Williamsnek s Scott Ha- risnek az ezen a kiadson vgzett csodlatos tipogrfiai, trdeli munkjt. Vgl klnleges ksznett mondunk Michael Hirschnek a jelenlegi kiads, s Susan Hartmannak a korbbi kiadsok szerkesztjnek az AddisonWesleynl. Ez a knyv nem lett volna az, ami (st egyltaln nem lett volna) az szeretetteljes hozzllsuk, lland sztnzsk, majdnem vgtelen trelmk, kitn humoruk s folytonos tenniakarsuk nlkl.
A szerzkrl
Jim Kurose
22
ELSZ
Jim Kurose a szmtstudomny kitntetett professzora az Amherstben lv University of Massachusettsen. Dr. Kurose szmos elismerst kapott oktatsi tevkenysgrt, belertve az Outstanding Teacher Awardst a National Technological Universitytl (8 alkalommal), a University of Massachusettstl s a Northeast Association of Graduate Schoolstl. Megkapta az IEEE Taylor Booth Education Medlt, s elismertk vezeti kpessgt a massachusett- si Commonwealth Information Technology Initiative-nl, valamint tovbbi djakat is kapott: GE Fellowship, IBM Faculty Development Award, Lilly Teaching Fellowship. Dr. Kurose az IEEE Transactions on Communications s az IEEE/ACM Transactions on Networking fszerkesztje. Sok ven keresztl rszt vett az IEEE Infocom, ACM SIG- COMM, ACM Internet Measurement Conference s az ACM SIGMETRICS program- bizottsgban, amelyekben a Technical Program trselnki tisztt tlttte be. Tagja az IEEE-nek s az ACM-nek. A kutatsi terletei kztt megtallhatak a hlzati protokollok s architektrk, hlzati mrsek, szenzorhlzatok, multimdia-kommunikci s a modellezs s teljestmnyvizsglat. PhD fokozatt szmtstudomnyban a Columbia Universityn szerezte.
Keith Ross
23
ELSZ
Keith Ross a szmtstudomny Leonard J. Shustek kitntetett professzora a brook ly ni Poly tech inc Universityn. 1985-tl 1998-ig a Department of Systems Engineering professzora volt a University of Pennsylvanin. 1998-tl 2003-ig a Multimedia Communications Department professzora volt a francia Institute Eurecomnl. Keith Ross alaptja s els igazgatja is a Wimbnak, amely IP-n keresztl trtn hangtviteli s folyamszer letltsi technikkat fejleszt az elektronikus oktatsi piacra. Ross professzor kutatsi terletei az egyenrang felek bl felpl (peer-to-peer) hlzatok, internetes mrsek s videletlts, web gyorsttrak, tartalomeloszt hlzatok, hlzati biztonsg, IP-n keresztl trtn hangtvitel s sztochasztikus modellezs. Tagja az IEEE-nek s jelenleg az IEEE/ACM Transactions on Networking trsszerkesztje. Tancsadknt szolglt a Federal Trade Commissionnl a P2P-fjlmegosztssal kapcsolatban. Rszt vesz az IEEE Infocom, ACM SIGCOMM, ACM Multimedia, ACM Internet Measurement Conference s ACM SIGMETRICS programbizottsgaiban. Szmtstudomnybl s irnytstechnikbl szerzett PhD fokozatot az University of Michiganen.
24
ELSZ
ELSZ
1. FEJEZET
A szmtgp-hlzatok s az internet
A mobiltelefonok webbngszitl a nyilvnos vezetk nlkli internetelrst knl kvhzakig, a gyors, szles sv elrssel rendelkez otthoni hlzatoktl a hagyomnyos munkahelyi szmtgpes infrastruktrig, ahol minden asztalon egy hlzatra kttt szmtgp van, a hlzatra csatlakoztatott autkig, a hlzatba kapcsolt krnyezeti rzkelkig, a bolygkzi internetig - ahogy ezekbl is ltszik -, a szmtgp-hlzatok lnyegben mindentt jelen vannak, s olyan j, izgalmas alkalmazsokat fejlesztenek, amelyek mg jobban kiterjesztik a mai hlzatok llal elrt terleteket. Ez a knyv korszer bevezets a szmtgphlzatok tudomnynak dinamikusan vltoz vilgba, bemutatja az alapelveket s a gyakorlati problmkat, gy az olvas nemcsak a ma, de a jv hlzatait is meg fogja rteni. Az I. fejezet ttekinti a szmtgp-hlzatokat s az internetet. A clunk itt az, hogy tfog kpet alkossunk, s lssuk a ftl az erdt. Ebben a bevezet fejezetben sok terletet rintnk, s anlkl trgyaljuk a szmtgp-hlzatok egyes rszeit, hogy tlzottan belemennnk a rszletekbe. Ez a fejezet fekteti le a knyv tovbbi rszeinek alapjait. Ebben a fejezetben az albbiak szerint strukturljuk a szmtgp-hlzatok ttekintst. Nhny alapterminolgia s koncepci bemutatsa utn elszr megvizsgljuk a hlzatokat felpt alapvet hardver- s szoftverelemeket. A hlzatok kls szleivel fogjuk kezdeni, megnzzk a vgrendszereket (end systern) s a hlzati alkalmazsokat. Ezutn felfedezzk a szmtgpes hlzatok magjt, megvizsglva az adatokat tovbbt adatkapcsolatokat (link) s kapcsolkat (switch) ppgy, mint a hozzfrsi hlzatokat s a fizikai tviteli kzegeket, amelyek a vgrendszereket a hlzathoz csatlakoztatjk. Meg tudjuk, hogy az internet a hlzatok hlzata, s azt is, hogy ezek a hlzatok hogyan csatlakoznak egymshoz. Miutn befejeztk a szmtgp-hlzatok szleirl s magjrl szl ttekintst, a fejezet msodik rszben tgabb s elvontabb megkzeltsbl vizsgldunk. Megvizsgljuk a ksleltetseket, a vesztesgeket s az tbocstkpessget egy szmtgp-hlzatban, s olyan egyszer mennyisgi modelleket adunk meg a vgpontok kztti tbocstkpessgre s a ksleltetsre, amelyek szmtsba veszik az tviteli, a terjedsi s a sorbanllsi ksleltetst is. Ezutn bemutatunk nhny olyan fontos, a szmtgp-hlzati architektrval kapcsolatos alapelvei, mint a protokoll rtegek s a szolglati modell. Azt is meg tudjuk, hogy a szmtgp-hlzatok sebezhetk szmos klnfle tmadsi formval szemben; megismerjk ezeket a tmadsokat, s ttekintjk, hogyan tehetjk a szmt gphlzatokat mg biztonsgosabb. Vgl a fejezetet a szmtgp-hlzatok rvid
ELSZ
ELSZ
1.1.
Mi az az internet?
Ebben a knyvben a nyilvnos internetet, egy specilis szmtgp-hlzatot mint legfontosabb eszkzt hasznljuk arra, hogy megtrgyaljuk a szmtgpes hlzatokat s azok protokolljait. Szeretnnk megadni az internet egymondatos defincijt, egy olyan meghatrozst, amelyet az ember megjegyezhet magnak, s megoszthatja a csaldjval, bartaival. m az internet sajnos nagyon sszetett, llandan vltoznak mind a hardver- s szoftversszetevi, mind pedig az ltala nyjtott szolgltatsok. gy ahelyett, hogy egy egymondatos meghatrozst adnnk, sokkal inkbb egy ler megkzeltsbl vizsgljuk meg. Ezt sokflekppen megtehetjk. Az egyik mdszer az, hogy lerjuk az internet alkotrszeit, az alap hardver- s szoftversszetevket, amelyekbl az internet felpl. A msik mdszer pedig az, hogy az internetet egy, az elosztott alkalmazsok szmra szolgltatsokat nyjt hlzati infrastruktraknt rjuk le. Kezdjk az alkotrszek ismertetsvel, amelyet az 1.1. bra szemlltet.
1.1.1. Alkotrszek
Az internet egy olyan szmtgp-hlzat, amely szmtstechnikai eszkzk milliit kti ssze az egsz vilgon. Nemrg mg ezek a szmtstechnikai eszkzk elssorban asztali szmtgpek, Linux-munkallomsok s n. szerverek voltak, amelyek weblapokat s elektronikus leveleket troltak s tettek elrhetv. Manapsg azonban egyre tbb, nem hagyomnyos vgrendszert kapcsolnak az internethez, mint amilyenek pldul a kzi sz mtgpek (PDA-k), a tv-k, a hordozhat szmtgpek, a mobiltelefonok, a webkamerk, az autk, a krnyezeti rzkel eszkzk, a kpkeretek, valamint az otthoni elektromos s biztonsgi rendszerek. Csakugyan, a szmtgp-hlzat kifejezs kezd kiss rgiesnek hangzani, figyelembe vve a sok, nem hagyomnyos eszkzt, amelyet az internetre ktnek. Az internetzsargonban ezeket hosztoknak (hosts) vagy vgrendszereknek (end systems) nevezik. 2006 jliusban tbb mint 400 milli vgrendszer hasznlta az internetet, s ez a szm gyorsan nvekszik [1SC 2007]. A vgrendszereket kommunikcis adatkapcsolatok (communication link) s cso magkapcsolk (packet switch) hlzata kti ssze. Az 1.2. alfejezetben ltni fogjuk, hogy sokfle kommunikcis adatkapcsolat ltezik, amelyek klnfle fizikai kzegekbl plnek fel, mint pldul a koaxilis kbel, a rzvezetk, a fnyvezet szl s a rdispektrum. Klnbz sszekttetsek klnbz sebessggel kpesek adatot tovbbtani, ez az sszekttets tviteli sebessge (transmission rate), amelyet bit/s-ban mrnk. Amikor az egyik vgrendszer adatot szeretne kldeni egy msiknak, a kld vgrendszer felda rabolja, szegmentlja az adatot, s minden darabhoz fejrszbjtokat ad hozz. Az gy lt rehozott informcicsomagokat a hlzati zsargonban csomagoknak (packet) nevezik. A csomagokat ezutn elkldik a hlzaton keresztl a cl vgrendszernek, ahol a csomagokat sszerakjk, s visszall az eredeti adat. Egy csomagkapcsol valamelyik bejv kommunikcis adatkapcsolatn megkap egy csomagot, majd tovbbtja azt az egyik kimen adatkapcsolatn. Sokfele csomagkapcsol ltezik, de ma az internet esetben ezek fleg tvlasztk
ELSZ
(router) s adatkapcsolati rtegben mkd kapcsolk (link-layer switch). Mindkt tpus adatokat tovbbt a vgcl fel. Az tvlasztkat rszletesen a 4. fejezetben, az adatkapcsolati rtegben mkd kapcsolkat pedig az 5. fejezetben vizsgljuk meg. A kommunikcis adatkapcsolatok s csomagkapcsolk sorozatt, amelyen a csomag thalad a kld vgrendszertl a fogad vg-
Mobiltelefon hlzat
Otthoni hlzat
Vllalati hlzat
Jells:
%
HoSZt
*5T
Bzislloms telefon MobilMobiltelefontorony
rendszerig, a hlzaton keresztli tvonalnak (route, path) nevezzk. Az els, az 1970-es vekben ksztett csomagkapcsolt hlzatok a mai internet legrgebbi sei. Az interneten thalad forgalom pontos nagysgt nehz megbecslni [Odylsko 2003], de az egyik internetszolgltat (az AOL) 2005-ben azt jelentette, hogy a hlzatukra 250 Gigabit/s-os forgalom rkezik [Gill 2005). A PriMetrica [PriMetrica 2007] becslse szerint 2006-ban a kzszolgltatk 5 Terabit/s-os nemzetkzi kapacitst hasznltak, s a svszlessg-fel hasznls krlbell ktvente megduplzdik. A csomagkapcsolt hlzatok (amelyek csomagokat szlltanak) sok tekintetben hasonltanak az autplyk, utak s csompontok (jrmveket tovbbt) szlltsi hlzataira. Tekintsnk pldul egy gyrat, amelynek nagy mennyisg rut kell elszlltania egy tbb ezer kilomterre lv raktrba. A gyrban az rut kisebb rszekre osztjk, s felrakodjk egy teheraut-flottra. Minden teheraut a tbbitl fggetlenl utazik keresztl az autplyk, utak s csompontok hlzatn a clraktrhoz. A raktrban a rakomnyt hozzrakjk a tbbi rakomnyhoz, ami ugyanazzal a szlltmnnyal rkezett. Teht a csomagok sok szempontbl hasonlak a teherautkhoz, a kommunikcis adatkapcsolatok az aut plykhoz s utakhoz, a csomagkapcsolk a kzlekedsi csompontokhoz s a vgrend szerek az pletekhez. ppgy, ahogy egy teheraut thalad a kzthlzat egy tvonaln, egy csomag is thalad a szmtgp-hlzat egy tvonaln. A vgrendszerek internetszolgltatkon (Internet Service Provider, ISP) keresztl rik el az internetet, amelyek lehetnek otthoni (lakhelyi) szolgltatk, mint amilyen az AOL vagy a helyi kbel- vagy telefontrsasgok, lehetnek vllalati szolgltatk, tovbb egyetemi szolgltatk, illetve olyan szolgltatk, mint a TMobile, amely vezetk nlkli hozzfrst biztost repltereken, szllodkban, kvzkban s ms nyilvnos helyeken. Minden szolgltat nmagban egy csomagkapcsolkbl s kommunikcis adatkapcsolatokbl ll hlzat. Az internetszolgltatk rendkvl sokfle hlzati hozzfrst knlnak a vg rendszerek szmra, ilyen az 56 kb/s-os betrcsz modemes elrs, az otthoni szles sv hozzfrs, mint pldul a kbelmodemes vagy a DSL-elrs, a nagysebessg helyi hlzati hozzfrs, valamint a vezetk nlkli hozzfrs. Az ISP-k tartalomszolgltatknak is nyjtanak internetszolgltatst, a webhelyeket kzvetlenl az internethez kapcsolva. Ahhoz, hogy az internetet hasznlk kztti kommunikci ltrejhessen, s hogy az internetes tartalmat a vilgon brhol elrhessk, az alacsonyabb szint szolgltatkat olyan or szgos s nemzetkzi, magasabb szint szolgltatkkal ktik ssze, mint amilyen az AT&T s a Sprint. Egy ilyen magasabb szint szolgltat nagysebessg tvlasztkbl ll, ame lyeket gyors fnyvezetszlas kbelek ktnek ssze. Minden ISP-hlzat, legyen az magas vagy alacsony szint, felgyelete a tbbitl fggetlenl trtnik, az IP protokollt hasznlja (lsd albb), s alkalmazkodik bizonyos elnevezsi s cmzsi szablyokhoz. A szolgltatkat s a kzttk lv sszekttetseket az 1.3. alfejezetben vizsgljuk meg kzelebbrl. A vgrendszerek, a csomagkapcsolk, s az internet ms rszei protokollokat hasznlnak, amelyek szablyozzk az informcikldst s fogadst az interneten. Az tvitelvezrl protokoll (Transmission Control Protocol, TCP) s az internetprotokoll (Internet Protocol, IP) az internet kt legfontosabb protokollja. Az
internetprotokoll meghatrozza az tvlasztk s a vgrendszerek kztt a kldtt s fogadott csomagok formtumt. Az internet alapvet protokolljait sszefoglal nven TCP/IP-nek nevezik. Kbben a bevezet fejezetben elkezdjk kzelebbrl megvizsglni a protokollokat, de ez csak a bevezets - a knyv nagy rsze szmtgp-hlzati protokollokkal foglalkozik! Mivel az internet szempontjbl fontosak a protokollok, fontos az is, hogy mindenki minden egyes protokoll ltben s a lefedett funkcikban egyetrtsen. Itt kerlnek a kpbe a szabvnyok. Az internetszabvnyokat az Internet F.ngineering Task Force (IETF) [IETF 2007] nev szervezet fejleszti. Az IETFszabvny dokumentumait RFC-k (Request Fr Comments, felkrs hozzszlsra) tartalmazzk. Az RFC-k kezdetben ltalnos hozz szls-krsek voltak (innen a nv) azrt, hogy olyan hlzat- s protokolltervezsi prob lmkat oldjanak meg, amelyek az internet eldjnl felmerltek. Az RFC-ket igyekeznek gy irni, hogy elg szakszerek s rszletesek legyenek. Olyan protokollokat hatroznak meg, mint a TCP, az IP, a HTTP (a web szmra) s az SMTP (az elektronikus levelek szmra). Kzel 5000 RFC van. Ms testletek is foglalkoznak a hlzati sszetevkre, fleg hlzati adatkapcsolatokra vonatkoz szabvnyok specifikcijval. Pldul az IEEE 802 LAN/MAN Szabvnyostsi Bizottsg (IEEE 802 LAN/MAN Standards Committee) [IEEE 802 2007] specifiklja az Ethernet- s a vezetk nlkli WiFi-szabvnyokat. A nyilvnos internet (azaz a hlzatok vilgmret hlzata, amelyet fentebb trgyaltunk) az a hlzat, amely alatt az emberek ltalban az internetet rtik. Van sok olyan magnhlzat is, pldul szmos vllalati s kormnyzati hlzat, amelyekben a hosztok nem cserlhetnek zeneteket a magnhlzaton kvli hosztokkal (kivve, ha az zenetek egy n. tzfalon keresztl haladnak t, amely korltozza a hlzatba s a hlzatbl rkez csomagok ramlst). Ezeket a magnhlzatokat gyakran bels hlzatoknak (intranet) nevezzk, mert ugyanolyan hosztokat, vlasztkat, adatkapcsolatokat s protokollokat hasznlnak, mint a nyilvnos internet.
1.1.2. Szolgltatsok
Az elz lers az internet sok alkotelemt azonostotta, de egy teljesen ms szemszgbl is lerhatjuk az internetet - azaz gy, mint egy olyan infrastruktrt, amely alkalmazsoknak nyjt szolgltatsokat. Ezen alkalmazsok kztt szerepel az elektronikus levelezs, a webbngszs, az azonnali zenetklds, az IPhlzaton keresztl trtn hangtvitel (Voice-over-IP, VoIP), az internetrdi, a videofolyamok, az elosztott jtkok, az egyenrang felek kztti (peer-to-peer, P2P) fjl megoszts, az internetes televzi, a tvoli be jelentkezs s mg sok ms dolog. Az alkalmazsokat elosztott alkalmazsoknak (distributed applications) nevezik, mivel tbb, egymssal adatot cserl vgrendszert vonnak be a mkdskbe. Fontos, hogy az internetes szolgltatsok a vgrendszereken futnak, nem pedig a hlzat belsejben lv csomagkapcsolkon. Ahogy ez majd rthetv is vlik, amint elrehaladunk a knyvben, annak ellenre, hogy a csomagkapcsolk lehetv teszik a vgrendszerek kztti adatcsert, nem trdnek az alkalmazssal, amely az adat forrsa vagy nyelje. Vizsgljuk meg egy kicsit jobban, mit rtnk olyan infrastruktra alatt, amely alkalmazsoknak nyjt szolgltatsokat. E clbl tegyk fel, hogy van egy
rdekes, j tletnk, egy elosztott internetes alkalmazs, amely az emberisg risi hasznra vlhat, vagy amely egyszeren gazdagg s hress tehet bennnket. Hogyan ltnnk neki az tlet megvalstshoz, azaz egy internetes alkalmazs ltrehozshoz? Mivel az alkalmazsok a vgrendszereken futnak, neknk is olyan szoftvereket kell rnunk, amelyek a vgrendszereken futnak. Ezeket a szoftvereket megrhatjuk pldul Java, C vagy C++ nyelven, s mivel egy elosztott internetes alkalmazst runk, a klnbz vgrendszereken fut programoknak adatokat kell kldenik egymsnak. gy el is jutunk egy kzponti krdsig, amely az internet egy alternatv lershoz vezet, miszerint az internet egy platform az alkalmazsok szmra. Hogyan utastja az egyik vgrendszeren fut szoftver az internetet, hogy kzbestse az adatot egy msik vgrendszeren fut msik szoftvernek? Az internethez csatlakoztatott vgrendszerek egy alkalmazi programinterfszt (Application Programming Interface, API) biztostanak, amely meghatrozza, hogy egy vgrendszeren fut szoftver hogyan kri meg az internet infrastruktrt arra, hogy eljuttasson valamilyen adatot egy bizonyos clszoftverhez, amely egy msik vgrendszeren fut. Az Internet API olyan elrsok kszlete, amelyeket a kld szoftvernek kvetnie kell, hogy az internet eljuttassa az adatot a clszoftverhez. Az Internet API-t rszletesen a 2. fejezetben trgyaljuk. Most vzoljunk fel egy egyszer analgit, amelyet gyakran fogunk hasznlni ebben a knyvben. Tegyk fel, hogy Alice a postai szolgltatst hasznlva levelet akar kldeni Bobnak. Persze Alice nem rhatja meg a levelet (adatot), s dobhatja ki csak gy az ablakon. Ahhoz, hogy a postt hasznlhassa, Alice-nek bele kell raknia a levelet egy bortkba, a bortk kzpre r kell rnia Bob teljes nevt s cmt, irnytszmt, le kell zrnia a bortkot, r kell ragasztania egy blyeget a jobb fels sarkba, s vgl be kell dobnia a bortkot egy postaldba. gy a postnak van egy sajt postaszolglati API-ja, szablyok egy halmaza, amelyet Alice-nek kvetnie kell, hogy a posta kzbesthesse a levelt Bobnak. Hasonlkppen az internetnek is van egy API-ja, amelyet a kld szoftvernek kvetnie kell, hogy az internet kzbesthesse az adatokat a clszoftvernek. A postaszolglat termszetesen tbb szolgltatst is knl az gyfelei szmra, mint pldul az expressz kzbests, rtests az tvtelrl, a hagyomnyos postai szolgltats s mg sok egyb. Ehhez hasonlan az internet is tbbfle szolgltatst nyjt az alkalmazsainak. Amikor egy internetes alkalmazst fejlesztnk, neknk is vlasztani kell egyet az internet szolgltatsai kzl. Az internet szolgltatsait a 2. fejezetben rjuk le, a 3. fejezet ben pedig arra trnk ki, hogyan biztostja az internet ezeket. Az internetnek ez a msodik - azaz az alkalmazsoknak szolgltatsokat nyjt infrastruktraknt trtn lersa fontos meghatrozs. Az internet alkotrszeinek fejldst egyre inkbb az j alkalmazsok ignyei hatrozzk meg. Fontos teht szben tartani, hogy az internet egy olyan infrastruktra, ahol folyton j alkalmazsokat tallnak fel s lltanak hadrendbe. ppen most adtunk kt defincit arra, hogy mi az az internet. Az egyiket a hardver- s szoftversszetevk szempontjbl, a msikat az alkalmazsoknak szolgltatsokat nyjt infrastruktra szempontjbl. De taln mg mindig zavaros lehet az internet mibenlte. Mi az a csomagkapcsols, a TCP/IP s az API? Mik azok az tvlasztk? Milyen kommunikcis adat- kapcsolatok vannak az interneten? Mik azok az elosztott alkalmazsok? Hogyan tud egy ke nyrpirt vagy egy
idjrs-rzkel az internethez kapcsoldni? Ha ezt nyomasztan soknak rezzk, ne aggdjunk - a knyv clja az, hogy bemutassa mind az internet alkotelemeit, mind az alapelveket, amelyek meghatrozzk, hogyan s mirt mkdik. A kvetkez szakaszokban s fejezetekben megmagyarzzuk ezeket a fontos szakkifejezseket s krdseket.
1.1.3. Mi a protokoll?
Most, hogy egy kicsit mr rezzk, mi is lehel az internet, tekintsnk egy fontos, a szmtgp-hlzatokkal kapcsolatban gyakran elfordul szt: a protokollt. Mi az a protokoll? Mit csinl egy protokoll? Hogyan ismernnk fel, ha tallkoznnk eggyel?
tipikus zenetvltst mutat be. Az emberi protokoll (a j modor legalbbis) megkveteli, hogy az ember elszr kszn (az els Szia" az 1.2. brn), ezzel kapcsolatot kezdemnyezve egy msik emberrel. A Szia-ra adott vlasz rendszerint szintn Szia lesz. rtelemszeren az ember ezt a bartsgos Szia vlaszt gy tekinti, mint jelet arra, hogy folytathatja, s meg krdezheti az idt. Az els Szia-ra adott eltr vlasz (mint pldul Ne zavarj! vagy Nem beszlek magyarul, vagy esetleg egy olyan, amit ki sem lehet nyomtatni) azt jelezheti, hogy a msik fl nem akar, vagy nem tud kommuniklni. Ebben az esetben az emberi protokoll azt diktlja, hogy ne krdezzk meg, mennyi az id. Nha az ember egyltaln nem kap vlaszt a krdsre, s ebben az esetben jellemzen nem prblkozik tovbb a krdsekkel. Vegyk szre, hogy az emberi protokollban
meghatrozott zenetek vannak, amelyeket kldnk, s a megkapott vlaszzenetekre vagy ms esemnyekre (pldul nem jtt vlasz egy bizonyos idn bell) reaglva meghatrozott lpseket tesznk. Teht a kldtt s kapott
zenetek, s az ezek kldsekor, fogadsakor vagy ms esemnyek bekvetkezsekor tett lpsek kzponti szerepet jtszanak az emberi protokollban. Ha az emberek klnbz protokollt hasznlnak (pldul ha az egyik ember j modor, a msik nem, vagy ha az egyik rti az id fogalmt, a msik pe dig nem), akkor a protokollok nem mkdnek egytt, s semmi hasznlhat nem fog kislni a dologbl. Ugyanez igaz a hlzatoknl is - ahhoz, hogy egy feladatot teljestsnk, kett (vagy tbb), ugyanolyan protokollt hasznl kommunikl entitsra van szksg. Kpzeljnk el egy msik emberi hasonlatot. Tegyk fel, hogy egy egyetemi eladson lnk (pldul egy szmtgp-hlzatok rn!). A tanr folyton csak protokollokrl beszl, s mi mr elkavarodtunk. A tanr megll, hogy megkrdezze: Van valakinek krdse? (egy zenet, amely azokhoz a dikokhoz jut el, akik ppen nem alszanak). Felemeljk a kezn-
10
1. A SZMTGP-HLZATOK S AZ ISiTF.RNIT
kt (ezzel egyrtelm zenetet kldve a tanrnak). A tanr ezt egy mosollyal nyugtzza, mikzben azt mondja: Igen? (egy olyan kldtt zenet, amely felbtort arra, hogy feltegyk a krdsnket - a tanrok imdjk, ha krdseket tesznek fel nekik), majd ezutn feltesszk a krdst (azaz elkldjk az zenetnket a tanrnak). A tanr hallja a krdst (megkapja a krdszenetet), s vlaszol (elkldi neknk a vlaszt). Azt ltjuk jra, hogy az zenetek kldse, vtele, valamint a kldsnl s a fogadsnl megtett szoksos lpsek halmaza nagyon fontos rszei ennek a krds-vlasz protokollnak.
Hlzati protokollok
Egy hlzati protokoll hasonl egy emberi protokollhoz, azzal a klnbsggel, hogy az zeneteket vlt s cselekv entitsok valamilyen eszkz (pldul szmtgp, PDA, mobiltelefon, tvlaszt, vagy valamilyen ms hlzatos eszkz) hardver- vagy szoftversszetevi. Az interneten foly minden tevkenysget, amelyben kett vagy tbb, egymssal kommunikl entits vesz rszt, egy protokoll irnyt. Pldul kt fizikailag sszekttt szmtgp hlzati csatolkrtyinak hardverben implementlt protokolljai szablyoz zk a kt hlzati csatolkrtya kztti vezetken halad bitek ramlst; a vgrend szerekben torldskezel protokollok szabjk meg a kld s a fogad kztti csomagsebessget; az tvlasztkban protokollok hatrozzk meg a csomag tvonalt a forrstl a clig. A protokollok mindentt jelen vannak az interneten, kvetkezskppen ez a knyv nagyrszt a szmtgp-hlzati protokollokkal foglalkozik. Egy olyan hlzati protokoll pldjaknt, amelyet az olvas taln mr ismer, gondoljuk vgig, mi trtnik akkor, amikor lekrnk valamit egy webkiszolgltl (webszervertl), azaz berjuk egy weblap URL-jt a bngsznkbe. A forgatknyvet az 1.2. bra jobb oldaln lthatjuk. Elszr a szmtgp egy sszekttets-krst kld a webkiszolglnak, majd vr a vlaszra. A webkiszolgl valamikor megkapja ezt a sszekttets-krst tar talmaz zenetet, s visszakld egy sszekttets-vlasz zenetet. Ezt pozitv nyugtaknt rtelmezve a szmtgpnk lekrheti a webdokumentumot, elkldve a webkiszolgltl lekrni kvnt weboldal cmt egy GET zenetben. Vgl a webkiszolgl elkldi a web- oldalt (egy fjlt) a szmtgpnknek. Ltva az elz emberi s hlzati pldkat, az zenetcsere s az zenetek kldsekor s fogadsakor tett lpsek a protokoll meghatrozsnak kulcselemei:
Egy protokoll meghatrozza a kl vagy tbb kommunikl entits kztt tadott adatok formtumt s sorrendjt, valamint az zenetek kldsekor s/vagy fogadsakor vagy ms esemny bekvetkezsekor megtett lpseket.
Az internet s a szmtgpes hlzatok ltalban szles krben hasznlnak protokollokat. Klnbz kommunikcis feladatok megoldshoz klnbz protokollokat alkalmaznak. Ahogy haladunk a knyvben, ltni fogjuk, hogy nhny protokoll egyszer, kzenfekv, mg msok sszetettek, s mly tgondolst ignyelnek. Tkletesen kiismerni magunkat a szmtgp-hlzatok terletn
1.1. Ml AZ AZ INTERNET?
11
A hlzat szle
Az elz rszben az internet s a hlzati protokollok nagyvonal ttekintst adtuk. Most egy kicsit mlyebbre sunk a szmtgp-hlzatok (s rszben az internet) alkotrszeibe. Ezt a rszt a hlzat szlnl kezdjk, megvizsgljuk azokat az sszetevit, amelyeket a legjobban ismernk - ezek a szmtgpek, PDA-k, mobiltelefonok s ms, nap mint nap hasznlt eszkzk. A kvetkez rszben egy kicsit elmozdulunk a hlzatok szltl a hlzat kzepe (magja) fel, s megvizsgljuk a szmtgp-hlzatok kapcsolsi mdjait s tvlasztst. Emlkezznk vissza az elz rszben lertakra, hogy a hlzati zsargonban az internethez kapcsolt szmtgpeket s egyb eszkzket vgrendszereknek nevezzk. Azri nevezik ket vgrendszereknek, mert az internet peremn helyezkednek el, mint azt az 1.3. bra is mutatja. Az internet vgrendszerei kztt tallunk asztali szmtgpeket (pldul asztali PC-k, Mac s Linux gpek), szervereket (pldul web- s e-mail szerverek) s hordozhat szmtgpeket (pldul laptopok, PDA-k s vezetk nlkli internetelrssel rendelkez telefonok). Radsul egyre tbb alternatv eszkzt csatlakoztatnak az internethez vgrendszerknt (lsd az Egy kis trtnelem cm rszt).
gy kis trtnekig Az internetes vgrendszerek szdt sokasga Nem olyan regen az internethez csatlakoztatott vgrendszerek elssorban olyan hagyomnyos szmtgpek voltak, mint pldul az asztali szmtgpek s a nagyteljestmny szerverek. Az 1990-es vek vgtl kezdve napjainkig rengeteg, s egyre tbbfle rdekes eszkzt csatlakoztatnak az internethez. Ezeknek az eszkzknek kzs tulajdonsga, hogy digitlis adatot szksges kldenik ms eszkzknek s digitlis adatot kell fogadniuk ms eszkzktl. Mivel az internet mindentt jelen van jl definilt (szabvnyostott) protokolljaival s mivel internet-kompatibilis hardvereszkzk llnak rendelkezsre, kzenfekv ezeket az eszkzket az internetes technika segtsgvel sszekapcsolni. gy tnik, hogy nhny ilyen eszkzt csak a vicc kedvrt ksztenek. Egy asztali, IP-n keresztl kommunikl kpkeret [Ceiva 2007] digitlis kpeket tlt le egy tvoli szerverrl (kiszolglrl), s egy hagyomnyos kpkerethez hasonl eszkzn jelenti meg; egy internetes kenyrpirt letlti a meteorolgiai informcikat egy szerverrl, majd rsti az aznapi elrejelzs (pldul napos, helyenknt felhs) kpt a reggeli pirtsunkra [BBC 2001). Ms eszkzk hasznos informcit szolgltatnak - webkamerk a jelenlegi forgalmi helyzetet s az idjrsi krlmnyeket mutatjk, vagy valamilyen, szmunkra rdekes ltnivalt figyelnek; az internethez csatlakoztatott hztartsi kszlkek - kztk mosgpek, htk s tzhelyek [Internet Home Alliance 2007] - egy webbngsz interfszen keresztl tvolrl felgyelhetk s vezrelhetk. azt Az IP-kpes hogy mobiltelefonok a tenyernkbe varzsoljk a webet, s az a elektronikus levelezst s az zenetkldst. A hlzati rzkel (szenzor) rendszerek egy j osztlya igri, forradalmastja krnyeze tnk megfigyelsnek mdjt krnyezettel val kapcsolatunkat. A fizikai krnyezetbe gya zott hlzati szenzorok lehetv teszik az pletek, hidak, folytorkolatok, a szeizmikus aktivits, valamint az llatvilg lhelyeinek s az atmoszfra als rtegeinek megfigyelst [CENS 2007, Cuiler 2004, CASA 2007]. Az orvosi szenzorok is beltethetk s hlzatba kthetk [Schwiebert 2001]. Az
12
1. A SZMTGP-HLZATOK S AZ ISiTF.RNIT
rzkelt adat vals idben elrhetv vlik a tvoli felhasznlk szmra. Egy brmilyen trgyra rersthet RFID-cmke vagy kicsi, begyazott szenzor is szolgltathat informcit a trgyrl az interneten, s ez elvezet a mindenfle dolgok internethez [ITU 2005].
1.1. Ml AZ AZ INTERNET?
13
Mobiltelefon hlzat
r>cV
Otthoni hlzat
Vllalati hlzat
14
1. A szmtgp-hlzatok s az in ternet
A vgrendszereket gyakran kosztoknak (gazdagpeknek) nevezzk, mert k a gazdi az olyan alkalmazsoknak (azaz k futtatjk az olyan alkalmazsokat), mint a webbngsz, webszerver, e-mail kliens- vagy e-mail szerverprogram. A knyvben a hoszt s a vgrendszer kifejezseket felvltva fogjuk hasznlni, azaz a hoszt = vgrendszer. A hosztokat nha tovbb osztjk kt kategriba: kliensek (gyfelek) s szerverek (kiszolglk). A htkznapi rtelemben a kliensek ltalban asztali PC-k, PDA-k stb., mg a szerverek ltalban nagyobb teljestmny szmtgpek, amelyek weboldalakat trolnak, s ezekhez hozzfrst biztostanak, videofolyamot tesznek elrhetv, elektronikus leveleket tovbbtanak stb.
15
Az 1.4. bra klnfle hozzfrsi adatkapcsolatokat mutat be a vgrendszertl a hlzat peremn lv tvlaszthoz. A hozzfrsi hlzatokat nagyjbl hrom csoportra oszthatjuk:
16
1. A szmtgp-hlzatok s az in ternet
Mobiltelefonhlzat
Otthoni hlzat
Vllalati hlzat
17
. Otthoni (lakhelyi) hozzfrs, amely az otthoni vgrendszereket csatlakoztatja a hlzathoz. o Vllalati hozzfrs, amely vllalatok s oktatsi intzmnyek vgrendszereit kapcsolja a hlzathoz. o Vezetk nlkli hozzfrs, amely ltalban hordozhat vgrendszereket kapcsol a hlzathoz. Ezek a kategrik nem merevek - pldul nhny vllalati vgrendszer olyan hozzfrsi technikt is hasznlhat, amelyet mi az otthoni hozzfrsekhez sorolunk be, s fordtva. A kvetkez lersok ltalnos esetekre vonatkoznak.
Otthoni hozzfrs
Az otthoni (lakhelyi) hozzfrs arra utal, hogy az otthoni vgrendszert (egy PC vagy egy otthoni hlzat, lsd lentebb) hozzkapcsoljuk egy a hlzat peremn lv tvlaszthoz. Az otthoni hozzfrsek egyik formja a betrcsz modem (dial-up modem) egy hagyomnyos, analg telefonvonallal egy otthoni internetszolgltat (mint pldul az America Online) fel. Az otthoni modem a PC digitlis kimenett analgg alaktja t, hogy azt az analg telefonhlzaton keresztl el lehessen kldeni. Ez az analg telefonvonal egy rz bl kszli sodrott rpr, s ugyanezt a telefonvonalat hasznljuk hagyomnyos telefon- hivsok lebonyoltsnl. (A sodrott rprt ebben a rszben ksbb trgyaljuk.) Az analg telefonvonal msik vegn a szolgltatnl lv modem visszaalaktja a jelet digitliss, ami a szolgltat tvlasztjnak bemenetl szolgl. gy a hozzfrsi hlzat egyszeren egy modempr s egy kt pont kztti betrcsz telefonvonal. A mai modemek sebessge 56 kb/s-os betrcszs hozzfrst tesz lehetv. A gyenge minsg sodrott rpr vonal mi att azonban sok felhasznl tnylegesen csak 56 kb/s-nl jval kisebb sebessget rhet el. Sok otthoni felhasznl gondolja gy, hogy az 56 kb/s-os elrs rettenetesen lass. Pldul egy hrom perces, MP3-formlum dal letltse 56 kb/s-os modemmel krlbell nyolc percet vesz ignybe. St, a betrcsz modemes elrs meggtolja a hagyomnyos telefonvonal hasznlatt - mikzben egy otthoni felhasznl betrcsz modemmel szrfl a weben, nem tud hagyomnyos telefonhvsokat fogadni vagy kezdemnyezni azon a telefonvonalon keresztl. Szerencsre az j szles sv hozzfrsi technikk nagyobb adatsebessget biztostanak az otthoni felhasznlknak olyan eszkzl nyjtva, amely le hetv teszi a felhasznlk szmra, hogy egyszerre hasznljk az internetet s beszljenek a telefonon. Kl gyakori szles sv otthoni hozzfrs ltezik: a digitlis elfizeti vonal (Digital Subscriber Line, DSL) [DSI. 2007] s a hibrid fny vezetszlas-koaxilis kbel (hybrid fiber-coaxial cable, HFC) fCable Labs 2007). 2006 mrciusa ta sok fejlett orszgban a hztartsok tbb mint 50 szzalka rendelkezik szles sv hozzfrssel, kztk Dl-Korea s Hongkong, ahol ez az arny tbb mint 80 szzalk. A szles sv hozzfrsek szma az Egyeslt llamokban s Knban a legmagasabb, mindkt orszg tbb mint 40 milli ilyen vonallal rendelkezik [Point Topic 2006]. 2006 mr ciustl az Egyeslt llamok s Kanada szles sv vonalainak krlbell 60 szzalka HFC, a fennmarad rsz pedig DSL. Az Egyeslt llamokon s Kanadn kvl a DSL az uralkod, fleg Eurpban, ahol sok orszgban tbb mint 90 szzalkban DSL-t hasznlnak.
18
1. A szmtgp-hlzatok s az in ternet
A DSI.-hozzfrseket jellemzen telefontrsasgok szolgltatjk (pldul a Verizon vagya Franc Telecom), nha fggetlen internetszolgltat partnerekkel. A DSL egy olyan jabb modemes technika, amely a mr meglv sodrott rpr telefonvonalakat hasznlja,
19
1. A SZMTGP-HLZATOK S AZ INTERNE!
s a koncepcit tekintve hasonl a betrcsz modemhez, m a felhasznl s a szolgltat kztti tvolsg korltozsval a DSL nagyobb sebessggel tud adatot kldeni s fogadni. Az adatsebessgek a kt irnyban ltalban aszimmetrikusak, azaz a szolgltattl a felhasznl fel nagyobb a sebessg, mint a felhasznltl a szolgltat tvlasztja fel. Az adatsebessgek aszimmetrija azt a meggyzdst tkrzi, hogy a felhasznlk - az adatokat az otthonukba hozva sokkal inkbb fogyaszti az informcinak, mint elllti. A DSL hrom klnbz frekvenciasvra osztja a felhasznl s a szolgltat kztti kommunikcis adatkapcsolatot: egy gyors letltsi csatornra az 50 kHz - 1 MHz svban, egy kzepes sebessg feltltsi csatornra a 4 kHz - 50 kHz svban, egy hagyomnyos telefoncsatornra a 0 - 4 kHz svban.
Ezrt tnik a DSL-adatkapcsolat gy, mintha hrom klnbz adatkapcsolatunk lenne, s gy egy telefonhvs s egy internetkapcsolat osztozhat a DSLkapcsolaton egyszerre. (Ezt a frekvenciaosztsos nyalbolst (frequency-division multiplexing) az 1.3.1. al fejezetben taglaljuk). A felhasznl szmra elrhet aktulis letltsi s feltltsi adatsebessg tbbek kztt az otthoni modem s az 1SP modemje kztti tvolsgtl, a sodrott rpr tmrjtl s a villamos interferencia nagysgtl fgg. A mrnkk a betrcsz modem mel ellenttben a DSL-t kifejezetten az otthoni s a szolgltat tvlasztja kztti rvid tvolsgra terveztk, ezltal lnyegesen nagyobb tviteli sebessget tve lehetv, mint a betrcsz modemes elrs esetben. A szolgltat modemjhez kzeli felhasznlk szmra klnbz tviteli sebessg adatkapcsolatok llnak rendelkezsre, rendszerint klnbz ron. Pldul a Verizon krlbell 768 kb/s s 1,5 Mb/s kztti letltsi sebessget, s 128 kb/s s 768 kb/s kztti feltltsi sebessget knl. Nhny orszgban szmos, mg gyorsabb DSL-technika is elterjedben van. A VDSL, a nagysebessg DSL (very-high speed DSL ) pldul lenygzen nagy, 12-55 Mb/s-os letltsi, s 1,6-20 Mb/s-os feltltsi sebessget biztost, s jelenleg Dl-Koreban s Japnban a legelterjedtebb [DSL 2007). Mg a DSL s a betrcsz modem hagyomnyos telefonvonalakat hasznl, a HFC hozzfrsi hlzatok a jelenlegi kbeltelevzi-hlzat kiterjesztsei. Egy hagyomnyos kbelhlzatban a lakhelyek fel az adatszrst egy kbel fejlloms vgzi koaxilis kbelek s erstk eloszthlzatn keresztl. Ahogy az 1.5. bra is mutatja, a fejllomst s a lakkrzetszint csompontokat fnyvezetszlas kbel kti ssze, ahonnan a hagyomnyos koakxilis kbelhlzat segtsgvel rik el a hzakat s laksokat. F.gy-egy lakkr zeti csompont jellemzen 500-5000 hztartst kpes elltni. A DSL-hez hasonlan a HFC esetn is szksg van klnleges modemekre, amelyeket kbelmodemeknek (cable modems) neveznk. A kbeles internetelrst szolgltat vllalatok gyfeleinek vagy vennik, vagy brelnik kell egy modemet. A kbelmodem ltalban egy kls eszkz, s az otthoni PC-hez egy Ethernetporton keresztl csatlakozik. (Az Ethernetet rszletekbe menen az 5. fejezetben trgyaljuk.) A kbelmodemek kt - egy feltltsi s egy letltsi - csatornra osztjk a HFC-hlzatot. Ahogyan a DSL esetben is, a letltsi csatorna szmra ltalban nagyobb tviteli sebessget biztostanak, mint a feltltsire. 1.3. bra. Vgrendszerek egyttmkdse A HF'C egyik fontos jellemzje, hogy ez egy osztott adatszr kzeg. Fleg azrt,
20
1. A SZMTGP-HLZATOK S AZ 1NTORNF.T
mert minden csomag, amit a fejlloms kld, mindegyik adatkapcsolaton keresztl minden hztartsba eljut a letltsi csatornn; s mert a hztartsok sszes kldtt csomagja a feltltsi csatornn fog haladni a fejlloms fel. Ezrt ha sok felhasznl egyszerre tlt
21
Fnyvezet csompont
kap- csolat teljes tviteli kapacitsa egyedl egy felhasznl, s nem kell osztozni senkivel. A kbeles elrs tmogati azzal rvelnek, hogy egy 22 1. A SZMTGP-HLZATOK S AZsszeren 1NTORNF.T mretezett HFC-hlzat nagyobb tviteli sebessget biztost, mint a DSL. A DSL s a HFC kztti harc a gyors otthoni hozzfrsekrt egyre nagyobb mreteket lt, klnsen Hszak-Amerikban. Vidken, ahol sem a DSL, sem a HFC nem elrhet, mholdas kapcsolat segtsgvel lehet a hztartsokat az internethez kapcsolni tbb mint 1 Mb/s-os sebessggel; ilyen mholdas szolgltatk a StarBand s a IIughesNet. A DSL, a HFC s a mholdas elrs egyik vonz tulajdonsga, hogy a szolgltats folyamatos; azaz a felhasznl bekapcsolva hagyhatja a szmtgpt, s folyamatosan kapcsolatban maradhat a szolgltatval, mikzben hagyomnyos telefonhvsokat bonyolt le.
Vllalati hozzfrs
A vllalatok s egyetemek terletn ltalban helyi hlzatot (local area network, LAN) hasznlnak arra, hogy a vgrendszereket a hlzat szln lv tvlaszthoz csatlakoztassk. Ahogyan az 5. fejezetben is ltni fogjuk, sokfle LAN-technika ltezik, azonban a vllalati hlzatok esetben jelenleg messze az Ethernet a legelterjedtebb hozzfrsi technika. A mai Ethernet-technika 100 Mb/s vagy 1 Gb/s (vagy akr 10 Gb/s) sebessget knl,
s a szmos vgrendszer sszektsre s a hlzat szln lv tvlaszthoz 1.2. A HLZAT SZLE 23 csatlakoztatsra sodrott rpr rzvezetket vagy koaxilis kbelt hasznl. A hlzat szln lv tvlaszt felels a helyi hlzaton kvlre kldtt csomagok irnytsrt. A HFC-hez hasonlan az Ethernet is hasznlhat osztott kzeget, gy a felhasznlk osztoznak a LAN tviteli sebessgn. Mostanban az osztott Ethernettechnika helyett inkbb kapcsolt Et- hernetet hasznlnak. A kapcsolt Ethernet csillagtopolgit alkalmaz, ahol a hosztokat kzvetlenl egy kapcsolhoz (switch) csatlakoztatjk, ezzel lehetv tve azt, hogy az sszes hoszt egyidejleg kldhessen s fogadhasson adatot a LAN teljes tviteli sebessg vel. Az osztott s a kapcsolt Ethernett rszletesen az 5. fejezetben ismerhetjk meg.
felhasznl szabadon mozoghat a konyha, a kert vagy ppen a hlszoba kztt. Egy DSL-modemet) kevesebb, mint 24 ilyen hlzat teljes ra (belertve a kbel1. vagy A SZMTGP-HLZATOK S AZ 1NTORNF.T 150 dollr.
Kbel fejlloms
Internet
Sodrott rpr
A legolcsbb s a leggyakrabban hasznlt vezetkes tviteli kzeg a rz sodrott rpr. A telefonhlzatokban mr tbb mint szz ve hasznljk. Valjban - a kzibeszlktl a helyi telefonkzpontig - a vezetkes kapcsolatok tbb mint 99 szzalka rz sodrott rprt hasznl. A legtbbnk mr ltott sodrott rprt otthon s a munkahelyen. A sodrott rpr kt, krlbell 1 mm vastag szigetelt rzvezetkbl ll, amelyek szablyos spirlalakban vannak elrendezve. A vezetkeket azrt sodorjk ssze, hogy cskkentsk a kzelben lv hasonl rprokbl rkez villamos zajokat. Egy kbelben jellemzen tbb prt ktegelnek
ssze gy, hogy egy vdburkolattal veszik ket krl. Egy vezetkpr egyetlen kommunikcis adatkapcsolatot jelent. Az rnykols nlkli sodrott rprt (unshielded twisted pair, UTP) gyakran hasznljk pleten belli szmtgp-hlzatoknl, azaz helyi hlzatoknl (LAN). Manapsg a sodrott rprt hasznl LAN-ok adattviteli sebessge 10 Mb/s s 1 Gb/s kztt van. Az elrhet tviteli sebessg a vezetk vastagsgtl s az ad s a vev kztti tvolsgtl fgg. Amikor a fnyvezetszlas technika 1980-ban megjelent, sokan brltk a sodrott rprat a viszonylag alacsony adatsebessge miatt. Nhnyan gy is reztk, hogy a fnyvezet- szlas technika teljesen fel fogja vltani a sodrott rprt, de a sodrott rpr nem adta fel olyan knnyen. Az olyan modern sodrottrprtechnikval, mint pldul az 5. kategrij UTP, 1 Gb/s tviteli sebessg is elrhet egszen szz mteres tvolsgig. Vgl a sodrott rpr lett az uralkod megolds a nagy sebessg helyi hlzatoknl. Ahogyan korbban is trgyaltuk, a sodrott rprt az otthoni internethozzfrseknl is gyakran alkalmazzk. Lttuk, hogy a betrcsz modemes technika sodrott rprral egszen 56 kb/s sebessg hozzfrst tesz lehetv. Azt is lttuk, hogy a DSL- (digitlis elfizeti vonal) technika az otthoni felhasznlknak 6 Mb/s-nl is gyorsabb internet-hozzfrst knl sodrott rpr segtsgvel (akkor, ha a felhasznlk kzel laknak a szolgltat modemjhez).
Koaxilis kbel
A sodrott rprhoz hasonlan a koaxilis kbel is kt rz vezetbl ll, de itt prhuzamos helyett koncentrikus elrendezsben. Az ilyen szerkezettel, klnleges szigetelssel s rnykolssal elltott koaxilis kbel nagy adatsebessgre kpes. A koaxilis kbel rendkvl gyakori a kbeltelevzis rendszereknl. Ahogyan korbban is lttuk, a kbeltelevzis rendszereket jabban kbelmodemekkel kapcsoljk ssze, hogy az otthoni felhasznlknak 1 Mb/s vagy nagyobb sebessg internet-hozzfrst biztostsanak. A kbeltelevzi s a kbeles internetelrs esetben az ad eltolja a digitlis jelet egy bizonyos frekvencia- svba, s a keletkez analg jelet az ad elkldi a vevnek vagy vevknek. A koaxilis kbel hasznlhat vezetkes osztott kzegknt (shared mdium). Klnsen azrt, mert szmos vgrendszer kapcsolhat kzvetlenl a kbelre, ahol minden egyes vgrendszer megkapja, amit az egyik elkld.
Fnyvezet szl
A fnyvezet szl egy vkony, hajlkony kzeg, amely fnyimpulzusokat vezet, s minden impulzus egy bitet kpvisel. Egyetlen fnyvezet szl is risi, tbb tz vagy tbb szz Gb/s-os adatsebessgre is kpes. Nem rzkeny az elektromgneses zavarokra, a jelcsillaptsa egszen 100 kilomterig nagyon kicsi, s nagyon nehz lehallgatni. Ezen jellemzk miatt lett a fnyvezet szl a kedvelt, nagy tvolsgokat thidal vezetkes tviteli kzeg, fleg tengerentli kapcsolatok esetn. Ma az Egyeslt llamokban s msutt is sok, nagy tvolsg telefonhlzat kizrlag fnyvezet szlakat hasznl. A fnyvezet szl az internet gerincben is gyakori ptelem. Az optikai eszkzk - pldul adk, vevk s kapcsolk - magas ra azonban akadlyozza az alkalmazsukat az olyan rvid tvolsg tvitelnl, mint a LAN vagy egy otthoni hozzfrs esetben a hztartsba trtn tvitel. A fnyvezetszlas vivk (Optical Carrier, OC) szabvny adatsebessgei 51,8 Mb/s-tl
39,8 Gb/s-ig terjednek; ezeket a specifikcikat gyakran OC-H-nek nevezik, ahol az adatkapcsolat sebessge n x 51,8 Mb/s. A ma hasznlatban lv szabvnyok kztt van az OC-1, OC-3, OC-12, OC-24, OC-48, OC-96, OC-192 s az OC-768. Az optikai hlzatokat klnbz szempontok alapjn taglal munkk: [IEC Optical 2007; Goralski 2001; Ramas- wami 1998; s Mukherjee 1997].
Mholdas rdicsatornk
Egy kommunikcis mhold kt vagy tbb fldi mikrohullm advevt kt ssze, amelyeket fldi llomsoknak hvunk. A mhold az adsokat az egyik frekvenciasvon veszi, egy ismtl segtsgvel helyrelltja a jelet, amelyet majd egy msik frekvencin elkldi. Kommunikcis clra ktfajta mholdat hasznlnak: geoszinkron (geostationary) mholdakat s alacsony rpplys (low-earth orbiting, LE) mholdakat. A geoszinkron mholdak mindig a Fld ugyanazon pontja fltt tartzkodnak. Ezt gy rikel, hogy a mholdat a Fld felszntl 36 000 kilomteres tvolsgban lltjk plyra. Ez a rendkvl nagy tvolsg a fldi llomstl a mholdig, majd vissza a Fld felsznig, jelents, 280 ms-os jelterjedsi ksleltetst okoz. Ennek ellenre az akr tbb szz Mb/s-os sebessggel mkd mholdas kapcsolatokat gyakran hasznljk a telefonhlzatokban, s az internet gerinchlzatban. Ahogyan az 1.2.2. alfejezetben is trgyaltuk, a mhol das kapcsolatokat egyre nvekv mrtkben hasznljk gyors otthoni hozzfrseknl is olyan helyeken, ahol a DSL vagy a kbeles internetelrs nem valsthat meg. A LE mholdakat a Fldhz sokkal kzelebb helyezik el, s nem maradnak tartsan a Fld egy pontja fltt. A Fld krl keringenek (ahogyan a Hold is), s kommuniklhatnak egymssal is, s a fldi llomsokkal is. Ahhoz, hogy folyamatosan biztostsk egy terlet lefedettsgt, sok mholdat kell Fld krli plyra lltani. Jelenleg sok, kis magassgban mkd kommunikcis rendszert fejlesztenek. A Lloyd cg mhold-konstellcikkal foglalkoz weboldala [Wood 2007] kommunikcis mhold-konstellcik rendszereirl szolgltat s gyjt
30
1. A SZMTGP-HLZATOK S AZ INTERNET
31
Mobiltelefon hlzat
Otthoni hlzat
Vllalati hlzat
32
1. A SZMTGP-HLZATOK S AZ INTERNET
Vonalkapcsols
Ez a knyv a szmtgp-hlzatokrl, az internetrl s a csomagkapcsolsrl szl, nem pedig a telefonhlzatokrl s a vonalkapcsolsrl. Fontos azonban megrtennk, mirt hasznljk az internet s ms szmtgp-hlzatok a csomagkapcsolst a hagyomnyosabb, telefonhlzatoknl hasznlt vonalkapcsolt technika helyett. Ezrt rviden ttekintjk a vonalkapcsolst is. Az 1.8. bra egy vonalkapcsolt hlzatot mutat be. Ebben a hlzatban a ngy vonalkapcsol kztt ngy adatkapcsolat van. Mindegyik adatkapcsolatnak n vonala van, gy mindegyik adatkapcsolat n szm egyidej sszekttetst tmogat. Minden hoszt (pldul PC-k s munkallomsok) kzvetlenl az egyik kapcsolhoz van csatlakoztatva. Amikor kt hoszt kommuniklni szeretne, a hlzat egy dediklt vgpontok kztti vagy vg-vg sszekttetst (end-to-end connection) pt fel kzttk. (Persze tbb mint kt eszkz kztti konferenciahvsok is lehetsgesek, de maradjunk az egyszerbb esetnl, s tegyk fel, hogy minden adatkapcsolatban most csak kt hoszt vesz rszt.) gy ahhoz, hogy az A hoszt zenetet kldjn a B hosztnak, a hlzatnak elszr le kell foglalnia egy-cgy vonalat mindkt adatkapcsolaton. Mivel minden adatkapcsolat n szm vonallal rendelkezik, a vg-vg sszekttets az ltala hasznlt minden egyes adatkapcsolat svszlessgnek 1/ rszt kapja az sszekttets idtartamra.
33
34
Vg-vg sszekttets A hoszt s B hoszt kztt, amely egy-egy vonalat" hasznl minden adatkapcsolatban
B hoszt
FDM
TDM
1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4
1.9. bra. FDM-nl minden vonal folyamatosan birtokolja a svszlessg egy rszt; TDM-nla
vonalak periodikusan az egsz svszlessget megkapjk rvid idszakokra (azaz idrsekre)
Csomagkapcsols
Az elosztott alkalmazsok zeneteket (messages) cserlnek a feladatuk vgrehajtsa kzben. Az zenetek brmit tartalmazhatnak, amit a protokoll tervezje akar. Vezrl funkcit lthatnak el (pldul a Szia zenetek az ismerkeds pldnkban), vagy olyan adatot tartalmazhatnak, mint pldul egy email zenet, egy JPEG-kp vagy egy MP3-hangfjl. A korszer szmtgphlzatokban a forrs a hossz zeneteket kisebb darabokra tr deli, amelyeket csomagoknak (packets) neveznk. A forrs s a cl kztt minden egyes csomag kommunikcis adatkapcsolatokon s csomagkapcsolkon (packet switches) keresztl halad. (A csomagkapcsolk kt legelterjedtebb tpusa az tvlaszt s az adat- kapcsolati rtegben mkd kapcsol.) A csomagokat minden kommunikcis adatkapcsolaton az adatkapcsolat teljes tviteli sebessgvel viszik t. A legtbb csomagkapcsol trol-s-tovbbt tpus tvitelt (store-and-forward trans- mission) hasznl az adatkapcsolatok bemenetnl. A trol-s-tovbbt azt jelenti, hogy a kapcsolnak elbb meg kell kapnia az egsz csomagot, mieltt a csomag els bitjt elkezden kldeni a kifel men adatkapcsolaton. gy a trol-stovbbt tpus kapcsolk miatt megjelenik a trols s tovbbts miatti ksleltets. Gondoljuk t, mennyi idt vesz ignybe egy L bit hosszsg csomag tvitele kt hoszt kztt csomagkapcsolt hlzaton keresztl. Tegyk fel, hogy a kt hoszt kztt Q szm adatkapcsolat van, s mindegyik R b/s sebessgre kpes. Tegyk fel azt is, hogy ez az egyetlen csomag a hlzaton. A cso magot elszr t kell kldeni az els, az A hoszttl kiindul adatkapcsolaton; ez L/R msodpercet vesz ignybe. Ezutn t kell kldeni a fennmarad Q - 1 adatkapcsolaton; azaz Q -
l-szer kell trolni s tovbbtani, minden alkalommal L/R trols s tovbbts miatti ksleltetssel. gy a teljes ksleltets QL/R.
Minden csomagkapcsolhoz tbb adatkapcsolat csatlakozik. A csomagkapcsol minden csatlakoztatott adatkapcsolathoz tartozik egy kimeneti puffer (amit kimen vrakozsi sornak [output queue] is hvunk), amely azokat a csomagokat trolja, amelyeket a kapcsol el akar kldeni azon az adatkapcsolaton. A kimeneti pufFerek kulcsszerepet jtszanak a csomagkapcsolsban. Ha egy bejv csomagot egy olyan adatkapcsolaton kell tovbbkldeni, amely pp egy msik csomag kldsvel van elfoglalva, akkor a bejv csomagnak vrnia kell a kimeneti pufferben. gy a trols s tovbbts miatti ksleltets mellett a csomagok sorbanllsi ksleltetst (queuing delay) is szenvednek. Ezek a ks leltetsek vltozhatnak, s a hlzat zsfoltsgtl fggenek. Mivel a puffer mrete vges, elfordulhat, hogy egy csomag akkor rkezik, amikor a puffer mr teltve van ms, kldsre vrakoz csomagokkal. Ebben az esetben csomagveszts (packet loss) trtnik - vagy a berkez csomagot, vagy valamelyik, a mr sorban vr csomagot eldobjk. A korbban ebben a rszben trgyalt ttermes hasonlathoz visszatrve, a sorbanllsi ksleltets hasonl ahhoz az idhz, amelyet a vendgl brjban kell vrnunk egy szabad asztalra. A csomagveszts hasonl ahhoz, amikor a pincr azt
mondja, hogy el kell hagynunk a helyisget, mert mr tl sok ember vr szabad asztalra a brban.
10 Mb/s Ethernet Statisztikus nyalbois
Jells:
Csriig
nincs ms felhasznl, aki csomagokat llt el, amelyeket az aktv felhasznl csomagjaival nylbl ni kellene. Ebben az esetben az aktv felhasznl adatai nak tvitele 1 msodpercen bell megtrtnik. A fenti pldk kt olyan esetet mutatnak be, amelyeknl a csomagkapcsols teljestmnye nagyobb a vonalkapcsolsnl. Kiemelik az adatkapcsolat tviteli sebessgnek tbb adatfolyam kztti ktfajta megosztsban rejl dnt klnbsget is. A vonal kapcsols az ignyre val tekintet nlkl elre lefoglalja az tviteli vonalat, amelyet ms akkor sem hasznlhat, ha ppen nincs r szksg. Ezzel szemben a csomagkapcsols igny szerint foglalja le a vonalat. A vonal tviteli kapacitst csomagonknt s csak azon felhasznlk kztt osztjk fel, akik csomagokat szeretnnek tkldeni a hlzaton. Az ilyen igny sze rinti (s nem elre lefoglalt) erforrs-felosztst nha statisztikus nyalbolsnak (statistical multiplexing) is nevezik. Br a csomagkapcsols s a vonalkapcsols is elterjedt a mai tvkzlsi hlzatokban, a tendencia egyrtelmen a csomagkapcsols irnyba mutat. St, sok mai vonalkapcsolt telefonhlzat is lassan a csomagkapcsols fel mozdul el. Fleg telefonhlzatok hasznlnak gyakran csomagkapcsolst egy telefonhvs drga, tengerentli rszhez.
A vgpontok kztti tvlaszts folyamata hasonl egy autvezethz, aki nem hasznl trkpet, ehelyett inkbb mindenhol megkrdezi a helyes irnyt. Tegyk fel pldul, hogy Joe Philadelphibl a floridai Orlandban lv Lakeside Drive 156-hoz szeretne autval eljutni. Joe elszr a kzeli benzinktig megy, s megkrdezi, hogyan jut el a floridai Orlandban lv Lakeside Drive 156-hoz. A benzinkutas kiveszi a cmbl, hogy Florida, s megmondja joe-nak, hogy a tbb llamot rint 195 South orszgton menjen, amelynek a bejrata pp a benzinkt mellett van. Azt is elmondja Joe-nak, hogy ha megrkezik Floridba, ott krdez zen meg valaki mst. Ezutn Joe addig megy az 1-95 South-on, amg a floridai Jacksonville-ig nem r, ahol egy msik benzinkutastl kr tbaigaztst. A benzinkutas kiveszi a cmbl, hogy Orlando, majd azt mondja joe-nak, hogy menjen tovbb az I-95-n Daytona Beach-ig, majd krdezzen meg valaki mst. Daytona Beach-ben egy msik benzinkutas kiveszi a cmbl, hogy Orlando, s azt mondja Joe-nak, hogy az I-4esen kzvetlenl Orlandba jut. Joe rmegy az I-4-esre, majd lekanyarodik az Orlando kijratnl. Odamegy egy msik benzin kutashoz, aki ezttal a Lakeside Drive rszt veszi ki a cmbl, majd elmondja Joe-nak, melyik ton kell mennie, hogy eljusson a l.akeside Drive-hoz. Amint Joe elri a Lakeside Drive-ot, megkrdez egy biciklis gyereket, hogyan juthat el az ti cljhoz. A gyerek kiveszi a cmbl azt, hogy 156, majd rmutat egy hzra, s Joe vgre elri az ti cljt. A fenti hasonlatban a benzinkutasok s a biciklis gyerek az tvlasztk megfeleli voltak. Az agyukban lv tovbbttbljukat az vek sorn sszegyjttt tapasztalatok alapjn lltottk be. Szeretn megnzni a vgpontok kztti tvonalat, amelyen a csomagok haladnak az interneten? Ezennel megmutatjuk a lehetsget: vgjon bele a Traceroute program hasznlatval, ltogasson el a http://www.traceroute.org oldalra. (A Traceroute-ot az 1.4. fejezetben trgyaljuk.)
gyakran 622 Mb/s, vagy nagyobb, de egy nagyobb 1. szint szolgltat 2,5-10 Gb/sos adat- kapcsolatokkal is rendelkezhet; kvetkezskppen az tvlasztiknak rendkvl gyorsan kell tudniuk tovbbtani a csomagokat. Az 1. szint szolgltatk jellemzi: kzvetlenl csatlakoznak az sszes tbbi 1. szint szolgltathoz, rengeteg 2. szint szolgltat s gyflhlzat csatlakozik hozzjuk, nemzetkzi szolgltatk.
hozzfrsi szolgltatk vannak. A dolgot tovbb bonyoltja, hogy nmelyik 1. szint szolgltat egyben 2. szint is (azaz vertiklisan sszevont), s ppgy rulja az internet-hozzfrst kzvetlenl a vgfelhasznlknak s a tartalomszolgltatknak, mint az alacsonyabb szint szolgltatknak. Ha kt szolgltat kzvetlen kapcsolatban van, egyms trsainak (peer) ne vezzk ket. Egy rdekes tanulmny [Subramanian 2007] azltal prblja meg mg pontosab ban meghatrozni az internet szintekre osztott szerkezett, hogy az internet topolgijt az gyfl-szolgltat s a partner-partner kapcsolatok vonatkozsaiban tanulmnyozza. Egy szolgltat hlzatn bell azokat a pontokat, amelyeken az ISP ms (akr alatta, fltte vagy a hierarchia ugyanazon szintjn lv) szolgltatkhoz kapcsoldik, jelenlti pontoknak (Points of Presence, POPs) nevezzk. Egy POP egyszeren egy tvlaszt vagy tvlasztk egy csoportja a szolgltat hlzatban, amelyhez a ms szolgltatkhoz tartoz, vagy a szolgltat gyfeleinek hlzatban lv tvlasztk csatlakozhatnak. Egy 1. szint szolgltat jellemzen sok jelenlti ponttal rendelkezik, amelyek sztszrtan he lyezkednek el az ISP hlzatnak klnbz fldrajzi helyein, s minden jelenlti ponthoz tbb gyfelhlzat s ms szolgltat csatlakozik. Ahhoz, hogy egy gyflhlzat kap csoldhasson egy szolgltat jelenlti pontjhoz, az gyfl ltalban egy nagysebessg adatkapcsolatot brel egy kvlll telekommunikcis szolgltattl, majd az egyik tvlasztjt kzvetlenl a szolgltat jelenlti pontjnl lv egyik tvlaszthoz kapcsolja. Tovbb, kt szolgltatnak tbb trscsatlakozsi pontja (peering poinl) lehet, ezltal tbb jelenltipont-pron keresztl kapcsoldhatnak egymshoz. sszefoglalva, az internet topolgija sszetett, tbb tucat 1. s 2. szint, valamint tbb ezer alacsonyabb szint szolgltatbl ll. A szolgltatk eltr mret terleteket fednek le, nmelyik tbb kontinensen s cenon vel l, msok pedig a vilg kis rgiira korltozdnak. Az alacsonyabb szint szolgltatk a magasabb szint szolgltatkhoz csatlakoznak, a magasabb szint szolgltatk pedig egymssal vannak kapcsolatban. A felhasznlk s a tartalomszolgltatk az alacsonyabb szint ISP-k gyfelei, az alacsonyabb szint ISP-k pedig a magasabb szint szolgltatk gyfelei.
csomagvesztshez, valamint az tbocstkpessg korltozshoz vezetnek. Msrszrl pedig, mivel a szmtgp-hlzatoknl fennllnak ezek a problmk, szmos nagyon rdekes krdst vetnek fel a problmk kezelst illeten - tbbet, mint amennyi egy szmtgp-hlzatok tantrgy kitltshez s tbb szz doktori disszertci motivlshoz elegend. Ebben a rszben elkezdjk vizsglni s mennyisgileg meghatrozni a szmtgp-hlzatokban elfordul ksleltetst, vesztesget s tbocstkpessget.
A ksleltetsek tpusai
Tekintsk az 1.12. brt, s vizsgljuk meg ezeket a ksleltetseket. A forrs s a cl kztti tvonal rszeknt a csomagot a kimen csompontrl az A tvlasztn keresztl a B tvlaszthoz kldik. A clunk az, hogy az A tvlasztnl jelentkez csomponti ksleltetst jellemezzk. Vegyk szre, hogy az A tvlasztnak van egy olyan kimen adatkapcsolata, amelyik a B tvlaszthoz vezet. Ezt az adatkapcsolatot egy vrakozsi sor elzi meg (amelyet puflernek is neveznk). Amikor a csomag egy elz csomponttl megrkezik az A tvlaszthoz, az A tvlaszt megvizsglja a csomag fejrszt, hogy meghatrozza a megfelel kimen adatkapcsolatot, majd a csomagot ezen az adatkapcsolaton tovbbtja. Ebben a pldban a csomag szmra a kimen adatkapcsolat az, amelyik a B tvlaszthoz vezet. Egy csomagot csak akkor kldhetnk el egy adatkapcsolaton, ha nincs olyan csomag, amelynek az tvitele pp folyik azon az adatkapcsolaton, s egy csomag sem elzi meg a vrakozsi sorban; ha az adatkapcsolat jelenleg foglalt, vagy ms csomagok mr a pufferben vannak az adatkapcsolatra vrva, az jonnan rkez csomag is bell a sorba.
Terjeds
csomponttl az A tvlasztig trtn tvitel kzben elfordul bit-szint hibk keresshez szksges. Nagy sebessg tvlasztknl a feldl-
gozsi ksleltetsek mikroszekundum vagy annl kisebb nagysgrendek. Ezutn a csomponti feldolgozs utn az tvlaszt a csomagot a B tvlaszt irnyba es adatkapcsolatot megelz pufferbe irnytja. (A 4. fejezetben az tvlaszt mkdst fogjuk megismerni.) Sorbanllsi ksleltets A csomag a vrakozsi sorban, mialatt arra vr, hogy az adatkapcsolaton tovbbtsra kerljn, sorbanllsi ksleltetst (queuing delay) szenved. Egy bizonyos csomag sorbanllsi ksleltetsnek hossza attl fgg, hogy mennyi a korbban rkezett, a vrakozsi sorban az adatkapcsolaton trtn tvitelre vr csomagok szma. I la a sor res s egyetlen csomag sincs ppen tvitel alatt, akkor csomagunk sorbanllsi ksleltetse nulla lesz. Ha azonban a forgalom nagy, s sok ms csomag is vr az tvitelre, a sorbanllsi ksleltets nagy rtket vesz fel. Rvidesen ltni fogjuk, hogy a vrakoz csomagok szma, amelyre egy berkez csomag szmthat, a pufferbe rkez forgalom intenzitsnak s termszetnek fggvnye. A sorbanllsi ksleltetsek a gyakorlatban mikroszekundum-millisze- kundum nagysgrendek lehetnek. tviteli ksleltets Feltve, hogy a csomagok tvitele, ahogyan ez a csomagkapcsolt hlzatokban ltalnos, a berkezs sorrendjben trtnik, a csomagunkat csak a korbban berkezett csomagok elkldse utn kldik tovbb. L jellje bitekben a csomag hosszt, s B jellje bit/msodpercben az A s B tvlasztk kztti adatkapcsolat tviteli sebessgt. Pldul egy 10 Mb/s-os Ethernet adatkapcsolatnl a sebessg R=10 Mb/s; egy 100 Mb/s-os Ethernet adatkapcsolatnl a sebessg R=100 Mb/s. Az tviteli ksleltets (transmission delay) (amelyet trolsi-tovbbtsi ksleltetsnek is hvnak, ahogyan az 1.3. fejezetben is trgyaltuk) L/R. Ennyi id szksges ahhoz, hogy ttoljuk (azaz tvigyk) a csomag sszes bitjt az adatkapcsolaton. Az tviteli ksleltetsek jellemzen mikroszekundummilliszekundum nagysgrendek. Jelterjedsi ksleltets Ha egy bitet elkldnk egy adatkapcsolaton, annak el kell jutnia a B tvlaszthoz. A jelnek az adatkapcsolat elejtl a B tvlasztig trtn terjedshez szksges id a jel- terjedsi ksleltets (propagation delay). A bit az adatkapcsolat jelterjedsi sebessgvel halad. A jelterjedsi sebessg az adatkapcsolat fizikai tviteli kzegtl fgg (azaz fnyvezet szl, rz sodrott rpr stb.), s a 2 x 10* mter/msodperc - 3 x 10* mter/msodperc tartomnyban van, amely ugyanannyi vagy kicsit kisebb, mint a fnysebessg. A jelterje- . dsi ksleltets a kt tvlaszt kztti tvolsg s a jelterjedsi sebessg hnyadosa, azaz a jelterjedsi ksleltets d/s, ahol d az A s B tvlaszt kztti tvolsg, s s az adatkapcsolat jelterjedsi sebessge. Amint a csomag utols bitje is eljut a B csomponthoz, az a csomag sszes elz bitjeivel egytt troldik a B tvlasztban. Az egsz folyamat gy folytatdik, hogy ezutn a B tvlaszt vgzi a tovbbtst. Nagy kiterjeds hlzatoknl a jelterjedsi
Vizsgljuk tovbb ezt a hasonlatot egy kicsit. Mi trtnne, ha a fizetkapuk kiszolglsi ideje nagyobb lenne, mint a kt fizetkapu kztti tvolsg megttelhez szksges id? Pldul tegyk fel, hogy az autk 1000 km/h-s sebessggel haladnak, s a fizetkapuk 1 aut/perc sebessggel szolglnk ki az autkat. Ekkor a kt fizetkapu kztti utazshoz szksges id 6 perc, s az egy karavn kiszolglshoz szksges id 10 perc. Ebben az esetben a karavn els nhny autja hamarabb rkezik meg a msodik fizetkapuhoz, mint ahogy a karavn utols auti elhagynk az els fizetkaput. Ez a helyzet a csomag kapcsolt hlzatoknl is fennll - egy csomag els bitjei megrkezhetnek egy tvlasz thoz, mikzben a fennmarad bitek nagy rsze mg mindig az tvitelre vr az elz tvlasztban.
100 km
10 autbl ll karavn
Fizetkapu
Fizetkapu
52
Ha egy kp ezer szt mond cl, akkor egy animci egy millit fog. E knyv kapcsold weboldaln egy interaktv Java-program tallhat, amely nagyon jl szemllteti s veti ssze az tviteli s a jelterjedsi ksleltetst. Az olvas szmra ersen ajnlott a program megtekintse. Ha deuojgo/4,i, d% t v i t e l i s terjedsi rendre a feldolgozsi, sorbanllsi, tviteli s jel- terjedsi ksleltetst jelli, a teljes csomponti ksleltetst (totl nodal delay) megadhatjuk az albbi sszefggssel:
^csomponti
Ezen ksleltetsi sszetevk hozzjrulsa a vgeredmnyhez jelentsen vltozhat. Pldul terjedsi elhanyagolhatan kicsi lehet (pldul nhny mikroszekundum) egy egyetem kt tvlasztja kztt lv adatkapcsolatnl; d{ct)ci6i) azonban tbb szz milliszekundum is lehet olyan tvlasztk kztt, amelyek geostacionrius mholdas adatkapcsolattal vannak sszektve, s gy a daomAponll meghatroz sszetevje lehet. Hasonlan a dixvixcu is az elhanyagolhattl a jelentsig terjedhet. Hatsa jellemzen elhanyagolhat 10 Mb/s vagy nagyobb tviteli sebessgek esetben (pldul helyi hlzatoknl); azonban tbb szz milliszekundum is lehet olyan nagymret csomagok esetn, amelyeket lass, betrcsz modemes adatkapcsolatokon keresztl kldenek. A feldolgozsi ksleltets, dMdo]^titu is gyakran elhanyagolhat; azonban jelentsen befolysolja egy tvlaszt maximlis tbocstkpessgt, azaz azt a legnagyobb sebessget, amellyel egy tvlaszt csomagokat tud tovbbtani.
53
hogy R az tviteli sebessg; az a sebessg (bit/s-ban mrve), amellyel a bitek kikerlnek a vrakozsi sorbl. Az egyszersg kedvrt tegyk fel azt is, hogy minden csomag L bitbl ll. Ekkor a bitek vrakozsi sorba rkezsi sebes-
54
1. A szmtgp-hlzatok s az in ternet
sgc La bit/s. Vcgl vegyk gy, hogy a vrakozsi sor nagyon hossz, gy gyakorlatilag vgtelen szm bitet kpes trolni. Az La/ R hnyadost a forgalomintenzitsnak (traffic intensity) nevezzk, s gyakran fontos szerepet jtszik a sorbanllsi ksleltets mrtknek becslsnl. Ma L a/ R > 1, akkor a bitek tlagos vrakozsi sorba rkezsi sebessge meghaladja azt a sebessget, amellyel a bitek tovbbtsra kerlnek a vrakozsi sorbl. Ebben a szerencstlen helyzetben a vrakozsi sor minden hatron tln, s a sorbanl lsi ksleltets a vgtelenhez tart! Ezrt a hlzat forgalmat is figyelembe vev tervezs nl az egyik alapszably: A rendszert gy kell megtervezni, hogy a forgalomintenzits ne
legyen nagyobb, mint 1. Most tekintsk az L a/ R < 1 esetet. Ekkor a forgalom jellege van hatssal a
sorbanllsi ksleltetsre. Pldul ha a csomagok szablyos idkznknt rkeznek - azaz L / R msodpercenknt rkezik egy csomag - akkor minden csomag res vrakozsi sorba fog rkezni, s egyltaln nem lesz sorbanllsi ksleltets. Msrszt, ha a csomagok bizonyos idkznknt rkez rvid sorozatokban jnnek, jelents tlagos sorbanllsi ksleltetssel sz molhatunk. Pldul kpzeljk el, hogy {L/ R) N msodpercenknt N szm csomag rkezik egy idben. Ekkor az els tvitt csomag nem szenved sorbanllsi ksleltetst; a msodik csomag L / R sorbanllsi ksleltetst szenved; s ltalban elmondhat, hogy az n. csomag {n - l) L/ R msodperc sorbanllsi ksleltetst szenved. Az tlagos sorbanllsi ksleltets kiszmtst ebben a pldban meghagyjuk megoldand feladatnak. A szablyos idkznknt trtn berkezs fentebb lert kt pldja kiss elmleti. ltalban a vrakozsi sorba trtn berkezsek vletlenszerek; azaz a berkezsek nem kvetnek semmilyen mintt, s a csomagok berkezse kztt vletlen idtartam telik el. Ebben a valsghoz kzelebb ll esetben az L a/ R mennyisg ltalban nem elegend a sorbanllsi ksleltets statisztikjnak teljes lersra. Ennek ellenre fontos a sorbanllsi ksleltets mrtknek rszletekbe nem men megrtshez. Ha a forgalom intenzits nullhoz kzeli, akkor kevs csomag rkezik, s kzttk sok id telik el, s valszntlen, hogy egy berkez csomag egy msik csomagot tall a vrakozsi sorban. gy az tlagos sorbanllsi ksleltets nullhoz kzeli rtket vesz fel. Msrszt, amikor a forgalomintenzits 1-hez kzeli, lesznek olyan idszakok, amikor a berkezsi sebessg meghaladja az tviteli kapacitst (a csomagberkezsi sebessg vltozsa miatt), s vrakozsi sor fog keletkezni ezen idszakokra; amikor a berkezsi sebessg kisebb, mint az tviteli kapa cits, a vrakozsi sor mrete cskkenni fog. Ahogy a forgalomintenzits 1-hez kzelt, az tlagos sorbanllsi ksleltets egyre nagyobb lesz. Az 1.14. bra az tlagos sorbanllsi ksleltetst mutatja a forgalomintenzits fggvnyben. Az egyik fontos tny, amire az 1.14. bra rvilgt az, hogy amint a forgalomintenzits 1-hez kzelt, az tlagos sorbanllsi ksleltets gyorsan nvekszik. Az intenzits kis nvekedse is sokkal nagyobb szzalkos nvekedst okoz a ksleltetsben. Ezt a jelensget taln mr tapasztalta az autplyn. Ha rendszeresen vezet olyan tszakaszon, amelyen ltalban torlds van, az azt jelenti, hogy ezen a szakaszon a forgalom intenzits kzel 1. Ha valamilyen esemny akr egy kicsit is az tlagos szint fl emeli a forgalmat, rendkvl nagy ksleltetssel szmolhatunk.
55
Hogy igazn trezze, mit is jelent a sorbanllsi ksleltets, ltogassa meg a knyv kapcsold wcboldalt, amelyen egy olyan interaktv Java-program is tallhat, amely- lyel tanulmnyozhat a sorbanllsi ksleltets. Ha a csomagok berkezsi sebessgt elg nagyra lltjuk gy, hogy a forgalomintenzits meghaladja az 1-et, akkor ltszik, hogy a vrakozsi sor idvel egyre nvekszik.
La/R
Csomagveszts
A fenti trgyalsnl feltteleztk, hogy a vrakozsi sor vgtelen szm csomagot kpes trolni. A valsgban egy adatkapcsolatot megelz vrakozsi sor vges mret, br a vrakozsi sor kapacitsa nagyban fgg a kapcsol tervezstl s rtl. Mivel a vrakozsi sor kapacitsa vges, a csomagok vrakozsai igazbl nem kzeltenek a vgtelenhez, ahogy a forgalomintenzits az 1-hez tart. Ehelyett egy berkez csomag gy tallhatja, hogy a vrakozsi sor tele van. Mivel nincs hely a trolsra, az tvlaszt eldobja a csomagot; azaz a csomag elveszik. A vrakozsi sor ilyen tlcsordulst figyelhetjk meg a vrakozsi sort szemlltet Java program segtsgevei, ha a forgalom intenzits nagyobb, mint 1. Egy vgrendszer nzpontjbl, egy csomagveszts esemny gy nz ki, hogy elkldnk egy csomagot a hlzat kzepe fel, de soha nem rkezik meg a hlzatbl a clhoszthoz. Az elveszett csomagok hnyada a forgalom intenzitssal nvekszik, ezrt egy csompont teljestkpessghez nemcsak a ksleltetsek mrtke, hanem a csomagveszts valsznsge is fontos. Ahogyan a kvetkez fejezetekben is megtrgyaljuk, az elveszett csomagok a kt vgpont kztt jra elkldhetk, gy biztostva, hogy minden adat valban tvitelre kerljn a forrshoszttl a clhosztig.
56
elhanyagolhatk), a feldolgozsi ksleltets minden tvlasztnl s a forrs hosztnl dlMo\go/Un az tviteli sebessg minden tvlasztnl s a forrshosztnl R bit/s, s a terjedsi ksleltets minden adatkapcsolatnl d[a)edis,t. A csomponti ksleltetsek sszeaddnak, s kiadjk a vgpontok kztti ksleltetst:
d\-ft vg N(d{eldolgo/si
^tviteli + ^tetjedti)
ahol jra d atvlteIl = LIR s L pedig a csomagmret. A kplel ltalnostst csompontonknt eltr ksleltetsekre s minden csompontnl jelen lv tlagos sorbanllsi ksleltetsre az olvasra bzzuk.
Traceroute
Ahhoz, hogy a gyakorlatban is lthatv tegyk egy szmtgp-hlzatban a vgpontok kztti ksleltetst, hasznlhatjuk a Traceroute programot. A Traceroute egy egyszer program, amely brmely, internetre kapcsolt hoszton futtathat. Amikor a felhasznl megadja a clhoszt nevt, a forrshoszton fut program tbb klnleges csomagot kld a cl irnyba. Ahogyan ezek a csomagok a clhoz kzelednek, szmos tvlasztn haladnak t. Amikor egy tvlaszt megkap egy ilyen klnleges csomagot, egy rvid zenetet kld vissza a forrsnak, amely az tvlaszt nevl s cmt tartalmazza. Pontosabban tegyk fel, hogy a forrs s a cl kztt N - 1 tvlaszt van. Ekkor a forrs N szm klnleges csomagol fog kldeni a hlzatba, s mindegyik csomag a legtvolabbi clhosztnak lesz cmezve. Ezt az N szm klnleges csomagot megjellik 1 -tl N-ig, ahol az els csomag az 1-es, az utols az N-es. Amikor az n. tvlaszt megkapja az n jel, n. csomagot, az tvlaszt nem tovbbtja azt a cl fel, ehelyett visszakld egy zenetet a forrsnak. Amikor a clhoszt megkapja az N. csomagot, szintn visszakld egy csomagot a forrsnak. A forrs feljegyzi a csomag kldse, s az ahhoz tartoz vlaszzenet visszarke zse kzlt eltelt idt; s feljegyzi tovbb a vlaszt visszakld tvlaszt (vagy a clhoszt) nevt s cmt is. Ezzel a mdszerrel a forrs rekonstrulhatja a forrstl a cl fel halad csomagok ltal megtett tvonalat, valamint meghatrozhatja a krljrsi ksleltetst minden kzbees tvlasztra. Valjban a Traceroute hromszor ismtli mega lert ksrletet, gy 3 x N csomagot kld a cl fel. A Traceroute-ot az RFC 1393 rja le rszletesen. Itt lthat egy plda a Traceroute program kimenetre, ahol az tvolnalat a gaia.es.u- mass.edu (University of Massachusetls) forrshoszttl a cis.poly.edu (Polytechnic Univer- sity of Brooklyn) hosztig kvettk vgig. A kimenetnek hat oszlopa van: az els oszlop a fentebb lert n rtk, azaz hogy hnyadik az tvlaszt az tvonalon; a msodik oszlop az tvlaszt neve; a harmadik oszlop az tvlaszt cme (xxx.xxx.xxx.xxx formtumban); az utols hrom oszlop pedig a krljrsi id a hrom ksrletben. Ha a forrs egy bizonyos tvlaszttl hromnl kevesebb zenetet kap (a hlzatban bekvetkezett cso magveszts miatt), a Traceroute egy csillagot tesz az tvlaszt szma utn, s hromnl kevesebb krljrsi idt jelent meg ahhoz az tvlaszthoz.
1 2
cs-gw (128.119.240.254) 1.009 ms 0.899 ms 0.993 ras 128.119.3.154 (128.119.3.154) 0.931 ms 0.441 ms 0.651 ms
57
3 4 5 6 7 8 ms 9 10
border4-rt-gi-l-3.gw.umass.edu (128.119.2.194) 1.032 ms 0.484 ms 0.451 ms acrl-ge-2-l-0.Boston.cw.net (208.172.51.129) 10.006 ms 8.150 ms 8.460 ms agr4-loopback.NewYork.cw.net (206.24.194.104) 12.272 ms 14.344 ms 13.267 ms acr2-loopback.NevjYork.cw.net (206.24.194.62) 13.225 ms 12.292 ms 12.148 ms posl0-2.core2.NewYorkl.Level3.net (209.244.160.133) 12.218 ms 11.823 ms 11.793 ms gige9-l-52.hsipaccessl.NewYorkl.Level3.net (64.159.17.39) 13.081 ms 11.556 ms 13.297 p0-0.polyu.bbnplanet.net (4.25.109.122) 12.716 ms 13.052 ms 12.786 ms cis.poly.edu (128.238.32.126) 14.080 ms 13.035 ms 12.802 ms
A fenti tvonalkvetsben kilenc tvlaszt van a forrs s a cl kztt. Ezek kzl a legtbbnek van neve, s mindegyiknek van cme. Pldul a 3-as tvlaszt neve border4-rt-gi-l-3.gw.umass.edu, s a cme 128.119.2.194, Ha rnznk az erre az tvlasztra vonatkoz adatokra, azt ltjuk, hogy a hrom prba kzl az elsnl a krljrsi ksleltets a forrs s az tvlaszt kztt 1,03 milliszekundum. A krljrsi ksleltets a kvetkez kt prbnl 0,48 s 0,45 milliszekundum. A krljrsi ksleltetsek magukban foglaljk az pp megtrgyalt sszes ksleltetst, ezek kztt az tviteli ksleltetseket, a terjedsi ksleltetseket, az tvlasztnl fellp feldolgozsi ksleltetseket s a sorbn- llsi ksleltetseket. Mivel a sorbanllsi ksleltets idben vltozik, az ti. tvlasztnak kldtt n. csomag krljrsi ksleltetse nha nagyobb lehet, mint az n + 1-ik tvlasztnak kldtt n + 1-ik csomag. Valban, a fenti pldban megfigyelhetjk ezt a jelensget: a ksleltets a 6. tvlaszt esetben nagyobb, mint a 7. tvlaszt esetben! n is kiprbln a Traceroute-ot? Azt tancsoljuk, ltogasson el a http://www.traceroutc . org oldalra, amely webes felletet knl egy sor olyan forrshoz, ahonnan tvonal kvetst lehet indtani. Kivlaszthat egy forrst, s megadhatja brmely clhoszt nevt, ezutn a Trace- route program elvgzi a munkt. Szmos ingyenes alkalmazs ltezik, amelyek grafikus felletet knlnak a Traceroute-hoz; az egyik kedvencnk a PingPlotter [PingPlotter 2007].
58
59
1. A SZMTGP-HLZATOK S AZ INTERNET
Kliens
Kliens
1.15. bra. tbocstkpessg egy szerver s egy kliens kztti fjltvitel esetn
mazsnl, mint pldul az internettelefonnl elvrhat, hogy a ksleltets kicsi legyen, s a pillanatnyi tbocstkpessg folyamatosan egy bizonyos hatrrtk fltt legyen (pldul nhny internettelefon alkalmazsnl 24 kb/s fltt, s nhny vals idej vides alkalmazsnl 256 kb/s fltt). Ms alkalmazsoknl, belertve azokat, amelyeknl fjltvitel trtnik, a ksleltets nem kritikus, de elvrhat a lehet legnagyobb tbocstkpessg. Hogy tovbbi bepillantst nyerjnk az tbocstkpessg fogalmba, tekintsnk nhny pldt. Az 1.15. (a) brn kt vgrendszer, egy szerver s egy kliens lthat, amelyek kt kommunikcis adatkapcsolaton s egy tvlasztn keresztl vannak sszektve. Tekintsk a szerver s a kliens kztti fjltvitel esetn az tbocstkpessget. Jellje Rs a szerver s az tvlaszt kztti adatkapcsolat sebessgt; s jellje Rc az tvlaszt s a kliens kztti adatkapcsolat sebessgi. Tegyk fel, hogy csak azok a bitek vannak a hlzaton, amelyeket a szerver a kliensnek kldtt el. Feltehetjk a krdst, mennyi a szerver-kliens tbocstkpessg ebben az idealizlt esetben. Ahhoz, hogy ezt a krdst megvlaszoljuk, a biteket folyadkknt, a kommunikcis adatkapcsolatokat csvekknt kpzelhetjk el. Lthat, hogy a szerver nem kldhet t biteket az adatkapcsolaton Rs b/s-nl gyorsabban; s az tvlaszt nem tovbbthat biteket Rc b/s-nl gyorsabban. Ha Rs < Rc> akkor a szerver ltal lkldtt bitek kzvetlenl tramlanak az tvlasztn, s Rs b/s-os sebessggel megrkeznek a klienshez, gy az tbocstkpessg Rs b/s lesz. Viszont ha Rc < Rs , akkor az tvlaszt nem tudja olyan gyorsan tovbbtani a biteket, mint amilyen sebessggel fo gadja. Ebben az esetben a bitek csak Rc sebessggel hagyjk el az tvlasztt, gy a vgpontok kztti tbocstkpessg Rc lesz. (Vegyk szre azt is, hogy ha a bitek folyamatosan Rs sebessggel rkeznek az tvlaszthoz, amit folyamatosan Rc sebessggel hagynak el, az tvlasztnl a kliens fel tvitelre vr bitek vrakozsi sora egyre nni fog, amely elgg nemkvnatos helyzet!) Ezrt ezen az egyszer, kl adatkapcsolatbl ll hlzaton az tbocstkpessg min{Rc,
60
1. A SZMTGP-HLZATOK S AZ INTERNET
Rs}> azaz a
szk keresztmetszet adatkapcsolat (bottleneck link) tviteli sebessge. Miutn meghatroztuk az tbocstkpessget, kzeltleg kisz molhatjuk az idt, amelyet egy F bites fjl a szerver s a kliens kztt F/m\n{Rs , Rc } sebessggel trtn tvitele vesz ignybe. Egy konkrt plda kedvrt tegyk fel, hogy egy F-32 milli bitbl ll MP3-fjlt tltnk le, a szerver R$ = 2 Mb/s sebessggel kldhet adatokat, s neknk egy Rc = 1 Mb/s-os hozzfrsi adatkapcsolatunk van. A fjl tvitelhez szksges id ekkor 32 msodperc. Termszetesen ezek a kifejezsek az tbocstkpessg s az
61
tviteli id kiszmtsra csak kzeltsek, mivel nem vesznek figyelembe csomagszint s protokollkrdsekct. Az 1.15. (b) brn egy olyan hlzat lthat, ahol N szm adatkapcsolat van a szervers a kliens kztt, s az N adatkapcsolat tviteli sebessge R]y R2 ,..., R^. A kt adatkapcsolatbl ll hlzat vizsglathoz hasonlan azt llapthatjuk meg, hogy az tbocstkpessg egy fjltvitel esetn a klienstl a szerverig min{#i, Rj ,..., Rn}, ami itt is a szerver s a kliens kztti tvonalon lv szk keresztmetszet adatkapcsolat tviteli sebessge. Most tekintsnk egy olyan pldt, amelynek az alapja a mai internet. Az 1.16. (a) brn kt vgrendszer, egy szerver s egy kliens lthat, amelyek egy szmtgp-hlzathoz csatlakoznak. Gondoljuk t, mennyi az tbocstkpessg a szervertl a kliensig trtn fjltvitel esetn. A szerver egy Rs, a kliens pedig egy Rc sebessg hozzfrsi adatkapcsolaton keresztl csatlakozik a hlzathoz. Tegyk fel, hogy a hlzat belsejben lv sszes adatkapcsolat nagyon nagy tviteli sebessg, sokkal nagyobb, mint Rs s Rc. Valjban ma az internet belseje tlmretezett, nagy sebessg adatkapcsolatokkal rendel kezik, amelyeknl csak kis torlds jelentkezik [Akella 2003). Tegyk fel azt is, hogy csak azok a bitek vannak a hlzaton, amelyeket a szerver a kliensnek kldtt el. Mivel ebben a pldban a szmtgp-hlzat kzepe olyan, mint egy szles cs, a sebessg, amellyel a bitek a forrstl a clig ramolhatnak, az tbocstkpessg itt is az R$ s Rc kzl a kisebb, azaz az tbocstkpessg = min{R<, Rs}. Emiatt a mai internetnl az tbocstkpessg korltoz tnyezje jellemzen a hozzfrsi hlzat. Utols pldaknt tekintsk az 1.16. (b) brt, ahol tz szerver s tz kliens lthat, amelyek egy szmtgp hlzat belsejhez vannak kapcsolva. Ebben a pldban tz letlts folyik egyidejleg, amelyben tz kliens-szerver pr vesz rszt. Tegyk fel, hogy ez a tz letlts jelenleg az sszes forgalom a hlzaton. Ahogy az bra is mutatja, van egy adatkapcsolat a hlzat belsejben, amelyen mind a tz letlts thalad. Ennek az adatkapcsolatnak az tvi teli sebessgt jellje R. Tegyk fel, hogy minden szerver hozzfrsi adatkapcsolatnak se bessge ugyanaz az Rs, minden kliens hozzfrsi adatkapcsolatnak sebessge ugyanaz az Rc s a hlzat belsejben lv adatkapcsolatok - kivve a kzs, R sebessg adatkapcsolatot - tviteli sebessge jval nagyobb, mint Rs , Rc s R. Feltehetjk a krdst: mekkora az tbocstkpessg a letltseknl? Vilgos, hogy ha a kzs adatkapcsolat sebessge, azaz R nagy - mondjuk szzszorosa i^-nek, s Rc -nek is -, akkor az tbocstkpessg minden letltsnl itt is min{.K s , Rc j lesz. Mi trtnik azonban, ha a kzs adatkapcsolat sebessge azonos nagysgrend Rsse\ s Rc-veI? Mennyi lesz az tbocstkpessg ebben az esetben? Nzznk egy konkrt pldt. Legyen Rs = 2 Mb/s, Rc = 1 Mb/s, R = 5 Mb/s, s a kzs adatkapcsolat az tviteli sebessgt egyenlen osztja fel a 10 letlts kztt. Ekkor a letltseknl a szk keresztmetszet mr nem a hozzfrsi hlzat, hanem a megosztott adatkapcsolat a hlzat belsejben, amely csak 500 kb/s-os tbocstkpessget biztost minden letltshez, gy a vgpontok kztti tbocstkpessg minden letltsnl lecskken 500 kb/s-ra. Az 1.15. s az 1.16. (a) brn lthat pldk mutatjk, hogy az tbocstkpessg azon adatkapcsolatok tviteli sebessgtl fgg, amelyeken keresztl az adatot tovbbtjk. Lttuk, hogy ha kzben nincs ms forgalom, akkor az tbocstkpessg egyszeren kzelthet a forrs s a cl kztti tvonal
62
1. A SZMTGP-HLZATOK S AZ INTERNET
legkisebb tviteli sebessgvel. Az 1.16. (b) brn ltha t plda azt mutatja, hogy ltalnossgban az tbocstkpessg nem csak az tvonalon lv adatkapcsolatok tviteli sebessgeitl fgg, hanem az egyidej forgalomtl is. Egy nagy tviteli sebessg adatkapcsolat is lehet a szk keresztmetszet adatkapcsolat egy fjltvitelnl, fleg ha sok ms adatfolyam is azon halad t. A szmtgp-hlzatokban az tbocstkpessget kzelebbrl a krdsekben s a feladatokban, illetve a kvetkez fejezetekben vizsgljuk meg.
63
Szerver
10 szerver
keresztmetszet adatkapcsolat
Kliens
10 kliens
1.16. bra. Vgpontok kztti tbocstkpessg: (a) A kliens letlt egy fjlt a szerverrl;
(b) Tz kliens letlt tz szerverrl
64
psck sorozatt, amelyet akkor tesznk (vagy tesznek meg helyettnk), amikor egy jraton replnk. Megvesszk a jegynket, ellenrizzk a csomagjainkat, elmegynk a kapuhoz, s vgl beszllunk a gpbe. A gp felszll, s a clllomshoz irnytjk. Miutn a replnk leszllt, kiszllunk a kapunl, s tvesszk a csomagjainkat. Ha valami gond volt az ton, panaszt nyjthatunk be a jegyirodnl (s az erfesztsnkrt cserbe nem kapunk semmit). Ezt a forgatknyvet az 1.17. bra mutatja be.
Jegy (vsrls) Csomag (ellenrzs) Kapuk (beszlls) Felszlls a kifutplyn Replgp forgalomirnytsa Replgp forgalomirnytsa
Jegy (panasz
benyjtsa)
65
kapu rtegnl az emberek be/ kiszlltsa egy replgpbe/replgpbl), s hogy a kzvetlenl alatta lv rteg szolgl-
66
Jegy (vsrls) Csomag (ellenrzs) Kapuk (beszlls) Felszlls a kifutplyn Replgp Jegy (panasz benyjtsa) forgalomirnytsa
1. A szmtgp-hlzatok s az in ternet
Csomag (tvtel)
Indul repltr
Jegy
Kapuk (kiszlls) Leszlls a kifutplyn Replgp forgalomirnytsa
Fogad repltr
Replgp forgalomirnytsa
Replgp forgalomirnytsa
Protokollrctegzettsg
Elg is ennyi a repljratokbl. Fordtsuk a figyelmnket a hlzati protokollok fel. A hlzatok tervezi ahhoz, hogy struktrt biztostsanak a hlzati protokollok tervezshez, a protokollokat - s a protokollokat megvalst hlzati hardvert s szoftvert - rtegekbe (layers) rendezik. Minden protokoll valamelyik rteghez tartozik, mint ahogy a replgpes pldban minden funkci egy rteghez tartozik az 1.18. brn. jra azok a szolgltatsok (services) rdekelnek bennnket, amelyeket egy rteg a felette lvnek biztost - vagyis egy rteg n. szolglati modellje (service model). ppgy, mint a repl jratos esetben, minden rteg gy biztostja a szolgltatsait, hogy (1) bizonyos lpseket tesz az adott
67
rtegen bell, s (2) hogy a kzvetlenl alatta lv rteg szolgltatsait igny be veszi. Pldul az n. rteg ltal nyjtott szolgltatsok magukban foglalhatjk az zenetek megbzhat kzbestst a hlzat egyik vgpontjtl egy msikig. Ez megvalsthat egy (n - 1). rteg nem megbzhat kt vgpont kztti zenetkzbestsi szolgltatsnak
hasznlatval, s egy n. rtegbeli tevkenysg hozzadsval, amely szleli, ha elveszett egy zenet, s jbl elkldi azt. Egy protokoll rteg megvalsthat szoftveresen, hardveresen s a kett kombincijval. Az alkalmazsi rteg protokolljait - mint pldul a HTTP s az SMTP - majdnem mindig szoftveresen valstjk meg a vgrendszerekben; ugyangy a szlltsi rteg protokolljait is. Mivel a fizikai rteg s az adatkapcsolati rteg egy bizonyos adatkapcsolat fltti kommunikci kezelsrt felels, jellemzen egy adott adatkapcsolathoz tartoz hlzati csatolkrtyn vannak megvalstva (pldul Ethernet- vagy WiFi-csatolkrtyk). A h lzati rteg gyakran kevert hardver s szoftver megvalsts. Vegyk szre, hogy ppgy, mint ahogy a rtegzett lgi kzlekedsi architektra feladatai el voltak osztva a rendszert felpt klnbz replterek s lgi irnyt kzpontok kztt, egy n. rtegbeli protokoll is elosztott a hlzatot alkot vgrendszerek, csomagkapcsolk s ms sszetevk kztt. Azaz, gyakran minden egyes ilyen hlzati sszetevben van egy n. rtegbeli protokoll. A protokoll rtegzettsgnek koncepcionlis s strukturlis elnyei is vannak. Amint lttuk, a rtegzettsg lehetv teszi a rendszer sszetevinek strukturlt trgyalsi mdjt. A modularits megknnyti a rendszer sszetevinek korszerstst. Megemltjk azonban, hogy nhny kutat s hlzatokkal foglalkoz mrnk hevesen ellenzi a rtegzettsget [Wakeman 1992]. A rtegzettsg egyik lehetsges htrnya, hogy egy adott rteg megism telheti az alatta lv rteg feladatait. Pldul szmos protokollkszlet biztost hibajavtst adatkapcsolati szinten is s szlltsi szinten is. Egy msik lehetsges htrny, hogy az egyik rtegbeli feladatnak olyan informcira lehet szksge (mint pldul egy idblyeg rtke), amellyel csak egy msik rteg rendelkezik; ez megsrti a rtegek elklntsnek elvt. Az egszet egytt tekintve, a klnbz rtegek protokolljait protokollkszletnek (protocol stack) nevezzk. Az internet protokollkszlete t rtegbl ll: fizikai, adatkapcsolati, hlzati, szlltsi s alkalmazsi rteg, ahogyan az 1.19. (a) bra is mutatja. Ha e knyv tartalomjegyzkt megvizsgljuk, lthatjuk, hogy a knyvet az internet protokollkszletnek rtegeit felhasznlva szerveztk. Fentrl lefel trtn megkzeltst (top-down approach) alkalmazunk, elszr az alkalmazsi rteget trgyaljuk, s innen haladunk lefel.
Alkamazsi Szlltsi
Adatkapcsolati Fizikai
69
Alkalmazsi rteg
Az alkalmazsi rteg az, amelyben a hlzati alkalmazsok s az alkalmazsi rtegbeli protokolljaik helyezkednek el. Az internet alkalmazsi rtege szmos protokollt foglal magban, mint pldul a HTTP (amely weboldalak lekrst s tvitelt vgzi), az SMTP (amely az elektronikus levelek tvitelt ltja el) s az FTP (amely kt vgrendszer kztt fjltvitelt biztost). Ltni fogjuk, hogy bizonyos hlzati funkcik, mint pldul az internet vgrendszerek www.ietf.org-hoz hasonl emberbart neveinek 32-bites hlzati cmekre trtn fordtst szintn egy bizonyos alkalmazsi rtegbeli protokoll, neveze tesen a krzet nvkezel rendszer (domain name system, DNS) segtsgvel vgzik. A 2. fe jezetben ltni fogjuk, hogy egy j, sajt alkalmazsi rtegbeli protokollt rendkvl knny megalkotni s hadrendbe lltani. Egy alkalmazsi rtegbeli protokoll tbb vgrendszer kztt van elosztva, ahol az egyik vgrendszeren fut alkalmazs a protokoll segtsgvel cserl informcicsomagokat egy msik vgrendszeren fut alkalmazssal. Erre az informcicsomagra az alkalmazsi rtegben zenetknt (message) fogunk hivatkozni.
Szlltsi rteg
Az internet szlltsi rtege vgzi az alkalmazsi rteg zeneteinek szlltst az alkalmazsi vgpontok kztt. Az internetben kt szlltsi protokoll van, a TCP s az UDP, s mindkett szllthat alkalmazsi rtegbeli zeneteket. A TCP sszekttets alap szolgltatst nyjt alkalmazsainak. Ez a szolgltats magban foglalja az alkalmazsi rtegbeli zenetek garantlt clbajuttatst s a forgalomszablyozst (azaz a kld s a fogad kztti sebessgegyeztetsi). A TCP a hossz zeneteket fel is darabolja rvidebb szeg mensekk, s torldskezel mechanizmust is biztost, gy a forrs cskkenti az tvite li sebessgt, ha a hlzaton torlds lp fel. Az UDP sszekttets nlkli szolgltatst biztost az alkalmazsainak. Ez egy nagyon egyszer szolgltats, amely nem biztost sem megbzhatsgot, sem forgalomszablyozst, sem torldskezelst. Ebben a knyvben a szlltsi rtegbeli csomagokat szegmenseknek (segment) hvjuk.
Hlzati rteg
Az internet hlzati rtege felels a hlzati rteg datagramoknak nevezett csomagjainak kt hoszt kztt trtn mozgatsrt. Az internet szlltsi rtegbeli protokollja (TCP vagy UDP) egy forrshoszton egy szlltsi rtegbeli szegmenst s egy clcmet ad t a hlzati rtegnek ppgy, mint ahogyan a postaszolglatnak odaadunk egy a cmzett cmt tartalmaz levelet. A hlzati rteg ezutn azt a szolgltatst biztostja, hogy kzbesti a szegmenst a clhoszton lv szlltsi rtegnek. Az internet hlzati rtegbe beletartozik az nnepelt IP, amely meghatrozza a datagram mezit s azt, hogy a vgrendszerek s az tvlasztk hogyan kezeljk ezeket a mezket. Csak egyetlen IP protokoll van, s minden, hlzati rteggel rendelkez internet-sszetevnek az IP-t kell hasznlnia. Az internet hlzati rtege tartalmaz az tvlasztsnl hasznlt
protokollokat is, amelyek a datagramok tvonalait hatrozzk meg a forrs s a cl kztt. Az internet szmos tvlaszt proto kollal rendelkezik. Amint azt az 1.3. alfeiezetben is lttuk, az internet hlzatok hlzata,
r
s egy hlzaton bell a hlzat adminisztrtora olyan tvlaszt protokollt hasznlhat, amilyet akar. Br a hlzati rteg mind az IP-t, mind szmos tvlasztsi protokollt tartalmaz, ltalban egyszeren csak IP-rtegknt hivatkoznak r, amely azt a tnyt tkrzi, hogy az IP tartja ssze az internetet.
Adatkapcsolati rteg
Az internet hlzati rtege egy datagramot tvlasztk sorozatn keresztl irnyt a forrstl a clig. Ahhoz, hogy egy csomag az tvonalon egyik csomponttl (hoszt vagy tvlaszt) a kvetkezig eljusson, a hlzati rteg az adatkapcsolati rteg szolgltatsait veszi ignybe. Minden csompontnl a hlzati rteg tadja a datagramot az adatkapcsolati rtegnek, amely azt tovbbtja az tvonalon kvetkez csompontig. Ennl a kvetkez csompontnl az adatkapcsolati rteg feladja a datagramot a hlzati rtegnek. Az adatkapcsolati rteg szolgltatsai az adatkapcsolaton hasznlt konkrt adatkapcsolati protokolltl fggenek. Pldul nhny adatkapcsolati protokoll az adatkapcsolaton a kld csomponttl a fogad csompontig megbzhat kzbestst biztost. Jegyezzk meg, hogy ez a megbzhat kzbests klnbzik a TCP megbzhat kzbeststl, amely vgrendszerek kztti megbzhatsgot biztost. Az adatkapcsolati protokollra plda lehet az Ethernet, a VViFi s a ktpontos protokoll (point-to-point protocol, PPP). Mivel a datagramoknak szmos adatkapcsolaton keresztl kell haladniuk a forrstl a clig, egy datagramot az tvonalon a klnbz adatkapcsolatoknl klnbz adatkapcsolati protokollok kezelhetnek. Pldul egy datagramot az egyik adatkapcsolaton tovbbthat Ethernet, egy msikon pedig PPP. A hlzati rteg klnbz szolgltatsokat kap az egyes adatkapcsolati protokolloktl. Ebben a knyvben az adatkapcsolati csomagokat kereteknek (frame) nevezzk.
Fizikai rteg
Mg az adatkapcsolati rteg feladata az, hogy egsz kereteket tovbbtson az egyik hlzati elemtl a mellette lvig, a fizikai rteg feladata a kereten belli egyes bitek tovbbtsa az egyik csomponttl a kvetkezig. A protokollok ebben a rtegben is fggenek az adatkapcsolattl, tovbb az adatkapcsolat aktulis tviteli kzegtl (pldul rz sodrott rpr, egymdus fnyvezet szl). Pldul az Ethernet szmos fizikai rtegbeli protokollal rendelkezik: egy protokoll a rz sodrott rprhoz, egy msik protokoll a koaxilis kbel hez, egy harmadik protokoll pedig a fnyvezet szlhoz stb. Minden esetben biteteket kell tovbbtani az adatkapcsolaton, de ms-ms mdszerrel.
OSl-modell
Miutn rszletesen megtrgyaltuk az internet protokollkszlett, meg kell emltennk, hogy nem csak ez az egy protokollkszlet ltezik. Az 1970-es vek vge fel, a Nemzetkzi Szabvnygyi Szervezet (International Organization fr
Standardization, ISO) indtvnyozta, hogy a szmtgp-hlzatokat ht rteg kr rendezzk, amelyet nylt rendszerek sszekapcsolsra ltrehozott modellnek (Open Systems Interconnection, OSI) neveztek. Az OSl-modell akkor alakult ki, amikor azok a protokollok, amelyek ksbb az inter net protokolljai lettek, mg gyerekcipben jrtak, s nem emelkedtek ki a sok klnbz, fejleszts alatt ll protokollkszlet kzl; valsznleg az eredeti OSl-modell feltalli valjban nem gondoltak az internetre, amikor megalkottk. Ennek ellenre az 1970-es vek vgn sok tanfolyam s egyetemi eladssorozat ltkrbe kerlt az ISO ajnls, s a htrteg modellrl szmos eladst szerveztek. A htrteg modell a hlzatok oktatsra tett korai hatsa miatt tovbb l nhny hlzatokkal kapcsolatos tanknyvben s kurzusban. Az OSI hivatkozsi modell ht szintjt az 1.19. (b) bra mutatja, amelyek a kvetkezk: alkalmazsi rteg megjelentsi rteg, viszonyrteg, szlltsi rteg, hlzati rteg, adat- kapcsolati rteg s a fizikai rteg. Ezek kzl t rteg mkdse ugyanaz, mint a hasonl nev megfelelik az internetben. Ezrt csak az OSI hivatkozsi modell kt tovbbi rtegt - a megjelentsi rteget s a viszony rteget nzzk meg. A megjelentsi rteg szerepe az, hogy olyan szolgltatsokat nyjtson, amelyek a kommunikcis alkalmazsoknak lehe tv teszik a kicserlt zenetek rtelmezst. Ezek a szolgltatsok magukban foglaljk az adattmrtst s a titkostst (ezek magtl rtetdk), valamint az adatok lerst (amely, ahogy azt a 9. fejezetben is ltni fogjuk, megkmli az alkalmazsokat attl, hogy az adatok bels brzolsi/trolsi formtumval bajldjanak - olyan formtumokkal, amelyek gprl gpre vltozhatnak). A viszonyrteg gondoskodik az adatcsere tagolsrl s szinkronizlsrl, belertve az ellenrzpont s a helyrelltsi sma ltrehozsra irnyul intzkedseket. A tny, hogy az OSI hivatkozsi modell kt rtege nincs jelen az internetben, egy sor rdekes krdst vet fel: Ezen rtegek szolgltatsai nem fontosak? Mi van, ha egy alkalmazsnak szksge van egy ilyen szolgltatsra? Az internet vlasza mindkt krdsre ugyanaz - az alkalmazs fejlesztjtl fgg. Az alkalmazs fejlesztjnek kell eldntenie, hogy egy szolgltats fontos-e, s ha a szolgltats fontos, akkor azt az alkalmazs fejlesztjnek kell megvalstania a programban.
cmeket. Jegyezzk meg, hogy a hosztok mind az t rteget meg valstjk; ez sszhangban van azzal a nzettel, hogy az internet-architektra legbonyolul tabb rsze a hlzat szln van. Az 1.20. bra egy fontos koncepcit is bemutat, ez pedig a begyazs (encapsulation). A kld hoszt egy alkalmazsi zenetet (application layer message) (az 1.20. brn M) tovbbt a szlltsi rtegnek. A legegyszerbb esetben a szlltsi rteg veszi az zenetet, hozzad tovbbi informcit (az n. szlltsi fejrsz informcit, az 1.20. brn H t ), amelyeket a fogad oldal szlltsi rtege fog hasznlni. Az alkalmazsi zenetek s a szlltsi rteg fejrsze egytt alkotja a szlltsi szegmenst (transport-layer segment). Az alkalmazsi zenet gy begyazdik a szlltsi szegmensbe. A hozzadott fejrsz tartalmazhat
Forrs
M M M M Alkalmazsi Szlltsi Hlzati Adatkapcsolati Fizikai
H, Hn Ht M
Adatkapcsolati Fizikai
H| Hn Ht M
Adatkapcsolati kapcsol
M H, Hn Ht H| Hn H, M M M
C l
tvlaszt
emlkeztett kldenek a nyilvnos postai szolgltats segtsgvel. Tegyk tel, hogy Alice, aki az egyik fikirodban dolgozik, t akar kldeni egy emlkeztett Bobnak, aki a msik fikirodban dolgozik. Ez az emlkeztet hasonl az alkalmazsi rteg zenethez. Alice beteszi az emlkeztett egy bels hasznlat bortkba, amelyre Bob nevt s rszleget rja. A bortk hasonl a szlltsi szegmenshez - fejrsz informcit tartalmaz (Bob neve s a rszleg szma), s ebbe van begyazva az alkalmazsi rteg zenete (az emlkeztet). Amikor a bortkot elkldik, a fikiroda postaszobjba kerl, majd berakjk mg egy bortkba, amely alkalmas arra, hogy a nyilvnos postai szolgltatson keresztl tovbbtsk. A kld postaszoba a postai bortkra rrja a kld s a fogad fikiroda postai
cmt. Itt, a postai bortk hasonl a datagramhoz - ebbe van begyazva a szlltsi szegmens (a bels hasznlat bortk), amelybe az eredeti zenet (az emlkeztet) van begyazva. A postaszolglat kzbesti a postai bortkot a cmzett fikiroda postaszobjnak s megkezddik a bortkok felbontsa. A postaszoba kiveszi a bels hasznlat bortkot, majd tovbbtja Bobnak. Vgl Bob felnyitja a bels hasznlat bortkot s kiveszi belle az emlkeztett. A begyazs folyamata sokkal sszetettebb lehet, mint ahogyan az elzekben lertuk. Pldul egy nagy zenetet tbb szlltsi szegmensre oszthatnak (amelyeket tbb hlzati datagramra darabolhatnak tovbb). A fogad oldalon az ilyen szegmenset ssze kell rakni az azt hordoz datagramokbl.
tmadsok?
A biztonsgi fenyegetsek egy nagy csoportjt a szolgltatsmegtagadsi tmadsok (denial-of-service, DoS) kpezik. Ahogy a nv is sugallja, egy DoStmads trvnyes felhasznlk szmra tesz hasznlhatatlann egy hlzatot, hosztot vagy ms rszt az infrastruktrban. Webszervcrek, e-mail szerverek, DNSszcrverek (amelyeket a 2. fejezetben trgyalunk) s intzmnyi hlzatok mind lehetnek DoS-tmadsok clpontjai. Az internetes DoS-tmadsok rendkvl gyakoriak, minden vben tbb ezer DoS-tmads trtnik [Moore 2001; Mirkovic 2005]. A legtbb DoS-tmads besorolhat az albbi hrom kategria kzl valamelyikbe: Sebezhet pontok tmadsa. Ennl a tmadsnl cseles zeneteket kldenek a clba vett hoszt egy sebezhet alkalmazsnak vagy opercis rendszernek. Ha a csomagokat j sorrendben kldik egy vdelemmel nem rendelkez, srlkeny alkalmazsnak vagy opercis rendszernek, a szolgltats, vagy ami mg rosszabb, a hoszt lellhat. Svszlessg-elraszts. A tmad csomagok radatt kldi a clba vett hosztnak - olyan sok csomagot, hogy eldugtja a cl hozzfrsi adatkapcsolatt, s megakadlyozza, hogy a rendes csomagok elrjk a szervert. sszekttets-elraszts. A tmad nagy szm, flig vagy teljesen megnyitott TCP-sszekttetst hoz ltre a clhoszttal (a TCP-sszekttetseket a 3. fejezetben trgyaljuk). Lehetsges, hogy a hoszt annyira cl lesz foglalva ezekkel a hamis sszekttetsekkel, hogy nem tudja fogadni a rendes sszekttets-krseket. Vizsgljuk meg a svszlessg-elrasztsos tmadst rszletesebben. Felidzve a ksleltets s a csomagveszts trgyalst az 1.4.2. alfejezetbl, nyilvnval, hogy ha a szerver R b/s hozzfrsi sebessggel rendelkezik, akkor a tmadnak krlbell R b/s sebessggel kell adatot kldenie, hogy krt okozzon. Ha R nagyon nagy, akkor lehet, hogy a tmadsnl egyetlen forrs nem kpes elg forgalmat ellltani ahhoz, hogy krt okozzon a szerverben. St, ha az sszes forgalom egy forrstl szrmazik, akkor egy hosztot megelz tvlaszt szreveheti a tmadst, s mg akkor letilthatja a forgalmat generl forrsrl jv sszes forgalmat, mieltt az kzel jutna a szerverhez. Egy elosztott DoS- (distributed DoS, DDoS) tmadsnl, amelyet az 1.21. bra is mutat, a tmad tbb forrst tart befolysa alatt, s minden forrssal forgalmat kldet a clhoz. Ezzel a megkzeltssel az irnytott forrsoktl rkez sszforgalom sebessgnek megkzeltleg R-nek kell lennie a szolgltats megbntshoz. A tbb ezer irnytott hosztbl ll botneteket kihasznl DDoS-t- madsok napjainkban gyakran elfordulnak [Mirkovic 2005]. A DDoS-tmadsokat sok kal nehezebb szlelni s kivdeni, mint egy egyetlen hosztrl rkez DoS-tmadst. Amint haladunk a knyvben, rdemes elgondolkozni az albbi krdsen: Mit tehetnek a szmtgp-hlzatok tervezi azrt, hogy vdekezzenek a DoStmadsokkal szemben? Ltni fogjuk, hogy a hrom klnbz fajta DoS-tmads kivdshez klnbzkppen kell vdekezni.
tmads indtsa
Tmad
ldozat
legjobb vdekezsek kzl nhny titkostssal mkdik. A hlzati biztonsgban alkalmazott titkostsokat a 8. fejezetben vizsgljuk meg.
felhasznlkrl. Ennek ellenre a mai felhasznlknak mg akkor is kommuniklniuk kell, amikor nem felttlenl bznak meg egymsban. Kommuniklhatnak nvtelenl, kommunikl
hatnak kzvetve harmadik flen keresztl (pldul webes gyorsttron keresztl, amelyet a 2. fejezetben fogunk megvizsglni, vagy a mobilitst elsegt gynkkn keresztl, amelyet a 6. fejezetben tanulmnyozunk), s nem kell hogy megbzzanak sem a hardverben, sem a szoftverben, de mg a levegben sem, amelyen keresztl kommuniklnak. Szmos, a biztonsggal kapcsolatos kihvs van elttnk, amint haladunk elre a knyvben: vdelmet keresnk a csomaglehallgats ellen, a vgponti lczs ellen, a kzbekeldses tmadsok ellen, a DDoS-tmadsok, a krokoz programok stb. ellen. Meg kell jegyez nnk, hogy az egymsban klcsnsen megbz felhasznlk kztti kommunikci in kbb kivtel, mint szably. Isten hozta a modern szmtgp-hlzatok vilgban!
megolds ahhoz, hogy a hang lland sebessggel kerljn tvitelre a kld s a fogad kztt. Az 1960-as vek elejn a szmtgpek egyre nvekv fontossga (s magas ra), valamint az idosztsos szmtgpek megjelense miatt taln termszetes volt a gondolat (legalbbis gy utlag gy tnik), hogy hogyan lehet a szmtgpeket gy sszektni, hogy tbb, egymstl fldrajzilag tvol elhelyezked felhasznl is ignybe vehesse szolgltatsaikat. Az ilyen felhasznlk ltal ellltott forgalom tbbnyire lketekbl (burst) llt, vagyis olyan aktv intervallumbl, mint amilyen pldul egy tvoli szmtgpnek trtn parancskldes, majd az ezt kvet inaktv peridusbl, mialatt vrunk a vlaszra vagy feldolgozzuk a kapott vlaszt. Hrom, egymstl fggetlen kutatcsoport a vilg klnbz pontjain'[Leiner 1998) kezdte felfedezni a csomagkapcsolst, amely a vonal kapcsols hatkony s robusztus alternatvja lehet. Az els csomagkapcsolsrl megjelent munka Leonard Kleinrock [Klein- rock 1961; Kleinrock 1964), egy vgzs MIT-s dik dolgozata volt. A sorban lls elmlett hasznlva Kleinrock munkja elegnsan mutatta be a lketszer forgalmat elllt forr soknl a csomagkapcsolsos megkzelts hatkonysgt. 1964-ben a Rand Institute-nl dolgoz Paul Baran (Baran 1964) vizsglni kezdte a csomagkapcsols hasznlhatsgt katonai hlzatokon trtn biztonsgos hangtvitelre, s az angliai National Physical Laboratoryban Donald Davies s Roger Scantlebury is kifejtettk a csomagkapcsolssal kapcsolatos elkpzelseiket. Az MIT-n, a Rand-nl s az NPL-nl foly munka fektette le a mai internet alapjait. Az internetnek azonban hossz ptsk meg s mutassuk be tpus
trtnete van, amely szintn az 1960-as vekig nylik vissza. J. C. R. Licklider [DEC 1990) s Lawrence Roberts, mindketten Kleinrock kollgi az MIT-n, folytattk a szmtstechnikval foglal-
1972-re az ARPAnet krlbell 15 csomponttal rendelkezett, s elszr nyilvnosan Rbert Kahn mutalta be az 1972-es International Conference on Computer Communications konferencin. Elksztettk az els, az ARPAnet vgrendszerei kztti hoszt-hoszl protokollt, melynek neve network-control protocol (NCP) volt [RFC 001]. gy egy hozz frhet vgpontok kztti protokoll birtokban mr alkalmazsokat lehetett rni. Az els e-mail programot a BBN-nes Ray Tomlinson rta 1972-ben.
A hlzatok szma egyre nvekedett. Utlag lthatjuk, hogy megreti az id a hlzatok sszekapcsolsra szolgl sszefog architektra kifejlesztsre. A hlzatok egymshoz kapcsolsnak ttrmunkjt (a Defense Advanced Research Projects Agency [DARPA] tmogatsval) Vinton Cerf s Rbert Kahn vgezte [Cerf 1974], lnyegben k hoztk ltre a hlzatok hlzatt; az internetting szt a munkjuk jellemzsre alkottk. Ezeket az architekturlis elveket bepletk a TCP-be. A TCP korai verzii azonban mg nagyban klnbztek a mai TCP-tl. A TCP korai verzii kombinltk az adatok vgrendszeri jrakldssel megoldott megbzhat, sorrendtart kzbestst (amely ma is rsze a TCP-nek) a tovbbtsi funkcikkal (amelyeket ma az IP vgez). Az els ksrletek a TCP-vel, valamint annak a felismerse, hogy egy megbzhatatlan, forgalomszablyozs nlkli, vgpontok kztti szlltsi szolgltats fontos az olyan alkalmazsok szmra, mint a hang csomagokban trtn tovbbtsa, az IP TCP-bl trtn kivlshoz, s az UDP kifejlesztshez vezettek. A hrom f internet protokoll, amelyet ma ltunk - TCP, UDP s IP - az 1970-es vek vgn fogalmilag mr a helykn voltak. A DARPA internettel kapcsolatos kutatsai mellett sok ms fontos, hlzatokkal kapcsolatos tevkenysg folyt. A Hawaii-szigeteken Norman Abramson kifejlesztette az A LO- FIAnet-et, egy csomagalap rdis hlzatot, amely a Hawaii-szigeteken tbb tvoli lloms szmra tette lehetv, hogy kommunikljanak egymssal. Az ALOHA protokoll [Abramson 1970] volt az els tbbszrs hozzfrsi protokoll, amely fldrajzilag sztszrt felhasznlknak tette lehetv az egyetlen adatszrsos kommunikcis kzeg (egy rdi- frekvencis
csatorna) megosztst. Metcalfe s Boggs ptett Abramson tbbszrs hozz frs protokolljra, amikor kifejlesztette az Ethernet protokollt [Metcalfe 1976] vezetkes adatszrsos osztott kzegekre (lsd 1.23. bra). rdekes mdon Metcalfe s Boggs Ethernet protokolljt az motivlta, hogy tbb szmtgpet, nyomtatt s megosztott lemezes trolt (diszket) kellett sszekapcsolni [Perkins 1994]. Jval a PC-forradalom s a hlzatok robbansszer gyors fejldse eltt, Metcalfe s Boggs lefektettk a mai szmtgpes helyi hlzatok alapjait. Az Ethernet mszaki megoldsa fontos lpst jelentett a hlzatok sszekapcsolsa fel is. Minden egyes Ethernet LAN nmagban egy hlzat volt, s aho gyan a helyi hlzatok szma ntt, ezek sszekapcsolsa egyre fontosabb vlt. Az Ether nett, az ALOHA-t s a tbbi LAN-megoldst az 5. fejezetben trgyaljuk rszletesen.
801] NCP-rl TCP/IP-re jelents nap volt - attl a naptl kezdve minden hosztnak TCP/IP fltt kellett kommuniklnia. Az 1980-as vek vgn jelents kiterjesztseket tettek a TCP-be, hogy megvalstsk a hosztalap torldskezelst [Jacobson 1988]. Kifejlesztettk a DNS-t, hogy az emberek ltal olvashat internetes nevek (pldul gaia.cs.umass.edu) s a 32-bites IP-cmek kztti megfeleltetst biztostsk [RFC 1034]. Az ARPAnet ezen fejlesztsvel (amely nagyrszt amerikai erfeszts volt) prhuzamosan 1980-ban a francik elindtottk a Minitel-projektet, amely egy nagyra tr terv volt arra, hogy a hlzatokat minden hztartsba eljuttassk. A francia kormny ltal tmogatott Minitel-rendszer egy nyilvnos csomagkapcsolt hlzatbl (amely az X.25 protokollkszleten alapult), Mi nitel-szerverekbl s beptett, kis sebessgre kpes modemmel rendelkez olcs terminlokbl llt. A Minitel nagy siker lett 1984-ben, amikor a francia kormny minden hztartsnak, amely ignyelte, adott egy ingyenes Minitel-terminlt. A Mi nitel-oldalak kztt voltak ingyenes oldalak, mint pldul a telefonknyvoldalak s privt oldalak is, amelyekrt a hasznlattl fggen djat szedtek be minden felhaszn ltl. Fnykorban, az 1990-es vek kzepn tbb mint 20 000 szolgltatst nyjtott az otthoni banki szolgltatsoktl a specilis kutatsi adatbzisokig. A francia lakossg tbb mint 20%-a hasznlta, ami tbb mint 1 millird dollr bevtelt jelentett vente, s 10 000 munkahelyet teremtett. A Minilel 10 vvel azeltt mr jelen volt a francia hztartsokban, mieltt a legtbb amerikai egyltaln hallott volna az internetrl.
Communica- tions-t, a ksbbi Netscape Communications Corporation-t (Cusumano 1998; Quittncr 1998). 1995-re az egyetemistk nap mint nap Mosaic s Netscape bngszt hasznltak a bngszshez. Krlbell ebben az idszakban - kis s nagy - cgek elkezdtek webszer- vereket zemeltetni, s zleteket lebonyoltani a vilghln. 1996-ban a Microsoft bngszkt kezdett el fejleszteni, amivel kezdett vette a bngszhbor a Netscape s a Microsoft kztt, amelyet a Microsoft nyert meg nhny vvel ksbb [Cusumano 1998). Az 1990-es vek msodik fele az internet risi mrtk nvekedsnek s fejldsnek idszaka volt, amikor nagyvllalatok s tbb ezer indul vllalkozs ksztett internetes termkeket s szolgltatsokat. Az internetes e-mail tovbb fejldtt az olyan szolgltatsokkal rendelkez kliensekkel, amelyek cmtrat, csatolmnyokat, hotlinkeket s multimdia-tvitelt kezeltek. Az vezred vgre az internet tbb szz npszer alkalmazs alapjt kpezte, belertve a ngy legfontosabb alkalmazst: e-mail, belertve a csatolmnyokat s a webrl elrhet e-mailt, a vilghl, belertve a webbngszst s az internetes kereskedelmet, azonnali zenetklds kapcsolatlistkkal, amelyet az ICQ vezetett be elsknt, egyenrang felek kztti (peer-to-peer) MP3-megoszts* amelyet elszr a Napster tett lehetv. rdekes mdon az els kt legfontosabb alkalmazst kutatk alkottk meg, az utols kettt pedig nhny fiatal vllalkoz. Az 1995-tl 2001-ig terjed idszakban az internet egy hullmvast volt a pnzgyi piac szmra. j internetes cgek mg azeltt, hogy nyeresgesek lettek volna, kibocstottk az els rszvnyeiket s elkezdtk rulni az rtkpaprpiacon. Sok vllalatot millird dollr rtkre tettek anlkl, hogy jelents bevtele lett volna. Az internetes rtkpaprpiac 2000-2001-ben sszeomlott, s sok j cg bezrt. Ennek ellenre szmos vllalat nagy nyertesknt jelent meg az internetes vilgban, kztk a Microsoft, Cisco, Yahoo, e-Bay, Google s az Amazon.
szolgltatsmegtagads tpus tmadsok sorozatt s a fregtmadsokat (pldul a Blaster-freg) kveten a hlzati biztonsg rendkvl fontos tma lett. Ezek a tmadsok azt eredmnyeztk, hogy betrsjelz rendszereket fejlesztettek ki a tmadsok korai szlelse cljbl, valamint tzfalakat hasznltak a nemkvnatos forgalom kiszrsre. Szmos fontos, biztonsggal kapcsolatos tmt trgyalunk a 8. fejezetben.
A legjabb fejleszts, amelyet kln megemltnk, a P2P-megoldsok. Egy P2P hlzati alkalmazs a felhasznlk szmtgpeinek erforrsait - trhely, tartalom, CPU id, s emberi jelenlt - hasznlja ki, s nagymrtkben fggetlen a kzponti szerverektl. A felhasznlk szmtgpei (azaz az egyenrang felek) jellemzen nem folytonosan kapcsoldnak a hlzatra, gzmos P2P-sikertrtnet ismert az elmlt nhny vbl, belertve a P2P-fjlmegosztst (Napster, Kazaa, Gnutella, eDonkey, LimeWare stb.), fjlelosztst (BitTorrent), IP-n keresztl trtn hangtvitelt (Skype) s az IPTV-t (PPLive, ppStream). Ezek kzl sokat meg fogunk trgyalni a 2. fejezetben.
1.8. sszefoglals
Ez a fejezet rendkvl nagy anyagot fed le! Lttuk a klnbz hardver- s szoftverelemeket, amelyekbl fleg az internet s ltalban a szmtgphlzatok felplnek. A hlzat szlnl kezdtk, megnztk a vgrendszereket, az alkalmazsokat s a vgrendszereken fut alkalmazsoknak nyjtott szlltsi szolgltatst. Megvizsgltuk a hozzfrsi hlzatokban ltalban alkalmazott adatkapcsolati technolgikat s fizikai kzegeket. Ezutn mlyebbre stunk a hlzatban a hlzat kzepe fel, tisztztuk a csomagkapcsols s a vonalkapcsols fogalmt, mint kt alapvet megkzeltst arra, hogyan lehet adatot tvinni egy tvkzl-hlzaton, s mindegyik megkzeltsnek megvizsgltuk az elnyeit s htrnyait. Megvizsgltuk tovbb a globlis internet szerkezett. Megtudtuk, hogy az internet hlzatok hlzata. Lttuk, hogy az internet magasabb s alacsonyabb szint szolgltatkbl ll hierarchikus szerkezete tette lehetv, hogy akkorra nvekedjen, hogy tbb ezer hlzatot foglaljon magba. Ennek a bevezet fejezetnek a msodik rszben szmos, a szmtgphlzatok tern kzponti tmt vettnk grcs ala. Elszr megvizsgltuk a ksleltetsek tpusait, az tbocstkpessget s a csomagvesztst egy csomagkapcsolt hlzatban. Egyszer meny- nyisgi modellt lltottunk fel az tvitelre, a terjedsre, a sorbanllsi ksleltetsekre, valamint az tbocstkpessgre; nagymrtkben tmaszkodni fogunk ezekre a modellekre a knyvben tallhat feladatoknl. Ezutn megvizsgltuk a protokoll rtegzettsget s a szolglati modelleket, azaz a hlzatok kulcsfontossg tervezsi elveit, amelyekre hivatkozni fogunk a knyv ksbbi rszeiben. Megvizsgltunk tovbb nhny tmadsi formt, amely a leggyakrabban elfordul az interneten. A hlzatokba trtn bevezetst a szmtgp-hlzatok rvid trtnetvel zrtuk. Az 1. fejezet nmagban is egy kis, a szmtgp-hlzatokrl szl eladssorozat. gy valban sok rszt rintettnk ebben az 1. fejezetben. Ha egy kicsit soknak tnik, ne aggdjunk. A kvetkez fejezetekben jra megnznk minden tmt sokkal rszletesebben (ez egy gret, s nem fenyegets!). Ennl a pontnl remljk, az olvas gy hagyja el ezt a fejezetet, hogy van valamilyen elkpzelse egy hlzat alkotrszeirl, a hlzattal kapcsolatos szavakrl, kifejezsekrl (ne vonakodjon visszalapozni ebbe a fejezetbe), s egyre n a vgya, hogy tbbet tudjon meg a hlzatokrl. Ez a feladat ll elttnk a knyv tovbbi rszben.
A knyv szerkezete
Mieltt brmilyen tnak nekivg, rdemes rnznie a trkpre, hogy jobban megismerkedjen a nagyobb utakkal s keresztezdsekkel, amelyek n eltt llnak. Az t clja, amelynek most nekivgunk az, hogy mlyen megrtsk a szmtgp-hlzatok hogyanjt s mirtjt. A trkpnk a knyv fejezeteinek sorozata: 1. 2. 3. 4. 5. 6. 7. 8. 9. A szmtgp-hlzatok s az internet Az alkalmazsi rteg A szlltsi rteg A hlzati rteg Az adatkapcsolati rteg s helyi hlzatok Vezetk nlkli s mobilhlzatok Multimdia-hlzatok A szmtgp-hlzatok biztonsga Hlzatfelgyelet
A 2-5. fejezet alkotja a knyv magjt. Vegyk szre, hogy ezeket a fejezeteket az trte- g internetprotokoll-kszlet fels ngy rtege kr szerveztk. Vegyk szre azt is, hogy utazsunkat az internet protokollkszletnek tetejn fogjuk kezdeni, nevezetesen az alkalmazsi rtegnl, s innen fogunk lefel haladni. A fentrl lefel trtn halads mgtti elgondols az, hogy ha egyszer megrtjk az alkalmazsokat, meg fogjuk rteni a hlzati szolgltatsokat, amelyek az alkalmazsok tmogatshoz szksgesek. Ezutn cserbe megvizsglhatjuk azokat a klnfle mdokat, ahogyan ezeket a szolgltatsokat egy h lzati architektra megvalsthatja. gy az alkalmazsok korai megismerse motivl az anyag tbbi rsznek megismerst. A knyv msodik fele, a 6. fejezettl a 9. fejezetig, a modern szmtgphlzatok ngy rendkvl fontos (s valamennyire fggetlen) tmjra sszpontost. A 6. fejezetben megvizsgljuk a vezetk nlkli s a mobil megoldsokat, kztk a vezetk nlkli helyi hlzatokat (belertve a WiFi-t, a WiMAX-ot s a Bluetooth-t), a mobiltelefon-hlzatokat (kztk a GSM-et) s a mobilitst (mind az IP-, mind a GSM-hlzatokban). A 7. fejezet ben (multimdiahlzatok) megvizsgljuk az olyan hang- s videoalkalmazsokat, mint az internettelefon, a videokonferencia s a trolt mdia folyamszer letltse. Megvizsgljuk azt is, hogyan tervezhet gy egy csomagkapcsolt hlzat, hogy lland szolgltatsi minsget biztostson hang- s videoalkalmazsoknak. A 8. fejezetben (szmtgp-hlzatok biztonsga) elszr megnzzk a titkosts s a hlzati biztonsg alapjait, majd megvizsgljuk, hogyan alkalmazzk az alapclmletet az internettel sszefggsben. Az utols, 9. fejezetben (hlzatfelgyelet) megvizsgljuk a kulcsfontossg hlzatfelgyele ti krdseket, valamint a hlzatfelgyeletnl hasznlt fontosabb internetprotokollokat.
Krdsek
1.1. al fejezet KI.
94
1. A SZMTGP-HLZATOK S AZ INTERNET
Mi a klnbsg egy hoszt s egy vgrendszer kztt? Sorolja fel a vgrendszerek tpusait. Vajon a webszerver egy vgrendszer? K2. A protokoll szt gyakran hasznljk diplomciai kapcsolatok lersra. Adjon egy pldt egy diplomciai protokollra. 1.2. alfejezet K3. Mi a kliensprogram? Mi a szerverprogram? Igaz-e, hogy egy szerverprogram szolgltatsokat ignyel s kap egy kliensprogramtl? K4. Soroljon fel hat hozzfrsi megoldst. Csoportostsa ket az albbiak szerint: otthoni hozzfrs, vllalati hozzfrs, mobil hozzfrs. K5. A HFC tviteli sebessge egy felhasznlhoz rendelt vagy megosztott a felhasznlk kztt? Lehetsgesek-e tkzsek a HFC letltsi csatornn? Indokolja vlaszt! K6. Sorolja fel a hozzfrsi megoldsokat, amelyek elrhetek a lakhelyn. Minden tpushoz adja meg a reklmozott letltsi sebessget, feltltsi sebessget s a havidjat. K7. Mennyi az Ethernet LAN-ok tviteli sebessge? Egy adott tviteli sebessg esetn adhat-e minden felhasznl a LAN-on folyamatosan azzal a sebessggel? K8. Milyen fizikai kzegeken futhat Ethernet? K9. A betrcsz modemeket, a HFC-t s a DSL-t mind otthoni hozzfrseknl hasznljk. Adja meg az tviteli sebessgek tartomnyt, amelyre ezek a hozzfrsi megoldsok kpesek, s adja meg, hogy az tviteli sebessg megosztott vagy dediklt. K10. rja le a legnpszerbb mai vezetk nlkli internet-hozzfrsi megoldsokat. lltsa szembe, s hasonltsa ssze ket. 1.3. fejezel K l l . Milyen elnyei vannak egy vonalkapcsolt hlzatnak egy csomagkapcsolttal szemben? Milyen elnyei vannak a TDM-nek az FDM-mel szemben egy vonalkapcsolt hlzatban? K12. Mirt mondjk, hogy a csomagkapcsols statisztikus nyalbolst hasznl? Hasonltsa ssze a statisztikus nyalbolst a TDM esetn alkalmazott nyalbolssal. KI3. Tegyk fel, hogy pontosan egy csomagkapcsol van a kld s a fogad hoszt kztt. A kld hoszt s a kapcsol kztti tviteli sebessg R^ a kapcsol s a fogad hoszt kztti tviteli sebessg R,. Ha feltesszk, hogy a kapcsol trol-s-to- vbbt tpus csomagkapcsolst hasznl, mennyi a teljes vgpontok kztti ksleltets egy L hosszsg csomag kldse esetn (figyelmen kvl hagyva a sorban llst, a terjedsi ksleltetst s a feldolgozsi ksleltetst). K14. Mi az 1. szint s a 2. szint szolgltatk kztti legfontosabb klnbsg? K15. Tegyk fel, hogy felhasznlk osztoznak egy 2 Mb/s-os adatkapcsolaton.
95
Tegyk fel azt is, hogy minden felhasznlnak 1 Mb/s-ra van szksge, amikor adatot kld, de minden felhasznl csak az id 20%-ban teszi ezt. (Lsd a statisztikus nyalbols trgyalst az 1.3. alfejezetben.) (a) Vonalkapcsols esetn hny felhasznlt tmogathatunk? (b) A feladat tbbi rszben tegyk fel, hogy csomagkapcsolst hasznlunk. Mirt nem lesz gyakorlatilag sorbanllsi ksleltets az adatkapcsolat eltt, ha kett vagy kevesebb felhasznl kld egyszerre? Mirt lesz sorbanllsi ksleltets, ha hrom felhasznl kld egyszerre? (c) Adja meg annak a valsznsgt, hogy egy adott felhasznl pp adatot kld. (d) Tegyk fel, hogy hrom felhasznl van. Adja meg a valsznsgt annak, hogy brmely adott idpillanatban mind a hrom felhasznl kld adatot. Adja meg az idszakaszt, amely alatt a sor n. 1.4. alfejezet Kl. Tegyk fel, hogy valaki zenetet kld egy forrshoszttl egy clhosztig egy rgztett tvonalon keresztl. Sorolja fel a vgpontok kztti ksleltets sszetevit. Ezek kzl melyek llandak, s melyek vltozhatnak? K17. Nzze meg a Transmission Versus Propagation Delay programot a kapcsold weboldalunkon. Az elrhet sebessgek, terjedsi ksleltetsek s csomagmretek kztt talljon egy kombincit, amelynl a kld befejezi az adst, mieltt a csomag els bitje elri a fogadt. Talljon egy msik kombincit, ahol a csomag els bitje clba r, mieltt az ad befejezi az adst. K18. Mennyi idt vesz ignybe egy 1000 byte hosszsg csomag terjedse egy 2500 km hossz adatkapcsolaton, ahol a terjedsi sebessg 2,5 x 10* m/s, s az tviteli sebessg 2 Mb/s? Egy kicsit ltalnosabban: mennyi idt vesz ignybe egy l hosszsg csomag terjedse egy d hosszsg adatkapcsolaton, ahol a terjedsi sebessg 5, az tviteli sebessg pedig R b/s? Fgg-e ez a ksleltets a csomag hossztl? Fgg-e ez a ksleltets az tviteli sebessgtl? K19. Tegyk fel, hogy az A hoszt egy nagy fjlt akar kldeni a B hosztnak. Kzttk az tvonalon hrom adatkapcsolat van, amelyeknek a sebessge: R} = 500 kb/s, R? = 2 Mb/s, R3 = 1 Mb/s. (a) Feltve, hogy ms forgalom nincs a hlzaton, mennyi az tbocstkpessg a fjltvitelnl? (b) Tegyk fel, hogy a fjl 4 milli bjt hossz. Krlbell mennyi idt vesz ignybe az tvitele az A hoszt ti a B hoszt ig? (c) Vlaszoljuk meg az (a) s a (b) krdseket jra, de ezttal cskkentsk R2- t 100 kb/s-ra. K20. Tegyk fel, hogy az A vgrendszer egy nagy fjlt szeretne kldeni a B vgrendszernek. Nagyon magas szinten, rja le, hogy az A vgrendszer hogyan kszt csomagokat a fjlbl. Amikor az egyik ilyen csomag megrkezik egy csomagkapcsolhoz, a csomag milyen informcija alapjn hatrozza meg a kapcsol, hogy melyik adatkapcsolaton kell a csomagot tovbbtani? Mirt hasonl az internet csomagkapcsolsa ahhoz, amikor az egyik vrosbl a msikba vezetnk, s tkzben krdezzk meg a helyes irnyt? K21. Indtsa el a Queuing and Loss programot a kapcsold weboldalon. Mekkora a legnagyobb kibocstsi sebessg s a legkisebb tviteli sebessg? Mennyi a
96
1. A SZMTGP-HLZATOK S AZ INTERNET
forgalomintenzits ezekkel a sebessgekkel? Futtassa le a programot ezekkel a sebessgekkel, s hatrozza meg, mennyi id mlva kvetkezik be csomagveszts. Ezutn ismtelje meg a ksrletet msodszor is, s hatrozza meg jra, mennyi id mlva kvetkezik be csomagveszts. Klnbznek az rtkek? Indokolja vlaszt! 1.5. alfejezet K22. Soroljon fel t feladatot, amelyet egy rteg ellthat. Lehetsges, hogy ezek kzl egyet (vagy tbbet) kett (vagy tbb) rteg is ellthat? K23. Mi az internetprotokoll-kszlet t rtege? Melyek az egyes rtegek legfontosabb feladatai? K24. Mit neveznk alkalmazsi zenetnek, szlltsi szegmensnek, hlzati datagram- nak, s adatkapcsolati keretnek? K25. Az internetprotokoll-kszlet mely rtegeit dolgozza fel egy tvlaszt? Mely rtegeket dolgozza fel egy adatkapcsolati rtegben mkd kapcsol? Mely rtegeket dolgozza fel egy hoszt? 1.6. al fejezet K26. Mi a klnbsg egy vrus, egy freg s egy trjai fal kztt? K27. rja le, hogyan jn ltre egy botnet, s hogyan hasznlhatjk fel egy DDoStmadsra? K28. Tegyk fel, hogy Alice s Bob csomagokat kldenek egymsnak egy szmtgphlzaton keresztl. Tegyk fel, hogy Trudy gy helyezkedik el a hlzaton, hogy elkaphatja az sszes csomagot, amit Alice kld, s brmit kldhet Bobnak; tovbb elkaphatja a Bobtl rkez csomagokat is, s brmit kldhet Alice-nek. Soroljon fel nhny krtkony dolgot, amelyet Trudy megtehet egy ilyen helyzetben.
Feladatok
FI. Tervezzen, s jellemezzen egy olyan alkalmazsi rtegbeli protokollt, amelyet egy pnzfelvev-automata s egy bank kzponti szmtgpe kztt hasznlnak. A protokollnak lehetv kell tennie, hogy egy felhasznl krtyjt s jelszavt leellenrizzk, le lehessen krdezni a szmlaegyenleget (amelyet a kzponti szmtgpen tartanak nyilvn), s pnzt lehessen felvenni a szmlrl (azaz pnzt kiadni a felhasznlnak). A protokollentitsoknak tudniuk kell kezelni azt az ltalnos esetet, amikor nincs annyi pnz a szmln, ami fedezn a pnzfelvtelt. Specifiklja a pro tokollt gy, hogy megadja a vltott zeneteket, valamint az zenetek kldse, s fogadsa esetn az automata vagy a bank kzponti szmtgpe ltal tett lpseket. Vzolja fel a protokoll mkdst egy olyan esetre, amikor egy egyszer pnzfelvtel trtnik hiba nlkl, felhasznlva egy olyan diagramot, amely hasonlt az 1.2. brhoz, rja le, milyen felttelezsekkel l a protokoll az alatta lv, kt vgpont kztti szlltsi szolgltatssal szemben. F2. Tekintsnk egy alkalmazst, amely lland sebessggel kld adatot (pldul a kld N-bites egysgekben llt el adatot k idegysgenknt, ahol k kicsi s rgztett). Tovbb, ha egy ilyen alkalmazs elindul, akkor viszonylag hossz ideig fut. Vlaszolja meg az albbi krdseket, rvid bizonytssal:
97
(a) Csomagkapcsolt vagy vonalkapcsolt hlzat lenne a megfelelbb ennek az alkalmazsnak? Mirt? (b) Tegyk fel, hogy csomagkapcsolt hlzatot hasznlunk, s csak olyan forgalom van a hlzaton, amelyet a fentebb lert alkalmazsok lltanakel. Tovbb tegyk fel, hogy az alkalmazsok tviteli sebessgeinek sszege kisebb, mint brmely adatkapcsolat kapacitsa. Szksges-e valamilyen torldsszablyozs? Mirt?
98
F3. Tekintsk az 1.8. brn lthat vonalkapcsolt hlzatot. Emlkezznk vissza, hogy n vonal van minden adatkapcsolaton. (a) Legfeljebb mennyi egyidej adatkapcsolat lehet folyamatban ezen a hlzaton brmely idpillanatban? (b) Tegyk fel, hogy minden adatkapcsolat a bal fels sarokban lv kapcsol, s a jobb als sarokban lv kapcsol kztt van. Legfeljebb hny egyidejadatkapcsolat lehet folyamaiban? F4. Nzze meg jra az 1.4. alfejezetben lv aulkaravn hasonlatot. A terjedsi sebessg itt is legyen 100 km/h. (a) Tegyk fel, hogy a karavn 200 km utat tesz meg, egy fizetkapu ell indulnak, tmennek egy msodik fizetkapun, s befejezik az ulat a harmadik fizetkapunl. Mennyi a vgpontok kztti ksleltets? (b) Ismt vlaszolja meg (a)-t, de ezttal a karavn lljon 10 helyeit 7 autbl. F5. Ez az alapfok feladat kezdi a terjedsi cs az tviteli ksleltetst, az adattviteli hlzatok kt kzponti fogalmt vizsglni. Kpzeljnk el kt hosztot, A-t s B-t, amelyeket egy R b/s sebessg adatkapcsolat kt ssze. Tegyk fel, hogy a kt hosztot m mter tvolsg vlasztja el egymstl, s a terjedsi sebessg az adatkapcsolaton s m/s. Az A hoszt egy L bit hosszsg csomagot kld a B hosztnak. (a) Fejezze ki a terjedsi ksleltetst m s s fggvnyben. (b) Hatrozza meg a csomag dilyile |, tviteli idejt Ls R fggvnyben. (c) rjon fel egy kifejezst a vgpontok kztti ksleltetsre, ahol a feldolgozsi s a sorbanllsi ksleltetst nem veszi figyelembe. (d) Tegyk fel, hogy az A hoszt t = 0 idnl kezdi kldeni a csomagot. Hol van a csomag utols bitje a t = d 4tv ,tci. idpillanatban? (e) Tegyk fel, hogy dl(Tic<ieu nagyobb, mint / tvi ,d. Hol van a csomag els bitje a t = / ilv ci, idpillanatban? (f) Tegyk fel, hogy dtetfcdi kisebb, mint dixyMh. Hol van a csomag els bitje a = dityilc ii idpillanatban? (g) Legyen s = 2,5 x 10* m/s, L = 100 bit s R = 28 kb/s. Mennyi az m tvolsg akkor, ha ^terjedsi dtvitcli? F6. Ebben a feladatban egy vals idej hangtvitelt tekintnk az A hoszttl a B hosztig egy csomagkapcsolt hlzaton keresztl (VoIF). Az A hoszt menet kzben talaktja az analg hangot egy digitlis, 64 kb/s-os bitfolyamm. Ezutn az A hoszt a biteket 48 bjtos csomagokba osztja. Az A s a B hoszt kztt egyetlen adatkapcsolat van; az tviteli sebessg 1 Mb/s, a terjedsi ksleltets 2 msec. Amint az A hosztnl sszegylik egy csomag, elkldi a B hosztnak. Amint a B hoszt megkapja a teljes csomagot, talaktja a csomag bitjeit analg jell. Mennyi id telik el egy bit ltrehozstl (ami az eredeti analg jelbl jn ltre az A hosztnl) a bit dekdolsig (amely mr az analg jel rsze a B hosztnl)? F7. Kpzeljk el, hogy felhasznlk osztoznak egy 1 Mb/s-os adatkapcsolaton. Tegyk fel, hogy minden felhasznlnak 100 kb/s-ra van szksge, amikor adatot kld, de minden felhasznl csak az id 10 szzalkban ad. (Lsd a statisztikus nyalbols trgyalst az 1.3. alfejezetben.) (a) Hny felhasznlt tmogat a rendszer vonalkapcsols esetn? (b) A feladat tovbbi rszben tegyk fel, hogy csomagkapcsolst hasznlunk. Menynyi a valsznsge, hogy egy adott felhasznl pp adatot kld? (c) Tegyk fel, hogy 40 felhasznl van. Mennyi annak a valsznsge, hogy
99
brmely adott pillanatban pontosan n szm felhasznl kld pp adatokat? (Segtsg: hasznlja a binomilis eloszlst.) (d) Mennyi a valsznsge, hogy 11 vagy tbb felhasznl kld adatokat egy idben? F8. Tekintsk a statisztikus nyalbols 1.3. alfejezetben tallhat trgyalst, ahol egy pldt lthatunk egy 1 Mb/s-os adatkapcsolattal. A felhasznlk 100 kb/s sebessggel lltanak el adatokat, amikor elfoglaltak, de csak p = 0,1 valsznsggel vannak adatok ellltsval elfoglalva. Tegyk fel, hogy az 1 Mb/s-os adatkapcsolatot kicserljk egy 1 Gb/s sebessgre. (a) Mn nyi az az N legtbb felhasznl, akit egyidejleg kiszolglhat a rendszer vonalkapcsols esetn? (b) Tegyk fel, hogy a rendszer csomagkapcsolst hasznl, s M szm felhasznl van. Adja meg annak a valsznsgt (p, M s N tekintetben), hogy tbb mint N felhasznl kld pp adatot. F9. Tekintsnk egy L hosszsg csomagot, amelyet elkldenek az A vgrendszerrl, thalad egy adatkapcsolaton egy csomagkapcsolhoz, s innen egy msik adatkapcsolaton keresztl tovbbhalad a cl vgrendszerhez. Jellje d,y s, s R, az /. adat- kapcsolat hosszt, terjedsi sebessgt s tviteli sebessgt, ahol / = 1, 2. A csomag- kapcsol mi nden csomagot d Mdo i goriil ideig ksleltet. H a 0 sorbanl lsi ksleltetst ttele znk fel, akkor mennyi a teljes vgpontok kztti ksleltets, amelyet a csomag szenved, dn s R (i = 1, 2) s L vonatkozsban? legyk fel, hogy a csomag 1000 bjt hossz, a terjedsi sebessg mindkt adatkapcsolaton 2,5 x 10* m/s, az tviteli sebessg mindkt adatkapcsolaton 1 Mb/s, a csomagkapcsol feldolgozsi ksleltetse 1 msec, az els adatkapcsolat hossza 4000 km, az utols 1000 km. Mennyi a vgpontok kztti ksleltets ezeknl az rtkeknl? F10. Az elz feladatbaivtegyk fel, hogy /?, = R2 = R s <4idoi R ii = 0. legyk fel tovbb, hogy a csomagkapcsol nem trol-s-tovbbt tpus tvitelt alkalmaz, hanem azonnal elkld minden berkez bitet, mieltt az egsz csomag megrkezne. Mennyi a vgpontok kztti ksleltets? FII. Kgy csomagkapcsol megkap egy csomagot, s meghatrozza, melyik kimen adat- kapcsolatn kell a csomagot tovbbtani. Amikor a csomag megrkezik, egy msik csomagot mrpp fligelkldtekezen a kimenadatkapcsolaton,stovbbi hrom csomag vrakozik kldsre. A csomagokat rkezsi sorrendben tovbbtjk. Tegyk fel, hogy minden csomag 1000 bjt hossz, s az adatkapcsolat sebessge 1 Mb/s. Mennyi a sorbanllsi ksleltets erre a csomagra? ltalnosabban, mennyi a sorbanllsi ksleltets, ha minden csomag L hossz, az tviteli sebessg Ry az pp klds alatt ll csomag els x bitjt kldtk mr el, s n csomag vrakozik a sorban? FI2. Tegyk fel, hogy ti csomag egyszerre rkezik meg egy adatkapcsolatra, amelyen pp nem visznek t egy csomagot sem, s amelyre nem vrakozik pp egyetlen csomag sem. Minden csomag L hossz, s az adatkapcsolat tviteli sebessge R. Mennyi az tlagos sorbanllsi ksleltets n csomag esetn? F13. Tekintskasorbanllsi ksleltetst egy tvlaszt (egyik kimen adatkapcsolata eltt lv) puferben. legyk fel, hogy minden csomag L bit hossz, az tviteli sebessg R b/s, s ti csomag rkezik egy idben a puftrbe
100
1. A SZMTGP-HLZATOK S AZ INTP.RNfc!
minden LN/R. msodpercben. Adja meg egy csomag tlagos sorbanllsi ksleltetst. (Segtsg: A sorbanllsi ksleltets az els csomagnl 0; a msodik csomagnl L/R; a harmadik csomagnl 2L/R. Az ti. csomagot mr elkldtk, amikor a msodik adag csomag megrkezik.) Tekintsk a sorbanllsi ksleltetst egy tvlaszt pufferben. Jellje / a forgalomintenzitst; azaz / = La/R. Tegyk fel, hogy a sorbanllsi ksleltets IL/R (1 - /) alak, ahol / < 1. (a) Adja meg a teljes ksleltets kplett, azaz a sorbanllsi s az tviteli ksleltets sszegt. (b) Rajzolja fel a teljes ksleltetst L/R fggvnyben. (a) ltalnostsa a teljes ksleltets 1.4.3. alfejezetben megadott kplett heterogn feldolgozsi sebessgekre, tviteli sebessgekre s terjedsi ksleltetsekre. (b) Ismtelje meg (a)-t, de ezttal tegyk fel, hogy minden csompontnl Sorbanllsi tlagos sorbanllsi ksleltets van. Ksztsen tvonal kvetst (Traceroute) ugyanazon a kontinensen lv forrs s cl kztt a nap hrom klnbz rjban. (a) Adja meg a krljrsi ksleltetsek tlagt s a norml eloszlst mindhrom rra. (b) Adja meg minden rban az tvonalon lv tvlasztk szmt. Vltoztak az tvonalak brmely ra alatt? (c) Prblja meghatrozni a szolgltati hlzatok szmt, amelyeken a Traceroute csomagok thaladnak a forrstl a clig. A hasonl nev s/vagy hasonl IP-cm tvlasztkat tekintsk ugyanazon szolgltat hlzatba tartoznak. A ksrletben a legnagyobb ksleltetsek az egymst kvet szolgltatk kapcsoldsi pontjainl vannak? (d) Ismtelje meg a fentieket olyan forrssal s cllal, amelyek ms kontinensen helyezkednek el. Hasonltsa ssze a kontinensen belli s a kontinensek kztti ksrlet eredmnyeit. Tekintsk az 1.16. (b) brhoz kapcsold pldt az tbocstkpessgre. Tegyk fel, hogy M szm kliens-szerver pr van 10 helyett. Jellje R Rs. s R a szerver adatkapcsolatok, a kliens adatkapcsolatok s a hlzati adatkapcsolat tviteli sebessgt. Tegyk fel, hogy a tbbi adatkapcsolat bsges kapacitssal rendelkezik, s az M kliens-szerver pr ltal ellltott forgalmon kvl nincs ms forgalom a hlzaton. Vezessen le egy ltalnos kifejezst az tbocstkpessgre K Rn R s M vonatkozsban. Tekintsnk kt hosztot, A-t s B-t, amelyek 10 000 km tvolsgban vannak egymstl, s egy R = 1 Mb/s sebessg kzvetlen adatkapcsolattal vannak sszektve. Tegyk fel, hogy a terjedsi sebessg az adatkapcsolaton 2,5 x 10 s m/s. (a) Szmtsa ki a svszlessg s a ksleltets szorzatt, azaz R x dictjed^-t. (b) Kpzeljk el, hogy egy 400 000 bit hossz fjlt kldnk az A hosztrl a B hosztra. 'legyk fel, hogy a fjlt folytonosan kldjk, egyetlen nagy zenetknt. Hny bit lesz legfeljebb az adatkapcsolaton brmely adott idpillanatban? (c) rtelmezze a svszlessg s a ksleltets szorzatt. (d) Milyen hossz (mterben) egy bit az adatkapcsolaton? Hosszabb, mint egy fut- ballplya? (e) Vezessen le egy ltalnos kifejezst a bit hosszra az s terjedsi sebessg, az R tviteli sebessg, s az m adatkapcsolathossz
F14.
F15.
F16.
F17.
F18.
101
vonatkozsban. F19. Tekintsk a P 18-as feladatot, s most tegyk fel, hogy megvltoztathatjuk R1. Milyen R rtkre fog megegyezni egy bit hossza az adatkapcsolat hosszval? F20. Tekintsk a Pl8-as feladatot, de most R = 1 Gb/s-os adatkapcsolati sebessggel. (a) Szmtsa ki a svszlessg s a ksleltets szorzatt, azaz R
102
1. A SZMTGP-HLZATOK S AZ INTP.RNfc!
(b) Kpzeljk el, hogy egy 400 000 bit hossz fjlt kldnk az A hoszttl a B hosztra. Tegyk fel,hogy a fjlt folytonosan kldjk,egyetlen nagy zenetknt. Hny bit lesz legfeljebb az adatkapcsolaton brmely adott idpillanatban? (c) Milyen hossz (mterben) egy bit az adatkapcsolaton? Tekintsk jra az F18. feladatot. (a) Mennyi idt vesz ignybe a fjl kldse, ha feltesszk, hogy folytonosan kldjk? (b) Tegyk fel, hogy a fjlt 10 csomagra daraboljuk fel, ahol minden csomag 40 000 bitet tartalmaz. Tegyk fel azt is, hogy a fogad minden csomagot nyugtz, s a nyugta csomag tvitei ideje elhanyagolhat. Vgl tegyk fel, hogy a kld nem kldhet addig csomagot, amg az elzt nem nyugtztk. Mennyi idt vesz ignybe a fjl tvitele? v (c) Hasonltsa ssze az (a) s (b) eredmnyeit. Tekintsnk egy 10 Mb/s-os mikrohullm adatkapcsolatot egy geostacionrius mhold s a fldi bzisllomsa kztt. A mhold percenknt kszt egy digitlis fnykpet, s elkldi a bzisllomsnak. Tegyk fel, hogy a terjedsi sebessg 2,4 x 10 8 m/s. (a) Mennyi az adatkapcsolat terjedsi ksleltetse? (b) Mennyi a svszlessg s a ksleltets szorzata, azaz R x dlcl}cHi? (c) jellje x a fnykp mrett. Mekkora az a legkisebb A - rtk, amelynl a mikrohullm adatkapcsolaton keresztl folyamatos lesz az tvitel? Tekintsk az 1.5. alfejezetben trgyalt, rtegzettsgrl szl trgyalsunkban lv lgi kzlekedsi hasonlatot, s a protokoll adategysgekhez trtn fejrszhozzadst, mikzben haladnak lefel a protokollkszleten. Van-e megfelelje a fejrsz informcinak, amit hozzadnak az utasokhoz s a csomagokhoz, amint haladnak lefel a lgi kzlekeds protokollkszletn? A modern csomagkapcsolt hlzatokban a forrs hoszt kisebb csomagokra darabolja a hossz, alkalmazsi zeneteket (pldul egy kp vagy egy zenei fjl), s ezeket a csomagokat kldi el a hlzaton. A fogad ezutn sszerakja a csomagokat, sellltja az eredeti zenetet. Ezt zenet szegmentlsnak nevezzk. Az 1.24. bra egy zenet vgpontok kztti tvitelt mutatja be zenetszegmentlssal s anlkl. Tekintsk az 1.24. brn a forrstl a clig tkldend 7,5 x 10 6 bit hossz fjlt. Tegyk fel, hogy az brn minden adatkapcsolat 1,5 Mb/s sebessgre kpes. I lanyagoljuk el a terjedsi, sorbanllsi s feldolgozsi ksleltetst.
F21.
F22.
F23.
F24.
Forrs
Csomagkapcsol Csomagkapcsol Cl
Cl
103
104
1. A SZMTGP-HLZATOK S AZ INTP.RNfc!
Csomagkapcsol Csomagkapcsol
(a )
i c>oma9 G8S3 *
Forrs
(b)
(a) Tekintsk az zenet kldst a forrstl a clig zenetszegmentls nlkl. Menynyi idt vesz ignybe az zenet tvitele a forrshoszttl az els csomagkapcsolig? Figyelembe vve, hogy minden kapcsol trol-stovbbt tpus csomag- kapcsolst hasznl, mennyi ideig tart az zenet teljes tvitele a forrshoszttl a cl hoszt ig? (b) Tegyk fel, hogy az zenetet 5000 csomagra daraboljuk, ahol minden csomag 1500 bjt hossz. Mennyi idt vesz ignybe az els csomag tvitele a forrshoszttl az els kapcsolig? A forrshoszt akkor kldi a msodik csomagot az els kapcsolnak, amikor az els kapcsol az els csomagot a msodik kapcsolnak kldi. Mikor fog a msodik csomag teljesen megrkezni az els kapcsolhoz? (c) Mennyi ideig tart a fjl tvitele a forrshoszttl a clhosztig, ha zenetszegmentlst hasznlunk? Hasonltsa ssze ezt az eredmnyt az (a) rsznl kapott eredmnnyel, s indokolja. (d) rja le az zenetszegmentls htrnyait. F25. Ksrletezzen a knyv weboldaln tallhat Message Segmentation programmal. Kapcsoldnak a programban lthat ksleltetsek az elz feladatban lthat ksleltetsekhez? Hogyan befolysolja az adatkapcsolat terjedsi sebessge a teljes, vg- * pontok kztti ksleltetst csomagkapcsols (zenetszegmentlssal) s zenetkap- csols esetn? F26. Tekintsk egy nagy, F bit hossz fjl tvitelt az A hosztrl a B hosztra. A s B kztt kt adatkapcsolat (s egy kapcsol) van, s az adatkapcsolatokon nincs torlds (azaz nincs sorbanllsi ksleltets). Az A hoszt S bites szegmensekre darabolja a fjlt, s 40 bites fejrszt ad minden szegmenshez, L = 40 + S bit hosszsg csomagokat ellltva. Minden adatkapcsolat tviteli sebessge R b/s. Adja meg azon S rtket, amelyre az A hoszt s B hoszt kztti fjltvitel ksleltetse a legkisebb lesz. Hagyja figyelmen kvl a terjedsi ksleltetst.
Gondolkodtat krdsek
Gl. Milyen vezetk nlkli mobil szolgltatsok rhetk el az n krnyezetben? G2. IEEE 802.11 vezetk nlkli I.AN-megoldst hasznlva tervezzen egy otthoni hlzatot a sajt s a szlei otthonba. Sorolja fel az otthoni hlzatban lv egyes termktpusokat s az raikat. G3. Ismertesse a PC-k kztt mkd Skype-szolgltatst. Prblja ki a Skype PC-k kztti videoszolgltatst, s rja le tapasztalatait. G4. A Skype egy olyan szolgltatst knl, amely lehetv teszi, hogy telefonhvst kezdemnyezznk egy PC-rl egy hagyomnyos telefonra. Ez azt jelenti, hogy a hanghvsnak t kell mennie az interneten s a telefonhlzaton keresztl is. Hogyan valsthat ez meg? G5. Mi a rvid szvegeszenet-szolgltats (Short Message Service, SMS)? Mely orszgokban/kontinenseken npszer ez a szolgltats? Lehetsges SMS-t kldeni egy weboldalrl egy hordozhat telefonra? G6. Mit jelent a trolt vide folyamszer letltse? Ma milyen npszer weboldalak
G7. Mit jelent az l vide P2P folyam szer letltse? Ma milyen npszer weboldalak knlnak ilyen szolgltatst? G8. Keressen t vllalatot, amely P2P fjlmegoszt-szolgltatst knl. Milyen tpus fjlokkal (azaz tartalommal) foglalkoznak ezek a cgek? G9. Ki tallta fel az ICQ-t, az els azonnali zenetkld szolgltatst? Mikor talltk fel, s mennyi idsek voltak a feltallk? Ehhez hasonlan ki tallta fel a Napstert? Mikor talltk fel, s mennyi idsek voltak a feltallk? G10. Hasonltsa ssze a WiFi vezetk nlkli internet-hozzfrseket s a 3G vezetk nlkli internet-hozzfrseket. Milyen sebessget nyjtanak ezek a szolgltatsok? Mennyibe kerlnek? Jellemezze a barangolst (roaming) s a mindenhonnan elrhet hozzfrseket. Gll. Mirt nem ltezik mr az eredeti Napster P2P-fjlmegoszt szolgltats? Mi az RIAA, s milyen intzkedseket tesz, hogy korltozza a szerzi joggal vdett tartalmak P2P-megosztst? Mi a klnbsg a szerzi jog kzvetlen s kzvetett megsrtse kztt? G12. Mi az a BitTorrent? Miben klnbzik alapveten az olyan P2P fjlmegoszt hlzatoktl, mint az eDonkey, a LimeWare s a Kazaa? G13. n szerint 10 v mlva mg mindig szleskren jelen lesz a szerzi joggal vdett fjlok szmtgp-hlzatokon keresztl trtn megosztsa? Fejtse ki indoklst is.
Vlaszol
Leonard Kleinrock
Leonard Kleinrock a szmtstechnika professzora a Los Angeles-i University of Californin. 1969-ben az szmtgpe lett az internet els csompontja. 1961ben kidolgozta a csomagkapcsols alapelveit, amely az internet mszaki htterv vlt. Elnke s alaptja a Nomadix Inc.-nck, egy olyan vllalatnak, amely jobb hozzfrst biztost a szles sv internetszolgltatsokhoz. Villa mosmrnkknt vgzett a City College of New York-on (CCNY), majd a mester s a PhD fokozatt az MIT-n szerezte meg. Mi ksztette arra, hogy hlzatos/internetes mszaki megoldsokra szakosodjon? 1959-ben PhD-sknt az MIT-n krlnztem, s azt lttam, hogy a legtbb osztlytrsam informcielmleti s kdolselmleti kutatsokat vgez. Az MIT-n volt az a nagy kutat, Claude Shannon, aki elindtotta ezeket a terleteket, s mr megoldotta a legfontosabb problmkat. A fennmarad kutatsi feladatok nehezek voltak, s kevesebb eredmnnyel kecsegtettek, gy gy dntttem, hogy egy j terleten kezdek, amellyel mg senki nem foglalkozott. Az MIT-n rengeteg szmtgppel voltam krlvve, s vilgos volt, hogy ha marosan ezeknek a szmtgpeknek kommuniklniuk kell egymssal. Akkoriban nem volt hatkony mdszer, hogy ezt lehetv tegye, ezrt gy dntttem, hogy kifejlesztem azt a mszaki megoldst, amely hatkony adathlzatok ltrehozst teszi lehetv. Mi volt az els munkja a szmtgpiparban? 1951-tl 1957-ig a CCNY esti villamosmrnki szakra jrtam. Napkzben elszr technikusknt, majd mrnkknt dolgoztam egy kis, ipari elektronikkkal foglalkoz gyrban, amit Photobellnek hvtak. Amg ott voltam, bevezettem a digitlis technikt a termkvonalukba. Lnyegben fotoelektromos eszkzket hasznltunk bizonyos dolgok (dobozok, emberek stb.) jelenltnek rzkelsre, s egy ramkrt, az n. bistabil multivibrtort hasznltunk, amelyre azrt volt szksgnk, hogy az rzkels e terletbe bevonjuk a digitlis feldolgozst. Ezek az ramkrk trtnetesen a szmtgpek ptkocki lettek, s Jlip-Jlopokknt vagy kapcsolkknt lettek ismertek a mai szaknyelvben.
Mi futott l az agyn, amikor az els, hosztok kztti zenelct elkldte (az ULCA-rl a Stanford Research lnstitutc-hoz)? Az els hosztok kztti zenet inkbb egy kis kibrnduls volt. Az els, sokkal meghatrozbb esemny 1969. szeptember 2-n trtnt, amikor az els hlzati berendezst (az IMP-t) hozzkapcsoltuk az els, klvilgban lv mkd rendszerhez (az n UCLA-n lv szmtgpemhez). Ekkor szletett meg az internet. Egy vvel korbban, egy LJI.CA sajtkzlemnyemet idztk, amikor azt mondom, hogy amint az els hlzat felll s mkdik, olyan knnyen lehet majd szmtgpekhez csatlakozni otthonrl, az irodkbl, mint ahogyan elrjk az elektromossgot s a telefont. gy az internetrl alkotott vzim akkor az volt, hogy mindentt jelen lesz, mindig mkdik, mindig el
rhet, mindenki brmilyen eszkzzel brhonnan csatlakozhat, s lthatatlan lesz. Soha nem gondoltam azonban, hogy az n 99 ves anym llandan az interneten fog lgni, s ma valban ezt teszi. Mi a vzija a jv hlzatairl? A vzim legtisztbb rsze a nomd szmtgpezs s az okos terek vzija. A knny, olcs, nagy teljestmny s hordozhat szmtgpek elrhetsge, valamint az, hogy az internet mindentt jelen van, lehetv teszik, hogy nomdok legynk. A nomd szmt- gpezs arra a mdszerre utal, amely lehetv teszi az utaz felhasznlknak, hogy teljesen szrevehetetlen mdon rjk el az internetet, brhov is utaznak. A nomd szmtgpezs azonban csak egy lps. A msik lps az lesz, amelyik lehetv teszi, hogy a kibertr poklbl kilpjnk az okos terek fizikai vilgba. A krnyezetnk elemei (asztalok, falak, jrmvek, rk, vk stb.) letre fognak kelni, ha olyan mszaki megoldsokat alkalma zunk, mint a belltok, a szenzorok, a logika, a feldolgozs, a trols, a kamerk, a mik rofonok, a hangszrk, a kijelzk s a kommunikci. Ez a begyazott megolds lehetv fogja tenni, hogy a krnyezetnk olyan IP-szolgltatsokat nyjtson, amilyet akarunk. Ha belpek egy szobba, a szoba tudni fogja, hogy belptem. Kommuniklhatok a krnyezetemmel termszetes mdon, ahogyan a beszlt angolban; a krseim olyan vlaszokat fognak generlni, amelyek weboldalakat mutatnak meg a fali kijelzkn, a szemvegemen, hangot, hologramot stb. Kiss tvolabbra tekintve, olyan hlzatos jvt ltok, amely tovbbi kulcssszetevket tartalmaz. Olyan intelligens szoftvereket ltok, amelyeket adatbnyszat cljbl teleptettek a hlzaton, s azrt, hogy reagljanak az adatokra, megfigyeljk a tendencikat, s ezekhez dinamikusan alaktott feladatokat hajtsanak vgre. Jelentsen megnvekedett hlzati forgalmat ltok, amelyet nem annyira az emberek lltanak el, hanem ezek a begyazott eszkzk s az intelligens szoftverek. Nagyszm, nmaga rendezsre kpes rendszert ltok, amely vezrli ezt a nagy, gyors hlzatot. Hatalmas mennyisg inform cit ltok, amint azonnal thalad ezen a hlzaton, s kzben feldolgozzk s szrik is. Az internet lnyegben egy mindent that, vilgmret idegrendszer lesz. Ezeket a dolgokat ltom, s mg tbbet is, ahogy elre haladunk a 21. szzadban. Kik inspirltk szemlyesen? Tvolrl Calude Shannon volt az MIT-rl, aki brilins kutat, s intuitv mdon ssze tudta ktni a matematikai tleteit a fizikai vilggal. Benne volt a doktori disszertcimat brl bizottsgban.
4
Van valami tancsa azoknak az egyetemi hallgatknak, akik most lpnek be a hlzatok/internet terletre? Az internet s mindaz, ami lehetv teszi, egy hatalmas j terlet, tele elkpeszt kihvsokkal. Van hely nagy fejlesztseknek. Ne hatrolja be ket a ma technikja. Kutassk ki s kpzeljk el, mi lehetne mg, s valstsk meg.
2. FEJEZET
Az alkalmazsi rteg
A szmtgp-hlzatok ltezst a hlzati alkalmazsok indokoljk - ha nem tallnnk ki klnfle hasznos alkalmazsokat, nem lenne szksg arra, hogy hlzati protokollokat tervezznk ezek szmra. Az elmlt negyven vben szmos nagyszer s gyes hlzati alkalmazst hoztak ltre. Ezek magukba foglaljk azokat a klasszikus szvegalap alkalmazsokat, amelyek az 1970-es s 1980-as vekben vltak npszerv: a szveges elektronikus levelet (e-mail), szmtgpek tvoli elrst, a fjltvitelt, a hrcsoportokat s a szveges csevegprogramokat (chat). Magukba foglaljk az 1990-es vek kzepnek tt erej alkalmazst, a vilghlt (World Wide Web) s vele a webbngszst, keresst, va lamint az elektronikus kereskedelmet. Ide tartozik az a kt sikeralkalmazs, amelyek az vezred vge fel kezdtek elterjedni: az azonnali zenetklds (ismersk listjval) s a P2P-fjlmegoszts. Ide tartozik tovbb sok sikeres audio- s videoalkalmazs, belertve az internetes telefonlst, videoanyagok cserjt s folyamszer letltst, az internetes rdizst s az IP-televzit (IPTV). Az otthoni szles sv hozzfrs nvekv elterjedtsge s az egyre nagyobb terleten elrhet vezetk nlkli hlzatok pedig tovbbi j s izgal mas alkalmazsok szmra ksztik el a terepet. Ebben a fejezetben megvizsgljuk a hlzati alkalmazsokat az elvek s a megvalsts szemszgbl. Elszr meghatrozzuk az alkalmazsi rteg legfontosabb fogalmait, belertve az alkalmazsok ltal ignybe vett hlzati szolgltatsokat, klienseket s szervereket, folyamatokat, valamint az interfszeket a szlltsi rteg fel. Rszletesen megvizsglunk nhny hlzati alkalmazst, igy a vilghlt, az elektronikus levelezst, a DNS-t, a P2Pfjlcserlst (peer-to-peer) s a P2P internetes telefonlst. Ezutn a hlzati alkalmazsok fejlesztsrl lesz sz a TCP s az UDP felett egyarnt. Rszletesen tanulmnyozzuk a szoketprogramozsi interfszt s bemutatunk nhny egyszer kliens-szerver alkalmazst Java nyelven. Az alkalmazsi rteg klnsen j a protokollokkal trtn ismerkedsre. Itt ismers terepen mozgunk, hiszen sok olyan alkalmazst ismernk, amelyek az ltalunk vizsgland protokollokra tmaszkodnak. Rajta keresztl ttekintst kapunk arrl, hogy mire is jk a protokollok, s megismerkednk azokkal a szempontokkal, amelyek ksbb a szlltsi, hlzati s adatkapcsolati rteg vizsglatnl is visszaksznnek.
klienshoszttl, vlaszknt elkldi a krt objektumot a klienshosztnak. Megjegyzend, hogy a kliens-szerver architektrban a kliensek nem kommuniklnak kzvetlenl egymssal; a web esetn pldul kt bngsz nem kommunikl kzvetlenl egymssal. A kliens-szerver architektrra jellemz az is, hogy a szerver rgztett, jl ismert cmmel rendelkezik, az n. IP-cmmel (amelyet a ksbbiekben trgyalunk). Mivel a szervernek rgztett, jl ismert cme van, s folyamatosan mkdik, egy kliens brmikor kapcsoldhat a szerverhez azltal, hogy egy csomagot kld a szerver cmre. A kliens-szerver architektrt hasznl alkalmazsok kz olyan ismert alkalma-
Mobiltelefon hlzat
C>cv-
'^
Otthoni hlzat
zsok tartoznak, mint pldul a web, az FTP, a Telnet s az e-mail. A kliens-szerver architektra a 2.2. (a) brn lthat. Kliens-szerver alkalmazsoknl gyakori, hogy egyetlen szerver nem kpes egyedl feldolgozni a kliensektl rkez krseket. Egy npszer kzssgi oldal pldul gyorsan tlterheldhet, ha egyetlen szervernek kell kiszolglnia az sszes krst. Emiatt gyakran zemeltetnek tbb hosztbl kialaktott szerverfarmokat, amelyek nagy teljestmny virtulis szerverknt mkdnek a kliens-szerver architektrban. A kliens-szerver architektrn alapul szolgltatsok sokszor infrastruktra-ignyesek, mivel ezek mkdtetshez a szolgltatnak szerverfarmokat kell beszereznie, teleptenie s fenntartania. A szolgltatnak tovbb rendszeres sszekt hlzati s svszlessg-djakat kell fizetnie az internetre trtn adatkldsrt s onnan trtn adatfogadsrt. Az olyan npszer szolgltatsok, mint a keresmotorok (pldul Google), az internetes kereskedelem (pldul Amazon, e-Ray), a webes levelezs (pldul Yahoo Mail), a kzssgi oldalak (pldul MySpace, Facebook) s a videomegoszts (pldul YouTube) infrastruktra-ignyesek s kltsgesek. A P2P-architektra nem (vagy csak minimlis mrtkben) tmaszkodik a folyamatos zem infrastruktra-szerverekre. Az alkalmazs ehelyett az idszakosan sszekapcsolt hosztok, az n. egyenrang trsak (peer) kztti kzvetlen kommunikcit aknzza ki.
(b) P2P-architektra
A trsak nem a szolgltat tulajdonban vannak, hanem a felhasznlk ltal kezelt asztali szmtgpek s laptopok, amelyek ltalban laksokban, egyetemeken s irodkban helyezkednek el. Mivel a trsak egy kzponti szerver kzbeiktatsa nlkl kommuniklnak, ezt a felptst egyenrang trsak kztti (peer-to-peer, P2P) architektrnak nevezik. Napjaink legnpszerbb s leginkbb forgalomintenzv alkalmazsai kzl sok a P2P-alap alkalmazs. Ilyenek tbbek kztt a fjlcserl alkalmazsok (pldul Bit'lbr- rent), fjlkeres s megoszt alkalmazsok (pldul eMule, LimeWire), az internetes telefonls (pldul Skype) s az IPTV (pldul PPLive). A P2P-architektrt a 2.2. (b) bra szemllteti. Itt emltjk meg, hogy egyes alkalmazsok hibrid architektrt hasznlnak, vegytve a kliens-szerver s a P2PeIrendezsek elemeit. Sok zenetkld alkalmazs pl dul szervereken kveti nyomon a felhasznlk IP-cmeit, a felhasznlk egyms kzt ti zeneteit viszont mr kzvetlenl a felhasznlk hosztjai kztt tovbbtja (szerverek kzbeiktatsa nlkl). A P2P-architektrk egyik leggretesebb tulajdonsga az nsklzhatsg (selfsca- lability). Egy P2P fjlmegoszt alkalmazs esetn pldul igaz, hogy minden trs nveli a terhelst azzal, hogy fjlokat tlt le, ugyanakkor viszont minden egyes trs nveli a rendszer kiszolglkpessgt azltal, hogy fjlokat tovbbt ms trsakhoz. A P2P-archi- tektrk emellett kltsghatkonyak is, mert ltalban nem ignyelnek jelents szerverinfrastruktrt s svszlessget. A kltsgek cskkentse rdekben a szolgltatk (MSN, Yahoo s msok) egyre inkbb rdekldnek a P2Parchitektrk irnt. Msrszt viszont a P2P-alkalmazsok biztonsgnak megoldsa kihvst jelent azok nagymrtkben elosztott s nyitott jellege miatt [Doucer 2002; Yu 2006; Liang 2006; Naoumov 2006].
Kliens- s szerverfolyamatok
Egy hlzati alkalmazs folyamatprokbl ll, amelyek zeneteket kldenek
egymsnak a hlzaton t. A web esetn pldul egy, a kliensen fut bngsz folyamat cserl zeneteket egy webszerverfolyamattal. A P2P fjlmcgoszt rendszerekben az egyik trs egy folyamata egy msik trson fut folyamatnak kldi t a fjlokat. ltalban minden kommunikl folyamatprnl az egyik folyamat kliensknt, a msik pedig szerverknt definilha t. A web esetn a bngsz egy kliensfolyamat, a webszerver pedig egy szerverfolyamat. A P2P-fjlmegosztknl az a trs a kliens, amely ppen letlt egy fjlt, amelyik pedig feltl ti a fjlt, az a szerver. Megfigyelhet, hogy bizonyos alkalmazsokban, pldul a P2P-fjlmegosztkban egy folyamat lehet kliens is s szerver is. St, egy P2P fjlmegoszt rendszerben ugyanaz a folyamat kpes egy idben le- s feltlteni fjlokat. Mindazonltal egy adott kommunikcis munkamenet alatt egyrtelmen meghatrozhat, hogy melyik folyamat a kliens s melyik a szerver. A kliens- s szerverfolyamatokat a kvetkezkppen definiljuk:
Kt folyamat kztt zajl kommunikcis munkamenet sorn azt a folyamatot, amelyik a kommunikcit kezdemnyezi (vagyis elsknt veszi fel a kapcsolatot a msik folyamattal a munkamenet kezdetn), kliensnek nevezzk. Azt a folyamatot, amely vrakozik arra, hogy felvegyk vele a kapcsolatot, szervernek nevezzk.
A web esetn a bngszfolyamat kezdemnyezi a kapcsolatot a webszerverfolyamattal, ezrt a bngszfolyamat a kliens, a webszerver folyamat a szerver. A P2P-fjlmegoszts- nl, ha az A trs krst intz a B trs fel, hogy az kldjn el neki egy megadott fjlt, az adott kommunikcis munkafolyamatban az A trs a kliens, a B pedig a szerver. Ahol nem okoz flrertst, a tovbbiakban gyakran fogjuk hasznlni az alkalmazs szerver- oldala s kliensoldala elnevezseket.
alkalmazsi rteg felli oldala az alkalmazsfejleszt irnytsa alatt ll, a szlltsi rteg felli oldalra viszont a fejlesztnek kevs befolysa van. Az alkalmazsfejleszt a szlltsi rteg oldaln csak (1) a szlltsi proto kollt vlaszthatja ki s (2) esetlegesen bellthat nhny szlltsi rtegbeli paramtert, mint amilyen pldul a maximlis puftermret s a maximlis szegmensmrct (ezekrl a
Alkalmazsfejleszt kezeli
Szkt
Opercis rendszer kezeli TCP-pufferekkel, vltozkkal Internet TCP-pufferekkel, vltozkkal Opercis rendszer kezeli
vonattal vagy replgppel tegynk-e meg egy utat kt vros kztt. Vlaszthatjuk az egyiket vagy a msikat, s a kt esetben klnbz szolgltatsokat kapunk. (A vonat elnye pldul, hogy a vroskzponthoz kzel ll meg, a repl ezzel szemben gyorsabb.) Milyen szolgltatsokat nyjthat egy szlltsi protokoll az alkalmazsok rszre? Nagyjbl ngy szempont alapjn osztlyozhatjuk a lehetsges szolgltatsokat: (1) a megbzhat adatszllts, (2) az tbocstkpessg, (3) az idzts s (4) a biztonsg.
124
Megbzhat adatszllts
Ahogy az 1. fejezetben emltettk, egy szmtgp-hlzatban elveszhetnek egyes csomagok. Ez trtnhet pldul azrt, mert egy tvlasztban tlcsordul a puffer, vagy mert egy hoszt vagy egy tvlaszt eldobja a csomagot, mert annak nhny bitje megsrlt. Szmos alkalmazsnl - gy az elektronikus levelezsnl, a fjltvitelnl, a tvoli elrsnl, a webes dokumentumtvitelnl s a banki alkalmazsoknl - az adatveszts katasztroflis kvetkezmnyekkel jrhat (az utbbi pldnl vagy a bank, vagy az gyfl szmra!). Az ilyen alkalmazsok szmra ezrt valahogyan szavatolni kell azt, hogy az alkalmazs egyik vgpontjrl kldtt adatok helyesen s hinytalanul megrkezzenek az alkalmazs msik vgpontjra. Ha egy protokoll ilyen garantlt adattovbbtsi szolgltatst nyjt, megbzhat adatszlltsrl (reliable data transfer) beszlnk. Az alkalmazsok kztti megbzhat adatszllts az egyik fontos szolgltats, amelyet egy szlltsi protokoll nyjtani tud. Ha egy szlltsi protokoll ezt a szolgltatst nyjtja, a kld folyamatnak nem kell mst tennie, mint elhelyeznie zenett a szoketben. Ezutn teljesen biztos lehet abban, hogy az adat hibtlanul megrkezik a fogad folyamathoz. Ha egy szlltsi rtegbeli protokoll nem biztost megbzhat adatszlltst, elfordulhat, hogy a kld folyamat ltal kldtt adatok nem rkeznek meg a fogad folyamathoz. Ez elfogadhat lehet a vesztesgtr alkalmazsok (losstolerant applications) szmra, amelyek kzl a legjelentsebbek a multimdis alkalmazsok, mint pldul a vals idej hang- s videoszolgltatsok, illetve olyan trolt hang- s videofjlok, amelyek elviselnek bizonyos mennyisg adatvesztst. Ezeknl a multimdis alkalmazsoknl az adatvesz ts egy rvid zavarjelknt jelenik meg a lejtszott videban vagy hangfjlban - ez nem jelent kritikus minsgromlst.
Albocstkpessg
Az 1. fejezetben bevezettk az elrhet tbocstkpessg fogalmt, amely kt folyamat hlzaton keresztli kommunikcis munkamenetben azt a sebessget jelenti, amellyel a kld folyamat tovbbtani tudja a biteket a fogad folyamathoz. Mivel ugyanazon a hlzati tvonalon tbb munkamenet osztozik a svszlessgen, s ezek fel- s lekapcsoldnak, az elrhet tbocstkpessg idben ingadozhat. Ezek alapjn meghatrozhatunk egy jabb szolgltatst, amelyet egy szlltsi rtegbeli protokoll knlhat: nevezetesen a garantlt elrhet tbocstkpessget egy adott sebessggel. Ennek a szolgltatsnak a felhasznlsval az alkalmazs r bit/s sebessg garantlt tvitelt ignyelhet, s a szlltsi protokoll biztostja szmra, hogy az elrhet tbocstkpessg legalbb r bit/s lesz. Ez a garantlt tbocstkpessg szolgltats sok alkalmazs szmra hasznos lehet. Egy internetes telefonszolgltatsnak pldul, amely 32 kb/s-mal kdolja a hangot, legalbb ilyen sebessggel kell kldenie az adatokat a hlzatra, s az adatoknak ezzel a sebessggel kell megrkeznik a fogad alkalmazshoz. Ha a szlltsi protokoll nem biztostja ezt az tbocstkpessget, az alkalmazsnak alacsonyabb frekvencival kell kdolnia a hangot (s rendelkeznie kell az alacsonyabb sebessg tbocstkpessggel), illetve a fenti sebessg felnl kisebb tbocstkpessg alatt ez az internetes telefonszolgltats nem is kpes mkdni. Azokat az alkalmazsokat, amelyek ilyen tbocstkpessgi kvetelmnyeket tmasztanak, svszlessg-rzkeny
125
alkalmazsoknak (bandwidth-sensitive applications) nevezik. Szmos mai multimdia-alkalmazs svszlessg-rzkeny, br vannak olyan multimdiaalkalmazsok, amelyek adaptv kdolsi technikk segtsgvel kpe sek az ppen rendelkezsre ll tbocstkpessgnek megfelel sebessggel kdolni. Mg a svszlessg-rzkeny alkalmazsoknak kifejezett tbocstkpessgi kvetelmnyeik vannak, a rugalmas alkalmazsok (elastic application) szmra megfelel a mindenkori aktulisan elrhet tbocstkpessg. Az elektronikus levelezs, a fjltvitel s a webes tvitelek mind rugalmas alkalmazsok. Termszetesen ezen alkalmazsoknl is az a j, ha minl nagyobb az tbocstkpessg. Egy szllige szerint az ember soha nem lehet tl gazdag, tl sovny, s soha nem rendelkezhet tl nagy svszlessggel!
Idzts
Egy szlltsi rtegbeli protokoll idztsi garancikat is nyjthat. Ahogy az tbocstkpessgi garancik, az idztsi garancik is sokflk lehetnek. Egy protokoll garantlhatja pldul, hogy minden elkldtt bit, amelyet a kld folyamat a szkt fel tovbbt, 100 ms-on bell megrkezik a fogad folyamat szoketjhez. Ez a szolgltats olyan interaktv, vals idej alkalmazsok szmra lehet hasznos, mint az internetes telefonls, a virtulis krnyezetek, a tvkonferencia-alkalmazsok s a tbbszerepls jtkok, amelyek hat konysgi okokbl mind szigor idztsi kvetelmnyeket tmasztanak az adattvitellel szemben (lsd 7. fejezet, [Gauthier 1999 ; Ramjee 1994)). Az internetes telefonszolgltatsnl pldul a nagy ksleltetsek termszetellenes szneteket okozhatnak a beszlgets kzben, a tbbszerepls jtkokban s a virtulis interaktv krnyezetekben egy mvelet elvgzse s a krnyezet erre adott vlasza (pldul egy msik gpnl l jtkos vlasza) kztti nagy ksleltets azt okozza, hogy az alkalmazs kevsb tnik lethnek. A nem vals idej alkalmazsok is a kisebb ksleltetst rszestik elnyben a nagyobbhoz kpest, de nem tesznek szigor megktseket a vgpontok kztti ksleltetsre.
Biztonsg
A szlltsi protokollok a fentieken tl klnbz biztonsgi szolgltatsokat is nyjthatnak. Ilyen szolgltats lehet pldul, hogy a szlltsi protokoll a kld hoszton titkostja a kld folyamat ltal tovbbtott adatokat, a fogad hoszton pedig visszafejti a titkostott adatokat, mieltt tovbbtja azokat a fogad folyamatnak. Ezek a szolgltatsok titkossgot biztostanak a kt folyamat kztt akkor is, ha a kld s fogad folyamat kztt valaki megfigyeli az adatforgalmat. A szlltsi protokollok egyb szolgltatsokat is nyjthatnak a titkossgon tl, belertve az adatintegritst s a vgponti hitelestst, amelyeket a 8. feje zetben mutatunk be rszletesen.
126
TCP-t hasznljon. A kt protokoll klnbz szolgltatso kat biztost az ket felhasznl alkalmazsok rszre. A 2.1. tblzat nhny kivlasztott alkalmazs pldjn mutatja be, hogy az egyes alkalmazsok milyen szolgltatsi kvetel mnyeket tmasztanak.
84
2.1. HLZATI ALKALMAZSOK ELVI ALAPJAI
Alkalmazs Fjltvitel E-mail Webes dokumentumok Internetes telefonls/ Videokonferencia Trolt audio/video Interaktv jtkok Azonnali zenetklds Vesztesgtr Vesztesgmentes Adatveszts Vesztesqmentes Vesztesgmentes Vesztesgmentes Vesztesgtr Vesztesgtr Svszlessq
. . 2. Az
ALKALMAZSI
RTEG
127
Idztsrzkenysq Nem Nem Nem Igen: nhny 100 ms Igen: nhny msodperc Igen: nhny 100 ms Igen is, nem is
TCP-szolgltatsok
A TCP szolglati modellje egy sszekttets-alap szolgltatst s egy megbzhat adatszlltst foglal magban. Ha egy alkalmazs a TCP-t hasznlja szlltsi protokollknt, a TCP biztostja szmra ezeket a szolgltatsokat.
sszekttets-alap szolgltats. A TCP protokollban a kliens s a szerver szlltsi szint vezrlinformcikat cserlnek, mieltt megkezddik az
alkalmazsi szint adatramls. Ez a kzfogsnak (handshaking) nevezett eljrs figyelmezteti a klienst s a szervert, hogy kszljenek fel a csomagok rkezsre. A kzfogsi szakasz utn azt mondjuk, hogy egy TCP-sszekttets (TCP connection) jtt ltre a kt folyamat szoketjei kztt. Ez egy duplex sszekttets, mivel a kt folyamat egyidejleg kldhet egymsnak csomagokat mindkt irnyba. Miutn az alkalmazs befejezte az zenetek kldst, le kell bontania az sszekttetst. A szolgltatst sszekttetsalapnak nevezik, mivel a kt folyamat nagyon lazn kapcsoldik ssze. A 3. fejezetben rszletesen trgyaljuk az sszekttets-alap szolgltatst, s megvizsgljuk, hogyan valsthat meg. Megbzhat adatszlltsi szolgltats. A kommunikl folyamatok biztosak lehetnek abban, hogy a TCP minden adatot hiba nlkl s helyes sorrendben tovbbt. Ha az alkalmazs az egyik oldalon egy bjtfolyamot kld a szoketre, szmthat arra, hogy a TCP ugyanezt a bjtfolyamot tovbbtja a fogad szoketre, s nem lesznek hinyz vagy ismtld bjtok. A TCP tartalmaz egy torldskezelsi mechanizmust is. Ez olyan szolgltats, amely nem annyira a kommunikl folyamatoknak vlik elnyre, inkbb az internet egsznek megfelel mkdst segti el. A TCP torldskezelsi mechanizmusa lelasstja a kld folyamatot (a klienst vagy a szervert), ha a hlzaton torlds lp fel a kld s a fogad kztt. Amint azt a 3. fejezetben ltni fogjuk, a TCP torldskezelse megprblja oly mdon korltozni az egyes TCP-sszekttetseket, hogy azok igazsgosan osztozzanak a hlzati svszlessgen. Ezen okokbl kifolylag a vals idej alkalmazsok fejleszti gyakran az UDP-t vlasztjk a TCP helyett alkalmazsaik szmra.
128
UDP-szolgltatsok
Az UDP minden flslegeset mellz, kevsb fontos szlltsi protokoll, amely csak minimlis szolgltatsokat biztost. Az UDP sszekttets nlkli protokoll, ezrt a kt folyamat kzti kommunikci megkezdse eltt nem trtnik kzfogs. Az UDP nem megbzhat adattviteli szolgltatst nyjt - vagyis, ha egy folyamat zenetet kld egy UDP-szoketre, az UDP nem garantlja, hogy az zenet megrkezik a fogad folyamathoz. Ezen fell a fogad folyamathoz megrkez zenetek sem felttlenl a helyes sorrendben rkeznek meg. Az UDP nem tartalmaz torldskezelsi mechanizmust, ezrt a kld oldal tetszleges sebessggel kldheti az adatokat az alatta lv (hlzati) rtegbe. (Megjegyzend azonban, hogy a vgpontok kztti tnyleges tvitel ennl a sebessgnl kisebb lehet a kzbees adatkapcsolatok korltozott svszlessge, illetve a torlds miatt.) Mivel a vals idej alkalmazsok gyakran elviselnek bizonyos mennyisg adatvesztst, ellenben a hatkony mkdshez szksgk van egy meghatrozott minimlis svszlessgre, a vals idej alkalmazsok fejleszti esetenknt UDP-t hasznlnak szlltsi protokollknt, hogy meg kerljk a TCP torldskezelsi mechanizmust s a tbbletcsomagokat. Msfell viszont, mivel sok tzfal belltsai blokkoljk az UDP-forgalom legtbb tpust, a multimdis s vals idej alkalmazsok tervezi egyre inkbb a TCP-t hasznl megoldsok fel fordulnak [Sripanidkulchai 2004).
Fkuszban a b.iztonsng Biztonsgos TCP Sem a TCP, sem az UDP nem biztost titkostst, vagyis a kld folyamat ltal a szoketre kl dtt adatok megegyeznek a hlzaton utaz adatokkal. gy ha pldul a kld folyamat egy jelszt kld nylt szvegknt (azaz titkosts nlkl) a szoketjre, ez a nylt szveg tovbbt dik a kld s a fogad kztti sszes adatkapcsolaton, ami magban foglalja azt a veszlyt, hogy a jelszt tkzben brhol elfoghatjk s leolvashatjk. Mivel napjainkban az adatok tit kossga s az egyb biztonsgi szempontok sok alkalmazsnl kritikus fontossg, az inter netes kzssg a TCP tovbbfejlesztsvel megalkotta a biztonsgos szokelrleget (Secure Sockets Layer, SSL). Az SSL-lel javtott TCP azon tl, hogy a hagyomnyos TCP minden k pessgvel rendelkezik, olyan kritikus folyamatkzi biztonsgi szolgltatsokat is nyjt, mint a titkosts, az adatintegrits s a vgponti hitelests. Hangslyozzuk, hogy az SSL nem egy harmadik internetes szlltsi protokoll az UDP s a TCP mellett, hanem a TCP protokoll tovbbfejlesztse az alkalmazsi rtegben implementlt kiegsztsekkel. Pontosabban, ha egy alkalmazs ignybe kvnja venni az SSL szolgltatsait, be kell illesztenie az SSL kd jt (ltez, ersen optimalizlt knyvtrakat s osztlyokat) mind a kliens-, mind a szerveroldali alkalmazskdba. Az SSL-nek sajt szkt APl-ja van, amely hasonl a hagyomnyos TCPszoket API-jhoz. Ha egy alkalmazs SSL-t hasznl, a kld folyamat nylt szveget ad t az SSL-szoketnek; az SSL a kld hoszton titkostja az adatokat, majd tovbbtja azokat a TCPszoketnek. A titkostott adatok az interneten keresztl a fogad folyamat TCP-szoketjbe kerlnek. A fogad folyamat tovbbtja a titkostott adatokat az SSL-nek, amely visszafejti az adatokat. Az SSL vgl a sajt szoketjn t tovbbtja a nylt szveget a fogad folyamatnak. Az SSL-lel rszletesebben a 8. fejezetben foglalkozunk.
129
Azt is tudjuk, hogy a TCP knnyen tovbbfejleszthet az alkalmazsi rtegben SSL segtsgvel gy, hogy kpes legyen biztonsgi szolgltatsokat nyjtani. A TCP s UDP rvid lersbl azonban szembetnen nem ejtettnk szt idztsi vagy tbocstkpessgi garancikrl - ezek olyan szolgltatsok, amelyeket a jelenlegi internetes szlltsi protokollok nem biztostanak. Azt jelenti ez vajon, hogy az olyan idrzkeny alkalmazsok, mint az internetes telefonls, nem kpesek futni napjaink internetes hlzatn? A vlasz egyrtelmen nem - az interneten mr vek ta lteznek ilyen idrzkeny alkalmazsok. Ezek az alkalmazsok ltalban megfelelen mkdnek, mert gy terveztk ket, hogy a lehet legnagyobb mrtkben kpesek legyenek megbirkzni a garantlt idztsi szolgltatsok hinyval. A 7. fejezetben megvizsglunk nhny tervezsi fogst, amelyeket erre a clra talltak ki. Mindamellett az gyes tervezs is csak korltozottan oldja meg a problmkat, ha a ksleltetsek tl nagyok, mint ahogy az gyakran elfordul a nyilvnos interneten. sszegezve elmondhatjuk, hogy napjainkban az internet sok esetben kielgt szolgltatst nyjt az idrzkeny alkalmazsok szmra, de nem biztost idztsi s svszlessg-garancikat. A 2.2. tblzatban lthat nhny npszer internetes alkalmazs s az ltaluk hasznlt szlltsi protokollok. Lthatjuk, hogy az e-mail, a tvoli terminlelrs, a web s a fjltviteli alkalmazsok mind TCP-t hasznlnak. Ezen alkalmazsok tervezi elssorban azrt dntttek a TCP mellett, mert a TCP megbzhat adatszlltst knl, amely garantlja, hogy elbb-utbb minden adat megrkezik rendeltetsi helyre. Lthatjuk azt is, hogy az internetes telefonls ltalban UDP-vel mkdik. Egy internetes telefonos alkalmazs mindkt oldala egy adott minimlis sebessggel kell, hogy tudjon adatokat kldeni a h lzaton keresztl (lsd a vals idej hangalkalmazsokat a 2.1. tblzatban). Ezt a clt na gyobb valsznsggel rhetik el az UDP segtsgvel, mint a TCP-vel. Az internetes tele fonos alkalmazsok emellett vesztesgtrk is, ezrt nincs szksgk a TCP ltal nyjtott megbzhat adatszlltsi szolgltatsra.
Folyamatok cmzse
A fentiekben kt kommunikl folyamat kztti szlltsi szolgltatsokra sszpontostottunk. De vajon hogyan jelli ki egy folyamat azt a msik folyamatot, amellyel ezen szolgltatsok ignybevtelvel kommuniklni szeretne? Kgy folyamat, amely egy, az USA-be- li Massachusctts llam Amherst vrosban lv hoszton fut, hogy mondja meg, hogy egy olyan folyamattal kvnja felvenni a kapcsolatot, amelyik egy, a thaifldi Bangkokban lv hoszton fut? A fogad folyamat azonostshoz ktfle informcira van szksg: (1) a hoszt nevre vagy cmre s (2) egy azonostra, amely kijelli a cl hoszton a fogad fo lyamatot. Az interneten a hosztokat az IP-cmk azonostja. Az IP-cmcket rszletesebben a
130
4. fejezetben mutatjuk be. Most elg annyit tudnunk, hogy az IP-cm egy 32 bites szm, amelyet egy hoszt egyedi azonostjnak tekinthetnk. (Habr, ahogy azt a 4. fejezetben ltni fogjuk, a hlzati cmfordts [Netvvork Address Translation, NAT] szles kr elterjedse kvetkeztben manapsg az IP-cm mr nem azonost egyrtelmen egy hosztot.) Azon tl, hogy a kld hosztnak ismernie kell annak a hosztnak a cmt, amelynek az zenetet kldi, a clhoszton bell a fogad folyamatot azonostania kell. Erre az informcira azrt van szksg, mert egy hoszton ltalban tbb hlzati alkalmazs is futhat. Ezt a clt szolglja a clfolyamat portszma. Egyes npszer alkalmazsoknak rgztett portszmaik vannak. A vvebszervereket pldul a 80-as portszmon lehel elrni. Az SMTP protokollt hasznl levelezszervereket a 25-s portszm azonostja. A szabvnyos inter netes protokollok ltal hasznlt kzismert portszmok felsorolsa megtallhat a http:// www.iana.org cmen. Egy j hlzati alkalmazs ksztsekor az alkalmazshoz egy j portszmot kell rendelni. A portszmokat rszletesen a 3. fejezetben vizsgljuk meg.
131
(mint pldul a Firefox vagy a Microsoft Internet Hxplorer), a webszervereket (mint pldul az Apache- vagy a Microsoft-szerverek) s egy alkalmazsi protokollt. A web alkalmazsi protokollja, a HTTP definilja a bngsz s a webszerver kztt tovbbtott zenetek formtumt s sorrendjt. A HTTP teht csak egy rsze (jllehet, fontos rsze) a webnek. Egy msik plda: egy internetes e-mail alkalmazs szintn tbb komponensbl ll, belertve a levelezszervereket, amelyek a felhasznlk postaldinak adnak otthont, a levlolvaskat, amelyek lehetv teszik a felhasznlknak levelek megrst s olvasst, az e-mail zenetek felptst definil szabvnyt s az al kalmazsi protokollokat, amelyek meghatrozzk, hogyan tovbbtdnak az zenetek a szerverek kztt, illetve a szerverek s a levlolvask kztt, valamint azt, hogyan kell rtelmezni az e-mail zenet bizonyos rszeinek (pldul egy zenet fejlcnek) tartalmt. Az elektronikus levelezs legfontosabb alkalmazsi protokollja az SMTP (Simple Mail Transfer Protocol, egyszer levltovbbt protokoll). Az e-mail alapvet protokollja, az SMTP teht csak egy rsze (br fontos rsze) az e-mail alkalmazsnak.
132
Az 1990-es vek elejig az internetet elssorban kutatk, egyetemi oktatk s egyetemi hallgatk hasznltk tvoli hosztokra trtn belpsre, fjlok tvitelre helyi hosztokrl tvoli hosztokra s fordtva, hrek fogadsra s kldsre, valamint elektronikus levelek fogadsra s kldsre. Habr ezek az alkalmazsok rendkvl hasznosak voltak (s a mai napig azok), az internet a tudomnyos s kutati kzssgeken kvl lnyegben is meretlen volt. Az 1990-es vek elejn aztn megjelent a sznen egy j, nagy jelentsg alkalmazs: a World Wide Web (vilghl vagy web) [Berners-I.ee 1994). A web volt az az internetes alkalmazs, amely igazn felkeltette a kznsg rdekldst. Drmai vl tozsokat hozott az emberek munkahelyi s azon kvli kapcsolattartsban. Az internet korbban a sok adathlzat egyike volt; a web rvn az internet lnyegben az egyetlen s kizrlagos adathlzatt vlt. A web taln legnagyobb vonzereje a felhasznlk szmra az igny szerinti mkds. A felhasznlk brmikor megkaphatjk, amit szeretnnek. Ez a klnbsg a rdi- s televzikzvettsekhez kpest, amelyeknl a felhasznl csak akkor jut a kvnt tartalomhoz, amikor azt a tartalomszolgltat msorra tzi. Az igny szerinti elrhetsgen kvl a web sok egyb nagyszer tulajdonsggal is rendelkezik, amelyeket az emberek szeretnek. Roppant knny informcikat kzztenni a weben - vagyis brki publiklhat rendkvl olcsn. A hiperhivatkozsok s a keresmotorok segtsgvel knnyedn naviglhatunk a weboldalak cenjn. A grafikus tartalmak serkentik az rzkeinket. Az rlapok, Java-kisalkalmazsok s egyb eszkzk lehetv teszik szmunkra a prbeszdet a web- oldalakkal s webhelyekkel. Egyre jellemzbb az, hogy a web mens felletet nyjt az interneten trolt hatalmas mennyisg hang- s videoanyag elrshez ezek a multimdis tartalmak mind igny szerint hozzfrhetk.
133
134
2.2. A
lis A HTTP
91
leteivel, hogy a TCP hogyan lllja vissza a hlzatban elveszett adatokat, illetve hogyan rendezi sorba azokat. Hz mind a TCP s a protokollverem alsbb rtegeinek feladata. Pontos megjegyezni, hogy a szerver anlkl kldi el a kliensnek az ignyelt fjlokat, hogy ekzben brmilyen llapotinformcit trolna a kliensrl. Ha egy adott kliens nhny msodpercen bell ktszer kri le ugyanazt az objektumot, a szerver nem vlaszolja azt, hogy pp az imnt szolglta ki a kliensnek ugyanezt a krst. A szerver ehelyett jra elkldi az objektumot, mivel egyltaln nem emlkszik a korbbi krsekre. Mivel a HTTP nem trol llapot informcikat a kliensekrl, a HTTP-t llapot nlkli protokollnak (stateless protocol) nevezik. Megjegyezzk azt is, hogy a web a 2.1. alfejezetben lert kliens-szerver alkalmazsarchitektrt hasznlja. A webszerverek folyamatosan mkd nek s a hlzatra vannak kapcsolva, rgztett IP-cmmel rendelkeznek s akr tbb milli klnbz bngsz krseit szolgljk ki.
135
l. A HTTP-kliensfolyamat TCP-osszekttetst kezdemnyez a www. someSchool.edu a 80-as portszmon lv szerverrel, amely a HTTP alaprtelmezett portszma. A TCP-sszekttetshez a kliens s a szerveroldaln is tartozik egy-egy szkt.
136
Ahogy a bngsz megkapja a weboldalt, megjelenti azt a felhasznlnak. Egy weboldalt kt klnbz bngsz nmileg klnbzkppen rtelmezhet (vagyis jelenthet meg a felhasznlnak). A H TTP nem trdik azzal, mikppen jelenti meg egy kliens a webolda- lakat. A HTTP-specifikcik ([RFC 1945) s [RFC 2616]) csak a kliens HTTP-program s a szerver HTTP-program kztti kommunikcis protokollt definiljk. A fenti lpsek az idleges sszekttetsek hasznlatt mutatjk be, amikor is minden egyes TCP-sszekttets lezrul, miutn a szerver elkldtt egy objektumot - a kapcsolat nem rzdik meg ms objektumok szmra. Megjegyzend, hogy minden TCP-sszekttets pontosan egy krszenetet s egy vlaszzenetet szllt. A fenti pldban ezrt, amikor a felhasznl letlti a weboldalt, 11 TCP-sszekttets jn ltre. A fenti lpsek lersakor szndkosan elhallgattuk, hogy a kliens a 10 JPEG objektumot 10 soros TCP-sszekttetsen keresztl kapja meg, vagy a JPEG-ek egy rsze prhuzamos TCP-sszekttetsen keresztl jut el a klienshez. A modern bngszkben a felhasznlk mg a prhuzamosts mrtkt is bellthatjk. A legtbb bngsz alaprtelmezs szerint 5-10 prhuzamos TCP-sszekttetst nyit, s mindegyik sszekttets egy krs-vlasz tranzakcit kezel. A megengedett prhuzamos sszekttetsek szma l is lehet, ami azt jelenti, hogy a 10 sszekttets sorosan, egymst kveten jn ltre. Amint azt a kvetkez fejezetben ltni fogjuk, a prhuzamos sszekttets hasznlata lervidti a vlaszidt. Mieltt tovbblpnnk, egy durva szmtssal becsljk meg azt az idt, amely attl az idponttl, amikor egy kliens lekri az alap HTML-fjlt, a teljes fjl megrkezsig eltelik. Ebbl a clbl bevezetjk a krbejrsi id (round-trip time, RTT) fogalmt, amely egy kis csomagnak a klienstl a szerverig, majd vissza a szervertl a kliensig trtn eljuttatshoz szksges idt jelli. Az RTT magban foglalja a csomagtcrjcdsi ksleltetseket, a csomagok sorbanllsi ksleltetseit a kzbees tvlasztkon s kapcsolkon, valamint a csomagfeldolgozsi ksleltetseket. (Ezeket a ksleltetsi idket az 1.4. alfejezetben trgyal tuk.) Nzzk most meg, mi trtnik, amikor a felhasznl egy hiperhivatkozsra kattint. Amint a 2.5. brn lthat, a bngsz ennek hatsra TCP-sszekttetst kezdemnyez a webszerverrel. Ez magba foglal egy hromutas kzfogst - a kliens egy kis TCP-szeg- menst kld a szervernek, a szerver ezt nyugtzza s egy
137
msik kismret TCP-szegmenst kld vlaszknt, vgl a kliens is kld egy nyugtt a szervernek. A hromutas kzfogs els kt lpse egy egysgnyi krbejrsi idt (1 RTT-t) vesz ignybe. Miutn a kzfogs els kt lpse befejezdtt, a kliens elkldi a HTTP-krszenetet a hromutas kzfogs
TCP-sszekttets kezdemnyezse
Fjl krse
harmadik rszvel (a nyugtval) egytt a TCP-sszekttetsen keresztl. Miutn a krszenet megrkezett a szerverre, a szerver visszakldi a HTML-fjlt a TCPsszekttetsen keresztl. Ez a HTTP krs-vlasz pr egy tovbbi RTT-t vesz ignybe. gy a teljes vlaszid nagyjbl kt RTT plusz a HTML-fjl tovbbtsi ideje a szerveren.
139
140
egyms utn is kvetkezhetnek anlkl, hogy a kliens vrakozna a fggben lv krsek megvlaszolsra (ezt csvezetkezsnek - pipelining - hvjk). A HTTPszerver ltalban akkor zr le egy sszekttetst, ha azt mr egy bizonyos ideje nem hasznltk (ez az idtllpsi intervallum konfigurlhat). Ha a szerver egyms utn kvetkez krseket kap, szintn egymst kveten kldi vissza az objektumokat. A HTTP alaprtelmezett mdja lland sszekttetseket hasznl csvezctekezssel. A 2. s 3. fejezet feladataiban mennyisgileg sszehasonltjuk az idleges s az lland sszekttetsek teljestmnyt. A tmrl rszletesebben lsd [Heidemann 1997; Nielsen 1997) munkjt.
2.2.3. HTTP-zenetformtumok
A IiTTP-specifikcik ([RFC 2616]) tartalmazzk a HTTP-zenetformtumok defincijt. A HTTP-zeneteknek kt tpusa ltezik, a krszenetek s a vlaszzenetek, melyeket a kvetkezkben trgyalunk.
HTTP-krszenetek
Tekintsnk egy tipikus HTTP-krszenetet:
GET /somedir/page.html HTTP/1.1 Hst: www.someschool.edu Connection: close User-agent: Mozilla/4.0 Accept-language: fr
Ha kzelebbrl megvizsgljuk ezt az egyszer krszenetet, sok mindenre jhetnk r. Mindenekeltt megllapthatjuk, hogy az zenet kznsges ASCIIkarakterekbl ll, gy egy htkznapi szmtgpes mveltsggel rendelkez ember szmra is olvashat. Msodszor, lthat, hogy az zenet t sorbl ll, minden sor vgen egy kocsivissza s egy soremels jellel. Az utols sor utn egy tovbbi kocsivissza-soremels pr kvetkezik. Habr ez a krszenet t sort tartalmaz, a krszenetek sokkal tbb sort is tartalmazhat nak, vagy llhatnak egyetlen sorbl is. A HTTP-krszenet els sora a krssor (request line), az ezt kvet sorok a fejlcsorok (header line). A krssor hrom mezt tartalmaz: a metdusmezt, az URL-mezt s a HTTP-verzimezt. A metdus mez pldul az albbi rtkeket veheti fel: GET, POST, HEAD, PT vagy DELETE. A HTTPkrszenetek nagy tbbsge a GET metdust hasznlja. A bngszk is a GET metdust hasznljk, amikor egy objektumra vonatkoz krst kldenek gy, hogy az URL-mezben megadjk az objektum azonostjt. A mi pldnkban a bngsz a /somedir/page.html objektumot kri le a szervertl. A verzi mez magtl rtetd, ebben a pldban a bngsz a HTTP/1.1 verzit valstja meg. Vessnk most egy pillantst a pldban szerepl fejlcsorokra. A Hst: www.somes- chool.edu fejlcsor megadja a hosztot, amelyen az objektum tallhat. Azt gondolhatnnk, hogy ez a fejlcsor felesleges, hiszen mr fennll egy TCP-sszekttets a hoszttal. Ahogyan azonban a 2.2.5. alfejezetben ltni fogjuk, a webes gyorsttrazshoz szksg van a hoszt fejlcsor ltal tartalmazott informcikra. A Connection: close sorral a bngsz azt kzli a szerverrel, hogy nem kvn lland sszekttetseket fenntar-
141
tani vagyis a szervernek minden elkldtt objektum utn le kell zrnia a kapcsolatot. A User-agent: sor a felhasznli gynkt azonostja, vagyis megadja a krst kld bngsz tpust. A pldban a felhasznli gynk a Mozilla/4.0, egy Netscape bngsz. Ez a fejlcsor azrt hasznos a szerver szmra, mert gy ugyanannak az objektumnak klnbz verziit kldheti el a klnbz,tpus felhasznli gynkknek. (A klnbz verzik ugyanazzal az RL-lel cmezhetk.) Vgl, az Accept-language: fr fejlc azt jelzi, hogy a felhasznl az objektum francia nyelv verzijt szeretn megkapni, amennyiben ez a verzi ltezik; egybknt a szerver az alaprtelmezett verzit kldi. Az Accept-language: fejlc csak egy a HTTP-ben rendelkezsre ll szmos tartalom- egyeztet fejlc kzl. Miutn megvizsgltunk egy pldt, nzzk meg a krszenetek ltalnos formtumt, amint azt a 2.6. bra mutatja. Lthatjuk, hogy az ltalnos formtum nagyban hasonlt a korbban tanulmnyozott pldnkhoz. szrevehetjk azonban, hogy a fejlcsorok (s az azokat kvet kocsivissza-soremels pr) utn egy trzs tallhat. A trzs GET metdus hasznlata esetn res, mg POST hasznlata esetn ki van tltve. A HTTP-kliensekakkor hasznljk a POST metdust, amikor a felhasznl egy rlapot tlt ki - pldul, amikor a felhasznl keresszavakat ad meg egy keresmotornak. A POST zenet szintn egy weboldal lekrsre szolgl a szervertl, de bizonyos tartalmak a weboldalon attl fggnek, amit a felhasznl az rlap mezibe rt. Ha a metdus rtke POST, a trzs azt tartalmazza, amit a felhasznl begpelt az rlap mezibe. Emltst kell tennnk azonban arrl, hogy egy rlappal ltrehozott HTTPkrsnek nem szksgszeren kell a POST metdust hasznlnia. A HTML-rlapok ehelyett gyakran hasznljk a GET metdust, s a kldend adatokat (az rlapmezk tartalmt) a krs URL-jhez fzik. Ha pldul egy rlap, amelynek kt mezje van, GET metdust hasznl, s a kt mez a majmok, illetve a bannok szvegeket tartalmazza, az URL a kvetkez lesz: www.somesite.com/animalsearch?majmok&bannok . Napjaink webes alkalmazsaiban is megfigyelhet ez a kibvtett URL-formtum.
Krssor metdus sp URL sp rtk Verzi cr If cr If
fejlcmez neve:
sp
Fejlcsorok
fejlcmez neve: cr If
sp
rtk
cr
If
res sor
Trzs
142
2.2. A
web S a
HTTP
143
A HEAD metdus hasonlt a GET metdushoz. Amikor egy szerver HEAD metdussal kldtt krst kap, vlaszknt visszakld egy HTTP-zenetet, de az nem tartalmazza a krt objektumot. Az alkalmazsfejlesztk gyakran hasznljk a HEAD metdust hibakeressre. A PT metdust gyakran hasznljk a webes kzztteli eszkzkkel kapcsolatban. A PT metdus lehetv teszi a felhasznl szmra, hogy feltltsn egy objektumot a webszerver egy megadott knyvtrba. A PT metdust hasznljk azok az alkalmazsok is, amelyeknek objektumokat kell feltltenik a webszerverekre. A DELETE metdus lehetv teszi a felhasznlknak s az alkalmazsoknak, hogy objektumokat trljenek a webszerveren.
HTTP-vlaszzcnetek
Az albbiakban bemutatunk egy tipikus HTTP-vlaszzenetet. Ez a vlaszzenet egy lehetsges vlasz a fentiekben trgyalt krszenetre.
HTTP/1.1 200 OK Connection: close Date: Thu, 07 Jul 2007 12:00:15 GMT Server: Apache/1.3.0 (Unix) Last-Modified: Sun, 6 May 2007 0 9 : 2 3 : 2 4 GMT ContentLength: 6 8 2 1 Content-Type: text/html (adat adat adat adat adat . . . )
Vizsgljuk meg figyelmesen a fenti vlaszzenetet. Hrom szakaszbl ll: a bevezet llapotsorbl (status line), hat fejlcsorbl (header line) s a trzsbl (entity body). A trzs az zenet veleje - ez tartalmazza magt a krt objektumot (ezt jelli az adat adat adat ...). Az llapotsornak hrom mezje van: a protokoll verzit jell mez, az llapotkd s a megfelel llapotzenet. A pldban az llapotsor azt jelzi, hogy a szerver HTTP/1.1 verzit hasznl, s minden hiba nlkl zajlott le (vagyis a szerver megtallta s elkldi a kliensnek a krt objektumot). Nzzk meg most a fejlcsorokat. A Connection : close sorral azt jelzi a szerver a kliensnek, hogy az zenet elkldse utn le fogja zrni a TCPsszekttetst. A Date: fejlcsor azt a dtumot s idpontot tartalmazza, amikor a szerver ltrehozta s elkldte a HTTP-vlaszt. Megjegyzend, hogy ez nem azonos az objektum ltrehozsnak vagy utols mdostsnak idpontjval, hanem azt az idpontot jelli, amikor a szerver kikereste az objektumot a fjlrendszerbl, beillesztette a vlaszzenetbe s elkldte a vlasz- zenetet. A Ser ver: fejlcsor mutatja, hogy az zenetet egy Apache webszerver hozta ltre; ez a sor analg a 1 ITTP-krszenet User-agent: fejlcsorval. A LastModifi- ed : fejlcsor az objektum ltrehozsnak vagy utols mdostsnak dtumt tartalmazza. A Last-Modified: fejlc, amelyet a ksbbiekben rszletesen ismertetnk, alapvet fontossg az objektumok gyorsttrazsa szempontjbl mind a helyi kliensen mind a hlzati gyorsttrszervereken (ezeket helyettest vagy proxyszervereknek is nevezik). A Content-Length: fejlcsor az elkldtt objektum bjtjainak szmt tartalmazza. A ContentType: fejlcsor azt jelzi, hogy az zenet trzsbe gyazott objektum egy
llapotsor 144
verzi
sp
llapotkd
sp llapotszveg rtk cr If
cr
fejlcmez neve:
sp
Fejlcsorok
fejlcmez neve: cr If
sp
rtk
cr
If
res sor
Trzs
145
(Az utols sor utn ssnk ktszer kocsivisszt.) Ezzel egy TCP-sszekttetst nyitunk a cis.poly.edu hoszt 80-as portjn, s elkldjk a HTTPkrszenetet. A kapott vlaszzenet egy HTML-fjlt tartalmaz, amely Ross professzor honlapjnak kezdfjlja. Ha nem vagyunk kvncsiak magra az objektumra, csak a HTTP-zenetsorokra, cserljk ki a GET szt HEAD-re. Vgl cserljk ki a /-ross/ elrsi utat a /-banana/ elrsi tra, s figyeljk meg a kapott vlaszzenetet. Ebben az alfejezetben sorra vettnk szmos fejlcsort, amelyek a HTTP krs- s vlaszzenetekben hasznlatosak. A HTTP-specifikci sokkal tbb olyan fejlcsort definil, amelyet a bngszk, webszerverek s gyorsttrszerverek az zenetbe illeszthetnek. Ezek kzl nhnyat az albbiakban mutatunk be, a tovbbiakat pedig a 2.2.5. alfejezetben, a gyorsttrazs bemutatsnl. A HTTP protokoll egy olvasmnyos s kimert bemutatsa - a fejlcekkel s az llapotkdokkal egytt megtallhat [Krishnamurty 2001] rsban, [Luotonen 1998] pedig egy fejleszti megkzeltst trgyal. Hogyan dnti el a bngsz, hogy mely fejlcsorokat kell beszrnia egy krszenetbe? Hogyan dnti el a webszerver, hogy mely fejlcsorokat kell beszrnia egy vlaszzenetbe? A bngsz ltal ltrehozott fejlcsorok fggnek a bngsz tpustl s verzijtl (egy HTTP/1.0 verzij bngsz pldul nem hoz ltre 1.1 verzij fejlcsorokat), a bngsz felhasznl ltal belltott konfigurcijtl (pldul a preferlt nyelvtl) s attl, hogy a bngsz mr rendelkezik-e az objektumnak egy gyorsttrazott, de mr elavult verzi jval. A webszerverek viselkedse hasonl: klnbz termkek, verzik s konfigurcik lteznek, amelyek mind befolysoljk azt, hogy milyen fejlcsorokat helyez el a szerver a vlaszzenetekbe.
alapjn lehet keresni. Az Amazon webszervere ezutn vlaszt kld Susan bngszjnek, s a HTTP-vlaszzenetben egy Set-cookie : fejlcet helyez el, amely az azonost szmot tartalmazza. Egy ilyen fejlcsor lehet pldul a kvetkez:
Set-cookie: 1678
Klienshoszt
Szerverhoszt
A szerver 1678-as bejegyzs a azonostt adja a httrfelhasznlnak adatbzisba
hozzfrs
<
Id
T
Id
Jells:
(p
5ti
J'
Cookie: 1678
Az Amazon-szerver ezltal kpes nyomon kvetni Susan tevkenysgt az Amazon oldalon. Habr az Amazon webhelye nem felttlenl ismeri Susan nevt, azt pontosan tudja, hogy az 1678-as szm felhasznl mely oldalakat, mikor s milyen sorrendben ltogatta meg! Az Amazon a stiket a bevsrlkocsi szolgltatshoz hasznlja fel - az oldal egy listt kszt a Susan ltal megvsrolni kvnt termkekrl, gy ezeket egytt, a vsrls vgn lehet kifizetni. Ha Susan ksbb, mondjuk egy ht mlva visszatr az Amazon webhelyre, a bngszje tovbbra is beilleszti a krszenetekbe a Cookie:1678 fejlcsort. Az Amazon tovbb termkeket ajnl Susannek az ltala korbban a webhelyen megltogatott oldalak alapjn. Ha Susan regisztrl az Amazonnl - megadva teljes nevt, e-mail cmt, postai cmt s hitelkrtyaadatait - az Amazon eltrolja ezeket az informcikat az adatbzisban, sszekapcsolva gy Susan nevt az azonost szmval (s az sszes, ltala korbban megltogatott oldallal!). Ez a megolds teszi lehetv az Amazonon s ms e-kereskedelmi webhelyeken a vsrlst egy kattintssal (one-click shopping) - ha Susan egy kvetkez alkalommal meg szeretne vsrolni egy termket, nem kell jra megadnia a nevt, hitel krtyaszmt s cmt. A fentiekbl ltjuk, hogy a stik a felhasznlk azonostsra szolglnak. Az els alkalommal, amikor egy felhasznl megltogat egy webhelyei, megadhat magrl valamilyen azonost informcit (pldul a nevt). Az ezt kvet ltogatsok alkalmval a bngsz egy stifejlcet kld a szervernek, amelyben azonostja a felhasznlt a szerver fel. A stik gy arra hasznlhatk, hogy egy felhasznli viszonyrteget alaktsunk ki az llapotmentes HTTP fltt. Ha pldul egy felhasznl bejelentkezik egy webes e-mail alkalmazsba (mint amilyen pldul a Hotmail), a bngsz a stik ltal olyan informcikat kld a szervernek, melyek ltal a szerver azonostani tudja a felhasznli a munkamenet sorn. A stik ugyan sok esetben megknnytik az internetes vsrlst a felhasznlk szmra, alkalmazsuk mgis vitk trgya, ugyanis a szemlyisgi jogok egyfajta megsrtst jelentheti. Ahogy az imnt lttuk, a stik s a felhasznlk ltal megadott belpsi informcik sszekapcsolsval a webhelyek sok mindent megtudhatnak a felhasznlkrl, s az gy szerzett informcikat tovbbkldhetik egy harmadik flnek. A Cookie Central [Cookie Central 2007] tfog tjkoztatst ad a stik alkalmazsa krli vitrl.
2.2. A
2.
web f.s a
HTTP
101
A gyorsttr megnzi, hogy ltezik-e a sajt troljban az objektum egy msolata. Ha igen, a gyorsttr egy IITTP-vlaszzenetben visszakldi az objektumot a kliens bngszjnek. 3. Haazobjektum nem tallhat megagyorsttrban,agyorsittrszerverTCPsszekt- tetst nyit az objektumot eredetileg tartalmaz szerverrel, a forrsszerverrel (www. someschool.edu). A gyorsttr ezutn egy HTTPkrszenetet kld a forrsszervernek, amelyben lekri az objektumot. Miutn a szerver megkapta ezt a krst, HTTP-vlaszzenetben visszakldi az objektumot a gyorsttrnak. 4. Miutnagyorsttrmegkaptaazobjektum troljba, egy msik msolatt ot.annakegymsolattelmentiasajthelyi
gszjnek (a kliens bngszje <
pedig HTTP-vlaszzenetben elkldi a kliens bn- s a gyorsttr kztt mr fennll ICP-sszekt tetsen keresztl).
Forrs szerver
Kliens
Forrs szerver
kliens s a gyorsttr kztt nagy sebessg sszekttets van (ez gyakran teljesl), s a gyorsttrban megtallhat a krt objektum, a gyorsttr pillanatokon bell elkldi az objektumot a kliensnek. Msodszor, amint azt egy pldn be is fogjuk mulatni, a gyorsttrak jelents mrtkben cskkenthetik a forgalmat egy intzmny internetes kapcsolatn. A forgalom cskkentse azt jelenti, hogy
az intzmny nem szorul r a svszlessg gyakori nvelsre, vagyis kltsgcskkens rhet el. A webes gyorsttrak tovbb jelentsen cskkenthetik az internet egsznek forgalmt, ezltal nvelve minden internetes alkalmazs teljestmnyt. A gyorsttrak elnyeinek jobb megrtshez vessnk egy pillantst a 2.10. brn lthat pldra. Az brn kt hlzat lthat - az intzmnyi hlzat s a nyilvnos internet tbbi rsze. Az intzmnyi hlzat egy nagy sebessg LAN. Az intzmnyi hlzat tvlasztja s az internetes tvlaszt kztt egy 15 Mb/s sebessg adatkapcsolat tallhat. A forrsszerverek az internetre csatlakoznak, de a Fld tbb klnbz pontjn helyezkednek el. Tegyk fel, hogy az tlagos objektummret 1 Mbit, az a sebessg pedig, amellyel az intzmny bngszi a forrsszerverekhez fordulnak, 15 krs msodpercenknt. Felttelezzk, hogy a HTTP-krszenetek mrete elhanyagolhatan kicsi, s gy nem okoz tbbletforgalmat sem a hlzatokon, sem az intzmnyi tvlaszt s az internetes tvlaszt kzti adatkapcsolaton. Felttelezzk tovbb, hogy attl kezdve, hogy a 2.10. brn lthat internetes tvlaszt tovbbt egy HTTPzenetet (egy IP-adatcsomagban) kt msodperc telik el addig, amg megkapja r a vlaszt (ltalban tbb IP-adatcsomagban). Nevezzk el ezt a ksleltetst nem hivatalosan internetksleltetesnek. A teljes vlaszid - a bngsz objektumra vonatkoz krsnek elkldse s az objektum megrkezse kztti id - a LAN ksleltetsnek, a hozzfrsi ksleltetsnek (a kt tvlaszt kzti adatkapcsolat ksleltetsnek) s az internetes ksleltetsnek az sszege.
Forrsszerverek
Nyilvnos internet
100 Mb/s LAN
Intzmnyi hlzat
Vgezznk el egy kzelt szmtst erre a ksleltetsre. A forgalom intenzitsa a LAN-on (lsd 1.4.2. alfejezet): (15 krs/s) x (1 Mbit/krs)/(10() Mb/s) = 0,15 mg a hozzfrsi adatkapcsolaton (az internetes tvlaszt s az intzmnyi tvlaszt kztt) a hozzfrsi forgalom intenzitsa (15 krs/s) x (1 Mbit/krs)/(15 Mb/s) = 1 A 0,15-os forgalomintenzits egy LAN-on ltalban legfeljebb pr tzezredmsodperces ksleltetst okoz, a LAN ksleltetst ezrt figyelmen kvl hagyhatjuk. Ahogy azonban az 1.4.2. fejezetben lttuk, ha a forgalomintenzits elri az 1-et (ez a helyzet a 2.10. bra adat- kapcsolati hozzfrsnl), az adott kapcsolaton a ksleltets nagyon naggy vlik s korlt nlkl nvekszik. A krsek teljestsnek tlagos vlaszideje gy a perces nagysgrendben lesz, esetleg ennl is nagyobb, ami az intzmny felhasznli szmra elfogadhatatlan. Ezzel a problmval nyilvnvalan kezdeni kell valamit. Egy lehetsges megolds az internetelrs sebessgnek nvelse 15 Mb/s-rl, mondjuk, 100 Mb/s-re. Ezltal az internetelrsen a forgalomintenzits lecskken 0,15-re, ami azt jelenti, hogy a kt tvlaszt kztti ksleltets el hanyagol hatv vlik. Ebben az esetben a teljes vlaszid durvn kt msodperc lesz, amely megegyezik az internet ksleltetssel. Ez azonban egy kltsges javaslat, hiszen az intzmnynek fejlesztenie kell a hozzfrsi adatkapcsolatt 15 Mb/s-rl 100 Mb/s-re. Az internet-hozzfrs svszlessgnek nvelsvel szemben a msik megolds egy gyorsttrszerver teleptse az intzmnyi hlzatra. Ezt a megoldst mutatja be a 2.11. bra. A tallati arny - azon krsek arnya, amelyeket a gyorsttr szolgl ki - a gyakorlatban tipikusan 0,2-0,7 kzti rtk. A szemlltets cljbl tegyk fel, hogy a pldnkban szerepl intzmnynl a gyorsttr tallati arnya 0,4. Mivel a kliensek s a gyorsttr ugyanarra a nagy sebessg LAN-ra csatlakoznak, a krsek 40 szzalkt a gyorsttr szinte azonnal - mondjuk 10 ms alatt - kiszolglja. A krsek fennmarad 60 szzalkt azonban a forrsszervereknek kell kiszolglniuk. De mivel a krt objektumoknak csak 60 szzalka kerl tovbbtsra az internet-hozzfrsen keresztl, ezrt itt a forgalomintenzits lecskken 1-rl 0,6-ra. ltalnossgban elmondhat, hogy egy 15 Mb/s sebessg sszekttetsen a 0,8 alatti forgalomintcnzits kis ksleltetst - ez kb. nhny 10 ms - eredmnyez. Ez a ksleltets elhanyagolhat a kt msodperces internetksleltetshez kpest. Ezen felttelek mellett az tlagos ksleltets az albbi kplettel szmthat: 0,4 x (0,01 s) + 0,6 x (2,01 s) ami kicsivel tbb, mint 1,2 msodperc. A msodik megoldssal teht mg a vlaszidt is cskkenthetjk az els megoldshoz kpest, s nem szksges az intzmny internet-hozzfrcsnek bvtse sem. Termszetesen az
intzmnynek be kell szereznie s teleptenie kell egy gyorsttrszervert. Ez azonban nem jelent nagy kltsget - a gyorsttrak gyakran olcs PC-kbl s az azokon fut ingyenes szoftverekbl llnak.
FTPkliens
Fjltvitel
Helyi fjlrendszer
Tvoli fjlrendszer
parancsok. Magnak a fjlnak az tvitele az adattviteli sszekttetsen keresztl trtnik. Mivel az FTP kln vezrlsi sszekttetst hasznl, azt mondjk, a ve zrlsi informcit svon kvl (out of bnd) kldi. A 7. fejezetben ltni fogjuk, hogy az RT'SP protokoll, amely hang- s videoadatok folyamatos tvitelre szolgl, szintn svon kvl tovbbtja a vezrlsi informcit. A HTTP, ahogy lttuk, ugyanazon a TCP-ssze- kttetsen keresztl kldi a a krs- s vlaszfej lceket, amelyen magt a tovbbtand fjlt. Ms kifejezssel, a HTTP protokoll svon bell (in-band) tovbbtja a vezrlsi informcit. A kvetkez alfejezetben ltni fogjuk, hogy az SMTP, az elektronikus levelezs f protokollja szintn svon bell tovbbtja a vezrlsi informcit. Az FTP vezrlsi s adattviteli sszekttetseit mutatja be a 2.13. bra.
FTPszerver
PASS jelsz: A felhasznl jelszavnak kldsre szolgl. LIST: arra kri a szervert, hogy kldjn egy listt, amely az aktulis tvoli knyvtrban tallhat sszes fjlt tartalmazza. Ezt a fjllistt a szerver a vezrlsi TCP-ssze- kttets helyett egy (jonnan ltrehozott s idleges) adattviteli sszekttetsen t kldi vissza.
Forrsszerverek
Nyilvnos internet
Intzmnyi gyorstr
Intzmnyi hlzat
HTTP/1.1 200 OK Date: Thu f 7 Jul 2007 15:39:29 Server: Apache/1.3.0 (Unix) Last-Modified: Mon, 4 Jul 2007 09:23:24 ContentType: image/gif (adat adat adat adat adat . . . ) A gyorsttr tovbbtja az objektumot a bngsznek, s egyttal el is menti az objektumot a sajt troljba. Fontos, hogy a gyorsttr az objektummal egytt az objektum utols mdostsnak dtumt is eltrolja. Harmadik lpsknt egy httel ksbb egy msik bngsz lekri ugyanezt az objektumot a gyorsttrszerveren keresztl. Az objektum mg mindig a gyorsttrban van. Mivel lehetsges, hogy az elmlt hten mdostottk az objektumot a webszerveren, a gyorsttr egy feltteles GET kiadsval ellenrzi az objek tum frissessgt. A gyorsttr az albbi zenetet kldi a webszervernek: GET /fruit/kiwi.gif HTTP/1.1 Hst: www.exotiquecuisine.com If-modified-since: Wed, 4 Jul 2007 09:23:24 Figyeljk meg, hogy az If-modified-since: fejlcsor rtke pontosan megegyezik az egy httel korbban a szervernek kldtt Last-Modified: fejlcsor rtkvel. Ez a feltteles GET azt mondja a szervernek, hogy csak akkor kldje cl az objektumot, ha az vltozott a megadott dtum ta. Tegyk fel, hogy az objektum nem mdosult 2007. jlius 4. 09:23:24 ta. Ekkor a negyedik lpsben a webszerver a kvetkez vlaszzenetet kldi a gyorsttrnak: HTTP/1.1 304 Nt Modified Date: Thu, 14 Jul 2007 15:39:29 Server: Apache/1.3.0 (Unix) (res trzs) Ltjuk, hogy a feltteles GET krsre vlaszul a szerver csak egy vlaszzenetet kld, de nem csatolja a krt objektumot a vlaszzenethez. A krt objektum csatolsa csak feleslegesen pazaroln a svszlessget s nveln a felhasznl ltal tapasztalt vlaszidt, klnsen nagy mret objektumok esetn. Figyeljk meg, hogy az utols vlaszzenet llapotsornak tartalma 304 Nt Modified (nem mdostott), ami azt jelzi a gyorsttrnak, hogy elkldheti az objektum gyorsttrazott msolatt a bngsznek. Ezzel befejeztk a HTTP trgyalst. Ez volt az els internetes protokoll (egy alkalmazsi rtegbeli protokoll), amelyet rszletesen tanulmnyoztunk. Megvizsgltuk a HTTP-zenetek formtumt, valamint a webszerver s a kliens ltal ezen zenetek kldse s fogadsa sorn vgrehajtott mveleteket. Betekintst nyertnk a web alkalmazs-infrastruktrjba, amely magban foglalja a gyorsttrakat, a stiket s a httradatbziso kat, amelyek valamilyen mdon
108
RETR fjlnv: letlti a megadott nev fjlt a tvoli hoszt aktulis knyvtrbl. A parancs hatsra a tvoli hoszt lt rehoz egy adattviteli sszekttetst, s azon keresztl kldi el a krt fjlt. STOR filename: feltlti a megadott nev fjlt a tvoli hoszt aktulis knyvtrba. A felhasznl ltal kiadott parancsok s a vezrlsi sszekttetsen keresztl tovbbtott FTP-parancsok ltalban egyrtelmen megfeleltethetk egymsnak. Minden parancsot egy vlasz kvet, amelyet a szerver kld a kliensnek. A vlaszok hrom szmjegy szmok, amelyeket esetlegesen egy zenet kvethet. Ez hasonlt a HTTP-vlaszzenetek llapotsorban tallhat llapotkdok s zenetek struktrjhoz. Kvetkezzen nhny szoksos vlasz a hozzjuk tartoz zenetekkel egytt: 331 Username OK, password required (Felhasznlnvrendben, jelsz szk sges) 125 Data connection already open; transfer starting (Azadat- tviteli sszekttets mr ltezik; tvitel indtsa) 425 Can't open data connection (Nem lehet megnyitni az adattviteli sszekttetst) 452 Error writing fjl (Hiba a fjl rsa kzben) Akik szeretnk rszletesebben megismerni az FTP-parancsokat s -vlaszokat, az RFC 959-ben tallnak bvebb informcikat.
109
(Sirnple Mail Transfer Protocol, SMTP). F. hrom sszetevt egy pldn mutatjuk be, amelyben a kld, Alice
110
egy e-mail zenetet kld a cmzettnek, Bobnak. (A felhasznli gynkket levlolvasknak is szoktk nevezni, de ebben a knyvben ltalban nem hasznljuk ezt a kifejezst.) Miutn Alice megrta az zenetet, a felhasznli gynke elkldi az zenetet a levelezszervernek, ahol az zenet a levelezszerver kimen zenetsorba kerl. Amikor Bob szerelne elolvasni egy zenetet, a felhasznli gynke elkeresi ezt az zenetet Bob sajt levelezszervern tallhat postafikjbl. A*z 1990-es vek kzeptl egyre npszerbb vltak a grafikus felhasznli fellettel rendelkez felhasznli gynkk, amelyek lehetv teszik a felhasznlk szmra multimdis zenetek megtekintst s sszelltst. Ilyen npszer grafikus fellet e-mail felhasznli gynk jelenleg tbbek kztt a Microsoft Outlook, az Apple Mail s a Mozilla Ihunderbird. Ezenkvl szmos szvegalap ingyenes e-mail felhasznli fellet ltezik (tbbek kztt a mail, pine s elm), valamint, ahogy azt nemsokra ltni fogjuk, vannak vvebes felletek is. Az e-mail infrastruktra magjt a levelezszerverek alkotjk. Minden cmzett, gy Bob is rendelkezik egy postafikkal (mailbox), amely valamelyik levelezszerveren tallhat. Bob postafikja kezeli s tartja karban azokat az zeneteket, amelyeket Bob kapott.
Levelez szerver
elhasznli gynk
Levelez szerver
elhasznli gynk
Jells:
111
Kimen Ozeneisor
Lili
gy kis trtnelem
Hotmail
1995 decemberben Sabeer Bhatia s Jack Smith felkerestk az internetes vllalkozsokkal foglalkoz befektet cget, a Draper Fisher Jurvetsont, s felajnlottk neki, hogy kifejlesztenek egy webes alap elektronikus levelezrendszert. A/, volt a-/, tletk, hogy brki, aki szeretn, kaphasson ingyenes e-mail postaikot, s ezeket a postafikokat a weben keresztl lehessen elrni. A webes e-mail rendszeren keresztl brki, aki webhozzfrssel rendelkezik pldul egy iskolbl vagy egy kzknyvtrbl - olvashatna s rhatna e-maileket. A webes e-mail tovbb nagy mrtk mobilitst tenne lehetv elfizeti szmra. Bhatia s Smith megalaptottk a Hotmail nev ccget, amelyet 15 szzalkos rszesedsrt cserbe a Draper Fisher Jurvetson finanszrozott. Hrom teljes munkaids munkatrssal s 12-14 rszmunkaids alkalmazottal, akik rszvnyvsrlsi opcirt dolgoztak, 1996 jliusra sikerlt kifejleszteni s elindtani a szolgltatst. Az induls utn egy hnappal mr 100 000 elfizetjk volt. Az elfizetk szma gyorsan nvekedett, ami azt is jelentette, hogy az elolvasott levelekhez fztt szalaghirdetsek egyre tbb emberhez jutottak el. 1997 decemberben, kevesebb mint 18 hnappal a szolgltats elindtsa utn, a Hotmailnek 12 milli elfizetje volt; ekkor a Microsoft felvsrolta, a hrek szerint 400 milli dollrrt. A Hotmail sikert gyakran tulajdontjk az elsknt mozdulk
(first-mover) elnynek,
valamint az e-mail jellegbl add vrusmarketingnek. A Hotmail elnyre szolglt, hogy az els cg volt, amely webes alap e-mail szolgltatst knlt. Termszetesen tbb ms cg is lemsolta a Hotmail tleti, de a Hotmail hat hnap elnnyel rendelkezett velk szemben. Sikerk azon alapult, hogy volt egy eredeti tletk, s abbl gyorsan s titokban mkd alkalmazsi fejlesztettek ki. A vrusmarketing kifejezs azokra a termkekre s szolgltatsokra vonatkozik, amelyek nmagukat reklmozzk. Az e-mail a vrusmarketing klasszikus pldja - a felad zenetet kld egy vagy tbb cmzettnek, ezllal minden cmzett figyelmt felhvja a szolgltatsra. A Hotmail esete megmutatta, hogy az elsknt mozdulk elnynek s a vrusmarke- tingnek egyszerre trtn kihasznlsval igazi tt erej alkalmazs hozhal ltre. Taln ppen az ezen knyvet olvas hallgatk kzl kerlnek majd ki azok a vllalkozk, akik hasonl internetes szolgltatsokat tallnak ki s fejlesztenek ki.
F.gy tipikus zenet tja a felad felhasznli gynknl kezddik, innen az zenet elbb a felad levelezszerverre tovbbtdik, majd megrkezik a cmzett levelezszerverre, ahol a cmzett postafikjba kerl. Amikor Bob hozz szerelne frni a postafikjban lv zenetekhez, a postafikot karbantart levelezszerver azonostja Bobot (a felhasznlnevvel s a jelszavval). Alice levelezszervernek kezelnie kell azokat az eseteket is, ha Bob levelezszervern hiba lp fel. Ha Alice szervere nem tudja tovbbtani a levelet Bob szervernek, Alice szervere egy zenetsorba (message queue) helyezi az zenetet, s k sbb jra megprblkozik a kldssel. A prblkozsok trtnhetnek pldul 30 msod percenknt. Ha nhny nap utn sem sikerl a kzbests, a szerver trli az zenetet, s errl e-mailben rtesti Alice-t. Az internetes elektronikus levelezs alapvet alkalmazsi protokollja az SMTP. Az SMTP a TCP megbzhat adattviteli szolgltatst hasznlja a levelek eljuttatsra a felad levelezszervertl a cmzett levelezszerverig. Mint a legtbb alkalmazsi protokollnak, az SMTP-nek is kt oldala van: egy kliens a felad levelezszervern, s egy szerver a cmzett levelezszervern. Minden levelezszerver futtatja az SMTP mindkt oldalt, a szerver s a kliensoldalt is.
levelet
fogad
ms
2.4.1. SMTP
Az SMTP, amelyet az RFC 2821-ben definiltak, az internetes elektronikus levelezs alapja. Ahogy mr emltettk, az SMTP juttatja el az zeneteket feladk levelezszervereitl a cmzettek levelezszervereihez. Az SMTP jval rgebbi protokoll, mint a HTTP. (Az eredeti SMTP RFC-t 1982-ben tettk kzz, de az SMTP mr korbban is ltezett.) Habr az SMTP szmos nagyszer tulajdonsggal rendelkezik, amit az interneten trtnt szles kr elterjedse is igazol, mgis rkltt (legacy) technolginak szmt, nmileg elavult jellegzetessgekkel. Ilyen pldul, hogy mindenfle e-mail zenet trzsben (nem csak a fejlcekben) kizrlag egyszer, 7 bites ASC'II-kdokat enged hasznlni. Ennek a korl tozsnak volt rtelme az 1980-as vek elejn, amikor szks volt az tviteli kapacits, s senki nem csatolt nagy mellkleteket, kpeket, hang- vagy videofjlokat az emailjeihez. Napjaink multimdis korszakban azonban a 7 bites ASCII-kdokra korltozs csak gondokat okoz - a multimdis adatokat emiatt ASCII-formtumra kell kdolni, mieltt SMTP-vel el lehetne kldeni ket; az SMTP-tvitel utn pedig dekdolni kell ezt az ASCII-zenetet binris formtumra. Idzzk fel a 2.2. alfejezetbl, hogy a HTTP nem ignyli a multimdis adatok ASCII-formtumra trtn kdolst az tvitel eltt. Az SMTP mkdsnek alapjait ismertetend, nzznk vgig egy szokvnyos forgatknyvel. Tegyk fel, hogy Alice egy egyszer ASCII-zenetet szeretne kldeni Bobnak. A forgatknyvet a 2.15. bra szemllteti. 1. Alice elindtja a sajt e-mail felhasznli gynkt, megadja Bob e-mail cmt (pldul bob@someschool.edu ), sszellt egy zenetet, majd utastja a felhasznli gynkt, hogy kldje el az zenetet. 2. Alice felhasznli gynke elkldi az zenetet Alice levelezszervernek, ahol az egy zenetsorba kerl. 3. Az SMTP kliensoldali rsze, amely Alice levelezszervern fut, szreveszi az zenetet az zenetsorban. TCP-sszekttetst ltest a Bob levelezszervern fut SMTP-szer- verrel. 4. Nhny kezdeti SMTP kzfogs-zenet utn az SMTP-kliens elkldi Alice zenett a TCP-sszekttetsen keresztl. 5. Bob levelezszervern az SMTP szerveroldali rsze fogadja az zenetet. Bob levelezszervere ezutn Bob posta fikjba helyezi az zenetet. 6. Bob a sajt felhasznli gynkvel elolvassa a levelet, amikor az neki knyelmes. Fontos szrevenni, hogy az SMTP alapesetben nem vesz ignybe kzbees levelezszervereket a levl elkldshez, mg akkor sem, ha a kt levelezszerver a Fld kl tellenes pontjn tallhat. Ha Alice szervere Hongkongban, Bob szervere pedig St. Louis-ban van, akkor is kzvetlen TCP-sszekttets jn ltre a kt szerver kztt. Abban az esetben, ha Bob szervere ppen nem mkdik, az zenet Alice levelezszervern marad, s vrakozik egy jabb tovbbtsi ksrletre - az zenet nem kerl t egy kzbees levelezszerverre.
Vizsgljuk meg most egy kicsit kzelebbrl, hogyan juttatja el az SMTP az zeneteket a kld levelezszervertl a fogad levelezszerverig. Ltni fogjuk, hogy az SMTP protokoll sokban hasonlt azokra a protokollokra, amelyek az emberek kztti kzvetlen rintkezs-
Jells:
zeroiso- F^"410 hUS postafikja
2.15. bra. Alice zenetet kld Bobnak re szolglnak. A SMTP-kliens (amely a kld levelezszerver-hoszton fut) TCPsszekt- tetst ltest a 25-s porton lv SMTP-szerverrel (amely a fogad levelezszerver-hoszton fut). Ha a szerver nem elrhet, a kliens ksbb jra prblkozik. Miutn az sszekttets ltrejtt, a szerver s a kliens nhny alkalmazsi rtegbeli kzfogs-zenetet vlt - ahogy az emberek is bemutatkoznak egymsnak, mieltt informcikat cserlnnek, az SMTP-kliensek s -szerverek is bemutatkoznak egymsnak az informcicsere meg kezdse eltt. Az SMTP kzfogsi fzisa alatt az SMTP-kliens azonostja a felad (aki az zenetet ltrehozta) e-mail cmt s a cmzett e-mail cmt. Abbl a clbl, hogy az ze netet hiba nlkl eljuttassa a szerverhez, az SMTP a TCP megbzhat adatszllt szolgltatsra tmaszkodhat. Ha tovbbi zeneteket kell elkldeni a szerver fel, a kliens megismtli ezt az eljrst ugyanazon a TCP-sszekttetsen keresztl; egybknt pedig lezrja a TCP-sszekttetst. Nzznk meg most egy pldt, amely az SMTP-kliens (K) s az SMTP-szerver (S) kztt cserlt zenetek msolata. A kliens hosztneve crepes.fr, a szerver hosztneve pedig hamburger.edu. A K: kezdet ASCII-szveges sorok pontosan azt a szveget tartalmazzk, amelyet a kliens a sajt TCP-szoketjre kld, az S: kezdet ASCII-sorok pedig pontosan azt a szveget tartalmazzk, amelyet a szerver a sajt TCP-szoketjre kld. A TCP-sszekttets ltrehozsa utn kzvetlenl a kvetkez prbeszd kezddik:
S: 220 hamburger.edu K: HELO crepes.fr S: 250 Hello crepes.fr, pleased to meet you K: MAIL FROM: < alice@crepes.fr > S: 250 alice6crepes.fr ... Sender ok K: RCPT TO: < bob@hamburger.edu > S: 250 bob@hamburger.edu ... Recipient ok K: DATA S: 354 Enter mail, end with "." on a line by itself K: Szereted a ketchupt? K: s a savanysgot?
K: QUIT
S: 221 hamburger.edu closing connection A fenti pldban a kliens egy zenetet (Szereted a ketchupt? s a sa vanysgot?) kld a crepes.fr levelezszerverrl a hamburger.edu levelezszerverre. A prbeszd rszeknt a kliens 5 parancsot ad ki: HELO (a HELLO rvidtse), MAIL FROM (levl feladja), RCPT TO (levl cmzettje), DATA (az tkldend adat) s QUIT (kilps). A kliens kld egy egyetlen pontot tartalmaz sort is, amely az zenet vgt jelzi a szervernek. (ASCIl-zsargonban kifejezve, minden zenetet CRLF.CRLF zr, ahol CR a kocsivissza, LF pedig a sorvge karaktert jelli). A szerver vlaszt kld minden egyes parancsra. A vlaszok egy vlaszkdbl s (opcionlisan) egy angol nyelv magya rzatbl llnak. Itt jegyezzk meg, hogy az SMTP lland sszekttetseket hasznl: ha a kld levelezszerver tbb zenetet akar elkldeni ugyanannak a fogad levelezszer vernek, megteheti, hogy az sszes zenetet ugyanazon a TCP-sszekttetsen keresztl kldi el. A kliens minden zenet elkldsekor egy j MAIL FROM: crepes.fr sorral indt, az zenet vgt egy ponttal jelzi, az sszes zenet elkldse utn pedig kiadja a QUIT parancsot. Ersen javasoljuk, hogy az olvas prblja ki a Telnet segtsgvel, hogyan lehet kzvetlenl kommuniklni egy SMTP-szervrrel. Ehhez az albbi parancsot kell begpelni: telnet szervernv 25 ahol szervernv a helyi levelezszerver neve. Ennek a parancsnak a kiadsakor egyszeren egy TCP-sszekttets jn ltre az olvas helyi hosztja s a levelezszerver kztt. A fenti sor begpelse utn a szerver azonnal visszakldi a 220-as kd vlaszt. Ezutn adjuk ki a megfelel sorrendben a HELO, MAIL FROM, RCPT TO, DATA, CRLF.CRLF s QUIT SMTP-parancsokat.
Egy msik klnbsg, amelyre korbban mr utaltunk, hogy az SMTP-nl minden zenetnek, belertve az zenetek trzst is, 7 bites ASCTI-formtumnak kell lennie. Ha az zenetben olyan karakterek vannak, amelyek a 7 bites ASCIIkdtblban nem tallhatk meg (pldul kezetes magyar betk), vagy az zenet binris adatokat (pldul egy kpet) tartalmaz, akkor az zenetet t kell kdolni 7 bites ASCII-formtumra. A HTTP nem tesz ilyen megszortsokat. A harmadik fontos klnbsg abban mutatkozik, hogy hogyan kezeli a kt protokoll a szveget s kpeket (esetleg ms binris objektumokat) tartalmaz dokumentumokat. Ahogy a 2.2. alfejezetben lttuk, a HTTP minden objektumot a sajt HTTP-vlaszze- netbe gyaz be. Az internetes levelezsnl, ahogy azt ksbb rszletesen bemutatjuk, az zenet sszes objektuma egyetlen zenetbe kerl. Vgl egy fontos hasonlsg, amelyrl korbban mr esett sz, hogy a HTTP is s az SMTP is svon belli vezrlst hasznl.
kell elhelyeznie az zenetben. Ezeket az extra fejlceket az RFC 2045 s az RFC 2046, a tbbcl internetes levl kiterjesztsek (Multipurpose Internet Mail Extensions, MIM) definiljk. A multimdia tmogatsra szolgl kt f MIME-fejlc a Content-Type : fejlc s a Content-Transfer-Encoding: fejlc. A Content-Type: fejlc lehetv teszi a fogad felhasznli gynk szmra, hogya megfelel mveletet hajtsa vgre az zeneten. Ha pldul a fejlc azt jelzi, hogy az zenet trzse egy JPEG-kpet tartalmaz, a fogad felhasznli gynk tovbbthatja az zenettrzset egy JPEG kicsomagol rutinnak. Ah hoz, hogy a ContentTransfer-Encoding: fejlc jelentsgt megrtsk, idzzk fel, hogy a nem ASCII-kdols szveges zeneteket ASCII-formtumv kell kdolni, hogy ne zavarjk meg az SMTP mkdst. A Content-Transfer-Encoding: fejlc arra figyelmezteti a fogad felhasznli gynkt, hogy az zenet trzst ASCIIform- tumv kdoltk t, s megadja a hasznlt kdols tpust. gy, ha egy felhasznli gynk zenetet kap a fenti kl fejlccel, elbb a ContentTransfer-Encoding: fejlc rtke alapjn visszaalaktja az zenet trzst az eredeti, nem ASCII-formtumba, majd a Content-Type: fejlc alapjn eldnti, hogy milyen mveletet kell vgrehajtania az zenettrzsn. Nzznk meg egy konkrt pldt. Tegyk fel, hogy Alice egy JPEG-kpet szeretne kldeni Bobnak. Ehhez Alice elindtja a sajt e-mail klienst, berja Bob e-mail cmt, megadja az zenet trgyt, s beszrja a )PEG-kpet az zenet trzsbe. (Beillesztheti a kpet mellkletknt is, az alkalmazott felhasznli gynk tpustl fggen.) Miutn Alice befejezte a levl rst, a Klds gombra kattint. Alice felhasznli gynke ezutn egy MIME-zenetet llt ssze, amely valahogy gy nz ki:
From: alice@crepes.fr To: bob@hamburger.edu Subject: Kp a finom sutidrol. MIME-Versio n : 1.0 Content- TransferEncoding: base64 Content- Type: image/jpeg (base64 kdols adat ...................................................... base64 kdols adat)
A fenti MIME-zenetben megfigyelhetjk, hogy Alice felhasznli gynke base64 kdolssal kdolta a JPEG-kpet. Ez az egyik olyan kdolsi technika, amely az zenetek 7 bites ASCII-formtumra trtn kdolsra szolgl. A base64-et nhny ms kdolsi technikval egytt a MIME |RCF 2045]-ben szabvnyostottk. Egy msik npszer kdolsi technika az idzett nyomtathat karakteres (quotedprintable) tartalomtviteli kdols, amelyet jellemzen 8 bites (az angol nyelven kvli karaktereket tartalmaz) ASCII-szvcgek 7 bites ASCII-formtumra trtn talaktsra hasznlnak. Amikor Bob elolvassa a levelet a sajt felhasznli gynkvel, a felhasznli gynk ugyanezt a MIME-zenetet dolgozza fel. Amikor Bob felhasznli gynke
szleli a Content-Transfer-Encoding : base64 fejlcsort, elkezdi dekdolni a base64 kdols zenettrzset. Az zenet egy Content-Type: image/jpeg fejlcsort is tartalmaz, amely azt jelzi Bob felhasznli gynke szmra, hogy az zenet trzsn JPEG kicsomagol algoritmust kell futtatni. Az zenet tovbb tartalmazza a MIME-Version: fejIcct is, amely rtelemszeren az alkalmazott MlME-verziszmot jelli. Megjegyezzk, hogy az zenet egybknt a szabvnyos RFC 822/SMTP formtumot kveti. Az zenetfejlc utn egy res sor, majd az zenet trzse kvetkezik.
A fogadott zenet
Hanyagok lennnk, ha nem tennnk emltst a fejlcsorok egy tovbbi osztlyrl, amelyet a fogad SMTP-szerver illeszt be az zenetbe. A cmzett szerver, amikor egy RFC 822 s MJMF-fejlcsorokkal elltott zenetet fogad, az zenet elejre egy Received: fejlcsort szr be; ez a ejlcsor adja meg az zenetet kld SMTPszerver nevt (from), az zenetet fogad szerver nevt (by), valamint azt az idpontot, amikor az zenet megrkezett a szerverre. Az zenet teht a cmzett felhasznl szmra a kvetkez formban jelenik meg:
Received: from crepes.fr by hamburger.edu; 12 Oct 98 15:27:39 GMT From: Alice0crepes.fr To: bob@hamburger.edu Subject: Kp a finom sutirl. MIME-Versio n: 1.0 Content-Transfer- Encoding: base64 Content-Type: imag e/jpeg base64 kdols adatok ............... ............base64 kdols adatok
Majdnem mindenki, aki hasznlt mr elektronikus levelezst, ltta mr az e-mail zeneteket megelz Received: fejlcsort (a tbbi fejlcsorral egytt). (Ez a sor gyak ran kzvetlenl is lthat a kpernyn vagy a kinyomtatott zeneten.) Taln szrevette az olvas, hogy nha egy zenetnek tbb Received: fejlcsora s egy bonyolultabb Return-Path: fejlcsora van. Ennek az a magyarzata, hogy egy zenet a kld s a fogad kztt tbb SMTP-szervercn is thaladt. Ha pldul Bob azt az utastst adja a sajt e-mail szervernek (hamburger.edu), hogy tovbbtson minden berkez zenetet a sushi.jp szervernek, akkor a Bob felhasznli gynke ltal megjelentett zenet valahogy gy fog kezddni:
Received: fro m hamburger.edu by sushi.jp; 3 Jul 01 15:30.01 GMT Received: from crepes.fr by hamburger.edu; 3 Jul 01 15:17:39 GMT
Ezen fejlcsorok segtsgvel a cmzett felhasznli gynke nyomon tudja kvetni, hogy az zenet mely SMTP-szervereken s milyen idpontban haladt keresztl.
Miutn az SMTP eljuttatta az zenetet Alice levelezszervertl Bob levelezszerverhez, az zenet Bob postafikjba kerl. A korbbiakban hallgatlagosan feltteleztk, hogy Bob a levelet gy olvassa el, hogy bejelentkezik a szerverhosztra, majd elindt egy levlol vas programot, amely ezen a hoszton fut. Egszen az 1990-es vek elejig ez volt a levelek elolvassnak szoksos mdja. Napjainkban azonban a levlelrs kliens-szerver architektrval mkdik - az tlagos felhasznl az e-mailjeit egy olyan kliens hasznlatval tekinti meg, amely a felhasznl vgrendszern fut, pldul egy irodai PC-n, egy laptopon vagy egy PDA-n. Azltal, hogy a levelezkliens egy helyi PC-n fut, a felhasznlk a szolgltatsok gazdag vlasztkt lvezhetik, belertve a multimdis zenetek s mellkletek megtekintsnek lehetsgt is. Felttelezve, hogy (a cmzett) Bob a felhasznli gynkt a sajt helyi PC-jn futtatja, termszetesnek tnik ugyanerre a helyi PC-re telepteni egy levelezszervert is. Ebben a megkzeltsben Alice levelezszervere kzvetlen prbeszdet folytatna Bob PC-jvel. Van azonban egy kis gond ezzel a megkzeltssel. Emlkezznk, hogy a levelezszerverek kezelik a postafikokat s futtatjk az SMTP kliens- s szerveroldali rszt. 1 la Bob levele zszervere a sajt PC-jn futna, Bob PC-jnek folyamatosan bekapcsolva s az internetre csatlakoztatva kellene lenni, hogy fogadja az j leveleket, amelyek brmely idpontban rkezhetnek. Ez a legtbb internetfelhasznl szmra nem praktikus. Egy tlagos felhasznl ehelyett a helyi PC-n futtatja a felhasznli gynkt, de a postafikja egy folyamatosan zemel, megosztott hasznlat levelezszerveren tallhat. Ezt a levelezszervert tbb felhasznl megosztva veszi ignybe, s ltalban a felhasznlk internetszolgltatja (pldul egy egyetem vagy vllalat) tartja karban. Nzzk most meg egy e-mail zenet tjt, ahogy Alice-tl eljut Bobig. Amint lttuk, az e-mail zenetet tja sorn egyszer el kell juttatni Bob levelezszerverhez. Ezt gy rhetjk el, ha Alice felhasznli gynkvel elkldetjk az zenetet kzvetlenl Bob levelez- szervernek. Ezt pedig az SMTPvel tehetjk meg - st, az SMTP-t arra terveztk, hogy e-mail zeneteket juttasson cl egyik hoszttl a msikig. A kld felhasznli gynke azonban ltalban nem kommunikl kzvetlenl a cmzett levelezszervervel. Ehelyett, amint azt a 2.16. brn lthatjuk, Alice felhasznli gynke az SMTP segtsgvel el kldi az zenetet a sajt levelezszervernek, majd Alice levelezszervere SMTP haszn latval (mint SMTP-kliens) tovbbtja az e-mail zenetet Bob levelezszervernek. Mirt van szksg erre a kt lpscs eljrsra? Elssorban azrt, mert ha nem iktatjuk kzbe Alice levelezszervert, Alice felhasznli gynke nem tud mihez kezdeni, ha a cmzett levelezszervere elrhetetlen. Azltal, hogy Alice elszr a sajt levelezszerverre kldi el az zenetet, Alice levelezszervere ismtelten mondjuk 30 percenknt - megksrelheti az zenet tovbbtst Bob levelezszervere fel, amg Bob levelezszervere nem vlaszol. (Ha pedig Alice levelezszervere nem mkdik, jelezheti a hibt a rendszeradminisztr tornak!) Az SMTP RFC' definilja azokat az SMTP-parancsokat, amelyekkel egy zenetet tbb
SMTP-szerveren keresztl lehet tovbbtani. Egy darab azonban hinyzik mg a kirakbl Hogyan kapja meg egy cmzett, mrmint Bob - aki a sajt PC-jn futtatja felhasznli gynkt - a leveleit, amelyek egy levelez- szerveren tallhatk Bob internetszolgltatjnl? Jegyezzk meg, hogy Bob felhasznli gynke nem hasznlhat SMTP-t az zenetek letltsre, mert az zenetek letltse a le hzs (puli) mvelete, mg az SMTP feltolsi (push) protokoll. A kirak hinyz darabja egy klnleges levlhozzfrsi protokoll lesz, amely eljuttatja az zeneteket Bob levelez-
3_
Alice gynke SMTP
'^ i
r
SMTP
2.16. bra. E-mailprotokollok s kommunikl egyedeik szervertl a sajt helyi PC-jig. jelenleg szmos npszer levl-hozzfrsi protokoll ltezik, tbbek kztt a postahivatal protokoll (Post Office Protocol Version 3, POP3), az internetes levl-hozzfrsi protokoll (Internet Mail Access Protocol, IMAP) s a HTTP. A 2.16. brn az internetes levelezsre hasznlt protokollok sszegzse lthat: az SMTP-t hasznljk a levelek eljuttatsra a felad levelezszervertl a cmzett levelezszerverhez; SMTP-t hasznlnak tovbb a leveleknek a felad felhasznli gynktl a felad levelezszerverhez trtn eljuttatsra is. A cmzett levelezszervertl a cmzett felhasznli gynkhez egy levl-hozzfrsi protokoll - pldul a POP3 - alkalmazsval jutnak el a levelek.
P0P3
A POP3 egy rendkvl egyszer levl-hozzfrsi protokoll. Az [RFC 1939] definil ja, amely rvid, s egsz jl olvashat. Mivel a protokoll ilyen egyszer, funkcionalitsa viszonylag korltozott. A POP3 akkor indul, amikor a felhasznli gynk (a kliens) TCP-sszekttetst ltest a levelezszerverrel (a szerverrel) a 110-es porton. A TCP-sz- szekttets ltrejtte utn a POP3 protokollnak hrom fzisa van: hitelests, tranzakci s frissts. Az els, a hitelestsi fzis sorn a felhasznli gynk egy felhasznlnevet s egy jelszt kld (nylt szvegknt), amelyek azonostjk a felhasznlt. A msodik fzis, a tranzakci sorn a felhasznli gynk zeneteket fogad; a felhasznli gynk ezen fzis alatt kijellhet zeneteket trlsre, eltvolthatja ezeket a kijellseket, valamint levelezsi statisztikkat krdezhet le. A harmadik, a frisstsi fzis akkor kezddik, amikor a kliens kiadta a quit parancsot, befejezve ezzel a POP3-munkamenetet; a levelezszerver ekkor trli azokat az zeneteket, amelyeket korbban trlsre jelltek ki. Egy POP3-tranzakci sorn a felhasznli gynk parancsokat ad ki, a szerver pedig minden parancsra egy vlaszt kld. Kt lehetsges vlasz ltezik: +OK (nha a szervertl a kliensnek kldtt adatok utn elhelyezve), amellyel a szerver azt jelzi, hogy a megelz parancs vgrehajtsa sikeres volt; s -ERR, amellyel a szerver azt jelzi, hogy a megelz parancs vgrehajtsa sorn problma lpett fel. A hitelestsi fzishoz kt alapvet parancs tartozik: user <felhasznlnv> s
pass <jelsz>. Ezen kt parancs illusztrlshoz javasoljuk az olvasnak, hogy lp jen be kzvetlenl egy POP3-szerverre Telnet segtsgvel (110-es port), s adja ki ezeket a parancsokat. Tegyk fel, hogy a levelezszerver neve levelSzerver. Az albbihoz hasonl zenetek jelennek meg: telnet levelSzerver 110 +OK POP3 server ready
122
2. A/ ALKALMAZSI RTLG
user bob +OK pass hungry +0K user successfully logged on Ha elgpelnk egy parancsot, a POP3-szerver -ERR zenettel vlaszol. Vessnk most egy pillantst a tranzakcis fzisra. Egy POP3-at hasznl felhasznli gynk konfigurlsnl a felhasznl gyakran vlaszthat a letlts s trls, valamint a letlts s megtarts belltsok kzl. A POP3 felhasznli gynk ltal kiadott parancsok sorrendje attl fgg, hogy felhasznli gynk a fenti kt md kzl pp melyikben mkdik. A letlts s trls mdban a felhasznli gynk a list, retr s dele parancsokat adja ki. legyk fel pldul, hogy a felhasznlnak kt zenete van a posta fikjban. Az albbi prbeszdben K: (kliens) a felhasznli gynkt jelzi, S: (szerver) pedig a levelezszervert. A tranzakci valahogy gy nz ki:
SZAMITOGEP- HLZATOK...............................................3 MKDS............................................................3
Tartalomjegyzk.............................................................................................................. 7
A szmtgp-hlzatok s az internet........................................................................ 26
1.1.Mi az az internet?...................................................................................................... 2
1.1.1.Alkotrszek........................................................................................................... 2
1.1.2.Szolgltatsok........................................................................................................ 5
123
1.2.1.Kliens- s szerverprogramok............................................................................... 14
1.2.2.Hozzfrsi hlzatok......................................................................................... 14
1.3.1.Vonalkapcsols s csomagkapcsols.................................................................30
1.3.3.lnternetszolgltatk s internet-gerinchlzatok..............................................41
1.4.1.Ksleltetsek ttekintse.................................................................................... 46
1.5.1.Rtegezett architektra...................................................................................... 63
1.7.5.Legutbbi fejlesztsek......................................................................................... 90
125
1.8.sszefoglals.......................................................................................................... 92
Krdsek........................................................................................................................ 94
Feladatok....................................................................................................................... 96
2.2.3.HTTP-zenetformtumok................................................................................... 140
2.3.1.FTP-parancsok s -vlaszok..............................................................................129
127
2.4.1.SMTP................................................................................................................... 134
2.4.2.sszehasonlts a HTTP-vei..............................................................................113
2.4.4.Levl-hozzfcrsi protokollok...........................................................................118
2.5.3.DNS-rekordok s -zenetek..............................................................................131
2.6.P2P-alkalmazsok................................................................................................. 139
2.6.1.P2P-fj1cserls................................................................................................. 140
F \................................................................................................................................. 143
2.7.TCP-szoketprogramozs....................................................................................... 166
2.7.1.TCP-szoketprogramozs.................................................................................... 168
l.................................................................................................................................... 183
t.................................................................................................................................... 186
O................................................................................................................................... 245
O................................................................................................................................... 211
129
1................................................................................................................................... 196
1................................................................................................................................... 196
r,=2X.......................................................................................................................... 231
I I l i.............................................................................................................................. 106
K: K: S:
A felhasznli gynk elszr elkr a levelezszervertl egy listt, amely az egyes trolt zenetek mreteit tartalmazza. A felhasznli gynk ezutn letlti, majd trli az zeneteket a szerverrl. Figyeljk meg, hogy a hitelestsi fzis utn a felhasznli gynk csak ngy parancsot adott ki: list, retr, dele s quit. A parancsok szintaktikjt az RFC 1939 definilja. A quit parancs feldolgozsa utn a POP3-szerver a frisstsi fzisba lp, s trli a postafikbl az 1. s 2. szm zeneteket. A letlts s trls mddal az a problma, hogy a cmzett, Bob, esetleg tbb klnbz gprl is szeretne hozzfrni e-mail zeneteihez, pldul az irodai PC-
130 2. A/. ALKALMAZSI RF.TUG jrl, az otthoni PC-jrl s a hordozhat szmtgprl. A letlts s trls md sztosztja Bob e mail zeneteit e hrom gp kztt; rszletesebben, ha Bob elszr elolvas egy zenetet az irodai PC-jn, ksbb otthon nem tudja majd ugyanezt az zenetet jra elolvasni a hordozha t gprl. A letlts s megtarts mdban a felhasznli gynk a levelezszerveren hagyja az zeneteket, miutn letlttte azokat. Ebben az esetben Bob jra elolvashatja ugyanazokat az zeneteket tbb klnbz gprl; egy zenethez hozz tud frni munka kzben, s ksbb a hten valamikor az otthoni gprl is. Egy felhasznli gynk s egy levelezszerver kztti POP3-munkamenet sorn a POP3-szerver trol bizonyos llapotinformcikat; pontosabban, nyomon kveti, hogy mely felhasznli zeneteket jelltek ki trlsre. Nem trol azonban llapotinformcikat a POP3-szerver az egyes POP3-munkamenetek kztt. Az, hogy a munkamenetek kztt nem kell llapotin formcikat nyilvntartani, nagyban leegyszersti egy POP3-szerver implementcijt.
1MAP
POP3-hozzfrs esetn, miutn Bob letlttte zeneteit a helyi gpre, ltrehozhat levelezsi mappkat, s a letlttt zeneteket t mozgathatja ezekbe a mappkba. Bob ezen tl trlhet zeneteket, mozgathatja az zeneteket a mappk kztt, s kereshet zeneteket (a felad neve vagy a trgy alapjn). Ez a szemlletmd vagyis a helyi gpen ltrehozott mappk, s azokban trolt zenetek - azonban gondot jelent az gynevezett nomd felhasznlk szmra, akik ugyanazokat a szolgltatsokat tbb helyrl, tbb klnbz hosztrl szeretnk ignybe venni. Nekik jobban megfelelne, ha egy tvoli szerveren alakthatnnak ki mappahierarchit, amelyet aztn brmely szmtgprl elrhetnek. A POP3-mal ez nem lehetsges - a POP3 protokoll nem knl olyan eszkzket, amelyek kel a felhasznl tvoli mappkat hozhatna ltre s ezekhez a mappkhoz rendelhetn az zeneteket. A fenti - s tbb ms - problma megoldsra talltk ki az IMAP protokollt, amelyet az [RFC 3501] definil. A POP3-hoz hasonlan az IMAP is egy levlhozzfrsi protokoll. Tbb szolgltatst nyjt, mint a POP3, de jelentsen bonyolultabb is. (s gy a kliens- s a szerveroldali implementci is sokkal bonyolultabb.) Egy IMAP-szerver minden zenetet egy mapphoz rendel; amikor egy zenet elszr megrkezik a szerverre, a cmzett INBOX mappjba helyezi azt. A cmzett ezutn t- mozgathalja az zenetet egy j, a felhasznl ltal ltrehozott mappba, elolvashatja az zenetet, trlheti az zenetet s gy tovbb. Az IMAP protokoll olyan parancsokat is knl, amelyekkel a felhasznlk megadott feltteleknek megfelel zeneteket kereshetnek a tvoli mappkban. Jegyezzk meg, hogy a POP3-mal ellenttben az IMAP-szerverek az egyes IMAPmunkamenetek kztt is megrzik az llapotinformcikat - pldul a map pk nevt, s hogy mely zenetek mely mappkhoz tartoznak. Az IMAP egy tovbbi fontos jellemzje, hogy olyan parancsokat is tartalmaz, amelyek lehetv teszik egy felhasznli gynk szmra, hogy csak az zenetek bizonyos komponenseit tltse le. Egy felhasznli gynk pldul megleheti, hogy egy zenetbl csak a fejlcet vagy egy tbbrszes MIME-zenetbl csak az egyik rszt tlti le. Ez a szolgltats akkor hasznos, ha a felhasznli gynk s a levelezszerver kztt kis svszlessg sszekttets van (pldul egy lass modemes kapcsolat). Lehetsges, hogy egy kis svszlessg sszekttetssel
131
rendelkez felhasznl nem akarja letlteni az sszes zenetet a posta fikjbl, klnsen a hossz zeneteket szeretn elkerlni, amelyek pldul hangot vagy videoklippet tartalmaznak. Az IMAP-rl minden informci megtallhat az IMAP hivatalos webhelyn (IMAP 2007].
Webalap e-mail
Napjainkban egyre tbb s tbb felhasznl a webbngszje segtsgvel kld s olvas e-mail zeneteket. A webalap hozzfrst a Hotmail vezette be az 1990-es vek kzepn; jelenleg a Yahoo, a Google, valamint majdnem minden nagyobb egyetem s vllalat biztost webalap e-mail hozzfrst. Ennla szolgltatsnl a felhasznli gynk egy kznsges webbngsz, s a felhasznl HTTP-n keresztl lp kapcsolatba tvoli pos- tafikjval. Amikor egy cmzett - mint Bob hozz szeretne frni egy, a postafikjban lv zenethez, az e-mail zenetet Bob levelezszervere HTTP protokollal kldi el Bob bngszjhez ahelyett, hogy POP3 vagy IMAP protokollt hasznlna. Amikor egy felad - mint Alice - e-mail zenetet szeretne kldeni, az e-mail zenetet a bngszje HTTP-n keresztl kldi el a levelezszerverhez SMTP helyett. Alice levelezszervere azonban to vbbra is SMTP-n keresztl cserl zeneteket ms levelezszerverekkel.
132 2. A/. ALKALMAZSI RF.TUG tallhat az interneten (vagyis, a hlzatok hlzatn bell melyik hlzaton). Hasonlkppen, ha egy postai cmet a tetejtl az alja fel haladva olva sunk, egyre tbb informcihoz jutunk arrl, hogy hol tallhat a cmzett.
Az imnt lthattuk, hogy egy hosztot ktflekppen lehet azonostani hosztnvvel s IP-cmmel. Az emberek a knnyebben megjegyezhet hosztnevet szeretik hasznlni azonostknt, mg az tvlaszlk a rgztett hosszsg, hierarchikusan strukturlt IP-cmeket rszestik elnyben. Ezen ignyek sszeegyeztetse cljbl szksg van egy katalgusszolgltatsra, amely a hosztneveket IP-cmckk fordtja le. Ez az intenetes kr- zetnvkezel rendszer (domain name system, DNS) elsdleges feladata. A DNS (1) egy elosztott adatbzis, amelyet hierarchikusan szervezett DNS-szerverekkel valstottak meg, s (2) egy alkalmazsi rtegbeli protokoll, amely lehetv teszi a hosztok szmra, hogy lekrdezseket hajtsanak vgre ebben az adatbzisban. A DNSszerverek gyakran UNIX-os gpek, amelyeken a Berkeley Internet Name Domain (BIND) szoftver fut [BIND 2007]. A DNS-protokoll UDP felett fut s az 53-as portot hasznlja. A DNS-t rendszeresen hasznljk egyb alkalmazsi protokollok - belertve a HTTP, SMTP s FTP protokollokat - arra, hogy a felhasznl ltal megadott hosztneveket IP-c- mekre fordtsa. Pldaknt vizsgljuk meg, mi trtnik akkor, ha egy bngsz (vagyis egy HTTP-kliens), amely egy felhasznl hosztjn fut, a www.someschool.edu/index . html URL-re vonatkoz krst kld. Ahhoz, hogy a felhasznl hosztja HTTP-krsze- netet tudjon kldeni awww.someschool.edu webszervernek, a felhasznl hosztjnak meg kell szereznie a www. someschool.edu IP-cmt. Ez a kvetkezkppen trtnik: 1. A felhasznl gpe futtatja a DNS-alkalmazs kliensoldali rszt. 2. A bngsz kiemeli az URL-bl a hosztnevet (www.someschool.edu ), majd ezt a hosztnevet tadja a DNS-alkalmazs kliensoldalnak. 3. A DNS-kliens egy, a hosztnevet tartalmaz lekrdezst kld egy DNSszervernek. 4. A DNS-kliens egyszer vgl kap egy vlaszt, amely tartalmazza a hoszt nvhez tartoz IP-cmet. 5. Miutn a bngsz megkapta a DNS-tl az IP-cmet, kezdemnyezhet egy TCP-sszekttetst a HTTP-szerverfolyamattal, amely a kapott IP-cmen, a 80as porton tallhat. A pldbl lthat, hogy a DNS egy tovbbi - nha jelents mrtk ksleltetst okoz az t hasznl internetes alkalmazsoknak. Szerencsre, amint azt az albbiakban trgyalni fogjuk, a kvnt IP-cm gyakran megtallhat egy kzeli DNS-szerver gyorsttrban, ami segt mind a DNS ltal okozott hlzati forgalom, mind az tlagos DNS ksleltets cskkentsben.
Elvek a gyakorlatban'
DNS: kritikus hlzati szolgltats kliens-szerver megkzeltsben A HTTP, FTP s SMTP protokollokhoz hasonlan a DNS is egy alkalmazsi rtegbeli pro tokoll, mivel (1) egymssal kommunikl vgrendszereket futtat kliens-szerver megkzelts alapjn, s (2) egy alsbb rtegbeli, vgpontok kztti szlltsi protokollra tmaszkodik, hogy eljuttassa a DNSzeneteket a kommunikl vgrendszerekhez. Ms rtelemben viszont, a DNS szerepe elgg
133
szoftverek szmra. Az 1.2. alfejezetben emltettk, hogy az internetes architektra bonyo lultsga leginkbb a hlzat szlein'* jelenik meg. A DNS, amely alapvet fontossg nv-cm lekpezst valst meg a hlzat szln elhelyezked kliensek s szerverek hasznlatval, egy jabb plda erre a tervezsi filozfira.
A DNS a hosztnevek IP-cmekre fordtsn tl nhny tovbbi fontos szolgltatst is nyjt: Hoszt-lnevek kezelse. Egy bonyolult hosztnvvel rendelkez hosztnak lehet egy vagy tbb lneve (alias). Pldul egy olyan hosztnvnek, mint relayl .westeoast. enterprise.com, lehet kt lneve, mint enterprise.com s www.enterprise.com. Ebben az esetben a relayl.west-coast.enterprise.com hoszt* nevet kanonikus hosztnvnek nevezzk. Az lnevek, ha lteznek ilyenek, ltalban jobban megjegyezhetek, mint a kanonikus hosztnevek. Egy alkalmazs lekrdezheti a DNS-tl egy megadott lnvhez tartoz kanonikus hosztnevet s a hoszt IP-cmt. Levelezszerver-lnevek kezelse. Nyilvnval okokbl ersen ajnlott, hogy az e-mail cmek knnyen megjegyezhetek legyenek. Ha pldul Bobnak van egy felhasznli fikja a Hotmail-nl, Bob e-mail cme valsznleg egyszer, pldul bob@ hotmail.com. A Hotmail levelezszervernek hosztneve azonban bonyolultabb s sokkal nehezebben megjegyezhet, mint az egyszer hotmail.com (a kanonikus hoszt nv olyasmi lehet, mint pldul relayl.westcoast.hotmail.com). Egy levelezalkalmazs lekrdezheti a DNS-ti a megadott lnvhez tartoz kanonikus hosztnevet a hoszt IP-cmvel egytt. Az MX bejegyzs (lsd lejjebb) valjban lehetv teszi egy vllalat levelezszervere s webszervere szmra, hogy ugyanazt a hoszt(l)nevet hasznljk; pldul egy cg webszervernek s levelezszervernek neve egyarnt lehet enterprise.com. Ha lteznek ilyenek, ltalban jobban megjegyezhetek, mint a kanonikus hosztnevek. Terhelseloszts. A DNS-t arra is hasznljk, hogy sztossza a terhelst a tbbszrztt szerverek kztt, pldul tbbszrztt webszerverek kztt. A nagy forgalm webhelyek (pldul a cnn.com) tbbszrztt szervereken futnak, ahol minden szerveren klnbz vgrendszer fut, s mindegyiknek kln IP-cme van. Tbbszrztt webszerverek esetn egy kanonikus hosztnvhez IP-cmek egy halmaza tartozik. Ezt az IP-cmhalmazt a DNSadatbzis trolja. Amikor a kliensek DNS-lekrdezst hajtanak vgre egy nvre, amelyhez tbb IP-cm tartozik, a szerver visszakldi az sz- szes IPcmet, de a cmek sorrendjt vlaszrl vlaszra megvltoztatja. Mivel egy kliens ltalban arra az IP-cmre kldi el HTTP-krszenctett, amelyik az els helyen szerepel a felsorolsban, a DNS a cmek sorrendjnek vltoztatsval sztosztja a forgalmat a tbbszrztt szerverek kztt. Ezt a mdszert e-mail szervereknl is hasznljk, vagyis tbb e-mail szervernek lehet ugyanaz az lneve. A tartalomelosztssal foglalkoz cgek, mint az Akamai [Akamai 2007] kifinomultabb mdon hasznljk a DNS-t arra, hogy webes tartalomelosztst biztostsanak (lsd 7. fejezet). A DNS-t az RFC 1034-ben s az RFC 1035-ben specifikltk, valamint tovbbi kiegszt RFC-kben aktualizltk. A DNS egy sszetett rendszer, amelynek itt csak a fbb szempontjait rinthettk. Az rdekld olvas a fenti RFC-kben, valamint
135
Abitz s Liu knyvben [Abitz 1993] tallhat tovbbi informcikat; tovbb [Mockapetris 1998] visz- szatekint mvben, amely pontos lerst ad arrl, hogy mi a DNS s hogyan mkdik; valamint [Mockapetris 2005] weblapjn.
Ebben az alfejezetben nagyvonal ttekintst nyjtunk a DNS mkdsrl. Trgyalsunk a hosztnv - IP-cm fordtst megvalst szolgltatsra sszpontost. Tegyk fel, hogy egy felhasznl hosztjn fut alkalmazsnak (pldul egy webbn- gsznek vagy levlolvasnak) szksge van egy adott hosztnvhez tartoz IP-cmre. Az alkalmazs meghvja a DNS kliensoldali rszt, megadva neki a lefordtand hosztnevet. (Sok UNIX-alap gpen az alkalmazsnak a gethostbyname() fggvnyt kell meghvnia, amely elvgzi a fordtst. A 2.7. alfejezetben bemutatjuk, hogyan hvja meg egy Java alkalmazs a DNS-t.) A felhasznl hosztjn fut DNS ezutn tveszi a kezdemnye zst, s egy lekrdez zenetet kld a hlzatra. Minden DNS lekrdezs- s vlaszzene tet UDPadatcsomagok szlltanak az 53-as porton keresztl. Egy bizonyos ksleltetsi id utn, amely ezredmsodpercektl pr msodpercig terjedhet, a felhasznl hosztjn fut DNS egy DNS-vlaszzenetet kap, amely a kvnt lekpezst tartalmazza. A lekpezst a DNS ezutn tovbbtja a hv alkalmazsnak. A felhasznl hosztjn fut hv alkalmazs szempontjbl gy a DNS egy fekete doboz, amely egyszer, kzvetlen fordtsi szol gltatst nyjt. Valjban azonban a fekete doboz, amely ezt a szolgltatst megvalstja, bonyolult, s egyrszt sok, a vilg minden pontjn elosztott DNS-szerverbl, msrszt egy alkalmazsi rtegbeli protokollbl ll, amely megadja, hogy a DNS-szerverek s a lekrde z hosztok hogyan kommuniklnak egymssal. A DNS egy egyszer megvalstsa egyetlen DNS-szerverbl llna, amely tartalmazza az sszes lekpezst. Ebben a kzpontostott elrendezsben a kliensek egyszeren minden lekrdezst az egyetlen DNS-szerverhez irnytanak, a DNSszerver pedig kzvetlenl a lekrdez klienseknek vlaszol. Br a fenti megvalsts egyszersge vonz, a megolds nem megfelel napjaink internetje szmra, amely rengeteg (s egyre nkekv szm) hosztot foglal magban. A kzpontostott elrendezs problmi a kvetkezk: Egyetlen hibahely (single point of failure). Ha a DNS-szerver meghibsodik, az egsz internet sszeomlik! A forgalom nagysga. Egyetlen DNS-szervernek kell kiszolglnia az sszes DNS-le- krdezst (minden HTTP-krsnl s e-mail zenetnl, amelyeket tbb szz milli hoszt hoz ltre). Tvoli, kzpontostott adatbzis. Az egyetlen DNS-szerver nem lehet kzel minden lekrdez klienshez. Ha az egyetlen DNS-szervert New Yorkba helyezzk, az sz- szes Ausztrlibl rkez lekrdezsnek t kell utaznia a Fld tellenes pontjra, esetleg lass s torld adatkapcsolatokon keresztl. Ez jelents ksleltetseket okozhat. Karbantarts. Az egyetlen DNS-szervernek trolnia kell az interneten tallhat sz- szes hoszthoz tartoz bejegyzseket. Ez a kzpontostott adatbzis nemcsak risi mret lenne, de gyakran kellene frissteni is, amikor egy-egy j hosztot csatlakoztatnak a hlzatra. sszegezve, egy kzpontostott adatbzis, amelyet egyetlen DNS-szerver kezel, nem sklzhat. Ebbl kvetkezen a DNS-t elosztott mdon terveztk. A DNS
136
137
szerverhierarchiba, mindazonltal kzponti szerepk van a DNS-architektrban. Minden internetszolgltat - egyetemek, akadmiai intzetek, vllalatok s lakossgi internetszolgltatk - rendelkezik egy helyi DNS-szerverrel (ezt helyi nvszervernek is hvjk). Amikor egy hoszt kapcsoldik az internetszolgltathoz, az internetszolgltat megadja a hosztnak egy vagy
149
Gykr DNS-szerverek
11
yahoo.com DNS-szerverek
amazon.com DNS-szerverek
pbs.org DNS-szerverek
poly.edu DNS-szerverek
umass.edu DNS-szerverek
2.17. bra. A DNS-szerverek hierarchijnak rszlete tbb sajt helyi DNS-szervernek IP-cmt (ltalban DHCP-n keresztl, amelyet a 4. fejezetben trgyalunk). Az olvas is knnyen megtekintheti helyi DNSszervernek IP cmt a Windows- vagy UNIX-rendszer hlzati llapotot mutat ablakaiban. Egy hoszt helyi DNS-szervere ltalban a hoszthoz kzel' helyezkedik el. Egy intzmnyi internetszolgltatnl a helyi DNS-szerver ltalban ugyanazon a LAN-on tallhat, mint a hoszt; egy lakossgi internetszolgltatnl ltalban csak nhny tvlaszt van a DNS-szerver s a hoszt kzlt. Amikor egy hoszt DNS-lekrdezst hajt vgre, a lekrdezst elkldi a helyi DNS-szervernek, amely proxyknt viselkedik, s tovbbtja a krst a DNS-szerverhierar- chiba, amint azt a kvetkezkben ltni fogjuk. Vizsgljunk meg egy egyszer pldt, legyk fel, hogyacis.poly.edu hosztnak szksge van a gaia.cs.umass.edu hoszt IP-cmre. Felttelezzk tovbb, hogy a mszaki egyetem helyi DNS-szervernek neve dns.poly.edu, a gaia.cs.umass.edu hiteles (e) (f)
NASA Mt View, CA Internet Software C. Palo Alto, CA (mg tovbbi 36 helyen) (a) Verisign, Dulles, VA (c) Cogent, Herndon, VA (Los Angeles is) (d) U Maryland College Park, MD (g) US DoD Vienna, VA (h) ARL Aberdeen, MD (j) Verisign, (21 helyen)
(i)
Autonmica, Stockholm
(b)
DNS-szervernek neve pedig dns.umass.edu. Amint a 2.19. brn lthat, a cis. poly.edu hoszt elszr a sajt helyi DNS-szervernck kld egy lekrdezst. A lekrdez zenet tartalmazza a lefordtand hosztnevet, amely a pldban a gaia.es.umass. edu. A helyi DNS-szerver tovbbtja a lekrdez zenetet egy gykr DNS-szerverhez. A gykr DNS-szerver szreveszi az edu uttagot, s visszakldi a helyi DNS-szcrver- nek az edu tartomnyrt felels TLD-szerverek IPcmeinek listjt. A helyi DNS-szerver ezutn jra elkldi a lekrdezst az egyik TLD-szervernek. A TLD-szerver szreveszi a nv umass.edu vgzdst, s vlaszban visszakldi a Massachusettsi Egyetem hiteles DNS-szervernck (dns.umass.edu) IP-cmt. Vgl a helyi DNS-szerver jbl elkldi a lekrdez zenetet, ezttal kzvetlenl a dns.umass.edu szervernek, amely visszakldi a gaia.cs.umass.edu hoszt IP-crht. Figyeljk meg, hogy a fenti pldban egy hosztnevhez tartoz cm megszerzshez nyolc DNS-zenet - ngy lekrdez zenet s ngy vlaszzenet - kldsre volt szksg! Nemsokra ltni fogjuk, hogyan cskkenthet ez az zenetforgalom a DNS-gyorsttrazs segtsgvel. Elz pldnkban feltteleztk, hogy a TLD-szerver ismeri a hosztnvrt felels hiteles DNS-szervert.' Ez ltalnossgban nem mindig igaz. A TLD-szerver ehelyett gyakran csak egy kzbees DNS-szervert ismer, amely viszont ismeri a hosztnvrt felels hiteles DNS-szervert. Pldaknt tegyk fel ismt, hogy a Massachusettsi Egyetemnek van egy egyetemi DNS-szervere, amelynek neve dns.umass.edu. Tegyk fel tovbb, hogy
Gykr DNS-szerver
Helyi DNS-szerver
TLD DNS-szerver
dns.pcly.edu
Hiteles DNS-szerver
dns.cs.umass.edu
ga ia.cs.umass.edu
a Massachusettsi Egyetem minden egyes tanszke sajt DNS-szerverrel rendelkezik, s minden tanszki DNS-szerver a tanszk sszes hosztjrt felels hiteles szerver. Ebben az esetben, ha a kzbees DNS-szerver, a dns.umass.edu olyan lekrdezst kap, amely egycs.umass.edu vgzds hosztnvre vonatkozik, visszadja a dns.poly.edu -nak a dns.cs.umass.edu IP-cmt, amely a cs.umass.edu vgzds hosztnevekrt felels hiteles szerver. A dns.poly.edu helyi DNS-szerver ezutn elkldi a lekrdezst a hiteles DNS-szervernek, amely visszakldi a kvnt lekpezst a helyi DNS-szervernek, amely aztn tovbbkldi a lekpezst a krst kld Kosztnak. Ebben az esetben sszesen 10 DNS-zenet kldse trtnik! A 2.19. brn lthat plda kihasznlja mind a rekurzv lekrdezsek, mind az iteratv lekrdezsek lehetsgt. A cis.poly.edu hoszttl a dns.poly.edu hosztnak kldtt lekrdezs egy rekurzv lekrdezs, mivel a lekrdezs arra kri a dns.poly.edu szervert, hogy a sajt nevben szerezze meg a lekpezst. A kvetkez hrom lekrdezs viszont iteratv, mert minden vlasz kzvetlenl a dns.poly.edu hoszthoz jut vissza. Elmletileg brmely DNS-lekrdezs lehet iteratv vagy rekurzv. A 2.20. bra pldul egy olyan DNS-lekrdezslncot mutat be, amelyben minden lekrdezs rekurzv. A gyakorGykr DNS-szerver
Helyi DNS-szerver
TLD DNS-szerver
dns.poly.edu
Hiteles DNS-szerver
A krst kld hoszt
cis.poly.edu
gaia.cs.umass .edu
latban a lekrdezsek ltalban a 2.19. brn ltott mintt kvetik: a lekrdez hoszt ltal a helyi DNS-szervernek kldtt lekrdezs rekurzv, mg a tbbi lekrdezs iteratv.
DNS-gyorsttrazs
Trgyalsunk sorn eddig figyelmen kvl hagytuk a DNS-gyorsttrazst, a DNSrend- szeregy rendkvl fontos szolgltatst. Valjban a DNS alaposan kihasznlja a DNS-gyor- sttrazs lehetsgeit annak rdekben, hogy javtsa a ksleltetsi teljestmnyt, s cskkentse az interneten kering DNS-zenetek szmt. A DNS-gyorsttrazs alapjul szolgl tlet igen egyszer. Egy lekrdezsi lncban, ha egy DNS-szerver DNS-vlaszt kap (amely pldul egy hoszt nv - IP-cm lekpezst tartalmaz), gyorsttrazhatja azt a sajt helyi memrijban. Pldul a 2.19. brn minden alkalommal, amikor a dns. poly.edu helyi DNS-szerver vlaszt kap egy msik DNS-szervertl, gyorsttrban el mentheti a vlaszbl kinyert informcit. Ha egy hosztnv - IP-cmpr megtallhat egy DNS-szerver gyorsttrban, s egy jabb lekrdezs rkezik a DNS-szerverhez ugyanarra a hosztnvre vonatkozan, a DNS-szerver visszakldheti a kvnt IP-cmet akkor is, ha nem az adott hoszt nvhez tartoz hiteles DNS-szerver. Mivel a hosztok s a hosztnv - IP-cm lekpezsek semmi esetre sem tekinthetk llandnak, a DNS-szerverek egy bizonyos id (ltalban kt nap) utn eldobjk a gyorsttrazott informcikat. Pldaknt tegyk fel, hogy az apricot.poly.edu hoszt lekrdezst kld a dns. poly.edu szervernek a cnn.com hosztnvre vonatkozan. Tegyk fel tovbb, hogy nhny rval ksbb egy msik hoszt a mszaki egyetemrl, mondjuk a kiwi.poly. fr szintn ugyanerre a hosztnvre vonatkoz lekrdezst kld a dns.poly.edu szervernek. A gyorsttrazs miatt a helyi DNS-szerver azonnal vissza tudja kldeni a cnn. com IP-cmt a msodik lekrdez hosztnak anlkl, hogy tovbbi lekrdezseket kellene kldenie ms DNS-szerverek fele. Egy helyi DNS-szerver gyorsttrazhatja tovbb a TLD szerverek IP-cmeit, ezltal kiiktatva a gykr DNS-szervereket a lekrdezsi lncbl (ez gyakori eset).
Type meztl:
Ha Type=A, akkor Name egy hoszt nv, Value pedig a hosztnvhez tartoz IPcin. Egy A tpus bejegyzs teht a szabvnyos hosztnv - IP-cm lekpezst adja meg. Egy plda A tpus bejegyzsre: (relayl.bar.foo.com, 145.37.93.126, A). Ha Type=NS, akkor Name egy krzet (mint pldul foo.com), Value pedig annak a hiteles DNS-szervernek a hosztneve, amely tudja, hogyan lehet megszerezni az adott krzet hosztjainak IP-cmeit. Az ilyen bejegyzsek arra szolglnak, hogy irnytsk a DNS-lekrdezseket a lekrdezsi lncban. Egy plda NS tpus bejegyzsre: foo.com, dns.foo.com, NS) Ha Type=CNAME, akkor Value egy kanonikus hosztnv, amely a Name mezben megadott lnvhez tartozik. Ez a bejegyzs szolgltatja az lnevekhez tartoz kanonikus neveket a lekrdez hosztok szmra. Egy plda CNAME bejegyzsre: foo.com, relayl.bar.foo.com, CNAME). Ha Type=MX, akkor Value egy levelezszerver kanonikus neve, amelynek egy lneve a Name mezben megadott hosztnv. Pldul a (foo.com, mail.bar. foo.com, MX) egy MX bejegyzs. Az MX bejegyzsek lehetv teszik, hogy a levelezszervereknek egyszer lneveik legyenek. Megjegyzend, hogy az MX bejegyzs hasznlatval egy cg megteheti, hogy ugyanazt az lnevet adja a levelez- szervernek s egy msik szervernek (pldul a webszervernek). A levelezszerver kanonikus nevnek meghatrozsra a DNS-kliensek egy MX bejegyzsre vonatkoz lekrdezst hajtanak vgre; a msik szerver kanonikus nevnek lekrdezshez a DNS-klienseknek CNAME bejegyzsekre vonatkoz lekrdezst kell vgrehajtaniuk. Ha egy DNS-szerver egy adott hosztnvrt felels hiteles szerver, akkor tartalmaz egy A tpus bejegyzst az adott hosztnvre vonatkozan. (Ha a DNSszerver nem hiteles szerver, akkor is tartalmazhat ilyen A tpus bejegyzst a gyorsttrban.) Ha egy szerver nem egy adott hosztnv hiteles szervere, akkor NS tpus bejegyzst tartalmaz arra a krzetre vonatkozan, amelyben a hosztnv tallhat; tovbb egy A tpus bejegyzst is tartalmaz, amely az NS bejegyzs Value mezjben megnevezett DNS-szerver IP-c- mt adja meg. Tegyk fel pldul, hogy egy edu TLD-szerver nem a gaia.es.umass. edu hoszt hiteles szervere. Ekkor ez a szerver egy olyan krzetre vonatkoz bejegyzst tartalmaz, amely magban foglalja a cs.umass.edu hosztot, pldul: (umass.edu, dns.umass.edu, NS). Az edu TLD-szerver tartalmaz tovbb egy A tpus bejegy zst is, amely a dns.umass.edu DNS-szerver nevt IP-cmre kpezi le, pldul: (dns. umass.edu, 128.119.40.111, A).
DNS-zenclek
Ebben az alfejezetben korbban mr hivatkoztunk a DNS lekrdez s vlaszzeneteire. A DNS-zeneteknek ez a kt fajtja ltezik. Ezenkvl mind a lekrdez, mind a vlaszzeneteknek ugyanaz a formtumuk, ahogy a 2.21. brn lthat. A DNS-zenet klnbz mezinek jelentse a kvetkez: Az els 12 bjt a fejlc szakasz, amelynek tbb mezje van. Az els mez egy
16 bites szm, amely azonostja a lekrdezst. Ez az azonost tmsoldik a lekrdezsre kldtt vlaszzenetbe, ezltal lehetv tve a kliensnek, hogy a kapott vlaszokat sz- szeprostsa a kldtt lekrdezsekkel. A kvetkez mez nhny jelzbitet tartalmaz. Egy lekrdezs/vlasz jelzbit mutatja, hogy az zenet lekrdezs (0) vagy vlasz
(1) . A hitelessg jelzbit akkor van belltva egy vlaszzenetben, ha egy DNS-szerver a lekrdezett nvrt felels hiteles szerver. A rekurzi krse bitet akkor lltja be a kliens (hoszt vagy DNS-szerver), ha azt szeretn, hogy a DNS-szerver rekurzvan hajtsa vgre a lekrdezst, ha nem rendelkezik a bejegyzssel. Egy DNS-szerver a vlaszban belltja az l bites rekurzi lehetsges mezt, ha az tmogatja a rekurzit. A jelzbiteket tartalamaz mez utn fejlcben van ngy olyan szmmez, amelyek azt jel zik, hogy a fejlcet kvet ngyfle adatszakasz kzl melyik hnyszor fordul el. A krds szakasz az ppen vgrehajtott lekrdezsrl tartalmaz informcit. Ez a szakasz magban foglal (1) egy nv mezt, amely a lekrdezett nevet tartalmazza, s (2) egy tpus mezt, amely jelzi a nvre vonatkoz krds tpust - pldul egy hoszt cme a hozz tartoz nvvel (A tpus), vagy egy nvhez tartoz levelezszerver (MX tpus). Egy DNS-szervertl rkez vlaszzenetben a felelet szakasz tartalmazza az eredetileg lekrdezett nvhez lartoz erforrs-bejegyzseket (RR). Idzzk fel, hogy minden erforrs-bejegyzsnek van egy tpusa (Type - pldul A, NS, CNAME vagy MX), egy rtke (Value) s egy lettartama (TTL). Egy vlaszban tbb erforrs-bejegyzs is lehet, mert egy hosztnvhez tbb IP-cm is tartozhat (pldul a tbbszrztt web- szerverck esetben, amint azt korbban trgyaltuk). A hitelessg szakasz ms hiteles szerverekre vonatkoz bejegyzseket tartalmaz. A kiegszt informci szakasz tovbbi hasznos bejegyzseket tartalmaz. Pldul egy MX lekrdezsre adott vlasz felelet szakasza tartalmaz egy erforrs-bejegyzst, amely egy levelezszerver kanonikus nevt adja meg. A kiegszt informci szakasz pedig egy A tpus bejegyzsi tartalmaz, amely a levelezszerver kanonikus hosztne- vhez tartoz IP-cmet adja meg. Hogyan kldhetnk DNS-lekrdezst egy DNS-szcrvernek kzvetlenl arrl a hosztrl, amelyiken dolgozunk? Knnyen megtehetjk ezt az nslookup programmal, amely a leg12 bjt
Azonosts Krdsek szma Hiteles RR-ek szma Jelzbitek Vlasz Kiegszt RR-ek szma -A krdsek nv- s tpusmezi - A RR-ek szma krsre vlaszul kldtt RR-ek Feleletek (vltoz szm erforrs-bejegyzs Hitelessg (vltoz szm erforrs-bejegyzs Kiegszt informcik (vltoz szm erforrs-bejegyzs Hiteles szerverekhez tartoz bejegyzsek Krdsek (vltoz szm krds)
1
Tovbbi segdinformci", amely hasznos lehet
136
2. Az ALKALMAZSI RTfcG
tbb Windows- s UNIX-krnyezetben elrhet. Pldul, ha windowss hoszttal dolgozunk, nyissuk meg a Parancssort s indtsuk el az nslookup programot. Ehhez egyszeren be kell gpelni: nslookup. Az nslookup meghvsa utn DNSlekrdezseket kldhetnk tetszleges (gykr, TLD vagy hiteles) DNS-szervernek. Miutn megkapta a vlaszze- nctet a DNS-szervertl, az nslookup megjelenti a vlaszban lv bejegyzseket (emberek ltal olvashat formban). Az nslookup sajt hosztrl trtn futtatsa mellett egy msik lehetsg az, ha megltogatunk egy olyan weboldalt, amely lehetv teszi, hogy a felhasz nl tvolrl futtassa az nslookup-oi. (Csak rjuk be az nslookup" szt egy keresbe, s mris eljutunk az egyik ilyen oldalra.)
137
138
Fkuszban.a biztonsg
A DNS sebezhetsge
Lttuk, hogy a DNS az internetes infrastruktra kritikus sszetevje, sok fontos szolgltats belertve a webet s az e-mailt - nem is kpes mkdni nlkle. Ezrt termszetesen addik a krds: hogyan lehet tmadni a DNS-t? Vajon a DNS vdtelen prda, amely csak arra vr, hogy kiljk, lelltva ezzel a legtbb internetes szolgltatst? Az els tmadstpus, ami esznkbe juthat, egy DDoS svszlessg-elraszt tmads (lsd 1.6. alfejezet) a DNS-szerverek ellen. gy tmad pldul azzal ksrletezhet, hogy minden DNSszervernek risi mennyisg csomagot kld, olyan sokat, hogy a valdi DNS-krsek tbbsgt a szerverek soha nem tudjk megvlaszolni. Ilyen nagylptk, DNS-gykrszerve- rek elleni tmadst valban vgre is hajtottak 2002. oktber 21-n. Ebben a tmadsban a t madk szoftverrobotja egy tehervagonnyi CMP ping zenetet kldtt mind a 13 DNS-gykr- szervernek. (Az ICMP-zeneteket a 4. fejezetben trgyaljuk. Most elg annyit tudni, hogy az ICMP-zenetek specilis IP-adatcsomagok.) Szerencsre ez a nagylptk tmads csak mini mlis krokat okozott, az internet felhasznli nem vagy csak alig vettk szre. A tmadknak sikerlt elrasztani a gykrszervereket csomagok znvel. Sok DNS-gykrszerver azonban el volt ltva vdelemmel: csmagszrkkel, amelyek gy voltak belltva, hogy minden esetben blokkoljk az sszes, gykrszerverekhez irnytott ICMP ping zenetet. Az ilyen vdelemmel elltott szerverek tvszeltk a tmadst, s tovbbra is normlisan mkdtek. Ezenkvl a leg tbb helyi DNS-szerver gyorsttrazza a legfels szint krzeti szerverek IP-cmeit, lehetv tve ezltal, hogy a lekrdezsi folyamat gyakran teljesen kikerlje a DNS-gykrszervereket. Potencilisan hatkonyabb DDoS-tmads lehet a DNS-szerverek ellen, ha a legfels szint krzeti szervereket rasztjk el DNS-lekrdezsekkel, pldul a .com krzetet kezel sszes legfels szint krzeti szervert. Ekkor nehezebb lenne kiszrni a DNS-szervereknek kldtt DNSlekrdezseket; a legfels szint krzeti szervereket tovbb nem olyan knny kikerl ni, mint a gykrszervereket. Egy ilyen tmads slyossgt enyhtheti azonban a gyorst trak hasznlata a helyi DNS-szerverekben. A DNS tmadsra ms lehetsgek is lteznek. Egy
le) tmads sorn a tmad elkapja a hosztok ltal kldtt lekrdezseket s hamis vlaszo kat
kld azokra. A DNS elleni mrgez tmadsban a tmad hamis lekrdezseket kld egy DNSszervernek, ezzel rveszi a szervert, hogy hamis bejegyzseket hozzon ltre a gyorst trban. A fenti tmadsok pldul arra hasznlhatk, hogy egy gyantlan webes felhaszn lt a tmad wcboldalra 2006]. Egy tovbbi fontos DNSelleni tmads tulajdonkppen nem a DNS-szolgltatst tmadja meg, hanem arra hasznlja ki a DN'S-infrastruktrt, hogy DDoS-tmadst intzzen egy megclzott hoszt (pldul az egyetemi levelezszerver) ellen. Ebben a tmadsban a tmad sok hiteles DNSszervernek kld DNS-lekrdezseket, amelyekben forrscmknt hamisan a megclzott ret hosztcmeszcrepel.Hasikerlalckrdezseketgybelltani.hogyegyvlaszsokkalnagyobbmirnytsanak t. Ezen tmadsok vghezvitele azonban bonyolult, mert ezek megvalstshoz a csomagok elfogsra vagy a szerverek elnyomsra van szksg (Skoudis
(bjtokban), mint egy lekrdezs (ezaz gynevezett ersts), akkor a tmad anlkl raszt hatja el a megclzott hosztot, hogy nagy forgalmat generlna sajt magnak. Az ilyen visszave rds tmadsok a mai napig korltozottan vezettek sikerre (Mirkovic 2005]. sszegezve, a DNS meglepen robusztusnak bizonyult a tmadsokkal szemben. Egszen napjainkig nem tudott senki olyan tmadst kivitelezni, amely sikeresen akadlyozta volna a DNSszolgltatst. Elfordultak sikeres visszaverds tmadsok; ezek a tmadsok azonban egyre inkbb kivedhetk a DNS-szerverek megfelel belltsval.
139
A fenti lpsek megttele utn az emberek megltogathatjk webhelynket, s e-mai- leket kldhetnek cgnk alkalmazottainak. Ezen llts igazolsval levonhatjuk a DNS trgyalsnak kvetkeztetseit. Az llts igazolsa a DNS-rl szerzett ismereteink megszilrdtsban is segt. Tegyk fel, hogy Alice Ausztrlibl szeretn megtekinteni a www. networkutopia.com weboldalt. Ahogy korbban trgyaltuk, Alice hosztja elszr a sajt helyi DNS-szervernek kld egy DNS-lekrdezst. A helyi DNS-szerver ezutn kapcsolatba lp egy com krzetbeli TLD-szerverrel. (A helyi DNS-szerver kapcsolatba lphet egy DNS-gykrszerverrel is, ha a com TLD-szerver cme nem tallhat meg a gyorst trban.) Ez a TLDszerver tartalmazza a fent felsorolt NS tpus s A tpus erforrs-be jegyzseket, mert a nyilvntart ltrehozta ezeket az erforrs-bejegyzseket minden com TLDszerveren. A com TLD-szerver vlaszt kld Alice helyi DNS-szervernek, amely ezt a kt erforrs-bejegyzst tartalmazza. A helyi DNS-szerver ezutn egy DNSlekrdezst kld a 212.212.212.1 cmre, amelyben elkri a www.networkutopia.com-hoz tartoz A tpus bejegyzst. Ez a bejegyzs megadja az elrni kvnt webszerver IP-cmt (pldul 212.212.71.4), amelyet a helyi DNSszerver tovbbt Alice hosztjnak. Alice bngszje most mr tud TCP sszekttetst kezdemnyezni a 212.212.71.4 hoszttal, s HTTP-krst kldeni az sszekttetsen keresztl. Nagyszer! Sokkal tbb dolog trtnik, mikzben a weben barangolunk, mint amit a szemnk szrevesz!
2.6. P2P-alkalmazsok
Korbban, a 2.1.1. alfejezetben azt mondtuk, hogy egy alkalmazst nagy ltalnossgban vagy kliens-szerver architektrval vagy P2P- (egyenrang felek kztti trs-trs) architektrval terveznek. A fejezetben ez idig bemutatott alkalmazsok - belertve a webet, az e-mailt s a DNS-t - mind a kliens-szerver architektrt valstjk meg, s jelents mr tkben alapoznak a folyamatosan mkd infrastruktra-szerverekre. Idzzk fel, hogy a P2P-architektra esetben nincs (vagy csak minimlisan van) szksg folyamatos zem infrastruktraszerverekre. Ehelyett idszakosan sszekttt hosztok, az n. trsak kz vetlenl kommuniklnak egymssal. A trsak nem egy internetszolgltat tulajdonban lv eszkzk, hanem a felhasznlk llal vezrelt asztali szmtgpek s laptopok. Ebben az alfejezetben hrom klnbz alkalmazst vizsglunk meg, amelyek klnsen jl illeszkednek a P2P-konstrukcihoz. Az els a fjlcserls, ahol az alkalmazs egy egyetlen forrsbl szrmaz fjlt nagyszm trs kztt oszt szt. A fjlcserls kivlan alkalmas arra, hogy a P2P vizsglatt ezen a ponton kezdjk, mivel vilgosan megmutatja a P2P-architcktrk nsklzhatsgt. A fjlcserls egy konkrt pldjaknt bemutatjuk a npszer BitTorrcnt protokollt. A msodik P2P-alkaImazs, amelyet megvizsglunk, az informci szervezse s keresse egy trsakbl ll kzssgben. Ennl az alkalmazsnl tbb klnbz smt mutatunk be, amelyek mindegyikt alkalmazzk nagylptk fjl megoszt rendszerekben. Vgl a harmadik alkalmazs, amelyet vizsglat al vesznk, a Skype lesz, egy rendkvl sikeres P2P internetes telefonlsi alkalmazs.
140
2. Az ALKALMAZSI RTfcG
2.6.1. P2P-fj1cserls
A P2P megismersi egy magtl rtetd alkalmazssal kezdjk, ez pedig egy nagy fjl sztosztsa egyetlen szerver s nagyszm hoszt kztt (amelyeket trsaknak neveznk). A fjl lehet a Linux opercis rendszer egy j verzija, javtcsomag egy ltez opercis rendszerhez vagy alkalmazshoz, egy MP3 zenefjl vagy egy MPEG videofjl. A kliens-szerver alap fjlcserlsnl a szervernek el kell kldenie a fjl egy msolatt minden trs rszre - ez risi terhelst okoz a szerveren, s jkora hnyadt foglalja le a szerver svszlessgnek. A P2P-fjlcserlsnl minden trs, amely mr megszerezte a fjl egy tetszleges szelett, tovbbthatja azt ms trsaknak, ezltal segdkezve a szervernek a fjl sztosztsban. Knyvnk rsnak idpontjban (2007 tavaszn) a legnpszerbb P2P fjlcserl protokoll a BitTorrent [BitTorrent 2007]. Egyes becslsek szerint a BitTorrent okozza az internetes gerinchlzat forgalmnak krlbell 30 szzalkt [CacheLogic 2007]. Eredeti vltozatt Bram Cohen fejlesztette ki (lsd az interjt Bram Cohennel a fe jezet vgn), jelenleg azonban mr sok klnbz, egymstl fggetlen BitTorrent-kliens ltezik, amelyek a BitTorrent protokollt valstjk meg ppgy, ahogy szmos webbng sz kliens ltezik, amelyek a HTTP protokollt valstjk meg. Ebben az alfejezetben elszr a P2P-architektrk nsklzhatsgt vizsgljuk meg a fjlcserls sszefggsben. Ezutn rszletesebben bemutatjuk a BitTorrentet, kiemelve legfontosabb jellegzetessgeit s szolgltatsait.
A P2P-architektrk sklzhatsga
A kliens-szerver architektrk s a P2P-architektrk sszehasonltshoz, s annak szemlltetshez, hogy a P2P sklzhatsga magbl az architektrbl ered, lltsunk fel egy egyszer mennyisgi modellt mindkt architektrnl arra az esetre, amikor egy fjl cserje rgztett szm trs kztt zajlik. Ahogy a 2.22. brn lthat, a szerver s a trsak internetes hozzfrsi adatkapcsolattal vannak sszektve. Jellje a szerver hozz frsi kapcsolatnak feltltsi sebessgt ut, az i-cdik trs hozzfrsi adatkapcsolatnak feltltsi sebessgt az i-cdik trs hozzfrsi adatkapcsolatnak letltsi sebessgt pe dig d,. A megosztand fjl mrett jellje F (bitekben), a trsak szmt, amelyek meg sze retnk szerezni a fjl egy msolatt, jellje N. A sztosztsi id (distribution time) az az id, amely alatt mind az N trs megkapja a fjl egy msolatt. A sztosztsi id albb olvashat elemzsben mind a kliens-szerver, mind a P2P-architcktrk esetn azzal az egyszerst (s ltalban helytll) feltevssel lnk [A kel la 2003], miszerint az internetes gerinchlzat bsges svszlessggel rendelkezik, vagyis a szk keresztmetszetek mind a hozzfrsi hlzatokban tallhatk. Felttelezzk tovbb, hogy a szerver s a kliensek nem futtatnak ms hlzati alkalmazsokat, gy a teljes feltltsi s letltsi hozzfrsi svszlessgket a fjlcserlsre tudjk fordtani. Hatrozzuk meg a sztosztsi idt elszr a kliens-szerver architektra esetn, s jelljk azt D Ci -vel. A kliens-szerver architektrnl egyik trs sem segt a fjl sztosztsban. A kvetkezket figyelhetjk meg: A szervernek el kell juttatnia a fjl egy msolatt mind az N trs rszre. A
141
szervernek gy NF bitet kell tovbbtania. Mivel a szerver feltltsi sebessge us, a fjlcserls ideje legalbb NFIus lesz. Jellje dmtn a legkisebb letltsi sebessggel rendelkez trs letltsi sebessgt, vagyis dmil} = min [dh dp>..., ci, v ). A legkisebb letltsi .sebessggel br trs nem tudja letlteni mind az F bitet F/dintn msodpercnl kevesebb id alatt. A minimlis sztosztsi id teht legalbb F/d mm* Ezt a kt megfigyelst sszevetve az albbi sszefggst kapjuk:
142
Fjl: F
2. Az ALKALMAZSI RTfcG
Szerver
. u <
Internet
D>,nax& JL\ Ms ^min Ezltal egy als korltot kapunk a kliens-szerver architektra esetn elrhet
legkisebb sztosztsi idre. A hzi feladatok kztt szerepel egy plda, amelyben 2.5. DNS - Az INTERNET KRZHTNHV-SZOLGLTATSA 143
az olvasnak meg kell mutatnia, hogy a szerver kpes gy temezni az adattvitelt, hogy ezt az als korltot valban elrje. A fent kapott als korltot teht tekinthetjk gy, hogy ez a tnyleges sztosztsi id:
F
Dcs = max
Anin
(2.1)
A (2.1) egyenletbl lthatjuk, hogy elcg nagy N esetn a kliens-szerver architektra fjl- cserlsi ideje az NF/us kplettel adhat meg. A sztosztsi id teht a trsak szmval (N) linerisan nvekszik. gy, ha pldul a trsak szma egyik htrl a msikra ezerrl egymillira, vagyis az ezerszeresre n, a fjlcserlshez szksges id is 1000-szeresre nvekszik. Vgezznk most egy hasonl elemzst a P2P-architcktrn, ahol minden egyes trs segtsgre lehet a szervernek a fjl sztosztsban. Rszletesebben, amikor egy trs megkapja a fjl egy rszlett, feltltsi kapacitst arra hasznlhatja, hogy ezt a fjlrszletet tovbbtsa ms trsaknak. A P2P-architektra fjlsztosztsi idejnek kiszmtsa valamivel bonyolultabb, mint a kliens-szerver architektr, mivel a sztosztsi id fgg attl, hogy az egyes trsak milyen mdon tovbbtjk ms trsaknak a fjl szeleteit. Mindazonltal a
minimlis sztosztst id egy egyszer kifejezssel szmthat [Kumar 2006]. Ebbl a clbl az albbi megfigyelseket tesszk: A fjlcserls kezdetn a fjl csak a szerveren tallhat meg. Ahhoz, hogy a fjl eljusson a trsak csoportjhoz, a szervernek legalbb egyszer t kell kldenie a fjl minden egyes bitjt a sajt hozzfrsi kapcsolatn. Az tvitel minimlis ideje gy legalbb F/us. (A kliens-szerver architektrval ellenttben itt elfordulhat, hogy a szerver tbbszr nem kldi el azt a bitet, amelyet egyszer mr elkldtt, mert azt a trsak egyms kztt tovbbthatjk). A kliens-szerver architektrhoz hasonlan, a legalacsonyabb tviteli sebessggel rendelkez trs nem tudja letlteni az F bitet F/d:nin msodpercnl kevesebb id alatt. A fjlcserls minimlis ideje teht legalbb F/dmin. Vgl figyeljk meg, hogy ha a rendszer teljes feltltsi kapacitst egszben szemlljk, az egyenl lesz a szerver feltltsi sebessgnek s az egyes klnll trsak feltltsi sebessgeinek sszegvel, vagyis uloul = w, + m, + ... + us. A rendszernek F bitet kell tovbbtania (feltltenie) az N trs fel, vagyis sszesen NF bit tvitele trtnik meg. Ezt w tota , sebessgnl gyorsabban nem lehet megtenni. A minimlis sztosztsi id teht legalbb NF/( h, + w, + ... + u^). sszegezve a fenti megfigyelseket, a P2P minimlis fjlcserlsi idejre (D P2 P ) a kvetkez eredmnyt kapjuk:
(2
. 2)
us + X M,
1=1
A (2.2) egyenlet als becslst ad a P2P-architektra minimlis fjlcserlsi idejre. Ha belegondolunk abba, hogy minden trs azonnal tovbb tud adni egy bitet, amint azt megkapta, kiderl, hogy ltezik olyan fjlcserl rendszer, amely tnylegesen kpes elrni ezt az als korltot [Kumar 2006]. (Ennek az eredmnynek egy specilis esett a hzi feladat ban bizonytjuk.) A valsgban, amikor egyedlll bitek helyett a fjl nagyobb darabjai cserldnek ki, a (2.2) egyenlet j kzeltsknt szolgl a tnyleges minimlis sztosztsi idre. Ezrt tekintsk gy a (2.2) egyenletben kapott als korltot, hogy az egyenl a tny leges minimlis sztosztsi idvel:
SZAMITOGEP- HLZATOK...............................................3 MKDS............................................................3
Tartalomjegyzk.............................................................................................................. 7
A szmtgp-hlzatok s az internet.......................................................................26
1.1.Mi az az internet?..................................................................................................... 2
1.1.1.Alkotrszek........................................................................................................... 2
1.1.2.Szolgltatsok........................................................................................................ 5
1.2.1.Kliens- s szerverprogramok..............................................................................14
1.2.2.Hozzfrsi hlzatok......................................................................................... 14
1.3.1.Vonalkapcsols s csomagkapcsols.................................................................30
1.3.3.lnternetszolgltatk s internet-gerinchlzatok.............................................41
1.4.1.Ksleltetsek ttekintse.................................................................................... 46
1.4.4.Szmtgp-hlzatok tbocstkpessge......................................................58
1.5.1.Rtegezett architektra...................................................................................... 63
1.7.5.Legutbbi fejlesztsek........................................................................................ 90
1.8.sszefoglals.......................................................................................................... 92
Krdsek........................................................................................................................ 94
Feladatok....................................................................................................................... 96
2.1.2.Kommunikl folyamatok.................................................................................119
2.2.3.HTTP-zenetformtumok..................................................................................140
2.3.1.FTP-parancsok s -vlaszok..............................................................................129
2.4.1.SMTP................................................................................................................... 134
2.4.4.Levl-hozzfcrsi protokollok...........................................................................118
2.5.3.DNS-rekordok s -zenetek..............................................................................131
2.6.P2P-alkalmazsok................................................................................................. 139
2.6.1.P2P-fj1cserls................................................................................................ 140
F \................................................................................................................................. 143
2.7.TCP-szoketprogramozs....................................................................................... 166
2.7.1.TCP-szoketprogramozs.................................................................................... 168
l.................................................................................................................................... 183
t.................................................................................................................................... 186
O................................................................................................................................... 245
O................................................................................................................................... 211
1................................................................................................................................... 196
1................................................................................................................................... 196
r,=2X.......................................................................................................................... 231
I I l i.............................................................................................................................. 106
i=i A 2.23. bra sszehasonltja a kliens-szerver s a P2P-architektrk minimlis fjlcserlsi idejt, felttelezve, hogy minden trs ugyanazzal az u feltltsi sebessggel rendelkezik. A 2.23. brn az albbiak szerint vlasztottuk meg az egyes rtkeket: F/u = 1 ra, us = 10 u s dn]in > u. gy trs ezek szerint egy ra alatt tudja letlteni az egsz fjlt, a szerver tviteli sebessge a trsak feltltsi sebessgnek l-szerese, s (az egyszersg kedvrt) a trsak le tltsi sebessgt elg nagynak vesszk ahhoz, hogy ez ne befolysolja az eredmnyt. A 2.23. brn lthatjuk, hogy kliens-szerver architektra esetn a sztosztsi id a trsak szmval egyenes arnyossgban nvekszik minden hatron tl. Habra P2P-architektra minimlis fjlcserlsi ideje nem mindig kisebb, mint a kliensszerver architektra fjlcserlsi ideje,
2.23. bra. Sztosztsi id P2P- s kliens-szerver architektra hasznlata esetn viszont a trsak akrmekkora Nszma esetn kisebb lesz, mint egy ra. A P2Parchitektrt hasznl alkalmazsok teht nsklzhatk. Ez a sklzhatsg egyenes kvetkezmnye annak, hogy a trsak egyarnt vgzik a bitek letltst s tovbbterjesztst.
BitTorrent
A BitTorrent egy npszer P2P fjlcserl protokoll [BitTorrent 2007]. A BitTorrent zsargonjban egy adott fjl cserjben rszt vev trsak sszessgt torrentnek (radatnak) nevezik. Egy radatba tartoz trsak a fjl egyenl mret tredkeit tltik le egymsrl, a tredkek mrete jellemzen 256 KB. Amikor egy trs els alkalommal kapcsoldik be egy radatba, nincsenek nla tredkek. Ahogy telik az id, egyre tbb s tbb tredket gyjt ssze. Mikzben tredkeket tlt le, ezzel egy idben fel is tlt tredkeket ms trsaknak. Amikor egy trs megszerezte az egsz fjlt, elhagyhatja (nz mdon) az radatot, vagy benne ma radhat (nzetlenl) az radatban, s folytathatja a tredkek feltltst ms trsak
rszre. Brmely trs kilphet tovbb az radatbl tetszleges idpontban, amikor mg a fjlnak csak nhny rszletvel rendelkezik, s ksbb jra csatlakozhat az radathoz. Vessnk most egy kzelebbi pillantst a BitTorrent mkdsre. Mivel a BitTorrent viszonylag bonyolult protokoll, csak a legfontosabb mechanizmusokat mutatjuk be, sznyeg al sprve nmely rszleteket. Ez lehetv teszi szmunkra, hogy meglssuk a ftl az erdt. Minden radathoz tartozik egy infrastruktra-csompont, amelyet nyomkvetnek (tracker) neveznek. Amikor egy trs csatlakozik egy radathoz, bejelentkezik a nyomkve tnl, s rendszeres idkznknt tjkoztatja a nyomkvett arrl, hogy mg az radat ban van. Ezltal a nyomkvet nyilvntartja az radatban aktulisan rszt vev trsakat. Egy adott radatban tbb szz vagy tbb ezer trs is rszt vehet brmely idpillanatban. Amint a 2.24. bra mutatja, amikor egy j trs, Alice csatlakozik az radathoz, a nyomkvet vletlenszeren kijelli a rsztvev trsak egy rszhalmazt (mondjuk 50-et), s elkldi ennek az 50 trsnak az IP-cmt Alice rszre. A trsak listjnak birtokban Alice megprbl a listn szerepl sszes trssal prhuzamosan TCPsszekttetst ltesteni. Nevezzk azokat a trsakat, amelyekkel Alice sikeresen ltestett TCP-sszekttelst, szomszdos trsaknak. (A 2.24. brn Alice-nak csak hrom szomszdos trsa van. A valsgban ennl sokkal tbb lehet.) Ahogy telik az id, ezen trsak kzl nmelyek kilphetnek az radatbl, s ms trsak (a kezdeti 50-en kvl) prblhatnak meg TCP-sz- szekttetseket ltesteni Alice-szal. Egy trs szomszdos trsainak csoportja ezrt idben vltozhat. Tetszleges idpillanatban az egyes trsak a fjl darabjainak egy rszhalmazt birtokoljk, a klnbz trsak klnbz rszhalmazokkal rendelkeznek. Alice rendszeres idkznknt megkri minden szomszdos trst (a TCPsszekttetseken keresztl), hogy kldjn egy listt a nla tallhat tredkekrl. Ha Alice-nak L klnbz szomszdos trsa van, L ilyen listt fog kapni. Ezen ismeret birtokban Alice elkri (szintn a TCP-sz- szekttetseken keresztl) azokat a tredkeket, amelyeket mg nem szerzett meg. Ezek alapjn brmely idpillanatban Alice a fjltredkek egy rszhalmazval rendelkezik, s tudja, hogy a szomszdos trsaknl mely tredkek tallhatk meg. Ezen informcik alapjn Alice-nak kt fontos dntst kell hoznia. Elszr: mely tredkeket krje el elszr a szomszdaitl? Msodszor: mely szomszdjainak kldjn tredkeket? Annak eldntshez, hogy mely tredkeket krje el, Alice a legritkbban elfordult elszr (rarest first) nev mdszert alkalmazza. Az alaptlet, hogy meg kell hatrozni, a mg meg nem szerzett tredkek kzl melyek azok, amelyek a szomszdoknl a legritkbban for dulnak el (vagyis amelyekbl a szomszdoknak a legkevesebb ismtld msolatuk van), majd ezeket a legritkbb tredkeket kell elszr elkrni. Ezltal a legritkbb tredkek cserje gyorsan megtrtnik, ami hozzjrul ahhoz, hogy az egyes tredkek msolatainak szma (nagyjbl) kiegyenltdjn az radatban.
Nyomkvet
Trs
Annak eldntsre, hogy mely krsekre vlaszoljon, a BitTorrent egy gyes keresked algoritmust alkalmaz. Az algoritmus alaptlete, hogy Alice azokat a szomszdokat rszesti elnyben, amelyek ppen a legnagyobb sebessggel szlltjk az adatait. Rszletesebben, Alice minden szomszdjtl jv vonalon folyamatosan mri azt a sebessget, amellyel az a biteket tkldi neki, s meghatrozza azt a ngy trsat, amelyek a legnagyobb sebessg gel kldik neki a biteket. Ezutn ugyanennek a ngy trsnak a szolgltatsait viszonozza azzal, hogy nekik kldi a tredkeket. Alice minden 10. msodpercben jra kiszmtja a sebessgeket, s ennek megfelelen vltoztatja a ngy trsbl ll halmazt. Fontos, hogy minden 30. msodpercben vletlenszeren vlaszt egy tovbbi trsat, akinek szintn kld tredkeket. Nevezzk a vletlenszeren kivlasztott trsat Bobnak. Mivel Alice adatokat kld Bobnak, ezzel bekerlhet Bob ngy leggyorsabb feltltje kze, s ebben az esetben Bob is elkezd adatokat kldeni Alicc-nak. Ha a sebessg, amellyel Bob adatokat kld Ali- ce-nak, elg nagy, Bob is bekerlhet Alice ngy leggyorsabb feltltje kz. Ms szavakkal, Alice 30 msodpercenknt vletlenszeren vlaszt egy j zlettrsat, s zletet kezdem nyez ezzel a partnerrel. Ha a kt trs elgedett az zlettel, beveszik egymst a leggyorsabb feltltik listjba s addig folytatjk a kereskedst, amg valamelyikk nem tall egy jobb partnert. Ennek hatsra az sszemrhet feltltsi sebessggel rendelkez trsak elbb-utbb rtallnak egymsra. A szomszdok vletlenszer kivlasztsa lehetv teszi, hogy az j trsak is megszerezhessenek tredkeket, gy lesz mivel kereskednik. Az t szomszdos trson (a ngy leggyorsabb s a vletlenszeren vlasztott trs) kvl minden ms trs ki van zrva a kereskedsbl, vagyis nem kapnak tredkeket Alice-tl.
A P2P-fjl megoszts ltalnos problmja az ingyenutazs (free riding), amikor is egy trs anlkl tlt le fjlokat a fjlmegoszt rendszerrl, hogy fjlokat tltene fel. A BitTorrent keresked algoritmusa virtulisan kikszbli az ingyenutazs problmjt, mivel ahhoz, hogy Alice hosszabb idn t jelents sebessggel tlthessen le biteket Bobtl, ezzel egy idben neki is jelents sebessggel kell feltltenie biteket Bob rszre. A BitTorrent szmos tovbbi, itt nem trgyalt rdekes mechanizmussal rendelkezik, belertve a mor zskat (mini-tredkek), a csvezetkezst, az elst vletlenszeren kivlasztsi md szert, a jtk vge mdot s a hirtelen lelassts kivdst (anti-snubbing) (Cohen 2003).
itt jegyezzk meg rviden, hogy a BitTorrent protokoll, amely egyszeren egy fjlcserl protokoll, nem biztost indexelsi s fjlkeressi szolgltatsokat. A kvetkezkben hrom megoldst trgyalunk, amelyek alapjn egy trsakbl ll kzssgben indexet lehel ltrehozni s keresni benne. Ezeket egy konkrt pldn, egy P2P fjlmegoszt rendszerben trtn fjlkeressen keresztl mutatjuk be. Hangslyozzuk azonban, hogy az elmondottak egyarnt rvnyesek brmilyen informcinak a P2P-k- zssgben trtn keressre.
Kzpontostott index
Egy fjl helynek meghatrozsra az egyik legegyszerbb megkzelts a kzpontostott index (centralized index) hasznlata, ahogy azt a Napster, az els nagylptk kereskedelmi P2P fjl megoszt alkalmazs is tette. Ebben az elrendezsben egy nagy szerver (vagy szerverfarm) nyjtja az indexelsi szolgltatst. Amint a 2.25. brn lthat, amikor egy felhasznl elindtja a P2P fjlmegoszt alkalmazst, az alkalmazs kzli az indexel szerverrel a sajt IPcmt s a megosztsra hozzfrhetv tett fjlok neveit (pldul az sszes ltala trolt MP3-fjl cmt). Az indexel szerver sszegyjti ezeket az infor mcikat minden aktivizld trstl, ltrehozva ezltal egy kzpontostott dinamikus indexet, amely minden fjlmsolatot IP-cmek egy halmazra kpez le. Megjegyezzk, hogy egy kzpontostott indexszel rendelkez P2P fjlmegoszt rendszer tulajdonkppen a P2P s a kliens-szerver architektra hibridje. A fjlcserls P2P-alap, a keress viszont kliens-szerver alap. Napjainkban szmos alkalmazsban tallhatunk ilyen hibrid archi tektrt, tbbek kztt sok azonnali zenetkld alkalmazsban. A kzpontostott index hasznlata informcik keressre egyszer elveken alapszik, azonban szmos htrnya van: Egyetlen meghibsodsi pont. Ha az indexel szerver sszeomlik, az egsz alkalmazs sszeomlik. Mg abban az esetben is, ha szerverfarmot hasznlnak redundns szerve-
Kzpontostott katalgusszerver
Alice
2.25. bra. Kzpontostott index rekkel, a szerverfarm internet-sszektletse is megszakadhat, ezltal a teljes alkalmazs sszeomlst okozva. Teljestmnybeli szk keresztmetszet s infrastruktra-kltsgek. Egy nagy P2P-rend- szerben, amelyhez tbb szzezer felhasznl kapcsoldik, egy kzpontostott szervernek hatalmas mret indexet kell karbantartania, s msodpercenknt tbb ezer lekrdezsre kell vlaszolnia. 2000-ben, amikor a Napster volt a legnpszerbb P2P fjlmegoszt alkalmazs, a Napster kzponti szervere valban ilyen mret forgalommal kszkdtt. Szerzi jogok megsrtse. Br ez a tma kvl esik e knyv keretein, rviden megemltjk, hogy a hanglemezipari rzkenyen rintette (finoman szlva) az, hogy a P2P fjlmegoszt rendszerek lehetv teszik felhasznlik szmra, hogy knnyen s ingyenesen hozzjussanak szerzi jogvdelem al tartoz tartalmakhoz. (Kivl elemzs olvashat a szerzi jogok hatsrl a P2P-re [von Lohmann 2003] munkjban). Ha egy P2P-fjlmegosztssal foglalkoz cg kzpontostott indexel szervert zemeltet, a jogi eljrsok eredmnyeknt ktelezhetik a cget a szerver lelltsra. A de- centralizltabb architektrknl ezt sokkal nehezebb megtenni.
Lekrdezs-elraszts
A kzpontostott katalgusokkal szemben a msik vgletet a lekrdezs-elraszts (query flooding) teljesen decentralizlt megkzeltse kpviseli. A lekrdezselrasztst alkalmazta a Gnutella protokoll eredeti vltozata. A lekrdezselrasztsnl az index teljesen el van osztva a trsak kzssge kztt. Minden trs csak a sajt maga ltal megosztott fjlokat indexeli, ms fjlokat nem. A lekrdezs-elraszts sorn a trsak egy absztrakt, logikai hlzatot alkotnak. Ezt tlapol hlzatnak (overlay network) nevezik, s grfelmleti fogalmakkal a kvetkezkppen definilhat: Ha az X trs TCP-sszekttetst tart fenn egy msik Y trssal, azt
mondjuk, hogy X s Y kztt egy l (edge) tallhat. Az sszes aktv trsat s az sszekt leket (fennll TCP-sszekttetseket) tartalmaz grf definilja az tlapol hlzatot. Megjegyezzk, hogy az lek nem fizikai kommunikcis adatkapcsolatokat jelentenek; egyl ehelyett egy absztrakt adatkapcsolatnak felel meg, amely tbb fizikai adatkapcsolatbl llhat ssze. Egy l az tlapol hlzatban jelkpezheti pldul egy Litvniban s egy Brazliban tallhat trs kztti TCP-sszekttetst. Habr egy ilyen tlapol hlzat akr tbb szzezer rszt vev trsat is tartalmazhat, egy adott trs jellemzen kevs szm msik csomponthoz (ltalban tznl kevesebbhez) csatlakozik az tlapol hlzatban, amint a 2.26. bra mutatja. Ksbb elmagyarzzuk, hogyan pthet fel az tlapol hlzat, s hogyan lehet karbantartani, mikzben csompontok lpnek be a hlzatba s lpnek ki onnan. Most tegyk fel, hogy az tlapol hlzat mr ltezik, s sszpontostsunk arra, hogyan tall meg s tlt le tartalmakat egy trs. Ebben az elrendezsben a trsak a mr ltez TCP-sszekttetseken keresztl kldenek zeneteket az tlapol hlzatbeli szomszdos trsaiknak. Amikor Alice meg akarja tallni a Szerelem a hlzaton cm tartalmat, a kliense minden szomszdjnak kld egy lekrdez zenetet, amely a Szerelem a hlzaton kulcsszavakat tartalmazza. Alice szomszdjai tovbbtjk a lekrdezst a sajt szomszdjaiknak, amelyek szintn tovbb- kldik a lekrdezst a sajt szomszdjaiknak s gy tovbb. Ezt a lekrdezs-elraszts nev folyamatot mutatja a 2.26. bra. Amikor egy trs kap egy lekrdezst, ellenrzi, hogy a kulcssz illeszkedik-e valamelyik fjlra, amelyet megosztsra elrhetv lett. Ha illeszkedik, a trs egy lekrdezs-tallat zenetet kld Alice-nak, amely tartalmazza a megtallt fjl nevt s mrett. A lekrdezs-tallat zenet a lekrdez zenet tvonalt kveti ellenkez irnyban, ezltal felhasznlva a mr megnyitott TCP-sszekttetseket. Alice ily mdon felderti azokat a trsakat, amelyeknl megtallhat a kvnt fjl msolata. Habr ez a decentralizlt elrendezs egyszer s elegns, gyakran brljk amiatt, hogy nem sklzhat. Rszletesebben, ha a lekrdezs-elraszts sorn brmikor egy trs lekrdezst indt, a lekrdezssel elrasztja az sszes tbbi trsat a teljes tlapol hlzatban, miltal jelents mrtk forgalmat generl a trsak kztt az ket alsbb szinten sszekt hlzaton (vagyis az interneten). A Gnutella tervezi erre a problmra a korltozott kiterjeds lekrdezs-elraszts (limited-scope query flooding) alkalmazsval vlaszoltak. Ez azt jelenti, hogy amikor Alice elkldi a kezdeti lekrdez zenett, egy trsszmll mez az zenetben kap egy meghatrozott rtket (mondjuk 7-et). Min den alkalommal, amikor a lekrdez zenet egy jabb trshoz rkezik, a trs cskkenti a trsszmll mez rtkt, mieltt tovbbklden a lekrdezst az tlapol hlzatbeli szomszdjainak. Amikor egy trs olyan lekrdez zenetet kap, amelyben a trsszmll mez rtke nulla, nem kldi tovbb a lekrdezst. Ily mdon az elraszts csak az tlapol hlzat egy krzetre terjed ki, a korltozott kiterjeds lekrdezst elindt trs krnyezetben. Ez a korltozott kiterjeds lekrdezs-elraszts egyrtelmen cskkenti a lekrdezsi forgalmat. Cskkenti azonban azoknak a trsaknak a szmt is, amelyekhez eljut a lekrdezs. gy lehetsges, hogy egy bizonyos tartalmat keres trs nem tudja meg tallni a tartalmat, mg ha az meg is tallhat valahol a trsak kzssgben.
Az tlapolsnl alapvet krds a belp s kilp trsak kezelse. Az eredeti Gnutella- elrcndezst pldaknt vve bemutatjuk, hogyan lehet karbantartani egy tlapol hlzatot, amikor j trsak lpnek be. legyk fel, hogy egy j X trs szeretne csatlakozni az tlapol hlzathoz.
Fjltvitel
Lekrdezs
Lekrdezs-tallat
Lekrdezs-tallat
2.26. bra. Lekrdezs-elraszts 1. Az X trsnak elszr tallnia kell nhny msik trsat, amelyek mr az tlapol hlzatban vannak. Az egyik megkzelts ennek az indtsi problmnak (bootstrap problem) a megoldsra, hogy X egy listt vezet azokrl a trsakrl (azok IP-cmei- rl), amelyek gyakran vannak bejelentkezve az tlapol hlzatra; egy msik lehetsg, hogy X kapcsolatba lp egy nyomkvetvel (mint a BitTorrentnl), amely rendelkezik ilyen listval. Miutn X szert tett egy ilyen listra, megprbl TCP-sszekttetst ltesteni sorra a listn szerepl trsakkal egszen addig, amg ltre nem jn egy sszekttets valamely Y trssal. Miutn X s Y kztt ltrejtt a TCP-sszekttets, X kldhet egy ping zenetet Y-nak. A ping zenet tartalmaz egy trsszmll mezt. A ping zenet megrkezsekor Y tovbbtja azt minden tlapol hlzatbeli szomszdjnak. A trsak tovbbkl- dik a ping zenetet, amg a trsszmll mez rtke el nem ri a nullt. Amikor egy Z trs ping zenetet kap, vlaszul egy pong zenetet kld vissza X-nek az tlapol hlzaton keresztl. A pong zenet tartalmazza Z IPcmt. Miutn X megkapta a pong zeneteket, mr sok trs IP-cmt ismeri az tlapol hlzatbl. Ezutn TCP-sszekttetseket nyithat ezen trsak kzl nhnnyal, ezltal leket hozva ltre az tlapol hlzatban, amelyek belle indulnak ki.
2.
3.
4.
5.
Azokat a lpeseket, amelyeket az tlapol hlzat trsak kilpsekor tesz meg, a hzifel- adat-pldk kztt dertjk fel. Ezzel lefedtk a lekrdezs-elraszts s a dinamikus tlapolsi elrendezs alapvet tulajdonsgait. sszegezve, a lekrdezs-elraszts egy egyszer, elosztott P2P-sma, amely lehetv teszi a felhasznlk szmra, hogy kzeli trsaknl tallhat informcit krdezzenek le (ahol kzeli az tlapol hlzaton nhny lpsben elrhett jelent). Az eredeti
Gnutella-elrendezs a fent lert lekrdezs-elrasztst hasznlta. Az vek sorn a Gnutella protokoll jelents fejldsen ment kersztl, s jelenlegi formjban a P2P fjlmegoszt rendszerekben rszt vev trsak heterogenitst hasznlja ki. A Gnutella mig nagyon npszer s a szintn npszer LimeWire P2P-kliens alkalmazza.
Hierarchikus tlapols
Lttuk, hogy a kzpontostott index s a lekrdezs-elraszts kt homlokegyenest ellenkez megkzelts az informci keressre. Most egy harmadik megkzeltst mutatunk be, amelyre hierarchikus tlapolstervezsknt (hierarchical overlay design) fogunk hivatkozni, s amely egyesti az elz kt megkzelts legjobb tulajdonsgait. A hierarchikus tlapolstervezst elszr a FastTrack, egy P2P fjlmegoszt protokoll alkalmazta, amelyet az vek sorn szmos kliensben, tbbek kztt a Kazaa-ban s a Morpheusban is megvalstottak. A Gnutella modern vltozata is hierarchikus tlapolstervezst hasznl, br az nmileg eltr az itt lerttl. A lekrdezs-elrasztshoz hasonlan a hierarchikus tlapolstervezs sem hasznl dediklt szervert (vagy szerverfarmot) a fjlok nyomkvetsre s indexelsre. A lekrdezs-elrasztstl eltren azonban a hierarchikus tlapolstervezsben nem minden trs egyenl. Rszletesebben, a nagy svszlessg internet-sszekttetssel br s nagy rendelkezsre lls trsakat szupertrsaknak nevezik, ezeknek nagyobb a felelssgk. Ahogy a 2.27. brn lthat, ha egy trs nem szupertrs, akkor egy kznsges trs, s gyermekknt egy szupertrshoz van rendelve. Egy szupertrsnak tbb szz gyermeke le het, amelyek kznsges trsak. Egy j trs elszr az egyik szupertrssal ltest TCP-sszekttetst. Az j trs ezutn tjkoztatja szupertrst mindazokrl a fjlokrl, amelyeket megosztsra hozzfrhetv tesz. Ez lehetv teszi, hogy a szupertrs egy listt vezessen, amely tartalmazza az sz- szes olyan fjl azonostjt, amelyet gyermekei megosztanak, tovbb metaadatokat ezen fjlokrl, s az egyes fjlokat birtokl gyermekek IP-cmeit. Ezltal minden szupertrs egy mini indexsz vlik. Az alfejezet elejn trgyalt kzpontostott indexszel szemben azonban egy szupertrs nem dediklt szerver, hanem kznsges trs, amely ltalban egy laksban vagy egy egyetemen helyezkedik el. Ila az sszes mini csompont s az gyermekeik el lennnek szigetelve, egy trs szmra elrhet tartalom mennyisge ersen korltozott lenne. E korltozs elkerlse rdekben a szupertrsak sszekapcsoldnak egymssal TCPsszekttetseken keresztl, ezltal egy tlapol hlzatot hozva ltre egyms kztt. Ennek az tlapolsnak a segtsgvel a szupertrsak tovbbthatjk a lekrdezseket a szomszdos szupertrsaknak. Ez a megkzelts a lekrdezselrasztsra hasonlt, de itt korltozott kiterjeds elraszts trtnik a szupertrsak tlapol hlzatban. Amikor egy trs kulcsszavak alapjn keres, a kulcsszavakat tartalmaz lekrdezst elkldi a szupertrsnak. A szupertrs azoknak a gyermekeinek az IPcmvel vlaszol, amelyeknl a kulcsszavakra illeszked lerval rendelkez fjlok tallhatk (a vlaszban ezen fjlok azonostjt is visszakldi). A szupertrs tovbbthatja is a lekrdezseket a szomszdos szupertrsaknak. Ha egy
szomszdos szupertrs ilyen lekrdezst kap, szintn azon gyermekeinek IPcmvel vlaszol, amelyeknl illeszked fjlok tallhatk. A szupertrsak vlaszai fordtott utat jrnak be az tlapol hlzatban. Ez a hierarchikus tlapolstervezs a trsak heterogenitst hasznlja ki azltal, hogy a nagyobb teljestmny trsak egy kis hnyadt szupertrsaknak nevezi ki, ezek alkotjk
2.27.
Jells:
bra.
Hierarchikus
tlapols
egy hierarchikus tlapol hlzat fels rteget, amint a 2.27. bra mutatja, sszehasonltva a korltozott kiterjeds lekrdezs-elrasztssal (mint a Gnutella eredeti megvalstsban), a hierarchikus tervezs lehetv teszi jelentsen tbb trs vizsglatt az illeszkeds keresse sorn anlkl, hogy tl nagy mennyisg hlzati forgalom keletkezne. Mieltt befejeznnk a P2P-alkalmazsok informcikeressi megoldsainak trgyalst, rviden megemltnk egy tovbbi fontos tervezsi megkzeltst, amelynek neve elosztott hash tbla (Distributed Hash Table, DHT) [Stoica 2001; Rowstron 2001; Rat- nasamy 2001; Zhao 2004; Maymounkov 2002; Garces-Erce 2003]. A DHT teljes kr trgyalsa kvl esik e knyv keretein. Megemltjk azonban, hogy egy DHT (1) teljesen decentralizlt indexet hoz ltre, amely a fjlazonostkat a fjlok elhelyezkedsre kpezi le, s (2) lehetv teszi, hogy a felhasznlk egy fjl (elvben) sszes elrhetsgt meghatrozzk tlzott mrtk keressi forgalom generlsa nlkl. A DHT-k korbban risi rdekldst keltettek a kutati krkben. Az Overnet, a npszer eMule fjlmegoszt al kalmazs kzponti sszetevje DHT-t hasznl [Liang 2006).
2.6. P2P-AI.KALMAZSOK
165
Nemcsak a Skype protokolljai esnek szabadalmi oltalom al, hanem a Skype sszes csomagtvitele (hang- s vezrlcsomagok) is titkostva van. Mindezek ellenre a Skype weblapjrl s a szmos mrsi eredmnybl a kutatk kidertettk a Skype ltalnos mkdst [Basel 2006; Guba 2006; Chen 2006; Suh 2006; Ren 2006]. A FastTrack-hez hasonlan a Skype-ban is hierarchikus tlapol hlzatba szervezdnek a csompontok, s minden trs szuper trsknt vagy kznsges trsknt viselkedik (lsd 2.27. bra). A Skype kezel egy indexet, amely a Skype-felhasznlneveket lekpezi az aktulis IP-cmckre (s port szmokra). Ez az index cserldik a szupertrsak kztt. Amikor Alice fel szeretn hvni Bobot, Alice Skype-klicnse keresst vgez az elosztott indexben, hogy meghatrozza Bob aktulis IP-cmt. Mivel a Skype protokoll egyedi, jelenleg nem tisztzott, hogy a szupertrsak kztt hogyan trtnik az indexlekpezsek megszervezse, habr nagyon valszn, hogy a DHT valamely formjt hasznljk. P2P-technikt alkalmaznak a Skype tjtszk (relays) is, amelyek az otthoni hlzatokban elhelyezked hosztok kzti hvsok ltestsre hasznlatosak. Sok otthoni hlzati konfigurciban egy tvlasztn (jellemzen vezetk nlkli tvlasztn) keresztl lehet elrni az internetet. Ezek az tvlasztk valjban nem egyszeren tvlasztk, s ltalban tartalmaznak egy gynevezett hlzati cmfordtt (NetWork Address Trans- lator, NAT). A NAT-ot a 4. fejezetben vizsgljuk meg. Most elg annyit tudnunk, hogy a NAT megakadlyozza az otthoni hlzaton kvli hosztokat abban, hogy kapcsolatot kezdemnyezzenek egy, az otthoni hlzatban lv hoszttal. Ha mindkt Skype-on beszlget fl NAT mgtt helyezkedik el, akkor gond van - egyik sem kpes a msik ltal kezdemnyezett hvst fogadni, ami ltszlag lehetetlenn teszi a hvsokat. A szuper trsak s tjtszk tletes alkalmazsa szpen megoldja ezt a problmt. Tegyk fel, hogy amikor Alice bejelentkezik, hozzrendeldik egy nem NAT-olt szupertrshoz. Ezzel a szupertrssal Alice kpes egy munkamenett (session) indtani, mivel a NAT-ja csak az otthoni hlzatra kvlrl indtott munkameneteket nem engedlyezi. Ez lehetv teszi, hogy Alice s az szupertrsa vezrlsi zeneteket vltsanak egymssal a munkamenetben. Ugyanez trtnik, amikor Bob bejelentkezik. Ezutn amikor Alice fel akarja hvni Bobot, Alice tjkoztatja a szupertrst, amely tjkoztatja Bob szupertrst, az pedig tjkoztatja Bobot az Alice-tl jv hvsrl. Ha Bob fogadja a hvst, a kt szupertrs kivlaszt egy harmadik nem NAT-olt szupertrsat - ez az tjtsz csompont amelynek az lesz a feladata, hogy tjtssza az adatokat Alice s Bob kztt. Alice s Bob szupertrsai ezutn utastjk Alice-t s Bobot, hogy kezdemnyezzenek munkamenetet az tjtszval. Alice ezutn hangcsomagokat kld az tjtsznak az Alice s az tjtsz kztti sszekttetsen (amelyet Alice kezdemnyezett), az tjtsz pedig tovbbtja ezeket a csomagokat az tjtsz s Bob kzti sszekttetsen (amelyet Bob kezdemnyezett); Bobtl Alice fel ugyanezen a kt tjtsz sszekttetsen keresztl ramlanak a csomagok, csak ellenkez irnyban. s me! - Bob s Alice kztt ltrejtt egy igny szerinti, vgpontok kzti ssze kttets annak ellenre, hogy egyikk sem tud a sajt helyi hlzatn kvlrl kezdem nyezett munkameneteket fogadni. Az tjtszk alkalmazsa szemllteti a P2P-rendszerek egyre kifinomultabb kialaktst, amelyben a trsak alapvet rendszerszolgltatsokat nyjtanak msok szmra (plda erre az indexelsi szolgltats s az tjtszs), mikzben maguk is ignybe veszik a P2P-rendszer ltal biztostott vgfelhasznli szolgltatst (vagyis a fjlletltst, IP telefonlst).
166
A Skype egy rendkvl sikeres internetes alkalmazs, amely a sz szoros rtelmben tbb tzmilli felhasznl kztt terjedt el. A Skype llegzetellltan gyors s szles kr elfogadsa (ahogy korbban a P2P-fjlmegoszts, a web s az azonnali zenetklds) kesen bizonytja az internet blcs architekturlis tervezst, hiszen a tervezsnl nem lthattk elre a kvetkez harminc vben kifejlesztsre kerl internetes alkalmazsok gazdag s llandan bvl csoportjt. Az internetes alkalmazsok szmra nyjtott szolgltatsok sszekttets nlkli datagramtvitel (UDP), sszekttets alap megbzhat datagra- mtvitel (TCP), a szoketinterfsz, cmzs s nvkezels (DNS), valamint sok egyb - megfelelnek bizonyultak tbb ezer alkalmazs kifejlesztsre. Mivel ezek az alkalmazsok mind az internetes protokollverem ngy alsbb rtegre plnek, csak a vgrendszereken hasznlatos kliens-szerver vagy P2P-szoftvert kell jonnan kifejleszteni. Hz teszi lehetv, hogy ezeket az alkalmazsokat gyorsan lehessen telepteni s gyorsan el is terjedjenek.
2.7. TCP-szoketprogramozs
Most, hogy mr szmos fontos hlzati alkalmazst ttekintettnk, dertsk fel, hogyan is rdnak a hlzati alkalmazsok programjai. Ebben az alfejezetben olyan alkalmazi programokat runk, amelyek TCP-t hasznlnak; a kvetkez alfejezetben UDP-t hasznl programokat fogunk rni. Idzzk fel a 2.1. alfejezetbl, hogy sok hlzati alkalmazs egy programprbl ll - egy szerverprogrambl s egy kliensprogrambl -, amelyek kt klnbz vgrendszeren tallhatk. E kt program vgrehajtsa sorn ltrejn egy kliens- s egy szerverfolyamat, s ezek a folyamatok szoketek rsa s olvassa rvn kommuniklnak egymssal. Egy hlzati alkalmazs megalkotsakor a fejleszt f feladata a kliens- s a szerverprogram kdjnak megrsa. A hlzati alkalmazsoknak kt fajtja ltezik. Az egyik egy protokollszabvnyt valst meg, amelyet pldul egy RFC-ben definiltak. Egy ilyen megvalstsnl a kliens- s a szerverprogramnak be kell tartania az RFC ltal elrt szablyokat. Pldul a kliensprogram lehet az FTP protokoll kliensoldalnak (lersa a 2.3. alfejezetben, pontos defincija az RFC 959-ben) megvalstsa, a szerverprogram pedig az FTP-szerverprotokoll (pontos defincija szintn az RFC 959-ben) megvalstsa. Ha egy fejleszt megrja a kliensprogram kdjt, egy msik, tle fggetlen fejleszt pedig megrja a szerverprogram kdjt, s mindkt fejleszt gondosan kveti az RFC szablyait, akkor a kt program egytt fog tudni mkdni. St, napjaink legtbb hlzati alkalmazsa olyan szerver- s kliensprog ramok kzti kommunikcit foglal magban, amelyeket egymstl fggetlen fejlesztk hoztak ltre - plda erre, amikor egy Firefox bngsz s egy Apache webszerver kommu nikl egymssal, vagy amikor egy PC-s FTP-kliens fjlt tlt fel egy linuxos FTPszerverre. Ha egy kliens- vagy szerverprogram RFC-ben definilt protokollt valst meg, az adott protokollhoz rendelt portszmot kell hasznlnia. (A portszmokat rviden emltettk a 2.1. alfejezetben. Rszletesebb trgyalsukat lsd a 3. fejezetben.) A hlzati alkalmazsok msik csoportjt az egyedi hlzati alkalmazsok alkotjk. Ebben az esetben a kliens- s a szerverprogram ltal hasznlt alkalmazsi rtegbeli protokoll nem felttlenl alkalmazkodik egy ltez RFC-hez. Mind a kliens-, mind a szerverprogramot egyetlen fejleszt (vagy fejlesztcsapat) rja
2.6. P2P-ALKAI.MAZS0K 167 meg, s teljesen a fejleszt ellenrzse al tartozik, hogy mi kerl a kdba. Mivel azonban a kd nem egy nyilvnos protokollt valst meg, ms fggetlen fejlesztk nem lesznek kpesek olyan programot rni, amely egyttmkdik az alkalmazssal. Egy egyedi alkalmazs fejlesztse sorn a programoz nak gyelnie kell arra, hogy ne hasznlja az RFC-kben definilt kzismert portszmokat.
2.6. P2P-AI.KALMAZSOK
168
Ebben s a kvetkez fejezetben megvizsgljuk egy egyedi kliens-szerver alkalmazs fejlesztsnek f krdseit. A fejlesztsi fzis alatt az egyik els dolog, amit a fejlesztnek el kell dntenie, az, hogy az alkalmazs TCP fltt vagy UDP fltt fusson. Emlkezznk, hogy a TCP-sszekttets alap s megbzhat bjtfolyamcsatornt biztost, amelyen az adatok a kt vgrendszer kztt ramlanak. Az UDP-sszekttets nlkli protokoll, s fggetlen adatcso magokat kld az egyik vgrendszerrl a msikra, mindenfle kzbestsi garancia nlkl. Ebben az alfejezetben egy egyszer, TCP fltt fut kliensalkalmazst, mg a kvetkez alfejezetben egy egyszer, UDP fltt fut kliensalkalmazst fejlesztnk. Ezeket az egyszer TCP- s UDP-alkalmazsokat java nyelven mutatjuk be. rhattuk volna a kdot C vagy C++ nyelven is, de a Java mellett dntttnk, leginkbb azrt, mert az alkalmazsokat egyszerbben s tisztbban lehet megrni Javban. Java hasznlatval kevesebb kdsorra van szksg, s a kezd programoz szmra minden sor klnsebb nehzsg nlkl megmagyarzhat. Nem kell azonban megijedni, ha nem ismeri a Java nyelvet. Ha brmely ms nyelven rendelkezik programozsi tapasztalattal, kvetni tudja a kdot. Azok szmra, akik rdekldnek a C nyelv kliens/szerver programozs irnt, rendelkezsre ll nhny j kziknyv [Donahoo 2001; Stevens 1997; Frost 1994; Kurose 1996].
2.7.1. TCP-szoketprogramozs
Idzzk fel a 2.1. szakaszbl, hogy a klnbz gpeken fut folyamatok gy kommuniklnak egymssal, hogy zeneteket kldenek a szoketeken keresztl. Azt mondtuk, hogy az egyes folyamatok hzaknak felelnek meg, a folyamatok szoketjei pedig ajtknak. Amint a 2.28. brn lthat, a szkt az ajt az alkalmazsi folyamat s a TCP kztt. A szkt alkalmazsi rteg felli oldala teljes mrtkben az alkalmazsfejleszt irnytsa alatt ll, a szlltsi rteg oldaln viszont a fejlesztnek kevs beleszlsi lehetsge van. (Az alkal mazsfejleszt a legtbb esetben nhny TCP-paramtert llthat be, mint pldul a maxi mlis puffermretet vagy a legnagyobb szegmensmretet.)
Hoszt vagy szerver
2.6. P2P-ALKAI.MAZS0K
Az opercis rendszer irnytsa alatt
i
TCP-pufferekkel, vltozkkal Internet
169
i TCP-pufferekkel, vltozkkal Az opercis rendszer irnytsa alatt
170
2.6. P2P-ALKAI.MAZS0K
171
Nzzk meg most kzelebbrl a kliens- s szerverprogramok klcsnhatst. A kliens feladata felvenni a kapcsolatot a szerverrel. Annak rdekben, hogy a szerver reaglni tudjon a kliens kapcsolatfelvteli kezdemnyezsre, a szervernek kszenltben kell llnia. Elszr, a szerver nem lehet alv llapotban vagyis mr futnia kell folyamatknt, mieltt a kliens kapcsolatot prbl ltesteni. Msodszor, a szerverprogramnak kell, hogy legyen egy ajtaja - pontosabban egy szoketje amely kpes tetszleges hoszton fut folyamat l lal kezdemnyezell kapcsolat fogadsra. A hz-ajt analgit hasznlva a folyamatokra s szoketekre, egyes esetekben azt fogjuk mondani a kliens kezdeti kapcsolatfelvtelre, hogy kopogtat az ajtn. Ha a szerverfolyamat mr fut, a kliens TCP-sszekottetst kezdemnyezhet a szerverrel. Ezt a kliensprogram hajtja vgre egy szkt ltrehozsval. Amikor a kliens ltrehozza szoketjt, megadja a szerverfolyamai cmt, nevezetesen a szerverhoszt IP-cmt s a szerverfolyamat portszmt. Miutn a kliensprogramban ltrejtt a szkt, a kliensoldali TCP hromutas kz fogst kezdemnyez, s TCPsszekttetsl ltest a szerverrel. A hromutas kzfogs, amely a szlltsi rtegben trtnik, a szerver- s a kliensprogram szmra teljesen tltsz. A hromutas kzfogs sorn a kliensfolyamat kopogtat az t fogad szerverfolyamat ajtajn. Amikor a szerver meghallja a kopogst, ltrehoz egy j ajtt - pontosabban egy szoketet - amelyet kln ennek a kliensnek tart fenn. Lenti pldnkban az ajt egy Ser- verSocket objektum, amelynek neve welcomeSocket. Amikor egy kliens kopogtat ezen az ajtn, a program meghvja a welcomeSocket accept( ) metdust, amely ltrehoz egy j ajtt a kliens szmra. A kzfogsi fzis vgre ltrejn egy TCP-sszekt- tetsa kliens szoketje s a szerver j szoketje kztt. A tovbbiakban a szerver j, dediklt szoketjre mint a szerver sszekttets-szoketjre (connection socket) fogunk hivatkozni. Az alkalmazs szemszgbl nzve a TCP-sszekttets egy kzvetlen virtulis csvezetk a kliens szoketje s a szerver sszekttets-szoketje kztt. A kliensfolyamat tetszleges bjtokat kldhet a sajt szoketjbe, a TCP garantlja, hogy a szerverfolyamat megkapja ezeket a bjtokat (az sszekttets-szoketen keresztl) az elkldsk sorrendjben. A TCP teht megbzhat bjtfolyamszolgltatst (reliable byte-stream service) biztost a kliens- s a szerverfolyamat kztt. Tovbb, ahogy az emberek is ki- s bemehetnek ugyanazon az ajtn, a klicnsfolyamat sem csak kld bjtokat a szoketjbe, hanem fogad is a szoketjbl bjtokat. Ezt szemllteti a 2.29. bra. Mivel a szktek kzponti szerepet jtszanak a kliens-szerver alkalmazsokban, a kliens-szerver alkalmazsfejlesztst szoketprogramozsnak is nevezik. Mieltt bemutatnnk kliens-szerver alkalmazsi pldnkat, hasznos, ha meghatrozzuk az (adat)folyam fogalmt. Egy (adat)foiyam (stream) egy folyamatba beraml vagy onnan kiraml karakterek sorozata. Minden adatfolyam a folyamat szempontjbl vagy bemen (adat)folyam (input stream) vagy kimen (adat)folyam (output stream). Ha a folyam bemen folyam, akkor a folyamat valamely bemeneti forrsra csatlakozik, pldul a szabvnyos bemenetre (a billentyzetre) vagy egy szoketre, amelybe az internetrl ramlanak az adatok. Ha a folyam kimen folyam, akkor a folyamat valamely kimeneti forrsra csatlakozik, pldul a szabvnyos kimenetre (a kpernyre) vagy egy szoketre, amely adalokat ramoltat az internet fel.
172
2.6. P2P-ALKAI.MAZS0K 173 szerverhoszton. Ahogy korbban trgyaltuk, a szerverfolyamat arra vrakozik, hogy egy kliensfolyamat felvegye vele a kapcsolatot. A plda alkalmazsban a kliensprogram vgrehajtsakor ltrejn egy folyamat a
174 Szerver
(a hseid futtatja) Szkt ltrehozsa port x portszmmal, a bejv krshez: welcomeSocket = ServerSocket()
i
welcomeSocket.a ccept( )
' hostid/
connectionSocket =
TCP-sszekttets ltrehozsa
1
Krs kldse
clientSocket
tionSocke t-rl
hasznlatval
1
Vlasz rsa
connectionSocket-re
Vlasz olvassa
clientSocket-rl
connectionSocket
bezrsa
clientSocket
bezrsa
alkalmazs
kliensen; ez a folyamat azonnal fel is veszi a kapcsolatot a szerverrel, s TCPsszekttetst ltest vele. Ezutn a kliens felhasznlja hasznlatba veheti az alkalmazst: elkldhet egy sort, amelyre a sor nagybets vltozatt kapja vlaszul.
TCPClient.java
Az alkalmazs kliensoldali kdja a kvetkez:
2.6. P2P-AI.KALMAZSOK
175
import java.io.*; import java.net.*; elss TCPClient { public static void main(String argv[]) throws Exception
{
} }
String sentenc e; String modifiedSentenc e; BufferedReader inFromser = new BufferedReader( new InputStreamReader(System.in)); Socket clientSocket = new Socket("hostname", 6789); DataOutputStream outToSrver = nv/ DataOutputStream( clientSocket.getOutputStream( )); BufferedReader inFromServer = new BufferedReader (new InputStreamReader( clientSocket.getlnputstrea m())); sentenc e = inFromUser.readLine(); outToServer.writeBytes(sentence + '\n'); modifiedSentence = inFromServer. readLine( ); System.out.println("FROM SERVER: " + modifiedSentence ); clientSocket.close();
A TCPClient program hrom folyamot s egy szokctet hoz ltre, ahogy a 2.31. bra mutatja. Ennek a szoketnek a neve clientSocket. Az inFromser folyam a program bemen folyama, s a szabvnyos bemenetre (vagyis a billentyzetre) csatlakozik. Amikor a felhasznl karaktereket gpel be a billentyzeten, a karakterek az inFromUser folyamba kerlnek. Az inFromServer a program egy msik bemen folyama, amely a szoketre csatlakozik. A hlzatrl rkez karakterek az inFromServer folyamba kerlnek. Vgezetl, az outToServer folyam a program kimen folyama, s szintn a szoketre csatlakozik. A kliens ltal a hlzat fel kldtt karakterek az outToServer folyamon ramlanak t. Vizsgljuk meg most a kd klnbz sorait.
Ki O <0 r> o M U c: H
Kperny
folya m
Folyamat
rte g fel
rte g fell
ramlanak Amit eddig lttunk, az mind szabvnyos kd, amelyet a legtbb Java kd elejn lthatunk. A harmadik sor egy osztlydefincis blokk kezdete. A elss kulcssz vezeti be a TCPClient nev osztly osztlydefincijt. Egy osztly vltozkat s metdusokat tartalmaz. Az osztly vltozit s metdusait kapcsos zrjelek veszik krl, amelyek az osztlydefincis blokk kezdett s vgt jellik. A TCPClient osztlynak nincsenek osztlyvltozi, s pontosan egy metdusa van, a main() metdus. A metdusok hasonlak a C jelleg nyelvekbl ismert fggvnyekhez vagy eljrsokhoz; a Java nyelv main ( ) metdusa hasonl a C s C++ nyelvek main( ) fggvnyhez. Amikor a Java-rtelmez vgrehajt egy alkalmazst (az alkalmazs vezrl osztlynak meghvsval), az osztly main( ) metdust hvja meg elszr. A main( ) metdus ezutn meghvja az sszes tbbi, az alkalmazs futshoz szksges metdust. Az itt lert Java nyelv szoketprogramozsi bevezetben a public, static, void, main s throws Exceptions figyelmen kvl hagyhatk (habr a kdba bele kell ket rni). String sentence; String modifiedSentence ; A fenti kt sor String tpus objektumokat deklarl. A sentence objektum az a karakterlnc, amelyet a felhasznl begpel s elkld a szervernek. A modifiedSentence
objektum az a karakterlnc, amelyet a szerver llt el s elkld a felhasznl szabvnyos kimenetre. BufferedReader inFromUser = new BufferedReader( new InputStreamReader(System.in));
A fenti sor hozza ltre a Buf feredReader tpus inFromUser folyamobjektumot. A bemen folyamot a System.in objektummal inicializlja, amely a szabvnyos bemenetre csatlakoztatja a folyamot. Az utasts lehetv teszi, hogy a kliens szveget olvasson be a billentyzetrl. Socket clientSocket = nv; Socket("hostname", 6789); A fenti sor hozza ltre a Socket tpus clientSocket objektumot. Ezenkvl TCPsszekttetst kezdemnyez a kliens s a szerver kztt. A "hostname" karak terlnc helyre a szerver hosztnevt (pldul "apple.poly.edu") kell behelyettesteni. A TCP-sszekttets tnyleges kezdemnyezse eltt a kliens DNS-keresst vgez a hoszt- nvre, hogy megszerezze a hoszt IP-cmt. A 6789-es szm a portszm. Lehet ms portszmot is hasznlni, de meg kell bizonyosodni arrl, hogy az alkalmazs szerveroldaln ugyanazt a portszmot hasznljuk. Ahogy korbban trgyaltuk, a hoszt IP-cme az alkalmazs portszmval egytt azonostja a szerverfolyamatot. DataOutputStream outToServer = new DataOutputStream(clientSocket.getOutputStream()); BufferedReader inFromServer = new BufferedReader(new inputStreamReader( clientSocket.getInputStream())); A lenti kt sor folyamobjektumokat hoz ltre, amelyek a szkt hez csatlakoznak. Az outToServer folyam a folyamat kimenett tovbbtja a szoketre. Az inFromServer folyam a folyamat bemenetre kapcsolja a szoketet (lsd 2.31. bra). sentence = inFromUser.readLine(); Ez a sor a sentence karakterlncba msol egy, a felhasznl ltal begpelt sort. A sentence karakterlnc addig folytatja a karakterek beolvasst, amg a felhasznl le nem zrja a sort egy kocsivissza karakterrel. A sor a szabvnyos bemenetrl az inFromUser folyamon keresztl a sentence karakterlncba kerl. outToServer.writeBytes(sentence + ' \ n ' ) ; A fenti sor elkldi a kocsivissza karakterrel meghosszabbtott sentence karakterlncot az outToServer folyamba. A meghosszabbtott sor tramlik a kliens szoketjn, s a TCP-csvezetkbe kerl. A kliens ezutn a szervertl rkez karakterekre vrakozik. modifiedSentence = inFromServer. readLine ();
Amikor karakterek rkeznek a szervertl, tramlanak az inFromServer folyamon s vgl a modifiedSentence karakterlncba kerlnek. A modifiedSentence ka rakterlncban addig gylnek a karakterek, amg a sor vget nem r egy kocsivissza karakterrel.
clientSocket. close();
Ez az utols sor lezrja a szoketet, ennlfogva lezrja a kliens s a szerver kztti TCP-sz- szekttetst is. Hatsra a kliensoldali TCP egy TCP-zenetet kld a szerveroldali TCP-nek (lsd 3.5. alfcjezet).
TCPServer.java
Nzzk meg most a szerverprogramot.
import java.io.*; import java.net.*; elss TCPServer { public static void main(String argv[]) throws Exception
{
String clientSent ence; String capitalizedSentenc e; ServerSocket welcomeSocket = new ServerSocket ( 6 7 8 9 ) ; while(true) { Socket connectionSocket = welcomeSocket. accept(); BufferedReader inFromClient = new BufferedReader (new inputStreamReader( connectio nSocket.getInput Stream())); DataOutputStream outToClient = new DataOutputStream( connectionSocket.getOutputStream()); clientSentence = inFromClient.readLine(); capitalizedSent ence = clientSentence.toUpperCase() + '\n'; outToClient.writeBytes(capitalizedSentenc e);
} } A TCPServer sokban hasonlt a TCPClient-re. Vessnk most egy pillantst a TCPServer.java soraira. Azokat a sorokat, amelyek ugyanazok vagy hasonlk, mint a TCPClient kdjban, nem magyarzzuk. A TCPServer els olyan sora, amely alapveten klnbzik a TCPClient-bcn ltot -
taktl: ServerSocket welcomeSocket = new ServerSocket(6789); Ez a sor hozza ltre a welcomeSocket objektumot, amely ServerSocket tpus. A welcomeSocket egyfajta ajtknt szolgl, amely arra vr, hogy egy kliens kopogtasson rajta. A welcomeSocket a 6789 szm porton figyel. A kvetkez sor: Socket connectionSocket = welcomeSocket.accept(); Ez a sor egy j, connectionSocket nev szoketet hoz ltre, amikor egy kliens ko pogtat a welcomeSocket szkinl. Ennek a szoketnek a portszma szintn 6789. (A 3. fejezetben megmagyarzzuk, mirt ugyanaz a kt szkt portszma.) A TCP ezutn kzvetlen virtulis csvezetket hoz ltre a kliens clientSocket szoketje s a szerver connectionSocket szoketje kztt. A kliens s a szerver ezl kveten kldhet egymsnak bjtokat a csvezetken keresztl, s minden elkldtt bjt a megfelel sorrendben megrkezik a msik oldalon. Miutn a connectionSocket-et ltrehozta, a szerver a welcomeSocket-et hasznlva tovbb figyelheti az alkalmazs ms klienseitl jv krseket. (A program itt lert verzija valjban nem vrakozik tovbbi kapcsolatfclvteli krsekre, de szlak hasznlatval megoldhat, hogy gy tegyen.) A program ezutn ltrehoz nhny folyamobjektumot, hasonlan a clientSocket-nl ltrehozott folyam objektumokhoz. Vizsgljuk most meg a kvetkez sort: capitalizedSentence = clientSentence.tolIpperCase() + ' \ n ' ; Ez a parancs az alkalmazs szve. Fogja a kliens ltal kldtt sort, nagybetss alaktja, s hozzad egy kocsivissza karaktert. A parancs a toUpperCase() metdust hasznlja. A program sszes tbbi parancsa mellkes; azok a klienssel trtn kommunikcira szolglnak. A programpr tesztelshez telepteni kell a TCPClient .java fjlt egy hosztra, s le kell fordtani, a TCPServer.java fjllal pedig meg kell tenni ugyanezt egy msik hosz- ton. Gyzdjn meg rla, hogy a TCPClient .java kdjban a megfelel szerver hoszt- nv szerepel. Ezutn futtassa a lefordtott TCPServer.elss szerverprogramot a szerveren. Ezltal ltrejn egy folyamat a szerveren, amely vrakozik addig, amg valamelyik kliens sszekttetst nem kezdemnyez vele. Ezutn indtsa el a lefordtott TCPClient. elss nev kliensprogramot a kliensen. Ezltal ltrejn egy folyamat a kliensen, amely aztn TCP-sszekttetst ltest a kliens- s a szerverfolyamat kztt. Vgl az alkalmazs kiprblshoz rjon be egy mondatot kocsivissza karakterrel a vgn. Sajt kliens-szerver alkalmazsnak fejlesztst kezdheti gy, hogy egyes helyeken mdostja a fenti programokat. Ilyen mdosts lehet pldul, hogy a szerver a betk nagybetv alaktsa helyett megszmolja, hny alkalommal fordul el a megadott sorban az s karakter, s ezt a szmot adja vissza.
2.8. UDP-szoketprogramozs
Az elz szakaszbl kiderlt, hogy amikor kt folyamat TCP fltt kommunikl, az olyan, mintha a kt folyamatot egy csvezetk ktn ssze. Ez a csvezetk addig
ltezik, amg valamelyik folyamat be nem zrja. Ha az egyik folyamat nhny bjtot szeretne kldeni a msik folyamatnak, egyszeren a csvezetkbe helyezi a bjtokat. A kld folyamatnak nem kell clcmet csatolnia a bjtokhoz, mivel a csvezetk logikailag kapcsoldik a clfolyamathoz. Ezen tlmenen a csvezetk megbzhat bjtfolyam csatornt biztost - a fogad folyamathoz pontosan abban a sorrendben rkeznek meg a bjtok, amelyben a kl d elhelyezte ket a csvezetkben. Az UDP szintn kt (vagy tbb) klnbz hoszton fut folyamat kzti kommunikcit tesz lehetv. Az UDP azonban szmos alapvet dologban klnbzik a TCP-tl. Az els klnbsg, hogy az UDP sszekttets nlkli szolgltats - nincs kezdeti kzfogsi fzis, amelynek sorn csvezetk jnne ltre a kt folyamat kztt. Mivel az UDP-nl nincs csvezetk, amikor egy folyamat egy bjtkteget akar kldeni egy msik folyamatnak, a kld folyamat a bjlkteghez kell, hogy csatolja a clfolyamat cmt. A kld folyamat nak ezt minden elkldend bjtktegnl meg kell tennie. Hasonlatknt tekintsnk egy 20 fbl ll csoportot, akik t taxit rendelnek ugyanarra a clcmre. Amikor az emberek be szllnak a taxikba, minden taxisofrnek kln el kell mondaniuk, hov szeretnnek eljutni. Az UDP teht egy taxiszolgltatsra hasonlt. A rendeltetsi cm a clhoszt IP-cmbl s a clfolyamat portszmbl ll pros. Az informcis bjtok ktegt a cl IP-cmmel s portszmmal egytt csomagnak nevezzk. Az UDP nem megbzhat zenet alap szolglati modellt valst meg, amely megprblja a lehet legtbbet megtenni annak rdekben, hogy a bjtkteg eljusson rendeltetsi helyre. Az UDP azrt zenet alap, mert a ktegek olyan bjtok, amelyeket a kld oldal egy egyszer mvelettel kld el, a foga d oldalon bjtktegknt rkeznek meg; ez ellenttes a TCP bjtfolyam szemantikjval. Az UDP legjobbra trekv szolgltats, mert nem garantlja, hogy a bjtkteg egyltaln megrkezik. Az UDP-szolgltats teht (nhny szempontbl) lesen klnbzik a TCP megbzhat bjtfolyam szolglati modelljtl. Miutn ltrehozott egy csomagot, a kld folyamat egy szoketen keresztl a hlzatra juttatja a csomagot. Polytatva a taxis analgit, a kld szkt msik oldaln egy taxi vrakozik a csomagra. A taxi azonban nem vllal garancit arra, hogy a csomagot egyltaln eljuttatja a rendeltetsi helyre - elfordulhat, hogy a taxi lerobban, vagy valamilyen elre nem ltott problma merl fel. Ms szavakkal, az UDP nem megbzhat szlltsi szolgltatst nyjt kommunikl folyamatainak - nem szavatolja, hogy a csomagok megrkeznek rendeltetsi helykre. Ebben az alfejezetben ismt a szoketprogramozst mutatjuk be, az elz alfejezetben megismert alkalmazst jrarva, de ezttal UDP fltt. Ltni fogjuk, hogy az UDP-t hasznl kd sok fontos ponton klnbzik a TCP-t hasznl kdtl. Rszletesebben, ebben az esetben (1) nincs kezdeti kzfogs a kt folyamat kztt, ennlfogva nincs szksg fogad szoketre, (2) nem csatlakoznak folyamok a szoketekre, (3) a kld hoszt a csomagok ltrehozsakor minden egyes elkldtt bjtkteghez hozzcsatolja a cl IP-cmet s a port szmot, s (4) a fogad folyamatnak ki kell bontania minden berkezett csomagot, hogy hozzfrhessen az informcit hordoz bjtokhoz. Idzzk fel jra egyszer alkalmaz sunk mkdst:
Szerver
(a hseid hoszton fut) Szkt ltrehozsa a port=x porton a bejv krshez: serverSocket = DatagramSocket()
Kliens
l
Krs beolvassa serverSocket-rl
i
Vlasz rsa serverSocket-re a kliens hoszt cmnek s portszmnak meghatrozsa
clientSocket-en keresztl
clientSocket lezrsa
UDPClient.java
Az alkalmazs kliensoldali rsznek kdja a kvetkez:
} }
BufferedReader inFromUser = new BufferedReader(new InputStreamReader System.in)); DatagramSocket clientSocket = new DatagramSocket(); InetAddress IPAddress = InetAddress.getByName("hostname"); byte[ ] sendData = nv; byte[1024]; byte[] receiveData = new byte[1024]; String sentence = inFromUser.readLine(); sendData = sentence.getBytes(); DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, IPAddress, 9876); clientSocket. send ( sendPacket) ,* DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length); clientSocket.rciv(receivePacket); String modifiedSentence = new String(receivePacket.getData()); System.out.printIn("FROM SERVER:" + modifiedSentence) ; clientSocket.close();
Az UDPClient .java program egy folyamot s egy szoketet hoz ltre, amint a 2.33. brn lthat. A szkt neve clientSocket, tpusa DatagramSocket. Megjegyezzk, hogy az UDP msfle szoketet hasznl a kliensnl, mint a TCP. Rszletesebben, UDP-vel a kliensnk DatagramSocket tpus szoketet hasznl, mg TPC-vel Socket tpust. Az inFromUser folyam a program bemen folyama, s a szabvnyos bemenetre, vagyis a bil- lentyzetre csatlakozik. A program TCP-s vltozatban volt egy ezzel egyenrtk folyam. Amikor a felhasznl karaktereket gpel be a billentyzeten, a karakterek az inFrom User folyamba kerlnek. Az TCP-vel ellenttben azonban most nem csatlakoznak (be men vagy kimen) folyamok a szoketre. Ahelyett, hogy bjtokai kldene a Socket ob jektumhoz csatlakoztatott folyamba, az UDP klnll csomagokat kld a DatagramSocket objektumon keresztl. Vegyk most szemgyre a kd azon sorait, amelyek jelents mrtkben klnbznek a TCPClient.java-ban ltottaktl. DatagramSocket clientSocket = new DatagramSocket(); Ez a sor hozza lire a DatagramSocket tpus clientSocket objektumot. A TCPClient. java programmal ellenttben ez a sor nem kezdemnyez TCP-sszekttetst. Rszletesebben, a kliens hoszt nem veszi fel a kapcsolatot a szerverrel a sor vgrehajtsakor. A DatagramSocket () konstruktr ezrt nem kapja meg paramterknt a szerver hoszt nevt vagy portszmt. Az aj t-csvezetk hasonlattal lve a fenti sor vgre-
Kperny
u < D O
Bemen folyam -
1 3 R O
V l u c
Folyamat
G u <TJ 0) > ri V u
u <u o *3 Qi -o c d> (0
UDPadatcsomag
UDPadatcsomag
UDP-szoket
2.33. bra. Az UDPClient-nek egy folyama van; a szkt csomagokat fogad a folyamattl s
csomagokat tovbbt a folyamat fel hajtsakor keletkezik egy ajt a kliens folyamatnl, de nem jn ltre csvezetk a kt folyamat kztt. InetAddress IPAddress = InetAddress.getByName("hostname"); Ahhoz, hogy bjtokat kldjnk egy cl folyamatnak, szksgnk van a folyamat cmre. A clhoszt IP-cime rsze ennek a cmnek. A fenti sor egy DNS-keresst vgez, amely a hosztnevet (amelyet ebben a pldban a kdban helyezett el a fejleszt) IP-cmre fordtja le. A kliens TCP feletti megvalstsa is meghvta a DNSt, habr inkbb implicit, mint explicit mdon. A getByName () metdus argumentumknt megkapja a szerver hoszt- nevt, s ennek a szervernek az IPcmt adja vissza. A cmet az InetAdddress tpus IPAddress objektumban trolja el. byte[] sendData = new byte[1024]; byte[]
receiveData = new byte[1024]; A sendData s receiveData bjttmbk fogjk trolni a kliens ltal kldtt, illetve fogadott adatokat.
188
dData = sentence.getBytes();
nti sor lnyegben egy tpuskonverzit hajt vgre. Fogja a sentence karakterlncot, s tnevezi sendData-ra, amely egy bjtokbl ll tmb. DatagramPacket sendPacket = new DatagramPacket( sendData, sendData.length, IPAddress, 9876);
a sor lltja ssze a sendPacket csomagot, amelyet a kliens a s/oketjn keresztl el fog kldeni a hlzatra. A csomag magban foglalja a sendData magban tallhat adatokat, ezen adatok mrett, a szerver IP-cmt s az alkalmazs portszmt (amelyet a 9876 rtkre lltottunk be). Jegyezzk meg, y a sendPacket tpusa DatagramPacket.
ntSocket.send(sendPacket);
nti sorban a clientSocket objektum send() metdusa fogja az imnt sszelltott csomagot s kikldi a hlzatra a clientSocket-en keresztl. Mg egyszer gjegyezzk, hogy az UDP a TCP-tl teljesen klnbz mdon kldi el a karakterek sorozatt. A TCP egyszeren elhelyezte a karakterlncot egy folyamba, ely logikailag kzvetlenl ssze volt kapcsolva a szerverrel; az UDP ltrehoz egy csomagot, amelybe a szerver cmt is beilleszti. A csomag elkldse utn a ns a szervertl rkez csomagra vrakozik.
nti sorban a kliens, mikzben a szervertl rkez csomagra vrakozik, egy helyrzt hoz ltre a csomag (egy receivePacket nev, DatagramPacket tpus ektum) szmra.
ntSocket.rciv(receivePacket);
iens vrakoz llapotban van, amg egy csomag nem rkezik hozz; amikor csomag rkezik hozz, a csomagot a receivePacket objektumba helyezi.
enti sor kicsomagolja az adatokat a receivePacket-bl, s tpuskonverzit hajt vg re, amelynek sorn a bjtokbl ll tmbt a modifiedSentence akterlncc alaktja t.
a sor, amely TCPClient kdjban is szerepel, kirja a modifiedSentence karakter lncot a kliens kpernyjre. ntSocket.close();
utols sor lezrja a szoketet. Mivel az UDP sszektets nlkli, a kliens nem kld szl ltsi rtegbeli zenetet a szervernek a fenti sor hatsra (ellenttben CPClient-tel).
Server.java
ort java.io.*; import java.net.*; elss UDPServer { public static void main(String args[]) throws Exception { DatagramSocket serverSocket = new DatagramSocket(9876); byte[] receiveData = nv; byte[1024]; byte[1 sendData = new byte[1024]; while(true)
2.8. UP-SZOKiTPROGRAMO/.S
189
{ DatagramPacket receivePacket = new DatagramPacket(receiveData, receiveData.length); serverSocket.rciv(receivePacket); String sentence = new String( receivePacket.getData()); InetAddress IPAddress = receivePacket.getAddress(); int port = receivePacket.getPort(); String capitalizedSentence = sentence.topperCase(); sendData = capitalizedSentence.getBytes(); DatagramPacket sendPacket = new DatagramPacket(sendData, sendData.length, IPAddress, port); serverSocket.send(sendPacket); > }
z UDPServer.java program egy szoketet hoz ltre, ahogy a 2.34. bra mutatja. En nek a szoketnek a neve serverSocket. Ez egy DatagramSocket tpus ektum, hasonlan az alkalmazs kliensoldali szoketjhez. Ismt megjegyezzk, hogy a szoketre nem csatlakoznak folyamok. essnk most egy pillantst azokra a kdsorokra, amelyek eltrnek a TCPServer. java soraitl.
190
enti sor hozza ltre a DatagramSocket tpus serverSocket objektumot a 9876-os porton. Minden kldtt s fogadott adat ezen a szoketen fog esztlhaladni. Mivel az UDP sszekttets nlkli, nem szksges egy j szoketet ltrehozni, s tovbb vrakozni j sszekttets-ltestsi krsekre, gy azt a TCPServer. java programban tettk. Ha tbb kliens kommunikl az alkalmazssal, mindannyian ezen az egyetlen ajtn, a serverSocket-en keresztl dik csomagjaikat.
nti hrom sor kibontja a klienstl rkezett csomagot. A hrom sor kzl az els kiveszi az adatokat a csomagbl s a sentence nev karakterlncba (String s objektumba) helyezi azokat; az UDPClient-ben is tallhat egy hasonl sor. A msodik sor az IP-cmet veszi ki a csomagbl, a harmadik sor pedig a kliens szmt, amelyet a kliens vlaszt, s amely klnbzik a szerver portszmtl (9876).(A kliensek portszmait rsz letesebben a kvetkez fejezetben yaljuk.) A szervernek szksge van a kliens cmnek (IP-cm s portszm) ismeretre, hogy vissza tudja kldeni a kliensnek a nagybetss alaktott veget. zzel befejeztk az UDP-programpr elemzst. Az alkalmazs kiprblshoz tele ptse egy hosztra az UDPClient.java programot s fordtsa le, majd tegye g ugyanezt az UDPServer.java programmal egy msik hoszton. (Gyzdjn meg rla, hogy
2.34. bra. Az UDPServer-nl nincsenek folyamok; a szkt csomagokat fogad a folyamattl, s csomagokat tovbbt a folyamat fel
2.8. UDP-SZKETPROGRAMOZS
191
a megfelel hosztnevet rta be az UDPClient.java kdjba.) Ezutn indtsa el mind kt programot. Most - a TCP-nl tapasztaltakkal ellenttben - megteheti, hogy elbb a kliensoldalt indtja el, aztn a szerveroldalt. Ennek oka, hogy a kliensfolyamat nem ksrel meg sszekttetst ltesteni a szerverrel a kliensprogram indtsakor. Miutn elindtotta a kliens- s a szerverprogramot, prblja ki az alkalmazst gy, hogy begpel egy sort a kliensen.
2.9. sszefoglals
Ebben a fejezetben megismertk a hlzati alkalmazsok elvi s megvalstsi szempontjait. Megismerkedtnk a mindentt jelen lv kliens-szerver architektrval, amelyet szmos internetes alkalmazs hasznl, s lttuk alkalmazst a HTTP, FTP, SMTP, POP3 s DNS protokollokban. Rszletesebben tanulmnyoztuk ezeket a fontos alkalmazsi szint protokollokat, s a hozzjuk tartoz megfelel alkalmazsokat (a webet, a fjltvitelt, az e-mailt s a DNS-t). Megismerkedtnk az egyre nagyobb mrtkben elterjed P2P-archi- tektrval s azzal, hogyan hasznljk sok alkalmazsban. Megvizsgltuk, hogyan lehet a szkt API segtsgvel hlzati alkalmazsokat kszteni. Megtanultuk a szoketek hasz nlatt sszekttets alap (TCP) s sszekttets nlkli vgpontok kzti szlltsi szolgltatsoknl. Ezzel megtettk az els lpst lefel a rteges hlzati architektrban! A knyv legelejn, az 1.1. alfejezetben egy elgg homlyos, sovny defincit adtunk arra, hogy mi is a protokoll: szablyok halmaza, amely meghatrozza kt vagy tbb kommunikl egysg kztt cserlt zenetek formtumt s sorrendjt, valamint egy zenet kldsekor s/vagy fogadsakor vagy ms esemny bekvetkezsekor vgrehajtott mveleteket. A fejezet anyaga, klnsen a HTTP, FTP, SMTP, POP3 s DNS protokollok rszletes trgyalsa szmotteven hozzjrult a fenti definci pontostshoz. A protokoll a hlzatok tmakrnek kzponti
192
fogalma; az alkalmazsi protokollok tanulmnyozsa megteremtette szmunkra annak lehetsgt, hogy egy intuitvebb kpet alkothassunk arrl, mik is voltakppen a protokollok. A 2.1. alfejezetben bemutattuk a TCP s UDP ltal az ket meghv alkalmazsok rszre nyjtott szolglati modelleket. Mg kzelebbrl szemgyre vehettk ezeket a szolglati modelleket, amikor egyszer, TCP s UDP felett fut alkalmazsokat rtunk a 2.7. s 2.8. alfejezetben. Arrl azonban kevs sz esett, hogyan biztostja a TCP s az UDP ezeket a szolgltatsokat. Tudjuk pldul, hogy a TCP megbzhat adatszolgltatst biztost, semmit nem mondtunk mg azonban arrl, hogyan teszi ezt. A kvetkez fejezetben gondosan megvizs gljuk nemcsak a mit, hanem a hogyan s mirt krdst is a szlltsi protokolloknl. Az internetes alkalmazsok struktrjrl s az alkalmazsi rtegbeli protokollkrl szl tudssal felvrtezve most mr kszen llunk arra, hogy egy tovbbi lpst tegynk lefel a protokollveremben, s megvizsgljuk a szlltsi rteget a 3. fejezetben.
Krdsek
2.1. a 1 fejezet K.l. Soroljon fel t nem egyedi internetes alkalmazst, s az ltaluk hasznlt alkalmazsi rtegbeli protokollokat. K.2. Mi a klnbsg a hlzati architektra s az alkalmazsok architektrja kzlt? K.3. Kgy kommunikcis munkamenetet tekintve kt folyamat kztt, melyik folyamat a kliens s melyik a szerver? K.4. Egyetrt-e az albbi, P2P fjlmegoszt alkalmazsokra vonatkoz lltssal: Egy kommunikcis munkamenet sorn nem ltezik a kliens- s szerveroldal fogalma? Mirt? K.5. Milyen informcik alapjn azonost egy adott hoszton fut folyamat egy msik hoszton fut folyamatot? K.6. Tegyk fel, hogy egy tvoli kliensrl a lehet leggyorsabban szeretne vgrehajtani egy tranzakcit egy szerverrel. UDP-t vagy TCP-t hasznlna? Mirt? K.7. A 2.1. tblzatra visszatekintve lthatjuk, hogy egyetlen, az brn szerepl alkalmazs sem ignyel egyszerre adatveszts-elkerlst s -idztsi. Ki tudna tallni olyan alkalmazst, amely nagy mrtkben idztsrzkeny s nem enged meg adatvesztsi? K.8. Soroljon fel ngy nagy osztlyt, amelyekbe egy szlltsi protokoll ltal nyjtott szolgltatsok besorolhatk. Minden osztlynl jellje, hogy a TCP vagy az UDP (vagy mindkett) nyjt-e ilyen szolgltatst. K.9. Idzze fel, hogy a TCP kibvthet SSL-lel, hogy folyamatok kztti biztonsgi szolgltatsokat nyjtson, a titkostsi is belertve. Az SSL a szlltsi rtegben vagy az alkalmazsi rtegben mkdik? Ha az alkalmazsfejleszt SSL-lel szeretn kibvteni a TCP-t, mit kell tennie? 2.2-2.5. alfejezet K.10. Mit rtnk kzfogs protokoll alatt? K.ll. Miri futnak a HTTP, FTP, SMTP s POP3 protokollok TCP felett, s nem UDP helyett?
2.8. UP-SZOKiTPROGRAMO/.S
193
K.12. Vegynk egy e-kereskedelmi webhelyet, amely nyilvntartst akar vezetni arrl, hogy az egyes vsrlk mit vsroltak. rja le, hogyan valsthat meg ez stikkel. K.13. rja le, hogyan cskkentheti a webes gyorsttrazs egy lekrdezett objektum letltsnek ksleltetst. Minden krt objektumnl cskken a ksleltets a webes gyors- trazs hasznlatval, vagy csak nhny objektumnl? Mirt? K.14. Lpjen be egy webszerverre Telnet segtsgvel, s kldjn egy tbb sorbl ll krszenetet. Helyezze el a krszenetben az If-modified-since: fejlcsori, hogy egy 304 Nt Modified llapotsorral elltott vlaszzenetet kapjon. K.15. Mirt mondjk, hogy az FTP svon kvl kldi a vezrl zeneteket? K.16. legyk fel, hogy Alice, aki rendelkezik egy webes e-mail postafikkal (pldul Hotmaillel vagy gmaillel), zenetet kld Bobnak, aki a sajl levelezszervern trolt leveleihez POP2 hasznlatval fr hozz. rja le, hogyan jut el az zenet Alice hosztjrl Bob hosztjra. Gyzdjn meg rla, hogy felsorolta az alkalmazsi protokollok teljes listjt, amelyek ahhoz szksgesek, hogy az zenet eljusson az egyik hoszt rl a msikra. K.17. Nyomtassa ki egy nemrg rkezett e-mail zenet fejlct. Hny Received: fejlcsor szerepel benne? Elemezze az zenet minden egyes fejlcsort. K.18. F.gy felhasznl szemszgbl nzve mi a klnbsg a POP3 letlt s trl, illetve letlt s megtart zemmdja kztt? K.19. Lehetsges, hogy egy szervezet webszervere s levelezszervere pontosan ugyanazt az lnevet (pldul foo.com) hasznlja hosztnvknt? Milyen tpus lesz az az erforrs-bejegyzs, amely a levelezszerver hosztnevt tartalmazza?
2. 6. al fejezet
K.20. Tegyk fel, hogy Alice BitTorrent-et hasznlva 30 msodperces idkznknt kld Bobnak tredkeket. Vajon Bob mindenkppen viszonozni fogja a szvessget, s ugyanezzel a gyakorisggal fog tredkeket kldeni Alicenak? Mirt vagy mirt nem? K.21. Tekintsnk egy j trsat, Alice-t, aki gy csatlakozik a BitTorrenthez, hogy egyetlen tredkkel sem rendelkezik. Ha nincs egyetlen tredke sem, nem kerlhet ms trsak ngy leggyorsabb feltltje kz, mivel nincs mit feltltenie? Hogyan tesz szert Alice mgis egy tredkre? K.22. Mit neveznk tlapol hlzatnak? Vannak tvlasztk egy ilyen hlzatban? Mik az tlapol hlzat szlei? I Iogyan hozzk ltre s hogyan tartjk karban a lekrdezs-elraszts tlapol hlzatt? K.23. Mirt mondjuk, hogy a kzpontostott indexet hasznl azonnali zenetkld alkalmazsok architektrja a kliens-szerver s a P2P-architektra hibridje? K.24. Napjainkban a legtbb azonnali zenetkld rendszer kzpontostott indexet alkalmaz a felhasznlk keressre, legyk fel, hogy egy ilyen alkalmazs ehelyett tlapol hlzatot szeretne hasznlni lekrdezs-elrasztssal. rja le, hogyan valsthat ez meg, s elemezze ennek a megvalstsnak az elnyeit s a htrnyait. K.25. A Skype kt fontos funkci megvalstsra hasznl P2P-technikkat. Melyek ezek? K.26. Soroljon fel legalbb ngy klnbz alkalmazst, amelyeknl termszetesen
194
2.7-2.8. alfejezet K.27. A 2.8 alfejezetben bemutatott UDP-szervernek csak egy szoketre volt szksge, mg a 2.7. alfejezetben bemutatott TCP-szerver kt szoketet hasznlt. Mirt? Ha a TCP-szervernek n prhuzamos kapcsolatot kell kiszolglnia, mindegyikei klnbz klienssel, hny szoketre lenne szksge a TCP-szervernek? K.28. A 2.7. alfejezetben lert TCP feletti kliens-szerver alkalmazsnl mirt kell a szerverprogramot a kliensprogram eltt elindtani? A 2.8. alfejezetben lert UDP feletti kliens-szerver alkalmazs esetn mirt lehet a kliensprogramot elbb elindtani, mint a szerverprogramot?
2.8. UDP-SZKETPROGRAMOZS
195
Feladatok _______________________________________________________________________________ FI. Igaz vagy hamis? (a) Egy felhasznl lekr egy weboldalt, amely szvegbl s kt kpbl ll. A kliens az oldal letltse sorn egy krszenetet kld s hrom vlaszzenetet kap. (b) Ugyanazon az lland sszekttetsen keresztl kt klnbz weboldal kldhet (pldul a wv/w.mit.edu/research.html s a www.mit.edu/ students/html). (c) Ha a bngsz s a forrsszerver kztt idleges sszekttets van, lehetsges, hogy egy TCP-szegmens kt klnbz HTTP-zenetet hordoz. (d) A HTTP-vlaszzenetben a Date: fejlc azt az idpontot jelzi, amikor a vlaszzenetben elkldtt objektumot utoljra mdostottk. F2. Olvassa cl az FTP-rl szl 959-es RFC-t. Sorolja fel az sszes kliensparancsot, amelyet ez az RFC tmogat. F3. Tegyk fel, hogy egy HTTP-kliens szeretne letlteni egy adott URL-lel azonosthat weboldalt. A HTTP-szerver IP-cme kezdetben nem ismert. Milyen szlltsi s alkalmazsi rtegbeli protokollokra van szksg ebben az esetben a HTTP mellett? F4. Tekintsk az albbi ASCII-karakterlncot, amelyet Wireshark segtsgvel rgztettnk, mikzben a bngsz egy HTTP GET zenetet kldtt (vagyis ez egy HTTP GET zenet tnyleges tartalma). <cr> s <//> a kocsivissza, illetve a soremels karaktereket jelli (vagyis az albbi szvegben dlt betvel rt <cr> a HTTP-fejlc adott pontjn szerepl kocsivissza karaktert jelenti). Vlaszoljon az albbi krdsekre, s jellje a HTTP GET zenet szvegben, hogy hol tallta meg a vlaszt GET /cs453/index.html HTTP/1. l<cr><lf>Host: gai a.cs.umass.edu<cr><If>User-Agent: Mozilla/5.0 (
Windows;U; Windows NT 5.1; en-US; rv:1.7.2) Gecko/ 20040804 Netscape/7.2 (ax) <cr><lf> Accept:ext/xml, application/xml,application/xhtml+xml,text/html; q=0.9,text/plain;q=0.8,image/png,*/*;q=0. 5<cr><lf> Accept-Language: en-us,en;q=0.5<cr><!f>AcceptEncoding: zip,defiate<cr><If>Accept-Charset: ISO8859-1,utf-8;q=0.7,*;q=0.7<cr><2f>Keep-Alive: 300<cr><If>Connection:keep-alive<cr><lf><cr><lf>
(a) Mi a bngsz ltal lekrt dokumentum URL-je? (b) Mi a bngsz ltal futtatott HTTP verzija? (c) lland vagy idleges kapcsolatot kr a bngsz? (d) Mi az IP-cme annak a hosztnak, amelyen a bngsz fut? F5. Az albbi szveg azt a vlaszt tartalmazza, amelyet a szerver az elz krdsben szerepl HTTP GET' krsre kldtt. Vlaszoljon az albbi krdsekre, s jellje az zenet szvegben, hogy hol tallta meg a vlaszt. HTTP/1.1 200 OK<cr><2f>Date: Tue, 07 Mar 2006 12:39:45GMT<cr><lf>Server: Apache/2.0.52 (Fedora) <cr><lf>LastModified: Sat, 10 Dec2005 18:27:46GMT <cr><lf>ETag: "526c3-f22-
196
F6.
F7.
F8.
F9.
2.8. UP-SZOKiTPROGRAMO/.S
197
kifejezst, ahol A az az tlagos id, amely egy objektumnak a hozzfrsi kapcsolaton trtn tkldshez szksges, p pedig az az tlagos gyakorisg, amellyel az objektumok a hozzfrsi kapcsolatra rkeznek. (a) Szmtsa ki a teljes tlagos vlaszidt. (b) legyk most fel, hogy az intzmny helyi hlzatn egy gyorsttr mkdik. Tegyk fel, hogy LAN = 0,4. Szmolja ki a teljes vlaszidt. F10. Vegynk egy rvid, 10 mteres kbelt, amelyen keresztl a kld 150 bit/s sebessggel tud adatokat tkldeni. Tegyk fel, hogy az adatokat tartalmaz csomagok hossza 100 000 bit, a csak vezrl utastsokat tartalmaz csomagok hossza pedig 200 bit. Tegyk fel, hogy N prhuzamos sszekttets van, s mindegyik a kapcsolat svszlessgnek l/N rszt kapja meg. Vegyk most a HTTP protokollt, s tegyk fel, hogy minden letlttt objektum mrete 100 kbit, valamint hogy az elsknt letlttt objektum 10 tovbbi objektumra hivatkozik ugyanattl a kld tl. Lenne rtelme ebben az esetben, ha a prhuzamos letltseket prhuzamos id leges HTTP-pldnyokkal oldannk meg? Tekintsk most az lland HTTPsz- szekttetst? Szmt-e jelents teljestmnynvekedsre az idleges kapcsolathoz kpest? Igazolja s magyarzza vlaszt. FII. rjon egy egyszer TCP-szerverprogramot, amely sorokat vr bemenetknt egy klienstl, s kirja ezeket a sorokat a szerver szabvnyos kimenetre. (Ezt a korbban ltott TCPServer.java program mdostsval teheti meg.) Fordtsa le s indtsa cl a programot. Egy msik tetszleges gpen, amely rendelkezik webbng- szvel, lltsa be a bngsz proxyszervernek azt a hosztot, amelyen a szerver- program fut; lltsa be a portszmot is megfelelen. A bngsz ezutn a CET- zeneteket elkldi a szervernek, s a szerver megjelenti ezeket az zeneteket a szabvnyos kimenetn. A fenti sszellts segtsgvel hatrozza meg, hogy a bngszje feltteles GETzeneteket hasznl-e a helyben gyorsttrazott objektumok letltshez. FI2. Mi a klnbsg a MAIL FROM: (SMTP) s magban az e-mail zenetben tallhat From: kztt? FI3. Olvassa el a POP3-rl szl RFC-t [RFC 1939]. Mi a feladata az UIDL POP3-parancsnak? F14. Tegyk fel, hogy POP3-mal fr hozz e-mailjeihez. (a) Tegyk fel, hogy POP3-klienst gy lltotta be, hogy letlts s trls mdban mkdjn. Egsztse ki a kvetkez prbeszdet (K: kliens, S: szerver): K: list Ss 1 498 S: 2 912 S: . K: retr 1 S: bla bla ... S: ...........................bla S: . 9 (b) Tegyk tel, hogy POP-levelezklienst letlts s megtarts mdra lltotta. Egsztse ki a kvetkez prbeszdet: K: list S: 1 498 S: 2
198
(c) Tegyk fel, hogy POP-klienst letlts s megtarts mdba lltotta. A (b) pontbeli lersi hasznlva, tegyk fel, hogy letlt kt zenetet s kilp a POP-bl, majd t perccel ksbb jbl szeretne hozzfrni POPpal a levelezshez, hogy letltse az j leveleket, legyk fel, hogy ez alatt az t perc alatt nem rkezett jabb levl. rja le ennek a msodik POP-munkamenetnek a forgatknyvt. FI5. (a) Mi az a whois adatbzis? (b) Prblja meg megtudni kt DNS*szerver nevt tbb klnbz internetes whois adatbzis hasznlatval. rja le, mely whois adatbzisokat hasznlta. (c) Kldjn DNS-lekrdezseket helyi hosztjrl az nslookup programmal hrom DNS-szervernek: helyi DNS-szervernek s a (b) pontban tallt kt DNS-szer- vernek. Prbljon meg A, NS s MX tpus jelentseket lekrdezni, sszegezze eredmnyeit. (d) Keressen nslookup-pa\ egy olyan webszervert, amelynek tbb IP-cme van. Nzze meg, hogy az n intzmnynek (iskolnak vagy cgnek) webszervere tbb IP-cmmel rendelkezik-e. (c) Az ARIN whois adatbzis hasznlatval llaptsa meg az egyeteme ltal hasznlt lP-cmtartomnyt. (f) rja le, hogyan hasznlhatja egy tmad a whois adatbzisokat s az nslookup eszkzt arra, hogy feldertsen egy intzmnyt, mieltt tmadst indt. (g) Elemezze, mirt szksges, hogy a whois adatbzisok nyilvnosan hozzfrhetek legyenek. F16. Egy ljlcserlsben N trs vesz rszt, a fjl mrete F = 10 Gbit. A szerver feltltsi sebessge us = 20 Mb/s, s minden trs letltsi sebessge dj = 1 Mb/s, feltltsi sebessge pedig u. Ksztsen egy tblzatot N = 10, 100, s 1000, s u = 200 kb/s, 600 kb/s s 1 Mb/s rtkekkel, amely a minimlis sztosztsi idt mulatja N s u sszes kombincijra mind kliens-szerver, mind P2P-fjlcserls esetn. F17. Egy kliens-szerver architektrj fjlcserlsben iV trs vesz rszt, a fjl mrete F bit. Felttelezznk egy folyadkmodellt, ahol a szerver prhuzamosan tbb trsnak tud adatot tovbbtani, minden trsnak klnbz sebessggel, amg az sz- szegzett sebessg el nem ri us-1. (a) Tegyk fel, hogy Us/N<dm{n. rjon le egy olyan fjlcserlsi smt, ahol a sztosztsi id NF/us. (b) 'legyk fel, hogy us/N>dmm. rjon le egy olyan fjlcserlsi smt, ahol a szt- osztsi id Fldmj n . (c) Vezesse le, hogy a minimlis sztosztsi id ltalnossgban a max{NF/u 5> Fldm n } kifejezssel adhat meg.
2.8. UP-SZOKiTPROGRAMO/.S
199
F18. Egy P2P architektrj fjlcserl rendszerben N trs vesz rszt, a fjl mrete F bit. Felttelezznk egy folyadkmodellt. Az egyszersg kedvrt tegyk fel, hogy dm n nagyon nagy, vagyis a trsak letltsi svszlessge soha nem lehet szk kereszt- metszet. (a) Tegyk fel, hogy u$ <(us + u\ + ... + UN)/N. rjon le egy fjlcserlsi smt, ahol a sztosztsi id Flus. (b) Tegyk fel, hogy us >{us + u\ + ... + uN)/N. rjon le egy fjlcserlsi smt, ahol a sztosztsi id NF/{us + U \ + ... + uN). (c) Vezesse le, hogy a minimlis sztosztsi id ltalnossgban a max{F/w 5i NF/{us + u\ + ... + uN )} kifejezssel adhat meg. F19. Tekintsnk egy N aktv trsbl ll tlapol hlzatot, ahol brmely kt trs kztt fennll egy TCP-sszekttets. Tegyk fel tovbb, hogy a TCPsszekttetseken sszesen M tvlaszt tallhat. Hny csompont s hny l van a megfelel tlapol hlzatban? F20. A lekrdezs-elrasztst hasznl tlapol hlzat bemutatsnl a 2.6. alfejezet- ben rszletesen lertuk, hogyan csatlakozik egy j trs az tlapol hlzathoz. Ebben a feladatban azt szeretnnk kiderteni, mi trtnik, amikor egy trs kilp az tlapol hlzatbl. Tegyk fel, hogy minden rszt vev trs minden idpillanatban legalbb ngy klnbz trssal tart fenn TCPsszekttetst. Tegyk fel, hogy az X trs, amelynek t TCP-sszekttetse van ms trsakkal, ki akar lpni. (a) Elszr tekintsk a kmletes tvozs esett, vagyis, amikor az X trs explicit mdon bezrja a sajt alkalmazst, ezltal kmletesen lezrja t TCP-ssze- kttetst. Milyen mveleteket kell vgrehajtania az t korbban csatlakozott trsnak? (b) Tegyk fel most, hogy az X trs hirtelen leszakad az internetrl anlkl, hogy rtestette volna t szomszdjt arrl, hogy lezrja a TCPsszekttetseket. Mi trtnik ekkor? F21. Ebben a feladatban a lekrdezs-tallat zenetek fordtott irny tvlasztst dertjk fel lekrdezs-elrasztsban. Tegyk fel, hogy Alice egy lekrdezs-zenetet kld. legyk fel tovbb, hogy Bob megkapja a lekrdezs-zeneteket (amelyek esetleg thaladtak nhny kzbees trson), s rendelkezik egy fjllal, amely illeszkedik a lekrdezsre. (a) Idzzk fel, hogy ha egy trsnak van egy illeszked fjlja, akkor illeszkedstallat zenetet kld a megfelel lekrdezs-zenet tvonaln ellenkez irnyban. Egy msik lehetsges elrendezsben Bob ltesthetne kzvetlen TCP-sz- szekttetst Alice-szal, s elkldhetn a lekrdezstallat zenetet ezen az sszekttetsen keresztl. Mik az elnyei s htrnyai ennek az alternatv megvalstsnak? (b) Amikor Alice egy lekrdezs-zenetet kszt, az zenet MessagelD mezjben egy egyedi azonostt helyez el. Amikor Bob illeszkedst tall, lekrdezs-tallat zenetet llt ssze ugyanazzal a MessagelD-vel, mint a lekrdezs-zenet, rja le, hogyan hasznlhatjk a trsak a MessagelD mezt s a helyi tvlaszt-tblkat a fordtott irny tvlaszts megvalstsra. (c) Egy alternatv megkzelts, amely nem hasznl zenetazonostkat, a kvetkez. Amikor egy lekrdezs-zenet megrkezik egy trshoz, a trs, mieltt tovbbklden az zenetet, hozzteszi a sajt IP-cmt a
200
E22.
F23.
F24.
F25.
Gondolkodtat krdsek
Gl. Mit gondol, mirt ilyen npszerek a P2P fjlmegoszt alkalmazsok? Azrt, mert zenemvek s videk ingyenes (esetenknt illeglis) cserjre adnak lehetsget? Azrt, mert rengeteg szerverk hatkonyan szolglja ki az ignyt a hatalmas meny- nyisg adatra? Esetleg mindkett?
1.8. SSZEFOGLALS
201
G2. Olvassa el a kvetkez cikket: Biddle, England, Peinado, Willman: Ihe Darknet and the Future of Content Distribution [Biddle 2003]. Egyetrt a szerzk sszes lltsval? Mirt igen vagy mirt nem? G3. Az elektronikus kereskedelmi oldalak s ms webhelyek gyakran rendelkeznek httradatbzissal. Hogyan kommuniklnak a HTTP-szerverek ezekkel a httradatbzisokkal? G4. HogyanllthatjabesajtbngszjbenaheIyigyorsttrazst? Milyengyorsttra- zsi lehetsgek vannak? G5. Be tudja lltani bngszjt gy, hogy tbb prhuzamos sszekttetst kezeljen egyszerre egy webhellyel? Mik a nagyszm prhuzamos TCPsszekttets elnyei s htrnyai? G6. Lttuk, hogy az internetes TCP-szoketek bjtfolyamknt kezelik az adatokat, az UDP szoketek viszont felismerik a csomagok hatrait. Nevezze meg egy elnyt s egy htrnyt annak, ha bjt alap API-t hasznlunk olyan API helyett, amely pontosan felismeri s megrzi az alkalmazsban definilt zenethatrokat. G7. Mi az Apache-webszerver? Mennyibe kerl? Milyen funkcii vannak jelenleg? G8. Tegyk fel, hogy a webes szabvnyostsi szervezetek az elnevezsi konvenci megvltoztatsa mellett dntenek gy, hogy minden objektum egy egyedi nvvel rendelkezik, s ezzel a helyfggetlen nvvel lehet r hivatkozni (n. egysges erforrsnv - Uniform Resource Name, URN). Vzoljon fel nhny krdst, amelyet ez a vltoztats felvet. G9. Vannak olyan cgek jelenleg, amelyek az interneten keresztl szolgltatnak l televzis adst? Ha igen, ezek a cgek kliens-szerver vagy P2Parchitektrt hasznlnak? G10. Vannak olyan cgek jelenleg, amelyek hlzati videoletlt (video-ondemand) szolgltatst nyjtanak az interneten P2P-architektra hasznlatval? Gll. Hogyan nyjt a Skype PC-tl telefonig tovbbtott hangtviteli szolgltatst sok klnbz clorszgban? G12. Soroljon fel nhnyat napjaink legnpszerbb BitTorrent kliensei kzl.
202
2. A/.
ALKALMAZSI RTEG
Vlaszol
Bram Cohen
Bram Cohen a BitTorrent, Inc. vezrigazgatja s trs alaptja, egyben a BitTorrent P2P fjlcserl protokoll megalkotja. A CodeCon trsalaptja s a Codeville trsszerzje. A BitTorrent ltrehozsa eltt a MojoNationnl dolgozott. A MojoNation lehetv tette a felhasznlk szmra, hogy bizalmas fjlokat titkostott darabokra trdeljenek s ezeket a tredkeket kicserljk ms, a MojoNation szoftvert futtat szmtgpekkel. Ez az elgondols inspirlta Bram Cohent a BitTorrent kifejlesztsre. Korbban a dot-com vilg meghatroz szemlyisge volt, tbb internetes cgnl dolgozott az 1990-es vek kzepnvgn. New York Cityben ntt fel, a Stuyvesant High Schoolban rettsgizett s a buffali egyetemre jrt. Honnan jtt a BitTorrent kifejlesztsnek tlete? Elg sok munkatapasztalatom volt a hlzatok (TCP s UDP feletti protokollok) tern, s akkortjt a rajzs (swarming) megvalstsa tnt a legrdekesebb megoldatlan problmnak, ezrt dntttem gy, hogy ezzel foglalkozom. A BitTorrent mgtt magtl rtetd szmts llt: rengeteg feltltsi kapacits llt rendelkezsre. Sokan msok is megfigyeltk ezt. Azonban megoldani az ebbl ered logisztikai feladatokat, mr egy egszen ms problma. Mik voltak a BitTorrent fejlesztsnek legnagyobb kihvst jelent vonatkozsai? A legalapvetbb a protokoll ltalnos konstrukcijnak s formjnak helyes megvlasztsa volt. A gyakorlatba tltetni mr csak egyszer programozs krdse volt. A legnehezebb egy megbzhat rendszer megvalstsa volt. Nem megbzhat trsak kezelsnl minden szlssges esetre meg kell hatrozni valamilyen viselkeds. A BitTorrent elkszlte utn mg sokig tartott, amg az ltalnos konstrukci letisztult. Hogyan fedeztk fel kezdetben az emberek a BitTorrentet? Az emberek ltalban mint letltk fedeztk fel a BitTorrentet. Bizonyos tartalmak
9
FELADATOK
203
csak a BitTorrenten keresztl voltek elrhetk. A kiadk azrt dntttek a BitTorrent hasznlata mellett, mert nem volt elegend svszlessgk, hogy brmi ms mdon terjesszk a tartalmat. Milyen megjegyzst fzne a RIAA s az MPAA jogi lpseihez azok ellen, akik a BitTor- renthez hasonl fjlmegoszt programokkal cserlgetnek filmeket s zenemveket? Pereltk mr be amiatt, hogy olyan technikt fejleszt, amely szerzi jogvdelem alatt ll anyagokai oszt meg illeglisan? A szerzi jogok megsrtse illeglis. A technika nem az. Soha nem pereltek be, mert soha nem kvettem el szerzi jogsrtst. Ha a technika ltrehozsa rdekel, ki kell tartanod a technika mellett.
204
2. A/.
ALKALMAZSI RTEG
Mit gondol: jhetnek a kzeljvben ms fjlcserl rendszerek, amelyek felvltjk a BitTorrentet? Elfordulhat pldul, hogy a Microsoft egy kvetkez kiads opercis rendszerbe begyazza a sajt egyedi fjl megosztsi protokolljt? A jvben megjelenhetnek ms protokollok, de az adatok rajzsnak elve, amelyet a Bit- Torrent protokoll tisztzott le, valsznleg nem fog vltozni. Elmozdulsra akkor a szmthatunk, ha alapvet vltozs trtnik az internet tfog struktrjban amiatt, hogy a sebessg nvekedsvel radiklisan megvltozik nhny alapvet konstans arnya. De a kvetkez nhny vre vonatkoz elrejelzsek csak megerstik a jelenlegi modellt. ltalnossgban vve merre lart n szerint az internet? Mit gondol, melyek a legfontosabb technikai kihvsok? Lt-e j men" alkalmazsokat a horizonton? Az internet s ltalban a szmtgpek egyre inkbb jelen vannak az let minden terletn. Az iPod nano gy nz ki, mint egy partikellk, hiszen elkerlhetetlenl az is lesz, amint az rak lejjebb mennek. Jelenleg legnagyobb technikai kihvs az, hogy a csatlakoztatott eszkzkrl sszegyjtsnk annyi adatot, amennyit csak lehetsges, s elrhetv tegyk ezeket az adatokat valamilyen knnyen hozzfrhet s hasznlhat formban. Pldul majdnem minden hordozhat eszkz tartalmazhat egy GPS-t, s minden hasznlati trgyunk (pldul ruhink, jtkaink stb.) rtesthetnek minket arrl, hogy hol vannak, ha ppen elvesztettk valamelyiket, valamint egy teljes kr naplt vezethetnek magukrl, amely tartalmazza a szksges karbantartsokat, ksbbi vrhat szolgltat sokat stb. Informcikat gyjthetnk pldul egy termk teljes letciklusrl is. Az em berek kztti egyttmkds sokkal knnyebb vlhat, tl azon az egyszer, de drmai fejldsen, hogy az emberek knnyen megtallhatjk egymst, ha mindkettjknl van mobiltelefon. pp most alaptott egy cget. Hogy fog ez a cg szert tenni bevtelre a BitTorrent ltal? Segteni szeretnnk a kiadknak, hogy tartalmaikat kzztegyk a hlzaton, s ezzel pnzt keressenek, valamint adatcserl szolgltatsokat szeretnnk nyjtani ms cgeknek. Milyen tancsokat adna a hlzatok s az internet terletvel most ismerked hallgatknak? Talljanak valamit, ami mg nem felkapott, de amirl gy gondoljk, hogy izgalmas dolgokat lehet vele vghezvinni, s ami szemlyesen nagyon rdekli ket, aztn kezdjenek el dolgozni rajta. A val vilgbeli tapasztalatok tantjk meg az embernek, hogy mi a fontos, s errl mindig nagyon torz kpet kapunk, ha csak az egyetemen bellrl szemlljk.
3. FEJEZET
FELADATOK
205
A szlltsi rteg
Az alkalmazsi s a hlzati rteg kztt tallhat szlltsi rteg kzponti eleme a rtegzett hlzati architektrnak. E rtegnek jutott az a kiemelkeden fontos feladat, hogy kommunikcis szolgltatsokat nyjtson kzvetlenl a klnbz gpeken fut alkalmazsi folyamatok szmra. Pedaggiai okokbl a fejezet sorn felvltva trgyaljuk a szlltsi rtegbeli elveket s azt, hogy ezeket az elveket a ltez protokollok hogyan valstjk meg - ahogy mindig, most is nagy hangslyt kapnak az internet protokolljai, klnsen a kt szlltsi rtegbeli protokoll, a TCP s az UDP. Elszr a szlltsi s a hlzati rteg kapcsolatt trgyaljuk. Ez j alapokat teremt a szlltsi rteg els kritikus feladatnak vizsglathoz, ami a hlzati rteg ltal nyjtott kt vgrendszer kztti kzbestsi szolgltats kiterjesztse kt vgrendszeren fut alkalmazsi rtegbeli folyamat kzti kzbestsi szolgltatss. Ezt a feladatot az internet sszekttets nlkli szlltsi protokolljnak, az UDP-nek a bemutatsakor fogjuk szemlltetni. Ezt kveten ismt alapelvekke foglalkozunk, s a szmtgpes hlzatok egyik legalapvetbb problmjt vizsgljuk meg, azt, hogyan kpes kt eszkz megbzhatan kommuniklni egy olyan kzegben, amelyben az adat elveszhet, illetve mdosulhat is. Egyre komplikltabb (s realisztikus!) forgatknyvek sorozatn t tbb olyan mdszert gyjtnk ssze, amelyeket a szlltsi protokollok e problma megoldsra hasznlnak. Ezt k veten megmutatjuk, hogyan valstja meg ezeket az elveket az internet sszekttets-ala p szlltsi protokollja, a TCP. Ezutn egy msodik alapvet fontossg hlzati problmra trnk t - a szlltsi rtegbeli elemek tviteli sebessgnek szablyozsra, amely segt a hlzati torldsok elkerlsben vagy az azok utni helyrelltsban. ttekintjk a torlds okait s kvetkezmnyeit, valamint a gyakran hasznlt torldskezelsi mdszereket. A torldskezels mgtt rejl krdsek alapos megrtst kveten a TCP torldskezelsi mdszert fogjuk tanulmnyozni.
206
tellenes pontjain is lehetnek, szmos tvlasztval s a legklnbzbb tpus adatkapcsolatokkal sszektve. Az alkalmazsi folyamatok a szlltsi rteg ltal nyjtott logikai kommunikcit arra hasznljk, hogy egymsnak zeneteket kldjenek anlkl, hogy az ezeket az zeneteket szllt fizikai infrastruktra rszleteivel foglalkozniuk kellene. A 3.1. bra a logikai kommunikci fogalmt illusztrlja. Ahogyan az a 3.1. brn is lthat, a szlltsi rteg protokolljait csak a vgrendszerekben implementljk, a hlzati tvlasztkban nem. A kld oldalon a szlltsi rteg a kld alkalmazsi folyamattl kapott zeneteket szlltsi rtegbeli csomagokk, vagy ahogy az internetes terminolgia nevezi szegmensekk (segments), alaktja. Ez gy trtnik, hogy (ha szksges) az alkalmazsi zeneteket kisebb darabokra trdeli, s minden tredkhez hozzad egy szlltsi fejrszt, gy hozva ltre a szlltsi rtegbeli szegmenst. A szlltsi rteg ezt kveten tovbbadja a szegmens! a kld vgrendszer hlzati rtegnek, ahol a szegmenst egy hlzati rtegbeli csomagba (datagram, adatcsomag) foglaljk, s elkldik a clllomsnak. Fontos megjegyezni, hogy a hlzati tvlasztk csak a datagram hlzati rtegbeli mezi szerint jrnak el, azaz nem vizsgljk a datagramban tallhat szlltsi szegmens mezit. A vev oldalon a hlzati rteg kicsomagolja a datagrambl a szlltsi szegmenst, s azt a szlltsi rtegnek tovbbtja. Ezt kveten a szlltsi rteg feldolgozza a kapott szegmenst, s a vev alkalmazs szmra elrhetv teszi a szegmensben tall hat adatot. A hlzati alkalmazsok szmra tbb szlltsi rtegbeli protokoll llhat rendelkezsre. Pldul az internetnek kt protokollja van - a TCP s az UDP. Mindkt protokoll klnbz szlltsi rtegbeli szolgltatshalmazt nyjt a meghv alkalmazs szmra.
FELADATOK
207
hz kztt - a posta hztl hzig szlltja a leveleket, nem pedig szemlytl szemlyig. Msrszt viszont Ann s Bili az unokatestvrek kztti logikai kommunikcit biztostjk - Ann s Bili sszegyjti a leveleket a testvreitl, s sztosztja a leveleket a testvreinek. Vegyk szre, hogy az unokatestvrek szemszgbl Ann s Bili nyjtjk a postai szolgltatst
GONDOLKODTAT KRDSK
Mobiltelefon hlzat
208
Hlzati
Otthoni hlzat
Fizikai
Adatkapcsolati Fizikai
209
Alkalmazsi
Szlltsi
Hlzati Adatkapcsolati Fizikai
3.1. bra. A szlltsi rteg inkbb logikai, mintsem fizikai kommunikcit biztost az alkalmazsi folyamatok kztt
GONDOLKODTAT KRDSK
210
annak ellenre, hogy a vgpontok kztti kzbestsi folyamatnak k csak egy rszt kpezik (a vgrendszer rszt). Ez a hztartsbeli plda j analgiul szolgl a szlltsi rteg s a hlzati rteg kztti viszony szemlltetshez: alkalmazsi zenetek = levelek a bortkban folyamatok = unokatestvrek hosztok (ms nven vgrendszerek) = hzak szlltsi rtegbeli protokoll = Ann s Bili hlzati rtegbeli protokoll = a posta (a postsokat is belertve). Tovbb vizsglva ezt az analgit, szre kell venni, hogy Ann s Bili a munkjukat a sajt otthonukon bell vgzik; nem vesznek rszt pldul a levelek sztvlogatsban egy kzbens levlelosztban sem, vagy a levelek szlltsban egyik levleloszttl a msikig. Hasonlan, a szlltsi rtegbeli protokollok a vgrendszerekben lteznek. Egy vgrendszeren bell a szlltsi protokoll tovbbtja az zeneteket az alkalmazsi folyamatoktl a hlzat szlig (vagyis a hlzati rtegig) s vissza, de semmi beleszlsa sincs abba, hogy a hlzat magjban hogyan tovbbtdnak az zenetek. Valjban, ahogy az a 3.1. brn lthat, a kzbens tvlasztk nem vizsgljk, s fel sem ismerik az informcit, amit a szlltsi rteg esetleg az alkalmazsi zenetekhez hozzadott. A csaldregnynket folytatva, ttelezzk fel, hogy amikor Ann s Bili elutaznak, egy msik unokatestvrpr - mondjuk Susan s Henry - helyettesti ket, s vgzi a hztartson bell a levelek sszegyjtst s sztosztst. A kt csald szmra sajnlatos mdon Susan s Henry nem pontosan ugyangy gyjti ssze s osztja szt a leveleket, mint Ann s Bili. Fiatalabbak lvn, Susan s Henry ritkbban gyjtik ssze s osztjk szt a leveleket, s alkalmanknt el is vesztenek leveleket (amiket nha a csald kutyja sztrg). gy az unokatestvrpr Susan s Henry nem ugyanazt a szolgltatshalmazt nyjtja (azaz nem ugyanazt a szolglati modellt), mint Ann s Bili. Analg mdon egy szmtgp-hlzat tbb szlltsi protokollt bocsthat rendelkezsre, mindegyik protokollal klnbz szol glati modellt nyjtva az alkalmazsoknak. Az Ann s Bili ltal nyjthat lehetsges szolgltatsokat egyrtelmen korltozzk azok a lehetsges szolgltatsok, amelyeket a posta nyjt. Pldul, ha a posta nem szab egy maximlis korltot arra, hogy mennyi idt vehet ignybe egy levl kzbestse a kt hz kztt (pldul hrom nap), akkor Ann s Bili sehogyan sem tud egy maximlis ksleltetst garantlni a levelek kzbestsre brmely kt unokatestvr kztt. Hasonl mdon a szlltsi protokoll ltal nyjthat szolgltatsokat gyakran korltozza az alatta tallhat hlzati rtegbeli protokoll szolglati modellje. Ha a hlzati protokoll nem kpes a hosztok kztt kldtt szlltsi rtegbeli szegmensek szmra ksleltets- vagy svsz lessg-garancikat nyjtani, akkor a szlltsi rtegbeli protokoll sem kpes a folyamatok kztt kldtt alkalmazsi zenetek szmra ksleltets- vagy svszlessg-garancikat biztostani. Mindazonltal vannak bizonyos szolgltatsok, amelyeket a szlltsi protokoll kpes nyjtani akkor is, ha az alatta lv hlzati protokoll nem nyjt megfelel szolgltatsokat a hlzati rtegben. Pldul, ahogyan ezt ebben a fejezetben ltni fogjuk, a szlltsi protokoll mg akkor is kpes egy alkalmazs szmra megbzhat adattvitelt biztostani, ha az alsbb rtegbeli hlzati protokoll megbzhatatlan, azaz mg akkor is, ha a hlzati pro tokoll csomagokat veszt, mdost vagy duplikl. Egy msik plda (amit a 8. fejezetben fo gunk megvizsglni,
GONDOLKODTAT KRDSK biztonsgot trgyaljuk), hogy a szlltsi protokoll titkostst 211 amikor a hlzati alkalmazhat azrt, hogy garantlni tudja azt, hogy az alkalmazsi zeneteket a behatolk ne olvashassk el mg akkor sem, ha a hlzati rteg nem biztostja a szlltsi rtegbeli szegmensek titkossgt.
szolgltats
folyamatok
kztti
adattvitel
s 212 a
- tartozik az UDP ltal biztostott szolgltatsok kz! gy, ahogy az IP sem, az UDP sem megbzhat szolgltats - nem garantlja, hogy az egyik folyamat ltal kldtt adatok srtetlenl megrkeznek (vagy egyltaln megrkeznek!) a clfolyamathoz. Az UDP-rl rszletesen a 3.3. alfejezetben lesz sz. Ezzel szemben a TCP szmos tovbbi szolgltatst nyjt az alkalmazsoknak. Mindenekeltt megbzhat adatszlltst (reliable data transfer) biztost. A TCP forgalomszablyozs, sorszmok, nyugtk s idztk (ezek olyan megoldsok, amelyeket rszletesen ebben a fejezetben vizsglunk majd meg) hasznlatval biztostja, hogy az adatok a kld folyamattl a vev folyamatig hibtlanul s sorrendhelyesen jussanak el. Teht a TCP az IP-vgrendszerek kztti nem megbzhat szolgltatst talaktja folyamatok kztti megbzhat adatszlltsi szolgltatss. A TCP torldskezelsrl (congestion control) is gondoskodik. A torldskezels nem is egy, a hv alkalmazsnak nyjtott szolgltats, hanem inkbb az internet egsznek nyjtott szolgltats, egy szolgltats a j cl rde kben. Pontatlanul fogalmazva a TCP torldskezelse megakadlyozza, hogy brmely TCP-sszekttets tlzott mennyisg forgalommal rassza el a kommunikl hosztok kztti adatkapcsolatokat s tvlasztkat. A TCP arra trekszik, hogy minden tlterhelt adatkapcsolaton thalad sszekttets szmra egyenl rszt biztostson a adatkapcsolat svszlessgbl. Ez annak a sebessgnek a szablyozsval oldhat meg, amivel a TCP-sszekttetsek kld oldalai adatot kldhetnek a hlzatba. Az UDP-forgalom viszont nem szablyozott. Egy UDP-szlltst hasznl alkalmazs tetszleges sebessggel adhat s olyan hosszan, amilyen hosszan csak szeretne. Egy protokoll, amely megbzhat adattvitelrl s torldskezelsrl gondoskodik, szksgszeren sszetett. Szmos szakaszra lesz szksg ahhoz, hogy a megbzhat adattvitel s a torldskezels alapelveit lefedjk, s tovbbi szakaszokra, hogy magt a TCP protokollt is ismertessk. Ezeket a tmkat a 3.43.8. alfejezetekben vizsgljuk. A fejezetben az alapelveket s a TCP-t felvltva ismertetjk. Pldul, elszr a megbzhat adattvitelt trgyaljuk egy ltalnos krnyezetben, majd ezt kveten fejtjk ki, hogy kimondottan a TCP hogyan biztost megbzhat adatszlltst. Hasonlkpp, elszr ltalnossgban a torldskezelst ismertetjk, s ez utn trgyaljuk azt, hogy a TCP hogyan valstja meg a torldskezelst. De mieltt megismerkednnk ezekkel a nagyszer dolgokkal, elszr nzzk meg a szlltsi rtegbeli nyalbolst s nyalbbontst.
kapja meg a szegmenseket. A szlltsi rteg felelssge a szegmensekben tallhat adatok kzbestse a Koszton fut megfelel alkalmazsi folyamat szmra. Nzznk meg egy pldt, 'legyk fl, hogy n egy szmtgp eltt l, s weboldalakat tlt le, mikzben egy FTP-munka- menetet (FTP-session) s kt Telnet-munkamenetet is futtat. Ennek kvetkeztben ngy
hlzati alkalmazsi folyamata fut: kt Telnet-folyamat, egy FTP- s egy HTTPfolyamat. Amikor a szmtgpnek a szlltsi rtege adatot kap az alatta lev hlzati rtegtl, a ngy folyamat kzl tovbbtania kell az egyiknek a kapott adatokat. Vizsgljuk meg, hogy ez hogyan trtnik. Elszr emlkezznk r a 2.7. s 2.8. alfejezetekbl, hogy a folyamatnak (mint egy hlzati alkalmazs rsznek) egy vagy tbb szoketje (csatlakozja) lehet ezek ajtk, amelyeken keresztl az adat a hlzatbl a folyamathoz jut, s amelyeken keresztl az adat a folyamattl a hlzatba jut. Teht, ahogy azt a 3.2. bra mutatja, a cllloms szlltsi rtege nem kzvetlenl a folyamatoknak kzbesti az adatokat, hanem egy kztes csatlakoznak. Mivel egy clllomsnak egy tetszleges adott pillanatban tbb mint egy szoketje lehet, minden szoketnek egyedi azonostja van. Ahogyan azt rvidesen bemutatjuk, az azono st formtuma attl fgg, hogy UDP- vagy TCP-szoketrl van-e sz.
Alkalmazsi Szlltsi Hlzati Adatkapcsolat Fizikai
Jells:
Folyamat I' i Szkt
3.2. bra. Szlltsi rtegbeli nyalbols s nyalbbonts Most pedig nzzk meg, hogy a vev hoszt hogyan irnyt egy bejv szlltsi rtegbeli szegmenst a megfelel szokethez. Mindegyik szlltsi rtegbeli
szegmensben van egy mezcsoport erre a clra. A vev oldalon a szlltsi rteg megvizsglja ezeket a mezket, hogy a vev szoketet azonostsa, majd ehhez a szokethez irnytja a szegmenst. A szlltsi rtegbeli szegmensben tallhat adat megfelel szoketnek trtn kzbestse a nyalbbonts (demultiplexing). A nyalbols (multiplexing) feladata az albbi rszekbl tevdik ssze: a forrshosztnl az adattredkek sszegyjtse a klnbz szktekbl, szegmensek ltrehozsa gy, hogy minden adattredket fejrsszel egszt ki (amit ksbb a nyalbbontskor hasznlnak fel) s a szegmensek tadsa a hlzati rtegnek. Vegyk szre, hogy a 3.2. brn a kzps hoszt szlltsi rtegnek az alsbb hlzati rtegtl rkez szegmensnyalbok esetn el kell vgeznie a nyalbbontst a fltte tallhat P ( vagy P, folyamatok szmra - ezt gy teszi meg, hogy a berkez szegmensben tallhat adatot a megfelel folyamat szoketjhez irnytja. A kzps hoszt szlltsi rtegnek ssze kell gyjtenie az ezektl a szktektl kimen adatokat is, ezekbl szl ltsi rtegbeli szegmenseket kell alkotnia, s ezeket a szegmenseket a hlzati rtegnek kell tovbbtania. Ilabr a nyalbolst s a nyalbbontst az internet szlltsi protokoll-
3.2.
NYALBOLS
S NYALBBONTS
217
jain mulattuk be, fontos szrevennnk, hogy a nyalbols feladata minden olyan esetben felmerl, amikor egy adott (szlltsi vagy ms) rtegbeli protokollt a felette lev rteg tbb protokollja is hasznlja. A nyalbbonts menetnek illusztrlshoz vegyk el ismt az elz alfejezet hztartsi hasonlatt. Minden gyereket a nevvel azonostunk. Amikor Bili egy halom levelet kap a postai kzbesttl, elvgzi a nyalbbonts mvelett azltal, hogy megvizsglja azt, hogy a leveleket kiknek cmeztk, majd a testvrei kezbe adja azokat. Ann pedig a nyalbols m velett vgzi, amikor sszegyjti a testvreitl a leveleket, s odaadja azokat a postsnak. Most, hogy mr rtjk a szlltsi rtegbeli nyalbols s nyalbbonts szerept, nzzk meg, hogy pontosan hogyan is trtnik ez egy gazdagpben. A fenti fejtegetsbl mr tudjuk, hogy a szlltsi rtegbeli nyalbolshoz szksges, hogy (1) a szkteknek egyedi azonostja legyen s (2) minden szegmensnek legyenek dediklt mezi, amelyek meg adjk, hogy a szegmenst melyik szoketnek kell elkldeni. Ezek a dediklt mezk, amelyek a 3.3. brn lthatk, a forrsportszm mez (source port number field) s a clport- szm mez (destination port number field). (Az UDP- s TCP-szegmenseknek ezen fell ms mezik is vannak, ahogy azt a fejezet kvetkez szakaszaiban trgyaljuk.) Minden portszm egy 16 bites 0 s 65535 kztti szm. A -tl 1023-ig terjed portszmok az gynevezett kzismert portszmok (well-known port numbers), ezek korltozsokkal hasznlhatk, ami azt jelenti, hogy ezeket jl ismert alkalmazsok szmra tartjk fenn, mint pldul a HTTP (ami a 80-as portszmot hasznlja) vagy az FTP (ami a 21-es port- szmot hasznlja). A kzismert portszmokat az RFC 1700 tartalmazza, s a http://www . iana.org-on [RFC 3232] frisstik. Amikor egy j alkalmazst fejlesztnk (mint amilyenek pldul a 2.7. s 2.8. a 1 fejezetekben fejlesztett alkalmazsok), ki kell jellnnk az alkalma zs szmra egy portszmot.
32 bit
3.3. bra. Forrs- s clportszm mezk a szlltsi rtegbeli szegmensben Mostanra nyilvnvalnak kell lennie, hogy a szlltsi rteg hogyan vals/m/ja meg a nyalbbonts szolgltatst: A hoszt minden szoketjhez egy portszmot lehet rendelni, s amikor egy szegmens a hoszthoz megrkezik, a szlltsi rteg megvizsglja a szegmensben a clportszmot, s a szegmenst a megfelel szokethez irnytja. Ezt kveten a szegmens adatai a szkin keresztl a csatlakoz folyamathoz kerlnek. Ahogyan azt ltni fogjuk, az UDP esetben ez alapveten gy is trtnik. Azt is ltni fogjuk azonban, hogy TCP esetben a
218
3. A
szlltsi rteg
A 2.8. alfejczctbl emlkezhetnk arra, hogy egy hoszton fut Java-program a kvetkez sorral tud ltrehozni egy UDP-szoketet
3.2.
NYALBOLS
S NYALBBONTS
219
kldtt szegmens clportja az A-tl B-nek kldtt szegmensben lev forrsport rtkt fogja felvenni. (A teljes vlaszcm A IP-cme s a forrsportszm.) Pldul eleventsk fel a 2.8. alfeje/etben tanulmnyozott UDP-szerverprogramot. Az UDPServer.java-ban a szerver egy fggvny segtsgvel
220
Kliensfolyamat Szkt
A hoszt
3. A
szlltsi rteg
B szerver
forrspotszm: clportszm:
19157
46428
46428 19157
forrsportszm: clportszm:
3.4. bra. A forrs- s clportszmok megcserlse nyeri ki a klienstl kapott szegmensbl a forrsportszmot; ezt kveten egy j szegmenst kld a kliensnek, amelyben a kinyert forrsportszm szolgl az j szegmens clportsz- maknt.
3.2.
NYALBOLS
S NYALBBONTS
221
hoz a kliensfolyamat s/.mra, amelyen keresztl az adatok a kliensfolyamathoz rkezhetnek, illetve elhagyhatjk azt. o Amikora szerverfolyamatot futtat szmtgp hoszt opercis rendszere egy 6789-es portszmmal rendelkez bejv sszekttets-felptsi krelmet fogad, megkeresi azt a szerverfolyamatot, amelyik a 6789-es porton vr egy sszekttets fogadsra. Ezt kveten a szerverfolyamat ltrehoz gy j szokctet:
222
sszekttets-kezelst trgyaljuk.
3. A
szlltsi rteg
egy TCP-szegmens megrkezik a Koszthoz, mind a ngy mezt (forrs-IP-cmet, forrs- portot, cl-IP-cmet, clportot) felhasznlja a szegmens megfelel szokethez trtn irnytshoz (a nyalbols megszntetshez). A helyzetet a 3.5. bra mulatja, amikor a C hoszt kt HTTP-munkakapcsolatot kezdemnyez a B szerverrel, az A hoszt pedig egy HTTP-munkakapcsolatot kezdemnyez B-vel. Az A s C hosztoknak s a B szervernek sajt, egyedi IP-cmk van - A, C s B. A C hoszt kt klnbz forrsportszmot (26145 s 7532) jell ki a kt HTTP-sszekttetse szmra. Mivel az A hoszt C-tl fggetlenl vlaszt forrsportszmokat, elfordulhat, hogy szintn a 26145-s forrsportot jelli ki a HTTP-sszekttetsekhez. De ez nem jelent problmt - a B szerver gy is kpes lesz helyesen elvgezni a kt azonos forrsportszm- mal rendelkez sszekttets nyalbbontst, mivel a kt sszekttetsnek klnbzek a forrsIP-cmeik.
Webszerverek s TCP
Mieltt lezrnnk ezt a tmt, tanulsgos nhny szt szlni a webszerverekrl s arrl, hogyan hasznljk a portszmokat. Vegynk egy gazdagpet, ami a 80-as porton egy webszervert futtat, mint pldul az Apache-webszerver. Amikor a kliensek (pldul bngszk) szegmenseket kldenek a szervernek, az sszes szegmens clportja a 80-as port lesz. Nevezetesen, mind a kezdeti sszekttetsltestsi szegmenseknek, mind pedig a
fet
st m
bW
rtegbeli nyalb bonts
3.5. bra. Kt kliens, amelyik ugyanazt a clportszmot (80) hasznlja ugyanazon webszerver-alkalmazssal val kommunikcihoz
HTTP-krst szllt zeneteknek a 80-as port lesz a clportja. Mint ahogy azt az elbb trgyaltuk, a szerver a klnbz kliensektl rkez szegmenseket a forrsIP-cmk s forrsportszmuk alapjn klnbzteti meg. A 3.5. brn egy webszerver lthat, ami folyamattbbszrzssel minden sszekttetshez ltrehoz egy j folyamatot. Az brn is lthat, hogy ezeknek a folyamatoknak sajt sszekttets-szoketje van, amelyen keresztl HTTP-krsek rkeznek, s HTTP-v- laszokat kld. Megemltjk ugyanakkor, hogy nem minden esetben lehetsges egy az egyben megfeleltetni az sszekttets-szoketeket s a folyamatokat. Valjban a mai nagyteljestmny webszerverek gyakran csak egy folyamatot hasznlnak, s minden egyes j kliens-sszekttetshez egy j szlat hoznak ltre, egy j sszekttets-szokettel. (Egy szl egy kisebb jelentsg alfolyamatnak tekinthet. Egy ilyen szervernek egy tetszleges idpillanatban sok sszekttets-szoketje csatlakozhat (klnbz azonostkkal) ugyan ahhoz a folyamathoz. Ha a kliens s a szerver tarts HTTP-sszekttetst hasznl, akkor a tarts sszekttets teljes idtartamn keresztl a kliens s a szerver ugyanazon a szerverszoketen keresztl cserl HTTP-zeneteket. Ugyanakkor, ha a kliens s a szerver nem lland HTTP-ssze- kttetst hasznl, akkor minden egyes krs/vlasz prhoz egy j TCP-sszekttets jn ltre s zrul be, ennlfogva minden egyes krs/vlasz prhoz egy j szkt jn ltre s ksbb zrul be. Ez a gyakori szkdtrehozs s -bezrs slyosan befolysolhatja egy forgalmas webszerver teljestmnyt (habr szmos opercis rendszerbeli trkk hasznl hat a problma mrsklsre). Azoknak az olvasknak, akiket rdekelnek a tarts s nem lland HTTP-sszekttetseket vez opercis rendszerbeli krdsek, ajnljuk, hogy tanulmnyozzk a [Nielsen 1997; Nahum 2002] dolgozatokat. Most, hogy mr rszletesen trgyaltuk a szlltsi rtegbeli nyalbolst s nyalbbontst, lpjnk tovbb, s vizsgljuk meg az internet egyik szlltsi protokolljt, az UDP-t. A kvetkez alfejezetben ltni fogjuk, hogy az UDP egy kicsivel tbbel egszti ki a hlzati rtegbeli protokoll szolgltatsait, mint a nyalbols/nyalbbonts szolgltatsa.
annak rdekben, hogy az adatokat t lehessen juttatni a hlzati rteg s a megfelel alkalmazsi szint folyamat kztt. Az [RFC 768)-ban definilt UDP pontosan annyit tesz meg, amennyit egy szlltsi protokollnak mindenkppen meg kell tennie. A nyalbols/nyalbbonts funkcijn s egyszer hibaellenrzsen kvl semmit nem ad hozz az IP szolgltatsaihoz. Valjban, ha az alkalmazsfejleszt a TCP helyett az UDP-t vlasztja, akkor az alkalmazs majdhogynem kzvetlenl az IP-vel kommunikl. Az UDP az alkalmazsi folyamattl kapott zenetekhez hozzcsatolja a nyalbols/nyalbbonts szolgltatshoz szksges forrs- s clportszmot, hozzad mg kt msik mezt, majd az eredmnyl kapott szegmenst tovbbadja a hlzati rtegnek. A hlzati rteg a szlltsi rtegbeli szegmenst egy IP-da- tagramba foglalja, s ezt kveten lehetsgeihez mrten megprblja a szegmenst a vev hosztnak kzbesteni. Ha a szegmens megrkezik a cmzett hoszthoz, az UDP a clport szmot hasznlja, hogy a szegmens adatait a megfelel alkalmazsi folyamatnak kzbestse. Figyeljk meg, hogy UDP esetn a szegmens elkldse eltt nincs kzfogs a kld s a vev szlltsi entitsok kztt. Ezrt nevezik az UDP-t
sszekttets nlklinek.
A DNS egy olyan alkalmazsi rtegbeli protokollra plda, ami jellemzen UDP-t hasznl. Amikor a gazdagpben a DNS-alkalmazs lekrdezst akar vgrehajtani, egy DNS lekrdezsi zenetet kszt, s ezt az zenetet adja tovbb az UDP-nck. Anlkl, hogy a clvgrendszeren fut UDP-entitssal kezet fognnk, a hosztoldali UDP fejrszmezket ad az zenethez, majd az gy kapott szegmenst tovbbadja a hlzati rtegnek. A hlzati rteg az UDP-szegraenst egy datagramba gyazza, s a datagramot elkldi a nvszervernek. A krdez hoszt DNS-alkalmazsa ezt kveten a krdsre adott vlaszra vr. Ha nem kap vlaszt (esetleg azrt, mert az alatta lev hlzat elvesztette a krst vagy a vlaszt), vagy megprblja a krst egy msik nvszervernek elkldeni, vagy rtesti a hv alkal mazst arrl, hogy nem tud vlaszolni. Az olvas most esetleg azon tndik, hogy egy alkalmazsfejleszt vajon mirt is dntene gy, hogy egy alkalmazst UDP-re alapoz, nem pedig TCP-re. Nem igaz az, hogy a TCP minden esetben elnysebb, mivel megbzhat adattviteli szolgltatst biztost, mg az UDP nem? A vlasz nem, mivel az albbi okok miatt szmos alkalmazs szmra megfelelbb az UDP: hozz semmilyen ksleltetst azrt, hogy az sszekttetst felptse. Valsznleg ez a legfontosabb ok, amirt a DNS TCP helyett UDP-t hasznl - a DNS sokkal lassabb lenne, ha TCP fltt futna. A HTTP viszont TCP-t hasznl, nem pedig UDP-t, mivel a szveget tartalmaz weblapok szmra kritikus szempont a megbzhatsg. De ahogyan arrl rviden a 2.2. alfejezetben sz volt, a HTTP-nl a TCP sszekttetsfelptsi ksleltetse fontos sszetevje a webdokumentumok letltsvel egytt jr ksleltetseknek. llapotmentes sszekttetsek. A TCP a vgrendszerekben sszekttetsllapotokat tart nyilvn. A sszekttets-llapot a vev s kld puereket, torldskezelsi paramtereket, valamint a csomagsorszm s nyugtaszm paramtereket tartalmazza. A 3.5. alfejezetben ltni fogjuk, hogy erre az llapotinformcira szksg van a TCP megbzhat adattviteli szolgltatsnak megvalstshoz s a torldskezels biz tostshoz. Ezzel szemben az UDP nem tart nyilvn sszekttets-llapotokat s nem kveti nyomon ezeket a paramtereket. Ezrt egy adott alkalmazsra sznt szerver jellemzen sokkal tbb aktv klienst tud tmogatni, ha az alkalmazs UDP fltt
A 3.1. tblzat npszer internetes alkalmazsokat, s az ltaluk hasznlt szlltsi protokollokat sorolja fel. Ahogy azt vrjuk, az e-mail, a tvoli terminlos hozzfrs, a web s a fjltvitel TCP fltt mkdnek - ezen alkalmazsok kzl mindegyiknek a TCP megbzhat adattviteli szolgltatsra van szksge. Mindazonltal sok fontos alkalmazs inkbb UDP fltt fut, mintsem TCP fltt. UDP-t hasznl a RIP az tvlasztsi tblk aktualizlshoz (lsd 4.6.1. alfejezet). Mivel a RIP-frisstseket periodikusan kldik (jellemzen tpercenknt), az elveszett frisstseket jabb kelet frisstsek ptoljk, gy tve az elveszett, elavult frisstseket flslegess. Az UDP-t hlzatfelgyeleti (SNMP; lsd 9. fejezet) adatok szlltsra is hasznljk. Ebben az esetben az UDP-t elnyben r szestik a TCP-vel szemben, mivel gyakori, hogy a hlzatfelgyeleti alkalmazsoknak olyankor kell futniuk, amikor a hlzat terhelt llapotban van - pontosan akkor, amikor megbzhat, torldsvezrelt adatszlltst nehz megvalstani. Ahogy azt korbban emltettk, szintn UDP fltt fut a DNS, ezltal elkerlve a TCP sszekttets-felptsi ksleltetseit. Ahogyan az a 3.1. tblzatban lthat, manapsg mind az UDP-t, mind pedig a TCP-t hasznljk multimdis alkalmazsokhoz, mint amilyen az internetes tvbeszls, a vals idej videokonferencia s a trolt hang vagy vide folyamszer letltse is. Ezeket az alkalmazsokat a 7. fejezetben vizsgljuk meg kzelebbrl. Most csak megemltjk, hogy ezen alkalmazsok kzl mindegyik kpes elviselni kis mennyisg csomagvesztst, gy a meg bzhat adatszllts nem felttlenl kritikus az alkalmazs sikeres mkdse szempontj bl. Tovbb a vals idej alkalmazsok, mint az internetes tvbeszls s a videokonferen cia, nagyon rosszul reaglnak a 'PCP torldskczelsre. Ezek azok az okok, amelyek miatt a multimdis alkalmazsok fejleszti gy dntenek, hogy az alkalmazsaik TCP helyett UDP fltt fussanak. Ugyanakkor a TCP-t egyre tbbet hasznljk folyamszer multimdia-letltsre. Pldul a [Sripanidkulchai 2004] szerint az igny szerinti s az l multimdia-letltsek kzel 75 szzalka TCP-t hasznl. Amikor alacsony a csomagvesztsi gyakorisg, s nhny szervezet biztonsgi okokbl (lsd 8. fejezet) blokkolja az UDP-forgalmat, a TCP egyre vonzbb protokoll vlik a vals idej multimdia letltsre.
protokollok
Alkalmazs
Alkalmazsi rtegbeli protokoll SMTP Telnet HTTP FTP NFS Jellemzen egyedi Jellemzen egyedi SNMP RIP DNS
Az alatta elhelyezked szlltsi protokoll TCP TCP TCP TCP Jellemzen UDP UDP vagy TCP UDP vagy TCP Jellemzen UDP Jellemzen UDP Jellemzen UDP
Elektronikus levl Tvoli terminl elrse Web Fjltvitel Tvoli fjlszerver Multimdia-adatfolyam (streaming) Internetes tvbeszls Hlzatfelgyelet tvlasztsi protokoll Nvfelolds
Elterjedt hasznlata ellenre a multimdia-alkalmazsok UDP feletti futtatsa ellentmondsos. Ahogyan azt fent emltettk, az UDP nem rendelkezik lorldskezelssel. Viszont a torldskezelsre szksg van ahhoz, hogy megelzzk a hlzat tlzsfoltsgt, amelyben nagyon kevs hasznos forgalom bonyoldik le. Ha mindenki elkezdene nagy bitsebessg videt letlteni mindenfle torldskezels nlkl, olyan sok csomagtlcsor duls lenne az tvlasztknl, hogy nagyon kevs UDP-csomag tenn meg sikeresen a for rs-cl tvonalat. Radsul a szablyozatlan UDP-kldk ltal elidzett magas vesztsi gyakorisg kvetkeztben a TCP-kldknek (amelyek, ahogy ltni fogjuk, torlds jelenltben valban cskkentik a kldsi sebessgeiket) drasztikusan cskkentenik kellene a sebessgeiket. Ily mdon az UDP-nl a torldskezels hinya az UDP-kld s -vev kztt magas vesztsi gyakorisgot s a TCPsszekttetsek hibs mkdst eredmnyezheti - ami [Floyd 1999] szerint komoly problma. Sok kutat javasolt j mechanizmusokat, hogy minden forrst, belertve az UDP-forrsokat is, rknyszertsenek az adaptv torldskezelsre [Mahdavi 1997; Floyd 2000; Kohler 2006: RFC 4340). Mieltt rtrnnk az UDP-szegmens szerkezetnek trgyalsra, megemltjk, hogy valban lehetsges, hogy egy alkalmazsnak UDP hasznlatakor megbzhat adattvitele legyen. Ez akkor valsthat meg, hogyha a megbzhatsgot magba az alkalmazsba ptik be (pldul olyan nyugtz s jrakldo mechanizmusokba, mint amelyek a kvetkez alfejezet trgyt kpezik). De ez egyltaln nem nyilvnval feladat, aminek a hibajavtsa egy alkalmazsfejlesztt hossz ideig lefoglalna. Mindazonltal a megbzhatsgnak kzvetlenl az alkalmazsba trtn beptse lehetv teszi az alkalmazs szmra, hogy a kecske is jllakjon s a kposzta is megmaradjon. Azaz az alkalmazsi folyamatok megbzhatan kommuniklhatnak anlkl, hogy a TCP torldskezelsi mechanizmusa korltozn az tviteli sebessget.
rsznek csak ngy mezje van, mindegyik kt bjtbl ll. Ahogyan azt az elz alfeje- zetben trgyaltuk, a portszmok teszik lehetv a clhoszt szmra, hogy az alkalmazsi adatokat a clvgrendszeren fut megfelel folyamatnak adjk t (azaz, hogy elvgezzk a nyalbbonts feladatt). A vev hoszt az ellenrz sszeget hasznlja arra, hogy ellenrizze azt, hogy kerltek-e hibk a szegmensbe. Valjban az UDP-szegmens mellett az IP-fejrsz nhny mezjt is felhasznljk az ellenrz sszeg szmtshoz. De ezt a rszletet most figyelmen kvl hagyjuk azrt, hogy lthassuk a ftl az erdt. Az ellenrz sz- szeg szmtst ksbb fogjuk trgyalni. A hiba fel ismers alapelveit az 5.2. alfejezet rja le. A hossz mez az UDP-szegmens hosszt adja meg bjtokban, belertve a fejrszt is.
1011101110110101 A harmadik szt a fenti sszeghez hozzadva az albbit adja: 10111011101101 01 10001111000 Q _1_1_00 01001010110000 10 Vegyk szre, hogy az utols sszeadsnl tlcsorduls volt, ami visszacsatoldott. Az l-es komplemenst gy kapjuk, hogy az sszes 0-t 1-re, s az sszes 1-est 0-ra cserljk. Ily mdon a 0100101011000010 sszeg l-es komplcmense 1011010100111101, ami maga az ellenrz sszeg. A vev mind a ngy 16 bites szt sszeadja, belertve az ellenrz sszeget is. Ha nem lpett fel hiba a csomagban, akkor a vevnl az sszeg egyrtelmen 1111111111111111 lesz. Ha a bitek kzl az egyik 0, akkor tudjuk, hogy a csomagban hiba lpett fel. Eltndhet az olvas, hogy elszr is mirt biztosit az UDP egy ellenrz sszeget, amikor sok adatkapcsolati rtegbeli protokoll (idertve a npszer Ethernet protokollt) is biztost hibaellenrzst. Az ok az, hogy nincs arra garancia, hogy a forrs s a cl kztti sszes adatkapcsolat biztost hibaellenrzst. Tovbb, mg ha a szegmenseket helyesen is viszik t az adatkapcsolaton, elfordulhat, hogy a bithibk akkor keletkeztek, amikor a szegmenst egy tvlaszt memrijban troltk. Mivel adott, hogy sem az adatkapcsolatok kztti megbzhatsg, sem pedig a memriabcli hibafelismers nem garantlt, az UDPnek a szlltsi rtegben kell hibafelismerst biztostania vgpontok kztti alapon ahhoz, hogy a vgpontok kztti adattviteli szolgltats hibafelismerst biztostson. Ez egy pldja az nnepelt vgpontok kztti rendszertervezsi elvnek (end-end princi- ple), [Saltzer 1984], amely a kvetkezket mondja ki, mivel bizonyos funkcionalitsokat (ez esetben a hibafelismerst) vgpontok kztti alapon kell megvalstani: lehet, hogy az alsbb szintekre helyezett funkcik redundnsak vagy kevsb hasznosak, sszehasonltva a magasabb szinten megvalstott ugyanilyen funkcik hatkonysgval. Mivel felttelezzk azt, hogy az IP szmra hasznos biztonsgi intzkeds brmelyik msodik rtegbeli protokoll fltt is fut -, ha a szlltsi rteg hibaellenrzst vgez. Ugyan az UDP biztost hibaellenrzst, semmit sem tesz a hiba kikszblse rdekben. Nmely UDP-megvalstsok egyszeren eldobjk a srlt szegmenst, msok egy figyelmeztetssel egytt tovbbtjk a szegmenst az alkalmazsnak. Ezzel tulajdonkppen krbejrtuk, amit az UDP-rl tudnunk kell. Hamarosan ltni fogjuk, hogy a TCP megbzhat adattviteli szolgltatst, valamint ms olyan szolgltatsokat is biztost az alkalmazsai szmra, amelyeket az UDP nem nyjt. Termszetesen a TCP sszetettebb is, mint az UDP. Mieltt azonban rtrnnk a TCP trgyalsra, hasznos lesz ttekinteni a megbzhat adattvitel mgtt rejl alapelveket.
232
3.
SZLLTSI
RTEG
megvizsgljuk a TCP-t, s megmutatjuk, hogy a TCP sok alapelvet alkalmaz azok kzl, amelyeket a kvetkezkben szeretnnk bemutatni. A 3.7. brn lthat a megbzhat adattvitel tanulmnyozshoz hasznlt keretrendszer. A felsbb rtegbeli entitsok szmra nyjtott szolgltatsabsztrakci megbzhat csatorna, amelyen keresztl az adatok tvihetk. Egy megbzhat csatornval az tvitt adatbitek nem srlnek (vltoznak 0-rl 1-re vagy fordtva) vagy vesznek el, s az sszes adat abban a sorrendben rkezik meg, ahogyan azt elkldtk. Pontosan ez az a szolglati modell, amit a TCP az t meghv internetes alkalmazsoknak knl. A megbzhat adattviteli protokoll (reliable data transfer protocol) felelssge, hogy ezt a szolgltatsabsztrakcit megvalstsa. Ezt a feladatot az a tny teszi nehzz, hogy a megbzhat adattviteli protokoll alatti rtg megbzhatatlan lehet. Pldul a TCP megbzhat adattviteli protokoll, amit egy megbzhatatlan (IP) vgpontok kztti hlzati rteg fltt valstottak meg. ltalnosabban, a kt megbzhatan kommunikl vgpont alatti rteg llhat egyetlen fizikai adatkapcsolatbl (ahogy az adatkapcsolati szint adat- tviteli protokoll esetben), vagy vilgmret hlzatok sszekapcsolsbl is (ahogy a szlltsi szint protokoll esetben). Mindazonltal a mi cljainknak megfelel, ha ezt az alsbb rteget egyszeren egy megbzhatatlan kt pont kzti csatornnak tekintjk.
rdt sendo
Szlltsi rteg Megbzhat csatorna
delivex data
Megbzhat adattviteli protokoll (vev oldal)
udt send(}
rdt rev)
3.3.
SSZEKTTETS
NLKLI SZLLTS:
UDP
233
234
3.
SZLLTSI
RTEG
Ebben az alfejezetben lpsrl lpsre fejlesztjk ki a megbzhat adattviteli protokoll kld s vev oldalait gy, hogy figyelembe vesszk az alatta tallhat csatornnak egyre sszetettebb modelljeit. A 3.7. (b) bra az adattviteli protokollunk csatlakozsi felleteit brzolja. Az adattviteli protokoll kld oldalt fentrl az rdt_send() fogja meghvni. Ez a kzbestend adatot tadja a vev oldalon a felsbb rtegnek. (Itt az rdt a megbzhat adattviteli protokollt [reliable data transfer] jelli, a _send [klds] pedig azt jelli, hogy az rdt kld oldala hvdik meg. Brmely protokoll fejlesztsekor az els lps a j nvvlaszts!) A vev oldalon az rdt_rcv() fog meghvdni, amikor a csatorna vev oldalrl egy csomag megrkezik. Amikor az rdt protokoll adatot akar kzbesteni a felsbb rtegnek, ezt a deliver_data () meghvsval fogja megtenni. A kvetkezkben a csomag terminolgit alkalmazzuk a szlltsi rtegbeli szegmens helyett. Mivel az ebben az alfejezetben kifejlesztett elmlet a szmtgp-hlzatokra ltalnossgban rvnyes, s nem csak az internet szlltsi rtegre, gy itt az ltalnos csomag kifejezs valsznleg helynvalbb. Ebben az alfejezetben csak az egyirny adattvitel (unidirectional data transfer) esett fontoljuk meg, azaz az adattvitelt a kld oldaltl a vev oldalig. A ktirny (azaz full-duplex) adattvitelt (bidirectional data transfer) nem nehezebb megrteni, de sokkal frasztbb elmagyarzni. Habr csak egyirny adattvitelt vesznk figyelembe, fontos szrevenni, hogy ennek ellenre a protokollunk kld s vev oldalainak mindkt irnyba kell majd csomagokat szlltaniuk, ahogyan ez a 3.7. brn is lthat. Hamarosan ltni fogjuk, hogy az tviend adatokat tartalmaz csomagok cserje mellett az rdt kld s vev oldalainak vezrl csomagokat is kell majd cserlnik oda-vissza. Az rdt-nek mind a kld, mind pedig a vev oldala az udt_send() meghvsval kld csomagokat a msik oldalnak (ahol az udt a megbzhatatlan adattvitelt [unreliable data transfer) jelli).
235
egyetlen llapotbl nmagba tr vissza hamarosan bonyolultabb llapotdiagramokat is fogunk ltni.) Az tmenetet kivlt esemny a vzszintes vonal fltt lthat, ez az tmenet neve, az esemny bekvetkezsekor vgre hajtott mveletek pedig a vzszintes vonal alatt lthatk. Amikor egy esemny hatsra semmit sem kell tenni, illetve ha nem trtnik semmilyen esemny, s mgis vgre kell hajtani egy mveletet, a A szimblumot fogjuk hasznlni a vzszintes vonal alatt, illetve fltt, hogy vilgosan jelljk a mvelet vagy esemny hinyt. Az FSM kezdeti llapott
236
3.
SZLLTSI
RTEG
rdt send(data)
Fellrl trtn hvsra
f Pocket.=rr.ake_pkt
(b) rdtl.O: vev oldal 3.8. bra. rdt 1. 0 - protokoll egy teljesen megbzhat csatorna szmra
szaggatott nyl jelzi. Habr a 3.8. brn lev FSM-nek csak egyetlen llapota van, a tovbbiakban az FSM-eknek tbb llapotuk lesz, ezrt fontos azonostani minden FSM kezdeti llapott. Az rdt kld oldala egyszeren adatokat fogad a felsbb rtegtl az rdt_send (data) esemnyen keresztl, ltrehoz egy, az adatokat tartalmaz csomagot (a make_ pkt(data) mveleten keresztl), s a csomagot a csatornba kldi. A gyakorlatban az rdt_send(data) esemny egy, a felsbb rtegbeli alkalmazs eljrshvstl (pldul az rdt_send () -hez) szrmazna. A vev oldalon az rdt az alatta fekv csatorntl kapja meg a csomagot az rdt_ rcv(packet) esemnyen t, eltvoltja az adatot a csomagbl (az extract (packet, data) mvelettel), s tovbbadja azt a felsbb rtegnek (a deliver_data(data) m velettel). A gyakorlatban rdt_rcv(packet) esemny egy, az alsbb rtegbeli protokoll ltali eljrshvstl (pldul az rdt_rcv( )-hez) szrmazna. Ebben az egyszer protokollban nincs klnbsg az adategysg s a csomag kztt. Tovbb, minden csomagfolyam a kldtl a vevig halad - tkletesen megbzhat csatornnl nincs szksg arra, hogy a vev oldal brmilyen visszajelzst adjon a kldnek, hiszen semmi sem romolhat el! Vegyk szre, hogy azt is feltteleztk, hogy a vev kpes olyan gyorsan fogadni az adatokat, amilyen gyorsasan azt a kld ppen kldi. Ennlfogva nincs szksg arra, hogy a vev fl megkrje a kldt, hogy lasstson!
237
fizikai alkotelemeiben, amikor a csomagot elkldik, halad a hlzatban vagy tmenetileg troljk. Tovbbra is azt felttelezzk, hogy az elkldtt csomagok ugyanabban a sorrendben rkeznek meg (br a bitjeik megsrlhettek), ahogy azokat elkldtk.
Mieltt ltrehoznnk egy ilyen csatornn megbzhatan kommunikl protokollt, nzzk meg azt, hogyan kezelnnek egy ilyen helyzetet az emberek. Gondoljuk t, hogyan diktlnnk telefonon keresztl egy hossz zenetet. Egy jellemz forgatknyvben az zenetet tvev minden egyes mondat utn, amit hallott, megrtett s rgztett, azt mondhatja, hogy igen. 1 la az zenetet tvev nem teljesen rt egy mondatot, akkor megkri nt, hogy ismtelje meg. Ez az zenetdiktl protokoll pozitv nyugtzst (positive acknowledgment) (igen) s negatv nyugtzst (negative acknowledgment) (Krem, ismtelje meg!) is hasznl. Ezek a vezrlzenetek lehetv teszik a vev szmra, hogy tudassa a kldvel, hogy mely zeneteket kapta meg helyesen, s melyeket hibsan, ame lyeket ennlfogva meg kell ismtelni. Egy szmtgp-hlzati krnyezetben az ilyen jra- kldseken alapul megbzhat adattviteli protokollokat ARQ protokollokknt (Automatic Repeat reQuest - automatikus ismtlskrs) ismerjk. Az ARQ protokollokban alapveten hrom tovbbi kpessg szksges ahhoz, hogy a bithibk jelenltt kezelni tudja: Hibajelzs. Elszr is egy olyan mdszerre van szksg, amely lehetv teszi a vev szmra, hogy szrevegye, ha bithibk lptek fel. Eleventsk fel az elz szakaszbl, hogy az UDP pontosan erre a clra hasznlja az internetes ellenrz sszeg mezt. Az 5. fejezetben rszletesebben is megvizsgljuk majd a hibajelzsi s hibajavtsi technikkat; ezek a mdszerek teszik lehetv a vev szmra, hogy felfedjk, s lehetsg szerint kijavtsk a csomag bithibit. Egyelre elg annyit tudnunk, hogy ezekhez a megoldsokhoz az szksges, hogy a kld (az eredetileg t kldend adat bitjein fell) plusz biteket is tkldjn a vevnek - ezeket a biteket az rdt2.0-s datagram csomagellenrz sszeget tartalmaz mezjben fogjuk sszegyjteni. A vev visszajelzse. Mivel a kld s a vev jellemzen klnbz, akr egymstl ezer kilomterekre lev vgrendszereken fut, az egyetlen lehetsg, hogy a kld megismerje a vev vilgnzett (jelen esetben azt, hogy a csomagot helyesen kapta-e meg, vagy sem), hogy a vev visszacsatolst nyjt a kld szmra. Az zenetdiktlsi forgatknyvben ilyen visszacsatolsra pldk a pozitv (ACK) s negatv (NAK) nyugtk. Ehhez hasonlan az rdt2.0 protokollunk is ACK- s NAK-csomagokat kld vissza a vevtl a kldnek. Elvileg ezeknek a csomagoknak elgsges egy bit hossznak lennik - pldul a 0 rtk jellhetn a NAK-ot, az 1-es rtk pedig az ACK-ot. jraklds. Azt a csomagot, amit a vev hibsan kapott meg, a kld jra fogja kldeni. A 3.9. brn lthat az rdt2.0-nak, egy olyan adattviteli protokollnak az FSMrepre- zentcija, ami hibajelzst, pozitv nyugtkat s negatv nyugtkat alkalmaz. Az rdt2.0 kld oldalnak kt llapota van. A bal oldali llapotban a kld oldali protokoll arra vr, hogy adatokat kapjon a felsbb rtegtl. Amikor az rdt_send( data) esemny bekvetkezik, a kld ltrehoz egy, a kldend adatokat tartalmaz csomagot (sndpkt) egy csomagellenrz sszeggel egytt (pldul az UDPszegmens esetben a 3.3.2. alfejezeteben lert mdon), s ezt kveten az
udt_send(sndpkt) mvelettel elkldi a csomagot. A jobb oldali llapotban a kld protokoll a vevtl egy ACK vagy egy NAK-csomagra vr. Ha ACK-csomag rkezik (a 3.9. brn ezt az esemnyt az rdt_ rcv(rcvpkt) && is ACK (rcvpkt) jelli), a vev tudja, hogy a legutbb elkldtt csomag helyesen rkezeti meg, s gy a protokoll visszatr a felsbb rtegtl kldtt ada-
rdt_rcv (rcvpkt}
(.(, .
sNAK
O
^ Alulrl
vrakozs
O
rdt_rcv(rcvpkt) && corrupt(rcvpkt) sndpkt^make_pkt (\AK) udt_send (sndpkt.)
rdt_rcv(rcvpkt) fii notcorrupt(rcvpkt) extr'act (rcvpkt,data) deliver data(data) sndpkr--make j>kt (ACK) udtsend (sndpkr.) (b) rdt2.0: vev oldal 3.9. bra. rdt2. 0 - protokoll egy bithibkat okoz csatorna szmra
tokra val vrakozs llapotba. Ha NAK-csomag rkezik, a protokoll jrakkli az utols csomagot, s vr, hogy az jrakldtt adatcsomagra vlaszknt a vev egy ACK-t vagy NAK-ot kldjn vissza. Fontos megjegyezni, hogy amikor a kld a
vrakozs ACK-ra- vagy-NAK-ra llapotban van, akkor a felsbb rtegtl nem kaphat tbb adatot, azaz nem kvetkezhet be az rdt_send() esemny. Az csak azutn kvetkezik be, ha a kld egy ACK-t kap, s elhagyja ezt az llapotot. Ennlfogva a kld nem fog j adatot kldeni addig, amg nem biztos benne, hogy a vev az aktulis csomagot helyesen megkapta. Az ilyen viselkeds miatt az rdt2.0-hoz hasonl protokollok megll-s-vr (stop-and-wait) protokollokknt ismertek. Az rdt2.0 vev oldali FSM-je mg mindig egyetlen llapottal rendelkezik. Csomagrkezskor a vev vagy egy ACK-val vagy egy NAK-kal vlaszol attl fggen, hogy az tvett csomag srlt-e vagy sem. A 3.9. brn az rd t_rc v (rcvpkt) & & cor r upt (rcvpkt) jells annak az esemnynek felel meg, amikor egy csomag megrkezik, s a vev hibsnak tallja.
Az rdt2.0-s protokoll gy tnhet, hogy helyesen mkdik, de sajnos van egy vgzetes hibja. Ez pedig az, hogy nem vettk szmtsba annak a lehetsgt, hogy egy ACK- vagy NAK-csomag is megsrlhet! (Mieltt tovbbolvasna, gondolkozzon el azon, hogyan javthat ki ez a problma.) Sajnos ez az apr hiba nem is olyan rtalmatlan, mint amilyennek ltszik. A legkevesebb az, hogy ellenrzsszeg biteket kell az ACK/NAK-csomagok- hoz adnunk annak rdekben, hogy az ilyen hibkat fel tudjuk fedni. A nehezebb krds az, hogy a protokollnak hogyan kellene helyrellnia az ACK vagy NAK-csomagban lev hibbl. Itt az a nehzsg, hogy ha egy ACK vagy NAK megsrlt, a kld nem tudhatja meg, hogy a vev az utoljra kldtt adaltredket helyesen kapta-e meg. Tekintsnk hrom lehetsget a srlt ACK-k vagy NAK-ok kezelsre: Els lehetsgknt fontoljuk meg, hogy mit tenne egy ember az tizenetdiktls forga- tkny vben. Ha a beszl nem rtette az igen vagy Krem, ismtelje meg vlaszokat a vevtl, a beszl valsznleg megkrdezn, Mit mondott? (ezzel egy j tpus a kldtl-a-vevig kldtt csomagot ptve be a protokollunkba). Erre a diktl meg ismteln a vlaszt. De mi van akkor, ha a beszl Mit mondott? krdse srl meg? A vev, mivel fogalma sincs arrl, hogy a rszben rthetetlen mondat a diktls rsze volt-e vagy egy krs az utoljra kldtt vlasz megismtlsre, valsznleg egy Mit mondott? krdssel vlaszolna. s persze lehet, hogy a vlasz ismt rthetetlen. Vilgos teht, hogy nehz utat vlasztottunk. A msodik lehetsg, hogy elegend ellenrz sszeg bitet csatolunk ahhoz, hogy a kld ne csak szlelni, hanem javtani is tudja a bithibkat. Ez megoldja a kzvetlen problmt egy olyan csatorna esetben, amiben a csomagok megsrlhetnek, de nem veszhetnek el. A harmadik lehetsg a kld szmra, hogy egyszeren jrakildi a/ aktulis adatcsomagot, ha egy rszben srlt ACK- vagy NAK-csomagot kap. Ez a megkzelts azonban dupliklt csomagokat (duplicate packets) eredmnyez a kldtl-a-vevig men csatornban. A dupliklt csomagok alapvet nehzsge, hogy a vev nem tudja, hogy az ltala utoljra kldtt ACK-t vagy NAK-ot a kld helyesen kapta-e meg. Ily mdon nem tudhatja eleire, hogy egy berkez csomag j adatokat tartalmaz-e, vagy csupn egy ismtls! Egyszer megolds erre az j problmra (s amelyet majdnem minden ltez adat- tviteli protokollban, gy a TCP-ben is alkalmaznak), hogy az adatcsomaghoz egy j mezt adnak, s a kldnek szmoznia kell az adatcsomagjait gy, hogy egy sorszmot (sequence number) tesz ebbe a mezbe. A vevnek gy csak ezt a sorszmot kell ellenriznie ahhoz, hogy meghatrozza, hogy a megrkezett csomag jraklds-e vagy sem. Egy megll-s-vr protokollnak ebben az egyszer esetben egy egybites sorszm elegend, mivel ez a vev szmra lehetv teszi, hogy megtudja, hogy a kld a mr korbban tkldtt csomagot kldi-e jra (a berkezett csomagnak ugyanaz-e a sorszma, mint a legutbb fogadott csomagnak), vagy pedig egy j csomag (a sorszm vltozik, elrelp a modulo2-es aritmetikban). Mivel jelenleg olyan csatornt feltteleznk, ami nem veszt csomagokat, maguknak az ACK- s NAK-csomagoknak nem szksges feltntetnik a nyugtzott csomag sorszmt. A kld tudja, hogy a fogadott ACKvagy NAK-csomagot (srlt vagy sem) az ltala legutbb kldtt adatcsomagra
vlaszknt hoztk ltre. A 3.10. s 3.11. bra az rdt2.0 javtott verzijnak, az rdt2.1-nek FSM-lerst brzoljk. Az rdt2.1-nl lv kld s vev FSM-ek mindegyiknek most mr ktszer annyi
cdl send(data)
sndpkt (0,data,checksum) (sndpkt) *=make_pkt udt_serid rdt_rcv(rcvpkt)&& (corrupt(rcvpkt)| | iSNAK(rcvpkt))
Vrakozs 0-s ACK-ra vagy NAK-ra
udt send(sndpkt)
rdt_rcv(rcvpkt) &
&
rdt send(data)
3.10. bra. rd t 2 A kld rdt rev ( rcvpkt) L L notcorrupt (rcvpkt) & has_seqO(rcvpkt) rdtrcv(rcvpkt) ifi corrupt(rcvpkt) sndpkt-makepkt (NAK,checksum) udt_send(sndpk t)
Vrakozs 0ra alulrl
O.
rdt rev(rcvpkt) notcorrupt (rcvpkt)&4has_seql(rcvp kt) sndpkt=make_pk t (ACK,checksum) udt_send(sndpk r) extract (rcvpkt,data) deliver data(data) $ndpktL-.T.ake_pkt (ACK, checksum) ud t_send (sndp kr. )
sndpkt=make_pkt (ACK,checksum) udt send(sndpkt) rdt__rcv (rcvpkt) && notcorrupt (rcvpkt) &fi hasseql (rcvpkt) extract(rcvpkt,data) deliver_data(data) sndpktmake_ckt(ACK,checksum) udt_send(sndpkt)
rdt_rcv(rcv pkt) corrupt(r cvpkt) s ndpktmake_pkt (NAK,chec ksum) udt send(sndp kt)
llapota van, mint korbban volt. Ennek oka, hogy a protokoll llapotnak most mr azt is tkrznie kell, hogy az aktulisan (a kld ltal) kldtt vagy (a vevnl) vrt csomagnak 0-s vagy 1-es sorszmnak kell-e lennie. Vegyk szre, hogy a mveletek azokban az llapotokban, ahol a 0-s szm csomagot kldik vagy vrjk, tkrkpei azoknak, amelyekben az 1-es szm csomagot kldik vagy vrjk - a klnbsgek csak a sorszm kezelsbl addnak. Az rdt2.1-es protokoll a vevtl a kldnek kldtt pozitv s negatv nyugtkat is hasznl. Amikor egy soron kvli csomagot kap, a vev egy pozitv nyugtt kld arrl a csomagrl, amit megkapott. Amikor egy srlt csomagot kap, a vev egy negatv nyugtt kld. Ugyanazt a hatst rhetjk el, mint egy NAK, ha egy NAK kldse helyett egy ACK-t kldnk az utols helyesen megrkezett csomagrl. A kld, ami kt ACK-t kap ugyanarrl a csomagrl (azaz dupliklt ACK-t kap) tudja, hogy a vev nem kapta meg hibtlanul azt a csomagot, amelyiket a ktszer nyugtzott csomagot kveten kldtt. A NAK-mentes megbzhat adattviteli protokollunk bithibkat tartalmaz csatornk szmra az rdt2.2, amit a 3.12. s 3.13. bra szemlltet. Az rdt2.1 s az rdt2.2 k ztt az egyetlen apr klnbsg, hogy az utbbinl a vevnek mr annak a csomagnak a sorszmt is lel kell tntetnie, amit az ACK-zenet ltal nyugtz (ezt a vev FSM-jben a make_pkt () argumentumban megadott ACK, 0-val vagy ACK,l-gyel lehet megtenni). A kldnek pedig most mr ellenriznie kell annak a csomagnak a sorszmt, amit a kapott ACK-zenet nyugtz (ezt a kld FSM-jben az isACK()-ban megadott 0 vagy 1 argumentummal lehet megtenni).
rdt send(data) snpkt-makepkt(0,data,checksum) ser.d( sndpkt) rdi rcv(rcvpkt) (corrupt(rcvpkt)I I isACK(rcvpkt,1)) Vrakozs 0-s ACK-ra udt send(sndpkt) Udt
^ Fellrl trtn 0-s hvsra vrakozs rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) && isACK(rcvpkt,1)
rdtrcv(rcvpkt) 6 (corrupt: (rcvpkt) I isACK(rcvpkt,0)) udt send(sndpkt) rdt send(data) s.ndpkt--*make_pkt ( 1, data,
oncethru=0
rdt rev(rcvpkt) & notcorrupt(rcvpkt) has seql(rcvpkt) extract(rcvpkt,data) deliver data(data) sr.dpkt-'inake pki (ACK, 1, checksum) udt_send(sndpkt)
feladatval. Ttelezzk fel, hogy a kld tkld egy adatcsomagot, s vagy a csomag, vagy a vev nyugtja a csomagra elvsz. Egyik esetben sem rkezik vlasz a vevtl a kldhz. Ha a kld hajland elg hosszan vrakozni ahhoz, hogy biztos legyen, hogy egy csomag elveszett, egyszeren jrakldheti az adatcsomagot. Gyzdjn meg arrl, hogy ez a protokoll valban mkdik. De mennyi ideig kell a kldnek vrakoznia ahhoz, hogy biztos legyen abban, hogy valami elveszett? A kldnek biztosan legalbb annyi ideig kell vrnia, amennyi a krbefordulsi ksleltets a kld s a vev kztt (ami a kztes tvlasztknl az ideiglenes trolst is tartalmazhatja), plusz annyit, amennyi idt a vevnl a csomag feldolgozsa ignybe vesz.
Sok hlzatban ezt a legrosszabb esetben elfordul maximlis ksleltetst nagyon nehz akr csak megbecslni is, nemhogy biztonsggal tudni. Radsul a protokollnak elmletileg a lehet leggyorsabban kell helyrellnia a csomagvesztsbl - a legrosszabb esetbeli ksleltetsre olyan hossz vrakozst jelenthet, amg a hiba utni helyrellts megkezd dik. Ennlfogva a gyakorlatban alkalmazott megkzelts az, hogy a kld megfontoltan egy olyan idrtket vlaszt, amelynl valszn, br nem garantlt, hogy csomagveszts trtnt. Ha ezen az idn bell nem rkezik meg egy nyugta, a csomag jrakldsre kerl. Figyeljk meg, hogy ha a csomag klnsen nagy ksleltetst szenved, a kld annak ellenre is jrakldheti a csomagot, hogy sem a csomag, sem a nyugtja nem veszett el. Ez bevezeti a dupliklt adatcsomagok (duplicate data packets) lehetsgt a kldtl-a-vevig halad csatornn. rmnkre az rdt2.2 protokoll funkcionalitsa mr elegend ahhoz, hogy a dupliklt csomagok esett kezelni tudja (ezek a sorszmok). A kld nzpontjbl az jraklds ltalnos gygymd. A kld nem tudja, hogy vajon egy adatcsomag vagy egy nyugta veszett-e el, vagy csak egyszeren tl sokat ksik a csomag vagy a nyugta. Minden esetben ugyanaz trtnik: jraklds. Egy idalap jra- kldsi mechanizmus megvalstshoz egy visszaszmll idzt (countdown timer) szksges, amely egy adott id lejrta utn kpes megszaktst kezdemnyezni a kldnl. A kldnek teht kpesnek kell lennie (1) elindtani az idztt minden alkalommal, amikor egy csomagot (akr els alkalommal, akr jbl) elkld, (2) reaglni egy idzt megszaktsra (a megfelel mveleteket elvgezni), s (3) meglltani az idztt.
rdt_ser.d (data) sndpkt=make_pkt(0,data,checksu m) udt _send(sndpkt) start timer
rdtrev(rcvpkt)
252 A 3.14. brn az rdt3.0 kld FSM-je lthat. Az rdt3.0 protokoll 3. A SZLLTSI RTEG megbzhat
adattvitelt biztost egy olyan csatornn, amiben megsrlhetnek vagy elveszhetnek csomagok - a fejezet vgi feladatokban arra krjk majd az olvast, hogy ksztse cl az rdt3.0 vev FSM-jt. A 3.15. brn lthat, hogyan kezeli a protokoll azt az esetet, amikor nem vsz el vagy nem ksik csomag, s azt az esetet, amikor csomagveszts van. A 3.15. brn az id a diagram tetejtl lefel n - vegyk szre, hogy az tviteli s terjedsi ksleltetsek miatt a csomag rkezsi ideje szksgszeren ksbbi idpont, mint a kldsi ideje. A 3.15. (b) -(d) brkon a kld oldalon az sszekapcsolt idpontok jellik az idzt indulst s lejrtt. A fejezet vgn tallhat feladatok felfedik a protokoll j nhny aprbb rszlett. Mivel a csomagsorszmok rtke 0 s 1 kztt vltakozik, az rdt3.0 protokollt nha vltakoz bit protokollnak (alternating-bit protocol) nevezik. Mostanra sszegyjtttk egy adattviteli protokoll f sszetevit. Az ellenrz sszegek, sorszmok, idztk, pozitv s negatv nyugtacsomagok kzl mindegyik kritikus s szksges szerepet jtszik a protokoll mkdsben. Most mr van egy mkd megbzhat adattviteli protokollunk!
253
254 Kld
csomO-t kld
Vev
Kld
csomO-t kld
Cs
csomO-t kap ACKO-t kld ACKO-t kap csoml-et kld idtllps csrni j rkul dse
n)
csomO-t kap ACKO-t kld
Kld
csornO-t kld ACKO-t kap csoml-et kld idtl lps csoml jrakldse ACKl-et kap csomO-t kld
Vev
Kld
csomO-t kld
Cs
Vev
csomO-t kap ACKO-t kld ACKO-t kap csoml-et kld idtllps csoml j rakldse ACKl-et kap csomO-t kld ACKl-et kap nem tesz semmit
0r no
csoml-t kap ACKl-t kld csoml-et kap (dupiiktum szlelse) ACKl-et kld csomO-t kap ACKO-t kld
255
Adatcsomag
Adatcsomagok
' 1 v
m >wi w i < t
ACK-csomagok
(a) Egy megll-s-vr protokoll mkds kzben (b) Egy csvezetkes protokoll mkds kzben
3.16. bra. A megll-s-vr protokoll s a csvezetkes protokoll szembelltsa Azaz a kld az idnek csak 2,7 tzezred rszben volt elfoglalt! Ms oldalrl nzve, a kld csak 1000 bjtot volt kpes elkldeni 30,008 ms alatt, ami csak 267 kb/s-os tnyleges tbocstkpessg - annak ellenre, hogy egy 1 Gb/s-os adatkapcsolat llt rendelkezsre! Kpzeljk el a szerencstlen hlzatfelgyelt, aki egy vagyont fizetett a gigabites tviteli sebessgrt, de msodpercenknt csak 267 kilobites tbocstkpessget kpes elrni! Hz a plda jl szemllteti, hogy a hlzati protokollok miknt kpesek az alattuk lev hlzati hardver ltal szolgltatott adottsgokat korltozni. Ugyancsak figyelmen kvl hagytuk a kldnl s a vevnl az alsbb rtegbeli protokoll feldolgozsi idket, ahogyan a feldolgozsi s sorbanllsi ksleltetseket is, amelyek brmely, a kld s a vev kztti kzbens tvlasztnl bekvetkezhetnek. Ezeknek a hatsoknak a figyelembevtele csak tovbb nveln a ksleltetst s tovbb hangslyozn a gyenge teljestmnyt. Ennek a bizonyos teljestmnyproblmnak egyszer a megoldsa: egy meglls-vr mkds helyett a kldnek megengedjk, hogy tbb csomagot kldjn ki anlkl, hogy a nyugtkra vrna - ezt brzolja a 3.16. (b) bra. A 3.17. (b) bra azt mutatja, hogy ha a kldnek megengedjk, hogy hrom csomagot kikildjn, mieltt a nyugtkat megvrn, a kld kihasznltsga lnyegben meghromszorozdik. Mivel a sok klds alatt ll kldtl-a-vevig halad csomag gy szemlltethet, mintha egy csvezetket tltennk meg, ez a mdszer csvezetkezsknt (pipelining) is ismert. A csvezetkezs kvetkezmnyei a megbzhat adattviteli protokollokra az albbiak:
Kld
Vev
ACK
megrkezik,
kvetkez
Kld
Vev
Az els csomag els bitje tkldve, t = 0 Az els csomag utols bitje tkldve, t = L/R Megrkezik az 1. csomag els bitje Megrkezik az 1. csomag utols ACK kldse bitje, az 2. csomag Megrkez ACK kldse ik utols bitje, az 3. csomag Megrkezik utols bitje, ACK kldse
ffrSt e.
ACK megrkezik, kvetkez
(b)
Csvezetkes mkds
base
nextseqnum
Jells:
QMr
9 nyugtz ott
0 Hasznlhat,
D
Ablakmret
mg nem kikldtt
Nem
hasznlhat
kezmnyeit trja fel. A 3.5. alfejezetben ltni fogjuk, hogy a TCP-nek 32 bites a sorszmmezje, ahol a TCP-sorszmok a csomagok helyett a bjtfolyam bjtjait szmozzk. A 3.19. s 3.20. brk egy ACK-alap, NAK-mentes CBN protokoll kld s vev oldalainak kiterjesztett FSM-lerst mutatja. Erre az FSM-lersra kiterjesztett FSM-knt hivatkozunk, mert (egy programozsi nyelv vltozihoz hasonlan) vltozkat rendeltnk a base-hez s a nextseqnum-hoz, tovbb ezeken a vltozkon vgzett mveleteket s ezeket tartalmaz feltteles mveleteket adtunk hozz. Figyeljk meg, hogy a kiterjesztett FSM-lers mostanra gy kezd kinzni, mint egy programozsi nyelv lers. [Bochman 1984] kivl ttekintst nyjt az FSM-technikk egyb kiterjesztseirl, mint ahogy ms, a protokollok lersra alkalmas, programozsi nyelv alap technikkrl is. A GBN-kldnek hromfajta esemnyre kell reaglnia: Fentrl jv hvs. Amikor fellrl meghvjk az rdt_send( )-et, a kld elszr ellenrzi, hogy tele van-e az ablak, azaz hogy van-e N db htralev, nyugtzatlan csomag. Ma az ablak nincs tele, ltrehozza s elkldi a csomagot, a vltozkat megfelelen frissti. Ha az ablak tele van, a kld egyszeren visszakldi az adatot a felsbb rtegnek, ez egy implicit jelzse annak, hogy az ablak tele van. A felsbb rtegnek gy ksbb alighanem jra kellene prblkoznia. Egy igazi megvalstsban valsznbb, hogy a kld vagy ideiglenesen trolja (de nem kldi el azonnal) ezt az adatot, vagy van egy szinkronizcis mechanizmusa (pldul egy szemafor vagy egy jelzbit), amely a felsbb rteg szmra csak akkor engedlyezi a hvst, amikor az ablak nincs tele.
rdt send(data) if ( n e x t s e q nu m < * o as e + N ) { sndpkt [nextseqnum] =make_pkt( n e x t s e q nu m , d at a, c h e c k s u m ) u d t s e n d (s r . d p x t ( ne x t s e q n u m ) ) i f( b as e = n e x t s e q n u m) s t ar t , t i m e r ne x t s e q n u m + +
el3e base-2 nextseqnum1
refusedata ( d at a)
' x
udt_send(sndpkt[nextseqnum-1])
rdt rcv (rcvpkt) notccrrupt (rcvpkL) base-getac:knum(rcvpkt) >1 T f <base=nextseqnum) s t o p t i m e r else start t i m e r
rdt_rcv<rcvpkt) noLcorrupt (ccvpkr.) && hasseqnum(rcvpkL, expectedseqnurr.) extract (rcvpkt,data) deiiverdata (data) sndpkt-make_pkt (expectedseqnum, ACK, checksum) udt send(sndpkt) expectedscqnum++
O
Vr
3.20. bra. A GBN-vev kiterjesztett FSM-lersa Egy ACK vtele. A GBN protokollun kban egy n sorszm csomag nyugtjt halmozott vagy kumulld nyugtnak (cumulative acknowledgement) vesszk, ezzel jelezvn, hogy az n sorszm csomagig, belertve az n sorszmt is, minden csomag hibtlanul megrkezett a vevhz. Erre hamarosan visszatrnk, amikor a GBN-vev oldalt vizsgljuk. Egy idtllpsi esemny. A protokol I neve: w-nel trtn visszalps a kld csomag- vesztskor vagy nagymrtk ksleltetskor tanstott viselkedsbl szrmazik. Ahogy a megll-s-vr protokollnl, az idzt itt is az adatvesztst vagy nyugtavesztst kvet helyrellts segtsre szolgl. Ha idtllps trtnik, a kld az sszes elzleg kikldtt, de mg nem nyugtzott csomagot jrakldi. A 3.19. brn a kl dnk csak egyetlen idztt hasznl, ami a legrgebben kikldtt, de mg nem nyug tzott csomag idztjnek tekinthet. Ha rkezett egy nyugta, de mg vannak tovbbi kikldtt, de mg nem nyugtzott csomagok, az idztt jraindtja. Ha nincsenek htralev, nyugtzallan csomagok, lelltja az idztt. A GBN-ben a vev mkdse is egyszer. Ha egy n sorszm csomag hibtlanul s sorrendben rkezik meg (azaz az utoljra a felsbb rtegnek tadott adat az n 1 sorszm csomagban rkezett), a vev egy nyugtt kld az w-edik csomagra, s a csomag adatot tartalmaz rszt tadja a felsbb rtegnek. Minden ms esetben a vev figyelmen kvl hagyja a csomagot, s jra elkld egy nyugtt az utoljra sorrendben rkezeit csomagra. Vegyk szre, hogy mivel az adatokat a felsbb rtegnek egyesvel adja t, ha a A>adik cso mag megrkezett s kzbestsre kerlt, akkor az sszes k-nl kisebb sorszm csomag is kzbestve lett. Ekkppen a kumulatv nyugtk hasznlata GBN esetn sszer vlaszts. A GBN protokollunkban a vev eldobja a nem sorrendben rkezett csomagokat. Habr elhamarkodottnak s pazarlnak tnhet eldobni egy helyesen (de nem sorrendben) megrkezett csomagot, van indoka annak, hogy gy tesznk. Emlkezznk r, hogy a vevnek sorrendhelyesen kell az adatot a felsbb rtegnek tadnia. Na mr most tegyk fel, hogy az /i-edik csomagol vrja, de az n + I-edik rkezik meg. Mivel az adatokat sorrendhelyesen kell kzbesteni, a vev
azonban az /i-edik csomag elvsz, a GBN-kld jrakldesi szablya kvetkeztben vgl az is, s az n + 1-edik csomag is jrakldsre kerl. gy a vev egyszeren el is dobhatja az n + 1-edik csomagot. Ennek a megkzeltsnek a vev pufferelsnek egyszersge az elnye - a vevnek nem szksges pufferelnie egyetlen nem sorrendben rkezett csomagol sem. gy mg a kldnek szmon kell tartania az ablaknak als s fels hatrait s a nextseq- num helyzett ezen az ablakon bell, a vevnek csupn egyetlen informcit kell szmon tartania: a sorrendben kvetkez csomag sorszmt. Ezt az rtket az expectedseqnum vltozban trolja, ahogy ez a 3.20. brn a vev FSM-ben lthat. Termszetesen egy hibtlanul megrkezett csomag eldobsnak htrnya, hogy ezt kveten a csomag az jraklds sorn elveszhet vagy eltorzulhat, s ily mdon tbb jrakldsre lehel szksg. A 3.21. bra a GBN protokoll mkdst mutatja abban az esetben, ha az ablakmret ngy csomagnyi. Emiatt az ablakmret-korltozs miatt a kld i a 0tl 3-ig elkldi a csomagokat, de ezt kveten, mieltt folytathatn a kldst, meg kell vrnia, hogy ezek kzl
Kld
csom-t kld
Vev
csom3-at kLd (vr) csom3-at kap, eldobja ACKl-et kld ACKO-t kld csom4-et kld ACKl-et kap osom5-t kld - csom2 idtllps csom2-t kld csom3-at kld 030014-et kld csom5-t kld csom4-et kap, eldobja ACKl-et kld csom2-t kap, kzbesti ACK2-t kld csom3-at kap, kzbesti ACK3-at kld cso:n5-t kap, eldobja ACKl-et kld
a csomagok kzl egyet vagy tbbet nyugtzzanak. Minden egymst kvet nyugta megrkezsvel (pldul ACKO s ACK1) az ablak elbbre csszik, s a kld egy jabb csomagot kldhet ki (csom4, illetve csom5). A vev oldalon a 2-es csomag elveszett, s ezrt a 3-as, 4-es s 5-s csomagok nem sorrendhelyesen rkeztek, gy eldobsra kerltek. Mieltt a GBN trgyalst lezrnnk, rdemes megfigyelni, hogy ennek a protokollnak a protokollverembeli megvalstsa valsznleg a 3.19. brn lthat kiterjesztett FSM felptshez hasonl. Valszn, hogy a megvalsts klnfle eljrsok formjban trtnne, amelyek a klnfle esemnyek bekvetkezsre adott vlaszlpseket jelentik. Az ilyen esemnyalap programozs (event-based programming) sorn, a klnfle eljr sokat ms protokollverembeli eljrsok hvjk meg, vagy egy megszakts eredmnyekp pen hvdnak meg. A kldnl ezek az esemnyek a kvetkezk: (1) egy felsbb rtegbeli entitstl szrmaz hvs, hogy amikor csomag rkezik, hvja meg az rdt_send () -et, (2) egy idzt megszaktsa s (3) egy alsbb rtegbeli entitstl szrmaz hvs, hogy amikor csomag rkezik, hvja meg az rdt_rcv() -t. Megjegyezzk, hogy a GBN protokoll magba foglalja szinte az sszes megoldst, amivel a 3.5. alfejezetben szembeslni fogunk, amikor a TCP megbzhat adattviteli alkotelemeit tanulmnyozzuk. Ezek a megoldsok magukba foglaljk a sorszmok, kumulld nyugtk, ellenrz sszegek hasznlatt s egy idtllps/jraklds alap mkdst.
felsbb rtegnek. A 3.24. bra az SR-vev ltal vgrehajtott klnbz lpseket rszletezi. A 3.25. bra egy pldt mutat az
send base
nexlseqnum
i
Ablakmret
Jells:
Mr nyugtzott
hasznlh at, mg
nem epldtt
DNem
hasznlhat
rcv b a s e ^ i
Ablakmret
N
Jells:
Sorrenden kvli (puferclt). de mr nyugtzott
Eifogaohat
(abiakon belli)
Nem
hasznlhat
nzpontjbl
SR mkdsre elveszett csomagok esetn. Figyeljk meg a 3.25. brn, hogy a vev kezdetben puffereli a 3-as, 4-es s 5-s csomagokat, s csak a 2-es csomaggal egytt kzbesti azokat a felsbb rtegnek, amikor a 2-es csomagot mr megkapta.
1. Adatok fogadsa fellrl. Amikor adatok rkeznek fellrl, az SR-kld ellenrzi a csomag szmra rendelkezsre
ll kvetkez sorszmot. Ha a sorszm a kld ablakn bellre esik, az adatot becsomagolja s elkldi; ellenkez esetben vagy puffereli vagy pedig, ahogyan a GBN esetn is, visszakldi a felsbb rtegnek ksbbi tvitel cljbl.
2. Idtllps. Az idztket ismt arra hasznljk, hogy vdelmet nyjtsanak az elveszett csomagok ellen.
Ugyanakkor, most mr minden csomagnak sajt logikai idztje kell, hogy legyen, mivel idtllps esetn csak egyetlen csomag kerl tvitelre. Egyetlen hardveres idzt segtsgvel utnozni lehet tbb logikai idzt mkdst [Varghese 1997J.
3. Nyugta fogadsa. Ha nyugta rkezik, az SR kld az adott csomagot elfogadottnak jelli, feltve, hogy az az
ablakba esik. Ha a csomag sorszma a send base -zel egyenl, az ablak alaprtke elre- megy a legkisebb sorszm nyugtzatlan csomagig. Ha az ablak mozog, s vannak olyan mg nem elkldtt csomagok, amelyeknek a sorszma az ablakon bellre esik, ezek a csomagok tovbbtdnak.
5. Az [rcv_base, rcv base+N-lJ-rarromtnyo/] bellre es sorszm csomag hibtlan vtele. Ebben az esetben vett csomag a vev ablakn bellre esik, s egy szelektv ACK*csomagot kld vissza a kldnek. Ha a csomagot korbban mg nem vette, azt ideiglenesen trolja. Ha a csomag sorszma a vev ablak alapjval (re v_base a 3.21. brn) egyenl, akkor ezt a csomagot s az sszes korbban puffereit s (az rcv base-zel kezdden) folytonosan szmozott csomagot a felsbb rtegnek kzbesti. Ezt kveten a vev ablakot elrbb viszi annyival, ahny csomagot a felsbb rtegnek kzbestett. Vegyk pldul a 3.25. brt. Amikor az rcv_base=2 sorszm csomag berkezik, azt s a 3-as, 4-es s 5-s csomagokat a felsbb rtegnek kzbesti. 6. Az [rcv_base-N, rcv_base-l] tartomnyon bellre es sorszm csomag hibtlan vtele. Ebben az esetben egy nyugtt kell generlni, annak ellenre, hogy ez egy olyan csomag, amit a vev mr korbban nyugtzott. 7.
3.24. bra, SR-vev esemnyek s reakcik Fontos megjegyezni azt, hogy a 3.24. bra 2. lpsben a vev ismtelten nyugtzza (ahelyett, hogy figyelmen kvl hagyn) azokat a mr megkapott csomagokat, amelyek egy bizonyos, az aktulis ablak alaprtke alatti sorszmmal rendelkeznek. Gyzze meg magt az olvas arrl, hogy ez az ismtelt nyugtzs csakugyan szksges. Adott pldul a kld s vev sorszmainak tartomnya a 3.22. brn, ha nincs nyugta a vevtl a kldig ha lad send_base csomagra, a kld vgl is jra fogja kldeni a send_base csomagot, annak ellenre, hogy egyrtelm (szmunkra, nem a kld szmrai), hogy a vev mr megkapta azt a csomagot. Ha a vevnek nem kellene nyugtznia ezt a csomagot, a kld ablaka sosem mozdulhatna elrbb! Ez a plda az SR protokollok s sok ms protokoll) egy fontos tulajdonsgt mutatja. A kldnl s a vevnl nem mindig azonos, hogy mit tekint hibtlanul megrkezett csomagnak, s mit nem. Az SR protokollok szmra ez azt jelenti, hogy a kld s vev ablakok nem minden esetben fognak egybeesni. A kld s a vev ablakok kztti szinkronizci hinynak fontos kvetkezmnyei vannak, amikor a sorszmok vges tartomnynak valsgval szembeslnk. Fontoljuk meg, hogy mi trtnhetne pldul a sorszmok ngycsomagnyi vges tartomny: 0, 1,2,3, s hrmas ablakmret esetn. Tegyk fl, hogy 0-tl 2-ig a csomagokat a kld elkldte, azok hibtlanul meg is rkeztek s a vev nyugtzta. Ennl a pontnl a vev ablaka a negyedik, tdik s hatodik csomagnl jr, amelyeknek a sorszmai sorrendben: 3,0,1. Most nzznk kt esetet. Az els esetben (a 3.26. (a) brn lthat) az els hrom csomagra elvesztek a nyugtk, s a kld jrakldi ezeket a csomagokat. A vev gy kvetkezknt egy 0-s sorszm csomagot kap, amely az elsnek elkldtt csomag msolata. A msodik esetben (a 3.26. (b) brn lthat) az els hrom csomagra minden nyugta helyesen megrkezett. Ezrt a kld az ablakt elrbb lpteti, s elkldi a negyedik, tdik s hatodik csomagot 3-as 0-s s 1-es sorszmmal (egyez sorrendben). A 3-as sorszm csomag elveszett, de a 0-s sorszm csomag megrkezik - egy j adatot tartalmaz csomag. Tekintsk most a vev nzpontjt a 3.26. brn, ahol egy jelkpes fggny van a kld s a vev kztt, mivel a vev nem ltja a kld cselekvseit. A vev
mindssze csak az ltala a csatornbl kapott s az oda kldtt zenetek sorrendjt figyeli meg. Ami a vevt illeti, a 3.26. brn a kt eset azonos. Nincs mdja, hogy megklnbztesse az els csomag jrakldst az tdik csomag eredeti elkldstl. A helyzet az, hogy az az ablakmret, ami l-gyel kisebb, mint a sorszmok tartomnya, nem hasznlhat. De mennyire kell ki-
Kld
Vev
0 1 2 3 4 5 6 7 8 9 csomO elkldve 012 34 5 678 9 csrni elkldve 0 1 2 3 4 5 6 7 8 9 csom2 elkldve 0 1 2 3 4 5 6 7 8 9 csom3 elkldve, ablak tele 0 1 2 3 4 5 6 7 8 9 ACKO megrk., csom4 elkldve 0 1 2 3 4 5 6 7 8 9 ACK1 megrk., csom5 elkldve 0 1 2 3 4 5 6 7 8 9 csorr.2 IDTLLPS, csom2 jrakldve csom3 megrk., puffereive, ACK3 elkldve 0 1 2 3 4 5 6 7 8 9 csom4 megrk., pufferelve, ACK4 elkldve 0 1 2 3 5 6 7 8 9 csom5 megrk., pufferelve, ACK5 elkldve 0 1 2 3 4 5 6 7 8 9 csom2 megrk., csom2, csom3, csom4, csom5 kzbestve, ACK2 elkldve 0 1 2 3 4 5 6 7 8 9 4 ACK3 megrk., semmit sem kld 0 1 2 3 4 5 6 7 8 9 csomO megrk., kzbestve, ACKO elkldve 0 1 23 4 5 6 7 8 9
3.25. bra. SR-mkds csinek lennie az ablakmretnek? A fejezet vgn lev egyik feladat arra kri az olvast, hogy mutassa meg, hogy SR protokolloknl az ablakmretnek kisebbnek vagy fele akkornak kell lennie, mint a sorszmok tartomnynak mrete. A kapcsold webhelyen tallni fog egy kisalkalmazst, ami az SR protokoll mkdst eleventi meg. Prblja meg vgrehajtani ugyanazokat a ksrleteket, amelyeket a GBN kisalkalmazssal is vgzett. Az eredmnyek megegyeznek az elvrsaival? Ezzel vgre rtnk a megbzhat adattviteli protokollok trgyalsnak. Sok mindent lefedtnk, s szmos mechanizmust mutattunk be, amelyek egytt megbzhat adattvitelt biztostanak. A 3.2. tblzat sszegzi ezeket a mechanizmusokat. Most, hogy mr megfigyelhettk ezeket a mechanizmusokat mkds kzben, s sszellt a kp, arra biztatjuk az olvast, hogy ismt
Kld ablak
(vtel utn)
Kld ablak
(vtel utn)
Vev ablak
(vtel utn)
Vev ablak
(vtel utn)
0 0 0
12 3 0 1 2 12 3 0 1 2 12 3 0 1 2
0 0 0
12 3 0 1 2 12 3 0 1 2 12 3 0 1 2
12 3 0 12 3 0 12 3 0
12 12 12
0 C 0
12 3 0
12
ACK1
1 2 3 0 1 2 12 3 0 12
csom 2 ACK2 0
12 3 0 1 2 12 3 0 1 2
csom 3 csom O
(b)
3.26. bra. Az SR vev dilemmja tl nagy ablakokkal: j csomag vagy jraklds? ptettk be lpsenknt ezeket a mechanizmusokat annak rdekben, hogy a kldt s a vevt sszekt csatornnak egyre nvekv bonyolultsg (s egyre valsghbb) modelljeit kapjuk, vagy hogy a protokollok teljestkpessgt javtsuk.
Csomag rvnytelentsre/jrakldsre hasznljk, esetleg azrt, mert a csomag (vagy a nyugtja) a csatornn elveszett. Mivel idtllpsek elfordulhatnak akkor is, ha a csomag ksik, de nem veszett el (tl korai idtllps), vagy amikor a vev megkapta a csomagot, de a vevtl a kldnek kldtt nyugta elveszett, a vev egy csomag dupliklt msolatait is megkaphatja. Sorszm A kldtl a vev irnyba halad adatcsomagok folyamatos szmozsra hasznljk. A vett csomagok kztt a hinyz sorszm teszi lehetv a vev szmra, hogy szlelje az elveszett csomagot. Csomagok azonos sorszma teszi lehetv a vev szmra, hogy egy csomag dupliklt msolatait felismerje. Nyugta A vev arra hasznlja, hogy a kldvel tudassa, hogy egy csomag vagy csomagsorozat hibtlanul megrkezett. A nyugtk jellemzen az ppen nyugtzott csomag vagy csomagok sorszmt tartalmazzk. A protokolltl fggen a nyugtk lehetnek egyediek vagy kumulldak. Negatv nyugta A vev arra hasznlja, hogy tudassa a kldvel, hogy nem kapta meg a csomagot hibtlanul. A negatv nyugtk jellemzen annak a csomagnak a sorszmt tartalmazzk, amelyik nem rkezett meg helyesen. Ablak, csvezetkezs A kldt korltozni lehet, hogy csak egy adott szmtartomnyba es sorszm csomagokat kldjn. Azltal, hogy megengedett tbb csomag elkldse nyugtra vrakozs nlkl, a kld kihasznltsga javthat a megll-s-vr tpus mkdshez kpest. Hamarosan ltni fogjuk, hogy az ablakmret a vev csomagvteli s pufferelsi kpessge, a hlzat torldsi szintje vagy mindkett alapjn is bellthat.
Fejezzk be a megbzhat adattviteli protokollok trgyalst azzal, hogy tekintetbe vesznk mg egy tovbbi felttelezst a csatorna modelljben, amire a protokoll pl. Emlkezznk vissza, hogy azt feltteleztk, hogy a kld s a vev kztti csatornban a csomagokat nem lehet jrarendezni. ltalnossgban ez a felttelezs sszer akkor, amikor a kldt s a vevt egyetlen fizikai vezetk kti ssze. Ugyanakkor, ha a kettt sszekt csatorna egy hlzat, elfordulhat a csomagok jrarendezse. A csomag-jrarendezs egyik formja az, amikor egy csomag rgi msolatai x sorszmmal vagy nyugtaszmmal megjelennek annak ellenre, hogy sem a kld, sem a vev ablaka nem tartalmazza x-et. A csomagjrarendezssel a csatorna gy tekinthet, mint ami alapveten puffereli a cso magokat, s a jvben brmikor spontn mdon kiadja ezeket a csomagokat. Mivel a sorszmok jra felhasznlhatk, figyelmet kell fordtani az ilyen dupliklt csomagok elleni vdekezsre is. A gyakorlatban hasznlt megkzelts az, hogy gondoskodnak arrl, hogy a kld addig ne hasznlja fel jra a sorszmot, ameddig nem biztos" abban, hogy egy korbban x sorszmmal elkldtt csomag sincs mr a hlzatban. Ezt gy teszi meg, hogy azt felttelezi, hogy egy csomag egy adott maximlis idn tl nem lhet a hlzatban. A TCP nagysebessg hlzatokra val kiegsztse [RFC 1323] krlbell hromperces maximlis csomaglettartamot felttelez. [Sunshine 1978] egy olyan mdszert r le a sor -
A megbzhat adattvitel alapjul szolgl alapelvek ttekintse utn trjnk r a TCP-re - az internet szlltsi rtegbeli, sszekttets-alap, megbzhat szlltsi protokolljra. Ebben az alfejezetben ltni fogjuk, hogy a TCP - annak rdekben, hogy megbzhat adattvitelt nyjtson - sok, az elz alfejezetben trgyalt, mgttes alapelvre tmaszkodik, belertve a hibajelzst, az ismtlseket, a kumulld nyugtkat, az idztket s a fejrszeket a sorszmok s a nyugtaszmok szmra. A TCP-t az RFC 793, RFC 1122, RFC 1323, RFC 2018 s RFC 2581 definiljk.
3.5.1. A TCP-sszekttets
A TCP-t sszekttets-alapnak (connection-oriented) nevezik azrt, mert mieltt egy alkalmazsi folyamat elkezdhetne adatokat kldeni egy msiknak, a kt folyamatnak elszr kezet kell fognia egymssal - azaz elkszt szegmenseket kell kldenik egymsnak, hogy ltrehozzk a ksbbi adattvitel paramtereit. A TCP-sszekttets ltestsnek rszeknt az sszekttets mindkt oldala szmos, a TCP-sszekttetssel sszefgg TCP-llapotvltoz (melyek kzl sokrl ebben cs a 3.7. alfejezetben lesz sz) kezdeti rtkt lltja be. A TCP-sszekttets nem vgpontok kztti TDM- vagy FDM-vonal, mint egy vo nalkapcsolt hlzatban; sem pedig egy virtulis vonal (lsd 1. tjezet), mivel az sszekt- tets-llapot teljes egszben a kt vgrendszerben van jelen. Mivel a TCP protokoll csak a vgrendszerekben fut, s a kzbens hlzati elemeken (tvlasztkon s adatkapcsolati rtegbeli kapcsolkon) nem, a kzbens hlzati elemek nem kezelnek TCP sszekttets-llapotokat. Valjban a kzbls tvlasztk teljes mrtkben lnyegtelenek a TCP-sszekttetsek szmra datagramokat ltnak, nem sszekttetseket.
Egy kis trtnelmi
Vinton Cerf, Rbert Kahn s a TCP/IP Az 1970-es vek elejn a csomagkapcsolt hlzatok nagymrtkben terjedni kezdtek, ahol az AR- PAnet - az internet elfutra csak egy volt a sok hlzat kzl. Mindegyik hlzatnak sajt protokollja volt. Kt kutat, Vinton Cerf s Kbrt Kahn felismerte ezen hlzatok sszekapcso lsnak fontossgt s feltallt egy TCP/IP nev hlzatkzti protokollt (Transmission Control Protocol/Internet Protocol - tvitelvezrl protokoll/intcrnetprotokoll). Mabr Cerf s Kahn kez detben egyetlen egysgnek tekintette a protokollt, ezt ksbb kettvlasztottk TCP-re s IP-rc, amelyek kln-kln mkdtek. Cerf s Kahn 1974 mjusban az 19741. A TCP/lP protokollt, amely a mai internet alapeleme, a PC-k s munkallomsok ltezse eltt, az Ethernetek s ms helyi hlzati technolgik elburjnzsa, s a web, a hanganyagok folyamszer letltse s a csevegs eltt terveztk meg. Cerf s Kahn lttk, hogy igny van egy olyan hlzati protokollra, amelyik egyrszt szleskren tmogat mg nem definilt alkal mazsokat, msrszt pedig lehetv teszi, hogy tetszleges hosztok s adatkapcsolati rtegbeli protokollok egyttmkdjenek. 2004-ben Cerf s Kahn megkaptk az ACM vndordjt, amelyet a szmtstechnika No- beldjnak tartanak, a hlzatok sszekapcsolsa tern vgzett ttr munkjukrt, idertve az
IEEE Transactions on
internet alapvet kommunikcis protokolljnak, a TCP/IP-nek a megtervezst s meg valstst, valamint a hlzati fejlesztsek tern vgzett lelkes vezeti munkjukrt.
A TCP-sszekttets duplex (full-duplex) szolgltatst biztost: ha az egyik hoszton fut A folyamat s a msik hoszton fut B folyamat kzlt TCP-sszekttets van, akkor alkalmazsi rtegbeli adat haladhat az A folyamattl a B folyamatig, mikzben alkalmazsi rtegbeli adat halad a B folyamattl az A folyamat fel. Ugyanakkor egy TCP-sszekttets mindig ktpontos (point-to-point) sszekttets, azaz egyetlen kld s egyetlen vev kztt jn ltre. Az gynevezett tbbesklds (lsd 4.7. alfejezet) - adat tvitele egy kldtl tbb vevnek egyetlen klds mvelettel - a TCP-vel nem lehetsges. A TCP-nl kt hoszt trsasg, de hrom mr tmeg! A kvetkezkben tekintsk t, hogyan jn ltre egy TCP-sszekttets. Tegyk fel, hogy egy, az egyik hoszton fut folyamat sszekttetst szeretne ltesteni egy, a msik hoszton fut msik folyamattal. Emlkezznk vissza arra, hogy az sszekttetst kezdemnyez folyamatot kliens- (vagy gyfl-) folyamatnak nevezik, mg a msik folyamatot szerver- (vagy kiszolgl-) folyamatnak. A kliens alkalmazsi folyamata elszr rtesti a kliens szlltsi rtegt, hogy sszekttetst szeretne ltesteni egy szerveren fut folyamattal. Idzzk fel a 2.7. alfejezetbl, hogy egy Java-kliensprogram a
t gy lltjk be, hogy a TCP-szegmens (amikor egy IP-datagramba cso magoljk) biztosan belefrjen egyetlen adatkapcsolati rtegbeli keretbe. Az MTU jellemz rtkei: 1460 bjt, 536 bjt s 512 bjt. Volt olyan javaslat ennek megoldsra, hogy hatrozzk meg az tvonal MTU-jt (a legnagyobb adatkapcsolati keret, ami a forrstl a vevig minden adatkapcsolaton tkldhet [RFC 1191)), s az MSS-t az tvonal MTU-rtke
darabokra trdeli a fjlt (kivve az utols tredket, ami gyakran kisebb lesz, mint az MSS). Ugyanakkor az interaktv alkalmazsok gyakran kldenek az MSS-nl kisebb adattredkeket. Pldul a tvoli bejelentkezs alkalmazsok (mint amilyen a Telnet) esetben a TCP-szegmensben az adatmez gyakran csak egy bjtos. Mivel a TCP-fejrsz jellemzen 20 bjt (12 bjttal tbb, mint az UDP-fejrsz), a Telnet ltal kldtt szegmensek csupn 21 bjt hosszak is lehetnek.
A 3.28. bra a TCP-szegmens szerkezetet mutatja be. Ahogyan az UDP esetben is, a fejrsz tartalmaz forrs- s clportszmokat. amiket a felsbb rtegbeli alkalmazsoktl szrmaz alkalmazsokhoz kldtt adat nyalbolshoz/nyalbbontshoz hasznl. Ugyancsak ahogy az UDF-nl is, a fejrsz tartalmaz egy ellenrz sszeg mezt (check- sum field). A TCP-szegmens fejrsze ezeken kvl az albbi mezket tartalmazza: A 32 bites sorszmmezt (sequence number field) s a 32 bites nyugtaszmmezt (acknowledgement number field) a TCP-kiild s vev a ksbb lert mdon a megbzhat adattviteli szolgltats megvalstshoz hasznlja. A 16 bites vteli ablak (rciv window) mezt forgalomszablyozsra hasznlja. A 4 bites TCP-fejrszhosszmez (TCP header length field) a TCP-fejrsz hosszt adja meg 32 bites szavakban mrve. A TCP-fejrsz a TCP-opcik meznek ksznheten vltoz hosszsg lehet. Az opcik mez jellemzen res, gy egy tipikus TCP-fejrsz hossza 20 bjt. Az opcionlis s vltoz hosszsg opcik mez (options field) akkor hasznlatos, amikor a kld s a vev a legnagyobb szegmensmretrl (MSS) egyezkedik, vagy nagysebessg hlzatok esetn ez tartalmazza az ablaksklatnyezt. Egy idblye- gezsi opcit is definiltak. Tovbbi rszletek az RFC 854-ben s az RFC 1323-ban tallhatk. A jelzmez (flag field) hat bitet tartalmaz. Az ACK bitet annak jelzsre hasznljk, hogy a nyugtamezben lev rtk rvnyes, azaz a szegmens egy nyugtt tartalmaz egy sikeresen vett szegmensre. Az RST, SYN s FIN biteket az sszekttets felptshez s lebontshoz hasznljk, amint azt ennek az alfejezetnek a vgn trgyalni fogjuk. A PSH bit belltsa azt jelzi, hogy a vevnek az adatot azonnal tovbbtania kell a felsbb rtegnek. Vgl, az URG bitet annak jelzsre hasznljk, hogy a szegmensben olyan adat (is) van, amit a kld oldali felsbb rtegbeli entits srgseknt jellt meg. Ezen srgs adat utols bjtjnak helyt a 16 bites srgssgi adat mutat mez (urgent data pointer field) adja meg. A TCP-nek rtestenie kell a vevoldali felsbb rtegbeli entitst, ha srgs adat van, s l kell adnia egy mutati, ami a srgs adat vgt adja meg. (A gyakorlatban a PSH bitet, az URG bitet s a srgs adat mutatt nem hasznljk, azonban a teljessg kedvrt megemltjk ezeket a mezket is.)
Sorszmok s nyugtaszmok
A kt legfontosabb mez egy TCP-szegmens fejrszben a sorszm mez s a nyugtaszm mez. Ezek a mezk a TCP megbzhat adattviteli szolgltatsnak a kritikus rszt kpzik. De mieltt belemennnk abba, hogy ezeket a mezket hogyan hasznljk a megbzhat adattvitel biztostsra, elszr nzzk meg, hogy a TCP pontosan mit tesz ezekbe a mezkbe. A TCP az adatokai bjtok strukturlatlan, de rendezett folyamnak tekinti. Ez abban is tkrzdik, ahogy a TCP a sorszmokat hasznlja, mivel a sorszmok az tvitt bjtok folyamt szmoljk, nem pedig az tvitt szegmensek sorozatt. Egy
szegmens sorszma (sequence number fr a segment) gy a szegmens els bjtjnak bjtfolyambeli szma. Nzznk egy pldt. Tegyk fel, hogy egy folyamat az A hoszton egy adatfolyamot szeretne kldeni egy TCP-sszekttetsen keresztl egy B hoszton fut folyamatnak. Az A hoszton a TCP implicit mdon szmozni fog minden bjtot az adatfolyamban. Ttelezzk fel, hogy az adatfolyam egy 500 000 bjtos fjlbl ll, az MSS 1000 bjt s az adat- 32 bit
Forrsport szma Sorszm Nyugtaszm TCP-fej rszhossz Nem hasznlt O l I t- z CC to V/* >3 < CL a: un U-
Clport szma
Vteli ablak
Opcik
Adat
elllthassa. Ennlfogva A B-nek kldtt kvetkez szegmense az 536-ot fogja tartalmazni a nyugtaszm mezjben. Mivel a TCP csak a folyam els hinyz bjtjig nyugtzza a bjtokat, a TCP gynevezett kumulld nyugtkat (cumulative acknowledgements) nyjt. Az utols plda egy fontos, de knyes krdst is felvet. Az A hoszt a msodik szegmens (536-tl 899-ig terjed bjtok) tvtele eltt kapta meg a harmadik szegmenst (900-tl
1000 //
1999 //
499 999
karaktereket a tvoli hely mr megkapta s feldolgozta. gy minden karakter ktszer halad t a hlzaton az alatt az id alatt, ami a felhasznl billen tyletstl eltelik addig, amg a karakter megjelenik a felhasznl monitorn.
A hoszt
B hoszt
A felhasznl '
C' -t gpel
Id
Id
adatmezjben a 'C' bet ASCII-brzolsa tallhat. Ennek a msodik szegmensnek a sorszma 79, a szervertl a kliensnek kldtt adatfolyam kezdeti sorszma e TCPsszekttets sorn, mivel ez a legels bjtja a szer ver llal kldtt adatoknak. Figyeljk meg, hogy a klienstl a szervernek kldtt adatra a
nyugtt a szervertl a kliensnek kldtt adatot tartalmaz szegmens szlltja - ezt nevezik a szervertl a kliensnek kldtt adatszegmensre rltetett (piggybacked) nyugtnak. A harmadik szegmenst a kliens kldi a szervernek. Ennek az egyetlen clja az, hogy a szervertl kapott adatot nyugtzza. (Emlkezznk vissza, hogy a msodik szegmens tartalmazott a szervertl a kliensnek kldtt adatot - a 'C' bett.) Ennek a szegmensnek res az adatmezje (azaz a nyugta nincs rltetve a klienstl a szervernek kldtt adatra). A szegmensnek 80-as van a nyugtaszm mezjben azrt, mert a kliens a bjtfolyamot a 79-es sorszmig megkapta, s most a 80-as s azt kvet bjtokat vrja. Mivel a szegmens nem tar talmaz adatot, furcsnak tallhatja, hogy ennek a szegmensnek is van sorszma. De mivel a TCP-nek van egy sorszm mezje, a szegmensnek kell, hogy legyen valamilyen sorszma.
A krbejrsi id becslse
A TCP-idztk kezelsnek tanulmnyozst kezdjk annak megfontolsval, hogy a TCP hogyan hatrozza meg becslssel a kld s a vev kzti krbejrsi idt. Ezt a kvetkezk szerint valstja meg. Egy szegmens minta RTT-je, jelljk SampleRTT-vel, azaz id, ami a szegmens elkldse (azaz az lP-nek trtn tadsa) s a szegmensre kapott nyugta vtele kztt telik el. Ahelyett, hogy minden elkldtt szegmensnl megmrn a SampleRTT-t, a legtbb TCPimplementci egyszerre csak egy SampleRTT mrst hajt vgre. Azaz egy tetszleges idpillanatban a SampleRTT-t csak egy ppen kikldtt, de mg nem nyugtzott szegmensre becsli meg, ami RTT-nknt krlbell egyszer eredmnyez j SampleRTT rtket. Tovbb a TCP sohasem szmt SampleRTT-t egy jrakldtt szegmensre - csak egyszer kikldtt szegmensekre mr SampleRTT-t. (A fejezet vgn tallhat egyik feladat arra kri az olvast, hogy fontolja meg azt, mirt van ez gy.) A SampleRTT rtkek nyilvnvalan szegmensrl szegmensre ingadozni fognak az tvlasztkban fellp torlds s a vgrendszerek a vltoz terhelse miatt. Emiatt az ingadozs miatt brmely SampleRTT rtk a jellemztl eltr lehet. Annak rdekben, hogy egy jellemz RTT-t lehessen becslssel meghatrozni, ezrt termszetes, hogy a SampleRTT rtkeknek valamilyenfajta tlagt vesszk. A TCP a SampleRTT rtkek egy tlagt kezeli, az EstimatedRTT-nek nevezett vltozban.
Mikor megkapja az j SampleRTT rtket, a TCP az albbi kplet alapjn frissti az EstimatedRTT-t:
A fenti kplet programozsi nyelvi llts formjban van felrva - az EstimatedRTT j rtke az EstimatedRTT korbbi rtknek s a SampleRTT j rtknek slyozott kombincija. Az a javasolt rtke a = 0,125 (azaz 1/8) [RFC 2988], amely esetben a fenti kplet a kvetkezkppen alakul: EstimatedRTT = 0 , 8 7 5 x EstimatedRTT + 0 , 1 2 5 x SampleRTT Figyeljk meg, hogy az EstimatedRTT a SampleRTT rtkek slyozott tlaga. Ahogy a fejezet vgn egy feladatban trgyaljuk, ez a slyozott tlag nagyobb slyt ad az jabb mintknak, mint a rgi mintknak. Ez termszetes, mivel az jabb mintk jobban tkrzik a jelenlegi torldsi a hlzatban. A statisztikban az ilyen tlagot exponencilis slyozott mozg tlagnak (exponential weighted moving average, EWMA) nevezik. Az exponencilis sz az EWMA-ban azrt szerepel, mert egy adott SampleRTT slya a frisstsek elrehaladtval exponencilis gyorsasggal cskken. A feladatoknl arra fogjuk krni az olvast, hogy magyarzza meg az exponencilis kifejezst az EstimatedRTT esetben.
Hvek a gyakorlatban
A TCP megbzhat adattvitelt biztosit pozitv nyugtk s idztk hasznlatval nagyjbl gy, ahogy azt a 3.4. alfejezetben megtanultuk. A TCP a hibtlanul megkapott adatokat nyug tzza, s akkor kldi jra a szegmenseket, amikor a szegmenseket vagy az azoknak megfelel nyugtkat elveszettnek vagy hibsnak gondolja. A TCP bizonyos verziinak implicit negatv nyugtzsi mechanizmusa is van - a TCP gyors jrakldsi mechanizmusnl egy adott szeg mensre vett hrom pozitv nyugta a kvetkez szegmensre implicit negatv nyugtaknt szol gl, az adott szegmens jrakldst vltva ki ezzel mg az idtllps eltt. A TCP sorszmok sorozatt hasznlja, hogy lehetv tegye a vev szmra az elveszett vagy kettztt szegmen sek azonostst. Ahogy megbzhat adattviteli protokollunk, az rdt3.0 esetben is, maga a TCP nem tudja biztosan megmondani, ha egy szegmens vagy a nyugtja vajon elveszett, meg srlt vagy nagy kssben van. A kldnl a TCP reakcija ugyanaz lesz: jrakldi a krdses szegmenst. A TCP is hasznl csvezetkezst, lehetv tve a kld szmra, hogy szmos elkldtt, de mg nem nyugtzott szegmense legyen f ggben egy tetszleges idpillanatban. Korbban mr lttuk, hogy a csvezetkezs nagymrtkben javthatja egy munkamenet tbocstkpessgt, amikora szegmensmret sa krbejrsi ksleltets arnya kicsi. A kld fggben lev, nyugtzatlan csomagjainak maximlis szmt a TCP forgalomszablyozsi s torldskezelsi mecha nizmusai hatrozzk meg. A TCP forgalomszablyozst az alfejezct vgn, a TCP torldskezelst pedig a 3.7. alfejezetben trgyaljuk. Jelenleg egyszeren csak tisztban kell lennnk azzal, hogy a TCP-kkl csvezetkezst hasznl.
A 3.31. bra a SampleRTT rtkeket s az EstimatedRTT-t brzolja a = 1/8 rtk esetn egy TCP-sszekttetsre a gaia.cs.umass.edu (Amherst, Massachusetts) s a fantasia.eurecom.fr (Franciaorszg dli rsze) kztt. Vilgos, hogy a Samp leRTT ingadozsai kisimulnak az EstimatedRTT szmtsa sorn. Amellett, hogy van egy becslsnk az RTT-re, az is fontos, hogy ha van egy mrtknk az RTT ingadozsra is. Az (RFC 2988) az RTT ingadozst, a DevRTT-t, annak a becslseknt definilja, hogy jellemzen mennyivel tr el a SampleRTT az EstimatedRTT-tl:
R T T ( m
Id (s)
Emlkezznk r, hogy az internet hlzati rtegbeli szolgltatsa (IP-szolgltats) nem megbzhat. Az IP nem garantlja a datagram kzbestst, nem garantlja a
datagramok sorrendhelyes kzbestst, s nem garantlja a datagramok srtetlensgt. Az IP-szolgl- tatssal a datagramok elraszthatjk az tvlasztk puffereit, s gy soha sem rik el a clllomsukat, a datagramok sorrenden kvl is rkezhetnek, valamint a datagramban a bitek megsrlhetnek (tvltozhatnak 0-rl 1-re, vagy fordtva). Mivel a szlltsi rtegbeli szegmenseket IP-datagramok szlltjk t a hlzaton, a szlltsi szegmensek is szenved hetnek ezektl a problmktl. A TCP megbzhat adattviteli szolgltatst hoz ltre az IP megbzhatatlan, legjobbra trekv (best eTort) szolgltatsa fltt. A TCP megbzhat adattviteli szolgltatsa gondoskodik arrl, hogy az adatfolyam, amelyet a folyamat kiolvas a TCP vteli puTerbl, srtetlen, folyamatos, duplikcitl mentes s helyes sorrend legyen - azaz a bjtfolyam pontosan megegyezzen azzal a bjtfolyammal, amelyet az sszekttets msik oldaln lev vgrendszer elkldtt. Sok, a 3.4. alfejezetben tanulmnyozott alapelvet hasznl fel a TCP ahhoz, hogy egy megbzhat adattvitelt biztostson. A megbzhat adattviteli megoldsaink korbbi fejlesztse sorn elvileg az volt a legknnyebb, hogy azt feltteleztk, hogy minden elkldtt, de mg nem nyugtzott szegmenshez egy egyedi idzt van rendelve. Mg ez elmletben nagyszer, a valsgban az idztkezels jelents tbbletrfordtst ignyelhet. Ennlfogva az ajnlott TCP idzt- kezelsi eljrsok [RFC 2988) egyetlen jrakldsi idztt alkalmaznak mg tbb elkldtt, de mg nem nyugtzott szegmens esetn is. Az ebben a rszben lert TCP protokoll is ezt az egyetlen idzts ajnlst kveti. Kt, egymsra pl lpsben fogjuk trgyalni azt, hogy a TCP hogyan nyjt megbzhat adatszlltst. Elszr egy igen leegyszerstett lerst mutatjuk be a TCP-kldnek, amely csak idtllpseket hasznl az elveszett szegmensek utni helyrelltshoz, ezt kveten egy teljesebb lerst nyjtunk, amely az idtllpsek mellett kettztt nyugtkat is hasznl. A kvetkez trgyals sorn felttelezzk, hogy adatot csak az egyik irnyba kldenek A hoszttl a B hosztnak, s hogy az A hoszt egy nagymret fjt kld. A 3.32. bra a TCP-kld egy igen leegyszerstett lerst mutatja be. Ltni fogjuk, hogy a TCP-kldben hrom jelents, az adatszlltshoz s az jrakldshez kapcsold esemny van: adat fogadsa a felsbb alkalmazstl, idzt idtllpse s nyugta fogadsa.
/* Felttelezzk, hogy a kldt nem korltozza sem a TCP forgalomszablyozsa, sem torldskezelse, hogy a fellrl rkez adat mrete kisebb, mint az MSS, s hogy az adatt vitel csak egyirny. */ NextSeqNum=InitialSeqNumber SendBase=InitialSeqNumber loop (rkk) { switch(event ) event: adat rkezett a felsbb alkalmazstl TCP szegmens ltrehozsa NextSeqNum sorszmmal if (az idzt jelenleg nem fut)
idzt indtsa szegmens tadsa az IP-nek NextSeqNum=NextSeqNum+length(adat) break; event: idzt idtllpse a legkisebb sorszm mg nem nyugtzott szegmens jrakldse idzt indtsa break; event: nyugta rkezett y rtk ACK mezvel if (y > SendBase) { SendBase=y if (van jelenleg mg nem nyugtzott szegmens) idzt indtsa
}
242
3.
SZLLTSI
RTEG
Eddig egy nagyon leegyszerstett vltozatt mutattuk be annak, hogy a TCP hogyan nyjt megbzhat adattvitelt. De mg ez a nagyon leegyszerstett vltozat is sok finomsgot tartalmaz. Ahhoz, hogy pontosabb kpet kapjunk a protokoll mkdsrl, menjnk vgig nhny egyszer forgatknyvn.* A 3.33. bra az els esetet mutatja be, ahol az A hoszt egyetlen szegmenst kld B hosztnak. Ttelezzk fel, hogy ennek a szegmensnek 92 a sorszma s 8 bjtnyi adatot tartalmaz. E szegmens elkldse utn az A hoszt egy szegmensre vr B hoszt ti 100-as nyugtaszmmal. Noha az A ltal kldtt szegmenst B megkapta, a B-tl A-nak kldtt nyugta elvsz. Ebben az esetben idtllps kvetke zik be, s az A hoszt jrakldi a krdses szegmenst. Termszetesen, amikor B megkapja az jrakldtt szegmenst, a sorszmbl szleli, hogy a szegmens olyan adatot tartalmaz, amelyet mr egyszer megkapott. Ennlfogva a B hosztban a TCP figyelmen kvl hagyja az jrakldtt szegmensben lv bjtokat. A 3.34. brn lthat msodik forgatknyvben az A hoszt egyszerre kt szegmenst kld ki. Az els szegmens sorszma 92 s 8 bjtnyi adatot tartalmaz, a msodik szegmens sorszma 100-as s 20 bjtnyi adatot tartalmaz. Tegyk fel, hogy mindkt szegmens srtetlenl megrkezik B-hez, s B kt kln nyugtt kld ezeknek a szegmenseknek. Ezek kzl a nyugtk kzl az elsnek 100-as nyugtaszma, a msodiknak pedig 120-as nyugtaszma van. Most pedig ttelezzk fel, hogy egyik nyugta sem rkezik meg az A hoszthoz az idz t lejrta eltt. Amikor bekvetkezik az idtllps, az A hoszt jrakldi az els szegmenst 92-es sorszmmal s jraindtja az idztt. Mindaddig, amg a msodik szegmensre a nyugta az j idtllps eltt meg nem rkezik, a msodik szegmens nem kerl A hoszt jrakldsre.
T
Id
v
Id
3.5.
B hoszt
243
Idtllps
X-'
(veszts)
244
3. A
szlltsi rteg
3.5.
Sorsz-92 idztsi
Sorsz=92 idztsi
A harmadik s egyben utols forgatknyvben ttelezzk fel, hogy az A hoszt kt szeg- menst kld ki, pontosan gy, ahogy azt a msodik pldban tette. Az els szegmens nyugtja elveszik a hlzatban, de kzvetlen az idtllps eltt az A hoszt 12-as nyugtaszmmal megkap egy nyugtt. Kvetkezskppen az A hoszt tudja, hogy a B hoszt a 119-es bjtig bezrlag mindent megkapott, gy az A hoszt egyik szegmenst sem kldi jra. Ezt a forgatknyvet a 3.35. bra szemllteti.
ksbb ismt lejr, a TCP megint jra fogja kldeni ezt a szegmenst, az idztsi intervallumot pedig
246
3. A
szlltsi rteg
3.5.
247
8 hoszt
v
Id
3,0 msodpercre lltja. Ily mdon az idkzk rtekei minden egyes jrakldst kveten exponencilisan nnek. Amikor azonban az idzt valamelyik kt msik esemny utn indul (vagyis ha a fels alkalmazstl adatot vagy nyugtt kap), a Timeoutlnterval-t a legutbbi EstimatedRTT s DevRTT rtkekbl szmtja. Ez a mdosts a torldskezels egy korltozott formjt jelenti. (A TCP torldskeze- lsnek szleskrbb vltozatait a 3.7. alfejezetben fogjuk tanulmnyozni.) Az a legvalsznbb, hogy az idzt lejrtt a hlzatban fellp torlds okozta, azaz tl sok csomag rkezett egy (vagy tbb) tvlaszt vrakozsi sorba a forrs s a cl kztti tvonalon, amely a csomagok eldobst s/vagy hossz sorbanllsi ksleltetst okozott. Torldskor, ha a forrsok kitartan folytatjk a csomagok jrakldst, a torlds rosszabb vlhat. Ehelyett a TCP udvariasabban viselkedik, s minden kld egyre hosszabb idkzket kveten kldi jra a csomagokat. Ltni fogjuk, amikor az 5. fejezetben a CSMA/CD-t tanulmnyozzuk, hogy hasonl tletet hasznl az Ethernet is.
Gyors jraklds
Az idtllpsekkel kivltott jrakldsek egyik problmja az, hogy az idtllpsi idtartam arnylag hossz lehet. Amikor egy szegmens elvsz, ez a hossz idtllpsi intervallum arra knyszerti a kldt, hogy ksleltesse az elveszett csomag jrakldst, ennek kvetkeztben nvelve a vgpontok kztti
248
3. A
szlltsi rteg
3.5.
249
________________________________________________________nyugtt kld.__________________________________________ A vrt sorszmmal, sorrendben rkez szegmens rkezse. Egy msik sorrendhelyes szegmens Egyetlen, mindkt sorrendhelyes szegmenst nyugtz, kumulld nyugta azonnali kldse.
nyugtzsra vr._______________________________________________________________________________________________ Sorrenden kvli, a vrtnl nagyobb sorszm Azonnal kettztt nyugtt kld, amely a kvet-
szegmens rkezse. Rs szlelse.___________________________kez bjt sorszmt jelzi (amely a rs als szle).___________ Olyan szegmens rkezse, amely rszben vagy Azonnal nyugtt kld, feltve, hogy a szegmens a
az idtllpsi esemny bekvetkezse eltt kpes szlelni a csomagvesztst az gynevezett kettztt nyugtk megfigyelsvel. Egy kettztt nyugta (duplicate ACK) egy olyan nyugta, amely ismtelten nyugtz egy olyan szegmenst, amelynek egy korbbi nyugtjt a kld mr megkapta. Ahhoz, hogy megrtsk a kld vlaszt a kettztt nyugtra, elszr meg kell nznnk azt, hogy a vev elszr is mirt kld kettztt nyugtt. A 3.3 tblzat a TCP-vev nyugta-ltrehozsi irnyelveit [RFC 1122 RFC 2581) sszegzi. Amikor egy TCP-vev olyan szegmenst kap, amelynek a sorszma nagyobb, mint a kvetkez, vrt sorrendben kvetkez sorszm. Rst szlel az adatfolyamban, azaz egy hinyz szegmenst. Ezt a rst egy, a hlzatban elveszett vagy tsorrendezett szegmens okozhatta. Mivel a TCP nem hasznl negatv nyugtzst, a vev nem tud explicit negatv nyugtt visszakldeni a kldnek. Ehelyett egyszeren ismtelten nyugtzza (azaz egy kettztt nyugtt hoz ltre) az ltala megkapott adatok utols sorrend helyes bjtjt. (Vegyk szre, hogy a 3.3. tblzat azt az esetet veszi figyelembe, amikor a vev nem hagyja figyelmen kvl a nem sorrendben rkez szegmenseket.) Mivel a kld gyakran kld nagyszm szegmenst szorosan egymst kveten, ha egy szegmens elveszik, valszn, hogy sok egymst kvet kettztt nyugta lesz. Ha a TCP-kld ugyanarra az adatra hrom kettztt nyugtt kap, ezt annak jell veszi, hogy a hromszor nyugtzott szegmenst kvet szegmens elveszett. (A feladatok kztt megvizsgljuk azt a krdst, hogy a kld mirt vr hrom kettztt nyugtra ahelyett, hogy csak egyetlen kettztt nyugtt vrna.) Abban az esetben, ha hrom kettztt nyugtt kap, a TCP-kld gyors jrakldst (fst retransmit) [RFC 2581) hajt vgre, ismtelten elkldve a hinyz szegmenst, mg mieltt annak idztje lejrna. Ezt a 3.36. bra mutat ja, ahol a msodik szegmens elveszett, majd mg az idztjnek lejrta eltt jrakldsre kerlt. Gyors jrakldst alkalmaz TCP esetn az albbi kdrszlet vltja fel a 3.32. b rn a nyugta rkezett esemnyt:
event: nyugta rkezett y rtk ACK mezvel if (y > SendBase) { SendBase=y if (van jelenleg mg nem nyugtzott szegmens) idzt indtsa
}
250
else { /* egy kettztt nyugta egy mr nyugtzott szegmensre */ az y-ra kapott kettztt nyugtk szmnak nvelse if (y-ra kapott kettztt nyugtk szma = = 3 ) { /* TCP gyors jraklds */ az y sorszm szeg mns jrakldse > break;
Korbban mr megfigyeltk, hogy sok knyes krds merl fel, amikor egy valdi protokollban, mint amilyen a TCP is, egy idtllpsi/jrakldsi mechanizmust megvalstanak. A fenti eljrsok, amelyek a tbb mint 15 ves TCP-idztkkel szerzett tapasztalatok eredmnyekppen fejldtek ki, meg kell gyzzk az olvast arrl, hogy valban ez a helyzet!
B hoszt
A hoszt
ACK=100
ACK-100 ACK=*100 ACK=100
Idtllps -
3.5.
SSZP.KTTETS-ALAP SZLLTS:
TCP
251
3.5.5. Forgalomszablyozs
Emlkezznk vissza arra, hogy a hosztok egy TCP-sszekttets mindkt oldaln elklntettek egy vteli puffrt az sszekttets szmra. Amikor a TCPsszekttets olyan bjtokat vesz, amelyek hibtlanok s sorrendben rkeznek, az adatokat a vteli pufferbe helyezi. A hozz kapcsold alkalmazsi folyamat ebbl a pufferbl olvassa az adatot, de nem felttlenl abban a pillanatban, amikor az adat megrkezik. St, elfordulhat, hogy a vev alkalmazs valamilyen ms feladattal van elfoglalva s csak hossz idvel a megrkezse utn prblja meg kiolvasni az adatot. Ha az alkalmazs viszonylag lassan olvassa ki az adatot, a kld igen knnyen tltltheti az sszekttets vteli puffert azltal, hogy tl gyorsan, tl sok adatot kld. A TCP az alkalmazsai szmra egy forgalomszablyozsi szolgltatst (flowcontrol service) biztost azrt, hogy kizrja annak a lehetsgt, hogy a kld tltlti a vteli puffert. A forgalomszablyozs ekkppen egy sebessgi!leszt szolgltats - sszeilleszti a kld kldsi sebessgt azzal a sebessggel, amellyel a vev alkalmazs kiolvas. Ahogy korbban megjegyeztk, az IP-hlzatban fellp torlds
3.5.
SSZP.KTTETS-ALAP SZLLTS:
TCP
252
a TCP-kldt is elnyomhatja - a kld szablyozsnak ezt a formjt torldskezelsknt (congestion control) emltik, amely tmaterletet rszleteiben a 3.6. s 3.7. alfejezetekben fogjuk felderteni. Habr a for galomszablyozs s a torldskezels ltal vgzett mveletek hasonlak (a kld gtolsa),
3.5.
OSSZLKTTF.THS-AIAP SZLLTS:
nyilvnvalan nagyon klnbz okok miatt hajtjk vgre azokat. Sajnos sok szerz ezeket a kifejezseket egymssal felcserlhet rtelemben hasznlja, s a blcs olvasnak kellene okosnak lennie s klnbsget tennie kztk. Most pedig trjnk r arra, hogy a TCP hogyan nyjtja forgalomszablyozsi szolgltatst. Annak rdekben, hogy lssuk a fktl az erdt, jelen alfejezet sorn vgig azt felttelezzk, hogy olyan a TCP-megvalsts, hogy a TCP-vev a sorrenden kvli szegmenseket figyelmen kvl hagyja. A TCP gy gondoskodik a forgalomszablyozsrl, hogy a kldnek egy vteli ablak (rciv window) nev vltozt kell fenntartania. Nem hivatalosan a vteli ablakot arra hasznljk, hogy a kldnek fogalma lehessen arrl, hogy a vevnl mg mennyi szabad pufferterlet rhet el. Mivel a TCP duplex, a kldk az sszekttets mindkt oldaln kln vteli ablakot tartanak fenn. Vizsgljuk meg a vteli ablakot a fjltvitel krnyezetben. Ttelezzk fel, hogy az A hoszt egy TCPsszekttetsen keresztl egy nagy fjlt kld B hosztnak. B hoszt elklnt egy vteli puffrt ezen sszekttets szmra - jellje ennek mrett az RcvBuf f er. Definiljuk az albbi vltozkat: LastBy teRead: az adatfolyamban lev utols bjt szma, amelyet a B alkalmazsi folyamata kiolvasott a pufferbl. LastByteRcvd: az adatfolyamban lev utols bjt szma, amely a hlzatbl megrkezett s B-nl a vteli pufferbe kerlt. Mivel a TCP szmra nem megengedett, hogy a kijellt puffrt tltltse, a kvetkeznek kell teljeslnie:
TCP
253
Adat az IP-rl
3.5. 0
SZLLTS: TCP
R c vB u f f r
254
RcvVindow i
Szabad hely
TCP-adat a pufferben
Alkalmaz si folyamat
dow = RcvBuf fer-t llt be. Vegyk szre, hogy ahhoz, hogy ezt sikeresen
megtegye, a B hosztnak szmos sszekttets-specifikus vltozt kell nyomon kvetnie. Ezzel szemben az A hoszt kt vltozt kvet nyomon, a LastByteSent (utoljra el kldtt bjt) s a LastByteAcked (utoljra nyugtzott bjt) vltozkat. Vegyk szre, hogy e kt vltoz klnbsge, LastByteSent LastByteAcked, az A ltal az sszekttetsbe kldtt nyugtzatlan adat mennyisge. Azltal, hogy a nyugtzatlan adat mennyisgt az RcvWindow rtke alatt tartja, az A hoszt biztostva van arrl, hogy nem tlti tl a B hoszt vteli puffert. Ennek kvetkeztben az A hoszt az sszekttets sorn vgig biztostja azt, hogy teljesljn a kvetkez:
3.5.
OSSZKTTETS-ALAP SZLLTS:
megoldsa rdekben a TCP-szabvny megkveteli az A hoszt ti, hogy amikor a B vteli ablaka nulla, akkor is folytassa a szegmensek kldst egy bjt adattal. Ezeket a szegmenseket nyugtzni fogja a vev. Vgl is a puffer elkezd kirlni, s a nyugtk egy nem nulla RcvWindow rtket fognak tartalmazni. A knyv szmra ltrehozott online webhely a http://www.awl.com/kurose-rosson , egy interaktv Java-kisalkalmazst biztost a TCP vteli ablaka mkdsnek szemlltetsre. A TCP forgalomszablyozsnak ismertetse utn rviden megemltjk, hogy az UDP nem biztost forgalomszablyozst. Hogy megrtsk ezt a tnyt, vegyk fontolra egy sor UDP- szegmensnek az A hoszton lev folyamattl a B hoszton lev folyamatnak trtn kldst. Egy jellemz UDP-megvalstsnl az UDP sszefzi a szegmenseket egy vges mret puf- ferben, amely megelzi a megfelel szoketet (azaz a folyamathoz vezet ajtt). A folyamat alkalmanknt egy teljes szegmenst olvas ki a pufferbl. Ha a folyamat nem olvassa ki elg gyorsan a szegmenseket a pufferbl, a puffer tlcsordul, s a szegmensek eldobsra kerlnek.
TCP
255
szerveroldali TCP-nek. Ez a specilis szegmens nem.tartalmaz alkalmazsi rtegbeli adatot, de a szegmens fejrszben (lsd 3.28. bra) az egyik jelzbit, a SYN bit, 1-re van lltva. Emiatt erre a specilis szegmensre SYNszegmensknt hivatkoznak. Ezenfell a kliens vletlenszeren vlaszt egy kezdeti sorszmot (client_isn), s ezt a szmot a kez deti TCP SYN-szegmens sorszmmezjbe teszi. Ezt a szegmenst begyazza egy IP-datagramba, s elkldi a szervernek, jelents rdeklds trgyt kpezi a client_isn megfelelen vletlenszer megvlasztsa, annak rdekben, hogy bizonyos, a biztonsgot rint tmadsokat elkerljnk [CERT 2001-09). 2. lps. Amint a TCP SYN-szegmenst tartalmaz IP-datagram megrkezik a szerver hoszthoz (felttelezve, hogy megrkezik!), a szerver eltvoltja a TCP SYN-szegmenst a datagrambl, kijelli a TCP-puffereket s -vltozkat a sszekttets szmra, s egy sszekttets engedlyezve szegmenst kld a kliens TCP-nek. (A 8. fejezetben ltni fogjuk, hogy ezeknek a puffereknek s vltozknak a hromutas kzfogs harmadik lpsnek befejezse eltt trtn kijellse teszi a TCP-t sebezhetv a SYN-elrasz- tsnak nevezetett
256
szolgltatsmegtagads (Denial-of-Service, DoS) tmadssal szemben.) Ez az sszekttets engedlyezve szegmens szintn nem tartalmaz al kalmazsi adatot. A szegmens fejrsze azonban hrom fontos informcit tartalmaz. F.ls, a SYN bit 1-re van lltva. Msodik, a TCP-szegmens fejrsznek nyugta mezje client_isn+l-re van lltva. Vgl, a szerver sajt kezdeti sorszmot (server_ isn) vlaszt, s az rtkt a TCP-szegmens fejrsznek sorszm mezjbe teszi. Ez az sszekttets engedlyezve szegmens tulajdonkppen azt mondja, hogy Megkaptam az egy sszekttets megkezdsre szolgl SYN-csomagodat client_ isn kezdeti sorszmmal. Beleegyezem ezen sszekttets felptsbe. A sajt kezdeti sorszmom server_isn. Az sszekttets engedlyezve szegmensre SYNACK-szegmensknt hivatkoznak. 3. lps. A SYNACK-szegmenst megkapva a kliens szintn kijelli a pulfereket s vltozkat az sszekttets szmra. Ezt kveten a klienshoszt mg egy szegmenst kld a szervernek - ezen utols szegmens a szerver sszekttets engedlyezve szegmenst nyugtzza (a kliens ezt azltal teszi meg, hogy a server_isn+l rtket a TCP-szegmens fejrsznek nyugtamezjbe helyezi). A SYN bit nullra van lltva, mivel az sszekttets ltrejtt. A hromutas kzfogs harmadik fzisa mr szllthat felhasznli adatokat a szegmens adatmezjben a klienstl a szervernek.
Amint e hrom lpst befejeztk, a kliens- s a szerverhosztok adatokat tartalmaz szegmenseket tudnak kldeni egymsnak. E jvbeli szegmensek kzl mindegyikben a SYN bit nullra lesz lltva. Figyeljk meg, hogy az sszekttets felptse rdekben a kt hoszt kztt hrom csomag kerlt tkldsre, ahogy ezt a 3.38. bra szemllteti. Ezrt erre az sszekttets-felptsi eljrsra gyakran utalnak hromutas kzfogsknt (three-way handshake). A TCP hromutas kzfogsnak szmos oldalt dertjk majd fel a feladatok sorn (Mirt van szksg a kezdeti sorszmokra? Mirt van szksg hromutas kzfo gsra szemben a ktutas kzfogssal?). rdekes megfigyelni, hogy egy sziklamsz s az t biztost ember (aki a sziklamsz alatt van, s akinek a feladata a msz biztostktelnek kezelse) is egy hromutas kzfogsos kommunikcis protokollt hasznl, amely
3.5.
OSSZKTTETS-ALAP SZLLTS:
Klienshoszt
TCP
3.38.
257
hromutas
bra.
Nyugta
T
Id Id
ugyanolyan, mint a TCP-, hogy bizonyosak legyenek abban, hogy mindkt fl kszen ll, mieltt a msz mszni kezd. Minden j vget r egyszer, s ugyanez igaz egy TCP-sszekttetsre is. A TCPssze- kttetsben rszt vev mindkt folyamat vget vethet az sszekttetsnek. Amikor egy sszekttets lezrul, a hosztokban az erforrsok (azaz a pufferek s vltozk) felszabadulnak. Pldul ttelezzk fel, hogy a kliens gy dnt, hogy lezrja az sszekttetst, ahogy a 3.39. brn lthat. A kliens alkalmazsi folyamat egy lezr parancsot ad ki. Hz a kliens-TCP-vel elkldet a szerverfolyamatnak egy specilis TCP-szegmenst. Ennek a specilis szegmensnek a szegmensfejrszben egy jelz bit, a FIN bit (lsd 3.28. bra) 1-esre van lltva. Amikor a szerver megkapja ezt a szegmenst, cserbe egy nyugtz szegmenst kld vissza a kliensnek. Ezt kveten a szerver elkldi a sajt lezr szegmenst, amelynek a FIN bitje 1-esre van lltva. Vgl a kliens nyugtzza a szerver lezr szegmenst. Ekkorra a kt hosztnl mr minden erforrs felszabadult. Egy TCP-sszekttets lete sorn mindkt hoszton fut TCP protokoll tmeneteket hajt vgre klnbz TCP-llapotokon (TCP states) keresztl. A 3.40. bra egy jellemz sorrendjt szemllteti a TCP-llapotoknak, amelyeken a kliensTCP thalad. A kli- ens-TCP a LEZRT llapotbl indul. A kliensoldali alkalmazs egy j TCP-sszekttetst kezdemnyez (a 2. fejezetbeli Java-pldnkban egy Socket objektum ltrehozsval). Ez arra kszteti a kliens TCP-jt, hogy egy SYNszegmenst kldjn a szerver TCP-jnek. A SYN-szegmens elkldst kveten a kliens-TCP a SYN_ELKLDVE llapotba kerl. Amg a SYN_ELKLDVE llapotban van, a kliens-TCP egy olyan szegmensre vr a szer- ver-TCP-tl, amely egy nyugtt tartalmaz a kliens elz szegmensre, s amelynek a SYN bitje 1-esre van lltva. Egy ilyen szegmenst vve a kliens TCP a LTREJTT llapotba
Kliens
Szerver
Lezrs
Lezrs
Idztett vrakozs
Lezrva
3.39. bra.
lezrsa
Egy
TCP-sszekttets
Id
Id
30 msodpercig vr
IDZTETT VRAKOZS"
Kliensalkalmazs egyTCPkap,
LEZRT
FIN-t
ACK-t kld
SYN ELKLDVE
ACK-t
semmit sem
lezrst kezdemnyezi
Szerveralkalmazs ltrehoz
LEZRT
UTOLS ACK
FIN-t kld
LEZRSRA VR
SYN T KAP
3.41. bra. Egy szerveroldali TCP ltal jellemzen bejrt TCP-Uapotok sorozata lp. Ameddig a LTREJTT llapot fennll, a TCP-kliens felhasznli (azaz alkalmazs ltal ltrehozott) adatokat tartalmaz TCP-szegmenseket tud kldeni s fogadni. Ttelezzk fel, hogy a kliensalkalmazs gy dnt, hogy le szeretn zrni az sszekttetst. (Vegyk szre, hogy a szerver szintn dnthetne gy, hogy lezrja az sszekttetst.) Ez arra kszteti a kliens TCP-t, hogy egy TCP-szegmenst kldjn, amelynek a FIN bitje 1- re van lltva, s a FIN-RE_VR_1 llapotba lpjen. Amg a FIN-RE_VR_1 llapotban van, a kliens TCP egy nyugtt tartalmaz TCP-szegmensre vr a szervertl. Amikor megkapja ezt a szegmenst, a kliens TCP a F1N-RE_VR_2 llapotba kerl. Ameddig a FIN-RE_VR_2 llapotban van, a kliens a szervertl egy msik szegmensre vr, amelynek a FIN bitje 1-re van belltva - miutn megkapja ezt a szegmenst, a kliens TCP nyugtzza a szerver szegmenst s az IDZTETTJVRAKOZS llapotba lp. Az IDZ- TETT_VRAKOZS llapot teszi lehetv a TCP kliens szmra, hogy jrakldje a vgs nyugtt abban az esetben, ha a nyugta elveszett. A megvalststl fgg, hogy mennyi idt tlt az IDZTETT_VRAKOZS llapotban, de a jellemz rtkek a kvetkezk: 30 msodperc, 1 perc s 2 perc. A vrakozs utn az sszekttets szablyszeren lezrul s a kliensoldalon minden erforrs (belertve a portszmokat is) felszabadul. A 3.41. bra a szerveroldali TCP ltal jellemzen bejrt llapotsorozatot szemllteti, felttelezve, hogy a kliens kezdemnyezi az sszekttets lebontst. Az tmenetek nmagukat magyarzzk. E kt llapottmeneti diagramon csak azt mutattuk be, hogy egy TCP-sszekttets rendes krlmnyek kztt hogyan jn ltre s hogyan zrul le. Nem rtuk le azt, hogy mi trtnik bizonyos hibs esetekben, pldul amikor egy sszekttets mindkt oldala egyszerre szeretn
ltrehozni vagy lebontani az sszekttetst. Errl s ms bonyolultabb TCP-t rint krdsekrl tbbet megtudhatunk Stevens tfog knyvbl [Stevens 1994].
244
3. A
szlltsi rteg
fkuszban a biztonsg1
A TCP hromutas kzfogsrl szl trgyalsunkban lttuk, hogy a szerver egy ka pott SYN-re vlaszul az sszekttets-vltozkat s a pufcreket kijelli, s k
A szerver ezt kveten egy SYNACK-t kld vlaszul, s egy ACK szeg mensre vr a klienstl - ez a harmadik s egyben vgs lps a kzfogsban, miel flig nyitott sszekttetsnek, s visszaveszi a kijellt erforrsokat.
teljesen ltrejnne. I la a kliens nem kld egy ACK-t, hogy a hromutas kz fogs harmadik lpest befejezze, vgl (gyakran egy vagy tbb perc utn) a sze
Ez a TCP sszekttets-kezelsi protokoll elkszti a terepet egy klasszikus szolgltats- megtagadshoz (DoS), nevezetesen a SYN elrasztsi tmadsh ltrehozva gy egy DDoS (distributed denial-of-service - elosztott szolgltatsmegtagads) SYN elrasztsi tmadst. A SYN-szegmenseknek ezzel az sszekttetsi erforrsai gyorsan kimerlhetnek, mivel azokat kijelli (de soha sem hasznlja!) flig nyitott sszekttetsek szmra. Azltal, hogy DoS-tmadsok. tein 20071 neveznek, s amely vdelem ma mr a legtbb nagy opercis rendszer rsze. A SYN-stik az albbiak szerint mkdnek:
Ebben a tmadsban a rossz fi nagyszm TCP SYN-szegmenst kld anlkl, hogy befejezn a harmadik lpst. A tmads ersthet azltal, hogy a SYN-eke
kimerltek, a szablyszer kliensektl meg fogja tagadni a szolgltatst. Ilyen SYN elrasztsi tmadsok JCERT SYN 1996] voltak az els, a CERT (CERT 20
A SYN-elraszts egv potencilisan pusztt tmads. Szerencsre van ellene egy hat kony vdelem, amelyet SYN-stiknek (SYN cookie) (Skoudis 2006; C
Amikor a szerver egy SYN-szegmenst kap, nem tudja, hogy a szegmens egy szablyszer klienstl rkezett-e, vagy egy SYN elrasztsi tmads rsze
hoz ltre egy flig nyitott TCP-sszekttetst ehhez a SYN-hez. Ehelyett a szerver ltrehoz egy kezdeti TCP-sorszmot, amely a SYN-szegmensben
cimeknek cs portszmoknak, valamint egy csak a szerver ltal ismert titkos szmnak sszetett fggv nye (hash fggvnye). (A szerver nagy szm ssze sorszmmal.
ugyanazt a szmot.) Ez a gondosan megalkotott kezdeti sorszm az gynevezett sti. Ezt kveten a szerver elkld egy SYNACK-csomagot ezz
Fontos, hogy a szerver nem emlkszik a stire vagy brmilyen ms, a SYN-hez kapcsold llapot- informcira.
Ha a kliens szablyszer, akkor egy ACK-szegmenst kld vissza. A szervernek a nyugta kzhezvtelt kveten ellenriznie kell, hogy a nyugta egy kor
kapcsoldik-e. Hogyan trtnik ez, ha a szervernek nincsenek emlkei a SYN-szegmen- sekrl? Knnyen kitallhatjuk, hogy ez a sti segtsgvel trtnik
szablyszer nyugtnl a nyugtamezben lv rtk egyenl a SYNACK sorszma plusz eggyel (lsd 3.38. bra). Ezt kveten a szerver lefuttatja ugy korbbi SYN-szegmenshez tartozik, s ennlfogva rvnyes. Ezutn a szerver egy szoket- tcl egytt ltrehoz egy teljesen nyitott sszekttetst. sokat! ACK-szegmenst kld vissza minden SYN ACK-szegmensre, amelyet a szerver ltrehoz. Hz arra kszteti a szervert, hogy
ACK-szegmens ugyanazon mezivel s a titkos szmmal. Ha a fggvny ltal adott ered mny plusz egy megegyezik a nyugtaszmmal, a szerver gy d
Msrszrl viszont, ha a kliens nem kld vissza egy ACK-szegmenst, akkor az eredeti SYN nem tett semmilyen krt a szervernl, mivel a szerver nem je
A SYN-stik hatkonyan kszblik ki egy SYN elrasztsi tmads fenyegetst. A SYN el raszts! tmads egy vltozata az, amikor a rosszindulat k
mg akkor is, ha az opercis rendszer SYN-stiketalkalmaz. Ha tbbtzezcrkliensthasznlilyentmadst(DDoS-tmads), mindegyi ket klnbz I P-cm vdekezni, m i n t a klasszikus SYN elrasztsi tmads ellen.
A fenti trgyalsunk felttelezte, hogy mind a kliens, mind pedig a szerver kszen ll a kommunikcira, azaz hogy a szerver fig amelyre a kliens a SYN-szeg- menst kldi. Fontoljuk meg, mi trtnik akkor, amikor egy hoszt egy olyan TCP-szeg- menst kap, amel vagy a forrs-IP-cme nem egyezik meg a hoszt egy hasznlatban lv szoketjvel sem. Pldul ttelezzk fel, hogy egy hoszt egy T kap 80-as clportszmmal, de a hoszt nem fogad sszekltets-krseket a 80-as porion (azaz nem futtat webszervert a 80-as port egy specilis alaphelyzetbe-llts (reset) szegmenst fog kldeni a forrsnak. Ennek a TCP-szeg- mensnek az RST-jelzbitje (lsd 3 esre van lltva. Ily mdon, amikor a hoszt egy alaphelyzetbe-llts szegmenst kld, azt mondja a forrsnak, hogy Nincs szok szmra. Krem, ne kldje jra a szegmenst. Amikor egy hoszt egy olyan UDP-csomagot kap, amelynek a clportszma nem egyezi ban lv UDP-szokettel sem, a hoszt egy specilis ICMP-datagramot kld, ahogy azt a 4. fejezetben trgyaljuk. Miutn mr jl tltjuk a TCP-sszekttets kezelst, ltogassuk meg ismt az nmap portpsztz eszkzt s vizsgljuk meg k mkdik. Ahhoz, hogy egy megclzn hoszton felkutasson egy adott TCP portot, mondjuk a 6789-es portot, az nmap egy TCP SY annak a hosztnak 6789-es clportszmmal. Ennek hrom lehetsges kimenetele van:
A J'or rshoszt egy TCP SYN ACK-szegmenst kap a megclzott hoszt li Mivel ez azl jelenti, hogy a megclzott hoszton fut egy a TCP-portszmmal, az nmap azt adja vissza, hogy nyitva. A forrshoszt egy TCP RST-szegmenst kap a megclzott koszttl. Ez azt jelenti, hogy a SYN-szegmens megrkezett a megclz
3.5.
OSSZKTTETS-ALAP SZLLTS:
TCP
245
megclzott hoszt nem futlat alkalmazst 6789-es TCP-portszmmal. De a tmad legalbb tudja, hogy a hoszton a 6789 szegmenseket a forrs- s a megclzott hoszt kztti lvonalon nem lltja meg semmilyen tzfal. (A tzfalakat a 8. fejezetben t A forrs nem kap semmit sem. Ez valsznleg azt jelenti, hogy a SYN-szegmensl egy kzbens tzfal meglltotta, s s megclzott hoszthoz.
Az nmap hatkony eszkz, amely fel tudja mrni a helyzetet nemcsak nyitott TCP-por- tok tern, de nyilolt UDP-portok tern is belltsai tern, st mg alkalmazsok s opercis rendszerek verzii tern is. Ezek legnagyobb rszt a TCP ssze kt lets-kezel befolysolsval teszi meg [Skoudis 2006). Ha az olvas vletlenl pp egy Linux-gp kzelben l, azonnal ki is prblhatja az nm gy, hogy a parancssorba begpeli azt, hogy nmap. A hltp://insecure.org/nmap cm rl ms opercis rendszerekhez is letltheti az n
246
3. A
SZLLTSI RTKG
Ezzel a TCP-ben a hibakezels s a forgalomszablyozs bevezetsnek vgre rtnk. A 3.7. alfejezetben visszatrnk a TCP-hez s bizonyos mlysgig megvizsgljuk a TCP torldskezelst. Mindenekeltt azonban ltalnosabban vizsgljuk meg a torldskezels krdseit.
3.5.
OSSZKTTETS-ALAP SZLLTS:
TCP
247
kztti egyetlen tvlasztt, ahogy ez a 3.42. brn lthat. Ttelezzk fel, hogy az A hoszton lv alkalmazs adatokat kld az sszekttetsen keresztl (pldul egy szoketen l adatokat ad t a szlltsi szint protokollnak) tlagosan
A hoszt D hoszt
3.42. bra. /. forgatknyv: Kt sszekttets egy kzs hasznlat, vgtelen pufferekkel rendelkez tvlasztval X $ bjt/s sebessggel. Ezek eredeti adatok abban az rtelemben, hogy minden adategysget csak egyszer kld a szoketbe. Az alatta lv szlltsi szint protokoll egy egyszer protokoll. Begyazza az adatot, s elkldi - nem vgez hibajavtst (pldul jrakldst), forgalomszablyozst vagy torldskezelst. Figyelmen kvl hagyva az egyb, szlltsi s alsbb rtegbeli fejrszek hozzadsbl ered tbbletadatokat, gy ebben a forgatknyv ben a sebessg, amellyel az A hoszt az tvlasztnak forgalmat kld bjt/s. B hoszt hasonlkppen mkdik, s az egyszersg kedvrt felttelezzk, hogy ez is bjt/s sebessggel kld. Az A s B hosztoktl a csomagok thaladnak egy tvlasztn s egy kzs, R kapacits kimen adatkapcsolaton. Az tvlasztnak pufFerei vannak, amelyek lehetv teszik a berkez csomagok trolst, amikor a csomagrkezsi sebessg meghaladja a kimen adatkapcsolat kapacitst. Ebben az els helyzetben felttelezzk, hogy az tvlasztnak vgtelen nagysg puferterlete van. A 3.43. bra az A hoszt sszekttetsnek teljestkpessgt brzolja grafikusan ezen els forgatknyv szerinti mkds sorn. A bal oldali grbe a sszekttetsenknti tbocstkpessget (per-connection throughput) (a vevhz a msodpercenknt rkez bjtok szmt) brzolja a sszekttets kldsi sebessgnek fggvnyben. Ha a kldsi sebessg 0 s R/2 kz esik, a vevnl az tbocstkpessg a kld kldsi sebessgvel egyezik meg - minden adat, amelyet a kld elkld, vges ksleltetssel rkezik meg a ve vhz. Amikor azonban a kldsi sebessg R/2-nl nagyobb, az tbocstkpessg csak R/2. Az tbocstkpessgnek ez a fels korltja annak a kvetkezmnye, hogy kt ssze kttets osztozik az adatkapcsolat kapacitsn. Az adatkapcsolat egyszeren nem kpes a csomagokat a vevhz egy jR/2-nl nagyobb llandsult sebessggel kzbesteni. Mindegy, hogy az A s B hosztok milyen magasra lltjk a kldsi sebessgeiket, egyik sem fog soha ft/2-nl nagyobb tbocstkpessget elrni.
248
3. A
szlltsi rteg
Az sszekttetsenknti R2 tbocstkpessg elrse j dolognak tnhet, mivel az adatkapcsolatot teljes mrtkben kihasznljuk a csomagok rendeltetsi helykre trtn szlltshoz. Ugyanakkor a 3.43. bra jobb oldali grafikonja megmutatja az adatkapcsolat kapacitsnak kzelben trtn mkds kvetkezmnyeit. Ahogy a kldsi sebessg (balrl) megkzelti az R/2 rtket, az tlagos ksleltets egyre nagyobb vlik. Amikor a
3.5.
OSSZKTTETS-ALAP SZLLTS:
TCP
249
(a) (b)
3.43. bra. 1. forgatknyv: tbocstkpessg s ksleltets a hoszt kldsi sebessgnek fggvnyben kldsi sebessg meghaladja az Rt2-t, az tvlasztban sorban ll csomagok tlagos szma korltlan, s a forrs s a cl kztti tlagos ksleltets vgtelenn vlik (felttelezve, hogy az sszekttetsek vgtelen ideig mkdnek ezeken a kldsi sebessgeken, s hogy vgtelen pufferterlet ll rendelkezsre). Ekkppen mg az tbocstkpessg szempontjbl idelis lehet az olyan zemeltets, amikor az egyttes tbocstkpessg R kzelben van, ez messze nem idelis a ksleltets szemszgbl. Mg ebben a (vgtelenl) idealizlt helyzetben is
megtalltuk mr az egyik kvetkezmnyt (rt) a torldst tartalmaz hlzatnak - nagy sorbanllsi ksleltetsek tapasztalhatk, ahogy a csomagrkezsi sebessg megkzelti az adatkapcsolat kapacitst.
250
3. A
szlltsi rteg
A 2. forgatknyv szerinti teljestmny nagymrtkben fgg attl, hogyan vgzik az j- rakldseket. Elszr ttelezzk fel azt a nem valsgh esetet, hogy az A hoszt valahogy (varzslattal) kpes meghatrozni, hogy az tvlasztban egy puffer szabad-e vagy sem, s ezltal csak akkor kld el egy csomagot, amikor egy puffer szabad. Ebben az esetben nem trtnne csomagveszts, a A h egyenl lenne a A he -vel, s az sszekttets tbocstkpessge X^-vel egyezne meg. Ezt az esetet mutatja a 3.45. (a) bra. Az tbocstkpessg
251
3. A
SZLLTSI RTKG
252
3. A
szlltsi rteg
0,166K bjt/s az jraktildtt adat. Itt egy jabb kvetkezmnyt (rt) ltjuk a torldsos hlzatnak - a kldnek jrakldseket kell vgrehajtania annak
tlzsfolt hlzatnak - nagy ksleltetsek jelenltben a kld ltali szksgtelen jrakiildsek egy tvlasztt arra ksztethetnek, hogy az adatkapcsolat svszlessgt egy csomag flsleges msolatainak tovbbtsra hasznlja. A
3.45. (c) bra az tbocstkpessget mutalja a felajnlott terhels fggvnyben, amikor felttelezzk azt, hogy minden csomagot (tlagosan) kt szer tovbbt az tvlaszt. Mivel minden csomagot ktszer tovbbit, az tbocstkpessg aszimptotikusan tart R/4-hez, ahogy a felajnlott terhels megkzelti R2-t.
3. forgatknyv: Ngy kld hoszt, vges pufferekkel rendelkez tvlasztk s tbbcsompontos (multihop) tvonalak
Az utols torldsi forgatknyvnkben ngy hoszt kld csomagokat, mindegyik egymst tfed, kt tvlasztt tartalmaz tvonalakon keresztl tovbbtja, ahogy azt a 3.46. bra mutatja. Ismt felttelezzk, hogy minden hoszt egy idzts/jra klds mechanizmust hasznl a megbzhat adattvitel megvalstshoz, s hogy minden hosztnak ugyanaz a X, h rtke, valamint, hogy minden tvlaszt adatkapcsolatnak R bjt/s az tviteli kapacitsa. Tekintsk az A hoszttl a C hoszthoz irnyul sszekttetst, amelyik az R s R2 tvlasztkon halad keresztl. Az A-C sszekttets osztozik az R tvlasztn a DB sszekttetssel, s kzsen hasznlja az R2 tvlasztt a B-L) sszekttetssel.
3.5.
OSSZKTTETS-ALAP SZLLTS:
TCP
253
Nagyon kis \w rtkekre a puffertlcsordulsok ritkk (mint az 1. s 2. torldsi forgatknyvek esetn), s az tbocstkpessg kzeltleg megegyezik a felajnlott terhelssel. A kicsit nagyobb rtkeinl a hozz tartoz tbocstkpessg szintn nagyobb, mivel tbb eredeti adatot tovbbt a hlzatba, s szllt a clllomshoz, a tlcsordulsok pedig mg mindig ritkk. Ekkppen kis A K> rtkekre a A bc nvekedse a A ki nvekedst eredmnyezi. Miutn a nagyon kis forgalom esett tgondoltuk, vizsgljuk meg kvetkeznek azt az esetet, amikor a X K (s ennlfogva a A b is) nagyon nagy. Vegyk az R2 tvlasztt. Az R2 tvlaszthoz rkez A-C forgalom (amely az Rl-tl trtnt tovbbtsa utn rkezik R2-hz) R2-hz trtn rkezsi sebessge a rtktl fggetlenl legfeljebb R, az Rl-tl az R2-hz vezet adatkapcsolat kapacitsa lehet. Ha a minden sszekttetsnl nagyon nagy (belertve a B-D sszekttetst is), akkor a B-D forgalom rkezsi sebessge R2-hz sokkal nagyobb lehet, mint az A-C forgalom. Mivel az A-C s a B-D forgalomnak az R2 tvlasztnl versengenie kell a korltos mennyisg pufferterletrt, az R2-n sikeresen tjut (azaz puffertlcsorduls hatsra el nem vesz) A-C forgalom mennyi sge egyre cskken, ahogy a B-D felajnlott terhelse egyre nagyobb lesz. Hatrrtkben,
254
3. A
eredeti adat
szlltsi rteg
A hoszt
B hoszt
D hoszt
C hoszt
3.5.
OSSZKTTETS-ALAP SZLLTS:
TCP
255
tvitelre. (Pldul amikor egy csomagot kijellnek az tvitelre, jobb lehet, ha egy tvlaszt elnyben rszesti azokat a csomagokat, amelyek a tovbbts sorn mr nhny tvlasztn thaladtak.) gy itt mg egy kvetkezmnyt ltjuk
256
3. A SZLLTSI RTEG
tbbcsompontos tvonalakkal egy csomagot el kell dobni - amikor az tvonal sorn egy csomagot eldobnak, vgs soron veszendbe megy az az tviteli kapacits, amelyet minden adatkapcsolatnl arra szntak, hogy azt a csomagot ahhoz a ponthoz tovbbtsk, ahol azt aztn eldobtk.
Vgpontok kztti torldskezels. A torldskezels vgpontok kztti megoldsnl a hlzati rteg semmilyen nylt tmogatst nem nyjt a
szlltsi rtegnek torldskezelsi clokra. Mg a hlzatban fellp torlds jelenltre is csak a megfigyelt hlzati viselkedsre (pldul csomagvesztsre s ksleltetsre) alapozva lehet a vgrendszereknek kvetkeztetnik. A 3.7. alfejezetben ltni fogjuk, hogy a TCP-nek szk sgkppen ezt a vgpontok kztti megkzeltst kell alkalmaznia a torldskezelsre, mivel az IP-rteg semmilyen visszajelzst sem biztost a vgrendszereknek a hlzati torldst illeten. A TCP-szegmens elveszst (amelyet idtllps vagy hromszoros kettztt nyugta jelez) a hlzati torlds jelzsnek veszi, s a TCP ennek megfele len cskkenti az ablakmrett. Egy jabb javaslatot is ltni fogunk a TCP torlds kezelsre, amely a nvekv krbejrsi ksleltetsi rtkekei a megnvekedett hl zati torlds jelzsnek tekinti. Hlzat ltal tmogatott torldskezels. A hlzat ltal tmogatott torldskezels esetn a hlzati ptelemek (azaz az tvlasztk) a
3.6. A
257
kldnek nylt visszacsatolst biztostanak a hlzatban a torlds llapott illeten. Ez a visszajelzs akr olyan egyszer is lehet, mint egyetlen bil, amely egy adatkapcsolaton ltrejtt torldst jelez. Ezt a megoldst hasznltk a korai IBM SNA [Schwartz 1982] s DEC DECnet jain 1989; Ramakrishnan 1990] architektrkban, nemrgiben ezt javasoltk a TCP/
258
A hoszt
3.48. bra. A hlzat ltal jelzett torldsi informci kt visszacsatolsi tvonala IP-hlzatokhoz [Floyd TCP 1994; RFC 3168), s ezt hasznltk az ATM rendelkezsre ll adatsebessg (ABR) torldskezelse esetn is, ahogy ezt albb trgyaljuk. Bonyolultabb hlzati visszajelzs is lehetsges. Pldul az ATM ABR torldskezelsnek egy formja, amelyet rvidesen tanulmnyozni fogunk, lehetv teszi egy tvlaszt szmra, hogy a kldt explicit mdon rtestse arrl, hogy egy kimen adatkapcsolaton milyen kldsi sebessget kpes fenntartani (az tvlaszt). Az XCP protokoll [Katabi 2002] minden forrsnak az tvlaszt ltal szmtott, a csomag fejrszben szlltott visszajelzst nyjt arrl, hogy a forrsnak miknt kell a kldsi sebessgt nvelnie vagy cskkentenie. Hlzat ltal tmogatott torldskezels esetn a torldsi informcit jellemzen ktfle mdon lehet visszacsatolni a hlzatbl a kldnek, ahogy ez a 3.48. brn lthat. Kzvetlen visszajelzst lehet kldeni egy hlzati tvlasztbl a kldnek. Az rtestsnek ez a formja jellemzen egy lefojt csomaggal (choke packet) trtnik (lnyegben azt mondja, hogy Torlds lpett fel nlam!). Az rtests msodik formja akkor k vetkezik be, amikor egy tvlaszt a torlds jelzseknt megjell/frisst egy mezt egy a kldtl a vev fel halad csomagban. Egy megjellt csomag vtele esetn a vev rtesti a kldt a torldsjelzsrl. Vegyk szre, hogy az rtestsnek ez utbbi formja legalbb egy teljes krbejrsi idt vesz ignybe.
3.6. A
259
esettanulmnyval zrjuk. Ez a protokoll a torldskezelsnek egy hlzat ltal tmogatott megoldst valstja meg. Hangslyozzuk, hogy a clunk nem az ATMarchitektra jellegnek rszletekbe men lersa, sokkal inkbb egy olyan protokoll szemlltetse, amely az internet TCP protokolljval szemben hatrozottan ms megoldst vlaszt a torldskezels megvalsts-
260
ra. Valjban, albb az ATM-architektrnak csak nhny jellemzjt ismertetjk, amely az ABR lorldskezels megrtshez szksges. Az ATM alapveten egy virtulis ramkr (virtual circuit, VC) irnyultsg csomag- kapcsolsi megolds. Eleventsk fel az 1. fejezetbeli trgyalsunkbl, hogy ez azt jelenti, hogy a forrstl a clig vezet tvonalon minden kapcsol egy forrs-cl VC-llapotot fog kezelni. Ez a VC-nknti llapot lehetv teszi egy kapcsol szmra, hogy az egyes kldk viselkedst nyomon kvethesse (pldul az tlagos kldsi sebessgk nyomon kvetse), s hogy forrstl fgg torldskezelsi lpseket tegyen (mint pldul, nyltan jelezze egy kldnek, hogy cskkentse a sebessgt, amikor a kapcsol torldott vlik). Ez a hlzati kapcsolkban trolt VC-nknti llapot tkletesen alkalmass teszi az ATM-et arra, hogy hlzat ltal segtett torldskezelst alkalmazzon. Az ABR-t egy rugalmas adattviteli szolgltatsknt terveztk bizonyos mrtkben a TCP re emlkeztet mdon. Amikor a hlzat alultcrhelt, az ABRszolgltatsnak ki kell tudnia hasznlni a felesleges elrhet svszlessget, amikor a hlzat torldott, az ABR- szolgltatsnak vissza kell fognia a kldsi sebessgt egy elre meghatrozott legkisebb kldsi sebessgre. Az ATM ABR torldskezelsrl s forgalomkezelsrl rszletes ok tatsi segdletet nyjt [Jain 1996] munkja. A 3.49. bra az ATM ABR torldskezelsnek keretszerkezett mulatja. A trgyalsunk sorn az ATM szhasznlatt alkalmazzuk (pldul a kapcsol kifejezst hasznljuk az tvlaszt helyett, s a cella kifejezst a csomag helyett). Az ATM ABR szolgltats sorn az adatcellkat egy sor kzbens kapcsoln keresztl viszik t egy forrstl egy clig. Az adatcellkkal sszekeverve erforrskezel cellk (resource-management cell, RM cell) is vannak - ezeket az RMcellkat lehet felhasznlni a torldssal kapcsolatos infor mcik kzvettsre a hosztok s a kapcsolk kztt. Amikor egy RM-cella megrkezik egy clllomshoz, az megfordtja a cellt s visszakldi a kldnek (lehet, hogy azt k veten, hogy a cllloms az RM-cella tartalmt mdostotta). Egy kapcsolnak arra is lehetsge van, hogy nmaga hozzon ltre egy RM-cellt, s ezl az RM-cellt kzvetlenl egy forrsnak kldje. Ily mdon az RM-cellk hasznlhatak mind kzvetlen hlzati visszacsatols biztostsra, mind pedig vevn keresztli hlzati visszajelzs kldsre, ahogy ez a 3.49. brn lthat. Az ATM ABR torldskezels sebessgalap megolds. Azaz a kld explicit mdon kiszmol egy legnagyobb sebessget, amellyel kldhet, s ennek megfelelen szablyozza
Forrs
Cl
261
3. A SZLLTSI RTEG
nmagt. Az ABR hrom mdszert tartalmaz a torldssal informcinak a kapcsolktl a vevnek trtn jelzsre:
kapcsolatos
EFCI bit. Minden adatcella tartalmaz egy kifejezett elremen torldsjelz (explicit forward congestion indication, EFCI) bitet. Egy tlzsfolt hlzati kapcsol az adatcellban az EFCI bitet 1-esre llthatja, hogy jelezze a clhosztnak a torldst. A clllomsnak minden vett adatcellban ellenriznie kell az EFCI bitet. Amikor egy RM-cella rkezik a clllomshoz, ha a legutoljra vett adatcella EFCI bitje 1-esre volt lltva, a cllloms az RM-cella torldsjelz bitjt (congestion indication bit, Cl bit) 1-esre lltja, s visszakldi az RM-cellt a kldnek. Az adatcellkban az EFCI s az RMcellkban a Cl bitek hasznlata kvetkeztben a kld rtesthet egy hl zati kapcsolban ltrejtt torldsrl. 67 s NI bitek. Ahogy azt fent megjegyeztk, a kldtl a vevnek kldtt RMcellk adatcellkkal keverednek. Az RM-cellk keveredsnek arnya egy
262
hangolhat paramter, amelynek az alaprtelmezett rtknl egy RM-cella jut minden 32 adatcellra. Ezeknek az RM-cellknak van egy torldsjelz (congestion indication, Cl) bitjk s egy nincs-nvekeds (no increase, NI) bitjk, amelyeket egy torldott hlzati kapcsol bellthat. Konkrtan, enyhe torlds esetn egy kapcsol egy thalad RM-cellban 1-re llthatja az NI bitet, slyos torldsi helyzet esetn pedig a Cl bitet llthatja 1-re. Amikor egy clhoszt megkap egy RM-cellt, azt vissza fogja kldeni a vevnek a Cl s NI biteket rintetlenl hagyva (kivve, hogy a cllloms a Cl-t 1-esre llthatja a fent lert EFCI mechanizmus eredmnyekppen). ER bellts. Minden RM-cella egy 2 bjtos kifejezett sebessg (explicit rate, ER) mezt is tartalmaz. Egy torldott kapcsol egy thalad RM-cellban cskkentheti az ER mez ltal tartalmazott rtket. Ekkppen az ER mez a forrs-cl tvonalon lv sszes kapcsol ltal fenntarthat legalacsonyabb sebessget fogja tartalmazni. Egy ATM ABR forrs a visszakldtt RM-cellkban lv Cl, NI s ER rtkek fggvnyben lltja be a sebessget, amellyel a cellkat kldheti. Ennek a sebessgbelltsnak a szablyai elg bonyolultak, s egy kicsit unalmasak is. Az rdekld olvast rszletekrt [jain 1996) munkhoz irnytjuk.
3.6. A
263
hogy egy TCP-sszekt- tets mindkt oldala egy vteli puffrt, egy kld puffrt s szmos vltozt (LastBy te Read, RcvWindow s gy tovbb) tartalmaz. A TCP torldskezelsi mechanizmusa mg egy vltozt, a torldsi ablakot (congestion vvindow) kezel egy sszekttets mindkt oldalval. A CongWin-nel jellt torldsi ablak korltozza egy TCP-kld sebessgt, amellyel a hlzatba adatokat kldhet. Konkrtan, a kldnl a nem nyugtzott adat mennyisge nem haladhatja meg a CongWin s az RcvWindow minimumt, azaz:
264
ablak mretnek nvekedst elidzze (vagy idztse), a TCP-t nidztnek (selfclocking) mondjk. Most mr abban a helyzetben vagyunk, hogy megtekinthetjk a rszleteit annak az algoritmusnak, amelyet egy TCP-kld arra hasznl, hogy a kldsi sebessgt az szlelt torlds fggvnyben szablyozza. Hz az algoritmus a hres TCP torldskezelsi algoritmus (con- gestion control algorithm). Az algoritmusnak hrom f sszetevje van: (1) additv nvels, multiplikatv cskkents, (2) lass induls s (3) idtllpsi esemnyekre trtn reagls.
3.6. A
265
tt 1/10 MSS-sel nveli, s gy mind a 10 szegmens nyugtjnak megrkezst kveten a torldsi ablak rtke a kvnt mdon egy MSS-sel fog megnvekedni. sszegezve, a TCP-kld, amikor szleli, hogy a vgpontok kztti tvonal torlds- mentes, additvan nveli a sebessgt, s multiplikatvan cskkenti a sebessgt akkor, amikor szleli (egy vesztsi esemnyen keresztl), hogy az tvonalon torlds lpett fel. Ezrt, a TCP torldskezelsre gyakran additv nvels, multiplikatv cskkents (Ad- ditive Increase, Multiplicative Decrease, AIMD) algoritmusknt utalnak. A TCP torldskezelsi protokolljnak lineris nvekeds szakasza torldselkerlsknt (congesti- on avoidance) ismert. A CongWin rtke jra meg jra olyan ciklusokon megy keresztl, amelynek sorn rtke linerisan nvekszik, majd (amikor egy vesztsi esemny bekvet kezik) hirtelen az aktulis rtknek a felre cskken. E vltozsok egy frszfog mintt eredmnyeznek a hossz let TCP-sszekttetseknl, ahogy ezt a 3.50. bra is mulatja.
Lass induls
Egy TCP-sszekttets kezdetekor a CongWin kezdeti rtkt jellemzen 1 MSS-re lltjk [RFC 3390], amely nagyjbl egy MSS/RTT kezdeti kldsi sebessget eredmnyez. Pldul, ha az MSS = 500 bjt s az RTT = 200 ms, akkor az eredmnyl kapott kezdeti kldsi sebessg csak 20 kb/s krl lesz. Mivel az sszektlets rendelkezsre ll svszlessge sokkal nagyobb lehet, mint egy MSS/RTT, szgyen lenne csak linerisan nvelni a sebessget, s tlsgosan hossz ideig vrni mieltt a kldsi sebessg felkszik valamilyen elfogadhat szintre. gy ahelyett, hogy a kezdeti szakaszban linerisan nveln a sebess get, egy TCP-kld exponencilisan nveli a sebessgt azltal, hogy minden RTT alatt megduplzza a CongWin rtkt. A TCP-kld addig folytatja sebessgnek exponencilis nvelst, ameddig egy vesztsi esemny nem lp fel, amikor is a CongWin rtkt megfelezi, ezt kveten pedig a fent lert mdon linerisan nveli. Ily mdon a kezdeti fzisban, amelyet lass indulsnak (slow start, SS) neveznek, a TCP-kld kis sebessggel kezd el adni (innen a lass induls kifejezs), de a kldsi sebessgt exponencilisan nveli. A kld az exponencilis nvekedst azltal hozza ltre, hogy minden alkalommal, amikor egy elkldtt szegmensre nyugta rkezik, 1 MSS-sel megnveli a CongWin rtkt. Ahogy a 3.51. bra is mutatja, a TCP elkldi az els szegmenst a hlzatba, s vr egy nyugtra. Ha
266
3.6. A
267
RTT
Id
v
Id
3.51. bra. TCP lass indulsa egy vesztsi esemny eltt a szegmenst nyugtzzk, a TCP-kld egy MSS-sel megnveli a torldsi ablakt, s kl maximlis mret szegmenst kld ki. Ha ezeket a szegmenseket vesztsi esemnyek eltt nyugtzzk, a kld minden egyes nyugtzott szegmensre 1 MSS-sel nveli a torldsi ablakt, amely egy 4 MSS mret torldsi ablakot eredmnyez, s ngy maximlis mret szegmenst kld ki. Ahogy a nyugtk berkeznek, ez az el jrs addig folytatdik, amg vgl egy vesztsi esemny kvetkezik be. Ekkppen a Cong- Win rtke a lass induls fzisa sorn minden RTT alatt valban megduplzdik.
268
kveten viszont a TCP-kld a lass induls fzisba lp - azaz 1 MSS-re lltja a torldsi ablakt, s ezt kveten exponencilisan nveli az ablakot. Az ablak exponencilisan nvekszik addig,
3.6. A
269
amg a CongWin cl nem ri az idtllpsi esemny eltti rtknek a felt. Onnantl kezdve a CongWin linerisan n, ahogyan azt egy hromszoros kettztt nyugta utn is tenn. A TCP ezeket az sszetettebb dinamikkat egy Threshold (kszbrtk) nev vltoz kezelsvel valstja meg, amely azt az ablakmretet hatrozza meg, amelynl a lass indulsi szakasz vget r, s a torldsikerlsi szakasz megkezddik. A Threshold vltozt kezdetben egy nagy rtkre (gyakorlatban 65 Kbjtra [Stevcns 1994]) lltja azrt, hogy eleinte ne legyen hatsa. Amikor egy vesztsi esemny bekvetkezik, a Threshold rtkt az aktulis CongWin rtk felre lltja. Pldul, ha a torldsi ablak kzvetlenl egy vesztsi esemny eltt 20 Kbjt, akkor a Threshold-ot 10 Kbjtra lltja, s a kvet kez vesztsi esemnyig ez lesz az rtke. Miutn bevezettk a Threshold vltozt, pontosan le tudjuk rni azt, hogy a CongWin hogyan viselkedik egy idtllpsi esemnyt kveten. Ahogy azt fent jeleztk, egy TCP-kld egy idtllpst kveten a lass induls fzisba lp. Amg a lass indulsban van, a CongWin rtkt exponencilis gyorsasggal nveli addig, amg a CongWin el nem ri a Threshold-ot. Amikor a CongWin elri a Threshold-ot, a TCP a torlds- elkerlsi fzisba megy t, amelynek sorn a CongWin linerisan nvekszik, ahogy azt mr korbban lertuk. A TCP torldskezelsi algoritmusnak trgyalst a 3.4. tblzat sszegzi. F. ponton termszetesen fontolra kell venni azt, hogy a TCP torldskezelse mirt viselkedik k-
TCP-kld torldskezelse [RFC2581], felttelezve, hogy a CongWin kezdeti rtke 1 MSS-sel egyenl, a Threshold kezdeti rtke nagy (pldul 65 Kbjt [Stevens 1994]), s a TCP-kld lass induls llapotbl indul. A feltntetett llapot a TCP-kld llapota kzvetlenl az esemny bekvetkezse eltt. Tovbbi rszletekrt lsd [RFC 2581]
3.4. tblzat./I
270
llapot Esemny A TCP-kld torldskezelsi lpse Lass induls (SS) Nyugta vtele korbban nem nyugtzott adatra Torlds elkerls (CA) Nyugta vtele korbban nem nyugtzott adatra CongWin = CongWin + MSS, If (CongWin > Threshold) llapot tlltsa Torldselkerlsw-re CongWin = CongWin + MSS x (MSS/CongWin)
Additv nvels, minden RTT sorn a CongWin rtknek 1 MSS -sel trtn nvelse
SS vagy CA
Threshold = CongWin/2, CongWin = Threshold, llapot tlltsa Torlds i kerlsre Threshold = CongWin/2, CongWin = 1 MSS, llapot tlltsa Lass indulsira
Gyors helyrellts, exponen cilis cskkents megvals tsval; a CongWin rtke nem fog 1 MSS al cskkenni. Lass indulsi llapotba lpes
SS vagyCA
SS vagy CA
lnbzkppen egy idtllpst, mint egy hromszoros kettztt nyugta vtelt kveten. Pontosabban, mirt viselkedik egy TCP-kld konzervatvan egy idtllpsi esemny utn, a torldsi ablakt 1 MSS-re cskkentve, mg ezzel ellenttben egy hromszoros kettztt nyugta vtelt kveten csak megfelezi a torldsi ablak mrett. rdekes, hogy a TCP egy korai vltozata, amelyet TCP Tahoe-knt ismernek, felttel nlkl 1 MSS-re cskkenti a torldsi ablakt, s mindkt vesztsi esemny utn a lass induls fzisba lp. A TCP jabb vltozata, a TCP Reno, hromszoros kettztt nyugtt kveten trli a las s indulsi fzist. A lass indulsnak az ebben az esetben trtn trlse mgtti filozfia az, hogy habr egy csomag elveszett, a hrom kettztt nyugta rkezse azt jelzi, hogy nhny szegmenst (pontosabban az elveszett szegmenst kveten mg hrom szegmenst) megkapott a vev. gy, szemben egy idtllps esetvel, a hlzat kpesnek mutatkozik legalbb nhny szegmens kzbestsre, mg hogyha ms szegmensek torlds miatt el is vesznek. A lass indulsnak ezt a hromszoros kettztt nyugtt kvet megszntetst gyors helyrelltsnak (fst recovery) nevezik. A 3.52. bra a TCP torldsi ablaknak alakulst szemllteti mind Reno, mind pedig Tahoe esetn. Ezen az brn a kszbrtk ('Ihreshold) kezdetben 8 MSS. Az els nyolc tviteli fordul sorn a Tahoe s a Reno azonosan viselkedik. A torldsi ablak a lass induls alatt exponencilis gyorsasggal nvekszik, s az tvitel negyedik forduljnl ri el a kszbrtket. A torldsi ablak ezt kveten linerisan nvekedik addig, amg hromszoros kettztt nyugtzs nem trtnik, kzvetlenl a 8. tviteli fordul utn. Figyelje meg, hogy a torldsi ablak mrete ezen vesztsi esemny bekvetkezsekor 12 x MSS. Ezt kveten a kszbrtket 0,5 x CongWin = 6xMSS-re lltja. TCP Reno esetn a torldsi ablak CongWin = 6 x
3.6. A
271
MSS lesz, s linerisan n. TCP Tahoe eseten a torldsi ablak 1 MSS lesz, s a kszbrtk elrsig exponencilisan n. Ez a torldskezelsi algoritmus V. Jacobsonnak ksznhet [Jacobson 1988]; Jacobson eredeti algoritmusnak szmos mdostst [Stevens 1994) s az [RFC 2581] rja le. Ahogy azt fent emltettk, a legtbb TCP-megvalsts jelenleg a Reno algoritmust alkalmazza. A Reno algoritmusnak sok vltozatt javasoltk [RFC 3782; RFC 2018]. A javasolt TCP Vegas algoritmus [Brakmo 1995; Ahn 1995] megprblja elkerlni a torldst, mikzben j tviteli teljestmnyt tart fenn. A Vegas alapvet tletei a kvetkezk: (1) a forrs- s a cllloms kztti tvlasztkban fellp torlds szlelse, mieltt csomag- veszts kvetkezne be, s (2) a sebessg lineris cskkentse kzelg csomagveszts szle-
tviteli fordul
lsekor. A kzelg csomagvesztsi az RTT megfigyelse alapjn jsolja. Minl hosszabb a csomagok RTT-je, annl nagyobb a torlds az tvlasztkban.
272
nvekedik, azaz 0 75x W Egy sszekttets tlagos tbocstkpessge = ^j j ~ Ezt a nagymrtkben idealizlt modellt alkalmazva a TCP llandsult llapotbeli dinamikjra, egy rdekes kifejezst is szrmaztathatunk, amely egy sszekttets vesztsi sebessgt az elrhet svszlessghez viszonytja [Mahdavi 1997]. Ezt a szrmaztatst a feladatok kztt krvonalazzuk. Egy bonyolultabb modell [Padhye 2000] modellje, amely a tapasztalat alapjn teljesen megegyezik a mrt adatokkal.
A TCP jvje
Fontos tisztban lenni azzal, hogy a TCP torldskezelse az vek sorn fejldtt, s minden bizonnyal folytatni fogja a fejldst. A TCP torldskezclsnek 1990-es vek vgi sszegzse az (RFC 2581]-ben tallhat - a TCP torldskezelsnck tovbbi fejlesztseit illet lershoz a (Floyd 200l]-et nzze meg. Ami j volt az internet szmra, amikor a TCP-sszekttetsek nagy rsze SMTP-, FTP- s Telnetforgalmat szlltott, nem felttlenl j a mai HTTP ltal uralt internetnek vagy a jv olyan szolgltatsokat nyjt internetnek, amelyekrl ma mg nem is lmodunk. A TCP folyamatos fejldsre val igny az elosztott szmtsi (grid-computing) alkalmazsokhoz [Foster 2002] szksges nagysebessg TCP-sszekttetsek ttekintsvel szemlltethet. Vegynk pldul egy TCP-sszekttetst 1500 bjtos szegmensekkel s 100 ms-os RTT-vc 1, s ttelezzk fel, hogy 10 Gb/s-mal szeretnnk adatot tkldeni ezen az sszekttetsen. Az [RFC 3649]-et kvetve megllaptjuk, hogy a fenti TCP tbocstkpessg szablyt alkalmazva egy 10 Gb/s-os tbocstkpessg elrshez a torldsi ablak
tlagos mretnek 83333 szegmensnek kellene lennie. Hz nagyon sok szegmens, amely arra vezet, hogy meglehetsen aggdjunk amiatt, hogy ezen 83333 szegmens egyike elveszhet. Mi trtnne egy veszts esetn? Vagy mshogy tekintve, az tkldtt szegmenseknek mekkora hnyadnak elvesztse tenn mg lehetv a 3.4. tblzatban krvonalazott TCP torldskezelsi algoritmus szmra, hogy a kvnt 10 Gb/s-os sebessget elrje? A fejezet vgi krdsek kztt egy sszefggs levezetst talljuk, amely megadja egy TCP-ssze- kttets tbocstkpessgt a vesztsi arny (L), a krbejrsi id (RTT) s a maximlis szegmensmret (MSS) fggvnyben: ... , ., ,, , ,, , l,22xMSS Egy sszekttets atlagos atbocsatokepessege = Ezt a kpletet hasznlva lthatjuk, hogy 10 Gb/s-os tbocstkpessg elrse rdekben a mai TCP torldskezelsi algoritmusok csak 2 x 10' 10 szegmensvesztsi valsznsget (vagy ezzel egyenrtken, 5 000 000 000 szegmensenknt egy vesztsi esemnyt) kpesek elviselni - ez nagyon alacsony arny. Ez a megfigyels szmos kutatt arra sztnztt, hogy j TCP-vltozatokat kutasson ki, amelyeket kifejezetten ilyen nagysebessg krnyezetekbe terveztek - ezen erfesztsek fejtegetst lsd [Jin 2004; RFC 3649; Kelly 2003].
3.7.1. Igazsgossg
Vegynk K TCP-sszekttetst, mindegyiket klnbz vgpontok kztti tvonallal, de mindegyik keresztlhalad egy szk keresztmetszet adatkapcsolaton, amelynek R b/s az tviteli sebessge. (Szk keresztmetszet adatkapcsolat alatt azt rtjk, hogy minden sszekttetsnl az sszekttets tvonaln az sszes tbbi adatkapcsolat torldsmentes, s a szk keresztmetszet adatkapcsolat tviteli kapacitshoz kpest bsges tviteli kapacitssal rendelkezik.) Ttelezzk fel, hogy minden sszekttets egy nagy fjt szllt, s nem halad t UDP-forgalom a szk keresztmetszet adatkapcsolaton. Egy torldskezelsi mechaniz must igazsgosnak (fair) neveznek, ha minden sszekttets tlagos tviteli sebessge krlbell R/K - azaz minden sszekttets egyenl rszt kap az adatkapcsolat svszlessgbl. Igazsgos-e a TCP AIMD algoritmusa, klnsen akkor, ha adottnak ttelezzk fel azt, hogy klnbz TCP-sszekttetsek klnbz idpillanatokban kezddhetnek el, s gy egy adott idpontban klnbz ablakmretk lehet? A [Chiu 1989] elegns s intuitv magyarzattal szolgl arra, hogy a TCP torldskezelse mirt konvergl gy, hogy a szk keresztmetszet adatkapcsolat svszlessgt egyenl arnyban osztja szl a verseng TCP-sszekttetsek kztt. Tekintsk azt az egyszer esetet, amikor kt TCP-sszekttets egyetlen R tviteli sebessg adatkapcsolaton osztozik, ahogy ezt a 3.53. bra mutatja. Ttelezzk fl, hogy a kt sszekttetsnek egyenlk az MSS s RTT rtkeik (gy, ha megegyezik a torldsi ablakuk mrete, akkor azonos az tbocstkpessgk), valamint hogy nagy mennyisg adatot kell tkldenik, s hogy ezen a kzs adatkapcsolaton semmilyen ms TCP-sz- szekttets vagy UDP-datagram nem halad t. Tovbb hagyjuk figyelmen kvl a TCP lass indulsi fzist, s tegyk fel, hogy a TCPsszekttetsek minden idpillanatban CA zemmdban (AIMD) mkdnek. A 3.53. bra a kt TCP-sszekttets ltal megvalstott tbocstkpessget
brzolja. Ha a TCP-nek egyenl arnyban kell kt sszekttets kztt megosztania az adatkapcsolat svszlessgt, akkor a ltrejv tbocstkpessgnek az origbl ered 45 fokos nyl
i
Szk keresztmetszet tvlaszt R kapacitssal 1. TCP-sszekttets
(egyenl svszlessg-rszeseds) mentn kell lennie. Idelis esetben a kt tbocstkpessg sszegnek .R-rel kell egyenlnek lennie. (Termszetesen nem kvnatos megolds mindkt sszekttetsnek egyenl, de nulla, rszesedst biztostani az adatkapcsolat kapacitsbl!) gy teht az kell legyen a cl, hogy a ltrejv tbocstkpessgek valahova a 3.54. brn lv kt egyenes - az egyenl svszlessg-rszeseds egyenese s a teljes svszlessg-kihasznltsg egyenese - metszspontjnak kzelbe essenek. Ttelezzk fel, hogy olyanok a TCP ablakmretei, hogy egy adott idpontban az Jes s 2- es sszekttetsek a 3.54. brn A ponttal jellt tbocstkpessgeket valstjk meg. Mivel a kt sszekttets ltal egyttesen felhasznlt svszlessg mennyisge kevesebb, mint R, nem fog fellpni veszts, s a TCP torldskezelsi algoritmusnak eredmnyekpp mindkt sszekttets RTT-nknt 1 MSS-sel fogja nvelni az ablakmrett. Ily m-
dn a kt sszekttets egyttes tbocstkpessge az A pontbl kiindulva egy 45 fokos egyenes mentn halad (mindkt sszekttets szmra egyenl nvekeds). Vgl is a kt sszekttets ltal egyttesen felhasznlt adatkapcsolati svszlessg nagyobb lesz, mint R, s gy vgl csomagveszts fog bekvetkezni. Tegyk fel, hogy az 1-es s 2-es sszekttets a B ponttal jellt tbocstkpessg elrsekor tapasztalnak csomagvesztst. Ezt kveten az 1-es s 2-es sszekttets a felre cskkenti az ablakait. Az ily mdon megvalsul t bocstkpessgek a C pontba esnek, fl ton egy B pontbl indul s az origban vgzd vektor mentn. Mivel a C pontban az egyttes svszlessg-hasznlat kevesebb R-nl, a kt sszekttets ismt nvelni fogja az tbocstkpessgt egy C-bl indul 45 fokos egyenes mentn. Vgs soron ismt veszts fog bekvetkezni, pldul a D pontban, a kt sszekttets ismt felre fogja cskkenteni az ablakmrett, s gy tovbb. Gyzdjn meg rla, hogy a kt sszekttets ltal megvalstott svszlessg vgl is az egyenl sv- szlessg-rszeseds egyenes mentn fog ingadozni. Szintn rdemes meggyzdni arrl, hogy a kt sszekttets attl fggetlenl fog ehhez a viselkedshez tartani, hogy hol van a ktdimenzis trben! Habr rejlik nhny idealizlt felttelezs e forgatknyv mgtt, mgis egy intuitv rzst nyjt arrl, hogy a TCP mirt osztja meg a svszlessget az sz- szekttetsek kztt egyenl arnyban. Az idealizlt forgatknyvnkben feltteleztk, hogy csak TCP-sszekttetsek haladnak t a szk keresztmetszet adatkapcsolaton, s hogy az sszekttetseknek megegyezik az RTT-rtkk, valamint hogy csak egyetlen TCPsszekttets tartozik egy hoszt-cl- lloms prhoz. A gyakorlatban ezek a felttelek jellemzen nem teljeslnek, s a kliens/ szerver alkalmazsok ennlfogva nagyon egyenltlen adatkapcsolati svszlessg-ar- nyokhoz juthatnak hozz. Megmutattk, hogy klnsen akkor, amikor szmos ssze kttets osztozik egy kzs szk keresztmetszeten, azok a munkakapcsolatok, amelyek nek kisebb az RTTjk, kpesek arra, hogy hirtelen megnveljk az ppen felszabadul s rendelkezsre ll adatkapcsolati svszlessget (azaz gyorsabban nveljk a torldsi ablakukat), s ezltal nagyobb tbocstkpessget lvezzenek, mint a nagyobb RTT-kkel rendelkez sszekttetsek [Lakshman 1997|.
Igazsgossg cs az UDP
pp az imnt lttuk azt, hogyan lltja be a TCP torldskezelse a torldsi ablak mkdsn keresztl egy alkalmazs tviteli sebessgt. Sok multimdis alkalmazs, mint amilyen az internetes telefon- vagy videokonferencia, pp emiatt gyakran nem TCP fltt fut - nem akarjk, hogy az tviteli sebessgket korltozzk, mg akkor sem, ha a hlzatban nagy a torlds. Ehelyett ezek az alkalmazsok jobban szeretnek UDP fltt futni, amelynek nincs beptett torldskezelse. UDP fltt futva az alkalmazsok lland se bessggel tudjk a hang- s videoanyagukat a hlzatba pumplni, s inkbb vesztenek alkalmanknt csomagokat, semhogy torlds idejn a sebessgket igazsgos szintre cskkentsk, s ne vesztsenek csomagokat. A TCP szemszgbl az UDP fltt fut multimdis alkalmazsok nem igazsgosak - nem mkdnek egytt ms alkalmazsokkal, s az tviteli sebessgket sem lltjk be megfelelen. Mivel a TCP torldskezclse nvekv torlds (veszts) esetn lecskkenti az tviteli sebessget, mg az UDP-kiildknek ezt nem kell tennie, az UDP-kldk kpesek
kiszortani a TCP-forgalmat. Ennlfogva egy mai kutatsi terlet olyan torldskezelsi mechanizmusok kifejlesztse az internetre, amelyek meggtoljk, hogy az UDP-forgalom az internet tbocstkpessgt jelents cskkensre knyszertse [Floyd 1999; Floyd 2000; Kohler 2006).
279
3. A SZLLTSI RF.TLG
3.8. sszefoglals
A fejezetet egy szlltsi rtegbeli protokoll ltal a hlzati alkalmazsoknak nyjthat szolgltatsok tanulmnyozsval kezdtk. Az egyik vglet, hogy a szlltsi protokoll nagyon egyszer, s egy extra szolgltatsokat nem nyjt szolgltatst ajnl az alkalmazsoknak, csak egy nyalbols/nyalbbonts funkcit nyjtva a kommunikl folyamatoknak. Az internet UDP protokollja egy ilyen extra szolgltatsokat nem nyjt szlltsi rtegbeli protokollra plda. A msik vgletnl pedig egy szlltsi protokoll biztostkok b vlasztkt nyjthatja az alkalmazsoknak, mint amilyen a megbzhat adatszllts, ksleltetsi garancik s svszlessg-garancik. Mindazonltal a szolgltatsokat, amelyeket egy szlltsi protokoll nyjtani kpes, gyakran korltozza az alatta tallhat hl zati rtegbeli protokoll szolglati modellje. Ha a hlzati protokoll nem kpes ksleltetsi vagy svszlessg-garancikat biztostani a szlltsi rtegbeli szegmenseknek, akkor a szlltsi protokoll nem kpes ksleltetsi vagy svszlessg-garancikat biztostani a folyamatok kztt kldtt zenetek szmra. A 3.4. alfejezetben megtanultuk, hogy egy szlltsi protokoll megbzhat adattviteli szolgltatst kpes nyjtani mg akkor is, hogyha az alatta lev hlzati rteg nem megbzhat. Lttuk, hogy a megbzhat adattvitel biztostsnak sok knyes krdse van, de a feladat megoldhat nyugtk, idztk, jrakldsek s sorszmok krltekint sszekapcsolsval. Habr ebben a fejezetben trgyaltuk a megbzhat adattvitelt, ne felejtsk el, hogy a megbzhat adattvitelt adatkapcsolati, hlzati, szlltsi vagy alkalmazsi rtegbeli protokollok kpesek nyjtani. A protokollverem ngy fls rtegnek brmelyike kpes ltrehozni nyugtkat, idztket s sorszmokat, s a felette lev rtegnek megbzhat adattvitelt nyjtani. St, az vek sorn mrnkk s informatikusok egymstl fggetlenl terveztek s valstottak meg olyan
280
adatkapcsolati, hlzati, szlltsi s alkalmazsi rtegbeli protokollokat, amelyek megbzhat adattvitelt biztostanak (habr ezek kzl sok protokoll csndesen eltnt). A 3.5. alfejezetben kzelebbrl megtekintettk a TCP-t, az internet sszekttetsalap s megbzhat szlltsi protokolljt. Megtanultuk, hogy a TCP sszetett, s magba foglalja az sszekttets-kezelst, a forgalomszablyozst s a krbejrsi id becslst, ahogy a megbzhat adatszlltst is. Ami azt illeti, a TCP tulajdonkppen sszetettebb, mint ahogy lertuk - szndkosan nem trgyaltuk a TCP klnfle foltozgatsait, javtsait s fejlesztseit, amelyeket a TCP klnbz verziiban megvalstanak. Mindez az sszetettsg azonban rejtve van a hlzati alkalmazs ell. Ha egy hoszton egy kliens megbzha tan szeretne adatot kldeni egy msik hoszton lv szervernek, egyszeren megnyit egy TCP-szoketet a szerverhez, s a szoketbe pumplja az adatot. A kliens-szerver alkalmazs boldog tudatlansgban szenved a TCP sszetettsgt illeten. A 3.6. alfejezetben tvolrl megvizsgltuk a torldskezelst, a 3.7. alfejezetben pedig megmutattuk, hogyan valstja meg azt a TCP. Megtanultuk, hogy a torldskezels a hlzat helyes mkdse rdekben fontos. Torldskezels nlkl egy hlzatban kny- nyen forgalmi dug alakulhat ki, amely kevs vagy semennyi adat tvitelt eredmnyezheti a vgpontok kztt. A 3.7. alfejezetben megtanultuk, hogy a TCP vgpontok kztti torldskezelsi mechanizmust valst meg, amely akkor, amikor a TCP-sszekttets tvonalt torldsmentesnek tli meg, additvat! nveli az tviteli sebessget, s multipli klvn cskkenti az tviteli sebessgt akkor, amikor veszts kvetkezik be. Ezenfell ez a mechanizmus igyekszik minden egyes tlzsfolt adatkapcsolaton thalad TCP-ssze- kttetsnek egyenl rszt biztostani az adatkapcsolat svszlessgbl. Bizonyos mlys gig megvizsgltuk a TCP sszekttets-ltestsnek s a lass indulsnak a ksleltetsre gyakorolt hatst is. Megfigyeltk, hogy sok fontos esetben az sszekttets-ltests s a lass induls jelentsen hozzjrul a vgpontok kztti ksleltetshez. Mg egyszer hangslyozzuk, hogy br a TCP torldskezelse az vek sorn fejldtt, tovbbra is intenzv kutatsi terlet maradt, s vrhatan tovbb fejldik majd a kvetkez vek sorn. Az internet konkrt szlltsi protokolljait illet trgyalsunk a fejezet sorn az UDP-re s a TCP-re sszpontosult K kt protokollal szerzett kt vtizednyi tapasztalat azonban olyan helyzeteket ismert fel, amelyekben egyik sem felel meg igazn. gy a kutatk egyb szlltsi protokollok ltrehozsval voltak elfoglalva, melyek kzl szmos most mr az IliTF ltal javasolt szabvny. A datagram torldskezelsi protokoll (Datagram Congestion Control Protocol, DCCP) [RFC 4340] egy kis tbbletrfordts, zenetalap, UDP-szer megbzhatatlan szolgltatst nyjt, de a torldskezelsnek egy, az alkalmazs ltal vlasztolt formjval, amely kompatibilis a TCP-vel. Ha megbzhat vagy flig megbzhat adattviteli szolgltatsra van szksge egy alkalmazsnak, akkor ezt magn az alkalmazson bell hajtjk vgre, mondjuk a 3.4. alfejezetben tanult mechanizmusok hasznlatval. A DCCP hasznlatt multimdia folyamszer letltshez (streaming) hasonl alkalmazsokban valszns tik (lsd 7. fejezet), amelyek ki tudjk hasznlni az idbelisg s az adattvitel megbzhat sga kztti kompromisszumot, de rugalmasan akarnak reaglni a hlzati torldsra. A folyamvezrl tviteli protokoll (Stream Control Transmission Protocol, SCTP) [RFC 2960, RFC 3286) egy megbzhat, zenetalap protokoll, amely lehetv teszi szmos klnbz alkalmazsi szint folyam nyalbolst egyetlen SCTP-
3.7. A TCP
TORl.DSKEZELSE
,,
281
sszekttet- sen keresztl (egy multi-streaming -nek - tbb folyam egytt nevezett megolds). A megbzhatsg szemszgbl az sszekttetsen bell a klnbz folyamokat nllan kezeli, gyhogy egy folyamban trtn csomagveszts nincs hatssal a tbbi folyamban lv adat kzbestsre. Az SCTP azt is lehetv teszi, hogy amikor egy hoszt kt vagy tbb hlzathoz csatlakozik, az adatol kt kimen tvonalon keresztl kldjk ki, a sorrenden kvli adatot vlaszts szerint kzbestsk, s mg szmos ms lehetsget is. Az SCTP forgalomszablyozsi s torldskezelsi algoritmusai lnyegben azonosak a TCP-ben levkkel. A TCP-bart sebessgszablyozs (TCP-Friendly Rate Control, TFRC) protokoll [RFC 2448] inkbb egy torldskezelsi protokoll, semmint egy ksz szlltsi rtegbeli protokoll. Egy torldskezelsi mechanizmust ad meg, amelyet egy msik protokollban lehet hasznlni, mint amilyen a DCCP is (st, a kett kzl az egyik, DCCP-ben elrhet, alkalmazs ltal bellthat protokoll a TFRC). A TFRC clja, hogy kisimtsa a frsz- fog viselkedst (lsd 3.50. bra) a TCP torldskezelsben, mikzben egy a TCP-hez sszeren kzeli hossz tv kldsi sebessget tart fenn. Egy a TCP-nl egyenletesebb kldsi sebessggel a TFRC jl illeszkedik a multimdis alkalmazsokhoz, mint amilyen az IP-telefonls vagy a multimdia folyamszer letltse, ahol fontos az ilyen egyenle tes sebessg. A TFRC egy egyenletalap protokoll, amely a mrt csomagvesztsi arnyt hasznlja egy egyenlet bemeneteknt [Padhye 2000], amely azt becsli, hogy mi lenne a TCP tbocstkpessge, ha egy TCP-munkamenet azt a vesztsi arnyt tapasztalja. Ez a sebessg lesz a TFRC megclzott kldsi sebessge. Csak a jv fogja megmondani, hogy a DCCP-t, SCTP-t vagy TFRC-t fogjk-e szleskren alkalmazni. Mg ezek a protokollok nyilvnvalan fokozott kpessgeket nyjtanak a TCP-hez s az UDP-hez kpest, a TCP s az UDP mr elg jnak bizonyult az vek sorn. Az, hogy a jobb nyer-e az elg jval szemben, mszaki, trsadalmi s zleti megfontolsok bonyolult keverkn fog mlni. Az 1. fejezetben azt mondtuk, hogy egy szmtgp-hlzatot a hlzat szlre s a hlzat magjra lehet sztbontani. A hlzat szle fed le mindent, amely a vgrendszerekben trtnik. Most, hogy mr megtrgyaltuk az alkalmazsi rteget s a szlltsi rteget, a hlzat szlt illet trgyalsunk teljes. Ideje, hogy feldertsk a hlzati magot! Ez az utazs a kvetkez fejezetben kezddik, ahol a hlzati rteget fogjuk tanulmnyozni, s az 5. fejezetben folytatdik, ahol az adatkapcsolati rteggel ismerkednk meg.
Krdsek_______________________________________________
3.1-3.3. alfejezet KI. Ttelezzk fel, hogy a hlzati rteg az albbi szolgltatst biztostja. A forrshoszt hlzati rtege egy maximum 1200 bjt mret szegmenst s egy clhosztcmet fogad el a szlltsi rtegtl. A hlzati rteg ekkor garantlja, hogy a szegmenst elszlltja a clhoszt szlltsi rtegnek, legyk fl, hogy sok hlzati alkalmazsi folyamat futhat a cl hosztnl. (a) Tervezze meg a lehet legegyszerbb szlltsi protokollt, amely az alkalmazsi adatot a clhoszt kvnt folyamathoz juttatja. Ttelezze fel,
282
K2.
K3.
K4. K5.
K6. K7.
K8.
3.4. alfejezet K9. Az rdt protokolljainkban mirt kellett bevezetnnk sorszmokat? K10. Az rdt protokoljainkban mirt kellett bevezetnnk idztket?
3.7. A TCP
TORl.DSKEZELSE
283
KI 1. Ttelezze fel, hogy a kld s a vev kztt a krbejrsi ksleltets lland, s a kld szmra ismert. Ez esetben is szksg lenne az rdt 3.0 protokollban egy idztre, felttelezve, hogy a csomagok elveszhetnek? Magyarzza meg. KI2. Ltogassa meg a kapcsold webhelyen az M-nel trtn visszalps Java kisalkal- mazst. (a) Kldessen ki a forrssal t csomagot (Send New - tszr), majd pillanatmegl- ltval (Pausc) lltsa le az animcit, mieltt brmelyik csomag elrne a clllomsig. Ezt kveiden nyelss el az els csomagot (kattintson r, majd Kill Packet/Ack), majd folytassa (Resume) az animcit. Fejtse ki, hogy mi trtnik. (b) Ismtelje meg a ksrletet, de most hagyja, hogy az els csomag elrje a clllomst, s az els nyugtt nyelss el. Fejtse ki ismt, hogy mi trtnik. (c) Vgl prbljon hat csomagot kldeni. Mi trtnik? K13. Ismtelje meg az KI2. krdst, de ez esetben a szelektv ismtls Javakisalkalma- zssal. Miben klnbzik a szelektv ismtls s az n-nel trtn visszalps egymstl? 3.5. alfejczct
4*
K14. Igaz vagy hamis? (a) Az A hoszt egy nagy fjlt kld B hosztnak egy TCP-sszekttetsen keresztl. Ttelezze fel, hogy a B hosztnak nincs semmilyen A hosztnak kldend adata. A B hoszt nem fog nyugtkat kldeni A hosztnak, mert a B hoszt nem tudja adatokra rltetni a nyugtkat. (b) Egy sszekttets idtartama sorn soha sem vltozik a TCP RcvWindow mrete. (c) Ttelezze fel, hogy az A hoszt egy nagy fjlt kld a B hosztnak egy TCPsszekttetsen t. Az A ltal kldtt nyugtzatlan bjtok szma nem haladhatja meg a vteli pufer mrett. (d) Ttelezze fel, hogy az A hoszt egy nagy fjlt kld a B hosztnak egy TCPsszekttetsen t. Ha ennek az sszekttets egy szegmensnek a sorszma m, akkor a kvetkez szegmens sorszma szksgszeren m + 1 lesz. (e) A TCP-szegmens fejrszben van egy mez az RcvWindow szmra. (0 Ttelezze fel, hogy egy TCP-sszekttetsben az utols SampleRTT 1 msodperc. Az sszekttetsnek az aktulis Timeoutlnterval rtke szksgszeren > 1 msodperc. (g) Ttelezze fel, hogy A hoszt egy TCP-sszekttets fltt B hosztnak egyetlen szegmenst kld 38-as sorszmmal s 4 bjtnyi adattal. Ugyanebben a szegmensben a nyugtaszm szksgszeren 42. K15. Ttelezze fel, hogy az A hoszt egy TCP-sszekttetsen t szorosan egymst kveten kt TCP-szegmenst kld a B hosztnak. Az els szegmens sorszma 90, a msodik sorszma pedig 110. (a) Mennyi adat van az els szegmensben? (b) Tegye fel, hogy az els szegmens elveszik, de a msodik szegmens megrkezik B-hez. A nyugtban, amelyet a B hoszt kld az A hosztnak, mi
284
Kl.
3.7. alfejczct K17. Ttelezze fel, hogy egy R sebessg szk keresztmetszet adatkapcsolaton kt TCP-sszekttets van jelen. Mindkt sszekttetsnek egy hatalmas fjlt kell t- kldenie (a szk keresztmetszet adatkapcsolaton azonos irnyban). A fjlok tvitele egyszerre kezddik meg. Milyen tviteli sebessget szeretne adni a TCP az egyes sszekttetseknek? K18. Igaz vagy hamis? Tekintse a TCP torldskezelst. Amikor a kldnl egy idzt lejr, a kszbrtket az elz rtknek a felre lltjk.
Feladatok
FI. Ttelezze fel, hogy az A kliens egy Telnet-munkaviszonyt kezdemnyez az S szerverrel. Nagyjbl ugyanakkor a B kliens is egy Telnet-munkaviszonyt kezdemnyez az S szerverrel. Adjon meg lehetsges forrs- s clportszmokat (a) az A-tl S-nek kldtt szegmensek szmra. (b) a B-tl S-nek kldtt szegmensek szmra. (c) az S-tl A-nak kldtt szegmensek szmra. (d) az S-tl B-nek kldtt szegmensek szmra. (e) Ha A s B klnbz hosztok, lehetsges-e, hogy az A-tl az S-nek kldtt szegmenseknek ugyanaz a forrsportszma, mint a B-tl az S-nek kldttek? (f) Mi a helyzet, ha ugyanazok a hosztok? F2. Tekintse a 3.5. brt. Mik a forrs- s clportrtkek a szervertl a kliensfolyama- taihoz visszakldtt szegmensekben? Mik az IP-cmek a szlltsi szegmenseket szllt hlzati rtegbeli datagramokban? F3. Az UDP s a TCP 1-es komplcmenst hasznl az ellenrz sszegeikben. Ttelezze fel, hogy a kvetkez hrom 8 bites bjtja van: 01010101, 01110000, 01001100. Mi az l-es komplemense ezen 8 bites bjtok sszegnek? (Vegye szre, hogy habr az UDP s a TCP 16 bites szavakat hasznl az ellenrz sszeg szmtsakor, e feladat sorn arra krtk, hogy 8 bites sszegeket tekintsen.) A megolds minden lpst tntesse fel. Mirt veszi az UDP az sszeg 1-es komplemenst - azaz mirt nem hasznlja egyszeren az sszeget? Az 1-es komplemensrendszerrel hogyan szleli a vev a hibkat? Lehetsges az, hogy egy 1 bites hiba rejtve marad? Mi a helyzet egy 2 bites hibval? F4. (a) Ttelezze fel, hogy a kvetkez kt bjtja van: 00110100 s 01101001. Mi az 1-es komplemense ennek a kt bjtnak? (b) Ttelezze fel, hogy a kvetkez kt bjtja van: 11110101 s 00101001. Mi az 1-es komplemense ennek a kt bjtnak?
3.7. A TCP
TORl.DSKEZELSE
285
(c) Az (a) rszben lv bjtok esetn adjon egy pldt, ahol mind a kt bjtban egy bit tbillen, s az 1-es komplemens mgsem vltozik meg. F5. Ttelezze fel, hogy az UDP-vev kiszmtja a vett UDP-szegmensre az internet ellenrz sszeget, s gy tallja, hogy az megegyezik az ellenrz sszeg mezben hordozott rtkkel. Teljesen biztos lehet a vev abban, hogy nem kvetkezett be bithiba? Magyarzza meg. F6. Fontolja meg az rdt2.1-es protokollunk javtsnak indtkt. Mutassa meg, hogy a kvetkez oldalon feltntetett vev, amikor a 3.10. brn lthat kldvel mkdik egytt, a kldt s a vevt egy holtponti llapotba tudja juttatni, ahol mindkett egy olyan esemny bekvetkezsre vr, amely soha sem fog bekvetkezni.
extract(rcvpkt,data) delver data(daLa) compute chksum make pkt (sndpkt,ACK, chksum) udt_send(sndpkt)
Vrakozs
0-ra alulrl
compute chksurr rdt rvc(rcvpkf.) & notcorrupt make pkt(sndpkt,NAK,chksum) (rcvpkt) && has^seql(rcvpkt) udtsend(sndpkt) extract(rcvpkt,data) deliver_data(data) compute chksum make_pkt(sndpkt,ACK,chksum ) udt_send(sndpkt)
F7. Az rdt3.0 protokollban a vevtl a kld fele halad ACK-csomagoknak nincs sorszmuk (habr van nyugta mezjk, amely az ppen nyugtzott csomag sorszmt tartalmazza). Mirt van az, hogy az ACK-csomagjaink nem ignyelnek sorszmokat? F8. Rajzolja meg az rdt3.0 protokoll vev oldali FSM-jt. F9. Vzolja az rdt3.0 protokoll mkdst hibs adatcsomagok s nyugtacsomagok esetn. A vzlata a 3.15. brn hasznltra hasonltson. F10. Tekintsen egy olyan csatornt, amelyben csomagok elveszhetnek, de egy ismert fels korlt van a ksleltetsre. Mdostsa az rdt2.1 protokollt gy, hogy kld oldali idtllpst s jrakldst is tartalmazzon. Adjon r informlis bizonytst, hogy mirt kpes a protokollja hibtlanul kommuniklni ezen a csatornn keresztl. FII. Az rdt3.0 kld oldala egyszeren figyelmen kvl hagyja (azaz nem vgez
3.7. A TCP
TORl.DSKEZELSE
287
semmilyen mveletet) az sszes olyan vett csomagot, amelyek vagy hibt tartalmaznak, vagy pedig egy nyugtacsomag acknum mezjben rossz rtk szerepel. Ttelezze fel, hogy ilyen esetekben az rdt3.0-nak csak egyszeren jra kell kldenie az aktulis adatcsomagot. gy is mkdne a protokoll? (Tipp: Fontolja meg, mi trtnne, hogyha csak bithibk lennnek - nincsenek csomagvesztsek, de trtnhetnek korai idtllpsek. Tekintse meg, hogy az w-edik csomag hatrrtkben hnyszor kerl elkldsre, ha az n vgtelenhez tart.) F12. Tekintseazrdt 3.0 protokollt. Rajzoljon egy diagramot, amely azt mutatja be, hogy ha a kld s a vev kztti hlzati sszekttets tsorrendezheti a csomagokat (azaz kt, a kld s a vev kztti kzegben halad csomag sorrendje mdosulhat), akkor a vltakoz bit protokoll nem fog helyesen mkdni (gyzdjn meg rla, hogy egyrtelmen megadja, hogy milyen rtelemben nem fog helyesen mkdni). A diagramjn a bal oldalon legyen a kld, a vev pedig a jobb oldalon, az idtengely az oldalon lefel fusson, s az adat- (D) s nyugta- (A) csomag vltst
288
3. A
szlltsi rteg
mutassa. Bizonyosodjon meg rla, hogy minden adat- vagy nyugtaszegmenshez tartozik sorszm. F13. Tekintsen egy megbzhat adattviteli protokollt, amely csak negatv nyugtzst hasznl. Ttelezze fel, hogy a kld csak ritkn kld adatot. Kvnatosabb egy csak NAK-ot hasznl protokoll egy ACK-kat hasznl protokollal szemben? Mirt? Most ttelezze fel azt, hogy a kldnek sok kldend adata van, s a vgpontok kztti sszekttetsben kevs veszts tapasztalhat. A msodik esetben kvnatosabb egy csak NAK-ot hasznl protokoll egy ACK-at hasznl protokollal szem ben? Mirt? F14. Tekintse a 3.16. brn lthat Amerikai Egyeslt llamok kt partjnak pldjt. Milyen nagynak kellene az ablakmretnek lennie ahhoz, hogy a csatornakihasznltsg 90 szzalk fltti legyen? F15. Az ltalnos SR protokollban, amelyet a 3.4.4. alfejezetben tanulmnyoztunk, a kld azonnal elkld egy zenetet, amint az rendelkezsre ll (ha az ablakba esik) anlkl, hogy egy nyugtra vrna. Ttelezze fel, hogy egy olyan SR protokollt szeretnnk, amely egyszerre kt zenetet kld el. Azaz a kld egy zenetprt fog ki kldeni, s a kvetkez zenetprt csak akkor fogja elkldeni, amikor tudja, hogy az els zenetpr mindkt zenett hibtlanul vettk. Ttelezze fel, hogy a csatorna elveszthet zeneteket, de nem fogja mdostani vagy tsorrendezni az zeneteket. Tervezzen egy hibajavt protokollt az zenetek egy irny megbzhat tvitelhez. Adja meg a kld s a vev FSM lerst. Rszletezze a kld s a vev kztt, valamint a msik irnyba kldtt csomagok form tumt. Ha a 3.4. alfejezetben szereplkn (pldul udt_send(), start_ timer(), rdt_rcv() s gy tovbb) kvl hasznl ms eljrshvst is, egyrtelmen rja le a mkdst. Adjon egy olyan pldt (a kld s a vev mkd snek vzlatt az idtengely mentn), amely megmutatja, hogyan ll helyre a protokollja egy csomagvesztsbl. F16. Tekintsen egy olyan helyzetet, amelyben az A hoszt egyszerre szeretne csomagokat kldeni B s C hosztoknak. A egy zenetszrsos csatornn keresztl kapcsoldik B-hez s C-hez - egy A ltal kldtt csomagot a csatorna a B-hez is s a C-hez is eljuttat. Ttelezze fel, hogy az A-t, B-t s C-t sszekt zenetszrsos csatorna fg getlenl veszthet el csomagokat s okozhat srlst a csomagokban (s gy, pl dul, egy A-tl kldtt csomagot a B hibtlanul vehet, mg a C nem). Tervezzen egy megll-s-vr jelleg hibajavt protokollt a csomagok A-tl B-hez s C-hez tr tn megbzhat adattvitelre gy, hogy az A nem kap addig j adatot a felsbb rtegtl, ameddig nem tudja, hogy a B s a C is hibtlanul megkapta az aktulis csomagot. Adja meg az A s a C FSM lerst. (Tipp: a B-hez tartoz FSM-nek lnyegben ugyanolyannak kell lennie, mint a C-hez tartoznak.) Valamint adja meg a hasznlt csomagformtum(ok) egy lerst. F17. Tekintsen egy olyan esetet, amikor az A hoszt s a B hoszt zeneteket akar kldeni a C hosztnak. Az A s a C hosztokat egy olyan csatorna kti ssze, amelyben az zenetek elveszhetnek, s megsrlhetnek (de nem rendezdhetnek t). B s C hosztokat egy msik (az A-t s C-t sszekt csatorntl fggetlen), azonos tulajdon sgokkal rendelkez csatorna kti ssze. C hoszt szlltsi rtegnek felvltva kell kzbestenie a felsbb rtegnek az A-tl s a B-tl rkez zeneteket (azaz elszr egy A-tl szrmaz csomagban lv adatot kell kzbestenie, majd egy B-tl szr maz csomagban lv adatot s gy tovbb). Tervezzen egy megll-s-vr jelleg hibajavt protokollt a csomagok A-tl s B-tl C-hez trtn megbzhat adattvitelre, a C-nl a fent lert mdon trtn vltakoz kzbestssel. Adja meg az A s a C FSM lerst. (Tipp: a B-hez tartoz FSM-nek lnyegben ugyanolyannak kell lennie, mint az A-hoz tartoznak.) Valamint adja meg a hasznlt csomagfor- mtum(ok) egy lerst. F18. Tekintsen egy GBN protokollt, egy 3 mret kld ablakkal s egy 1024-ig terjed sorszmtartomnnyal. 'Ttelezze fel, hogy a idpillanatban a vev ltal vrt kvetkez sorrend helyes csomag sorszma k. Tegye fel, hogy a kzeg nem mdostja a csomagok sorrendjt. Vlaszolja meg az albbi krdseket: (a) Mika t idpontban a lehetsges, a kld ablakba es sorszmhalmazok? Iga zolja az lltst. (b) Az sszes lehetsges, a t idpillanatban ppen a kld fel halad zenetben melyek a nyugta mez lehetsges rtkei? Igazolja az lltst. FI9. Ttelezze fel, hogy kt hlzati entitsunk van, A s B. B-nek egy sor adat zenete van, amely a kvetkez szablyok szerint lesz A-nak elkldve. Amikor A a felsbb rtegtl kap egy krst, hogy a kvetkez (D) adatzenetet B-tl tvegye, A-nak az A-B csatornn egy (R) krszenetet kell kldenie B-hez. B csak akkor tud egy (D) adatzenetet visszakldeni Anak a B-A csatornn, amikor egy (R) zenetet kap. A-nak minden (D) zenetbl pontosan egy pldnyt kell a felsbb rtegnek kzbestenie. Az (R) zenetek elveszhetnek (de nem srlhetnek meg) az A-B csa tornban - a (D) zeneteket, ha egyszer elkldtk, mindig hibtlanul kzbestik. Mindkt csatorna ksleltetse ismeretlen s vltoz. Tervezzen (adja meg az FSM lerst) egy olyan protokollt, amely magba foglalja a megfelel mechanizmusokat a vesztsre hajlamos A-B csatorna ellenslyozsra, s az A entitsnl megvalstja a fent lert, felsbb rtegnek trtn
3.7. A TCP
TORLDSKEZEISE
289
zenettadst. Csak azokat a mechanizmusokat hasznlja, amelyek felttlen szksgesek. F20. Tekintse a GBN s SR protokollokat. Ttelezze fel, hogy a sorszmok tere k mret. Mi a mindkt protokoll szmra legnagyobb megengedhet kld ablak, amely meggtolja az olyan problmk elfordulst, mint amilyen a 3.26. brn lthat? F21. Vlaszoljon igazzal vagy hamissal a kvetkez krdsekre, s tmren indokolja a vlaszt: (a) Az SR protokollal lehetsges, hogy a kld egy, az aktulis ablakn kvlre es csomagra kapjon nyugtt. (b) A GBN protokollal lehetsges, hogy a kld egy, az aktulis ablakn kvlre es csomagra kapjon nyugtt. (c) A vltakoz bit protokoll megegyezik egy olyan SR protokollal, ahol a kld s vev ablak mrete 1. (d) A vltakoz bit protokoll megegyezik egy olyan GBN protokollal, ahol a kld s vev ablak mrete 1. F22. Azt mondtuk, hogy egy alkalmazs szlltsi protokollknt az UDF-t vlaszthatja, mert az UDP-nl az alkalmazs finomabban szablyozhatja (mint TCP-nl) azt, hogy egy szegmensben milyen adat, s mikor kerl elkldsre. (a) Mirt tudja egy alkalmazs jobban szablyozni azt, hogy egy szegmensben milyen adat kerl elkldsre? (b) Mirt tudja egy alkalmazs jobban szablyozni azt, hogy egy szegmens mikor kerl elkldsre?
1.8. SSZEFOGLALS
290
F23. Fontolja meg egy roppant nagy, L bjtos fjl tvitelt az A hoszttl a B hoszthoz. 1460 bjtos MSS-t ttelezzen fel. (a) Mi L legnagyobb rtke, amelynl a TCP sorszmok mg nem merlnek ki? Emlkezzen r vissza, hogy a TCP sorszm mezje 4 bjtos. (b) Az (a) rszben kapott L-re szmtsa ki, hogy mennyi idbe telik tkldeni a fjlt. Ttelezze fel, hogy sszesen 66 bjtnyi szlltsi, hlzati s adatkapcsolati fejrszt adnak minden szegmenshez, mieltt az gy kapott csomagot egy 10 Mb/s-os adatkapcsolaton tkldenk. Hagyja figyelmen kvl a forgalom- szablyozst s a torldskezelst, hogy az A a szegmenseket szorosan egymst kveten s folyamatosan tudja kikldeni. F24. Az A s a B hosztok egy TCP-sszekttetsen keresztl kommuniklnak, s a B hoszt mr a 248-as bjtig bezrlag az sszes bjtot megkapta A-tl. Ttelezze fel, hogy az A hoszt ezt kveten elkld a B hosztnak kt szegmens! szorosan egymst kveten. Az els s a msodik szegmens 40, illetve 60 bjtnyi adatot tartalmaz. Az els szegmensben a sorszm 249, a forrsportszm 503, a clportszm pedig 80. B hoszt valahnyszor megkap egy szegmenst A hoszttl, elkld egy nyugtt. (a) A msodik, A hoszttl B-nek kldtt szegmensben mi a sorszm, a forrsportszm s a clpor tszm? (b) Ha az els szegmens a msodik eltt rkezik meg, az elsnek rkez szegmens nyugtjban mi a nyugtaszm, a forrsportszm s a clportszm? (c) Ha a msodik szegmens az els eltt rkezik meg, az elsnek rkez szegmens nyugtjban mi a nyugtaszm? (d) Ttelezze fel, hogy az A ltal kldtt kt szegmens sorrendben rkezik meg B-hez. Az els nyugta elveszik, s a msodik nyugta az els idtllpsi intervallumot kveten rkezik meg. Rajzoljon egy idztsi diagramot, amely ezeket a szegmenseket s az sszes tbbi elkldtt szegmenst s nyugtt mutatja. (Ttelezze fel, hogy nincs jabb adatveszts.) Az brjn minden szegmensnl tntesse fel a sorszmot s az adatbjtok szmt - minden nyugthoz, amelyet hozzad, adja meg a nyugtaszmot. F25. Az A s a B hoszt kzvetlenl vannak sszektve egy 200 Mb/s-os adatkapcsolattal. Egyetlen TCP-sszekttets van a kt hoszt kztt, s az A hoszt egy roppant nagy fjlt kld t a B hosztnak ezen a sszekttetsen keresztl. Az A hoszt 100 Mb/s-mal tud alkalmazsi adatot kldeni az adatkapcsolaton, de a B hoszt csak legfeljebb 50 Mb/s-os sebessggel tud kiolvasni a TCP vteli pufferbl. Rszletezze a TCP forgalomszablyozsnak hatst. F26. A SYN-stiket a 3.5.6. alfejezetben trgyaltuk (a) Mirt szksges, hogy a szerver egy specilis kezdeti sorszmot hasznljon a SYNACK-ban? (b) Ttelezze fel, hogy egy tmad tudja, hogy a megclzott hoszt SYNstiket hasznl. Kpes r a tmad, hogy flig nyitott vagy teljesen nyitott sszekttetseket kezdemnyezzen egyszeren egy, a clpontnak kldtt ACK-csomag- gal? Mirt vagy mirt nem? F27. Tekintse a TCP RTT becslsi eljrst. Ttelezze fel, hogy a = 0,1. Legyen a SampleRTTj a legutbbi RTT minta, SampleRTTV, a msodik
GONDOLKODTAT KRDSEK
291
F32.
F33.
legfrissebb RTT minta s gy tovbb. (a) Egy adott TCP-sszekttets esetn ttelezze fel, hogy ngy nyugta rkezett vissza, a megfelel RTT mintk: SampleRTT,, SampleRTT 3 > SampleRTT ? , SampleRTT r Fejezze ki az EstimatedRTT-t a ngy minta RTT-vel megadva. (b) ltalnostsa a kplett n RTT mintra. (c) A (b) rszbeli kpletnl n tartson vgtelenhez. Magyarzza meg, hogy mirt nevezik ezt az tlagolst eljrst exponencilis mozg tlagnak. A 3.5.3. alfejezetben a TCP RTT becslst trgyaltuk. Mit gondol, mirt kerli el a TCP az jrakldtt szegmensek esetn a SampleRTT mrst? Mi a kapcsolat a 3.5.4. alfejezetben szerepl SendBase vltoz s a 3.5.5. alfejezetben szerepl LastByteRcvd vltoz kztt? Mi a kapcsolat a 3.5.5. alfejezetben szerepl LastByteRcvd vltoz s a 3.5.4. l- fejezetben szerepl y vltoz kztt? A 3.5.4. alfejezetben lttuk, hogy a TCP hrom kettztt nyugta vtelre vr, mieltt gyors jrakldst hajtana vgre. Mit gondol, mirt dntttek gy a TCP tervezi, hogy nem az els vett szegmensre kldtt kettztt nyugtt kveten hajtjk vgre a gyors jrakldst? Tekintse a 3.45. (b) brt. Ha A** Rl2 fl n, kpes a A ki R/3 fl nni? Magyarzza meg. Most tekintse a 3.45. (c) brt. Ha A** R/2 fl n, kpes a A kl R/4 fl nni azt felttelezve, hogy egy csomag az tvlaszttl a vevhz tlagosan ktszer kerl tovbbtsra? Magyarzza meg. Tekintse a TCP ablakmretnek kvetkez grafikonjt az id fggvnyben:
tviteli fordul
Felttelezve, hogy a TCP Reno az a protokoll, amely a fent mutatott viselkedst tapasztalja meg, vlaszolja meg az albbi krdseket. Minden esetben egy rvid fejtegetst is adnia kell, amelyben a vlaszt indokolja. (a) Azonostsa azt az idtartomnyt, amikor a TCP lass indulsi fzisban mkdik. (b) Azonostsa azt az idtartomnyt, amikor a TCP torldselkerlsi fzisban mkdik. (c) A 16. tviteli fordult kveten a szegmensvesztst egy hromszoros kettztt nyugta ltal szlelik vagy egy idtllps ltal?
292
F34.
F35.
F36.
F37.
F38.
/. = V esztsi arny = -r- = (b) Hasznlja a fenti eredmnyt ahhoz, hogy megmutassa azt, hogy ha egy sszekttets vesztsi arnya L, akkor az tlagos arnya megkzeltleg
GONDOLKODTAT KRDSEK
^'
293
l,22xMSS
RTTV T
F39. A 3.7. alfejezetben a TCP jvjrl val trgyalsunkban megjegyeztk, hogy ahhoz, hogy elrje a 10 Gb/s-os tbocstkpessget, a TCP csak 2 x 10 ,0 -es szegmensvesztsi valsznsget tud elviselni (vagy ezzel egyenrtken, minden 5 000 000 000 szegmensre 1 vesztsi esemny jut). Mutassa meg, hogy hogyan szrmaztathat a 3.7. szakaszbeli RTT s MSS rtkekbl a 2 x 10 10 avagy 1 az 5 000 000 000-bl rtk. Ha a TCP-nek egy 100 Gb/s-os sszekttetst kellene tmogatnia, mi lenne az elfogadhat vesztes? F40. A 3.7. alfejezetbeli TCP torldskezelsrl szl trgyalsban implicit mdon feltteleztk, hogy a TCP-kldnek mindig volt elkldend adata. Fontolja most meg azt az esetet, amikor a TCP-kld nagy mennyisg adat elkldst kveten a idpontban ttlenn vlik (mivel nincs tbb adata, amelyet elkldhet). A TCP viszonylag hossz idn t marad ttlen, majd ezt kveten .-ben ismt adatot akar kldeni. Mik az elnyei s htrnyai annak, hogy a TCP a CongWin s Threshold rtkeket hasznlja t -tl /,-ig, amikor elkezd adatot kldeni? Milyen ms lehetsget javasolna? Mirt? F41. E feladat sorn azt vizsgljuk meg, hogy az UDP vagy a TCP kzl valamelyik nyjt-e valamilyen fok vgpont-azonostst. (a) Tekintsen egy szervert, amely egy UDP-csomagban egy krst kap, s egy UDP-csomagban vlaszol arra a krsre (pldul, ahogy azt egy DNSszerver teszi). Ha egy X IP-cm kliens meghamistja a cmt az Y cmre, hova fogja a szerver a vlaszt kldeni? (b) Most ttelezze fel, hogy az UDP helyett TCP-t hasznlnak. Kpes lesz r a kliens, hogy egyszeren az IP-cmnek a meghamistsval ravaszul rvegye a szervert arra, hogy a vlaszt egy Y cmre kldje? (c) Ttelezze fel, hogy egy szerver egy SYN-t kap Y IP-forrscmmel, s egy SYN- ACK-kal val vlaszolst kveten egy nyugtt kap Y IPforrscmmel s a helyes nyugtaszmmal. Felttelezve azt, hogy a szerver egy vletlenszer kezdeti sorszmot vlaszt, s nincs kzbekeld tmad, biztos lehet-e benne a szerver, hogy a kliens csakugyan Y-nl van (nem pedig valamilyen ms X cmen, amelyet Y-nak hamist)? F42. E feladat sorn a TCP lass induls fzisa ltal bevezetett ksleltetst vesszk fontolra. Tekintsen egy R sebessg adatkapcsolattal kzvetlenl sszekttt klienst s webszervert. Ttelezze fel, hogy a kliens egy olyan objektumot szeretne letlteni, amely pontosan 15 S mret, ahol S a legnagyobb szegmensmret (MSS). Jellje a kliens s a szerver kztti krbejrsi idt RTT-vei (llandnak felttelezve). A protokoll fejrszeket figyelmen kvl hagyva, hatrozza meg az objektum megszerzshez szksges idt (belertve a TCP-sszekttets ltestst is), amikor (a) 4 S/R > S/R + RTT > 2 S/R (b) 8 S/R > S/R + RTT > 4 S/R (c) S/R > RTT.
Gondolkodtat krdsek
Gl. Mi az a TCP sszekttetseltrts? Hogyan lehet megvalstani? G2. A 3.7. alfejezetben megjegyeztk, hogy egy kliens-szerver alkalmazs igazsgtalanul ltrehozhat sok prhuzamos egyidej sszekttetst. Mit lehet tenni, hogy az internetet valban igazsgoss tegyk? G3. Olvassa el a kutatsi irodalmat,hogy megtudja, pontosan mit rtenek TCPbart alatt. Valamint olvassa el afejezet vgn tallhat interjt Sally Floyddal. rjon egy egyoldalas rtekezst a TCP-bartsgossgrl. G4. A 3.7.1. szakasz vgn azt a tnyt trgyaltuk, hogy egy alkalmazs tbb TCP-sszekttetst nyithat meg, s gy egy magasabb tbocstkpessget rhet el (vagy ezzel megegyezen gyorsabb adattviteli idt). Mi trtnne, ha minden alkalmazs azltal prbln megjavtani a teljestmnyt, hogy tbb sszekttetst hasz nl? Milyen nehzsgeket foglalhat magba az, hogy egy hlzati elemnek kell meghatroznia azt, hogy egy alkalmazs tbbszrs TCP-sszekttetst hasznl-e? G5. A TCP s UDP portpsztzs mellett milyen funkcionalitsa lehet mg az nmap-nak? Kvesse nyomon az nmap csomagvltsokat Wiresharkkal (vagy valamilyen ms csomaglehallgatval). Hasznlja az elkapott csomagokat arra, hogy megmagyarzza azt, hogy az egyes bonyolultabb funkcik hogyan mkdnek. G6. Olvassa el az SCTP-rl [RFC 2960, RFC 3286) szl irodalmat. Mik azok az alkalmazsok, amelyekrl az SCTP tervezi gy gondoljk, hogy azokhoz hasznlni fogjk az SCTP-t? Milyen tulajdonsgokkal egsztettk ki az SCTPt annak rdekben, hogy ezen alkalmazsok ignyeit kielgtse?
FELADATOK
295
Vlaszol
Sally Floyd
Sally Floyd kutat az ICSI Internet kutat Kzpontban, egy olyan intzetben, amelyet az internetnek s a hlzatos krdseknek szenteltek. Az iparban az internetes protokoll tervezsben vgzett munkjrl ismert, kl nskppen a megbzhat tbbesklds, a torldskezels (TCP), a csomagtemezs (RED) s a protokollelemzs tern. Sally szociolgibl szerzett BA fokozatot a Berkeley California Universityn, majd informatikbl MS s PhD fokozatot ugyanazon egyetemen. Hogyan dnttt az informatika tanulsa mellett? Miutn BA fokozatot szereztem szociolgibl, ki kellett tallnom, hogyan tartsam fenn magamat - vgl a helyi egyetemen szereztem egy ktves bizonytvnyt elektronikbl, majd tz ven keresztl az elektronika s az informatika terletn dolgoztam. Ebbl nyolc vig a Bay A re Rapid Transit (bl krnyki gyors szemlyszllts) vonatokon fut szmtgpek szmtgpes rendszermrnke voltam. Ksbb gy dntttem, hogy komolyabban is tanulok az informatikt, s jelentkeztem a Berkeley Kaliforniai Egyetem informatikai szakra. Mirt dnttt gy, hogy hlzatptsre szakosodik? Az egyetem sorn rdekldni kezdtem az elmleti szmtstechnika irnt. Eleinte algoritmusok valsznsgi elemzsvel foglalkoztam, ksbb szmtgpes tanulsi elmlettel. Emellett az LBL-ben (Lawrence Berkeley Laboratory) is dolgoztam havonta egy napot, az irodm pedig Van Jacobsonval volt szemben, aki akkoriban TCP torldskezelsi algoritmusokkal foglalkozott. Van megkrdezte, hogy szeretnk-e a nyron nhny algoritmust elemezni egy hlzattal kapcsolatos problmhoz, amely magba foglalta a periodikus t vonalvlasztsi zenetek nemkvnatos szinkronizcijt. Ez rdekesnek tnt szmomra, gy ezt csinltam a nyron. Miutn befejeztem a diplommat, Van teljes munkaids llst ajnlott fel, tovbbra is hlzati terleten. Nem felttlenl terveztem vekig a hlzatos terleten maradni, de vgl a hlzati kutatst rdekfesztbbnek talltam, mint
296 az elmleti
3. A alkalmazott SZLLTSI RTF.G informatikt. Rjttem, hogy boldogabb vagyok az tudomnyok vilgban, ahol a munkm kvetkezmnyei kzzelfoghatbbak.
Mi volt a szmitgpes iparban az els munkja? Mivel jrt ez egytt? Az els szmtgpes munkm a BART-nl (Bay Area Rapid Transit) volt 1975-tl 1982-ig, a BART-vonatokon fut szmtgpeken dolgoztam. Technikusknt kezdtem, a BRT-rendszert futtat klnbz elosztott szmtgpes rendszerek karbantartsval s javtsval. Ezek kz tartozott egy kzponti szmtgpes rendszer s egy elosztott miniszmtgp rendszer a vonat mozgsnak szablyozsra; egy DF.Cszmtgpekbl ll rendszer hirdetsek s a clllomsjelzkn a vonatok clllomsainak megjelentsre; s egy
297
Modcomp szmtgpekbl ll rendszer, amely a fizetkapuktl gyjttte ssze az adatokat. A BART-nl tlttt utols veim alatt egy kzs BART/LBL projekten dolgoztam egy, a BRT korosod vonat vezrl szmtgpes rendszert felvlt rendszer tervezsn. Mi a munkjnak a legnagyobb kihvsokat tartalmaz rsze? A tnyleges kutats a leginkbb kihvst jelent rsz. Jelenleg egy kutatsi tma a torldskezelst illet tovbbi problmk feltrst foglalja magba olyan alkalmazsok szmra, mint a multimdia folyamszer tvitele. Egy msodik tma azokkal a hlzati akadlyokkal foglalkozik, amelyek megneheztik a kzvetlenebb kommunikcit az tvlasztk s a csompontok kztt. Ezek kztt az akadlyok kztt lehetnek IP-alagutak, MPLS tvonalak, tvlasztk vagy kzbees eszkzk, amelyek eldobjk az olyan csomagokat, amelyek IP-opcikat tartalmaznak, sszetett msodik rtegbeli hlzatok s hlzati tmadsi lehetsgek. Egy harmadik folyamatban lev tma annak feldertse, hogyan befolysolja az elemzsben, szimulciban s ksrletekben hasznlt helyzetek modelljeinek megvlasztsa a torldskezelsi mechanizmusok teljestmnynek rtkelst. Ezekrl a tmkrl tovbbi informci a http://www.icir.org/fioyd-r0l elrhet DCCP, Quick-Start (gyors induls) s TMRG weblapokon tallhat. Mit gondol az internet s a hlzatok jvjt illeten? Egy lehetsg, hogy a jellemz torlds, amivel az internetes forgalom szembesl, kevsb lesz slyos, ahogy a rendelkezsre ll svszlessg gyorsabban nvekszik, mint az igny. gy ltom, hogy a kevsb slyos torldsok fel tartunk, mindazonltal a kzptv jvben nem tartom lehetetlennek, hogy a nvekv torldst alkalmanknti torldsi sszeomls teszi majd hangslyoss. Magnak az internetnek vagy az internet architektrjnak a jvje egyltaln nem egyrtelm szmomra. Sok tnyez van, amely a gyors vltozshoz hozzjrul, gy ht nehz megjsolni, hogy az internet vagy az internet architektrja hogyan fog fejldni, vagy egyltaln azt megjsolni, hogy ez a fejlds mennyire lesz kpes sikeresen elkerlni a sok lehetsges csapdt az t sorn. Negatv irnyzat, hogy az internet architektrjban val vltoztats megvalstsa egyre nehezebb vlik. Az internet architektrja tbb mr nem egysges egsz, a klnbz sszetevk, mint pldul a szlltsi protokollok, az tvlaszt mechanizmusok, tzfalak, terhelskiegyenltk, biztonsgi mechanizmusok s hasonlk nha ellenkez cllal mkdnek. Szakmailag kik sztnztk? Richard Karp, a diplomakonzulensem az egyetemen, lnyegben megmutatta, hogyan kell kutatni, s Van Jacobson a csoportvezetm az LBL-ben, akinek a hlzatok tern mutatkoz rdekldsemet s az internet architektrjnak megrtst ksznhetem. Dave Clark az internet architektrjnak tltsval, s ennek az architektrnak a fejlesztsben val kutatssal, rssal, s az IETF-ben s ms nyilvnos frumokon val rszvtellel felvllalt szerepvel sztnztt. Deborah Estrin a figyelmn s hatkonysgn keresztl, s azzal sztnztt, hogy
3. A SZLLTSI RTF.G
4.
FEJEZET
A hlzati rteg
Az elz fejezetbl megtudtuk, hogy a szlltsi rteg - a hlzati rteg hosztok kztti kommunikcis szolgltatst ignybe vve - a processzek kztti kommunikci klnfle mdozatait bocstja rendelkezsre. Az is kiderlt, hogy ekzben semmilyen ismerettel nem rendelkezik arrl, hogy a hlzati rteg valjban mikppen valstja meg ezt a szolgltatst. Az olvasban gy joggal vetdhet fel a krds: hogyan is mkdik a hosztok kztti kommunikcis szolgltats. Ez a fejezel rszletekbe menen bemutatja, hogy a hlzati rteg mikppen valstja meg a hosztok kztti kommunikcis szolgltatst. Megltjuk majd, hogy - a szlltsi rtegtl eltren - a hlzati rteg egy-egy rsze a hlzat minden egyes hosztjban s tvlasztjban megtallhat. Ezrt van az, hogy a protokollok hierarchikus rendszern bell a hlzati rteg protokolljai a legsszetettebbek (s gy a legrdekesebbek is!). Maga a hlzati rteg is a hivatkozsi modell egyik legsszetettebb rtege, gy ebben a fejezetben sok mindenrl kell majd szt ejtennk. Elsknt ttekintjk a hlzati rteg felptst s az ltala nyjthat szolgltatsokat. Ezt kveten jra foglalkozunk azzal, hogy mikppen trtnik a csomagszllts szervezse a hlzati rtegben. jfent megvizsgljuk a problmnak az 1. fejezetben mr emltett kt, szles krben elterjedt megkzeltst: a datagramalap modellt, illetve a virtulis ramkrkn alapul modellt. Sz lesz a cmzs dnt szereprl is a csomagoknak a clgpig trtn eljuttatsban. Ebben a fejezetben komoly figyelmet szentelnk a hlzati rteg tovbbtsi (forwarding) s tvlasztsi (routing) funkcii kztti alapvet klnbsgnek. A tovbbts azt jelenti, hogy az tvlaszt egy-egy csomagot thelyez a bemen oldali interfszrl a kimen oldali interfszre; ez teht egy egyetlen tvlasztt rint mvelet. Az tvlaszts a hlzat sszes tvlasztjt rinti, mivel ezek sszessgnek az tvlaszt protokollokon keresztl trtn klcsnhatsa hatrozza meg a csomagok tvonalt 1 a forrs- s a clcsompont kztt. Annak rdekben, hogy a fejezetben trgyalt fogalmakat s folyamaA fordt megjegyzse: a magyar nyelvben sszemosdik az t s az tvonal fogalma. A
grfelmletben az t kt csompont kztti egy vagy tbb lbl ll rendezett lsorozatot jelent; az els el az els csompontbl indul ki, az utols l az utols csompontba fut be. Az thoz tartoz leket sorban bejrva az els csompontbl eljutunk az utolsba. Ezzel szemben a kznyelvben tnak ltalban a kzthlzat egy konkrt szakaszt hvjuk (pldul Vci t), s tvonalnak nevezzk azt, amit a grfelmletben tnak hvunk. Tovbb nveli a kavarodst, hogy a telefonhlzatokkal, SDH-val kapcsolatos szakmai terminolgiban szintn gyakran tvonalknt
4 ugyanebben az rtelemben hasznljk az t" szt is. emlegetik a grfelmleti utakat, de 8 idnknt
FELADATOK
299
Ebben a knyvben e tekintetben elssorban az rthetsgre trekedtnk, a grfelmleti precizits msodlagos volt; ezrt a precz t helyett gyakran a htkznapi tvonal szt hasznljuk. Bzunk benne, hogy a szvegkrnyezet mindenti egyrtelmv teszi, hogy az t, tvonal, tszakasz szavak mit jelentenek.
tokt a megfelel szvegkrnyezetbe tudjuk helyezni, sose tvesszk szem ell ezt a megklnbztetst. A csomagtovbbts jobb megrtse cljbl belenznk az tvlasztk belsejbe, azaz megismerkednk hardver-architektrjukkal s mkdskkel. Ezutn alaposabban is tanulmnyozzuk az internetes csomagtovbbtst s a sokat emlegetett IP-t (Internet Pro- tocol). Foglalkozunk a hlzati rtegbeli cmzssel s az IPv4 datagram-formtummal, ezt kveten pedig a hlzati cmfordtssal (network address translation, NAT), a datagra- mok darabolsval, az ICMP-vel (Internet Control Message Protocol) s az lPv6-tal. A tovbbiakban a hlzati rteg tvlasztsi funkciival foglalkozunk. Ltni fogjuk, hogy az tvlaszt algoritmus (routing algorithm) feladata az, hogy j tvonalakat (ms terminolgiban utakat) talljon a csomagok kldi s fogadi kztt. Elsknt az tvlaszt algoritmusok elmlett tekintjk t klns tekintettel kt legelterjedtebb osztlyukra, a kapcsolatllapots a tvolsgvektor-alap algoritmusokra. Ahogy az tvlaszt algoritmusok a hlzati tvlasztk szmnak nvekedsvel egyre sszetettebb vlnak, gy vlnak egyre vonzbbakk az tvlasztsban a hierarchikus mdszerek. Az internet egyetlen autonm rendszern bell hasznlatos tvlaszt protokollok (a R1P, az OSPF s az IS-IS), illetve az autonm rendszerek kztt hasznlt BGP taglalsa kapcsn ltni fogjuk, hogyan alkalmazhatjuk az elmletet a gyakorlatban. A fejezetet az adatszr (broad- cast) s a tbbeskldses (multicast) tvlaszts trgyalsval zrjuk. Rviden sszefoglalva: jelen fejezet hrom f rszbl ll. Az els rsz (4.1. s 4.2. alfeje- zet) a hlzati rteg feladataival s szolgltatsaival, a msodik rsz (4.3. s 4.4. alfejezet) a tovbbtssal, a harmadik rsz (4.5., 4.6. s 4.7. alfejezet) az tvlasztssal foglalkozik.
4.1.
Bevezets
A 4.1. brn egy kt hosztbl (Hl s H2) s a kztk lv tvonalon tallhat tbb tvlasztbl ll egyszer hlzat lthat. Tegyk fel, hogy Hl informcit kld H2-nek. Vizsgljuk meg az ezekben a hosztokban s a kzremkd tvlasztkban lv hlzati rteg szerept. Ill-ben a hlzati rteg tveszi a szlltsi rtegbl rkez szegmenseket, majd datagramokba (azaz egy-egy hlzati rtegbeli csomagba) csomagolva elkldi ezeket a hozz kzeli R tvlasztnak. A H2 hosztnl a hlzati rteg a hozz kzeli R2 tvlasz ttl megkapott datagramokbl kicsomagolja a szlltsi rteg adatszegmenseit, amelyeket a szlltsi rtegnek tovbbt. Az tvlasztk f feladata az, hogy a hozzjuk valamely interfszen berkez csomagokat (ezt az interfszt a tovbbiakban bemeneti interfsznek nevezzk) azon az interfszen kldjk ki, amely hlzattopolgiai rtelemben a csomagok cmzettje fel nz (a tovbbiakban kimeneti interfsz). Vegyk szre, hogy a 4.1. brn az tvlasztkat csonka protokollkszlettel brzoltuk: hinyoznak bellk a hlzati rteg feletti rtegek, mivel az tvlasztk a hlzat felgyelet kivteleivel nem
300 3. A SZLLTSI RTF.G futtatnak a 2. s 3. fejezetben ismertetett alkalmazsi, illetve szlltsi rtegbeli
protokollokat.
4.1.1.
Tovbbts s tvlaszts
A hlzati rteg feladata igen egyszernek tnik: el kell juttatni a csomagokat a kld hoszttl a fogad hosztig. Ennek sorn az albbi kt funkci jtszik fontos szerepet:
301
Adatkapcsolati Fizikai
Adatkapcsolati
Fizikai
Hlzati
Adatkapcsolati
302
Otthoni hlzat
Hlzati Adatkapcsolati
Fizikai 2 tvlaszt
3. A SZLLTSI RTF.G
Fizikai
Vllalati hlzat
Fizikai
tvlaszts. A hlzati rtegnek meg kell hatrozni a kld s a fogad kztt raml csomagok tvonalt. Az tvonalak kiszmtst vgz algoritmusokat tvlaszt algoritmusoknak (routing algorithm) nevezzk. Egy ilyen algoritmus hatrozn meg pldul azt, hogy milyen tvonal mentn haladjanak a csomagok a Hl hoszttl a M2 hoszt ig. A hlzati rteggel foglalkoz szerzk kzl sokan felcserlhetnek tekintik a tovbbts s az tvlaszts fogalmt, jelen knyv szerzi azonban szigoran megklnbztetik ket. Tovbbts alatt a csomagnak az tvlaszt valamely bemeneti interfsztl a megfelel kimeneti interfszhez az tvlasztn bell trtn eljuttatst rtjk. tvlaszts alatt azt a hlzat egszre kiterjed folyamatot rtjk, amely meghatrozza a csomagoknak a forrstl a clig kvetett tvonalt. Egy auts analgival lve kvessk nyomon az 1.3.2. alfejezetben szerepl utasunk tjt Pennsylvnibl Floridba. Utazsa sorn autsunk tbb kzti csomponton halad keresztl. A tovbbtst az egyes csompontokon val tjutsknt kpzelhetjk cl. Az aut az egyik ton haladva elri a csompontot, majd a vezet eldnti, hogy melyik ton hagyja el azt. Az tvlasztst pedig gy kpzelhetjk el, mint a Pennsylvnibl Floridba tart utazs megtervezsi: a vezet az utazs megkezdse eltt egy trkp segtsgvel kivlaszt a sokfle lehetsges tvonal kzl egyet, mikzben mindegyik lvonal egy sor olyan szakaszbl ll, amelyek a csompontokban kapcsoldnak egymshoz. Ebben a fejezetben elsknt a hlzati rteg szolglati modell jeit tekintjk t, mieltt rtrnnk a hlzati rtegnek a tovbbtsban s az tvlasztsban betlttt szerepre. Minden tvlaszt rendelkezik egy tovbbttblval (forwarding table). Az tvlaszt a berkez csomag fejrszben lv egyik mez rtkt indexknt hasznlva kivlasztja a tblnak azon sort, amely megmutatja, hogy mely kimeneti interfszhez kell az adit csomagot tovbbtani. A konkrt hlzati rtegbeli protokolltl fggen ez a fejrszmez lehet a csomag clcme, vagy annak a hlzati kapcsolatnak az azonostja, amelyhez a csomag tartozik. A 4.2. brn lthal pldban a berkez csomagban a megfelel fejrszmez rt ke 0111. Az tvlaszt a tovbbttbla 0111 azonostj sorbl kiolvassa, hogy a csomagot a 2-es kimeneti interfszhez kell tovbbtani. A 4.3. alfejezetben belenznk az tvlaszt belsejbe, s ennl sokkal rszletesebben vizsgljuk majd meg a tovbbtsi funkcit. Az olvasban bizonyosan felmerl a krds, hogy mikppen trtnik az tvlasztk tovbbttblinak konfigurlsa. Ez valban dnt fontossg krds, amely rvilgt az tvlaszts s a tovbbts kztti klcsnhats jelentsgre. Ahogy azt a 4.2. brn lttuk, az tvlasztk tovbbttbliba kerl rtkeket az tvlaszt algoritmus hatrozza meg. Az tvlaszt algoritmus lehet centralizlt vagy decentralizlt. Az els esetben az algoritmus egy kzponti helyen fut, majd a futtats eredmnyeknt ltrejtt tovbbttblkat letlti az egyes tvlasztkra. A
304
4. A HLZATI RTEG
msodik esetben minden egyes tvlaszt maga futtatja le az elosztott tvlaszt algoritmus r es rszt. Az tvlaszt mindkt esetben megkapja a tovbbttbla konfigurlshoz szksges tvlasztprotokoll-zeneteket A tovbbtsi s tvlasztsi funkcik cljai kztti klnbsg az albbi hipotetikus (nem
4.2.
bra. A
berkez
csomag
fejrszben
tovbbttblban szerepl rtkeket az tvlaszt algoritmusok hatrozzk meg letszer, de mszakilag megvalsthat) esettel szemlltethet jl: tekintsnk egy olyan hlzatot, amelyben az sszes tovbbttblt az tvlasztknl fizikailag jelen lv, a hlzatot zemeltet opertorok kzvetlenl kzzel konfigurljk az tvlasztkon. Ebben az esetben egyltaln nem lenne szksg tvlaszt protokollokra! A hlzatot zemeltet opertoroknak termszetesen egytt kellene egymssal mkdni ahhoz, hogy a tovbbttblkat gy konfigurljk, hogy valban lehetv vljon a csomagok clbajuttatsa. Az is valsznsthet, hogy az emberi ervel trtn konfigurls tbb hibalehetsget rejtene magba s jval lassabban tudna alkalmazkodni a hlzati topolgia vltozsai hoz, mint az tvlaszt protokollok. Ilyen szempontbl szerencss, hogy az sszes hlzat mindkt funkcival, a tovbbt s az tvlaszt funkcival is rendelkezik. Ha mr a terminolginl tartunk, rdemes kt msik fogalomrl is szt ejteni, amelyeket msoktl eltren nem tekintnk felcserlhetnek. Jelen knyvben a csomagkapcsol (packet switch) fogalmt az olyan ltalnos csomagkapcsol eszkzk szmra tartjuk fenn, amelyek a csomag valamely fejrszmezje rtknek megfelelen tovbbtjk a csomagot a bemeneti interfszrl valamelyik kimeneti interfszre. Vannak olyan kapcsolk, az n. adatkapcsolati rtegbeli kapcsolk (link-layer switches) (ezekre az 5. fejezetben trnk r), amelyek a tovbbtsra vonatkoz dntsket egy az adatkapcsolati rteghez tartoz fejrszmeznek az rtkre alapozzk; az tvlasztnak (router) nevezett csomagkapcsolk pedig a hlzati rteg egyik fejrszmezjnek rtktl teszik fggv,
306
4. A HLZATI RTEG
hogy
merre tovbbtjk a csomagot. (A klnbsgttel mlyebb megrtshez ajnlatos az 1.5.2. alfejezet elolvassa, amely rszletesen trgyalja a hlzati rtegbeli datagramok s az adat- kapcsolati rtegbeli keretek kztt fennll sszefggseket). Mivel jelen fejezet a hlzati rtegrl szl, a csomagkapcsol helyett az tvlaszt (router) kifejezst fogjuk hasznlni, mg a virtulis ramkr hlzatok csomagkapcsolira is.
sszekttets ltestse
Korbban azt lltottuk, hogy a hlzati rtegnek kt f feladata van: a tovbbts s az tvlaszts. Ltni fogjuk azonban, hogy nmelyik szmtgp-hlzatban van egy harmadik fontos funkcija is, nevezetesen az sszekttets ltestse (connection setup). A TCP trgyalsnl sz volt arrl, hogy hromutas kzfogsra van szksg ahhoz, hogy a kt fl adatokat kldhessen egymsnak. A kzfogs sorn kerl sor az sszekttets llapot- vltozinak (pldul a kezdeti sorszm s a forgalomszablyozs kezdeti ablakmrete) belltsra. Vannak olyan hlzati rtegbeli architektrk, mint pldul az ATM s a frame relay (de az internet nem ilyen), amelyeknl az adatok csak azt kveten ramolhatnak a forrs s a cl kztti sszekttetsen, hogy a vlasztott t mentn elhelyezked tvlasztk egymssal trtn kzfogsval sor kerlt bizonyos llapotvltozk belltsra. A hlzati rtegben ezt a folyamatot sszekttets ltestsnek nevezzk. Ezt a 4.2. alfejezetben trgyaljuk.
308
4. A HLZATI RTEG
ksleltetsi idn (pldul 100 ms-on) bell jut el az egyik vgponttl a msikig. Ezen tlmenen az adott forrs s cl kztti csomagfolyam szmra mg az albbi szolgltatsokat nyjthatja a hlzat:
4.1. BEVEZETS
309
csomagok a klds sorrendjben rkeznek meg a clhoszthoz. Garantlt minimlis svszlessg. A hlzati rtegnek ez a szolgltatsa a kld s a fogad hoszt kztt adott bitsebessg (pldul 1 Mb/s-os) tviteli kapcsolat viselkedst emullja (annak ellenre, hogy a vgponttl vgpontig terjed valdi t tbb fizikai adatkapcsolatot is rinthet). A szolgltats garantlja, hogy mindaddig, amg a kld hoszt legfeljebb a megadott sebessggel kldi a csomagok rszt kpez biteket, nem vsz el csomag, s egyetlen csomag vgponttl vgpontig trtn eljuttatsa sem tart tovbb, mint egy megadott rtk (pldul 40 ms). Garantlt dzsittermaximum. Ez a szolgltats azt szavatolja, hogy kt egymst kveten elkldtt csomag elkldse kztti id s a clhoszthoz trtn megrkezse kztt eltel id megegyezik (illetve, hogy a ksleltets esetleges vltozsa nem lp tl valamilyen elrt rtket). Biztonsgi szolgltatsok. A kizrlag a forrs- s a clhoszt ltal ismert titkos viszonykulcs hasznlatval a hlzati rteg a forrshosztnl titkostani tudja a cl- hosztnak kldtt datagramokban szerepl felhasznli adatokat. Ebben az esetben a clhosztnl a hlzati rteg feladata az adatok visszafejtse. Ezzel a fajta szolgltatssal biztosthat a titkossg a forrs- s clhosztok kztt a szlltsi rteg ltal kldtt valamennyi (TCP s UDP) szegmens szmra. A titkossg biztostsn kvl a hlzati rteg adatintegritsi s forrshitelestsi szolgltatsok nyjtsra is kpes lehet. A fenti felsorols csupn nhnyat emel ki a hlzati rteg ltal nyjthat szolgltatsok kzl; valjban szmtalan egyb varici megvalsthat. Az internet hlzati rtege egyetlen szolgltatst valst meg, amely a legjobbra trekv szolgltats (best-effort service) nven vlt kzismertt. A 4.1. tblzatot tanulmnyozva gy tnhet, hogy a legjobbra trekv szolgltats csupn a semmilyen szolgltats eufemizmusa (nem annyira srt szhasznlata). A legjobbra trekv szolgltats sem azt nem szavatolja, hogy az egymst kveten elkldtt csomagok kldse kztt eltelt id megegyezik a fogadsuk kztt eltelt idvel, sem azt, hogy a klds sorrendjben rkeznek meg, st, az tvitt csomagoknak mg a kzbestse sem biztos. Vagyis: mg egy olyan hlzat is megfelel a legjobbra trekv szolgltatst nyjt hlzat defincijnak, amely egyetlen csomagot sem kzbest a clhosztnak. Hamarosan ltni fogjuk azonban, hogy lteznek elfogadhat rvek
310
4. A HLZATI RTEG
Idzts
Torlds jelzs
Nem kezeli
Nincs
ATM
CBR
Garantlt bitsebessg
lland
Van
Kezeli
ATM
ABR
Nincs
Nem kezeli
az effajta minimalista hlzati rtegbeli szolglati modell mellett. A 7. fejezetben foglalkozunk majd tbb ms, rszben mg fejleszts alatt ll internetes szolglati modellel is. Ms hlzati architektrk az internet legjobbra trekv szolgltatsn tlmutat szolgltatsokat hatroztak meg s implementltak. Az ATM-hlzati architektra [MTA borm 2007, Black 1995] pldul tbb szolglati modellt is definil, s lehetv teszi, hogy egyetlen hlzaton bell tbb, klnbz szolglati osztlyt hasznl sszekttetst is kialaktsunk. Annak bemutatsa, hogy az ATM-hlzat hogyan valstja meg ezeket a szolgltatsokat, tlmutat knyvnk keretein. Csak arra szeretnnk felhvni az olvas figyelmt, hogy az internet legjobbra trekv szolgltatsnak lteznek alternatvi. A fontosabb ATiM-szolgltatsok kzl szerepeljen itt kett, az lland bitsebessg s a rendel kezsre ll bitsebessg szolgltats: lland bitsebessg (constant bit rate, CBR) ATM-hlzati szolgltats. Ezt az ATM-szolgltatst szabvnyostottk elszr, ami rszben a telefontrsasgok kezdeti rdekldsvel magyarzhat, rszben pedig azzal, hogy alkalmas a vals idej, lland bitsebessg hang- s mozgkpforgalom tvitelre. A CBR-szolglats egyszeren megfogalmazhat clt tztt ki maga el: egy virtulis cs segtsgvel a csomagok (ATM-terminolgiban: cellk) ramlst olyann tenni, mintha az tvitelk a kld s fogad hoszt kztti lland svszlessg dediklt adatkapcsolaton keresztl trtnne. A CBRszolgltatssal az ATM-cellafolyam gy halad t a hlzaton vg ponttl vgpontig, hogy a kvetkez jellemzk egyike sem halad meg egy-egy meg adott rtket: a cella vgpontok kztti ksleltetse, a ksleltets ingadozsa (azaz a dzsitter), az elveszett vagy tl ksn kzbestett cellk arnya. Ezekrl az rtkekrl a kld hoszt s az ATM-hlzat a CBR-sszekttets felptsekor llapodik meg egymssal. o Rendelkezsre ll bitsebessg (available bit rate, ABR) ATM-hlzati szolgl tats. Az ATM ABR-szolgltatst az internet legjobbra trekv szolgltatst alapul vve gy is jellemezhetnnk, mint a legjobbra trekvnl kicsit jobb szolgltatst. Az internet szolglati modelljhez hasonlan itt is elfordul cellaveszts. Az internettl eltren azonban nem vltozhat meg a cellk sorrendje (br elveszni elveszhetnek), s van egy garantlt minimlis
4.1. BEVEZETS
311
cellatviteli sebessg (minimum cell transmission rate, MCR). Ha a hlzatban egy adott pillanatban elegend szabad erforrs ll rendelkezsre, a kld hoszt az MCR-ben megllaptottnl nagyobb sebes sggel is tud cellkat kldeni. Ezen tlmenen, mint ahogy a 3.6. alfejezetben mr eml tettk, az ATM ABR-szolgltatsa torlds esetn vissza tud jelezni a kld hosztnak egy torldsjelz bit formjban, illetve valamilyen cellasebessg explicit megadsval; a kld hoszt ezek figyelembevtelvel vlaszt az MCR s a legnagyobb megengedett cellasebessg (pcak cell rate) kz es adsi sebessget.
4.2.
A 3. fejezetben lttuk, hogy a szlltsi rteg az alkalmazsoknak sszekttetsalap vagy sszekttets nlkli szolgltatst nyjthat. Az internet szlltsi rtege pldul minden alkalmazsnak megadja a vlaszts lehetsgt az sszekttets nlkli UDP s az sszekttets-alap TCP kztt. Ehhez hasonlan a hlzati rteg szintn kpes sszekttets nlkli vagy sszekttets-alap szolgltatst nyjtani, amelyek sok tekintetben hasonltanak a szlltsi rteg megfelel szolgltatsaihoz. gy pldul mg a hlzati rteg sszekttets-alap szolgltatsa a forrs- s a cmzett hoszt kztti kzfogssal kezddik, addig sszekttets nlkli szolgltatsnak nincs szksge ilyen elzetes megllapodsokra. A hasonlsgok mellett azonban vannak komoly eltrsek is a hlzati s a szlltsi rteg sszekttets-alap s sszekttets nlkli szolgltatsai kztt: Mg a hlzati rtegben ezek a szolgltatsok hosztok kztti szolgltatsok, amelyeket a hlzati rteg bocst a szlltsi rteg rendelkezsre, addig a szlltsi rtegben processzek kzt ti szolgltatsokrl van sz, amelyeket a szlltsi rteg az alkalmazsi rteg szmra nyjt. Napjaink legfontosabb szmtgp-hlzati architektrinak tbbsgben (internet, ATM, frame relay stb.) a hlzati rteg vagy csak sszekttets-alap vagy csak sz- szekttets nlkli szolgltatst nyjt, egyszerre mind a kettt nem. Azokat a szmtgp-hlzatokat, amelyek a hlzati rtegen bell csak az sszekttets-alap szolgltatst biztostjk, virtulisramkr-alap hlzatoknak (virtual-circuit networks) vagy virtulis ramkri hlzatoknak, a csak sszekttets nlkli szolgltatst biztost hlzatokat pedig datagramalap hlzatoknak (datagram networks) vagy egyszeren datagramhlzatoknak nevezzk. Az sszekttets-alap szolgltats szlltsi, illetve hlzati rtegbeli implementcija gykeresen eltr. Az elz fejezetben szltunk arrl, hogy a szlltsi rtegbeli sszekttets-alap szolgltats megvalstsa a hlzat peremn, a vgrendszerekben trtnik; ezzel szemben, mint azt hamarosan ltni fogjuk, a hlzati rtegbeli sszekttets-alap szolgltats megvalstsban nem csupn a vgrendszerek, hanem a hlzat belsejben tallhat tvlasztk is rszt vesznek. A szmtgp-hlzatok kt f csoportra oszthatk: a virtulis ramkri
312
4. A HLZATI RTEG
hlzatokra s a datagramhlzatokra. A ktfle hlzatban mkd tvlasztk teljesen klnbz adatok alapjn hozzk meg tovbbtsi dntseiket. Az albbiakban kzelebbrl is szemgyre vesszk a ktfle hlzat mkdst.
R3
R4
4.1. BEVEZETS
313
Bemeneti interfsz 1 2 3 1
Bejv VC-szm 12 63 7 97 M
Kimeneti interfsz 2 1 2 3
Kimen VC-szm 22 18 17 87
Minden j virtulis ramkr felptsekor j bejegyzst kell elhelyezni a tovbbttbl- ban. Egy virtulis ramkr lebontsakor pedig a hozz tartoz bejegyzseket trlni kell. Az olvasban jogosan merl fel a krds, hogy mirt nem tartja meg a csomag ugyanazt a virtulis ramkri szmot az tjba es sszes adatkapcsolaton. Ennek kt oka is van. Az els az, hogy a szm adatkapcsolatonknti megvltoztatsa cskkenti a VC-mez hosszt a csomag fejrszben. A msodik (s nyomsabb) ok pedig az, hogy a virtulis ramkr felptsnek folyamatt jelentsen leegyszersti, ha a hozz tartoz virtulis ramkri szm minden egyes tszakaszon klnbz lehet; gy ugyanis az tvonal mentn elhelyezked minden egyes tvlaszt nllan vlaszthat virtulis ramkri szmot azok kzl a szmok kzl, amelyek a kimeneti interfszen az adott pillanatban ppen nem foglaltak. Ha azonban azt szeretnnk, hogy a virtulis ramkrhz az sszes tsza kaszon azonos virtulis ramkri szm tartozzon, akkor az tvlasztk knytelenek lennnek nagyszm zenetet vltani annak rdekben, hogy egy olyan egysges virtulis ramkri szmban tudjanak megegyezni az j sszekttets szmra, amelyet az ezeket az tvlasztkat rint egyetlen mr ltez virtulis ramkr sem hasznl.
4.1. BEVEZETS
314
A virtulis ramkri hlzatok tvlaszti knytelenek az sszes rajtuk thalad hlzati sszekttetst egyenknt nyilvntartani. Ezt nevezik az sszekttets llapotinfor- nicijnak (connectiom state information). Az tvlasztknak minden j sszekttets felptsekor j bejegyzst kell elhelyeznik tovbbttbljukban, illetve minden sszekttets lebontskor trlnik kell a megsznt sszekttetsre vonatkoz bejegyzst. Fontos megjegyezni, hogy mg ha nincs virtulis szmmegfeletets, akkor is kezelni kell az sszekttets llapotinformcijt, amelyik a virtulis ramkri szmokat sszcrendeli a kimeneti interfszszmokkal. Dnt fontossg az a krds, hogy egy hlzatban egy tvlasztnak minden egyes fennll sszekttets llapot informcijt kezelni kell-c vagy sem; knyvnkben ezt a krdst tbbszr is krljrjuk majd. A virtulis ramkrk letciklusa hrom jl elklnthet szakaszbl ll: A virtulis ramkr felptse. A felptsi szakaszban a kld szlltsi rteg kapcsolatba lp a hlzati rteggel, megadja a fogad cmt, s megvrja, hogy a hlzat felptse a virtulis ramkrt. A hlzati rteg meghatrozza a kld s a fogad kztti tvonalat, azaz azoknak az adatkapcsolatoknak s tvlasztknak a sort, amelyeken keresztl a virtulis ramkr sszes csomagja thalad majd. A hlzati rteg az egyes adatkapcsolatok virtulis ramkri szmt is meghatrozza, majd bejegyzst tesz az egyes tvlasztk tovbbttbljba. A virtulis ramkr felp tse sorn a hlzati rteg erforrsokat (pldul svszlessget) is lefoglalhat a vir tulis ramkr tvonala mentn. Adattvitel. Ahogy az a 4.4. brn is lthat, a virtulis ramkr felptst kveten megkezddhet a csomagok ramlsa a virtulis ramkr mentn. A virtulis ramkr lebontsa. Ennek kezdemnyezsre akkor kerl sor, ha a kld (vagy a fogad) a virtulis ramkr megszntetst kri a hlzati rtegtl. Ilyenkor a hlzati rteg tjkoztatja a tvoli vgrendszert a hvs befejezsrl, s aktualizlja az tvonal menti tvlasztk tovbbttbljt, jelezve hogy az adott virtulis ramkr mr nem ltezik. Csak egy parnyi, ennek ellenre igen fontos eltrs van a hlzati rtegbeli virtulis ramkr felptse s a szlltsi rtegbeli sszekttets felptse kztt (amilyen pldul a hromutas kzfogs a TCP-nl, amirl a 3. fejezetben szltunk). A szlltsi rtegbeli
4.1. BEVEZETS
315
Fizikai
Fizikai
316
4. A HLZATI RTEG
sszekttets felptsben csak a kt vgrendszer vesz rszt, egyedl ok hatrozzk meg a szlltsi rtegbeli sszekttetsk paramtereit (pldul a kezdeti sorszmot s forgalom- szablyozshoz hasznlt ablakmretet). Jllehet a kt vgrendszer tud a kzttk fennll szlltsi rtegbeli sszekttetsrl, a hlzat tvlasztinak nincs tudomsuk errl. A virtulis ramkri hlzati rteg esetn viszont a kt vgrendszer kztti t mentn lv tvlasztk is rszt
vesznek a virtulis ramkr felptsben, s minden tvlaszt tudomst szerez a rajta thalad sszes virtulis ramkrrl.
Azokat az zeneteket, amelyeket a vgrendszerek kldenek a hlzatnak a virtulis ramkr felptse, illetve lebontsa vgett, s azokat, amelyeket az tvlasztk kldenek egymsnak a virtulis ramkr felptsekor (azaz az sszekttets llapot informci tovbbttblban trtn mdostsa vgett) jelzszeneteknek (signaling messages), az ilyen zenetek cserjnl hasznlt protokollokat pedig jelzsprotokolloknak (signaling protocols) nevezzk. A virtulis ramkr felptst a 4.4. bra szemllteti. Knyvnkben nem foglalkozunk a virtulis ramkrkkel kapcsolatos jelzsprotokol- lokkal; az sszekttets-alap hlzatokban trtn jelzs ltalnos trgyalsa megtallhat [Black 1997] mvben s az ATM Q.2931 jelzsprotokollt specifikl [ITU-T Q.2931 1994] ajnlsban.
4.2.2. Datagramhlzatok
A datagramhlzatok esetben a vgrendszer minden elkldend csomagot ellt egy a cmzett vgrendszer cmt tartalmaz blyeggel, majd a csomagot bedobja a hlzatba. Ahogy ez a 4.5. brn is lthat, virtulis ramkr felptsre nincs szksg. A datagram- hlzat tvlaszti nem kezelnek semmifle virtulis ramkri llapotvltozkat (mivel nincsenek is virtulis ramkrk!). A csomagok a forrstl a clig vezet ton szmos tvlasztn haladnak t. Mindegyik tvlaszt a csomagban lv clcmet felhasznlva tovbbtja a csomagot. Pontosabban az trtnik, hogy amikor a csomag megrkezik az tvlaszthoz, az tvlaszt a sajt tovbbttbljban a csomagbeli clcmhez megkeresi a megfelel adatkapcsolati kimeneti interfszt, majd a csomagot ehhez az adatkapcsolati kimeneti interfszhez tovbbtja.
Alkalmazsi Szlltsi
Adatkapcsolati Fizikai
Alkalmazsi
4.2.
VIRTULISAI?AMKR- S
DATAGRAMALAP HLZATOK
317
Szlltsi
1. Adatok kldse 2. Adatok fogadsa
Hlzati
Adatkapcsolati
A tovbbttbla mkdsnek jobb megrtse rdekben tekintsk a kvetkez konkrt pldt. Ttelezzk fel, hogy minden lehetsges clcm pontosan 32 bites (vletlenl ppen ennyi az IPv4-ben hasznlt cmek hossza). A tovbbttbla egy kapsbl trtn implementcijban a tblnak annyi sora lenne, ahny lehetsges cm van: mindegyikhez konkrtan hozzrendeln a kimeneti interfszt. Mivel 32 biten mintegy ngymillird klnbz cmet tudunk brzolni, a tovbbtbla irdatlan mret, kezelhetetlen lenne - teht ms megoldst kell keresnnk. Tegyk fel mg azt is, hogy az tvlasztnknak ngy interfsze van, amelyeket a 0-tl 3-ig terjed szmokkal azonostunk, s hogy a csomagtovbbts szablyai az albbiak szerint foglalhatk ssze:
V
Kimeneti interfsz
Tartalomjegyzk.............................................................................................................. 7
A szmtgp-hlzatok s az internet........................................................................26
1.1.Mi az az internet?...................................................................................................... 2
1.1.1.Alkotrszek........................................................................................................... 2
1.1.2.Szolgltatsok........................................................................................................ 5
1.2.1.Kliens- s szerverprogramok............................................................................... 14
1.2.2.Hozzfrsi hlzatok.........................................................................................14
1.3.1.Vonalkapcsols s csomagkapcsols.................................................................30
1.3.3.lnternetszolgltatk s internet-gerinchlzatok..............................................41
1.4.1.Ksleltetsek ttekintse.................................................................................... 46
1.4.4.Szmtgp-hlzatok tbocstkpessge......................................................58
1.5.1.Rtegezett architektra...................................................................................... 63
1.7.5.Legutbbi fejlesztsek......................................................................................... 90
1.8.sszefoglals.......................................................................................................... 92
Krdsek........................................................................................................................ 94
Feladatok....................................................................................................................... 96
2.1.5.Alkalmazsi protokollok....................................................................................130
2.2.3.HTTP-zenetformtumok................................................................................... 140
2.3.1.FTP-parancsok s -vlaszok..............................................................................129
2.4.1.SMTP................................................................................................................... 134
2.4.2.sszehasonlts a HTTP-vei..............................................................................113
2.4.4.Levl-hozzfcrsi protokollok...........................................................................118
2.5.3.DNS-rekordok s -zenetek..............................................................................131
2.6.P2P-alkalmazsok................................................................................................. 139
2.6.1.P2P-fj1cserls................................................................................................. 140
F \................................................................................................................................. 143
2.7.TCP-szoketprogramozs....................................................................................... 166
2.7.1.TCP-szoketprogramozs.................................................................................... 168
l.................................................................................................................................... 183
t.................................................................................................................................... 186
O................................................................................................................................... 245
O................................................................................................................................... 211
1................................................................................................................................... 196
1................................................................................................................................... 196
r,=2X.......................................................................................................................... 231
I I l i.............................................................................................................................. 106
Nyilvnval, hogy ebben az esetben szksgtelen ngymillird bejegyzsi elhelyezni az tvlaszt tovbbltbljban. Elegend lenne pldul a kvetkez ngy bejegyzst tartalmaz tbla: Illeszked clcm-prefix Kimeneti interfsz
Tartalomjegyzk.............................................................................................................. 7
A szmtgp-hlzatok s az internet........................................................................26
1.1.Mi az az internet?...................................................................................................... 2
1.1.1.Alkotrszek........................................................................................................... 2
1.1.2.Szolgltatsok........................................................................................................ 5
1.2.1.Kliens- s szerverprogramok............................................................................... 14
1.2.2.Hozzfrsi hlzatok.........................................................................................14
1.3.1.Vonalkapcsols s csomagkapcsols.................................................................30
1.3.3.lnternetszolgltatk s internet-gerinchlzatok..............................................41
1.4.1.Ksleltetsek ttekintse.................................................................................... 46
1.4.4.Szmtgp-hlzatok tbocstkpessge......................................................58
1.5.1.Rtegezett architektra...................................................................................... 63
1.7.5.Legutbbi fejlesztsek......................................................................................... 90
1.8.sszefoglals.......................................................................................................... 92
Krdsek........................................................................................................................ 94
Feladatok....................................................................................................................... 96
2.1.5.Alkalmazsi protokollok....................................................................................130
2.2.3.HTTP-zenetformtumok................................................................................... 140
2.3.1.FTP-parancsok s -vlaszok..............................................................................129
2.4.1.SMTP................................................................................................................... 134
2.4.2.sszehasonlts a HTTP-vei..............................................................................113
2.4.4.Levl-hozzfcrsi protokollok...........................................................................118
2.5.3.DNS-rekordok s -zenetek..............................................................................131
2.6.P2P-alkalmazsok................................................................................................. 139
2.6.1.P2P-fj1cserls................................................................................................. 140
F \................................................................................................................................. 143
2.7.TCP-szoketprogramozs....................................................................................... 166
2.7.1.TCP-szoketprogramozs.................................................................................... 168
l.................................................................................................................................... 183
t.................................................................................................................................... 186
O................................................................................................................................... 245
O................................................................................................................................... 211
1................................................................................................................................... 196
1................................................................................................................................... 196
r,=2X.......................................................................................................................... 231
I I l i.............................................................................................................................. 106
Ilyen jelleg tbla hasznlata esetn az tvlaszt a csomagok clcmeinek valamilyen prefixt prblja a lovbbttbla soraira illeszteni. Ha illeszkedst tall, az adott sorban szerepl kimeneti interfszen adja ki a csomagot. Tegyk fel pldul, hogy a csomagon szerepl clcm az 11001000 00010111 00010110 10100001. Mivel a tbla els sorban szerepl 21 bites prefix megegyezik a clcm els 21 bitjvel (teht a clcm illeszkedik a prefixre), az tvlaszt az ebben a sorban szerepl nulls interfszen kldi ki a csomagot. Ha az els hrom sor egyikben szerepl prefixre sem illeszkedik a clcm, az tvlaszt a csomagot a hrmas interfszen kldi ki. Noha ez elg egyszeren hangzik, ne feledkezznk meg egy fontos aprsgrl: vegyk szre, hogy ugyanaz a clcm tbb prefixre is illeszkedhet. Pldul az 11001000 00010111 00011000 10101010 clcm els 24 bitje illeszkedik a msodik, els 21 bitje pedig a harmadik sorban szerepl prefixre. Ha tbb illeszkedst is tall, az t vlaszt mindig a leghosszabb illeszked prefixet veszi figyelembe, teht a tovbbttbla azon sorban szerepl kimeneti interfszen kldi ki a csomagot, amelyhez az illeszked prefixek kzl a leghosszabb tartozik. A leghosszabb illeszked prefixen alapul dntsi mechanizmus akkor lehet hatkony, ha minden kimeneti interfsz lehetleg minl nagyobb egybefgg cmtartomnyokrt felels. A 4.4. alfejezetben ltni fogjuk, hogy az interneten
ltalban hierarchikusan trtnik a cmek kiosztsa, gy a legtbb tvlaszt tovbbttbljban valban javarszt egybefgg cmtartomnyok szerepelnek. Ezzel egytt a kutatk egy rsze aggdik amiatt, hogy az IP-cmtr daraboldik (fragmentldik): a kiosztott egybefgg cmtartomnyok egyre kisebbek, a tovbbttblk pedig egyre nagyobbak lesznek. (Lsd mg [Meng 2005], [RFC 3221] munkkat s a 4.4. alfejezetben az Elvek a gyakorlatban cm rszt.) Jllehet a datagramalap hlzatok tvlaszti nem kezelnek sszekttets llapot informcit, csak a csomagtovbbts szablyait ler tovbbttblt tartjk karban, llapotterk a tbla tartalmra korltozdik. A tblkat az tvlaszt algoritmusok mdostjk, de csak viszonylag ritkn: kt mdosts kztt akr percek is eltelhetnek. Ezzel szemben egy virtulisramkr-alap hlzatban az tvlasztk tovbbttbljnak tartalma akr mikroszekundumonknt is vltozhat (pldul gerinchlzati, 1-es szint tvlaszt esetben), mivel minden, az tvlasztn thalad hlzati kapcsolat felptse vagy lebontsa a tbla mdostsval jr. Mivel a datagramalap hlzatokban hasznlt tovbbttblk tartalma brmikor mdosulhat, elkpzelhet, hogy kt vgpont kztti forgalom bizonyos csomagjai ms-ms tvonalon haladnak s emiatt nem sorrendben rkeznek meg a cmzetthez. A [Paxson 1997] s a [Jaiswal 2003] forrsban rdekes mrsi eredmnyeket tallhatunk az interneten tapasztalhat csomagsorrendvltozsokkal s ms jelensgekkel kapcsolatban.
igen eltr adatkapcsolati rtegbeli technikkat (mint amilyen pldul a mholdas, az Ethernet-, a fnyvezetszlas vagy a rdis technika) hasznl, nagyon klnbz tviteli sebessgeket s vesztesgi jellemzkkel rendelkez hlzatok sszekapcsolst. Az IP-hlzatok ssze kapcsolst rszletesen trgyaljuk a 4.4. alfejezetben. A 2. fejezetbl tudjuk, hogy az olyan alkalmazsokat, mint amilyen az e-mail, a web, de mg a hlzati rteggel alapjaiban sszefgg alkalmazs, a DNS is, a hlzat szln lv hosztokba (szerverekbe) teleptettk. Ennek az az elnye, hogy nagyon kny- nyen s gyorsan megvalsthatk j alkalmazsok: csupn csatlakoztatni kell a hlzathoz egy j hosztot s definilni kell egy j alkalmazsi rtegbeli protokollt (mint pldul a HTTP-t). A web is ennek ksznheti gyors bevezetst s elterjedst. A 7. fejezetben ltni fogjuk, hogy komoly vita van az internetes kzssgen bell arrl, hogy miknt lehetne az internet hlzati rtegnek architektrjt abba az irnyba fejleszteni, hogy az tmogassa a vals idej szolgltatsokat, pldul a multimdit. A virtulis- ramkr-alap ATM- hlzati architektra s egy javasolt jgenercis internetes architektra rdekes sszevetse tallhat (Crowcroft 1995) cikkben.
bemeneti port jobb szls s a kimeneti port bal szls doboza). A vezrl csomagok - pldul azok, amelyek az tvlaszt protokoll zeneteit szlltjk a bemeneti portrl az tvlaszt processzorhoz kerlnek. A gyakorlatban egyetlen vonali krtyn (line card) gyakran tbb port is tallhat.
Bemeneti port Kimeneti port
4.6. bra. Egy tvlaszt architektrja Kapcsolgp. A kapcsolgp kapcsolja ssze az tvlaszt bemeneti portjait a kimeneti portokkal. A kapcsolgp teljes mrtkben az tvlaszt rsze, lnyegben egy kis hlzat a hlzati tvlasztn bell. Kimeneti portok. A kimeneti port trolja a kapcsolgp ltal hozz tovbbtott csomagokat, majd kikldi ket a kimeneti interfszen, vagyis a bemeneti port ltal elltott adatkapcsolati s fizikai rtegbeli funkciknak ppen a fordtottjt vgzi el. Ktirny adatkapcsolatok esetn az adott kapcsolathoz tartoz kimeneti port ltalban ugyanazon a vonali krtyn tallhat, mint az ahhoz az adatkapcsolathoz tartoz bemeneti port. tvlaszt processzor. Az tvlaszt processzor azon tlmenen, hogy vgrehajtja az tvlaszt protokollokat (mint amilyeneket pldul a 4.6. alfejezetben trgyalunk), kezeli az tvlasztsra vonatkoz adatokat s a tovbbttblkat, valamint hlzatfelgyelettel sszefgg feladatokat lt el az tvlasztn bell (lsd 9. fejezetet). A kvetkez alfejezetekben rszletesebben foglalkozunk a bemeneti portokkal, a kapcsolgppel s a kimeneti portokkal. [Chuang 2005; Keslassy 2003; Chao 2001; Turner 1988; Giacopelli 1990; McKeown 1997a; Partridge 1998] rsaibl tbb konkrt tvlaszt-architektrval is megismerkedhetnk. Klnsen olvasmnyos [McKeown 1997b) cikke, amelyben a Cisco 12000 tvlasztt alapul vve tekinti t a korszer tvlaszt-architektrkat. Annak rdekben, hogy ne csak elmleti skon mozogjunk, az albbiakban azt felttelezzk, hogy a szmtgp-hlzat csomagkapcsolt, s hogy a tovbbtsi dntsek a csomag clcmt veszik alapul (s nem a virtulisramkr-alap hlzatokban hasznlatos VC-szmot). A fogalmak s mdszerek azonban a virtulisramkr-alap h lzatok esetben is hasonlak.
Kapcsolgp
4.7. bra. Adatfeldolgozs a bemeneti porton Azoknl a bemeneti portoknl, amelyek csak korltozott adatfeldolgozsi kapacitssal rendelkeznek, elfordulhat, hogy a port a csomagot egyszeren tovbbkldi a kzpontostott tvlaszt processzornak, amely ezt kveten maga vgzi el a visszakeresst a tovbbttblban s a csomag tovbbtst a megfelel kimeneti porthoz. Ez trtnik akkor, ha egy munkalloms vagy egy szerver ltja el az tvlaszt feladatt; ebben az esetben az tvlaszt processzor valjban a munkalloms CPU-ja, a bemeneti port pedig a munka- lloms hlzati interfszkrtyja (pldul egy Ethernet-krtya). A tovbbttbla meglte elvben nagyon egyszerv teszi a visszakeresst: csupn a leghosszabb illeszked prcixet kell megtallnunk, ahogy errl a 4.2.2. alfejezetben szltunk. A gyakorlatban azonban nem ilyen egyszer a dolog. A legnagyobb gondot taln az jelenti, hogy a gerinchlzati tvlasztknak nagyon gyorsan kell mkdnik, azaz msodpercenknt tbb milli visszakeresst kell vgrehajtaniuk. A kvnatos az lenne, ha a bemeneti port a vonali sebessggel (line speed) megegyez sebessgen tudn feldolgozni az adatokat, vagyis a visszakeress folyamata kevesebb idt venne ignybe, mint az adott csomag fogadsa a bemeneti porton. Ez azrt fontos, mert gy biztosthat, hogy a
fogadott csomag adatainak a feldolgozsa a soron kvetkez fogadsi mvelet eltt befejezdik. Ha szem eltt tartjuk, hogy egy OC-48 adatkapcsolat 2,5 Gbit/sos tvitelt valsit meg, jobban el tudjuk kpzelni, hogy milyen nagyok a kvetelmnyek a visszakeress sebessgt illeten. 256 bjt hosszsg csomagok esetn ez megkzeltleg msodpercenknt 1 milli visszakeresst jelent.
F.gy kis trtnelem] A Cisco Systems eszkzgyrt ris rvid trtnete A knyv rsnak idejn (2006 oktbere) a Ciscnak tbb mint 30 ezer alkalmazottja volt, a vllalat rszvnyeinek sszrtke pedig elrte a 140 millird dollrt. A cg meghatroz mr tekben rszesedik az internetes tvlasztpiacbl, s az utbbi vekben az internetes telefnia piacn is megjelent, ahol jl llja a versenyt az olyan telefonos berendezseket gyrt vllala tokkal, mint pldul a Lucent, az Alcatel, a Nortel s a Siemens. Hogyan jtt ltre ez az risvllalat? A trtnet 1984-ben, egy Szlicium-vlgybeli laks nappalijban kezddtt. A stanfordi egyetemen dolgoz Len Bosaknak s felesgnek, Sandy Lernernek az az tlete tmadt, hogy internetes tvlasztkat lltsanak el s adjanak el kutatintzeteknek. Sandy I.erner javasolta a Cisco nevet, ami tulajdonkppen a San Francisco rvidtse, s tervezte a trsasg stilizlt hidat formz lgjt is. Telephelyk laksuk nappalija volt, a projekt pnz gyi httert hitelkrtykkal s mellkllsban vgzett tancsadi tevkenysggel teremtettk meg. 1986 vgre a Cisco rbevtele elrte a havi 250 ezer dollrt. 1987 vgn a trsasg egy- harmadrt cserbe, sikerlt a Sequoia Capital trsasgtl 2 milli dollr kockzati tkt is bevonni az zletbe. A Cisco az elkvetkez vekben folyamatos nvekedsnek indult, s egyre nagyobb piaci rszesedsre tett szert. Ugyanakkor feszltt vlt a viszony a BosakLerner hzaspr s a vllalat vezetsge kztt. A vllalatot 1990-ban jegyeztk be a tzsdre; I.erner s Bosak ugyanebben az vben kilpett a cgbl. Az vek sorn a Cisco szmos j termkkel bvtette knlatt: az tvlasztkon kvl biz tonsgi, vezetk nlkli s VoIP-termkeket s -szolgltatsokat is fogalmaz. Idkzben egyre inkbb kilezdtt a piaci verseny, gy pldul megjelent a gyorsan fejld knai Huawci, amely vilgszerte tbb mint 38 ezer alkalmazottat foglalkoztat, s a knyv rsnak idejn 7 szzal kot is meghalad piaci rszesedst szerzett az Ethernet-kapcsolk s az tvlasztk piacn. Az tvlasztk s az ethernetes eszkzk piacn az Alcatel-Lucent s a Juniper is komoly vetlytrsai a Ciscnak.
Napjaink nagysebessg adatkapcsolatai nem engedik meg a lineris keresst egy nagymret tovbbttblban. sszerbb a tovbbttbla bejegyzseit faszerkezetben trolni. A fa minden egyes szintje a clcim egyik bitjnek felel meg. A tovbbttbla egy sornak keresst a fa gykernl kezdjk. Ma az els cmbil nulla, a bal oldali rszfa tartalmazza a tbla clcmre vonatkoz bejegyzst; ha egyes, akkor a bejegyzs a jobb oldali rszfban tallhat. A megfelel rszfa tfslse a fennmaradt cmbitekkel analg mdon trtnik: ha a soron kvetkez cmbit nulla, a bal oldali rszft kell kivlasztani, ha egyes, a jobb oldalit. Ezzel a mdszerrel a megfelel bejegyzs N lpsben megtallhat a tovbbttblban, ahol N jelli a cmben lv bitek szmt. (Vegyk szre, hogy ez l nyegben egy 2 v -en mret cmtrben val binris keress.) [Srinisvan 1999] ler a bin ris keressnl jobb eljrsokat, a csomagosztlyozsi algoritmusok ltalnos ttekintse pedig [Gupta 2001] cikkben tallhat. Sajnos azonban a binris keress sebessge N = 32 lps (pldul egy 32 bites IP-cm) esetn nem elgti ki napjaink gerinchlzati tvlasztsi ignyeit. Fia pldul minden lpsnl egy-egy memriaolvasst s 40 ns-os memriahozzfrsi idt feltteleznk, msodpercenknt csak egymillinl kevesebb cm visszakeress valsthat meg. Ezrt tbb olyan mdszert is megvizsgltak, amellyel fel lehetne gyorstani a cmvisszakeresst. A tartalom szerint cmezhet memrik (content addressable memories, CAMs) lehetv teszik, hogy egy
tetszleges 32 bites IP-cm hez tartoz tovbbttbla-bejegyzst lnyegben konstans id alatt megtalljunk. A Cisco 8500-as sorozat tvlasztinak min den bemeneti portjt egy-egy 64 K-s CAM-mal lttk el. A visszakeress felgyorstsnak msik mdja az, hogy a nemrg hasznlt tblabejegyzseket egy gyorsttrban (cache) troljuk [Feldmeier 1988]. Ebben az esetben fontos krds a gyorsttr mrete. [Waldvogel 1997] olyan gyors adatstruktrt javasol, amely log(N) lpsben tallja mega tovbbttbla megfelel bejegyzst. [Brodnik 1997] lerja, hogyan tmrthet a tovbbttbla. [Gupta 1998] egy olyan hardveralap megoldst mutat be, amely arra a gyakori esetre van optimalizlva, amikor a clcmnek 24 vagy kevesebb rt kes bitje van. Az IP-cmek nagysebessg visszakeressi technikinak ttekintse s osz tlyozsa megtallhat [Ruiz-Sanchez 2001] cikkben. Ha mr eldlt, melyik a megfelel kimeneti port, a csomag a kapcsolgpbe tovbbthat. Elfordulhat azonban, hogy a csomagnak elbb vrakoznia kell, mivel a kapcsolgpet mr ms bemeneti portrl rkez csomagok hasznljk. A blokkolt csomagot sorba kell lltani a bemeneti porton, majd temezni kell a kapcsolgpen egy ksbbi idpontban trtn thaladst. A 4.3.4. alfejezetben rszletesen foglalkozunk majd a csomagok blokkolsval, sorba lltsval s temezsvel (mind a bemeneti, mind a kimeneti portokon).
4.3.2. A kapcsolgp
A kapcsolgp (switching fabric) az tvlaszt legfontosabb eleme. ltala valsul meg a csomagok kapcsolsa (azaz tovbbtsa) a bemeneti s a kimeneti portok kztt. A kapcsols tbb mdon is megvalsthat, ahogy ez a 4.8. brn is lthat:
[Cisco 8500 2007]. A memriaalap kapcsols tanulmnyozst meg knnyt absztrakt modell, valamint a mdszer ms kapcsolsi technikkkal val ssze hasonltsa megtallhat az [Iyer 2002] forrsban. Snalap kapcsols. Ennl a techniknl a bemeneti portok egy kzs snen keresztl kzvetlenl (az tvlaszt processzor bevonsa nlkl) viszik t a csomagokat a kimeneti portra (vegyk szre, hogy a csomagoknak - a memriba, illetve a memribl
Memria-alap
Keresztkapcsol-alap A
San
B
C U
d]
2
[m]-* M f H D
QiD
1
Sn-alap
OS
B
[ H D c
[il I I
igp
II
a
[
Z rzr
[D
sna
4.8. bra. Hrom kapcsolsi technika kivezet tjuk sorn - a memriaalap kapcsolsnl is t kell haladniuk a rendszersnen). Mivel a sn kzs, egyszerre csak egy csomag haladhat t rajta annak ellenre, hogy az tvlaszt processzornak ebben nincs kzvetlen szerepe. Azokat a csomagokat, amelyek olyan pillanatban rkeznek, amikor a sn foglalt, a bemeneti porton pufferei ik y amg t nem haladhatnak a kapcsolgpen. Mivel a snen minden csomagnak t kell haladnia, az
tvlaszt kapcsolsi svszlessgt a sin korltozza. Tekintettel arra, hogy a snek mai mszaki megoldsai mr 1 Gbit/s-os sebessget is lehetv tesznek, a snalap kapcsols is gyakran ki tudja elgteni az ignyeket a hozzfrsi s vllalati hlzatokban (pldul egy helyi hlzatban) zemel tvlasztknl. Napjaink tbb tvlaszt-termke is alkalmazza a snalap kapcsolst, tbbek kztt a Cisco 5600 [Cisco Switches 20071, amely a csomagok kapcsolst egy 32 Gbit/s-os backplane (htlap) snen keresztl hajtja vgre. sszekthlzat-alap kapcsols. Az egyetlen kzs sn svszlessgkorltai elkerlhetk az olyan fejlettebb sszekt hlzatok hasznlatval, amelyeket mr korbban is alkalmaztak processzorok sszektsre tbbprocesszoros szmtgp-architektrkban. A keresztkapcsol (crossbar) egy 2 n snbl ll sszekt hlzat, amelyben a 2 n sn n bemeneti portot kapcsol ssze n kimeneti porttal a 4.8. brn lthat mdon. A bemeneti portra berkez csomag mindaddig a porthoz kapcsold vzszintes snen halad vgig, amg az nem keresztezi a kvnt kimeneti porthoz vezet fggleges snt. Ha ez utbbi sn szabad, a csomag akadlytalanul haladhat t rajta
4.3. Ml
345
a kimeneti porthoz. la a fggleges snt ppen egy msik bemeneti portrl rkez s ugyanafel a kimeneti port fel halad csomag foglalja el, a csomag blokkoldik s a bemeneti port vrakozsi sorba kerl. Javasoltk Delta- s Omega-tpus kapcsolgpek alkalmazst a bemeneti s kimeneti portok sszekt hlzataknt. [Tobagi 1900] cikkben ttekint szmos kapcsolarchitektrt. A Cisco 12000 termkcsaldba tartoz kapcsolk [Cisco 12000 2007] olyan sszekt hlzatot hasznlnak, amely 60 Gbit/s-os tvitelt tesz lehetv a kapcsolgpen t. Az sszekt hlzatok tervezsnek egyik, [Keshav 1998] ltal javasolt irnyzata az, hogy az eredenden vltoz hosszsg IP-csomagokat lland hosz- szsg cellkba trdelik, majd ezeket felcmkzve tovbbtjk az sszekt hl zaton keresztl a megfelel kimeneti porthoz, ahol megtrtnik eredeti alakjukba val visszaalaktsuk. Az lland cellahossz s a bels cmkzs lnyegesen leegyszersti s felgyorstja a csomagok sszekthlzat-alap kapcsolst.
^apcsolgp
346
4. A HLZATI RTEG
trtnik, a forgalmi terhelstl, a kapcsolgp viszonylagos sebessgtl s a vonali sebessgtl fgg. Errl lesz sz az albbiakban. Ttelezzk fel, hogy a bemeneti s a kimeneti vonali sebessgek megegyeznek, tovbb, hogy bemeneti s kimeneti portunk van. Vezessk be a kapcsolgp sebessgnek (switching fabric speed) fogalmt: legyen ez az a sebessg, amellyel a kapcsolgp csomagokat tud tovbbtani a bemeneti portokrl a kimeneti portokra. A bemeneti portokon nem alakulhat ki sor, ha a kapcsolgp sebessge legalbb -szerese a bemeneti vonali sebessgnek. Ekkor ugyanis a kapcsolnak mg abban a legrosszabb esetben - amikor mind az bemeneti portra egyszerre rkezik csomag - sem lesz tbb idre szksge ahhoz, hogy ezt az csomagot a bemeneti portokrl a kimeneti portokra tovbbtsa, mint amennyi id alatt ez az csomag megrkezik a bemeneti portokra. De mi a helyzet a kimeneti portokon? Tovbbra is ttelezzk fel, hogy a kapcsolgp sebessge legalbb -szerese a vonali sebessgeknek. A legrosszabb eset az, amikor mind az bemeneti portra berkez csomagot ugyanarra a kimeneti portra kell kldeni. Ilyenkor abban az idintervallumban, amely egyetlen csomag fogadshoz (illetve kldshez) szksges, csomag rkezik erre a kimeneti portra. Mivel a kimeneti port (a csomag tviteli idejnek megfelel) idegy sgenknt csupn egyetlen csomagot tud kikldeni, az berkez csomagnak sorba kell llnia (vrakoznia kell) a kimen interfszen trtn kiklds eltt. Elfordulhat, hogy ezt kveten jabb csomag rkezik be abban az idintervallumban, amely a mr korbban sorba lltott csomag kzl csupn egyetlen egynek a kikldsre elg, s ez a folyamat mg sokszor megismtldhet. Vgl a sorba lltott csomagok szma olyan nagyra nhet, hogy a kimeneti port puffere mr nem tudja az sszes csomagot befogadni, s ilyenkor kerl sor a csomagok eldobsra. A 4.10. bra szemllteti a kimeneti porton trtn sorba lltst. A / idpontban mindegyik bemeneti portra olyan csomag rkezik, amelyet a legfels kimeneti portra kell tovbbtani. Ha azonos vonali sebessgeket s az ezeket hromszorosan meghalad kapcso- lsebessgct feltteleznk, akkor a berkezst kvet egy idegysggel (azaz egy csomag fogadshoz illetve kikldshez szksges idvel) ksbb mindhrom t idpontban berkezett csomag elkerlt a kikld porthoz, s ott sorban ll kikldsre vrva. Az ezt kvet idegysgben a kimeneti port az egyik sorban ll csomagot kikldi majd. A 4.10. brn lthat pldban kl j csomag rkezett a kapcsol bemen interfszei re, amelyek kzl az egyiket a legfels kimeneti portra kell majd tovbbtania. Abbl, hogy az tvlaszt pufferei egyenltik ki a forgalmi terhels ingadozsait, logikusan kvetkezik a krds, hogy mekkora pufferre van szksg. A puffermretezsnl sokig azt az klszablyt hasznltk, hogy a pufer mrete () legyen az tlagos krbejrsi id (round-trip time, RTT, mondjuk 250 ms) s az adatkapcsolat sebessgnek (C) szorzata [RFC 3439]. Ez a szably viszonylag kisszm TCP-folyam sorbanllsi dinamikjnak elemzsre plt [Villamizar 1994]. Ez azt jelenten, hogy egy RTT = 250 ms-os, 10 Gbit/s-os adatkapcsolat esetn egy B = RTT x C = 2,5 Gb/s-os pufferre lenne szksg. jabb elmleti s ksrleti kutatsi eredmnyek [Appenzeller 2004] azonban arra utalnak, hogy ha nagyszm TCP-folyam halad t az adatkapcsolaton, akkor a sziiksgespuffermret az N folyamszm nvekedsvel jelentsen cskkenhet: B = RTT X C / V/V . Klnsen nagy gerinchlzati tvlasztk esetben, amelyeken tbbnyire igen nagyszm folyam halad t (lsd pldul [Fraleigh 2003]), a korbban
4.3. Ml
347
szoksosnl lnyegesen kisebb puffer is elegend lehet. [Appenzeller 2004] s [VVischik 2005] igen olvasmnyosan r a puffermretezs problmjrl, rintve elmleti, implementcis s zemeltetsi krdseket is.
348
4. A HLZATI RTEG
Egy csomagfogadsi, illetve -kldsi idvel ksbb
4.10. bra. Sorbon lls a kimeneti porton A kimeneti portnl jelentkez sorban lls miatt szksg van egy csomagtemezre (packet scheduler), amely kivlasztja a sorban ll csomagok
4.3 Ml azt VAN az A/ TVLASZTK BELSHJHBtN? 349 kzl egyet, amely legkzelebb kikldsre kerl. A vlaszts trtnhet olyan egyszer eljrssal, mint pldul az rkezsi sorrend szerinti temezs (firslcome-first-served, FCFS)), vagy kifinomultabb mdon, mint pldul a slyozott mltnyos sorba llts (weighted fair queuing, WFQ), amely mltnyosan osztja el a kimen adatkapcsolatot azok kztt a vgponttl vgpontig terjed hlzati sszekttetsek kztt, amelyekhez tartoz csomag ppen a sorban v rakozik. A csomagtemezs dnt szerepet jtszik a szavatolt minsg szolgltatsok (quality-of-service guarantees, QoS) nyjtsban. A tmt fontossgra val tekintettel a 7. fejezetben rszletesen trgyaljuk. A kimeneti porton sorban ll csomagok temezsvel kapcsolatos eljrsokat tbbek kztt a [Cisco Queue 2007] forrs mutatja be. A csomagok kzl akkor is vlasztani kell, ha egy berkez csomag mr nem fr el a puFerben. Ilyenkor arrl kell dnteni, hogy a rendszer a legutolsnak berkezett csomagot dobja el, vagy a mr sorba lltott csomagok kzl dobjon el egyet vagy akr tbbet is, hogy az jonnan berkezettnek helyet csinljon. Elfordulhat, hogy elnysebb a csomagot a puffer megtelse eltt eldobni (vagy a fejrszt megjellni), mivel gy jelezhet lehet a torlds a kld szmra. Szmos javaslat s elemzs ltott napvilgot a csomageldobssal s -megjellssel kapcsolatos eljrsokrl, amelyek az aktv sorkezels (active queue ma- nagement, AQM) gyjtnven vltak ismertt [Labrador 1999, Hollot 2002]. Az egyik legelterjedtebb s legtbbet tanulmnyozott AQM-algoritmus a vletlenszer korai szlelsi (Random Early Detection, RED) algoritmus. A RED-del trtn sorkezelsnl a kimeneti porton lv sor hossznak slyozott tlagrtke jtszik fontos szerepet. Ha az tlagos sor-
hossz egy csomag berkezsekor a kmin kszbrtket nem ri el, a csomag bekerl a sorba. Ha azonban a csomag berkezsekor a sor mr betelt, vagy a sor hossznak tlagrtke meghaladja a kindX kszbrtket, akkor a rendszer megjelli vagy eldobja a csomagot. Abban az esetben, ha a csomag berkeztekor az tlagos sorhossz rtke a [kmiM k[n ] intervallumba esik, a csomag eldobsnak vagy megjellsnek a valsznsge az tlagos sorhossz s a kt kszbrtk valamilyen fggvnye. Tbb valsznsgi megjellsi/eldobsi fggvnyt javasoltak mr, s a RED klnfle verziinak analitikus modellezsvel, szimulcijval s implementlsval is tallkozhatunk. [Christiansen 2001) s [Floyd 2007] munkjban a tma j ttekintse s tbb hasznos hivatkozs tallhat. Ha a kapcsolgp sebessge nem elegend ahhoz, hogy az sszes berkez csomagot ksleltets nlkl tovbbtsa, akkor a bemeneti porton is sor kerlhet a csomagok sorba lltsra, hiszen ott kell vrakozniuk addig, mg a kapcsolgp a kimeneti porthoz tudja ket tovbbtani. Ennek a sorban llsnak fontos kvetkezmnyei vannak, amelyek jobb megrtshez tekintsk a kvetkez pldt. I.egyen a kapcsolgp crossbar-tpus, s tegyk fel, hogy (1) az sszes kapcsolat sebessge megegyezik, (2) a csomag tvitele brmely be meneti portrl egy adott kimeneti portra ugyanannyi idt vesz ignybe, mint egy csomag fogadsa valamelyik bemeneti porton, valamint hogy (3) a csomagok thelyezse az adott bemeneti sorbl a kvnt kimeneti sorba az ECFS-temezs szerint trtnik. Tbb csomag
Versenyhelyzet f idpontban a kimeneti porton - csak egy stt sznnel jellt csomag tovbbthat
---
* 1------>
Kapcsolgp
---
J--------
%
- Jells:
^ a fels kimeneti poara kell Tovbbtani
*1
: a kzps kimeneti portra kell Tovbbtani az als kimene oortra kell tovbbtani
vihet t egyidejleg, ha ms-ms kimeneti portra kell ket tovbbtani. Ha azonban a kt bemeneti porton kialakult kt sor egy-egy els tagjt ugyanahhoz a kimeneti porthoz kell eljuttatni, akkor valamelyik csomag tvitele blokkoldik, s a csomagnak tovbbra is vrakoznia kell a bemeneti sorban, hiszen a kapcsolgp egyszerre csak egy csomagot tud az adott kimeneti porthoz tovbbtani. A 4.11. brn a bemeneti sorok az bra bal oldaln, a kimeneti portok az bra jobb oldaln lthatk. Az brn lthat pldban a hrom bemeneti sor kzl kett (a legfels s a legals) elejn is olyan (stt sznnel jellt) csomag tallhat, amelyet a legfels kimeneti port fel kellene tovbbtani. Ttelezzk fel, hogy a kapcsol a bemeneti sorok elejn tallhat csomagok kzl a legfelst vlasztja ki tovbbtsra. Ebben az esetben a legals sorban lv stt sznnel jellt csomagnak vrakoznia kell. De nem csak ennek a csomag nak kell vrakoznia, hanem a mgtte ll, vilgosabb sznnel jellt csomagnak is, annak ellenre, hogy a kzps kimeneti p>orton, ahov ezt a csomagot kell eljuttatni, nem alakult ki torlds. Ezt a jelensget, amelynl a bemeneti porton lv sorbanll csomagnak annak ellenre vrakoznia kell, hogy szabad az a kimeneti port, ahov t kellene vinni, mert a sor elejn ll msik csomag blokkolja, soreleji blokkolsnak (head-of-the-line blocking, HOL blocking) nevezzk. [Karol 1987] megmutatta, hogy a HOL-blokkols miatt a bemeneti sor hossza minden vges korlton tln (kevsb formlisan: jelents csomagvesztsre kerl sor), radsul bizonyos felttelek teljeslse esetn mr akkor is, ha a csomagok rkezsi sebessge elri a bemeneti adatkapcsolatok kapacitsnak 58 sz zalkt. [McKeown 1997b] munkjban tbb megoldst is tallunk a HOL-blokkolssal kapcsolatos problmkra.
elterjedt 4-es verzijval ismerkednk meg, amelyet gyakran csak IPv4-nck neveznek [RFC 791]. A fejezet vgn tanulmnyozni fogjuk az IP 6-os verzijt, az IPv6-ot [RFC' 2460, RFC.' 3513], amelyet az IPv4 utdjnak sznnak. Az IP rejtelmeinek felfedezse eltt azonban tekintsk t kzelebbrl az internet hlzati rtegnek alkotelemeit. A 4.12. brn lthat, hogy az internet hlzati rtege hrom f alkotelembl ll, amelyek kzl az els, jelen fejezet tmja, az IP mint protokoll; a msodik az tvlaszt protokoll, amely a csomagok clbajuttatst segt tovbbttblk belltsval hatrozza meg a datagram tjt a forrstl a clig. Az internet tvlaszt pro tokolljaira a 4.6. alfejezetben trnk ki. A hlzati rteg harmadik fontos eleme lehetv teszi a datagramok hibinak jelzst s a vlaszadst a hlzati rtegre vonatkoz krd sekre. Az internet hlzati rtegbeli hibajelzsi s bizonyos forgalmi adatokat tovbbt protokolljval (Internet Control Message Protocoi, ICMP) a 4.4.3. alfejezetben foglalkozunk rszletesebben.
4.4.1. A datagramformtum
A hlzati rtegbeli csomagot datagramnak nevezzk, ahogy erre mr korbban is utaltunk. Az IP tanulmnyozst az IPv4-datagram szintaxisnak s szemantikjnak ttekintsvel kezdjk, amirl sok olvas bizonyra azt gondolja, hogy ennl rdektelenebb tma taln nincs is. Da ha gy is van, a datagram olyan kzponti szerepet tlt be az internetben, hogy alapos tanulmnyozsa, megrtse s helyes hasznlata elengedhetetlen, akr dikknt, akr vgzett szakemberknt foglalkozik valaki hlzatokkal. A 4.13. bra szemllteti az IPv4datagramformtum fbb mezit:
verzijnak felel meg. Az tvlaszt a verziszm alapjn rtelmezi az IPdatagram tbbi rszt. Az IP klnbz verzii eltr datagramformtumokat hasznlnak. A 4.13. bra a napjainkban elterjedt IPv4 ltal hasznlt datagramformtumot mutatja be; az IPv6-tal a fejezet vgn foglalkozunk majd. Fejrszhossz. Ez a 4 bit megadja az adatok kezdetnek helyt az IPdatagramban. Erre azrt van szksg, mert az IPv4-datagram fejrsze vltoz szm opcii tartalmazhat s gy nem lland a hossza. Mivel az IPdatagramok tbbsge nem tartalmaz opcikat, a fejrsz hossza ltalban 20
bjt.
I
Datagramhossz (bjtban)
J Z(
. * ? bitek
A
amit internetes ellenrz sszegnek is hvnak. Az tvlaszt minden berkez IP-datagram fejrsznek ellenrz sszegt kiszmolja, s meggyzdik arrl, hogy a kiszmtott rtk megegyezik-e az ebben a mezben tall hat rtkkel. Amennyiben nem egyezik meg, a csomag hibs; ezeket a csomagokat az tvlasztk ltalban eldobjk. Pontos, hogy az ellenrz sszeget minden t vlaszt knytelen jra kiszmtani s berni a fejrszbe, mivel a TTL-mez tartalma megvltozik, s az opci-mez is vltozhat. Az [RFC 1071]-ben megtallhatjuk nhny, az internetes ellenrz sszeget kiszmt gyors algoritmus lerst. Az olvasban bizonyra felmerl a krds, mirt van szksg hibajelzsre a szlltsi s a hlzati rtegben kln-kln is. A vlasz az, hogy tbb okbl is: egyrszt vegyk szre, hogy az IP-rtegben csak az IPfejlc ellenrz sszegt szmtjuk ki, mg a TCP/UDP ellenrz sszege a teljes TCP/UDP-szegmenst vdi. Msrszt a TCP/U DP-t s az lP-t elvileg egymstl fggetlenl is hasznlhatjuk: a TCP elvileg mkdhet ms protokoll (pldul ATM) felett is, s az IP is szllthat olyan datagramokat, ame lyekben nem TCP/U DP-szegmensek utaznak. Forrs s cl IP-cm. A forrs a datagram ellltsakor sajt IP-cmt a forrs IP-cm mezbe, a cmzett cmt pedig a cl IP-cm mezbe rja be. A forrshoszt a clcmet gyakran a 2. fejezetben lert mdon, a DNS-bl visszakeresve hatrozza meg. Az IP-cmzs rszletes ismertetsre a 4.4.2. alfejezetben trnk ki. Opcik. Az opcimezk teszik lehetv az IP-fejrsz bvtst. A fejlesztk szndka szerint ritkn lett volna szksg az opcimezk hasznlatra, ezrt dntttek gy, hogy nem helyezik el ezeket minden datagram fejrszben. Az opcik ltezse azonban mr nmagban nehzsgeket okoz pldul azzal, hogy - mivel a datagram fejrsze vltoz hosszsg lehet - nem hatrozhat meg elzetesen, hogy hol kezddik az adatmez. Tovbbi bonyodalmat jelent, hogy mg egyes datagramok ignylik az opcik feldolgozst, msok meg nem, az IP-datagramok feldolgozsnak ideje igen eltr lehet. Ezek a tnyezk elssorban a nagyteljestmny tvlasztkban s hosztokban tr tn feldolgozsnl vlnak kritikuss. Ezrt, de ms okokbl is, nincsenek opcimezk az IPv fejrszben (lsd 4.4.4. alfejezet). Adatok (hasznos adatok, felhasznli adatok). Vgl elrkeztnk a datagramnak lt- jogosultsgot ad, legfontosabb mezhz. Az esetek tbbsgben az IP-datagram adatmezje a clba juttatand szlltsi rtegbeli szegmenst (TCP vagy UDP) tartalmazza, de szllthat msfajta adatokat, pldul ICMP-zeneteket is (lsd 4.4.3. alfejezet). Jegyezzk meg, hogy az IP-datagramok fejrsznek teljes hossza 20 bjt (opcik nlkl). Ha a datagramok TCP-szegmenst is tartalmaznak, akkor minden (nem darabolt) datagram az alkalmazsi rtegbeli zeneten kvl egy 40 bjtbl ll fejrszt (20 bjtos IP-fej- rsz + 20 bjtos TCP-fejrsz) is hordoz.
Az IP-datagramok darabolsa
Az 5. fejezetben ltni fogjuk, hogy nem mindegyik adatkapcsolati rtegbeli protokoll tud brmilyen mret csomagot szlltani: nagy klnbsgek vannak az egyes protokollok kztt abbl a szempontbl, hogy mekkora keretek szlltst teszik lehetv. Mg pldul az Kthernet-keretek akr 1500 bjt adatot is tartalmazhatnak, addig a nhny nagy kiterjeds kapcsolatban alkalmazott keretek legfeljebb 576 bjtbl llhatnak. Azt a legnagyobb adatmennyisget, amelyet az adatkapcsolati rtegbeli keret szlltani kpes, tvihet leg hosszabb
adategysgnek (maximum transmission unit, MTU) nevezzk. Mivel minden IPdatagram az adatkapcsolati rtegbeli keretbe becsomagolva kerl szlltsra az egyik tvlaszttl a msikig, az adatkapcsolati rtegbeli protokoll MTU-ja jelentsen korltozza az IP-datagramok hosszt; nem ez a legnagyobb problma azonban, hanem az, hogy a kld s a cl kztti kapcsolatok klnbz, egymstl eltr MTU-val rendelkez adat- kapcsolati rtegbeli protokollokat is hasznlhatnak. A tovbbtsi folyamai jobb megrtse cljbl kpzeljk el, hogy mi vagyunk annak az tvlasztnak a helyben, amely tbb, egymstl eltr adatkapcsolati protokollal fut s klnbz MTU-val rendelkez adatkapcsolatot kt ssze. Az egyik adatkapcsolattl kapunk egy 1 P-datagramot, a tovbbtlbibl pedig kiderl, hogy egy olyan adatkapcsolatra kell kikldennk, amelynek az MTU-ja kisebb, mint az IP-datagram hossza. Mit tehetnk ilyenkor? Hogy prselhetjk be ezt a tlmretezett 1 P-datagramot az adatkapcsolati rtegbeli keret adatmezjbe? Ilyenkor az a megolds, hogy az IP-datagram adatait kt vagy tbb kisebb IP-dalagramba trdeljk (daraboljuk), amelyeket kln-kln, egy-egy adatkapcsolati rtegbeli keretbe csomagolva kldnk ki a kimen adatkapcsolaton. Ezeket a kisebb datagramokat daraboknak (tredkeknek) nevezzk. A tredkeket jbl ssze kell rakni mg azeltt, hogy a clnl lv szlltsi rteg megkapn ket; mind a TCP, mind az UDP ugyanis teljes s nem szttrdelt szegmenseket vr a hlzati rtegtl. Az IPv4 fejleszti attl tartottak, hogy ha a datagramokat az tvlasztknak kellene jbl sszerakniuk, az sszetettebb protokollokat ignyelne s cskkenten az tvlasztk teljestkpessgt. (Az tvlasztk helyben mi sem szeretnnk az egyb feladatainkon tl mg tredkek sszeraksval is veszdni.) Az IPv4 fejleszti - azt az elvet szem eltt tartva, hogy a hlzat belseje legyen egyszer - gy dntttek, hogy a datagramok jbli sszerakst az tvlasztk helyett a vgrendszerekre bzzk. A clhosztnak el kell dntenie, hogy az azonos forrstl kapott datagramok sorozatban vannak-e olyanok, amelyek egy-egy nagyobb datagram tredkei. Amennyiben vannak, azt is szre kell vennie, ha megjtt az utols tredk, s meg kell hatroznia, hogy a kapott tredkeket hogyan kell sszeilleszteni az eredeti datagramm. Az IPv4 fejleszti ppen azrt bvtettk a fejrszt az azonostt, a jelzbiteket s a darabolsi eltolst tartalmaz mezkkel, hogy a clhoszt ezeket a feladatokat el tudja ltni. A forrshoszt a datag- ramot azonost szmmal, valamint forrscm- s clcmblyeggel ltja el. A kvetkez datagram ltalban nagyobb azonost szmot kap, mint az elz. Az tvlaszt egy adott datagram darabolsakor keletkezett sszes tredket szintn elltja az eredeti datagram azonostszm-, forrscm- s clcmblyegvel. Ily mdon a clhoszt az ugyanattl a for- rshoszttl kapott datagramsorozatok megfelel blyegeibl meg tudja llaptani, hogy melyek egy adott nagyobb datagram tredkei. Mivel az IP egy nem megbzhat szolgltats, elfordulhat, hogy egy vagy akr tbb tredk soha sem rkezik meg a clhoszthoz, teht nem llapthat meg megbzhatan, hogy az utolsknt berkezett tredk az eredeti datagramnak is valban a sorban utols tredke-e. Ennek egyrtelm eldntsben se-
gt az, hogy a sorban utols tredk egyik jelzbitje 0, az sszes tbbi pedig 1. darabolsi mez segt a tredkek megfelel sorrendben trtn sszeraksban s annak megllaptsban, hogy vannak-e hinyz tredkek. A 4.14. bra az albbi konkrt pldn szemllteti a datagramok darabolst s jbli sszerakst: az tvlasztnak a berkez 4000 bjtos (20 bjtos IP-fejrsz + 3980 bjtos adatmez (hasznos adat) datagramot egy 1500 bjt MTU-val rendelkez adatkapcsolatra kell tovbbtania, amit gy tud megoldani, hogy az eredeti datagram 3980 adatbjtjt hrom klnll tredkre osztja el (amelyek egyben IP-datagramok is). Ttelezzk fel, hogy az eredeti datagram azonost szma 777. A hrom tredk jellemzit a 4.2. tbl zat tartalmazza. A tblzatban szerepl rtkekbl az is kitnik, hogy - az utols tredk kivtelvel - minden tredknek a 8 bjt egsz szm tbbszrsnek megfelel adath nyadot kell tartalmaznia az eredeti adatmezbl, s hogy az eltols rtkt 8 bjtos adat blokk-egysgekben kell megadni. A clhosztnl a datagram adatrsze csak azutn kerl a szlltsi rteghez, hogy az IP-rteg teljes mrtkben rekonstrulta az eredeti IP-datagramot. Az egy vagy tbb tredk hinya miatt csak rszben rekonstrult datagramokat a rendszer nem tovbbtja a szlltsi rtegnek, hanem eldobja. Az ezt megelz fejezetben azonban lttuk, hogy ez nem jelenti az adott datagram teljes elvesztst, ha a szlltsi rtegben TCP-t hasznlunk, mivel a TCP az adott datagram jbli elkldsre szltja majd fel a forrst.
Darabols: Bemenet: egy nagymret datagram (4000 bjt) Kimenet: 3 kisebb datagram
4.4. AzINTERNET Internet Protocol (IP): tovbbts f.s AZ cmzs az interneten 4.2. tblzat. IP-tredkek 361 4.4. Az PROTOCOI . (IP): TOVBBTS S CMZS INTERNETEN
Tredk Els tredk Bjtszm 1480 bjt az IP-datagram adatmezjben Azonost Azonost szm = 777 Eltols Eltols = 0 (azaz az adatok beszrsa a 0-ik bjtnl kezddjn) Eltols = 185 (azaz az adatok beszrsa az 1480-ik bjtnl kezddjn; vegyk szre, hogy Harmadik tredk 1020 adatbjt (= 3980 - 14801480) Azonost szm = 777 185x8 = 1480) Eltols = 370 (azaz az adatok beszrsa a 2960-ik bjtnl kezddjn; vegyk szre, hogy 370 X 8 = 2960) Jelzbit = 0 (azaz ez a sorban utols tredk) Jelzbit Jelzbit = 1 (azaz van mg ezt kvet tredk)
Msodik tredk
1480 adatbjt
Az IP-darabols teht fontos szerepet jtszik abban, hogy az adatkapcsolati rtegben hasznlt klnbz fizikai megvalstsok tjrhatv vljanak. Ennek azonban ra van. Egyfell bonyolultabb teszi az tvlasztk s a vgrendszerek mkdst, amelyeket fel kell kszteni a darabols s az jbli sszeraks elvgzsre, msfell felhasznlhat vgzetes DoS-tmadsok indtsra olyan mdon, hogy a tmad bizarr s nem vrt tredkek sorozatt kldi. Ennek klasszikus pldja a Jolt2 tmads, amelynl a tmad egy sor kis tredkbl ll folyamot kld a megclzott hosztnak, amelyek kzl egyiknek sem nulla az eltolsa. A hoszt sszeomolhat, mikzben megksrli a datagramokat a degencrlt csomagokbl rekonstrulni. Egy msik tmads egymst tfed IP-tredkek kldsn alapul, amelyeknl a megadott eltolsi rtkek nem teszik lehetv a tredkek sszeillesztst. Ez az tlapol tredkek esetnek kezelsre fel nem ksztett opercis rendszerek sszeomlshoz vezethet [Skoudis 2006). A fejezet vgn ltni fogjuk, hogy az IPv6 azzal, hogy teljes egszben megsznteti a darabolst, egyszerbb teszi az IP-csomagok feldolgozst s cskkenti az IP sebezhetsgt. Ennek a knyvnek a weboldaln (http://vvww.awl.com/kurose-ross ) elhelyeztnk egy tredkeket generl Java-appletet, amely a megadott adatok (berkez datagram mrete s azonostja, MTU) alapjn ellltja a kvnt tredkeket.
4.4.2. Az lPv4-cmzs
Sokan gy gondolhatjk, hogy az IPv4-cmzs teljesen egyszer s problmamentes mvelet. A knyv szerzi azonban azt remlik, hogy az olvast c fejezet vgre meggyzik arrl, hogy az internetes cmzs nemcsak, hogy flttbb egzotikus, kifinomult s rdekes, hanem emellett az internet egyik kzponti krdse is. Az IPv4-cmzs kivl trgyalsa megtall hat a [3Com Addressing 2007] forrsban s [Stewart 1999] knyvnek els fejezetben is. Az IP-cmzs trgyalsa eltt azonban pr szl kell szlnunk arrl, hogy
mikppen kapcsoldnak a hosztok s az tvlasztk a hlzathoz. A hosztokat a hlzattal ltalban csak egy adatkapcsolat kti ssze; a hoszt IP-implementcija 362 4. A HLZATI RTEG ezen keresztl tovbbtja a kldsre sznt datagramokat. A hoszt s a fizikai adatkapcsolat kztti hatrfelletet interfsznek (interface) nevezzk. Mi a helyzet az tvlasztkkal s ezek interfszeivel? Az tvlasztkat szksgszeren kt vagy tbb adatkapcsolat kti a hlzathoz, hiszen az a feladatuk, hogy az egyik adatkapcsolaton fogadott datagramot valamelyik msik adatkap csolaton tovbbtsk. Az tvlaszt s az egyes adatkapcsolatai kztti hatrfelletet szin tn interfsznek nevezzk. Az tvlasztk teht tbb interfsszel rendelkeznek. Az sszes tvlaszt-interfsznek s hosztnak rendelkeznie kell sajt IP-cmmel, hiszen mindegyik kpes datagramok kldsre s fogadsra. A fentiekbl kvetkezik, hogy az IP-cm technikailag elssorban valamely interfszhez ktdik, nem pedig ahhoz az tvlaszthoz vagy hoszt hoz, amelyben az interfsz tallhat. Minden IP-cm 32 bit (azaz 4 bjt) hossz, ami azt jelenti, hogy a lehetsges IPcmek szma 2 32 , azaz mintegy 4 millird. A cmek rsra a pontozott decimlis jellst (dot- ted-decimal notation) hasznljk, amelynl a cm minden egyes bjtjt tzes szmrendszerben rt szmmal, s a szmokat elvlaszt ponttal rjuk le. Pldaknt szerepeljen itt a 193.32.216.9-es IP-cm. A 193 a cm els 8 bitjnek, a 32 a msodik 8 bitjnek tzes szmrendszer megfeleltetse, s gy tovbb. A 193.32.216.9-es cm binris jellsben: 11000001 00100000 11011000 00001001 A globlis internet minden egyes interfsznek egyedi IP-cmmel kell rendelkeznie (kivtelt csak a NAT-ok mgtti interfszek kpeznek, amire a fejezet vgn trnk ki). A cmek megvlasztsa azonban nem tetszleges; az interfszek IP-cmeinek egy rszt az az alhlzat hatrozza meg, amelyhez kapcsoldnak (lsd pldul 4.15. bra).
A 4.15. brn lthat pldban egy (hrom interfsszcl rendelkez) tvlaszt kt ssze ht hosztot. Vegyk szre az egyes cmek kztti sszefggseket: az bra bal oldaln tallhat hrom hoszt s a velk sszekttetsben ll tvlasztinterfsz cme 223.1.1.xxx-ala- k, vagyis ezekben a cmekben az els 24 bit azonos. Ezen tlmenen a ngy interfszt olyan hlzat kti ssze, amelyben
nincsenek tvlasztk. (Ez lehetne pldul egy Ethernet LAN, amelyben az 4.4. Az
interfszeket egy Ethernet-eloszt vagy egy Ethernet-kapcsol kti sz- sze, lsd INTERNET PROTOCOI. (IP): TOVBBTS S CMZS AZ INTERNETEN 363 5. fejezet). Az IP-terminolgiban ez a hrom hosztinterfszt s egy tvlaszt-interfszt sszekt hlzat egy alhlzatot (subnet) kpez [RFC 950). (Az internettel foglalkoz irodalomban az alhlzat helyett az JP-hlzat vagy egyszeren a hlzat kifejezsek is hasznlatosak). Az IP cmzsi gyakorlata szerint a fenti pldban a szerepl alhlzatra a kvetkezkppen hivatkozhatunk: 223.1.1.0/24, ahol az alhlzati maszkknt (subnet mask) is ismert /24 jells arra utal, hogy a 32 bitbl az els 24 bit hatrozza meg az alhl zat cmt. A 223.1.1.0/24-es alhlzat ebben a pldban teht a 223.1.1.1, 223.1.1.2,223.1.1.3 cm hosztinterfszekbl s a 223.1.1.4 cm tvlaszt-interfszbl ll. A 223.1.1.0/24-es alhlzathoz esetleg kapcsold brmely tovbbi hoszt cmnek szintn 223.1.l.xxx alaknak kell lennie. A 4.15. brn a fent emltetten kvl kt tovbbi alhlzat, a 223.1.2.0/24-es s a 223.1.3.0/24-es is lthat. A fenti hrom IP-alhlzatot a 4.16. bra szemllteti. Az alhlzatok IP-s defincija nem szortkozik a tbb hosztot egy tvlasztinterfsszel sszekt Ethernet-szegmensekre. Ezt hivatott rzkeltetni a 4.17. bra: itt hrom olyan tvlaszt lthat, amelyeket ktpontos adatkapcsolatok kapcsolnak ssze. Az tvlasztk hrom-hrom interfsszel rendelkeznek, egy-egy interfsszel a ktpontos adatkapcsolatok szmra, eggyel pedig az adatszr adatkapcsolat szmra, amely az egyes tvlasztkat kzvetlenl kti ssze ktkt hoszttal. Ebben az esetben milyen alhlzatokrl beszlhe tnk? A 223.1.1.0/24, 223.1.2.0/24 s 223.1.3.0/24 alhlzatok hasonltanak a 4.15. brn lthatkra. Van azonban mg hrom tovbbi alhlzat is: az Rl s R2 tvlasztt sszekt interfszek ltal alkotott 223.1.9.0/24, az R2 s R3 tvlasztt sszekt interfszek ltal
alkotott 223.1.8.0/24, valamint az R s R3 tvlasztt sszekt interfszek ltal alkotott 223.1.7.0/24 alhlzat. Egymssal sszekttt tvlasztk s hosztok rendszerben ltalban az albbi lers szerint hatrozhatk meg az alhlzatok:
Az sszes interfszt a kosz tjrl, illetve tvlasztjrl levlasztva kozzunk ltre elszigetelt hlzatokbl ll szigeteket ezek vgpontjait lezr interfszekkel. Minden gy ltrehozott elszigetelt hlzatot alhlzatnak neveznk.
Ha a 4.17. brn bemutatott rendszeren a fentiek alapjn jrunk el, hat szigetet, illetve alhlzatot kapunk. 364 4. A HLZATI RTEG Eddigi ismereteink alapjn knnyen belthatjuk, hogy egy olyan intzmnyben, ahol tbb Ethernet-szegmens s ktpontos adatkapcsolat fordul el (pldul egy vllalaton bell vagy egy kutathelyen), sok olyan alhlzat is lesz, amelyekben az adott alhlzathoz tartoz eszkzk azonos alhlzati cmmel rendelkeznek majd. Elvben az egyes alhlzatok cme lehetne egymstl teljesen eltr is. A gyakorlatban azonban sok bennk a kzs. Ennek okt jobban megrtjk, ha megnzzk, hogy a globlis interneten mikppen valsul meg a cmzs. Az internetes cmkiosztsi stratgia az osztly nlkli krzetek kztti forgalomirnyts (Classless Interdomain Routing, CIDR) nven vlt ismertt [RFC 4632). A CIDR ltalnostja az alhlzati cmzst. Kt rszre bontja a 32 bites IP-cmet, s szintn az a.b.c.d/x pontozott decimlis jellst alkalmazza, ahol A; jelli a cm els rszben lv bitek szmt.
82
223.1.1.1 223.1.1.4
223.1.2.1
223.1.2.2
223.1.3.1
223.1.3.2
4.17. bra. Hat alhlzatot sszekt hrom tvlaszt Az a.b.c.d/x alakban felrt cmek fels x bitje alkotja az IP-cm hlzati rszt; ezeket gyakran nevezik a cm prefixnek (vagy hlzatiprefixnek). Az intzmnyek szmra ltalban egy egybefgg cmblokkot, azaz egy kzs prefixszel rendelkez cmtartomnyt osztanak ki (lsd az Elvek a gyakorlatban cm rszt), vagyis az adott intzmnyen belli eszkzk IP-cme kzs prefixszel rendelkezik. Az internet BGP tvlaszt protokolljnak trgyalsakor (4.6. alfejezet) ltni fogjuk, hogy az adott intzmnyen kvli tvlasztk kizrlag az els a* prefix bitet veszik figyelembe. Vagyis, ha egy kls tvlaszt olyan datagramot tovbbt, amelynek intzmnyen belli a clcme, akkor elg, ha a cm els x bitjvel foglalkozik. Ez jelentsen cskkenti az rintett tvlasztk tovbbttblinak mrett, hiszen egyetlen a.b.c.d/x alak cm is elegend ahhoz, hogy a csomagok az intzmnyen belli brmelyik clhoz eljussanak. A cm 32 bitibl x bit felhasznlsa utn fennmarad 32-x bitjnek segtsgvel klnbztethetk meg az intzmnyen bell az egyes eszkzk, amelyek, mint mondottuk, azonos hlzati prefixszel rendelkeznek. Ezeket a biteket kell az intzmnyen belli tvlasztknak figyelembe vennik a csomagok tovbbtsnl. Esetenknt elfordul, hogy az als bitek ltal kifesztett cmtr a fentebb trgyaltakhoz hasonlan tovbbi alhlzatokra tagoldik. Ttelezzk fel pldul, hogy a C1DR alapjn kiosztott a.b.c.d/21 cm els 21 bitje specifiklja az intzmny hlzati prefixt, amellyel az intzmnyen belli sszes eszkz IP-cme is rendelkezik. Ekkor a fennmarad 11 bit azonostja az intzmny konkrt hosztjait. Az intzmny bels felptse indokoltt teheti, hogy a 11 als bitet az intzmnyen belli tovbbi hlzati hierarchia kialaktsra hasznljk fel. Pldul
83
az intzmny valamely konkrt rszhlzatnak cme lehet az a.b.c.d/24 cm. A CIDR elfogadst megelzen az IP-cmek hlzati rszeinek hossza csak 8, 16 vagy 24 bit lehetett. A cmkiosztsnak ez a mdja cmtartomny osztlyok szerinti szervezse (classful addressing) nven vlt ismertt, mivel a 8, 16 s 24 bites alhlzati cmekkel rendelkez alhlzatokat A, B, illetve C osztly hlzatoknak neveztk. Az a megkts, hogy az IP-cm alhlzati rsze pontosan 1,2, illetve 3 bjt hossz legyen, egyre tbb problmt okozott a kis- s kzepes mret alhlzatokkal rendelkez intzmnyek esetben. A C osztly (/24) alhlzat csupn 2 8 -2 = 254 hosztot tud cmekkel elltni (a 2* cm kzl kett specilis clokra van fenntartva), ami szmos intzmnynl nem elegend. Ezzel szemben az akr 65634 hosztot is elltni kpes B osztly (/16) alhlzat sokszor tlmre tezettnek bizonyult. A cmtartomny osztlyok szerinti szervezsnl egy mondjuk 2000 hosztos intzmny szmra ltalban egy R osztly alhlzati cmtartomnyt osztottak ki, ami a rendelkezsre ll B osztly cmtartomny gyors fogyshoz vezetett, mikzben a kiosztott cmtartomny kihasznltsga alacsony volt, hiszen a 2000 hosztos intzmny a szmra kiosztott 65534 lehetsges cmbl csupn 2000-et hasznlt fel, a fennmarad tbb mint 63000 cmet azonban nem lehetett ms intzmnyek rendelkezsre bocstani. Hibt kvetnnk el, ha nem tennnk emltst egy klnleges IP-cmrl, az adatszrsra fenntartott 255.255.255.255-s krzvnycmrl. Ha egy hoszt a 255.255.255.255 clcmre kld datagramot, azt az adott alhlzatban lv sszes hoszt megkapja. Az tvlasztk ezeket az zeneteket a szomszdos alhlzatokba is eljuttathatjk (de nem ez a jellemz). Most, hogy rszletesebben is megismerkedtnk az IP-cmzs rejtelmeivel, ideje megtudnunk, hogy a hosztok s az alhlzatok hogyan kapnak cmeket egyltaln. Elsknt azt vizsgljuk, hogy valamely intzmny hogyan jut hozz az eszkzei szmra szsges cmblokkokhoz. Ezt kveten nzzk meg, hogy az egyes eszkzk (pldul a hosztok) szmra hogyan trtnik a cmkioszts az intzmnyi cmblokkon bell.
60
lvek a gyakorlatban
4. A HL/ATI RTEG
Egy nyolc intzmny internetes hozzfrst biztost internetszolgltat pldjn mutatjuk be, hogy a CIDR alapjn kell gonddal kiosztott cmek miknt knnytik meg az tvlasztst. A 4.18. brn lthat, hogy a bemutatott inlernetszolgltal - legyen a neve HiperNet-azt hir deti a klvilgnak, hogy olyan datagramokat vr, amelyek els 20 cmbitje a 200.23.16.0/20-ra illeszkedik. A klvilgnak arrl nem kell tudnia, hogy a 200.23.16.0/20-as cmblokkon bell nyolc, sajt alhlzattal rendelkez intzmny ltezik. Azt a kpessget, amely lehetv teszi tbb hlzat hirdetst egyetlen prefixszel cmsszevonsnak (address aggregation) nevezik, de hasznlatosak az tvonal-sszevons (route aggregation), illetve az tvonal-sszests (route summarization) kifejezsek is. A cmsszevons akkor mkdik igazn jl, ha a cmeket mr az internetszolgltatknak is blokkokban utaltk ki, s k gyfeleiket szintn cmblokkokkal ltjk el. De mi trtnik akkor, haa cmek kiutalsnl nem rvnyesl ez a fajta hierarchia? Ha pldul a HiperNet internetszolgltat megvsrolja a KirlyDSL internetszolgltatt, s az 1-es intzmnyt ezen lenyvllalatn keresztl csatlakoztatja az internethez? A 4.18. brn lthat, hogy az 1-es intzmny IP-c- mei sajnlatos mdon kvl esnek a KirlyDSL lenyvllalat ltal birtokolt 199.31.16.0/16-os cmblokkon. Mi a teend ilyenkor? Az 1-es intzmny termszetesen sszes tvlasztjnak s hosztjnak jraszmozsval megoldhatn, hogy ezek cmei az KirlyDSL cmblokkjn bell legyenek. De ez egyfell kltsges, msfell elfordulhat, hogy ezt az intzmnyt a jvben egy msik lenyvllalathoz csatoljk. ltalban az az elfogadott megolds, hogy az 1-es intzmny megtartja a 200.23.18.0/23-as alhlzatbeli cmeit. Ebben az esetben (lsd 4.19. bra) a HiperNet internetszolgltat tovbbra is a 200.23.16.0/20-as cmblokkot hirdeti, a KirlyDSL pedig a 199.31.16.0/16-os cmblokkon kvl az 1-es intzmny szmra hirdeti a 200.23.18.0/23-as cmblokkot is. A nagy internet tvlaszti a 200.23.16.0/20-as (HiperNet) s a 200.23.18.0/23-as cmblokk (KirlyDSL) lttn a leghosszabb illeszked prefix mdszert (lsd 4.2.2. alfejezet) al0- s intzmny 200.23.16.0/23 1- es intzmny 200.23.18.0/23 2- es intzmny 200.23.20.0/23
61
Internet
Kldjetek ide mindent, aminek az els 20 cmbitje a 199.31.16.0/16-ra illeszkedik" Kirly DSL
kai mazva a KirlyDSL fel kldik a csomagokat, mivel az ltala hirdetett, a csomagok clcimre illeszked prefix hosszabb (vagyis specifikusabb, konkrtabb, kevsb ltalnos), mini a HiperNet. ,Kldjetek ide mindent, aminek az els 20 cmbitje a 200.23.16.0/20ra illeszkedik"
HiperNet
Internet
Kldjetek ide mindent, aminek az els 20 cmbitje a 199.31.16.0/16-ra vagy a 200.23.18.0/23-ra illeszkedik Kirly DSL
200.23.30.0/23 11001000
00010111 0001111 0
Cmblokkot azonban nem csak az internetszolgltatktl kaphatunk, hiszen k is kaptk a cmblokkjukat valahonnan. Az IP-cmek kiosztsrt az Internet Corporation fr Assigned Names and Numbers (ICANN) a felels [ICANN 2007], amely az RFC 2050-ben lefektetett irnyelvek szerint jr el [RFC 2050]. A nonprofit ICANN-nak az IP-cmek kiutalsn kvl a DNS rootszerverek kezelse [NTIA 1998], a krzetnevek (domainnevek) kiosztsa s a krzet nevekkel kapcsolatos vits gyek elsimtsa is feladata. Az ICANN regionlis internetes cmnyilvntart hivataloknak (ilyen pldul az ARIN, a RIPE, az
APNIC cs a LACN1C) utal ki cmeket, amelyek egyttesen kpezik az Address Supporting Organization of ICANN szervezetet [ASO-ICANN 2007], s a sajt rgiikon bell ezek ltjk el a cmek kiutalsval s kezelsvel kapcsolatos feladatokat.
lzathoz kapcsold, jonnan csatlakoz kliensek kztt. felttelezzk, hogy az alhlzatnak sajt DHCP-szervere van.
Az
albbiakban
DHCPszerver
223.1.2.5
223.1.2.1
223.1.2.2
223.1.1.3
bra. DHCP kliens-szerver elrendezs Az jonnan csatlakoz hoszt szmra a DHCP-protokoll egy ngylpses folyamatot definil, amelyet a 4.21. bra szemlltet a 4.20. brn bemutatott elrendezs esetre. Ebben az brban a yiaddr (a your internet address, vagyis a Te internetcmed kezdbeti) jelli az jonnan csatlakoz kliens szmra kiutalt cmet. Az albbiakban ismertetjk a ngy lpst: /\ DHCP-szerverfeldertse. Az jonnan csatlakoz hosztnak elszr meg kell tallnia azt a DHCP-szervert, amellyel kommuniklhat. Erre szolgl a DHCPfeldertszenet (DHCP discover message), amelyet a kliens egy IPdatagramba csomagolt UDP- csomagban kld a 67-es portra. De milyen cmre kldje? A hoszt mg annak a hlzatnak az alhlzati cmt sem ismeri, amelyhez csatlakozik, ht mg a hlzat DHCP-szervernek a cmt! Ezrt a DHCP-kliens olyan, DHCP-feldertszenetet tartalmazIP-datagramot llt el, amelybe a 255.255.255.255 adatszrsra fenntartott krzvnycmet teszi, feladknt pedig a 0.0.0.0 IP-t tnteti fel. A DHCP-kliens az IP-datagramot az adatkapcsolati rtegnek adja tovbb, amely ezt a keretet adat szrssal tovbbtja az alhlzathoz csatlakoz sszes csomponthoz (az adatkap csolati rtegbeli adatszrsrl az 5.4. alfejezetben lesz sz rszletesebben) DHCP-szerver ajnlata. A DHCP-t feldert zenetet fogad szerver egy DHCPajn- latzenettel (DHCP offer message) vlaszol a kliensnek, amelyet szintn az adatszrsra fenntartott 255.255.255.255 IP-cmmel lt el. 1 Tbb DHCPszerver is lehet A fordt megjegyzse: Az RFC1541 (http://tools.ietf.org/html/rfcl541 , 3.1. fejezet) szerint a
DHCP-szervemek elssorban egyeskldses (unicast) csomagban kellene elkldenie a DHCP-ajnlatzenetet, s csak akkor hasznlni adatszrst, ha az egyesklds nem lehetsges (pldul mert a szerver s a kliens nem ugyanabban az alhlzatban tallhat); bizonyos elterjedt DHCPmegvalstsok azonban eleve adatszrst hasznlnak.
4.20.
223.1.3.1
223.1.3.2
az alhlzatban; ajnlataikkzl a kliens kedvre vlogathat. Mindegyik DHCPajnlat (offer) zenet tartalmazza a fogadott felderts* (discover) zenet tranzakci-azonostjt, a kliens szmra ajnlott IP-cmet, az alhlzati maszkot s egy IP-cmbrleti idt (address lease time), amely megadja az IPcm rvnyessgnek idejt. A szerverek ltalban nhny rtl nhny napig terjed rvnyessget lltanak be [Droms 1999). DHCP-krs. Az jonnan csatlakoz kliens a DHCP-ajnlatzenetre egy DHCPkrszenettel (DHCP request message) vlaszol, amely tartalmazza az ajnlatbl kimsolt, a kliens ltal krt konfigurcis paramtereket. 1 DHCPACK. A szerver a DHCP-krszenetre egy DHCP-nyugtazenettel (DHCP ACK message) vlaszol, amelyben megersti a krt paramtereket. Amint a kliens megkapja a DHCP-nyugtazenetet, a prbeszd lezrtnak tekinthet, s a kliens a brleti id ltal megszabott ideig hasznlhatja a DHCPszerver ltal kiosztott IP-cmet. A DHCP a brleti id igny szerinti meghosszabbtsra is lehetsget ad. A DHCP elnyei nyilvnvalak, ha belegondolunk, hogy enlkl manulisan kellene konfigurlni a hoszt IP-cmt. Hadd emlkeztessnk annak a diknak a pldjra, aki laptopjval tmegy a kollgiumbl az eladterembe, majd a knyvtrba, mindenhol egy j alhlzathoz csatlakozva, ahol j IP-cmet kell kapnia. Mg belegondolni is rossz, milyen lenne, ha egy rendszergazdnak kellene a laptopokat minden j helysznen jrakonfigurl' nia, s az sem valszn, hogy az sszes dik kpes lenne arra, hogy laptopjt manulisan maga konfigurlja. A mobilitst illeten azonban a DHCP-nek vannak htrnyai. Tekintet tel arra, hogy a kliens mindig j cmet kap a DHCP-tl, valahnyszor j alhlzathoz csat lakozik, a tvoli alkalmazsokkal ltestett TCP-sszekttetsei hlzatvltskor nem ma radnak fenn. A 6. fejezetben foglalkozunk majd a mobil IP-vel, az IP-infrastruktra jabb kibvtsvel, amely lehetv teszi, hogy az alhlzatrl alhlzatra jr mobil csompont egyetlen lland cmet hasznljon. Tovbbi rszletek tallhatk a DHCP-rl a (Droms 1999) forrsban s a [dhc 2007J IETF-honlapon. A DHCP nylt forrskd refcrenciaimplemcn- tcija letlthet az Internet Systems Consortium [1SC 2007] honlapjrl.
Hlzati cmfordits
Az internetcmek s az IPv4-datagramformtum trgyalst kveten jl tudjuk, hogy minden IP-t tmogat eszkznek rendelkeznie kell IP-cmmel. Ezrt a kisvllalati s otthoni irodkban (small ofice, home office, SOHO) teleptett alhlzatok elterjedse azt a ltszatot keltheti, hogy az internetszolgltatknak egsz sor cmet kell kiutalniuk, valahnyszor egy SOHO tbb gp sszekapcsolst egy LAN ltrehozsval szeretn megoldani, hiszen minden gpet el kell ltni sajt IP-cmmel. Az alhlzat bvtse (amire pldul azrt van szksg, mert a gyerekeknek otthon mr nemcsak sajt PC-jk, hanem PDA- juk, IP-telefonjuk s hlzatba kthet jtkkonzoljuk is van) pedig egy mg nagyobb cmblokk kiutalst tenn szksgess. De mi van akkor, ha az internetszolgltat mr nem tudja az adott SOHO-hlzat cmtartomnyt a meglevvel sszefgg tartomnnyal
A fordt megjegyzse: Az RFC1541 szerint a kliens a krst is kteles adatszrssal kldeni, hogy azok a szerverek, amelyeknek az ajnlatt nem veszi ignybe, rtesljenek arrl,
hogy ms cmet vlasztott, s a kliens szmra ideiglenesen lefoglalt, imnt ajnlott cmet felszabadthassk. A valsgban ezt az elrst nem minden kliens tartja be, de ezzel nem okoznak nagy hajt, mert ritkk az olyan hlzatok, amelyekben tbb DHCP-szerver is mkdik.
DHCP-szerver:
223.1.2.5
DHCP-feldertszenet
orrscrr-- O.O.O.0.68 clcm 255.255JS5.2S5.67
DBC.PDISCOVFR
DHCP-ajnlatzenet
yiaddr: 0.0.0.0 tranzakciazonost: 654 forrsdm: 223.1.25,67 clcm; 255.255.255.255,68 OHCPOfFER yiactcf: 223.1.2.4 tranzakciazonost: 654 (5! CPszervoazonosfr 223.1.2.5 lettram. 3600 scs
DHCP-krszenet
foristnt .O.O.0,68
clcm: 255.255.255255,6/ DHCPREQUST yiaddr: 223 .2.4 tranzakci azonost: 655 DHCf\ververazonost: 223.1.2.5 lettartam: 3600 secs
DHCP-nyugtazenet
255.25525S.255.68 HCPACK yiaddr: 223.1.2.4 tranzakciazonost: 655" DHCPszerverazonosil: 223. l .2.5 lettartam: 3600 secs
4.21. bra. DHCP kliens-szerver prbeszd bvteni, mert ezeket a cmeket mr kiutalta msnak? s egyltaln, mirt akarna egy tlagos lakstulajdonos rteni az IP-cmek kiosztshoz, vagy mirt kellene, hogy rtsen hozz? Szerencsre ltezik a cmkiosztsnak egy ennl egyszerbb megoldsa, amelyet a fent emltett esetekben mr szles krben alkalmaznak is. Ez az n. hlzati cmfordts (Network Address Translation, NAT) |RFC 2663; RFC 3022]. A 4.22. bra szemllteti a NAT-ot tmogat tvlasztk mkdst. Az bra jobb oldaln lthat az otthoni tvlasztnak az az interfsze, amely az otthoni hlzathoz csatlakozik. Az otthoni hlzaton belli cmzs pontosan a korbban lert mdon trtnik: mind a ngy erre a hlzatra csatlakoz interfsznek ugyanaz az alhlzati cme: 10.0.0.0/24. Az [RFC 1918) hrom cmtartomnyt jell ki a 4 .22. brn bemutatotthoz hasonl otthoni hlzatok, illetve privt cmeket hasznl n. privt hlzatok szmra; ezek kzl a 10.0.0.0/8 az egyik. Privt cmeket hasznl privt hlzatok alatt olyan hlzatokat rtnk, amelyek cmei kizrlag az adott hlzatban tallhat eszkzk szmra rtelme-
sek. Hnnek a jelentsgt akkor rtjk meg igazn, ha figyelembe vesszk, hogy szzezrvel vannak otthoni hlzatok, amelyek kzl sokan ugyanazt a 10.0.0.0/24-es cmtartomnyt hasznljk. Egy adott otthoni hlzaton belli kszlkek egyms 10.0.0.0/24-es cmeit hasznlva kldhetnek egymsnak csomagokat. Az otthoni hlzaton kvlre, a globlis internet fel tovbbtott csomagok azonban termszetesen sem forrs-, sem clcmknt nem hasznlhatjk ezeket a cmeket, hiszen, mint emltettk, tbb szzezer hlzat hasz nlja ezt a cmtartomnyt. Ez azt jelenti, hogy a 10.0.0.0/24-es cmek csak egy adott ott honi hlzaton bell rtelmezhetk. De ha a privt cmek kizrlag egy adott hlzaton bell rtelmezhetk, hogyan cmezhet meg egy magnhlzatra kapcsolt szmtgp egy a globlis interneten zemel msikat, s hogyan kaphatja meg a vlaszt, ha az interneten a cmek szksgszeren egyediek? A krdsre a NAT adja meg a vlaszt. A cmfordtst vgz tvlaszt a klvilg szmra nem tvlasztnak tnik, hanem egyetlen IP-cmmel rendelkez egyetlen eszkznek. A 4.22. brn lthat otthoni tvlaszt ltal az internet fel kldtt sszes csomag forrscme 138.76.29.7, s az internet fell az otthoni tvlasztnak sznt sszes csomagot ugyanerre az IP-cmre kell cmezni. Ez lnyegben azt jelenti, hogy a cmfordtst vgz tvlaszt a klvilg ell elrejti az otthoni hlzat felptsnek rszleteit. (Az olvasban felmerlhet a krds, hogy honnan kapjk cmeiket az otthoni szmtgpek, s honnan tudja az tvlaszt, mi az glob lisan egyedi cme. A vlasz mindkt esetben gyakran ugyanaz: a DHCP segtsgvel. Az tvlaszt gyakran az internetszolgltat DHCP-szervertl kapja IP-cmt, az tvlaszt pedig maga is futtat egy DHCP-szervert, hogy el tudja ltni cmekkel az ltala kezelt otthoni hlzati cmtartomnyhoz tartoz szmtgpeket). Ha a NAT-tvlaszthoz a VVAN-bl berkez minden datagramon azonos cl-IPcm szerepel (nevezetesen a NAT-tvlaszt WAN-oldali interfsznek cme), akkor honnan tudja az tvlaszt, hogy melyik bels hoszt rszre tovbbtsa azt? A problmt az tv-
LAN-oldali cm
V/H
S= 10.0.0.1,3345 D= 128.119.40.186,80
10.0.0.1
/ H
10.0.0. 4
--------------------------------:------//S = 128.119.40.186,80 D = 10.0.0.1, 3345
10.0.0.2
138.76.29. 7
. _Y
-----------------------------------//-
10.0.0.3
laszt egy olyan cmfordt tbla (NAT translation table) segtsgvel oldja meg, amelyben az IP-cmeken kvl portszmok is szerepelnek. Tekintsk a 4.22. brn bemutatott pldt! Ttelezzk fel, hogy az otthoni hlzat 10.0.0.1-es hosztjnak felhasznlja a 128.119.40.186 IP-cm 80-as portjn elrhet web- szerverrl kr le egy weboldalt. A 10.0.0.1-es hoszt nknyesen kivlasztja mondjuk a 3345-s forrsportot, s kikldi a csomagol a helyi hlzatba. A NATtvlaszt a csomag vtelt kveten, szintn nknyesen, mondjuk az 5001-es j forrsportszmot jelli ki ennek a kapcsolatnak a szmra; a forrscim helyre a sajt 138.76.29.7 WAN-oldali IP-cmt rja be, s az eredeti 3345-s portszmot az j 5001-essel helyettesti. Az j forrs- portszmok ellltsnl a NAT-tvlaszt brmely olyan forrsportszmot vlaszthat, amely az adott idpontban nem szerepel a cmfordt tblban (s olyan hlzati kapcsolat sem hasznlja, amelyben maga az tvlaszt a kliens vagy a szerver). Vegyk szre, hogy mivel a portszmmez 16 bites, a NAT-mechanizmus hatvanezernl is tbb egyidej sz- szekttetst kpes kezelni akkor is, ha az tvlasztnak csak egyetlen WAN-oldali, vagyis globlisan egyedi lP-cme van! Az j kapcsolat nyomon kvetse rdekben az tvlaszt j bejegyzst helyez el a cmfordt tblban. A webszerver, amely szerencsre mit sem tud arrl, hogy a HTTP-krst tartalmaz berkez csomagot a NAT-tvlaszt mdostotta, olyan csomaggal vlaszol, amelynek a clcme a NAT-tvlaszt WANoldali IP-cme, clportszma pedig az 5001-es. A vlaszcsomag berkezsekor a NATtvlaszt gy hatrozza meg, melyik bels IP-cm melyik portjra kell azt tovbbtani, hogy a fordttblban megkeresi az 5001-es forrsporthoz tartoz sort; ebben a sorban tallhat meg a megfelel bels IP-cm s portszm (10.0.0.1, illetve 3345). Az tvlaszt a vlaszcsomagban szerepl clcmei s clportot a cmfordttblban talltakra cserli, s az gy mdostott csomagot kikldi a LANinterfszn a 10.0.0.1-es hoszton fut bngsz szmra. Napjainkban a NAT-ot szleskren alkalmazzk. Meg kell azonban jegyezni, hogy az IETF-kzssgnek a szablyokhoz ragaszkod szakemberei kzl sokan adnak hangot a NAT-tal kapcsolatos ellenrzseiknek. Ngy f ellenrvk kzl az els az, hogy a portszmokat eredenden folyamatok, nem pedig hosztok megcmzsre szntk. (Ennek a szablynak a megsrtse valban okozhat problmkat az otthoni hlzatban fut szerverek esetben, mivel, ahogy azt a 2. fejezetben lttuk, a szerverfolyamatok a bejv krseket a jl ismert portokon vrjk). Msodik ellenrvk az, hogy az tvlasztknak a csomagokat csak a harmadik rteggel bezrlag kellene feldolgozniuk. Harmadsorban azt kifogsoljk, hogy a NAT megsrti az n. vgponttl vgpontig elvet, vagyis azt, hogy a hosztoknak - az IPcmeket s portszmokat mdost csompontok bevonsa nlkl - kzvetlenl kellene egymssal trsalogni. s vgl, negyedsorban az a vlemnyk, hogy az IPcmek hinyt az IPv6 bevezetsvel kellene orvosolni (lsd 4.4.4. alfejezet), nem pedig olyan szksgmegoldsokkal, toldozgatssal-lbldozgatssal, mint amilyen a NAT. Csakhogy akr tetszik, akr nem, a NAT az internet fontos tnyezjv vlt. A NAT tovbbi komoly htrnya, hogy zavarja a P2P-alkalmazsokat, belertve a fjl- cserlket s a P2P-alap Voice-over-IP-alkalmazsokat is. Gondoljunk a 2. fejezetben mondottakra, melyek szerint a P2P-alkalmazsokban rszt vev brmely A kommunikl flnek (a tovbbiakban A flnek) kpesnek kell lennie arra, hogy brmely ms B kommunikl fllel (a tovbbiakban B fl) TCP-sszckttetst kezdemnyezzen. Mrpedig, ha a B fl egy cmfordt tvlaszt mgtt van, akkor nem tud szerverknt mkdni s TCP-sszekttetscket fogadni. A fejezetet kvet feladatok megoldsakor ltni fogjuk, hogy a NAT-nak ez a problmja megkerlhet,
ha az A fl nincs NAT-tvlaszt mgtt. Ekkor ui. az A fl egy olyan kztes C kommunikl flen keresztl tud kapcsolatba lpni
B fllel, amely szintn nincs N AT-t vlasz t mgtt, s amellyel a B fl TCPsszekt- tetst tart fenn. Ebben az esetben az A fl a C flen keresztl krheti B fltl egy vele val kzvetlen TCP-sszekttets kezdemnyezst. Az A s B fl kztti kzvetlen P2P-alap TCP-sszekttets felptst kveten a kt fl mr kpes lesz az zenetek, illetve fjlok egyms kztti kzvetlen cserjre. Ezzel a kapcsolat-visszafordtsnak (connection reversal) nevezett megoldssal valban sok P2P-alkalmazs l a NAT-thidals (NAT traversal) megvalstsa rdekben. A helyzet kiss bonyolultabb, ha mind az A, mind a B fl NAT-t vlaszt mgtt van; ilyenkor az alkalmazsszint tjtszk hasznlata jelent megoldst, ahogy ezt a 2. fejezetben bemutatott Skype-tjtszk esetben lttuk.
UPnP
A NAT-thidalst egyre gyakrabban a Universal Plug and Play (UPnP) protokoll segtsgvel valstjk meg, amely lehetv teszi, hogy egy hoszt feldertsen s konfigurljon egy kzeli NAT-tvlasztt [UPnP Frum 2007]. A UPnP csak akkor mkdik, ha mind a hoszt, mind a NAT-tvlaszt implementlja a protokollt, azaz mindketten UPnP-kompatibilisek. A UPnP segtsgvel a hoszton fut alkalmazs krheti a NAT-tvlaszttl, hogy hozzon ltre lekpezst a sajt / privt IP-cme; privt portszmai s az internet oldali valamilyen Inyilvnos IP-cm; nyilvnos portszm) prok kztt. 1 la a NAT-tvlaszt elfogadja a krst s ltrehozza a megfeleltetst, akkor a az interneten tallhat csompontok kpess vl nak arra, hogy TCP-sszekttetst nyissanak a nyilvnos IP-cm, nyilvnos portszm)-ra. A UPnP mg azt is lehetv teszi, hogy a privt hlzatbeli alkalmazs megtudja a {nyilvnos IP-cm, nyilvnos portszm} rtkt s ezt hirdets formjban a nagyvilggal tudassa. Pldaknt ttelezzk fel, hogy a UPnP-t tmogat NAT-tvlaszt mgtti hosztunk, amelynek privt cme 10.0.0.1, BitTorrcnt alkalmazst futtat a 3345 porton, a NAT-tvlaszt nyilvnos cme pedig 138.76.29.7. A BitTorrent-alkalmazs termszetesen szeretn, ha sszekttetseket tudna fogadni ms hosztoktl, hogy fjldarabokat cserlhessen velk. Ezrt arra kri a NAT-tvlasztt, hogy hozzon ltre megfeleltetst a {10.0.0.1, 3345} s a {138.76.29.7, 5001} cm kztt. (Az 5001-es nyilvnos portszmot az alkalmazs vlasztotta.) A BitTorrent-alkalmazs ezutn meghirdetheti a nyomonkvetjnek (a rsztvev partnerek nyilvntartjnak), hogy a {138.76.29.7,5001} cmen rhet el. Egy BitTorrentet futtat kls hoszt kapcsolatba lphet a trackerrel, amelytl megtudhatja, hogy a mi hosztunk BitTorrent-alkalmazsval a {138.76.29.7,5001} cmen kommuniklhat. A kls hoszt TCP SYN szegmenst tartalmaz csomagot kldhet erre a cmre, amelynek fogadst kveten a NAT-tvlaszt {10.0.0.1, 3345}-re mdostja a csomagban szerepl IP-clcmet s a portszmot, s tovbbtja a csomagot a pldnkban szerepl hosztnak. sszefoglalskppen megllapthatjuk, hogy a UPnP lehetv teszi kls hosztok szmra, hogy adattviteli kapcsolatot kezdemnyezzenek NAT mgtti hosztokkal, akr TCP, akr UDP felelt. A NAT sokig a P2P-alkalmazsok kerkktjnek szmtott; a megoldst a hatkony s robusztus NAT-thidalst megvalst UPnP jelentheti. Knyvnkben sajnos nem tudunk tbb teret szentelni a NAT-nak s a UPnP-nek. A NAT rszletesebb trgyalsa megtallhat a [Huston 2004] s a [Cisco NAT 2007] forrsban.
minden elkldtt datagramhoz idztt is rendel. Az N-edik tvlaszt a hozz berkez -edik datagramrl megllaptja, hogy ppen lejrt a TTL-je. Az tvlaszt az IP elrsainak megfelelen - eldobja a datagramot, s egy az tvlaszt 4.3. tblzat. ICMP-zenettpusok
ICMP-tipus 0 3 3 3 3 3 3 4 8 9 10 11 12 Kd 0 0 1 2 3 6 7 0 0 0 0 0 0 Lers echo reply (ping-re adott vlasz) destination network unreachable (clhlzat nem elrhet) destination host unreachable (clhoszt nem elrhet) destination protocol unreachable (clprotokoll nem elrhet) destination port unreachable (clport nem elrhet) destination network unknown (clhlzat ismeretlen) destination host unknown (clhoszt ismeretlen) source quench (torldskezels) echo request (visszhangkrs") router advertisement (tvlaszt-hirdets) router discovery (tvlaszt-felderts) TTL expired (TTL lejrt) IP header bad (IP-fejrsz hibs)
nevt s IP-cmt is tartalmaz (11-es tpus, 0-s kd) figyelmeztet ICMP-zenetet kld a forrsnak. 1 A forrs az ICMP-zenet berkezsekor a hibajelzst kivlt prbacsomag kikldsekor elindtott idzt aktulis rtkbl kiszmtja a krbejrsi idt, az zenet tartalmbl pedig megtudja, melyik az -edik tvlaszt a clhoz vezet ton. Honnan tudja a Traceroute-forrs, hogy mikor kell abbahagynia az UDPszegmensek kldst? Ne felejtsk el, hogy a forrs minden egyes datagram kldsekor eggyel nveli a TTI.-mez rtkt! Ezzel elri, hogy lesz egy olyan datagram, amely vgl is elri a cl- hosztot. Mivel azonban a datagramban lv UDP-Szegmens olyan portra rkezik be, amelyen nem mkdik szolgltats, a clhoszt egy (3-as tpus, 3-as kd) port unreachable (vagyis port nem elrhet) ICMP-zenetet kld a forrsnak. Ebbl az zenetbl tudja meg a forrs, hogy mr nem kell tbb prbacsomagot kldenie. (A szabvnyos Traceroute
1
tvlaszt IP-cme az ICMP-zenetet szllt IP-datagram fejrsznek feladmezjben tallhat meg; az tvlaszt nevt a Traceroute program a DNS segtsgvel hatrozza meg, az tvlaszt IP-cme alapjn.
A fordt megjegyzse: Eurpban a R1PE szerint valamikor 2009 s 2011. kztt fogynak cl az
program hrom azonos TTL- csomagbl ll sorozatokat kld, azaz minden TTLrtk- re hrom krbejrsi idt kap). A forrshoszt a fent emltett mdon megtudja a kzte s a clhoszt kztti tvlasztk szmt s cmt, valamint a kettejk kztti krbejrsi idt. Fontos tudni, hogy a Traceroute kliensprogramnak kpesnek kell lennie arra, hogy megadott TTL-rtkekkel rendelkez UDP-datagramok ltrehozsra utastsa az opercis rendszert, s arra, hogy az opercis rendszer jelzst fogadja, ha ICMPzenetek rkeznek. Most, hogy az olvas megrtette a Traceroute mkdst, lehet, hogy vissza kvn trni hozz s egy kicsit jtszani kvn vele.
Fkuszban a biztonsg
tzfalak s az IDS-ek (intrsion detection system; tmadsjelz, illetktelen behatolst jelz vagy egyszeren behatolsjelz rendszer).
vdekezsi mechanizmus terjedt el szles krben: a Hlzatzemeltetknt elszr taln tzfalat teleptene hlzata s az internet kze. (Ma napsg a hozzfrsi tvlasztk tbbsge rendelkezik tzfal funkcikkal.) A tzfalak tvizs gljk a datagramok s szegmensek fejrszmezit, s a gyans datagramokat kiszrik: nem tovbbtjk ket a bels hlzatba. A tzfal bellthat pldul gy, hogy blokkolja az sszes 1CMP echo request csomagot, amivel megakadlyozza, hogy a tmad egyszer ping-psztzssal feldertse az alhlzaton bell elrhet hosztokat. A tzfalak adott forrs- s cl-IPcm, illetve portszm csomagokat is ki tudnak szrni. Ezen tlmenen ltalban arra is kpesek, hogy nyomon kvessk a TCP-sszekttetseket; gy ki tudjk szrni azokat a datagramokat, amelyek nem tartoznak egyetlen rvnyes, engedlyezett sszekttetshez sem. Az IDS ms termszet vdelmet nyjt. Az ltalban a hlzat hatrn elhelyezked rendszer nem csak a fejrszmezket, hanem az adatmezt (belertve az alkalmazsi rtegbeli adatokat) is megvizsglja, amit az angol szhasznlatban deep packet inspection"-nek neveznek; magyarul szoks nha mlyrehat csomagellenrzsnek vagy csomagtartalomvizsglatnak" hvni. Az IDS olyan - folyamatosan aktualizlt - adatbzissal rendelkezik, amely nyilvntartja a tmads rszeknt ismertt vlt csomagmintkat. Az IDS a csomagok thaladsakor azt vizsglja, hogy tall-e illeszkedst a fejrszmezk, illetve az adatmez s az adatbzisban nyilvntartott mintk kztt. Ha tall, riaszt. Az
vdelmi rendszer (intrsion prevention system, IPS) hasonlt az IDS-hez, attl azonban
abban klnbzik, hogy nemcsak riaszt, hanem blokkolja is a gyans csomagokat. A 8. fejezetben rszletesebben is foglalkozunk majd a tzfalakkal s az IDS-ekkel. Felvetdik a krds, hogy a tzfalak s az IDS-ek teljes kr vdelmet nyjtanak-e minden fele tmads ellen. Termszetesen nem, hiszen a tmadk mindig j megoldsokkal llnak el, amelyek mintja mg nem ismert. Hredmenyesen hasznlhatk az ismert tmadsok ellen. 1 1 Pv4-es cmek. Ezzel kapcsolatban lsd a RIPE 2007. oktber 29-i kzlemnyt a http://www.ripe.net/ news/community-stalement.html cmen. rdekessg: a RIPE szakemberei annyira ketsgbeej lnek lttk a helyzetet, hogy mg egy dalt is rtak rla, amelyet a YouTube-on jelen sorok rsakor a http:// \vww.youtube.com/watch?v=_y36fG2Oba0 cmre ltogatva hallgathatunk meg. A dal cme The Day
A fordt megjegyzse: Kicsit pontosabban arrl van sz, hogy az elszr 1979-ben specifiklt,
majd az 1990-ben megjelent RFC 1190-ben s az 1995-ben kiadott RFC 1819-ben tdolgozott ST, az Internet Stream Protocol datagramjainak fejrsze hasznlta az 5-s szmot a verzimezben (ahol az IPv4-es datagramok esetben 4-es, az IPv6-os datagramoknl pedig 6-os szm ll). Ha az IPv4 utd jnak sznt protokoll az 5-s szmot kapta volna, a datagramjait nehz lelt volna megklnbztetni az ST-datagramoktl; ezrt volt szksg az 5-s verziszm tugrsra. A kt emltett RFC a http://tools . ietf.org/html/rfcll90 illetve a http://tools.ietf.org/html/rfcl819 cmen rhet el. Az ST protokollt sohasem hasznltk.
internethez csatlakoz egyre jabb alhlzatok s csompontok egyedi cmekkel val elltsra. Az j, IPv6-protokoll kifejlesztsnl elsrend szempont volt a nagyobb cmtr ltrehozsa, de a fejlesztk arra is trekedtek, hogy az IPv4-gyel szerzett tapasztalatokat hasznostsk s kijavtsk az vek sorn megfigyelt hibkat. Az, hogy mikorra fogynak el vgrvnyesen az IPv4-cmek, komoly vitk trgya volt. Az IETFezzel foglalkoz Address Lifetime Expectation nev munkacsoportjnak kt egymstl eltr, mrvad vlemnye szerint ez 2008-ban, illetve 2018-ban kvetkezik majd be [Solensky 1996). Az American Registry fr Internet Numbers (ARIN) 1996-ban kiadott jelentse (ARIN 1996] szerint az IPv4 Aosztly cmeinek 100 szzalka, B osztly cmeinek 62 szzalka, C-osztly cmeinek 37 szzalka mr kiosztsra kerlt; erre vonatkoz jabb adatok a (Hain 2005] jelentsben tallhatk. Ezek a becslsek s adatok ugyan arra engedtek kvetkeztetni, hogy az IPv4-cmtr kimerlse meg egy ideig vrat magra, de az is vilgoss vlt, hogy egy j protokoll bevezetshez is idre lesz szksg. Ezt felismerve 1994-ben elindult az jgenercis IP, a Next Generation IP (IPng) fejlesztse [Bradner 1996; RFC 1752], ami vgl az IP 6-os verzijnak, az lPv6-nak a specifikcijhoz [RFC 2460] vezetett. (Gyakran feltett krds, hogy mit trtnt az IPv5-tel. Az eredeti tervek szerint az ST-2 protokollbl lett volna az IPv5, 2 de a ksbbiekben az RSVP-t rszestettk elnyben, s az ST-2 a sllyesztbe kerlt. Az RSVP-vel a 7. fejezetben foglalkozunk majd). Az IPv6-rl nagyon j ttekintst ad a The IP Next Generation Homepage [Hinden 2007] s Huitema knyve [Huitema 1998].
hagyomnyosabb alkalmazsok, mint amilyen a fjltvitel vagy az e-mail nem minslnnek annak. Elfordulhat, hogy egy nagy priorits felhasznl (pldul valaki, aki felrat fizet a jobb szolgltatsminsgrt) forgalmt szintn folyamknt kezelik. Vilgosan ltszik teht, hogy az IPv6 fejleszti elbe mentek annak az ignynek, hogy a folyamok kztt dif ferencilni kell majd, ha a folyam fogalmt nem is hatroztk meg pontosan. Az IPv6 fejrszben is tallhat egy 8 bites mez a forgalmi osztly megjellsre, amely az 1 Pv4 TOS-mezjhez hasonlan arra hasznlhat, hogy az adott folyamon bell egyes datagramok elsbbsget kapjanak, illetve, hogy egyes alkalmazsok (pldul az 1CMP) datagramjai prioritst lvezzenek ms alkalmazsok (pldul a Usenet news) datagramjaival szemben. A fentieknek megfelelen, ha a 4.23. brt sszehasonltjuk a 4.13. brval, egyrtelmen lthatjuk az IPv-datagram egyszerbb, hatkonyabb szerkezett. Az IPv6-data- gram az albbi mezket tartalmazza: Verziszm (version). Ez a 4 bites mez az IP verziszmnak azonostja, ami az IPv6 esetben nem meglep mdon a 6-os. Fontos tudni, hogy ha ebbe a mezbe 4-est runk, nem kapunk rvnyes IPv4-es datagramot (ami nagy kr, mert nagyban megknnyten az tllst az IPv4-rl az IPv6-ra, ahogy ezt a ksbbiekben ltni fogjuk).
32 bit 1 1 Verziszm Forgalmi osztly Adatmez hossza Folyamcmke Kvetkez fejrsz tszakasz-korlt Forrscm (128 bit) Clcim (128 bit) Adat
Forgalmi osztly (traffic elss). Ez a 8 bites mez hasonlt az IPv4-datagramok TOS-mezejhez. Folyamcmke (flow label). Ezt a 20 bites mezt a datagramok adott folyamnak az azonostsra hasznljk a fentebb lert mdon. Hasznos adat hossza (payload length). Ez az eljel nlkli egsz szmknt rtelmezett 16 bites rtk az IP-datagramban az lland hosszsg 40-bjtos fejrszt kvet bjtok szmt adja meg. - Kvetkez fejrsz (next header). Ez a mez azt adja meg, hogy az adott IPdatagram tartalmt (az adatmezt) melyik szlltsi rtegbeli protokollnak kell tovbbadni (pldul a TCP-nek vagy az UDP-nek). Ez a mez ugyanazokat az rtkeket hasznlja, mint az IPv4 fejrszben szerepl protokollmez. tszakaszkorlt (hop limit). Ennek az IPv4 TTL-mezjvel analg meznek az rtkt a datagramot tovbbt minden egyes tvlaszt eggyel cskkenti. Ma a mez rtke nullra cskken, az tvlaszt eldobja a datagramot. Forrs- s clcmek. A 128 bites IPv6-cmek klnbz formtumai
megtallhatk az [RFC 4291] forrsban. Adatok. Ez a mez tartalmazza az lPv6-datagram ltal szlltott hasznos adatot, amelyet a rendszer a cl elrsekor eltvolt az IP-datagrambl s tovbbad a kvetkez fejrszre mutat mezben megadott protokollnak. A 4.23. brn bemutatott lPv6-datagrani formtumt az IPv4-datagram formtum val (4.13. bra) sszehasonltva megllapthatjuk, hogy az albbi mezk hinyoznak az IPv6-datagramokbl:
engedlyezi a datagramok darabolst s jbli sszerakst, ez a mvelet a kztes tvlasztkon nem hajthat vgre. Az tvlaszt eldobja azt a berkez csomagot, amely tl nagy ahhoz, hogy tovbbthat legyen a kimen adatkapcsolaton, s egy Packet Too Big" (a csomag tl nagy) ICiMPhibazenetet kld a feladnak. 1 A felad ezt kveten kisebb IP-datagramokba csomagolva kldheti el jra az adatokat. A darabols s az jbli sszeraks sok idt vesz ignybe; az tvlasztkbl a vgrendszerekbe trtn thelyezse felgyorstja az IP-csomagok tovbbtst a hlzatban. Fejrsz ellenrz sszege. Mivei a szlltsi rtegbeli s az adatkapcsolati rtegbeli protokollok (a TCP s az UDP, illetve pldul az Ethernet) maguk is kpeznek ellenrz sszegeket, az IP fejleszti joggal rezhettk gy, hogy ez a funkci a hlzati rteg esetn elhagyhat. Lthat teht, hogy ebben az esetben is az IP-csomagok gyors feldolgozsa volt az elsrend szempont. Emlkezznk csak vissza az !Pv4 trgyalsakor elmondottakra (4.4.1. alfejezet): mivel az IPv4-es fejrsz (hasonlan az IPv6 tsza kaszkorlt mezejhez) tartalmaz egy TTL-mezt, minden tvlasztnl jra kell szmolni a fejrsz ellenrz sszegt, ami a darabolshoz s az jbli sszerakshoz hasonlan megnveli a csomagok feldolgozsnak idejt.
/\
fordt megjegyzse: Ehhez hasonl rtelm zenet az IPv4-es ICMP-ben is van: Destination
a Dl 7 (dont a fragment vagyis ne Ha darabold) emiatt jelzbittel megtilthatjuk nem az
un- reachable, fragmentation needed (a cl nem elrhet, darabolsra lenne szksg). Az IPv4 egyik fejrszbitjvel, tvlasztknak, hogy csomagot feldaraboljk. valamelyik tvlaszt tudja
kzbesteni a csomagot - mert az nagyobb, mint ami a kvetkez tszakaszon szllthat lenne akkor az imnt emltett hibajelzst kapjuk.
Opcik. Az opcik mez mr nem szerepel ugyan a szabvny IP-fej rszben, de nem is tnt el egszen. A kvetkez fejrszre mutat mez ugyanis az opcik mezre is mutathat, azaz az IP-csomagon bell a TCP-, illetve UDPprotokollfejrszeken kvl opcik mez is lehet a kvetkez fejrsz. Az opcik mez eltvoltsnak ksznheten az IPv fejrsznek hossza lland, minden esetben 40-bjt. A 4.4.3. alfejezetben emltettk, hogy az ICMP-t az IP-csompontok nem csak hibajelzsre, hanem korltozott mrtkben adattvitelre is hasznljk (pldul a ping-zenetre adott echo vlasz nem jelez hibt). Az IPv6 szmra az ICMP egy j verzijt is specifikltk, az RFC 4443-ban. Az ICMPv a meglv zenettpusok s kdok defincijnak mdostsn tlmenen kt j zenettpussal s kddal is bvtette a vlasztkot, amit az IPv j funkcii tettek szksgess. Az egyik a Packet Too Big (tl nagy csomag), a m sik pedig az unrecognized IPv6 options
(ismeretlen IPv-opcik) hibakd. Az ICMPv az internet csoportkezel protokolljnak (Internet Group Management Protocol, IGMP) funkciit is magba foglalja. Az IGMP (amellyel a 4.7. alfejezetben foglalkozunk majd) ke zeli a hosztok csatlakozst a multicast csoportokhoz, illetve az ezekbl val kilpsket. Az IGMP az IPv4-ben nll protokoll volt.
tudniuk hatrozni, hogy egy msik csompont tmogatja-e az IPv6-ot, vagy csak az IPv4-et. Ez a problma megoldhat a DNS segtsgvel (lsd 2. fejezet): megtehetjk, hogy a DNS-be ugyanahhoz a nvhez Pv6-os s IPv4-es cmet is bejegyznk aszerint, hogy az adott nven elrhet szmtgp melyik protokollkszletet tmogatja. Amennyiben a lekrdezst kld DNS-kliens csak az IPv4-et tmogatja, meg sem kell kapnia az IPv-os cmet a DNS-szervertl a vlaszban. A ktprotokollos megoldsnl IPv4-datagramot kell hasznlni, ha a kld s a fogad kzl az egyik csak az IPv4-et tmogatja. Ez ahhoz vezethet, hogy kt IPv6ot tmogat csompont vgeredmnyben szintn IPv4-datagramokat kld egymsnak, mint a 4.24. brn bemutatott pldnkban. Ttelezzk fel, hogy az A
csompont tmogatja az IPv6-ol, s IP-datagramot akar kldeni az F csompontnak, amely szintn tmogatja az IPv6-ot. Az A s B csompontok kldhetnek egymsnak IPv6-os datagramot, de a B csompont mr IPv4-es datagramot kell, hogy kldjn C-nek. Az IPv-datagram adatmezje min den tovbbi nlkl tmsolhat az IPv4-datagram adatmezjbe, s a megfelel cmmegfeleltets sem jelent problmt. Az IPv6-nak az IPv4-be trtn konverzijnl azonban lesznek olyan IPv6-mezk, amelyeknek nincs megfelelje az IPv4-datagramban (ilyen pldul a folyamazonost mez), s gy az azokban lv adatok elvesznek. Hz pldnkban azt jelenti, hogy br F. s F kldhetnek egymsnak IPv6-datagramokat, az E-nek D ltal kldtt IPv4-datagram mr nem tartalmazza az A ltal kldtt eredeti IPv-datagram sszes mezjt. Az RFC 4213 bemutatja a ktprotokollos megolds alagt tpus tvitelknt (tunneling) ismert alternatvjt is. Az alagt tpus tvitel lehetv teszi, hogy pldnknl maradva - K megkapja az A ltal kldtt teljes IPv6-datagramot. A tunneling az albbi mechanizmusra pl: Ttelezzk fel, hogy kt IPv6-os csompont (pldnkban mondjuk a B s az E) IPv-datagramokkal akar egymssal kommuniklni, de IPv4-tvlasztkon keresztl kapcsoldnak egymshoz. A kt IPv6-tvlaszt kztt elhelyezked IPv4-tvlaszt- kat tekintjk alagtnak (tnnl) a 4.25. brn bemutatott mdon. Az alagt kld vg nl lv IPv6-os csompont (pldul a B) az IPv6-datagram teljes tartalmt beleteszi egy IPv4datagram adatmezjbe, majd ezt a datagramot az alagt fogad vgnl lv IPv6-os csompontnak (mondjuk K-nek) cmezve elkldi az alagt els csompontjnak (mondjuk C-nek). Az alagtban lv IPv4-tvlasztk ezt a datagramot az sszes tbbi datagramhoz hasonlan egyms kztt tovbbtjk, tudomst sem szerezve arrl, hogy ez az lPv4-data- gram egy teljes IPvdatagramot tartalmaz. Az alagt vgn lv IPv6-os csompont cm-
84
4. A HLZATI RTEG
Forrs: A Cl: F
Forrs: A Cl :F
adatok adatok
Df-nek: IPv4
E f-nek: IPv6
zettknt megkapja az IPv4-datagramot, megllaptja, hogy az egy IPv6-datagramot tartalmaz, majd a kinyert IPv6-datagramot ugyangy tovbbtja, mintha azt egy vele kzvetlen kapcsolatban ll szomszdos IPv6-os csomponttl kapta volna. Befejezsl megjegyezzk, hogy az IPv6 bevezetse kezdetben nmi ellenllsba tkztt [Lawton 2001), de az utbbi idben lthatan felgyorsult. Az Egyeslt llamok igazgatsi s kltsgvetsi hivatala (Office of Management and Budget, OMB) 2008 jniusra rta el az IPv6-ra val tllst. Az IP-t tmogat telefonok s ms hordozhat eszkzk elterjedse is hozzjrult ahhoz, hogy az IPv szles kr alkalmazsa mr nem vrat magra sokat. Eurpban a Third Generation Partnership Program [3GPP 2007) rtelmben az IPv lesz a mobil multimdia szabvnyos cmzsi mdja. Az IPv jvje biztosnak lt szik, annak ellenre, hogy a kidolgozst kvet els tz vben nemigen terjedt el. Tbb vtizedbe telt, mg napjaink immr csaknem fl vszzada bevlt telefonszm-rendszere vgre meghonosodott, s eddig jele sincs annak, hogy el fog tnni a sllyesztben. Az IPv esetben is ilyesmire szmthatunk: lass trhdts, amelyet hossz alkalmazs kvet. Brian Carpenter, az Internet Architecture Board (IAB) korbbi elnke 11AB 2007] s tbb IPv6-tal kapcsolatos RFC szerzje a kvetkezket mondta: Mindig gy tekintettem erre, mint egy 1995-ben kezddtt 15 ves folyamatra [Lawton 2001]; eszerint mr tl vagyunk az t ngytdn! Az eddigi tapasztalatok alapjn leszrhetjk azt a tanulsgot, hogy rettenetesen nehz megvltoztatni a hlzati rtegbeli protokollokat. Az 1990-es vek elejtl fogva szmos j hlzati rtegbeli protokollrl lltottk mr, hogy forradalmastani fogjk az interneLogikai nzet
IPv6 IPv6 IPv6
IPv6
Alagt
Fizikai nzet
IPv6 IPv6 , IPv4
Folyam:
Folyam: X Forrs: A
4.4. Az
85
A 8-nek: IPv6
adatok
tt, de eddig alig-alig terjedtek el. Ezek kz tartozik az IPv6, de tallunk kzttk tb- beskldses (multicast) protokollokat (4.7. alfejezet) s erforrs-lefoglal protokollokat (7. fejezet) is. j protokollok bevezetse a hlzati rtegben egy hz alapjnak a kicserlshez hasonlthat - nehz megcsinlni a teljes hz lebontsa, vagy legalbbis a lakk ideiglenes kiteleptse nlkl. Ezzel szemben az alkalmazsi rtegben mr volt plda j protokollok gyors bevezetsre. Klasszikus pldnak szmt a web, az azonnali zenetklds (instant messaging, 1M) s a P2P-fjlmegoszts, de ide sorolhatjuk a hang- s video- letltst s a hlzati jtkokat is. Mivel ilyenkor a meglev alapokon nem kell vltoztat ni, ha valaki valami igazn jt tall ki, hamarosan kvetkre tall. sszefoglalskppen megllapthatjuk, hogy a jvben az internet hlzati rtegben is lesznek vltozsok, de ezekre sokkal tovbb kell vrni, mint az alkalmazsi rtegbeli vltoztatsokra.
mezket csatol hozz, majd az gy keletkezett hasznos adatokat becsomagolja egy kznsges IP-datagramba. (Az eljrs a gyakorlatban ennl kicsit bonyolultabb; ezt a 8. fejezetben ltjuk is majd.) Ezek utn a kld hoszt az inter neten elkldi a datagramot a clhosztnak, ahol az IPsec visszafejti a szegmenst, s immr titkostatlanul tovbbadja a szlltsi rtegnek. Az IPSec-viszony az albbi szolgltatsokat nyjtja: IP-datagramok adatmezjnek titkostsa. Azt kveten, hogy a kld hoszt megkap egy szegmenst a szlltsi rtegtl, az IPsec titkostja az adatmezt, amelyet ezutn kizrlag a fogad hoszt IPSec-megvalstsa kpes visszafejteni. Adatintegrits. Az IPsec segtsgvel a fogad hoszt meggyzdhet arrl, hogy a fejrszmezkn s a titkostott adatmezn a forrs s a cl kztti ton semmilyen mdosts nem trtnt. Forrshitelests. Ha a hoszt egy megbzhatnak tartott kulccsal alrt (lsd 8. fejezetet) IPscc-datagramot kap, akkor biztos lehet abban, hogy a datagramban szerepl forrs IP-cm a datagram valdi feladj. Ha kt hoszt kztt ltrejtt az IPsec-viszony, akkor valamennyi egymsnak kldtt TCP- s UDP-szegmenst titkostjk s hitelestik. Az IPsec teht a kt hoszt kztti adatcsere egszre kiterjed biztonsgot nyjt az sszes hlzati alkalmazs esetben. A klnbz intzmnyek az IPsec segtsgvel biztonsgos adatcsert bonyolthatnak le a nem-biztonsgos nyilvnos internet felett. Vegynk pldul egy vllalatot, amelynl sok az utaz zletkt, s mindegyik vllalati laptopot hasznl. Ttelezzk fel, hogy gyakran kell hozzfrnik a vllalati telephely valamelyik szervern trolt rzkeny vllalati adatokhoz, s, hogy egymsnak is ilyen adatokat tartalmaz dokumentumokat kell kldenik. Mikppen szavatolhat ezek biztonsga az IPsec-kel? Egyszer: lltsuk be az IPsec-et a szerveren s az sszes laptopon, gy ezen szmtgpek egyms kztti kommu nikcija mindig biztonsgos lesz.
fogadig. Meg fogjuk ltni, hogy az tvlaszts (routing) elsdleges feladata egy j t (ms terminolgik szerint tvonal) meghatrozsa a forrs s a cl kztt. A hosztok ltalban kzvetlenl egy-cgy tvlaszthoz, a hoszt alaprtelmezett tvlasztjhoz (default router) csatlakoznak (amelyet a hoszt first-hop routernek, legkzelebbi tvlasztjnak is szoks nevezni). A hoszt ltal kldtt sszes (nem a helyi hlzatba szl) csomag elsknt a hoszt alaprtelmezett tvlasztjhoz kerl. A forrshoszt alaprtelmezett tvlasztjt forrstvlasztnak (source router), a clhosztt cltvlasztnak (destination router) fogjuk hvni. A csomagnak a forrshoszttl a clhosztig val eljuttatsa lnyegben a forrstvlaszttl a cltvlasztig val eljuttatst jelenti; ebben a fejezetben erre fordtjuk majd a legnagyobb figyelmet. Az tvlaszt algoritmus dolga teht az, hogy egy tbb tvlasztbl s adatkapcsolatbl ll rendszerben j utat talljon a forrs- s a cltvlaszt kztt. ltalban a legkisebb kltsggel jr utat tekintik j tnak. A gyakorlatban azonban ms, pldul zletpolitikai szempontok is szerepet jtszhatnak. Az olyan szablyok, mint pldul hogy az Y intzmny x tvlasztja ne tovbbtsa a Z intzmnybl szrmaz csomagokat, bonyolthatjk az elvben egyszer s elegns algoritmusokat, amelyek elmletre pl a mai hlzatok tvlasztsi gyakorlata. Az tvlaszt feladatokat grlbkkal szoks megfogalmazni. Emlkezznk arra, hogy a G = (N,) grf (graph) egy N csomponthalmaz s egy E lhalmaz egyttese, kiegsztve egy olyan relcival, amely megmondja, mely csompontprok kztt halad l (a relci az iV csomponthalmaz nmagval vett direktszorzatnak egy rszhalmaza; ennek a rszhalmaznak azok a csompontprok az elemei, amelyek kztt l halad). A hlzati rtegbeli tvlaszts problmjt gy modellezhetjk grfokkal, hogy a grf csompontjai felelnek meg az tvlasztknak (vagyis azoknak a pontoknak, ahol csomagtovbbtssal kapcsolatos dntseket hozunk), a csompontokat sszekt lek pedig az tvlasztk kztti fizikai adatkapcsolatokat jelkpezik. A 4.26. brn lthat egy szmtgp-hlzat grfalap meg jelentse. A gyakorlatban elfordul hlzatok trkpeit bemutat grfok a [Dodge 2007, Cheswick 2000| forrsokban tallhatk; a [Zegura 1997, Faloutsos 1999, Li 2004] forrsok azt vizsgljk, hogy a klnbz grfalap modellek mennyire jl kpezik le az internetet. A 4.26. brn lthat, hogy az lhez kltsget is lehet rendelni. Az lhez kapcsold kltsg sszefgghet a hozz tartoz adatkapcsolat fizikai hosszval (pldul egy transzatlanti kapcsolatnak nagyobb lehet a kltsge, mint egy rvid tvolsg fldfelszni kapcsolatnak), az adatkapcsolat tviteli sebessgvel, vagy az adatkapcsolat hasznlatval kapcsolatos pnzben mrt kltsggel. A tovbbiakban adottnak tekintjk az l-kltsgeket, s nem trdnk azzal, milyen fizikai mennyisget tkrznek. Brmely E-beli {x,y) l esetben c(x,^)-nal jelljk az * sy csompont kztti l kltsgt. Ha az l nem eleme -nek, akkor definci szerint c(x,y) = Kizrlag irnytatlan grfokkal foglalkozunk (azaz olyan gr fokkal, amelyek lei irnytatlanok), teht az (x,y) l azonos az ( y,x) llel, s c(x,y) = c(ytx). Egyy csompontot akkor s csak akkor tekintjk a* szomszdjnak, ha (*,;') eleme E-nek. Mivel a grfalap modellben az egyes lekhez kltsg tartozik, az tvlaszt
algoritmusnak magtl rtetden arra kell trekednie, hogy megtallja a forrsok s clok kztti legalacsonyabb kltsg utakat. A feladat preczebb megfogalmazshoz idzzk fel, hogy egy t (path) a G = (N,) grfban a csompontok olyan (*,, x2,..., x) sorozata, amelyben
minden egyes (xp ]txp) pr eleme E-nek. Az (xx, x2,..., x) t kltsge az utat kpez lek kltsgeinek sszege, azaz c(x,,x 2 ) + c(xytxy) + ... + c(xp {,x^). Brmely x s y csompont kztt ltalban tbb t is van, s mindegyiknek meghatrozhat a kltsge. Az sszes lehetsges t kztt van egy vagy akr tbb minimlis kltsg t (least-cost path). A minimlis kltsg tvonal megtallsnak problmja teht a kvetkez: tall juk meg azt az tvonalat, amely mentn a kltsgek sszege a legkisebb. A 4.26. brn v zolt pldban az u forrscsompont s a w clcsompont kztti legalacsonyabb kltsg t az (11, x,y, w), amelynek a kltsge 3. Vegyk szre, hogy ha grf sszes lnek megegyezik a kltsge, akkor a legalacsonyabb kltsg t egyben a legrvidebb t (shortest path) is. (A legrvidebb t kt csompont kztt az, amelyik a legkevesebb elet tartalmazza.) Egyszer gyakorlatknt prbljuk megtallni a 4.26. bra u s z csompontja kztti legalacsonyabb kltsg utat, s gondolkozzunk el azon, hogyan is hatroztuk meg! A legtbb emberhez hasonlan valsznleg gy jrtunk el, hogy az brn nyomon kvettnk nhny u s z kztti utat, majd valahogy meggyztk magunkat arrl, hogy az ltalunk vlasztott tvonal az sszes kztt a legalacsonyabb kltsg. De vajon mind a 17 lehet sges utat leellenriztk? Nem valszn! Ebben az esetben a kzpontostott tvlaszt algoritmus mintjra jrtunk el: az tvlaszt algoritmust egyetlen helyen (a fejnkben) futtattuk, mikzben teljes mrtkben ismertk a hlzatot. Az tvlaszt algoritmusokat osztlyozhatjuk aszerint, hogy azok globlisak vagy decentralizltak. A globlis tvlaszt algoritmus (global routing algorithm) a globlis hlzati jellemzk teljes ismeretben szmtja ki a forrs s a cl kztti legalacsonyabb kltsg utat. Ez azt jelenti, hogy az algoritmus az sszes csompont kztti sszekttetst s az sszes adatkapcsolat kltsgt bemen adatknt kezeli, vagyis az algoritmusnak a szmtsok megkezdse eltt valahogy hozz kell jutnia ezekhez az adatokhoz. A sz mts maga
futtathat egyetlen helyen (kzpontostott globlis tvlaszt algoritmus) vagy egyidejleg tbb helyen; a globlis tvlaszt algoritmust elssorban az kln bzteti meg a decentralizlttl, hogy az sszekttetsekre s az adatkapcsolati kltsgekre vonatkoz minden adatot ismer. A gyakorlatban a globlis llapotadatok birtokban lv algoritmusokat gyakran nevezik kapcsolatllapot-alap tvlaszt algoritmusnak (link-state [LS] algorithm), mivel az algoritmusnak ismernie kell a hlzat sszes adatkapcsolatnak kltsgt. Az LS-algoritmusokkal a 4.5.1. alfeje- zetben foglalkozunk majd. A decentralizlt tvlaszt algoritmus (decentralized routing algorithm) iteratv mdon s az adatkapcsolatokra vonatkoz rszleges informcik klcsns cserjvel szmtja ki a legalacsonyabb kltsg utat. A csompontok nem ismerik a hlzat sszes kapcsolatnak kltsgt, csak a hozzjuk kzvetlenl csatlakoz adatkapcsolatokt. A legalacsonyabb kltsg t meghatrozsa a szomszdos csompontokkal trtn folyamatos adatcsere s az ezen alapul iteratv szmtsi folyamat eredmnye. A 4.5.2. alfejezetben a decentralizlt tvlaszt algoritmusok kzl a tvolsg- vektor-alap (distance-vector, DV) algoritmusokkal foglalkozunk majd. Itt minden csompont egy a hlzat sszes csompontjt figyelembe vev tvolsgvektort kezel, amely az sszes csomponthoz men tvonal becslt kltsgt (tvolsgt) tartalmazza. Az tvlaszt algoritmusok aszerint is osztlyozhatk, hogy statikusak vagy dinamikusak. A statikus tvlaszt algoritmusok (static routing algorithms) esetben az utak idben nagyon lassan vltoznak, tbbnyire emberi beavatkozs eredmnyeknt (pldul valaki manulisan mdostja egy tvlaszt tovbbttbljt). A dinamikus tvlaszt algoritmusok (dynamic routing algorithms) a hlzati forgalom, illetve topolgia vltozsaihoz igazodva gyorsan vltoztatjk az utakat. A dinamikus algoritmus futtathat periodikusan, vagy a topolgia, illetve az adatkapcsolati kltsgek vltozsaihoz kzvetlenl igazodva. A dinamikus algoritmusok rzkenyebben reaglnak a hlzati vltozsokra, azonban fogkonyabbak az olyan problmkra, mint az tvonalmenti hurokkpzds, s az egymst kvet gyors tvllsok (toszcillcik). Az tvlaszt algoritmusokat egy harmadik szempont szerint osztlyozva beszlhetnk terhelsre rzkeny, illetve terhelsre nem rzkeny algoritmusokrl. A terhelsrzkeny algoritmusok (load-sensitive algorithms) esetben az adatkapcsolati kltsgek az adott adatkapcsolat pillanatnyi torldsi szintjnek fggvnyben dinamikusan vltoznak. Ha a pillanatnyilag torldsnak kitett adatkapcsolathoz hozzrendelt kltsg magas, az tvlaszt algoritmus inkbb olyan utakat fog vlasztani, amelyek elkerlik ezt az adat- kapcsolatot. A kezdeti A R PA net terhelsrzkeny tvlaszt algoritmusokat hasznlt [McQuillan 19801, ami szmos problmt okozott [Huitema 1998]. Napjainkban az inter net terhelsrzketlen (load-insensitive) algoritmusokat hasznl (ilyen a RIP, az OSP1 1 1 D(v): a forrscsompont s a v clcsompont kztt az algoritmus jelenlegi itercijig tallt minimlis kltsg t kltsge; p(v): az elz csompont (v szomszdja) a forrs s v kztti minimlis kltsg ton;
s a BGP); az adatkapcsolat kltsge nem tkrzi egyrtelmen az adatkapcsolat (pillanatnyi vagy mltbli) torldsi szintjt.
1 2 3 4 5 6
7
Initialization:
N' = {u> fr all nodes v if v is a neighbor of u then D ( v ) = c ( u , v ) else D (v) = oo Loop find w nt in N' such that D ( w ) is a minimum add w to N'
7 8 9
10 update D ( v ) fr each neighbor v and nt in N': 11 D ( v ) = min( D ( v ) , D ( w ) + c ( w , v ) ) 12 / * new cost to v is either old cost to v known 13 least path cost to w plus cost from w to v */ 14 until N ' = N
of
or
Pldaknt szmtsuk ki a 4.26. brn bemutatott hlzat u csompontja s az sszes lehetsges cl kztti minimlis kltsg utakat! A 4.4. tblzat foglalja ssze az algoritmus llal kiszmolt eredmnyeket; a tblzat egyes sorai az algoritmus vltozinak az iterci vgn felvett rtkt adjk meg. Az albbiakban rszletesen is nyomon kvetjk az els lpseket:
Az inicializls sorn az -ti a v, x, s w kzvetlen szomszdaihoz vezet eddig ismert minimlis kltsg utak kltsge rendre 2, 1, illetve 5. Vegyk szre, hogy a w-hez vezet t kltsge 5, mivel ez az u s w kztti kzvetlen t kltsge (a ksbbiekben azonban ltni fogjuk, hogy ltezik ennl alacsonyabb kltsg t is). Az y-hoz s 2-hez vezet utak kltsgt az algoritmus vgtelennek veszi, mivel ezek a csom pontok nem kapcsoldnak kzvetlenl -hoz. Az els iterci sorn olyan csompontokat keresnk, amelyek mg nem elemei az N halmaznak, s kivlasztjuk kzlk azt, amelyhez vezet t kltsge az elz iterci vgn a legalacsonyabb volt. Ez azxcsompont (a hozz vezet t kltsge l);x-et hozzadjuk N-hz. Ezutn vgrehajtjuk az algoritmus 12. sort s minden csomponthoz vezet t D(v) kltsgt a megadott mdon aktualizljuk. A mvelet eredmnyt a 4.4. tblzat 1. lpshez tartoz sorban lthatjuk: a v-hez vezet t kltsge nem vltozott, viszont azt talltuk, hogy a vv csomponthoz az * csomponton t 4 kltsg t vezet, mg eddig csak egy 5 kltsg utat ismertnk (ezt mg az inicializls sorn talltuk). Termszetesen az alacsonyabb kltsg utat vlasztjuk, cs megjegyezzk, ahogy azt is, hogy a w-hez vezet minimlis kltsg ton a w eltti csompont x (nem pedig u, mint eddig). Analg mdon megllaptjuk s megjegyezzk, hogy x-en t y-ba 2 kltsggel juthatunk el. A msodik iterciban az N-n kvli csompontok kzl v-hez s y-hoz tartozik a minimlis kltsg t (a kltsg mind kt esetben 2); ezekkzl nknyesen kivlasztjuk mondjuk y-[ s hozzadjuk az N' halmazhoz, amely gy az u, x, y csompontokat tartalmazza. Ezutn az N-n kivli (v, vv, z) csompontokhoz vezet minimlis kltsg utak kltsgt aktualizljuk az algoritmus 12. sora szerint; az eredmnyek a 4.4. tblzat 2. lpshez tartoz sorban lthatk. s gy tovbb... Az LS-algoritmus vgrehajtst kveten megkapjuk minden egyes csompont eldjt a forrscsomponttl kiindul minimlis kltsg t mentn. Ugyanakkor minden eld eldjt is megkapjuk, s gy fel tudjuk pteni a forrs s az sszes cl kztti teljes utat. A (mondjuk az u) csompont tovbbttblja ezekbl az adatokbl gy llthat el, hogy minden cl esetben troljuk, melyik a kvetkez csompont (next hop) az u s az adott cl kztti minimlis kltsg t mentn. A 4.26. brn bemutatott hlzati topolgia alapjn meghatrozott valamennyi, wbl indul minimlis kltsg t s az u csompont tovbbttblja a 4.27. brn lthat.
Lps 0 1 2 3 4 5 u ux
N'
D(x),p(x) 1,u
D(y),p(y)
oo
D(z),p(z)
OO oo
2,x
Cl Adatkapcsolat
V w X
(u, v) (u, X)
(u, x) (u, x)
(u, X)
y z
4.27. bra. Az u csompont minimlis kltsg tjai s tovbbttblja Mekkora ennek az algoritmusnak a lpsszma? Azaz, n csompont esetn (a forrst nem szmolva) hny szmtst kell elvgezni a legrosszabb esetben a forrs s az sszes cl kztti minimlis kltsg utak megtallshoz? Az els iterci sorn mind az n csompont kzl kell kikeresni azt a legalacsonyabb kltsg w csompontot, amely nem eleme iV-nek. A msodik iterci sorn n - 1 csompontot kell megvizsglnunk a legalacsonyabb kltsg meghatrozshoz, a harmadik sorn n - 2 csompontot, s gy tovbb. Az sszes iterci sorn sszesen ti(n + l)/2 csompontot kell megvizsglni. Ezrt kijelenthetjk, hogy az LS-algoritmus fenti implementcijnak legrosszabb esetben 0{ti2) a lpsszma. (Ltezik ennek az algoritmusnak egy kifinomultabb vltozata, amely egy kupacnak, angolul heapnek nevezett adatstruktra segtsgvel a 9. sorban a minimlis kltsg w-1 nem 0(/?), hanem 0(log ti) lps alatt tallja meg.) Mieltt befejeznnk az LS-algoritmus trgyalst, r szeretnnk mutatni egy lehetsges problmra. A 4.28. brn bemutatott hlzati topolgia esetben minden adatkapcsolat kltsge egyenl az adatkapcsolat terheltsgvel, pldul azrt, hogy a kltsg a vrhat ksleltetst rzkeltesse. Ebben a pldban az adatkapcsolatok kltsgei nem szimmetrikusak, azaz c(u,v) csak akkor egyenl c(v,w)-val, ha az (w,v) adatkapcsolaton szlltott adatok mennyisge mindkt irnyban megegyezik. Pldnkban a z s az A; csompont is ltrehoz egy-egy egysgnyi, v-nek sznt forgalmat, az y csompont pedig egy e nagysg forgalmat kld a rendszerbe, amelynek szintn w a clllomsa. A kezdeti tvlaszts a 4.28. (a) brn lthat; az adatkapcsolatok kltsgei a szlltott forgalom nagysgval arnyosak. Az LS-algoritmus kvetkez vgrehajtsakor az y csompont (a 4.28. (a) brn lthat adatkapcsolat-kltsgekre alapozva) megllaptja, hogy a v-hez az ramutat jrsval megegyez irnyban vezet t kltsge 1, mg az eddig hasznlt, az ramutat jrsval ellenttes irny 1 + e. Jelenleg a minimlis kltsg t y s w kztt teht az ramutat jrsval megegyez irny. Az a: csompont szintn erre az eredmnyre jut (a kltsgeket lsd a 4.28. (b) brn). Az LS-algoritmus kvetkez futsa sorn az A, y s z csompont az ramutat jrsval ellenttes irnyban nulla kltsg w-hez vezet utakat tall; gy aztn mindannyian ezeket az utakat kezdik hasznlni, majd az LS-algoritmus rkvetkez
vgrehajtsakor mind a hrom csompont ismt az ramutat jrsval megegyez irny utakra irnytja forgalmt. Hogyan elzhetk meg az ilyen gyors tvltsok (oszcillcik), amelyek nem csak az LS-algoritmusnl, hanem brmely, torlds- vagy ksleltetsalap adatkapcsolat-kltsget hasznl algoritmusnl is elfordulhatnak? Megoldst jelenthetne az, ha megszabnnk, hogy az adatkapcsolati kltsgek ne fggjenek a szlltott forgalom nagysgtl. Ez azonban elfogadhatatlan, hiszen az tvlaszts egyik clja a slyosan torldott (pldul nagy kslel tets) utak elkerlse. Egy msik megolds az lehetne, ha az LS-algoritmust az tvlasztk
a) Kezdeti tvlaszts
4.28. bra. toszcillcik a torldsrzkeny tvlasztsnl nem egyidejleg futtatnk. Ez sszerbbnek tnik, mert mg ha az egyes tvlasztk azonos idkznknt futtatjk is az LS-algoritmust, akkor is remlhet, hogy kt vagy tbb csomponton fut pldny nem egyezik meg teljesen (mert ms-ms bemeneti adatokkal dolgozik). rdekes mdon azonban a kutatk azt talltk, hogy az internetes tvlasztk egymshoz szinkronizldhatnak [Floyd Synchronization 1994]; vagyis az algoritmusnak az egyes tvlasztkon fut pldnyai sszhangba kerlhetnek, s ez az sszhang fenn is maradhat mg akkor is, ha az tvlasztk kezdetben azonos periodicitssal, de eltr idpontokban futtatjk az algoritmust. Az effle nszinkronizci elkerlsnek egyik mdja az, ha mindegyik tvlaszt vletlenszer idpontokban kldi ki adatkapcsolathirdetseit. Trjnk most t a szintn gyakran hasznlt tvolsgvektor-alap algoritmus trgyalsra!
elosztott. Elosztott abban az rtelemben, hogy minden csompont valamennyi informcit kap egy vagy
tbb kzvetlen szomszdjtl, majd az ezek figyelembevtelvel elvgzett szmtsok eredmnyeit a maga rszrl szintn megosztja szomszdaival. Az iteratv ebben az esetben azt jelenti, hogy ez a folyamat mindaddig folytatdik, amg fennll az informcicsere a szomszdok kztt. (A dolog rdekessge, hogy az algoritmus vgrehajtsa minden kls jel nlkl, nmagtl fejezdik be). Az algoritmus olyan szempontbl aszinkron, hogy nem kell az sszes csomponton szinkronban futnia. Ltni fogjuk, mennyivel rdekesebb s izgalmasabb egy olyan algoritmus, amely aszinkron, iteratv, nterminl s elosztott, mint az elbb trgyalt kzpontostott algoritmus. A DV-algoritmus bemutatsa eltt rdemes foglal koznunk egy a minimlis kltsg utak kztt fennll fontos sszefggssel. Legyen djy) az xs y csompont kztti minimlis kltsg t kltsge. A minimlis kltsgekre igaz a kvetkez, Bellmann-Ford-egyenlet nven ismert sszefggs:
(4.1)
ahol min v az x sszes szomszdjra vett minimum. Ez a magtl rtetd sszefggs az albbi okfejtsre pl: ha az jc-bl v-be val eljutst kveten a vbl a minimlis kltsg ton megynk j'-ba, a teljes t kltsge c(xyv) + dv(y) lesz, s mivel az t els lpsben mindenkppen x valamelyik v szomszdjhoz kell eljutnunk, az x s y kztti t kltsgnek minimuma megegyezik a c(.y,v) + / v (>>) sszeg valamennyi szomszdra vett minimumval. Az egyenlet rvnyessgt ktsgbe vonk kedvrt tegynk prbt a 4.26. b rn szerepl u forrscsompont s z clcsompont esetben! Az u forrscsompontnak hrom szomszdja van: a v, az x s a w csompont. A grf klnfle tjait bejrva knnyen belthat, hogy dl.(z) = 5ydx(z) = 3sdw(z) = 3. Ezeket az rtkeket s a c(w,v) = 2,c(//,.t) = I, c(u,vi) = 5 kltsgeket a (4.1) egyenletbe behelyettestve azt kapjuk, hogy du{z) = min {2 + 5,5 +3,1 + 3} = 4 ami nyilvnvalan igaz, s ami megegyezik a Dijk- stra-algoritmussal kapott eredmnynkkel. Az egyenlet rvnyessgnek eme gyors veri- fikcija remlhetleg eloszlatja a tamskodk ktsgeit; a matematikailag precz bizony tstl eltekintnk. A Bellman-Ford-egyenletnek nem csupn elvi, hanem nagy gyakorlati jelentsge is van: az egyenlet megoldsa szolgltatja ugyanis a bejegyzseket az x csompont tovbbttbljba. Ennek szemlltetsre ttelezzk fel, hogy v 1 egy olyan szomszdos csompont, amelyen t a (4.1) egyenlet rtelmben az y fel vezet t kltsge minimlis. Ebben az esetben az x csompontnak elsknt a v* csomponthoz kell tovbbtania azokat a csoma gokat, amelyeket minimlis kltsg ton szeretne az y csomponthoz eljuttatni. Ezrt az x csompont tovbbttblja a v* csompontot jelli meg soron kvetkez (next hop) t vlasztknt az y clcsomponthoz vezet ton. A Bellman-l ; ord-egyenlet msik jelents gyakorlati haszna az, hogy sejteni engedi a kzvetlen szomszdok kztti kommunikci jellegt a DV-algoritmus vgrehajtsa sorn. A gondolatmenet az albbi: minden* csompont kezdetben rendelkezik a tle az y csomponthoz vezet minimlis kltsg t kltsgre vonatkoz Dx(y) becslssel minden y e N csompontra. Legyen D = [Dx(y):y e N] az * csompont tvolsgvektora, amely az sszes tbbi y e N csompontba vezet t becslt 1 x minden kzvetlen v szomszdjra a kettjk kztti tszakasz c(x,v) kltsge;
kltsgt tartalmaz vektor. A DV-algoritmus vgrehajtsa sorn minden x csompont az albbi tvlasztsi adatokat tartja nyilvn: az .x csompont tvolsgvektora, azaz x-nek az sszes y e N clpontba vezet t kltsgeire vonatkoz becslst tartalmaz D = \Ds(y):y V]; minden v szomszd tvolsgvektora, azaz D = \D (y): y e N]. Az elosztott, aszinkron algoritmus gy mkdik, hogy minden csompont idnknt minden szomszdjnak elkldi sajt tvolsgvektora msolatt. Az x csompont a valamely v szomszdjtl kapott j tvolsgvektort elmenti, s a Bellman-Ford egyenletet felhasznlva az albbi mdon aktualizlja sajt tvolsgvektort:
minden y e N csompontra
l la x tvolsgvektora a mvelet sorn megvltozik, akkor a megvltozott vektort elkldi minden szomszdjnak, amelyek ezt kveten szintn aktualizljk sajt tvolsgvektorukat. Csodval hatros mdon abban az esetben, ha az sszes csompont aszinkron mdon kicserli egymssal tvolsgvektorait, minden L) (y) kltsgbecsls dx(y)-hoz, az a: s az y kztti minimlis kltsg t valdi kltsghez tart (Bertsekas 1991].
1 2 3 4 5 6 7
8
Initialization: forall destinations y in N: = C X not a ( 'Y) t* it y neighbor then c(x,y) = x */ for each neighbor w D w (y) = oo. for all destinations y in N for each neighbor w send distance vector D.= (D v (y): y in N] to w
A
8 9 10
12
loop wait (until I see a link cost change tosome neighbor w or until I receive a distance vector from some neighbor w) for each y in N: D x (y) = min v {c(x,v) + D v (y)} if D (y) changed for any destination y send distance vector Dv = [D v (y): y in N] to all neighbors
11 12 15 13 14
18 19 forever 1
1 1Inicializls:
101
Lthat, hogy a DV-algoritmus futsa sorn az a* csompont akkor aktualizlja becslt tvolsgvektort, ha valamelyik sajt adatkapcsolatnak kltsge megvltozik, vagy ha aktualizlt tvolsgvektort kap valamelyik szomszdjtl. Ahhoz, hogy az x csompont kitlthesse sajt tovbbttbljnak egy adott clra vonatkoz sort, nem azy-hoz vezet legrvidebb t hosszt kell ismernie, hanem azy-hoz vezet legrvidebb t mentn fekv soron kvetkez (next hop) v*(y) tvlasztt! Ez pedig, ahogy vrhat is volt, az a v szom szd, amelyet az algoritmus 14. sorban kerestnk meg; a 14. sorban szerepl kifejezs pont azt fejezi ki, hogy ez az a szomszd, amely az els lloms az y fel vezet legrvidebb ton. (Ha tbb ilyen szomszd is van, akkor brmelyikket tekinthetjk v*(y)-nak). Az A csompont az algoritmus 13-14. sorban minden^clcsompontra meghatrozza v*(y)-1, s aktualizlja tovbbttbljnak y-ra vonatkoz sort. Emlkezznk r, hogy az LS-algoritmus globlis abban az rtelemben, hogy minden csompontnak fel kell trkpeznie a teljes hlzatot ahhoz, hogy a Dijkstra-algoritmust futtathassa. A DV-algoritmus decentralizlt, s nem hasznl globlis adatokat. A csompont csak a kzvetlen szomszdaihoz tartoz kapcsolatok kltsgeit s az ezektl a szomszdoktl kapott adatokat ismeri. Mindegyik csompont aktualizlt rtkekre vr valamelyik szomszdjtl (10-11. sor), majd az aktualizlt rtket alapul vve kiszmtja j tvolsgvektort (14. sor), amelyet elkld szomszdainak (16-17. sor). A gyakorlatban szmos protokoll (gy pldul az internetes RIP s BGP, az ISO IDRP, a Novell IPX s az eredeti ARPAnet) hasznl DV-szer algoritmusokat. A 4.29. bra az bra tetejn bemutatott egyszer hromcsompontos hlzat esetre szemllteti a DV-algoritmus mkdst szinkron mdban, amikor az sszes csompont egyidejleg kap tvolsgvektorokat szomszdaitl, egyidejleg szmtja ki j tvolsgvektort s egyidejleg rtesti szomszdait a tvolsgvektor esetleges vltozsairl. Annak beltst, hogy az algoritmus aszinkron mdban is helyesen mkdik, vagyis akkor is, ha a csompontok egymstl eltr idpontokban vgzik el a fent emltett mveleteket, az olvasra bzzuk. Az bra els oszlopban a hlzat hrom csompontjnak kezdeti tvlaszt tbljt (routing table) lthatjuk (a bal fels sarokban pldul az A csompontt). Az tvlaszt tblkban minden sor egy-egy tvolsgvektornak felel meg. Mindegyik csompont tvlaszt tblja sajt s minden szomszdja tvolsgvektort tartalmazza. gy pldul az A csompont kezdeti tvlaszt tbljnak els sora a D = [Dx (A), Dx {y)> Dx ( z)\ = 0, 2, 7] tvolsgvektor. Ennek a tblnak msodik s harmadik sorban az illetve a z csomponttl legutbb kapott tvolsgvektorok szerepelnek, amelyek kezdeti rtke <*>, mivel az A csompont az inicializls pillanatban mg semmilyen adatot nem kapott az yt illetve a z csomponttl.
8 9 vgtelen ciklus 10 vrjunk (amig valamely w szomszdhoz vezet t kltsge megvltozik vagy 11 amig valamely w szomszdtl tvolsgvektort kapunk) 12 12 minden y e N clcsompontra:
102
4. A HLZATI RTEG
13 15 14 15 18
Dx(y) = minv{c(x,v) + Dv(y)> ha brmely y clcsompont Dx(y) kltsgbecslse megvltozott kldjk el a Dx = [Dx(y): y e N| tvolsgvektort sszes szomszdunknak
103
4. A HLZATI RTEG
Az x csompont tvolsgvektor-tblja
Clig
Clig x y z
X
Clig x y z
o ^
*2
xy z C0T7J
X </\
'2
y
z
Co
2 Tj>
*s\
0 23 2 01 3 10
y z
oo oo o oo oo
cR
7 1 OH
y z
Az y csompont tvolsgvektortblja
N Forrstl VC X
Clig x yz ;
OO OO OCB
Clig x y z \ j*
0 2 7 7 1 0
\L x
Z
Clig x y z 0 2 3
y
z
2 0 1 p y
2 0 1 3 1 0
2 0 jS
OO OO OO
A z csompont tvolsgvektortblja
Clig x y z
Clig x y z / / 027 5 x
* n
//
Clig x y z 'O *
A_^
0 2 3 2 0 1 3 1 0
2 >y z
2 0 1 //
is y
z
Id
4.29. bra. Tvolsgvektor-alap (DV) algoritmus Az inicializlst kveten minden csompont mindkt szomszdjnak elkldi sajt tvolsgvektort, amit a 4.29. brban a tblkat bzol els oszlopbl a tblkat brzol msodik oszlopba mutat nyilakkal jeleztnk. Pldul az x csompont az ^ s a z csompontnak is elkldi Dx = (0, 2, 7] tvolsgvektort. A szomszdai ltal kldtt tvolsgvektorok ismeretben mindegyik csompont jraszmtja sajt tvolsgvektort. Az x csompont az albbi szmtsokat vgzi el:
D(x) = 0
104
4. A HLZATI RTEG
+ 0,7 + 0} = 3
4.5. TVLASZT
ALGORITMUSOK
105
A tblk msodik oszlopa gy minden csompont esetben az adott csompont j tvol sgvektorbl s a szomszdaitl jonnan kapott tvolsgvektorokbl ll. Vegyk szre pldul, hogy az x csompontnl a z csomponthoz vezet minimlis kltsg t kltsgnek becslt Dx(z) rtke 7-rl 3-ra vltozott. Vegyk szre tovbb, hogy x szmra az algoritmus 14. sorban az derl ki, hogy)' a minimlis kltsg utakon a soron kvetkez tvlaszt; vagyis x szmra v*(y) = y s v*\z) = y. Amennyiben egy csompont tvolsgvektora az jraszmts sorn megvltozott, az aktualizlt vektort jbl elkldi szomszdainak, amit a 4.29. brn a tblkat tartalmaz msodik oszlopbl a harmadik oszlopba mutat nyilakkal szemlltettnk. Vegyk szre, hogy csak az x s az csompont kld aktualizlt rtkeket, mivel az y csompont tvolsgvektora nem vltozott. A csompontok az aktualizlt rtkeket felhasznlva jraszmt jk tvolsgvektorukat, s ennek megfelelen aktualizljk tvlaszt tbljukat, amelyek tartalmt a ksrlet vgn a 4.29. bra harmadik oszlopban lthatjuk. Az aktualizlt tvolsgvektorok berkezse a szomszdoktl, az tvlaszttbla bejegy zseinek jraszmtsa s a szomszdok tjkoztatsa a clhoz vezet minimlis kltsg t kltsgeinek megvltozsrl akkor marad abba, ha megsznik az aktualizlt rtkek kldse. Ez utbbi esetben nem kerl sor az tvlaszt tblkra vonatkoz jabb szmt sokra, s az algoritmus nyugalmi llapotba kerl, azaz az sszes csompont a DV-algorit- mus 10-11. sorban ll vrakozsra vonatkoz utastst kveti. Az algoritmus mindaddig nyugalmi llapotban marad, amg nem vltozik meg valamelyik kapcsolat kltsge, ahogy azt az albbiakban ltni fogjuk.
r
Ha a DV-algoritmust futtat csompont a valamely szomszdjhoz vezet adatkapcsolat kltsgben vltozst szlel (10-11. sor), akkor aktualizlja tvolsgvektort (13-14. sor), s a minimlis kltsg t kltsgben bekvetkezett esetleges vltozs esetn elkldi szomszdainak j tvolsgvektorl (16-17. sor). A 4.30. (a) bra azt a helyzetet szemllteti, amelynl a y-bl x-be vezet tszakasz kltsge 4-rl 1-re vltozott. Az albbiakban csak azt kvetjk nyomon, hogy ez miknt befolysolja az y s a z tvolsgvektornak az x clcsompontra vonatkoz koordintjt. A DV-algoritmus lefuttatsa sorn a kvetkezk jtszdnak le: / () idpontban azy csompont szleli a kapcsolatkltsg (4-rl 1-re trtnt) vltozst, aktualizlja tvolsgvektort s tjkoztatja szomszdait a mdostsrl. idpontban z megkapja^ mdostott tvolsgvektort, s aktualizlja sajt tbljt. Kiszmtja azx-hez vezet j minimlis kltsg t kltsgt (amely a korbbi 5-rl - ez a z-y-x t kltsge - 2-re cskkent), s elkldi szomszdainak j tvolsg vektort. t7 idpontban y megkapja z mdostott tvolsgvektort, s aktualizlja sajt tbljt. Mivel y minimlis kltsgeinek rtke nem vltozott, semmilyen zenetet nem kld z-nek. Az algoritmus nyugalmi llapotba kerl. A DV-algoritmus teht mr kt lps utn nyugalmi llapotba kerlt; az x s y kztti t kltsgnek cskkensre vonatkoz j hr gyorsan elterjedt a hlzatban.
19 ciklus vge
106
4. A HLZATI RTEG
megvltozsa
Nzzk meg, mi trtnik akkor, ha a kapcsolatkltsg n. Ttelezzk fel, hogy az a s az y kztti adatkapcsolat kltsge 4-rl 60-ra n (4.30. (b) bra). 1. A kltsg megvltozst megelzen D^x) = 4; Dpz) - 1; D.(y) = 1 s D:(x) = 5. tf idpontban azy csompont szleli a kapcsolatkltsg (4-rl 60-ra trtnt) vltozst, s kiszmtja az A-hez vezet j minimlis kltsg t kltsgt, amelyre az albbi eredmnyi kapja:
3. Kevssel t{ utn z megkapja y j tvolsgvektort, amelybl kitnik, hogy az y s a kztti minimlis kltsg t kltsge 6. Az csompont tudja, hogy 1-es kltsggel eljuthat y-ba, ezrt az A-hez vezet minimlis kltsg t kltsgnek kiszmtsakor a kvetkezre jut: Dpc) = min {50 + 0, 1 +6} = 7. A zs a kztti t kltsge teht ntt, z-nek j tvolsgvektort kell meghatroznia, amelyet t2 idpontban el is kld/-nak. 4. Hasonlkppen y is j tvolsgvektort hatroz meg, miutn megkapta z aktualizlt tvolsgvektort; D [x) = 8 lesz. Az j vektort elkldi z-nek, amely az ennek alapjn kapott D_(a) = 9 rtket tartalmaz vektort elkldi /-nak, s gy tovbb. Mikor szakad meg ez a folyamat? Annak beltst, hogy a hurok 44 itercin {y s z kztti zenetvltson) keresztl fennmarad, egszen addig, mg z egy 50-nl nagyobb rt ket nem kap azy-on keresztl vezet t kltsgre, az olvasra bzzuk. Ekkor dnt majd z gy, hogy a kzte s a kztti minimlis kltsg t az A-szel val kzvetlen sszekttets.
4.5. TVLASZT
ALGORITMUSOK
107
Ezt kveten az / csompont a z-n keresztl vezet utat vlasztja x-hez. A megntt kapcso- latkltsgrl szl rossz hr lassan terjedt el a hlzatban. Mi trtnt volna, ha a c(y,x) kapcsolat kltsge 4-rl 10 000-re n s a c(z,x) kltsg 9999? A fent ltottak miatt ezt a problmt a vgtelenig szmols problmjnak (count-to-infinily problem) is szoks nevezni.
A fent bemutatott hurokjelensg az rtalmas visszatknt (poisoned reverse) ismert eljrssal elkerlhet. Az alaptlet igen egyszer: ha z azy-on t vezet utat vlasztja x elrshez, akkor azt hirdeti y-nak, hogy a kzte s x kztti tvolsg vgtelen, azaz azt kzli y-nal, hogy D.(x) = oo (annak ellenre, hogy z valjban tudja, hogy Dz(x) = 5). A z csompont mindaddig kitart emellett az rtatlan hazugsg mellett, amg x elrshez egv v-on t vezet utat vlaszt. Mivel y ezek utn abban a hiszemben van, hogy z nem rendelkezik x-hez vezet ttal, mindaddig nem fog azzal prblkozni, hogy z-n keresztl jusson cl x-hez, amg z a rajta keresztl vezet utat vlasztja x-hez. Nzzk meg, miknt oldja meg az rtalmas visszat azt a hurokproblmt, amellyel a 4.30. (b) bra kapcsn szembesltnk. Az rtalmas visszat eljrs miatt y tvolsgvektorban D(x) = oo. Amikor a t0 idpontban az (x,y) kapcsolat kltsge 4-rol 60-ra n, y aktualizlja tbljt, s a 60-ra ntt kltsg ellenre tovbbra is a kzvetlen sszekttetst vlasztja x-hez, majd rtesti z-t az x-hez vezet t j kltsgrl, vagyis arrl, hogy D (x) = 60. z azt kveten, hogy a t{ idpontban megkapta y j tvolsgvektort, az 50-es kltsg kzvetlen (z,x) sszekttets mellett dnt. Mivel egy x-hez vezet j minimlis kltsg trl van sz, amely mr nem halad ty-on, za t> idpontban tjkoztatja y-[, hogy Dz(x) = 50. Az aktualizlt D.(x)-rtk ismeretben y is aktualizlja tvolsgvektort a D (x) = 51 rtkkel. Ezen tlmenen, mivel zimmry-nak azx fel vezet minimlis kltsg tvonala mentn tallhat,/rtalmasnak nyilvntja a zs x kztti utat azzal, hogy /. idpontban azt kzli z-vel, hogy D (x) = oc (annak ellenre, hogy y tudja, valjban D (x) = 51). xMegoldja az rtalmas visszat mdszere a vgtelenig szmols problmjt? Sajnos nem. Az olvas egy gondolatksrlettel meggyzdhet arrl, hogy a nem csak kt szomszdos tvlasztbl ll, hanem hrom vagy tbb csompontot rint hurkokat az rtalmas visszat mdszere nem ismeri fel s nem is sznteti meg.
19 ciklus vge
4.5. TVLASZT
ALGORITMUSOK
____
108
csompontot az j kltsgrl, valahnyszor megvltozik valamely adatkapcsolat kltsge. A DV-algoritmus esetben a kzvetlen szomszdoknak minden iterci sorn zenetet kell vltaniuk. Lttuk, hogy szmos tnyeztl fgghet, hogy mikor alakul ki stacionrius llapot. 1 A DV-algoritmus egy adatkapcsolat kltsge megvltozsnak hatsra csak akkor kld zenetet a szomszdainak, ha a vltozs kvetkeztben valamely csomponthoz vezet minimlis kltsg t kltsge is megvltozott. Az algoritmus sebessge. Mennyi id szksges az egyenslyi llapot elrshez? Lttuk, hogy LS-implementcink egy 0(|N| 7 ) lpsszm, 0(|N| | E|) zenet elkldst ignyl algoritmus. A DV-algoritmus bizonyos esetekben lass, s amg a hlzat el nem ri az egyenslyi llapotot, ltezhetnek tvlasztsi hurkok. Tovbbi nehzsg a DV-algoritmus esetben a vgtelenig szmols problmja. Robusztussg. Mi trtnik akkor, ha egy tvlaszt kiesik, hibsan mkdik vagy egy tmad befolysa al kerl? Az LS-algoritmus esetben egy csompont valamelyik hozz tartoz adatkapcsolatra vonatkozan helytelen kltsget kldhetn szt a tbbi csompontnak (de csak sajt adatkapcsolatainak kltsgt illeten van lehetsge tvedni). Az is elfordulhat, hogy valamelyik csompont az LS-es adatszrs sorn kapott csomagokat eltorztja vagy eldobja. Egy adott LS-csompont azonban kizrlag sajt tovbbttblit szmtja ki, s ez a tbbi csompontra is elmondhat. Ez azt jelenti, hogy az tvlasztsra vonatkoz szmtsok nmikppen elklnlnek egymstl, ami bizonyos fok robusztussgot biztost az LSalgoritmusnak. A DV-algoritmus esetben egy csompont brmelyik vagy akr az sszes clra vonatkozan helytelen minimlis kltsg utakat hirdethet. (Erre konkrt plda is van: 1997-ben egy kis internetszolgltat meghibsodott tvlasztja hibs tvlaszt adatokkal ltta el az USA orszgos gerinchlzati tvlasztit. Ennek kvetkeztben ms tvlasztk a meghibsodott tvlasztt elrasztottk forgalommal, ami vgl ahhoz vezetett, hogy az internet nagy rszei tbb rn keresztl elrhetetlenek voltak [Neumann 1997].) ltalnosabban fogalmazva megjegyezzk azt, hogy minden egyes iterci sorn egy csompont DV-szmtsa tovbbtdik szomszdjnak, s ezutn kzvetve a kvetkez iterci alkalmval a szomszd szomszdjnak. Ebben az rtelemben egy csompont pontatlan szmtsa sztterjedhet az egsz DV-s hlzaton. Megllapthatjuk teht, hogy egyik algoritmus sem egyrtelmen jobb a msiknl; nem vletlen, hogy az interneten mind a kettt hasznljk.
4.5. TVLASZT
ALGORITMUSOK
109
csoportja a telefonia vilgban gykerezik. Ezek a vonalkapcsols tvlaszt algoritmusok (circuit-switched routing algorithms) a csomagkapcsols hlzatokban akkor juthatnak szerephez, amikor fizikai adatkapcsolatonknti erforrsokat (pldul puffere- ket vagy a fizikai kapcsolat svszlessgnek egy rszt) kell lefoglalni a fizikai adatkapcsolatot rint minden hlzati adatkapcsolat szmra. Annak ellenre, hogy az tvlasztsi feladat megfogalmazsa ltszlag jelentsen eltr az itt trgyalt minimlis kltsgen alapul tvlasztsi feladattl, van egy sor hasonlsg is, legalbbis az tvlaszt algoritmust illeten. Az tvlaszt algoritmusok kutatsnak krdseivel s eredmnyeivel [Ash 1998; Ross 1995; Girard 1990] foglalkozik rszletesen.
Sklzhatsg.
110
4. A HLZATI RTEG
autonomous system routing protocol) nevezzk. Termszetesen az AS-ek sszekapcsolsra is szksg van, ezrt vannak olyan AS-eken belli tvlasztk, amelyeknek
111
egyb feladataikon kvl a csomagoknak az AS-en kvli clokhoz val tovbbtst is el kell ltniuk. Ezeket az tvlasztkat hvjk tjr tvlasztknak (gateway routers). A 4.31. brn az AS-ek sszekapcsolsnak egyszer pldjt lthatjuk, amelyben hrom AS vesz rszt: az AS1, AS2 s AS3. Az brn a vastag vonalak jellik a kt-kt tvlaszt kztti kzvetlen fizikai sszekttetst, az tvlasztkbl kiindul vkonyabb vonalak pedig az tvlasztkhoz kzvetlenl kapcsold alhlzatokat. Az ASl-ben ngy tvlaszt tallhat: az la, az 1b, az le s az ld, amelyek mindannyian valamely konkrt, az ASl-en bell hasznlatos tvlaszt protokollt futtatnak, s mindegyik tudja, hogyan kell az ASl-en belli brmelyik clhoz az optimlis tvonalon csomagokat tovbbtani. Az AS2-ben s az AS3-ban hrom-hrom tvlaszt tallhat. Fontos, hogy az ASl-ben, az AS2-ben s az AS3-ban hasznlt tvlaszt protokollok klnbzhetnek. Vegyk szre, hogy az lb, le, 2a s 3a tvlasztk tjr tvlasztk. Most mr tudjuk, hogy az AS-en belli tvlasztk hogyan hatrozzk meg az AS-en belli forrs-cl prok kztti tvonalakat. De honnan tudja egy AS-en belli tvlaszt, hogyan juttathatja el a csomagokat az adott AS-en kvli clokhoz? A krds egyszer, ha az AS egyetlen tjr tvlasztval rendelkezik, s az csak egyetlen msik AS-hez kapcsoldik. Ebben az esetben mindegyik bels tvlaszt tudja, hogyan juttassa clba a csomagot, hiszen az AS-en belli tvlaszt algoritmus minden bels tvlaszt s az tjr tvlaszt kztti minimlis kltsg utat meghatrozta. Az tjr tvlaszt a hozz berkez csomagot azon az egy adatkapcsolaton tovbbtja, amely kivezet az AS-bl. Ezt kveten az adatkapcsolat msik oldaln lv AS feladata lesz, hogy a csomagot eljuttas sa a clhoz. Pldaknt tegyk fel, hogy a 4.31. bra 2b tvlasztja olyan csomagot kap, amelynek clja az AS2-n kvl van. A 2b tvlaszt az AS2 bels tvlaszt protokolljnak megfelelen konfigurlt tvlaszt tblja alapjn a csomagot a 2a vagy a 2c tvlaszthoz
112
4. A HLZATI RTEG
^ Autonm rendszereKX kztti (inter-AS) tvlaszt algoritmus Tovbbttbla
113
tovbbtja. A csomag vgl eljut a 2a tjr tvlaszthoz, amely az 1b tvlasztnak tovbbtja. Az AS2-nek, azt kveten, hogy a csomag elhagyta a 2a tvlasztt, mr semmit nem kell tennie ennek a csomagnak a clbajuttatsrt. A problma teht knnyen megoldhat, ha a forrs-AS csak egyetlen kivezet adatkapcsolattal rendelkezik. De mi van akkor, ha az AS-nek (kt vagy tbb tjr tvlasztn keresztl) kett vagy tbb ilyen kapcsolata van? Ebben az esetben sokkal nehezebb annak eldntse, hogy hov kell a csomagot tovbbtani. Tegyk fel pldul, hogy egy ASl-en belli tvlaszt kap egy olyan csomagot, amelynek a clllomsa az AS-en kvl van. Az tvlasztnak nyilvnvalan a kt tjr tvlaszt (lb s le) valamelyikhez kell tovbb tania a csomagot, de vajon melyikhez? Ennek a problmnak a megoldshoz az ASl-nek (1) meg kell tudnia, hogy mely clok rhetk el az AS2-n s melyek az AS3-on keresztl; (2) el kell juttatnia ezt az elrhetsgi informcit az sszes tbbi ASl-en belli tvlaszthoz azrt, hogy mindegyik tvlaszt az AS-en kvli clok kezelsnek megfelelen konfigurlhassa tovbbttbljt. Ezt a kt feladatot - az elrhetsgi informcik megszerzst a szomszdos AS-ektl s ezeknek az informciknak az AS-en belli sszes tvlaszthoz val eljuttatst - az AS-kzi tvlaszt protokoll (inter-AS routing protocol) ltja el. Az egymssal kommunikl kt AS-nek azonos AS-kzi tvlaszt protokollt kell futtat nia ahhoz, hogy ez a protokoll a kt, egybknt klnll, AS kztti kommunikcit meg tudja valstani. Az interneten valjban az sszes AS ugyanazt az AS-ek kztti tv laszt protokollt - a BGP4-et - futtatja. A BGP4-gycl a kvetkez fejezetben foglalkozunk majd. xVlinden tvlaszt mind az AS-en belli, mind az AS-ek kztti protokolltl kap informcit (lsd 4.31. bra) tovbbittblja konfigurlshoz. Pldaknt vegynk egy a ClDR-cmvel adott x alhlzatot, s ttelezzk fel, hogy az AS1 az AS-kzi tvlaszt protokolltl megtudja, hogy az x alhlzat elrhet az AS3-on, de nem rhet el az AS2-n keresztl. Az AS1 ezt az informcit minden tvlasztjnak sztkldi. Amikor az Id tvlaszt megtudja, hogy az x alhlzat AS3-on, azaz az le tjrn keresztl rhet el, az AS-en belli tvlaszt protokoll segtsgvel meghatrozza, melyik interfszn kell kikldenie a csomagokat annak rdekben, hogy a kzte s az 1c kztti minimlis kltsg ton haladjanak; nevezzk ezt az interfszt /-nek. Az ld ezt kveten tovbbttbljban elhelyezi az (x,I) bejegyzst. (Ebben s a fejezetben szerepl tbbi pldban szmos egyszerstssel lnk annak rdekben, hogy az alapelveket szemlletesebben mutathassuk be. Az interneten valjban az itt lertnl bonyolultabban trtnik mindez; a kvetkez fejezetben rszletesebben s kevsb leegyszerstve foglalkozunk majd a tmval a BGP kapcsn). A fenti pldnl maradva, ttelezzk fel, hogy az AS2 s az AS3 az brn nem lthat tbb ms AS-hez is kapcsoldik, tovbb, hogy az ASl az AS-kzi tvlaszt protokolltl megtudja, hogy az x alhlzat az lb tjrn keresztl az AS2-bl, az le tjrn keresztl pedig az AS3-bl is elrhet. Az ASl minden tvlasztjt, gy az ld-t is tjkoztatja errl. Az ld tvlasztnak tovbbttblja konfigurlshoz meg kell hatroznia, hogy az x alhlzatba eljuttand csomagokat az lb vagy az le tjr tvlaszthoz tovbbtsa. Megoldst jelenthet a gyakran hasznlt forr krumpli (hot-potato) tvlaszts. A hot- potato tvlaszts sorn az AS a lehet leggyorsabban - illetve szigoran vve a lehet legolcsbban - megszabadul a csomagtl (a forr krumplitl) olyan mdon, hogy az rin tett tvlaszt a
114
4. A HLZATI RTEG
csomagot a clhoz vezet ttal rendelkez tjrk kzl ahhoz tovbbtja, amely tle a legkisebb kltsggel rhet el. jelenlegi pldnkban ez gy nzne ki, hogy az ld-n fut hot-potato tvlaszt algoritmus az AS-en belli tvlaszt protokolltl kapott informcik alapjn meghatrozn az lb-hez s az lc-hez vezet utak kltsgt, majd ezek
121
Tudomst szerznk az AS-kzi protokoll- tl, hogy az x alhlzat tbb tjrn keresztl is elrhet. A szba jv tjrkhoz
vezet minimlis kltsg utak kltsgnek kiszmtsa az AS-en belli protokoll segtsgvel Hot-potato (forr
krumpli) tvlaszts: annak az tjrnak a kivlasztsa, amelyhez vezet minimlis kltsg t kltsge a legkisebb. A tovbbttbla
segtsgvel a legalacsonyabb kltsg tjrhoz vezet I interfsz meghatrozsa. Az (x,l) bejegyzs elhelyezse a tovbbttblban.
A fordt megjegyzse: A protokoll nevben az Open sz arra utal, hogy nylt protokollrl
van sz; emiatt azok az itt kzltnl nem kevsb suta magyartsok, amelyek az Open-t igeknt rtelmezik pldul legrvidebb-t-nyitsa-elszr protokoll" jelentstanilag hibsak. A
Cl
Hopok szma
u v w X
y z
1 2 2 3 3 2
ton
s a cl-alhlzat kztti tra vonatkoznak. A RIP teht a hopszm fogalmt hasznlja, amely azoknak az alhlzatoknak a szma, amelyeket a datagram a forrs-tvlaszt s a cl-alhlzat kztti legrvidebb t sorn bejr, belertve a cl-alhlzatot is. A 4.33. brn egy olyan AS lthat, amelyhez hat olyan alhlzat kapcsoldik, amelynek az A, B, C vagy D tvlaszt az egyetlen kapcsolata a hlzat tbbi rszvel; nevezzk ezeket levl-al hlzatoknak. Az brhoz mellkelt tblzatbl leolvashat a hopok szma az A forrs s az egyes levl-alhlzatok kztti ton. Egy t kltsge legfeljebb 15 lehet, ami azt jelenti, hogy egy RIP-et hasznl AS tmrje nem lehet 15 hopnl nagyobb. Mint tudjuk, a DV-protokollok esetben a szomszdos tvlasztk kicserlik egymssal tvolsgvektoraikat. Az egyes tvlasztk tvolsgvektora az tvlaszt s az AS-ben lv alhlzatok kztti legrvidebb utak becslt kltsgt tartalmazza. A RIP esetben a szomszdok krlbell 30 msodpercenknt kldenek egymsnak n. RIP-vlaszzenetet (RIP response message). Az tvlaszt vagy a hoszt ltal kldtt vlaszzenet egy listt tartalmaz, amely legfeljebb 25, az AS-en belli cl alhlzatot, valamint a kld s a megadott clalhlzatok kztti tvolsgot adja meg. A vlaszzeneteket RIP-hirdetseknek (RIP advertisements) is nevezik. A 4.34. brn szemlltetett plda segtsgvel nzzk meg kzelebbrl a RIPhirdetsek mkdst! Az brn egy AS kiragadott rsze lthat. Az tvlasztkat sszekt vonalak alhlzatokat jellnek; az AS tvlaszti s alhlzatai kzl csak nhnyat cmkztnk meg (az /\, f, C, s D tvlasztt, valamint a w, x, y s z alhlzatot); a szaggatott vonalak jelzik, hogy az AS az brzoltnl sokkal tbb tvlasztval s adatkapcsolattal rendelkezik. Minden tvlaszt egy RIP-tblt, az gynevezett tvlaszt tblt (routing table) tart fenn, amely az tvlaszt tvolsgvektort s tovbbttbljt is tartalmazza. A D tvlaszt tvlaszt tblja a 4.5. tblzatban lthat. Vegyk szre, hogy a tbla 3 oszlopbl
3b4
4. A
HLZATI RTliti
103
berkezse eltt
w
Clalhlzat
y
z
X
7
1
MII
ll: az elsben a cl-alhlzat szerepel, a msodik a cl-alhlzathoz vezet legrvidebb t menti soron kvetkez tvlasztt jelli, a harmadik pedig a hopok szmt adja meg (vagyis azoknak az alhlzatoknak a szmt, amelyeket a datagramnak a cl-alhlzathoz vezet legrvidebb ton be kell jrnia, belertve a cl-alhlzatot is). Pldnkban a tbla azt jelzi, hogy a I) tvlaszt ltal w clalhlzatba kldtt datagramot elszr a szomszdos A tvlaszthoz kell tovbbtani, s hogy a w cl-alhlzat 2 hopnyira van a legrvidebb tvonalon, tovbb, hogy a B tvlasztn keresztl elrhet z alhlzat 7 hopnyira van D-tl. Elvben az tvlaszt tblk minden sora egy-egy AS-en belli alhlzathoz van hozzrendelve, a RIP 2-es verzija azonban lehetv teszi az alhlzatra vonatkoz bejegyzsek aggreglst, hasonlan a 4.4. alfejezetben trgyalt tvonal-aggreglsi technikkhoz. A 4.5. tblzat s az ezt kvet tblzatok csak rszlegesen teljesek. Ttelezzk fel, hogy a D tvlaszt 30 msodperccel ksbb a 4.6. tblzatban lthat hirdetst kapja az A tvlaszttl. Vegyk szre, hogy ez a hirdets nem ms, mint az A tvlaszt tvlaszt tbljban tallhat informci! Ez a hirdets tbbek kztt azt kzli, hogy a z alhlzat csak 4 hopnyira van az A tvlaszttl. A D tvlaszt a hirdets berkezst kveten sszefsli a 4.6. tblzatban lthat hirdetst a 4.5. tblzatban szerepl korbbi tvlaszt tblval. A D tvlaszt a hirdetsbl tbbek kztt megtudta, hogy a z alhlzathoz van egy A tvlasztn keresztl vezet t, amely rvidebb a B tvlasztn keresztl vezet tnl, s ennek megfelelen aktualizlja az tvlaszt tbljt (4.7. tbl zat). Az olvasban felmerlhet a krds, hogy mitl lett rvidebb a z alhlzathoz vezet legrvidebb t? Lehet, hogy a decentralizlt tvolsgvektor-alap algoritmus mg nem jutott nyugalmi llapotba (lsd 4.5.2. alfejezet), de az is elkpzelhet, hogy j kapcsolatokkal s/vagy tvlasztkkal bvlt az AS, ami a korbbitl eltr legrvidebb utakat eredmnyezett. Az albbiakban a RIP nhny implementcis krdsvel foglalkozunk. Mint tudjuk, a RIP-tvlasztk nagyjbl 30 msodpercenknt hirdetseket cserlnek. Ha egy tvlaszt 180 msodpercen bell egyszer sem hall semmit valamelyik szomszdja fell, akkor azt a szomszdot elrhetetlennek tekinti; felttelezi, hogy az eszkz vagy a hozz tartoz adat- kapcsolat meghibsodott. Ha ilyesmi trtnik, a RIP mdostja a helyi tvlaszt tblt, s a (mg elrhet) szomszdainak kldtt hirdetseivel elterjeszti ezt az informcit. Az 4.6. tblzat. Az A tvlaszt ltal kldtt hirdets
104
Clalhlzat z w
105
berkezse utn
w
Clalhlzat
y
z
....
tvlaszt a RIP vlaszkr zenetnek (request message) segtsgvel tjkoztatst krhet a szomszdja s egy adott cl kztti t kltsgrl. Az tvlasztk a vlaszkr s a vlaszzeneteket UDP fltt, az 520-as portra kldik egymsnak. Az UDP-szegmenst egy szabvnyos IP-datagram szlltja az tvlasztk kztt. Az, hogy a RIP egy hlzati rtegbeli protokoll (IP) feletti szlltsi rtegbeli protokollt, az UDP-t hasznlja egy hlzati rtegbeli mkds (egy tvlaszt algoritmus) megvalstsra, bonyolultnak tnik (s az is!). De ha kicsit behatbban foglalkozunk a RIP megvalstsnak mdjval, megltjuk, hogy erre mirt van szksg. A 4.35. brn felvzoltuk, hogyan integrldik a RIP egy UNIX-rendszerbe, pldul egy tvlasztknt mkd UNIX-munkallomsba. Egy routed-nek nevezett processz valstja meg a RIP-et, azaz ez tartja nyilvn az tvlasztsra vonatkoz informcikat s cserl zeneteket a szomszdos tvlasztkon fut routed folyamatokkal. Mivel a RIP-et alkalmazsi rtegbeli processzknt (a UNIXkernel tvlaszt tblinak manipullsra kpes, klnleges processzknt, de mgis felhasznli programknt) valstottk meg, az a legegyszerbb, ha a szabvnyos szkt programozi interfszen keresztl kldi s fogadja az zeneteit, s ha szabvnyos szlltsi protokollt hasznl. Lthat, hogy a RIP-et egy UDP feletti alkalmazsi rtegbeli protokollknt (lst a 2. fejezetet) valstottk meg.
Routed
106
4. A HLZATI RTEG
Adatkapcsolati rteg
rt art
szerint az tvlasztk nem hitelestik a kicserlt OSPF-csomagokat, gy azok hamisthatok. Ktfle hitelests rhat el: az egyszer s az MD5-s (ez utbbirl s a hitelestsrl ltalban a 8. fejezetben lesz majd sz). Az egyszer hitelestsnl minden tvlasztn belltjk ugyanazt ajelszt;ezt azutn az tvlaszt minden OSPF-csomagba bemsolja, titkosts nlkl. Nyilvnval, hogy az egyszer hitelests nem tlsgosan biztonsgos. Az MD5-s hitelests szintn minden tvlasztn belltott azonos kzs titokra pl. Az tvlaszt minden elkldtt csomaghoz kpzeletben hozzfzi a titkos kulcsot (elkldeni nem gy fogja!), majd kiszmtja az gy nyert megnvelt csomag MD5-s hash rtkt, s ezt az rtket elhelyezi az elkldend csomagban. (Az zenethitelest kdokrl bvebben a 7. fejezetben szlunk.) A fogad tvlaszt az elre konfigurlt titkos kulcs segtsgvel kiszmolja a csomag MD5-S hash-rtkt, s ezt a csomagban szerepl hash-rtkkel sszehasonltva hitelesti a csomagot. Az MD5-s hitelests az ismtlses tmadsok kivdse rdekben sorszmokat is hasznl. Tbb azonos kltsg t. Az OSPI : tbb t egyidej hasznlatt is lehetv teszi, ha a clhoz vezet utak kzl tbbnek is azonos a kltsge, azaz a forgalmat ilyenkor nem ktelez egyetlen ton szlltani, a terhels megoszthat tbb t kztt (a megoszts maga termszetesen az tvlaszt feladata, az OSPF csak az utakat jelli ki). Az egynekads (unicast) s a tbbesklds (multicast) egyttes tmogatsa. A tbbes- kldses OSPF (multicast OSPF, MOSPF) az OSPF-nek a tbbeskldses tvlasztst lehetv tv bvtse [RFC 1584]. (A tbbeskldses tvlasztssal a 4.7.2. alfejezct- ben foglalkozunk majd rszletesebben.) Az MOSPF az OSPF meglv adatbzist hasznlja, s OSPFnek a kapcsolatllapotra vonatkoz adatszrsi mechanizmust jfajta kapcsolatllapot-hirdetssel bvti. Hierarchikus struktra tmogatsa egy nll routing krzeten bell. Az OSPF kidolgozsnl az egyik legjelentsebb elrelps taln az volt, hogy kpess tettk a protokollt az autonm rendszeren belli hierarchikus struktra tmogatsra. A 4.5.3. alfejezetben mr szltunk a hierarchikus tvlaszts szmos elnyrl. Jelen fejezet fennmarad rszben azt mutatjuk be, hogyan valstja meg az OSPF a hierarchikus tvlasztst. Az OSPF-et hasznl autonm rendszerek krzetekre (area) oszthatk fel. Mindegyik krzet sajt OSPF-et futtat, s egy krzeten bell minden tvlaszt a krzet sszes tbbi tvlasztjval adatszrs tjn kzli sajt kapcsolatllapott. A krzeten kvli tvlasztk gy nem szereznek tudomst a krzeten belli adatokrl. A krzeten belli tvlasztsban (intra-area routing) kizrlag az ugyanahhoz a krzethez tartoz tvlasztk vesznek rszt. Minden krzethez tartozik egy vagy tbb krzethatri tvlaszt (area bordr router), amely a csomagoknak a krzeten kvl es clokhoz val tovbbtsrt felels. Az AS-en bell pontosan egy OSPF-krzetet gerinchlzati (backbone arca) krzetknt kell belltani. A gerinchlzati krzet f feladata az AS-en belli tbbi krzet kztti forgalom irnytsa. A gerinchlzatnak mindenkppen rsze az AS sszes krzethatri tvlasztja, de tartozhatnak hozz nem-krzethatri tvlasztk is. Az AS-en belli krzetek kztti forgalomirnytsnl (inter-area
routing) a csomagokat elszr valamelyik krzethatri tvlaszthoz kell tovbbtani (ez a krzeten belli tvlaszts - az intra-area routing - feladata), amely a gerinchlzaton keresztl a clkrzetben lv krzethatri tvlaszt hoz tovbbtja, amely aztn gondoskodik a csomag clba juttatsrl.
Bels tvlasztk
1. krzet 2. krzet
3. krzet
4.36. bra. Ngy krzettel rendelkez hierarchikusan strukturlt OSPF-AS A hierarchikusan strukturlt OSPF-hlzatban klnbztetnk meg (lsd 4.36. bra): ngyfle tvlasztt
krzethez tartoznak, s kizrlag AS-en belli tvlaszt feladatokat oldanak meg. Krzethatri tvlasztk (area bordr routers). Ezek az tvlasztk egyarnt tartoznak valamelyik krzethez s a gerinchlzathoz. Gerinchlzati tvlasztk (nem-krzethatri tvlasztk). Ezek az tvlasztk a gerinchlzati krzeten bell oldanak meg tvlaszt feladatokat, de nem krzethatri tvlasztk. A nem-gerinchlzati krzetek bels tvlaszti a ms krzetekhez vezet utak ltezsrl a krzeten belli adatszrs tjn rteslnek a krzethez tartoz gerinchlzati tvlasztktl (elssorban kapcsolatllapot-hirdetsekbl, amelyek valamely msik krzethez vezet t kltsgre, nem pedig valamely adatkapcsolat kltsgre vonatkoznak). AS-hatr-tvlasztk (boundary routers). A hatr-tvlasztk a ms AS-ekhez tartoz tvlasztkkal cserlnek az tvlasztsra vonatkoz adatokat. Az ASkzi tvlaszts sorn hasznlhatnak pldul BGP-t. Az AS-en belli tbbi tvlaszt ezektl a hatrtvlasztktl rtesl a kls hlzatokhoz vezet utakrl. Az OSPF viszonylag sszetett protokoll, amelyet itt termszetesen csak rviden
ismertethettnk; tovbbi rszletek a [Huitema 1998; Moy 1998; RFC 2328] forrsban olvashatk.
UIvek a gyakorlatban Az OSPF-slyok belltsa A kapcsolatllapot-alap tvlaszts trgyalsnl hallgatlagosan feltteleztk, hogy a kapcsolatslyok be vannak lltva, az tvlaszt valamelyik tvlaszt algoritmust, pldul az OSPF-t futtatja, a forgalom pedig az LS-algoritmussal szmtott tvlaszt tblknak megfelelen alakul. Az ok s okozat fogalmaival lve: a kapcsolatslyok adottak (azaz ezek a kiindulsi adatok), s (a Dijkstra-algoritmus alkalmazsval) a kltsgeket minimalizl tvonalakat eredmnyeznek. Ebben a megkzeltsben a kapcsolatslyok az adatkapcsolat hasznlatnak kltsgeit tkrzik (vagyis: ha a kapcsolatslyok a kapacitssal fordtottan lennnek arnyosak, a nagy kapacits adatkapcsolatok kisebb slyak s gy tvlaszt szempontbl vonzbbak lennnek), a Dijkstra-algoritmus pedig a kltsgek sszessgnek minimalizlst tartja szem eltt. A gyakorlatban azonban elfordul, hogy a kapcsolatslyok s az tvlaszts sorn kiszm tott utak kztti ok-okozati sszefggs megfordul, pldul akkor, ha a hlzatzemeltetk gy konfigurljk a kapcsolatslyokat, hogy az tvlaszts sorn kiszmtott utak bizonyos forgalomszervezsi clok elrst szavatoljk [Fortz 2000; Fortz 2002]. Tegyk fel pdul, hogy a hlzatzemeltet meg tudja becslni, mekkora forgalom rkezik a hlzat egyes belpsi s kilpsi pontjaira, s azt szeretn elrni, hogy a hlzaton traml forgalom kvetkeztben fellp, egyes kapcsolatokat rint cscsterhelsek minimlisak legyenek. Az olyan tvlaszt algoritmusoknl, mint az OSPF, az zemeltet elssorban a kapcsolatslyok segtsgvel tudja befolysolni a hlzaton tfoly forgalom irnytst. Az zemeltet teht gy minimalizlhatja kvnatos a maximlis kapcsolatterhelst, s az OSPF-ben hogy megkeresi az ezt biztost gy kell kapcsolat- sly-rtkeket, ami az ok-okozat sszefggs megfordtst jelenti: ismert a folyamok tvlasztsa, hasznlt kapcsolatslyokat megvlasztani, hogy az OSPF tvlaszt algoritmus ezt az tvonalat eredmnyezze.
Kiemelten fontos, hogy a BGP segtsgvel minden alhlzat hirdetheti ltezst az internet sszes tbbi rsztvevje fel. Az alhlzat elkiltja magt: ltezem, s itt s itt vagyok, a BGP pedig gondoskodik arrl, hogy az internet sszes AS-e tudjon az alhlzatrl s arrl, hogyan lehet elrni.
2c
3a
1 c /
2a
f1
>C
3b
AS3
Jells:
--------------eBGPviszony ---------------iBGP-viszony
138.16.64.0/24, a 138.16.65.0/24, a 138.16.66.0/24 s a 138.16.67.0/24. Az AS2 ennek a ngy alhlzatnak a prefixeit aggreglva megteheti, hogy a BGP segtsgvel egyetlen prefixet, a 138.16.64.0/22-t hirdeti az AS1 fel. Msik pldaknt ttelezzk fel, hogy a fenti ngy alhlzat kzl csak hrom tartozik az AS2-hz, a negyedik, a 138.16.67.0/24 pedig az AS3-hoz. Ebben az esetben a 4.4.2. alfejezet Elvek a gyakorlatban cm rszben lertaknak megfelelen mivel az tvlasztk a leghosszabb illeszked prefix szablyt kvetik - az AS3 a 138.16.67.0/24 specifikusabb prefixet hirdeti, mg az AS2 tovbbra is hirdetheti a 138.16.64.0/22 aggreglt prefixet AS1 fel. Vizsgljuk meg, hogy a BGP hogyan terjeszten a prefix-elrhetsgi informcikat a 4.37. brn lthat BGP-viszonyokon keresztl. Az AS3 - ahogyan vrnnk - a 3a s le tjr tvlasztkon megvalstott eBGP-viszonyon keresztl kldi el az ASl-nek az AS3-bl elrhet prefixek jegyzkt, az AS1 pedig az AS3nak a tle elrhetk jegyzki. Hasonlkppen az AS1 s az AS2 az lb s 2a tjr tvlasztikon keresztl cserlik ki a prefixelrhetsgre vonatkoz adatokat. Szintn megfelel a vrakozsainknak, hogy a brmely AS-ben lv tjr tvlaszt az eBGP-viszonyon keresztl kapott prefixeket az iBGP-viszonyain keresztl terjeszti az AS-en belli tbbi tvlasztnak. Ily mdon az AS1 sszes tvlasztja - az lb tjr tvlaszt is - rtesl az AS3-as prefixekrl. Az lb tjr tvlaszt teht tovbbhirdetheti az AS3 prefixeit az AS2 fel. Minden tvlaszt (akr tjr, akr nem) a 4.5.3. alfejezetben lertaknak megfelelen j prefixbejegyzst helyez el tovbbttbljban azt kveten, hogy egy j prefixrl rtesl.
tattribtumok s BGP-route-ok
Mlytsk el eddig szerzett ismereteinket a BGP-rl (nhny kevsb fontos rszletet azonban tovbbra is el fogunk elhanyagolni). A BGP szmra egy autonm rendszer globlisan egyedi azonostja az AS-szm (autonomous system number, ASN) (RFC 1930]. (Szigoran vve nem minden AS rendelkezik ASN-nel; gy pldul az n. csonka AS, amely csak olyan forgalmat szllt, amelynek a forrsa vagy a clja, ltalban nem rendelkezik AS-szmmal. Ezt a rszletkrdst az albbiakban azonban figyelmen kvl hagyjuk majd, nehogy a fktl ne lssuk az erdt.) Az AS-szmokat, csakgy, mint az IP-cmeket, az ICANN regionlis hivatalai osztjk ki [ICANN 2007]. Amikor egy tvlaszt a BGP-viszonyon keresztl prefixet hirdet, ez a prelixeken kvl egy sor BGP-attribtumot (BGP attribute) is tartalmaz. A BGP-zsargonban az attribtumaival kiegsztett prefixet route-nak szoks nevezni. A BGP-trsak teht ilyen rtelemben vett route-okat hirdetnek egyms fel. Az albbiakban a fontosabb attribtumok kzl az AS_PATH s a NEXT_HOP attribtumot mutatjuk be: NEXT_HOP. Ez az attribtum dnt fontossg kapocs az AS-kzi s AS-en belli protokollok kztt. /\ NEXT_IOP a hirdetst kld tvlaszt azon
interfsznek az IP-cime, amely a hirdetett AS_PATH mentn a hirdetst kap tvlaszt fel nz.1 Az attribtum ismertetshez ismt a 4.37. bra nyjt
segtsget. Vizsgljuk meg, mi trtnik, ha az AS3-on belli 3a tjr tvlaszt az eBGP segtsgvel az ASI le tjr tvlasztjhoz vezet routeot hi relt, amely (a route kifejezst a fenti rtelemben hasznlva) tartalmazza a hirdetett x preixet s a prefixhez tartoz AS_PATI1 attri btumot. Emellett
tartalmazza a NEXT_HOP attribtumot is, amely a 3a tvlaszt le fel nz interfsznek az IP-cme. (Mint tudjuk, az tvlasztknak tbb IP-cme van, interfszenknt egy-egv.) Nzzk meg, mi trtnik, amikor az Id tvlaszt az iBGP-n keresztl rtesl errl az x-hez vezet route-rl. Ha az ld ezen a routeon szeretne x-hez csomagokat tovbbtani, akkor tovbbttbljban el kell helyeznie az (x, /) bejegyzst, ahol / az az interfsze, amelyen t az Id-tl az le tjr tvlaszt fel vezet minimlis kltsg ton el kell indtani a csomagokat. Az ld tvlaszt / meghatrozshoz AS-en belli tvlaszt alrendszernek tadja a NEXT_HOP attribtumban szerepl IP-cmet. Az AS-en belli tvlaszt algoritmus mr korbban meghatrozta az ASl-hez tartoz tvlasztkhoz csatlakoz sszes alhlzathoz vezet legalacso nyabb kltsg utat, gy az le s 3a kztti kapcsolathoz tartoz alhlzathoz vezett is. Az ld tvlaszt az lc-3a alhlzathoz vezet minimlis kltsg t alapjn hatrozza meg az ennek az tnak kiindulpontjul szolgl / interfszt, s ezt kveten helyezi cl tovbbttbljban az (x, /) bejegyzst. sszefoglalva azt mondhatjuk, hogy az tvlasztk az AS_PATH s a NEXT_HOP attribtumot tovbbttbljuk helyes konfigurlshoz hasznljk. A 4.38. bra az AS_PATH attribtumnak az elbbitl eltr felhasznlst mutatja be. Az ASl-et az AS2-vel kt trskapcsolat (peering 1 link) is sszekti. Az ASl-beli tvlasztk egy adott x prefixhez vezet kt klnbz route-rl is rteslhetnek, amelyeknek az AS_PATH attribtuma megegyezik, NEXT_HOP attribtuma azonban - a klnbz trskapcsolatoknak megfelelen - eltr. Az tvlasztk a megfelel interfsz meghatrozshoz a hot-potato tvlasztst (lsd 4.5.3. alfejezet) alkalmazzk azt kveten, hogy az AS_PAT1I rtkek s az 1
rdekld olvas figyelmbe ajnljuk az RFC4271 5.3.1. fejezett, amely tbbek kztt a http://tools.ietf.org/ html/rfc4271#section-5.1.3 cmen rhet el. Rviden s sok rszlet kihagysval gy foglalhat ssze a NEXT_HOP szerepe, hogy egy olyan tvlaszt-interfsz IPcmt tartalmazza, amelyen keresztl a hirdetett prefix a hirdets cmzettje szmra minl rvidebb ton rhet el.
AS-en belli tvlaszt algoritmus segtsgvel meghatroztk az egyes trskapcsolatokhoz vezet utak kltsgt. A BGP olyan attribtumokat is tartalmaz, amelyek segtsgvel az tvlasztk preferenciamrcket (preference metrics) rendelhetnek a route-okhoz, egy msik attritbtum pedig azt jelzi, hogy a forrs-AS-nl miknt trtnt a prefix hozzadsa a BGP-hez. A route- attribtumok teljes kr trgyalsa megtallhat a [Griffin AS 2
2002; Stewart 1999; Halabi 2000; Feamster 2004; RFC 4271] forrsokban.
Jells:
a/ x-hez vezet rouie-okra vonatkoz hirdetsekei larraimaz zenetek
Kt trskapcsolat (peering link) A S 2 s A S 1 kztt Az tvlaszt egy x-hez vezet route-rl rtesl
4.38. bra. A hirdetsekben szerepl NEXT_HOP attribtumok segtsgvel eldnthet> hogy melyik trskapcsolatot (peering linket) clszer hasznlni
Az tvlaszt egy x-hez vezet tovbbi route-rl rtesl
Az tjr tvlaszt az importra vonatkoz sajt hzirendje, ms szval importszrje (import policy) segtsgvel dnti el, hogy elfogadja vagy kiszri a kapott route-hirdetst, s hogy bellt-e bizonyos attribtumokat, pldul a preferenciamrct. Az importszr pldul azrt dnthet egy adott route kiszrse mellett, mert az adott AS nem akarja forgalmt a route AS_PATH attribtumban szerepl valamelyik AS-en keresztl szlltani, de azrt is, mert tudomsra jutott egy az adott prefixhez vezet elnysebb t.
tvlasztk az x prefixhez vezet egynl tbb route-rl is tudomst szerezhetnek, s vlasztaniuk kell a lehetsges route-ok kzl. A route-vlasztsi folyamat bemeneti adatait az tvlaszt tudomsra jutott s az ltala el is fogadott routeok sszessge alkotja. Ha ugyanahhoz a prefixhez kt vagy tbb route tartozik, a BGP egyms utn az albbi trlsi szablyokat alkalmazza mindaddig, amg a vlasztk egyetlen route-ra nem cskken:
tsnak ez lenne az egyetlen szablya, a BGP egy DV-algoritmus segtsgvel hatrozn meg az utat, amelynl a tvolsgi metrika az rintett AS-ek (AShopok) s nem az rintett tvlasztk (router-hopok) szmt hasznlja. Az ezutn fennmarad (azonos lokl is preferenciartkkel s AS_PATH hosszal rendelkez) route-ok kzl a BGP a legkzelebbi NKXT_HOP tvlasztn thaladt vlasztja. Itt a legkzelebbi azt az tvlasztt jelenti, amelyre vonatkozan az AS-en belli algoritmus ltal kiszmtott minimlis kltsg t kltsge a legkisebb. A 4.5.3. alfejezetben mr volt sz errl a mdszerrl: ezt nevezik hot-potato tvlasztsnak. Ha ezek utn mg mindig egynl tbb route maradt fenn, az tvlaszt BGPazonostk segtsgvel vlasztja ki a megfelelt [Stewart 1999]. A trlsi szablyok a valsgban a fent lertaknl sokkal bonyolultabbak. A BGPvel kapcsolatos lidrces lmok leginkbb gy kerlhetk el, ha kis adagokban ismerkednk a BGP kivlasztsi szablyaival
tvlasztsi szablyok
A 4.39. brn felvzolt egyszer pldn mutatjuk be a BGP tvlasztsi szablyainak nhny fontos elemt. Az brn hat egymssal sszekapcsolt autonm rendszer (A, B, C, W, X s Y) lthat. Fontos megjegyezni, hogy ezek ASek s nem tvlasztk. Ttelezzk fel, hogy a W, X s Y autonm rendszer csonka hlzat, A, B s C egy-egy gerinchlzati szolgltat hlzata, tovbb, hogy A, B s C egyenrang flknt kommunikl (zsargonban: peeringjk van) egymssal s hogy gyfeleik hlzatainak valamennyi, a BGP-vel szer zett informcit tovbbadjk. A csonka hlzatba (stub network) rkez sszes forgalom clja csak magban a csonka hlzatban lehet, s az sszes azt elhagy forgalomnak csak ott lehet a forrsa. W s Y egyrtelmen csonka hlzat, az X pedig egy tbbszrsen kapcsold csonka hlzat (niultihomed stub network), hiszen kt klnbz szolgltatn keresztl kapcsoldik a hlzat tbbi rszhez (ami egyre tbbszr fordul el a gyakorlatban). Ennek ellenre X-re is ugyanaz vonatkozik, mint W-re s Y-ra: csak nmaga lehet a clja, illetve forrsa a bejv, illetve kimen sszes forgalomnak. De mikppen valsthat meg s szavatolhat a csonka hlzatnak megfelel viselkeds? Hogyan akadlyozhat meg X abban, hogy forgalmat tovbbtson B s C kztt? A vlasz az, hogy a BGP-route-ok hirdetsre vonatkoz szablyokkal. Az X-nek pldul azt kell hirdetnie B s C szomszdai fel, hogy rajta keresztl nmagn kvl semmilyen ms cl nem rhet el. Teht, ha X trtnetesen ismern is az Y hlzatba vezet XCY utat, nem szabad ezt hirdetnie B fel. Mivel B nincs annak tudatban, hogy X ismer egy Y-ba vezet utat, eszbe sem fog jutni, hogy az Y-nak (vagy C-nek) sznt forgalmat X-en keresztl tovbbtsa. Ez az egyszer plJells: B
W
Szolgltati
hlzat gyflhlzat
da jl szemllteti, hogy miknt hasznlhat fel egy szelektv route-hirdetst elr szably az gyfelek s szolgltatk kztti tvlasztsi kapcsolatok 1 megvalstsnl. Tekintsk most valamelyik szolgltati hlzatot, mondjuk a B autonm rendszert. Ttelezzk fel, hogy B arrl rteslt (A-tl), hogy W A-bl elrhet az AW ton. B teht felveheti a BAW utat tvlasztsi adatbzisba. B a BAW utat termszetesen X gyfele fel is szeretn hirdetni, hogy X is megtudja: W elrhet B-n keresztl. De jl teszi-e B, ha ezt az utat C fel is hirdeti? Ha gy tesz, C a Wnek sznt forgalmat a CBAYV ton tovbbthatn. Ha A, B s C gerinchlzati szolgltat, B joggal rezheti, hogy nem kvnja magra venni az A s C kztti tmen forgalom szlltsnak terht (s kltsgt!), s hogy tu lajdonkppen A s C dolga annak biztostsa, hogy C a kettjk kzti forgalmat egy A s C kztti kzvetlen kapcsolaton tudja tovbbtani, s ennek kltsgeit is A*nak s C-nek kellene viselnie. Jelenleg nem lteznek a gerinchlzati szolgltatk egyms kztti forgalomirnytsra vonatkoz hivatalos szabvnyok. A kereskedelmi szolgltatsokat nyjt internetszolgltatk gyakran azt az klszablyt kvetik, hogy a gerinchlzatukon thalad sszes forgalom forrsnak vagy cljnak (vagy mindkettnek) az adott inter- netszolgltat valamelyik gyfele hlzatban kell lennie; klnben a szolgltat ingyen szlltan harmadik felek egyms kzti forgalmt. Az egyes internetszolgltatk ltalban a fenti krdseket szablyoz (gyakran bizalmas) megllapodsokat ktnek egymssal, amelyekrl tbb rdekessg is megtudhat a [Huston 1999a] forrsbl. [Gao 2001] rszle tesen ismerteti, hogy az tvlasztsi szablyok mikppen tkrzik az internetszolgltatk kztt fennll zleti kapcsolatokat. [Caesar 2005] az internetszolgltatknak a BGP tvlasztsi szablyokkal kapcsolatos szempontjait mutatja be. Mint arrl mr sz volt, a BGP az AS-kzi tvlaszts de facto szabvnya a nyilvnos interneten. Tbb legfelsbb szint (tier-1) internetszolgltat tvlasztibl nyert (risi mret) BGP-s tvlaszt tbla tartalma megtekinthet a http://www.routeviews.org/ cmen. A BGP-s tvlaszt tblk gyakran tbb tzezer prefixet s ezek attribtumait tartalmazzk. A BGP-s tvlaszt tblk mreteivel s ms jellemzivel kapcsolatos statisztikk a [Huston 2001; Meng 2005] forrsokban jelentek meg. Ezzel vget is r rvid bevezetsnk a BGP rejtelmeibe. Ennek a protokollnak a megrtse nagyon fontos, mivel kzponti szerepet tlt be az interneten. A tma irnt rdekldk az albbi forrsokbl tudhatnak meg tbbet a BGP-rl: [Griffin 2002; Stewart 1999; Labovitz 1997; Halabi 2000; Huitema 1998; Gao 2001; Eeamster 2004; Caesar 2005].
vletlenl, akr szndkosan); viszont ha C ezeket a hirdetseket nem fogadja el (s fleg nem hirdeti tovbb msoknak), azzal megakadlyozhatja, hogy a hamis hirdets valdi krokat okozzon. Jelen sorok rsakor - 2008 kzepn - mg szmos szolgltat nem szri elegenden szigoran az gyfeleitl rkez BGPhirdetseket. Ez az elmlt vekben tbb alkalommal is eredmnyezett hosszabbrvi- debb, kisebb-nagyobb tvlasztsi galibi.
Hvek a gyakorlatban
Mirt nem hasznlhatjuk ugyanazt a protokollt az AS-en belli s az AS-kzi tvlasztsra? Miutn rszletesen foglalkoztunk az internet egyes jellegzetes AS-kzi s AS-en belli proto kolljainak jellemzivel, feltehetjk azt a taln legalapvetbb krdst, hogy mirt klnbznek egymstl az AS-kzi s az AS-en belli protokollok. (A knyv szerzi titkon abban remny kednek, hogy az olvask nem vesztek el a rszletekben, s idkzben mr el is gondolkoztak ezen). A protokollok klnbzsge az AS-en belli s az AS-ek kztti tvlaszts cljai kztti eltrsekkel magyarzhat:
Politika. Az AS-ek kztti tvlasztsnl eltrbe kerl a politika. A hlzatzemelte tnek nagyon fontos lehet, hogy egy adott AS-bl szrmaz forgalom ne haladhasson t valamelyik msik AS-en. Hasonlkppen egy adott AS ellenrizni, korltozni szeretn a tbbi AS kztti, ltala szlltott tmen forgalmat. A BGP azzal, hogy tattribtumo- kat szlit s gondoskodik az tvlasztsi adatok szablyozott terjesztsrl, lehetv teszi a politikaalap tvlasztsi dntsek meghozatalt. Az AS-en belli tvlasztsban sokkal kisebb szerepet jtszanak a politikai szempontok, mivel minden eszkz s kapcso lat legalbbis nvlegesen - ugyanazon adminisztratv fennhatsg al tartozik.
szempontoknak
megfelel
szemben).
AS-ek
tvlasztsnl meg sem jelenik az utakhoz tartoz kltsg, mrtkknt csak az AS-hopok szma szerepel. Egyetlen AS-en bell a politikai szempontok kevsb fontosak, ezrt az tvlasztsnl nagyobb szerephez jut az t ltal megvalsthat teljestkpessg.
pldnyl elkldheti a tbbi hlzati csompont valamely rszhalmaznak anlkl, hogy minden egyes clcsompontnak egyenknt cl kellene kldenie a csomagot. A 4.7.1. alfejezetben az adatszrsos tvlaszt algoritmusokkal s
ezeknek az ivlasztsi protokollokba trtn begyazsval, a 4.7.2. alfejezetben pedig a tbbeskldses tvlasztssal foglalkozunk.
Az N-utas egynekadsos megkzelts htrnyait figyelembe vve termszetes, hogy azok a megoldsok kerltek az rdeklds homlokterbe, amelyeknl a hlzati csompontok aktvan rszt vesznek a csomagok dupliklsban, tovbbtsban s az adatsz- rsos tvonalak kiszmtsban. Az albbiakban tbb ilyen megoldst is megvizsglunk. A 4.5. alfejezetben megszokott mdon egy G = (N,E) grfknt modellezzk a hlzatot, ahol a grf egy N csomponthalmaz s egy E lhalmaz egyttese, kiegsztve egy olyan relcival, amely megmondja, mely csompontprok kztt halad l. Kiss pongyola mdon bnunk majd a jellssel: ahol ez nem okoz flrertst, ott a csompontok halmaznak \N\ szmossgt is csak N-nel jelljk (ugyangy, mint magt a csomponthalmazt).
Szablyozatlan elraszts
Az adatszrs megvalstsnak legkzenfekvbb mdja az elrasztsos (flooding) mdszer, amelynl a forrscsompont minden szomszdjnak elkldi a csomag msolatt. Az adott csompont az adatszorsos csomag megkapst kveten lemsolja azt, s (a kld csomponton kvl) minden szomszdjnak elkldi. Ha a grf sszefgg, az eljrs sorn nyilvnvalan a grf minden csompontjhoz elbb-utbb eljut majd az adatszorsos csomag egy-egy msolata. Ez az eljrs egyszer s elegns, magban rejti azonban egy vgzetes hiba lehetsgt is (az olvas tovbbolvass eltt prblja meg kitallni, hogy mi is lehel az): ha a grf hurkokat is tartalmaz, akkor minden adatszorsos csomag egy vagy tbb msolata a vgtelensgig kering. A 4.40. brnl maradva: az R2 az R3 fel, az R3 az R4 fel, az R4 az R2 fel, az R2 pedig (jbl!) az R3 fel vgez elrasztst, s gy tovbb. Ebben az egyszer elrendezsben vgl kt adatszorsos csomag kering a vgtelensgig, az egyik az ramutat jrsval egyez, a msik azzal ellenttes irnyban. Elfordulhat azonban egy mg ennl is slyosabb vgzetes hiba: a tbb mint kt csomponttal sszekapcsolt csompont az adatszorsos csomag egynl tbb msolatt lltja el s tovbbtja, s ezek mindegyikrl szintn tbb msolat kszl azokon a csompontokon, amelyek kettnl tbb szomszddal rendelkeznek, s gy tovbb. Az adatszorsos csomagok vgte len msolsa rvn keletkez adatszrsi vihar (broadeast storm) elbb-utbb olyan sok adatszorsos csomagot llt el, hogy a hlzat hasznlhatatlann vlik.
Szablyozott elraszts
Az adatszrsi vihar gy kerlhet el, hogy a csompontok megfontoltan dntenek arrl, hogy elrasszk-e a szomszdaikat egy adott csomaggal (pldul tekintsenek el ettl, ha annak a csomagnak egy korbban kapott msolatval mr vgeztek elrasztst). Az elraszts korltozsra tbb mdszer is ismert a gyakorlatban. A sorszmmal szablyozott elrasztsnl (sequence-nuinber-controlled flooding) a forrscsompont a cmt (vagy ms egyedi azonostjt) s egy adatszrsi sorszmot (broadeast sequence number) helyez el az adatszorsos csomagba azeltt, hogy elklden sszes szomszdjnak. Minden csompont az ltala kapott, dupliklt s tovbbtott sszes adatszorsos csomag forrscmt s sorszmt tartalmaz jegyzket tart fenn. A csompont az adatszorsos csomag berkezsekor ellenrzi, hogy annak adatai szerepelnek-e eb ben a jegyzkben. Ha
igen, eldobja a csomagot, ha nem, akkor dupliklja s tovbbtja min den szomszdjnak (kivve azt a csompontot, amelytl a csomagot kapta). A 2. fejezetben ismertetett Gnutella protokoll a sorszmmal szablyozott elrasztst hasznlja a keressek adatszrsra tfed hlzatban (overlay network). (A Gnutella esetben az zenet dupli- klsa s tovbbtsa nem a hlzati, hanem az alkalmazsi rtegben trtnik.) A szablyozott elraszts a fordtott irny tovbbtsknt (reverse path forwarding, RPF) ismert mdszerrel is megvalsthat [Dalai 1978], amelyet egyes forrsok fordtott irny adatszrsnak (reverse path broadeast, RPB) is neveznek. Az RPF alapelve egyszer s mgis elegns. Az tvlaszt az adott forrscmrl berkez adatszrsos csomagot csak akkor kldi ki az sszes kimeneti interfszen (kivve azt, amelyiken berkezett), ha a csomag azon az interfszen rkezett be, amelyik a forrscmhez vezet minimlis kltsg egynekadsos t fel nz, teht amelyiken az tvlaszt a forrsnak sznt csomagokat kiklden. 1 Egyb esetekben egyszeren eldobja a berkez csomagot anlkl, hogy br melyik kimeneti interfszre tovbbtan. Az tvlaszt azrt dobhatja el ezt a csomagot, mert tudja, hogy a fent emltett interfszen vagy mr megkapta, vagy a jvben meg fogja kapni ennek a csomagnak egy pldnyt azon az interfszen, amely hlzattopolgiai rtelemben a forrs fel nz. Fontos megjegyezni, hogy az RPF nem hasznlja az egynekadsos tvlasztst ahhoz, hogy a csomagot a clnak kzbestse, s azt sem ignyli, hogy az tvlaszt ismerje a kzte s a forrs kztti teljes legrvidebb utat. Az RPF-nek csak a feladhoz vezet legrvidebb egynekadsos ton fekv legkzelebbi szomszdot kell is mernie; ezt az adatot kizrlag annak eldntsre hasznlja fel, hogy a kapott adatszrsos csomaggal elrassza-e szomszdait. A 4.41. bra szemllteti az RPF mkdst. Ttelezzk fel, hogy a vastag vonallal jelzett adatkapcsolatok az A forrs s a cmzettek kztti minimlis kltsg utak. Az /I csompont adatszrssal csomagot kld a Cs B csompontnak. A B csompont C-nek s D-nek is tovbbtja az /\-tl kapott csomagot, hiszen A a kzte s A kzti minimlis kltsg t mentn fekszik. Ezzel szemben tovbbts nlkl eldobja az sszes olyan csomagot, amelynek a forrsa /\, s amelyet brmelyik msik csomponttl (pldul a C vagy a D tvlaszttl) kap. Nzzk meg, mi trtnik a C csomponton, amely #-tl s kzvetlenl A-ti is megkapja az A ltal kldtt csomag egy-egy pldnyt. Mivel B nem fekszik a C s az A kzti legrvidebb t mentn, C eldobja azokat a /i-tl kapott csomagokat, amelyeknek a forrsa A. Ezzel szemben a kzvetlenl A-tl kapott csomagokat tovbbtja a B az E s az /'csompontnak.
Fesztfs adatszrs
A sorszmmal szablyozott elrasztssal s az RPF-fel elkerlhetk az adatszrsi
1
A fordt megjegyzse:
(spoofed packet) szlelsre egy ehhez nagyon hasonl, fordtott irny szrsnek (reverse path filtering, RPF) nevezett mdszert hasznlnak. Az tvlaszt akkor tekint hamisnak egy csomagot, ha nem azon az interfszen rkezett be, amelyen az lltlagos feladnak szl csomagokat ki kellene kldeni. A mdszer htrnya, hogy aszimmetrikus tvlaszts esetn (pldul egyirny gyr topolgij hlzatban) nem mkdik helyesen.
viharok, a felesleges adatszrsos csomagok kldse azonban nem kszblhet ki teljesen, gy pldul a 4.42. brn a B, C, D, E s F csompont egy vagy kt felesleges csomagot is kap. Idelis esetben minden csompontnak csak egy pldnyt kellene kapnia az adott adatszrsos csomagbl. 1 la megnzzk a 4.42. (a) bra vastag vonalaival sszekttt csompontjai ltal kifeszitett ft, azt ltjuk, hogy mindegyik csompont az adatszrsos csomag pontosan egy msolatt kapn akkor, ha a csomagok kizrlag a ft alkot kapcso-
4.6. TVLASZTS
AZ INTERNETEN
130
Jells:
* a csomagot az tvlaszt tovbbtja
4.41. bra. Plda a fordtott irny tovbbtsra latokon kerlnnek tovbbtsra, vagyis ilyenkor pontosan az trtnne, amit el szeretnnk rni. Az bra a fesztfa (spanning tree), vagyis egy olyan fa pldjt szemllteti, amely a grf minden egyes csompontjt tartalmazza. Kiss formlisabban: a G = (N,) grf fesztfja az a G = (N,E") grf, amelynl F az rszhalmaza, G sszefgg, krmentes s tartalmazza G minden csompontjt. Ha minden adatkapcsolathoz tartozik egy kltsg, a fa kltsge pedig az adatkapcsolatok kltsgeinek sszege, akkor (nem meglep mdon) azt a fesztft nevezzk minimlis fesztfnak (minimum spanning tree), amely a grf fesztfi kzl a legalacsonyabb kltsg. Az adatszrs teht gy is megoldhat, hogy a hlzati csompontok fesztft alaktanak ki. Az adott forrscsompont az elkldsre sznt adatszrsos csomagot a fesztfban is szerepl sszes kapcsolatn kikldi. A csomagot fogad csompont az sszes olyan szomszdjnak tovbbtja, amely a fesztfban is szomszdja (kivve azt, amelyiktl a csomagol kapta). A fesztfa nemcsak, hogy kikszbli a redundns csomagok kldst, hanem mg azt is lehetv teszi minden csompont szmra, hogy adatszrst kezdemnyezzen, ahogy az a 4.42. (a) s (b) brn is lthat. Fontos tudni, hogy egy adott csom pontnak nem kell a teljes ft ismernie; elg, ha tudja, hogy mely csompontok szomszdai a fesztfban is. A fesztfs megoldsnl a legnagyobb nehzsget a fesztfa fellltsa s karbantartsa jelenti. Eddig mr szmos elosztott fesztfa-algoritmust dolgoztak ki [Gallager 1983; Gartner 2003]. Az albbiakban csak az egyik egyszer algoritmussal fogunk foglalkozni. A kzpontalap fesztfa (center-based spanning tree) fellltsnl kijellnk egy kzponti csompontot, amelyet randevpontnak (rendezvous point) vagy magnak (core) is szoks nevezni. Ezt kveten a csompontok csatlakozsi szndkot jelz zeneteket kl denek a kzponti csompontnak. Ennek tovbbtsa a kzpont fel irnyul egynekadsos tvlaszts segtsgvel trtnik, amg az zenet el nem ri valamelyik, a fesztfhoz mr csatlakozott csompontot vagy a kzpontot. Mindkt esetben a csatlakozsi szndkot jelz zenet ltal megtett t meghatrozza a fesztfnak a kzpont s az zenetet kld csompont kztti gt. Ezt gy is elkpzelhetjk,
131
132
4. A HLZATI RTEG
4.42. bra. Adatszrs egy fesztfa mentn A 4.43. bra szemllteti a kzpontalap fesztfa fellltst. Ttelezzk fel, hogy az E csompont a fa szmra kivlasztott kzpont, s hogy az F csompont az els csompont, amelyik csatlakozni szeretne a fhoz s csatlakozsi szndkot jelz zenetet kld -nek. Ekkor az egyedi EF-adatkapcsolat lesz a kezdeti fesztfa. A B csompont ezt kveten kldi el -nek csatlakozsi szndkt jelz zenett, amivel szintn a fesztfa rszv vlik. Ttelezzk fel, hogy az E s B kztti egynekadsos t D-n keresztl vezet. Ebben az esetben a csatlakozsi szndkot jelz zenet azt eredmnyezi, hogy a BDF. t is a fesztfa rszv vlik. Ezt kveten az A csompont csatlakozik a fesztfa-csoporthoz azzal, hogy E irnyba elkld egy csatlakozsi szndkot jelz zenetet. Ma az A s E kztti egynekadsos t B-n keresztl vezet, akkor, mivel B mr rsze a fesztfnak, A zenetnek B-hez rkezsekor az AB kapcsolat is a fesztfa rszv vlik, s A zenett nem felttlenl szksges E-ig tovbbtani. A C csompont gy csatlakozik, hogy csatlakozsi szndkt jelz zenett kzvetlenl E-nek kldi. Vgl, mivel a G s E kztti egynekadsos tvlasztsnak rintenie kell a D csompontot, a G ltal E-nek kldtt csatlakozsi szndkot jelz zenet D-hez val megrkezst kveten a GD kapcsolat is hozzaddik a fesztfhoz a D csompontban.
133
az adott csompont mr korbban is fogadott, dupliklt s tovbbtott-e. A 2.6. alfejezetben azt is megeltettk, hogy a Gnutella egy letben maradsi id (Time To Live, TTL) mezt is hasznl, hogy az elrasztsos lekrdezsek tovbbtsakor korltozza a hopok szmt. A Gnutella-processz a lekrdezs berkezsekor s dupliklsakor annak tovbbtsa eltt eggyel cskkenti a TTL-mez rtkt. Ily mdon az elrasztsos
134
4. A HLZATI RTEG
b) A fellltott fesztfa
4.43. bra. Fesztfa kzpontalap fellltsa Gnutella-lekrdezs csak azokat a trsakat ri el, amelyek a lekrdezs kezdemnyezjtl az alkalmazsi rtegbeli hopok adott szmn (a TTL kezd rtkn) bell vannak, zrt nevezik a Gnutella elrasztsos mechanizmust nha
135
4.7.2. A tbbesklds
Az elz fejezetben lttuk, hogy az adatszrsos szolgltats a hlzat minden egyes csompontjnak kzbesti a csomagokat. Ebben a fejezetben a tbbeskldses (multicast) szolgltatssal foglalkozunk, amely a csomagokat a hlzati csompontok egy meghatrozott rszhalmaznak kzbesti. Szmos jabban fejlesztett hlzati alkalmazs ignyli az egy vagy tbb kldtl szrmaz csomagok egy meghatrozott csoportnak val kzbestst.
136
4. A HLZATI RTEG
Ilyen alkalmazsok pldul: nagy adatmennyisgek, mondjuk szoftverfrisstsek tvitele; folyamatos mdiaadatok folyamszer kzvettse (pldul egy l elads hang-, vide- s szvegadatainak tvitele); a kzs adatokkal dolgoz alkalmazsok (pldul egy tbbrsztvevs munkatbls vagy telekonferencis alkalmazs); a hrfolyamok (pldul rszvnyr- folyamok); webes gyorsttrak tartalmnak frisstse; az interaktv jtk (pldul elosz tott, interaktv virtulis krnyezet hasznlata vagy tbbfelhasznls jtk esetn). A tbbeski'ildses adattvitelnl kt problmval is szembeslnk: a tbbeskldses csomag cmzettjeinek azonostsval s a csomagok cmzsvel. Az egynekadsos adattvitelnl a cmzett (vagy cl) IP-cme, amelyet minden IP egynekadsos IP-datagram tartalmaz, egyetlen cmzettet azonost; az adatszrsnl nincs szksg clcmekre, mivel minden csompontnak meg kell kapnia az adatszrsos csomagot. A tbbeskldsnl azonban minden csomagnak tbb cmzettje van. Van-e annak rtelme, hogy mindegyik tbbeskldses csomag az sszes cmzett cmt tartalmazza? Ez nyilvn csak kis szm cmzett esetben jrhat, tbb szz vagy akr tbb ezer cmzett esetn a datagram l tal szlltott cmadatok kiszortank a csomagbl a hasznos adatot. Ahhoz, hogy a kld explicit mdon azonostani tudja a cmzetteket, ismernie kell azok cmt. Rvidesen meg fogjuk ltni, hogy ez nem minden esetben kvnatos. A fentiek miatt az internetes architektrban (de ms architektrkban, pldul az ATM-ben [Black 1995] is) a tbbeskldses csomag cmzsnl a cm alapjn trtn kzvetett tovbbtst (address indirection) alkalmazzk, amelynl a cmzettek adott csoportjnak egyetlen azonostja van, s a hlzat az adott csoport minden tagjnak kzbest egy-egy pldnyt az ennek az azonostnak cmzett csomagokbl. Az internet esetben a cmzettek csoportjt jelkpez azonost egy D-osztly tbbeskldses IP-cm. A vgpontok egy adott D-osztly IP-cmmel elrhet csoportjt tbbeskldses csoportnak (multicast group) nevezik. A tbbeskldses csoport koncepcijra lthatunk pldt a 4.44. brn, ahol (a vstag vonallal jellt) ngy hoszt tagja a 226.17.30.197-es tb beskldses csoportcmmel rendelkez csoportnak s megkapja valamennyi, erre a cmre kldtt datagramot. Megoldand problmt jelent az, hogy minden hoszt olyan egyedi IP-cmmel rendelkezik, amely teljesen fggetlen azoknak a tbbeskldses csoportoknak a cmtl, amelyeknek tagja. A tbbeskldses csoport egy alapjaiban egyszer koncepci, ennek ellenre egy sor krdst vet fel. Hogyan jnnek ltre a csoportok s hogyan sznnek meg? Hogyan vlasztjk meg a csoportcmet? Hogyan csatlakozhatnak j tagok (kldknt vagy fogadknt) a csoporthoz? Brki csatlakozhat-e a csoporthoz (s kldhet a csoportnak vagy fogadhat a csoporttl datagramot), vagy korltozva van-e a csoporttagsg, s ha igen, ki ltal? Megtudjk-e a tagok a hlzati rtegbeli protokoll mkdsbl addan, hogy kik a csoport tagjai? Hogyan mkdnek egymssal egytt a hlzati csompontok annak rdekben, hogy a tbbeskldses datagramok eljussanak a csoport minden tagjhoz? Az internet esetben ezek a krdsek az Internet Group Management Protocol (IGMP; internetes csoportkezel protokoll) segtsgvel vlaszolhatk meg [RFC 3376]. Ezrt az albbiakban rviden ismertetjk az IGMP-t, majd visszatrnk a fenti krdsek trgyalsra.
137
Az IGMP mkdse
Az IGMP 3-as verzija [RFC 3376) a hoszt s az ahhoz kzvetlenl kapcsold tvlaszt kztti kommunikci mdjt rja le (informlisan azt mondhatjuk, hogy a kzvetlenl kapcsold tvlaszt a legkzelebbi azok kzl, amelyeket a hoszt a sajt helyi hlzatn
4.6. TVLASZTS
AZ INTERNETEN
138
mcast group 226.17.30.1 97
128.119.40.186
128.34.108.63
Jells:
s* olyan tvlaszt, amelyhez csatlakozik a csoport valamely tagja *^an tvlaszt, amelyhez nem csatlakozik tobbeskltses csoporthoz tartoz tag
A tbbeskldses csoport: o csoportnak cmzett datagramot a tbbeskldses csoport minden tagjhoz kikzbestik
4.44. bra. kvli brmely ms hoszthoz vezet ton lt), ahogy ez a 4.45. brn is lthat. Az brn szemlltetett hrom, a hosztok hoz legkzelebbi tbbeskldses tvlaszt egy-egy inter- fsszel kapcsoldik a hozz tartoz hosztokat tartalmaz LAN-hoz. A LAN-okhoz ugyan tbb hoszt is csatlakozik, de ezek kzl valamely adott idpontban ltalban csak nhny tartozik egy adott tbbeskldses csoporthoz. A hoszt az IGMP segtsgvel tjkoztatja a hozz csatlakoz tvlasztt arrl, hogy a hoszton fut valamely alkalmazs csatlakozni kvn valamelyik tbbeskldses csoporthoz. Mivel az lGMP-s egyttmkds egy hosztra s a hozz kapcsold tvlasztra korltozdik, nyilvnvalan egy msik protokollra is szksg van a tbbeskldses tvlasztknak (belertve ebbe a hosztokhoz kzvetlenl kapcsold tvlasztkat is) az internet egszre kiterjed koordinlshoz, ami alapfelttele annak, hogy a tbbeskl dses datagramok el is jussanak a vgclokhoz. Hz utbbi funkcionalitst azok a hlzati rtegbeli tbbeskldses tvlaszt algoritmusok valstjk meg, amelyekkel rvidesen meg fogunk ismerkedni. Az internet esetben a hlzati rtegbeli tbbesklds teht kt dologra tmaszkodik: az IGMP-re s a tbbeskldses tvlasztsi protokollokra. Az IGMP csak hrom zenettpust definil. Az ICMP-hez hasonlan az IGMP-zeneteket is IP-datagramok szlltjk; az IGMP protokoll-azonostja a 2. A membership_query (laglekrdezses) zenetet az tvlaszt valamely csatlakoz interfsz valamennyi hosztjnak elkldi (pldul egy LAN sszes hosztjnak), hogy megtudja, mely tbbeskldses csoportokhoz csatlakoztak az adott interfszhez kapcsold hosztok. Erre az zenetre a hosztok az IGMP membership_report (tagsgjelents) zenetvel vlaszolnak; egy hoszt valamely alkalmazs els csatlakozsakor akkor is kldhet members-
139
140
4. A HLZATI RTEG
141
a D-hez kapcsoldak pedig nem tagjai a tbbeskldses csoportnak, sem C-nek, sem D-nek nem kell megkapnia a tbbeskldses forgalmat. A tbbeskldses tvlasztsnak teht az a feladata, hogy megtallja azt az adatkapcsolati ft, amely sszekti az sszes olyan tvlasztt, amelyhez a tbbeskldses csoportot kpez hosztok kapcsoldnak. Ezt kveten a tbbeskldses csomagok e fa mentn tovbbtdnak a kldtl a tbbeskldses fhoz tartoz sszes hosztig. A fnak termszetesen olyan tvlasztk is lehetnek rszei, amelyekhez nem kapcsoldnak a tbbeskldses csoporthoz tartoz hosztok (pl dul a 4.46. brn A, B, E s F nem is lehetnnek sszekthetk egy olyan fban, amely nem tartalmazza a C vagy a D tvlasztt). A gyakorlatban kt megoldst alkalmaznak a tbbeskldses tvlasztsi fa fellltsra. Mivel mindkettrl mr volt sz az adatszrsos tvlasztssal kapcsolatban, itt csak rintlegesen foglalkozunk velk. A kt megolds abban klnbzik egymstl, hogy mg az egyiknl a csoport tagjai kzsen hasznlnak egyetlen ft az sszes kldtl szrmaz forgalom elosztsra, addig a msiknl minden egyes kld szmra kln tvlasztsi ft lltanak fel. Tbbeskldses tvlaszts a csoport ltal kzsen hasznlt fval. A fesztfs adatszrshoz hasonlan ez a mdszer is egy olyan fa fellltsra pl, amely az sszes olyan, a hlzat peremn lev (szls") tvlasztt tartalmazza, amelyhez kapcsoldik a tbbeskldses csoporthoz tartoz hoszt. A gyakorlatban a kzpontalap megoldst hasznljk a tbbeskldses tvlasztsi fa fellltsnl, ahol a fent emltett szls tvlasztk csatlakozsi szndkot jelz zeneteket kldenek a kzponti csompont nak. Az adatszrshoz hasonlan ezek az zenetek is az egynekadsos tvlasztssal tovbbtdnak a kzpont fel, amg meg nem rkeznek valamely, a fa rszt kpez tvlaszthoz vagy a kzponti csomponthoz. Ezt kveten a csatlakozsi szndkot jelz zenet tjn fekv sszes tvlaszt az imnt csatlakoz szls tvlaszthoz tovbbtja majd az ltala megkapott tbbeskldses csomagokat. A kzpontalap ft hasznl tbbeskldses tvlaszts knyes pontja a kzpont kivlasztsnak mdja. A kzpontot kivlaszt algoritmusok rszletes trgyalsa megtallhat a [Wall 1980; Thaler 1997; Estrin 1997] forrsokban. Tbbeskldses tvlaszts forrsalap fval. Mg csoport ltal kzsen hasznlt ft alkalmaz tbbeskldses tvlasztsnl egyetlen, kzsen hasznlt fa kerl fellltsra az sszes kld csomagjainak tovbbtsra, addig az ebben a bekezdsben ismertetett megoldsnl a tbbeskldses csoporthoz tartoz minden egyes forrs szmra kln fa fellltsra kerl sor. A gyakorlatban a valamely x forrscsomponthoz tartoz fa fellltsa egy RPFalgoritmus segtsgvel trtnik. A korbban ismertetett adatszrsos RPFalgoritmust kicsit t kell alaktani ahhoz, hogy a tbbes- kldsnl is hasznlhat legyen. Ennek okt megrtjk, ha megnzzk, mi is trtnik a D tvlasztnl a 4.47. brn. Az adatszrsos RPF-nl ez az tvlaszt annak ellenre tovbbtana G-nek csomagokat, hogy G-hez nem csatlakoznak a tbbeskldses csoporthoz tartoz hosztok. Az brn lthat pldban ez nem jelentene katasztrft, hiszen a hlzatban D alatt csak az az egy tvlaszt helyezkedik el, de kpzeljk csak cl, mi trtnne, ha tbb ezer lenne! A tbb ezer tvlaszt kzl mindegyik kapna nem kvnt tbbeskldses csomagokat. (Ez a helyzet nem is annyira valszertlen, mint gondolnnk. Az
142
4. A HLZATI RTEG
els globlis tbbeskldses hlzatnak, az MBone-nak [Casner 1992; Macednia 1994], kezdetben ppen ezzel a problmval kellett megkzdenie.) A nem kvnt tbbeskldses csomagok kzbestsnek megakadlyozsra az RPF
4.7.
143
ms tvlasztk
algoritmust ki kell bvtennk a metszs (pruning) nev mvelettel: az az tvlaszt, amely annak ellenre kap tbbeskldses csomagokat, hogy nem kapcsoldik hozz az adott csoporthoz tartoz hoszt, metszszenetei kld annak az tvlasztnak, amely a nem kvnt csomagot kzbestette neki. Azok az tvlasztk, amelyek az sszes - a tbbeskldses csomagok forrsa fell nzve - aljuk tartoz tvlaszttl metszszenetet kaptak, a legkzelebbi, a forrs fel es tvlasztnak maguk is kldhetnek metszszenetet. 1
csoportokbl az rintett tvlasztknak egyenknt ki kell lpnik. A problma analg azzal, amikor kretlen leiratkozhatunk, sszessgben mgsem cskken a berkez reklmok mennyisge (mg akkor sem, ha a leiratkozs valban mkdik), meri mindig jabb rekJmforrsok jelennek meg.
144
Jells:
a csomag tovbbtsra kerl =-* a csomagot
a/
tvlaszt rm tovbbtja
4.47. bra. Fordtott irny tovbbts tbbesklds esetn (dense mode) RFC 3973] a tbbeskldses csoport tagjai srn helyezkednek el, azaz a krnyk szmos vagy legtbb tvlasztja knytelen lesz rszt venni a tbbeskldses da- tagramok tovbbtsban. A PIM sr zemmdja egy a DVMRPhez hasonl elrasz- tsos-metszses fordtott irny tovbbtsi algoritmuson alapul. A ritka zemmdnl (sparse mode) [RFC 4601] az sszes tvlaszthoz kpest kicsi azoknak az tvlasztknak a szma, amelyekhez csoporttagok csatlakoznak, azaz a csoporttagok egymstl tvol, nagy terleten sztszrdva helyezkednek el. A PIM ritka zemmdja randevpontok segtsgvel lltja fel a tbbeskldses eloszt ft. A forrsspecifikus tbbeskldsnl (source-specific multicast, SSM) |RFC 3569, RFC 4607] csak egyetlen forrs kldhet forgalmat a tbbeskldses fba, ami nagy mrtkben megknnyti a fa fellltst s karbantartst. Ha egy egyetlen adminisztratv irnyts al tartoz hlzaton bellre korltozdik a PIM s a DVMRP alkalmazsa, a hlzatzemeltet a krzeten bell nagyjbl ugyangy konfigurlhatja a tbbeskldses IP-tvlasztkat, mint a RIP, az IS-IS vagy az OSPF AS-en belli egynekadsos tvlasztsi protokollok alkalmazsakor. De mi a helyzet a klnbz AS-ek kztti tbbeskldses tvonalak esetben? Ltezik vajon olyan, a BGP-hez hasonl, AS-kzi tvlasztsi protokoll, amely tmogatja a tbbeskldst? Igen, ltezik: az [RFC 4271] olyan funkcikkal bvti a BGP-t, amelyek segtsgvel ms (tbbek kztt a tbbeskldses) protokollok szmra is szllthatk az tvlasztssal kapcsolatos adatok. A klnbz ritka zemmd PIM-et hasznl AS-ekben tallhat randevpontok a Multicast Source Discovery Protocol (tbbeskldses forrsfeldertsi protokoll, MSDP) [RFC 3618, RFC 4611] segtsgvel kapcsolhatk ssze. Befejezsl megjegyezzk, hogy az IP tbbesklds szles kr alkalmazsa mg vrat magra. Jelenlegi internetes hasznlatrl tbb rdekes adat tallhat a [Dit
4.7.
145
2000] s a [Sharma 2003) forrsban. Egyelre azonban korai lenne a tbbeskldst eltemetni. Az Internet2 i s a vele kommunikl trshlzatok mr tbb ve szlltanak tbbeskldses forgalmat [Inter- net2 Multicast 2007]. Az Egyeslt Kirlysgban a BBC rszvtelvel folynak az IP tbbes kldses tartalomsztosztssal kapcsolatos ksrletek (BBC Multicast 2007]. Ugyanakkor az alkalmazs szint tbbesklds a trsak kztti tbbeskldses tartalom-sztosztst inkbb alkalmazsi rtegbeli (s nem hlzati rtegbeli) tbbeskldses protokollokkal valstja meg, ahogy azt a 2. fejezetben bemutatott PPLive- vagy ms P2P-rendszerek (pldul az Knd System Multicast [ESM 2007]) esetben lttuk. Krds, hogy a tbbeskldses szolgltatsokat a jvben a hlzati rtegbe (a hlzat belsejbe) vagy az alkalmazsi rtegbe (a hlzat szlre) teleptik majd. Noha a tartalom-sztoszts jelenlegi P2P-divatja rvid tvon az alkal mazsi rtegbeli tbbesklds fel billenti a mrleg nyelvt, a hlzati rtegbeli tbbesklds technikja is lassan, de biztosan fejldik; a verseny mg nem dlt cl.
4.8. sszefoglals
Ebben a fejezetben megkezdtk utazsunkat a hlzat belseje fel. Megtudtuk, hogy a hlzati rteg mkdse a hlzat minden egyes hosztjt s tvlasztjt rinti, s hogy emiatt a hlzati rtegbeli protokollok a legizgalmasabbak kz tartoznak. Lttuk, hogy egy tvlasztnak egyidejleg akr tbb milli, klnbz forrsokbl ered s cloknak sznt csomagfolyamot is fel kell dolgoznia. A hlzattervezk az vek sorn megtanultk, hogy az tvlasztk akkor tudnak ezzel sikeresen megbirkzni, ha az ltaluk elltand feladatok a lehet legegyszerbbek. Ezt a clt szolglja a datagramalap hlzati rteg elnyben rszestse a virtulisramkr-alapval szemben, a karcsstott, lland hosszsg fejrsz hasznlata s a darabols elkerlse az IPv6-ban, valamint a legjobbra trekv (best-effort) szolgltats. Az eszkztr taln legfontosabb eleme az, hogy az tvlasztsi dntsek meghozatalhoz nem kell nyomon kvetni az egyedi folyamokat, hanem elegend a datagramokban szlltott hierarchikusan strukturlt clcmeket figyelembe venni. Itt jegyezzk meg, hogy a posta mr rgta hasznlja ezt a megoldst. Ebben a fejezetben azokkal az alapelvekkel is megismerkedtnk, amelyekre az tvlaszt algoritmusok plnek. Megtudtuk, hogy ezek az algoritmusok hogyan lltjk el a hlzatok csompontokat s adatkapcsolatokat tartalmaz absztrakt grfmodelljt. Ennek az absztrakcinak a segtsgvel hasznosthatk az opercikutatsnak s az algoritmuselmletnek a legrvidebb utak megkeressvel kapcsolatos eredmnyei. Lttuk, hogy kt megolds terjedt el szles krben: a centralizlt (globlis) tvlaszts, amelynl minden csompont megkapja a hlzat teljes trkpt s a tbbi csomponttl fggetlenl alkalmaz egy adott legrvidebb utakat keres tvlaszt algoritmust; s a decentralizlt tvlaszts, amelynl az egyes csompontok csupn a hlzat bizonyos rszeirl rendel keznek ismeretekkel, de a centralizlt megoldssal ellenttben egymssal egyttmkd ve talljk meg a legrvidebb csomagtovbbtsi utakat. Megvizsgltuk, hogyan tehet az tvlaszts sklzhatv a nagymret hlzatok hierarchikus, egymstl fggetlen A fordt megjegyzse: Az Internet2 egy nagysebessg kisrleli/kutati hlzat, amelyhez
2008 kzepre az Amerikai Egyeslt llamok mintegy 240 egyeteme csatlakozott, s amely szmos nemzetkzi akadmiai hlzathoz (gy pldul a pn-eurpai GEANT-hoz s a magyar HUNGARnet-hez is) kapcsoldik.
146
4. A HLZATI RTEG
tartomnyokba (autonm rendszerekbe, AS-ekbe) val particionlsval. Az egyes AS-ek egymstl fggetlenl tovbbtjk a datagramokat az adott AS-en bell, hasonlan ahhoz, ahogy az egyes orszgok is egymstl fggetlenl tovbbtjk a postai forgalmat az orszgon bell. Megtudtuk, hogy a centralizlt, decentralizlt s hierarchikus megoldsok miknt plnek be az internet fontosabb tvlasztsi protokolljaiba: az RIP-be, az OSPF-be s a BCP-be. Vgl megismerkedtnk az adatszrsos s a tbbeskldses tvlasztssal. Most, hogy befejeztk a hlzati rteggel val ismerkedst, egy lpssel tovbb haladunk a protokollkszlet lejjebb fekv rtegei fel, s az adatkapcsolati rteggel foglalkozunk majd. A hlzati rteghez hasonlan az adatkapcsolati rteg is a hlzat belsejnek rsze, de mint a kvetkez fejezetben ltni fogjuk, egy jval krlhatroltabb feladatot lt el, nevezetesen a csomagok mozgatst azonos fizikai adatkapcsolaton vagy LAN-ban elhelyezked csompontok kztt. Felletesen szemllve gy tnhet, hogy ez sokkal egyszerbben megoldhat, mint a hlzati rteg klnbz feladatai, de ltni fogjuk, hogy az adatkapcsolati rteg szmos fontos s rdekes krdst vet fel, amelyek trgyalsa szintn sok figyelmet ignyel.
Krdsek_______________________________________________
4.1-4.2. alfejezet KI. Vegyk szmba a knyvben hasznlt terminolgit. Emlkezznk arra, hogy a szlltsi rtegbeli csomagot szegmensnek hvjuk, az adatkapcsolati rtegbelit pedig keretnek. Hogy hvjk a hlzati rtegbeli csomagot? Idzzk fel, hogy az tvlasztkat csakgy, mint az adatkapcsolati rtegbeli kapcsolkat csomagkapcsolknak nevezzk. Mi az alapvet klnbsg az tvlaszt s az adatkapcsolati rtegbeli kapcsol kztt? Ne felejtsk el, hogy az tvlaszt fogalmt egyarnt hasznljuk a datagramhlzatok s a virtulis ramkri hlzatok esetben. K2. Melyik a kt legfontosabb hlzati rtegbeli funkci a datagramhlzatokban? Melyik a hrom legfontosabb hlzati rtegbeli funkci a virtulis ramkrket hasznl hlzatokban? K3. Mi a klnbsg az tvlaszts (routing) s a tovbbts (forwarding) kztt? K4. Hasznlnak a datagramhlzatok s a virtulis ramkri hlzatok tvlaszti tovbbttblkat? Ha igen, ismertesse a ktfle hlzatban hasznlt tovbbttblkat. K5. Mulasson be nhny felttelezett szolgltatst, amelyet a hlzati rteg egy egyedi csomagnak, illetve egy csomagfolyamnak nyjtani kpes. Van ezek kztt olyan, amelyet az internet hlzati rtege nyjt? Nyjt-e ilyen szolgltatsokat az ATM CBR szolglati modellje? Ht az ATM ABR szolglati modellje? K6. Soroljon fel nhny olyan alkalmazst, amelyek szmra elnyt jelentene az ATM CBR szolglati modellje. 4.3. alfejezet K7. Magyarzza el, hogy mirt trolja a nagysebessg tvlasztk minden
4.7.
147
4.7.
151
K8. A 4.3. alfejezetben a kapcsolgpek hrom tpusval ismerkedtnk meg. Sorolja fel s rviden ismertesse ezeket. K9. Magyarzza el, hogyan kerlhet sor csomagvesztsre a bemeneti portokon. Hogyan kerlhet el a csomagveszts vgtelen kapacits pufferek hasznlata nlkl? K10. Magyarzza el, hogyan kerlhet sor csomagvesztsre a kimeneti portokon. Kll. Mit rtnk soreleji (HOL-) blokkols alatt? A bemeneti vagy a kimeneti portokon fordul el? 4.4. al fejezet K12. Rendelkeznek-e az tvlasztk IP-cmmel? Ha igen, hnnyal? KI3. Mi a 223.1.3.27-es IP-cm 32 bites binris megfelelje? K14. Ltogasson el egy hoszthoz, amely a DHCP segtsgvel hatrozza meg IPcmt, hlzati maszkjt s helyi DNS-szervere IP-cmt. Sorolja fel ezeket az rtkeket. KI5. Ttelezzk fel, hogy egy forrs- s egy clhoszt kztt hrom tvlaszt helyezkedik el. Hny interfszen keresztl kell thaladnia egy IP-datagramnak a forrs s a cl kztt, ha eltekintnk a darabolstl? Hny tovbbttbla jut szerephez a datagram forrs s cl kztti tovbbtsakor? Kl. Ttelezzk fel, hogy egy adott alkalmazs minden 20. ezred msodpercben elllt egy 40 bjtos adat tredket, amelyet egy TCP-szegmensbe, majd egy IP-data- gramba csomagolva szllttat el. A datagram adatainak hny szzalkt teszi ki a fejrsz, illetve az adatmez? K17. Ttelezzk fel, hogy A hoszt B hosztnak egy IP-datagramba csomagolt TCPszeg- menst kld. A csomag megkapst kveten honnan ludja a B hosztnl lv hlzati rteg, hogy a szegmenst (vagyis a datagram adatmezjt) a TCP-nek s ne az UDP-nek vagy valamelyik msik protokollnak adja t? K18. Ttelezzk fel, hogy vsrolt egy vezetk nlkli tvlasztt, s ezt sszekapcsolja a modemjvel, tovbb, hogy az internetszolgltatja dinamikusan oszt ki az n eszkznek (vagyis vezetk nlkli tvlasztjnak) egy IP-cmet. Tegyk mg fel, hogy t otthoni PC-je van, amelyek az IEEE 802.11 szerint kapcsoldnak vezetk nlkl a fent emltett vezetk nlkli tvlaszthoz. Hogyan kaphat IP-cmet az t PC? Szerephez jut-e a vezetk nlkli tvlasztn a NAT? Ha igen, mirt? Ha nem, mirt nem? K19. Hasonltsa ssze az IPv4 s az 1P V 6 fejrszmezit. Vannak olyan mezk, amelyek mindkt protokollban szerepelnek? K20. Sz volt arrl, hogy az IPv6- az IPv4-alagutakal adatkapcsolati rtegbeli protokollokkent kezeli az IPv6-datagramoknak az IPv4-tvlasztkon trtn alagt tpus tvitelnl. Egyetrt ezzel az lltssal? Ha igen, mirt? Ha nem, mirt nem? 4.5. al fe jezet K21. Hasonltsa ssze a kapcsolatllapot-alap s a tvolsgvektor-alap tvlaszt algoritmusokat. K22. Magyarzza el, hogy mirt az internet hierarchikus felptsnek ksznhet, hogy tbb millian is hasznlhatjk. K23. Szksges-e, hogy minden autonm rendszer ugyanazt az AS-en belli
152
4. A HLZATI RTEG
129
4.6. alfejezet K24. Ttelezzk fel, hogy a 4.34. bra D tvlasztja (amely mg az eredeti tblval rendelkezik) A-tl az albbi hirdetst kapja:
Clalhlzat z w
X
Legkzelebbi tvlaszt C
K25. K26.
K27. K28.
K29.
Megvltozik-e a hirdetst kveten D tblja? Ha igen, hogyan? Hasonltsa ssze a RIP s az OSPF ltal hasznlt hirdetseket. Helyettestse be a hinyz kifejezst: a RIP-hirdetsek tipikusan a hopok szmt adjk meg a klnbz clokhoz vezet ton. Ezzel szemben a BGPzenetek a klnbz clokhoz az__________________________________-t hirdetik. Mirt klnbznek egymstl az internetes AS-kzi s AS-en belli tvlasztsi protokollok? Ugyanolyan fontosak a politikai szempontok az AS-en belli protokolloknl (pldul az OSPF-nl s az RIP-nl), mint az AS-kzi protokolloknl (pldul a BGP-nl)? Definilja s hasonltsa ssze az albbi fogalmakat: alhlzat, prefix, BGP-
tvonal.
K30. Hogyan hasznlja a BGP a NEXT_HOP s az AS_PATH attribtumot? K31. rja le, hogy miknt rvnyesthet egy felsbb szint internetszolgltat politikai szempontokat a BGP belltsa sorn. 4.7. alfejezet K32. Milyen lnyeges klnbsg van akztt, hogy az adatszrsi tbb egynekadssal vagy az adatszrst megvalst hlzati funkcikkal oldjuk meg? K33. llaptsa meg, hogy az albbi lltsok kzl melyek igazak s melyek hamisak az adatszrsos tvitel ltalunk vizsglt hrom megoldsra - a nem
130
4. A HLZATI RTEG
Feladatok______________________________________________
szablyozott elrasztsra, a szablyozott elrasztsra s a fcsztfs adatszrsra - abban az esetben, ha nincs puffertlcsorduls miatti csomagveszts, s minden csomag kzbestse a klds sorrendjben trtnik. (a) Egy csompont ugyanannak a csomagnak tbb msolatt is megkaphatja. (b) Egy csompont ugyanazon a kimeneti adatkapcsolaton egy adott csomag tbb msolatt is tovbbthatja. K34. Ha egy hoszt csatlakozik egy tbbeskldses csoporthoz, sajt cmt a csoport cmre kell cserlnie? K35. Milyen szerepet jtszik az IGM P s milyet a nagy kiterjeds hlzatban alkalmazott tbbeskldses tvlasztsi protokoll? K36. Mi a klnbsg a csoport ltal kzsen hasznlt fa s a forrsalap fa kztt a tbbeskldses tvlasztsnl?
FI. Mrlegelje a virtulis ramkri (VC-) hlzatok s a datagramhlzatok nhny elnyt s htrnyt. (a) Ttelezzk fel, hogy az tvlasztk a hlzati rtegben olyan ignybevtelnek vannak kitve, amelynek kvetkeztben gyakran mkdnek hibsan. Milyen magas szint intzkedsekkel kellene reaglni az ilyen tvlaszt-meghibsodsokra? Ilyen esetekben a VCvagy a datagram-architektra az elnysebb? (b) Ttelezzk fel, hogy a teljestkpessg egy adott szintjnek (pldul a ksleltets mrtknek) valamely cl-forrs tvonal mentn trtn szavatolshoz a hlzat azt ignyli, hogy a kld nyilatkozzon cscsforgalma mrtkrl. Ha a bejelentett cscsforgalmi sebessg s a mr korbban bejelentett, meglev forgalmi sebessgek nem teszik lehetv, hogy a forrs s a cl kztti forgalom megfeleljen az ignyelt ksleltetsi kvetelmnyeknek, a forrs krst a hlzat elutastja. Ez a VC- vagy a datagram-architektrval oldhat meg knnyebben? F2. Tekintsnk egy virtulis ramkri hlzatot. Ttelezzk fel, hogy a VC-szm egy 16 bites mez. (a) Legfeljebb hny virtulis ramkr szllthat egy adott adatkapcsolaton? (b) Ttelezzk fel, hogy az sszekttets ltestsekor egy kzponti csompont hatrozza meg az utakat s a VC-szmokat, s hogy a VC tvonala mentn fekv minden egyes adatkapcsolaton ugyanazt a VCszmot hasznlja. rja le, hogy a kzponti csompont hogyan hatrozhatja meg a VC-szmot az sszekttets ltestsekor. Elfordu 1 hat- e, hogy a z adat kapcsolat az (a) pontban meghat rozot t maximlis szmnl kevesebb VC-t szllt, s mgsincs egy kzs szabad VC-szm? (c) Ttelezzk fel, hogy a VC-tvonal mentn minden egyes adatkapcsolat ms-ms VC-szmmal rendelkezhet. rja le, hogyan vlaszthatnak az adatkapcsolatok decentralizlt mdon, a kzponti csomponttl fggetlenl VC-szmot az sszekttets ltestse kzben azt kveten, hogy meg lett hatrozva egy adott vgponttl vgpontig kiterjesztett t. F3. A VC-hlzatban egy egyszer tovbbttbla ngy oszlopbl ll. Mit jelentenek az egyes oszlopokban szerepl rtkek? Adatagramhlzatban egy egyszer tovbbttbla kt oszlopbl ll. Mit jelentenek az egyes oszlopokban szerepl rtkek?
4.7.
131
F4. Tekintsnk egy VC-hlzatot, amelyben a VC-szm mezje 2 bites. Tegyk fel, hogy a hlzat egy ngy adatkapcsolatot (az A-t, a B-t, a C-t s a D-t) rint VC-t akar ltesteni, s hogy ez a ngy adatkapcsolat mr kt-kt msik VC-t szllt az albbi VC-szmokki:
A adatkapcsolat 00 01 B adatkapcsolat 01 10 C adatkapcsolat 10 11 D adatkapcsolat 11 00
F5. F6.
F7.
F8.
Az albbi krdsek megvlaszolsa sorn ne feledkezzen meg arrl, hogy az egyes VC-k a ngy adatkapcsolat kzl esetleg csak az egyiken haladnak t. (a) Ha mindegyik VC-nek az tja mentn fekv sszes adatkapcsolaton ugyanazt a VC-szmot kell hasznlnia, milyen VC-szmot lehetne kiosztani az j VC szmra? (b) Ha mindegyik VC ms-ms VC-szmot hasznlhat az tja mentn fekv klnbz adatkapcsolatokon (vagyis a tovbbttblknak VC-szm transzformcit kell vgrehajtaniuk), a ngy adatkapcsolat egyedi VCszmainak hny klnbz kombincija hasznlhat? Mi a klnbsg az sszekttets-alap szolgltats szlltsi, illetve hlzati rtegbeli implementcija kztt? A 4.3. alfejezetben megjegyeztk, hogy a bemeneti portokon nem alakulhat ki sor, ha a kapcsolgp sebessge legalbb n-szerese a bemeneti vonali sebessgnek, felttelezve, hogy mind az n bemeneti vonalnak megegyezik a vonali sebessge. Magyarzza el, hogy ez mirt van gy. Tekintsnk egy kapcsolgppel, 2 bemeneti porttal (A-val s B-vel) s 2 kimeneti porttal (C-vel s D-vel) rendelkez tvlasztt. Ttelezzk fel, hogy a kapcsolgp sebessge msflszerese a vonali sebessgnek. (a) Tervezhet-e olyan kapcsolgp, amely biztostani tudja, hogy ne legyen sorban lls, ha valamilyen okbl az sszes A ltal kldtt csomag clja D s az sszes B ltal kldtt csomag clja C? Egy mondatban magyarzza el, hogy ha igen, mirt, ha pedig nem, akkor mirt nem. (b) Most ttelezzk fel azt, hogy az A s B ltal kldtt csomagok vletlenszeren oszlanak meg a C s D cl kztt. Ebben az esetben tervezhet-e olyan kapcsolgp, amely biztostani tudja, hogy ne legyen sorban lls? Egy mondatban magyarzza el, hogy ha igen, mirt, ha pedig nem, akkor mirt nem. Tekintsnk egy 32 bites hosztcmeket hasznl datagramhlzatot. Ttelezzk fel, hogy egy adott tvlaszt ngy adatkapcsolattal rendelkezik, amelyeket 0tl 3-ig szmozunk, s a csomagokat az albbi mdon kell az egyes interfszekre tovbbtani: Clcimtartomny 11100000 00000000 00000000 00000000-tl Kimeneti interfsz
Tartalomjegyzk................................................................................................................. 7
132
4. A HLZATI RTEG
A szmtgp-hlzatok s az internet..........................................................................26
1.1.Mi az az internet?........................................................................................................ 2
1.1.1.Alkotrszek............................................................................................................. 2
1.1.2.Szolgltatsok.......................................................................................................... 5
1.2.1.Kliens- s szerverprogramok.................................................................................14
1.2.2.Hozzfrsi hlzatok............................................................................................ 14
1.3.1.Vonalkapcsols s csomagkapcsols....................................................................30
4.7.
133
1.3.3.lnternetszolgltatk s internet-gerinchlzatok................................................41
1.4.1.Ksleltetsek ttekintse......................................................................................46
1.4.4.Szmtgp-hlzatok tbocstkpessge.........................................................58
1.5.1.Rtegezett architektra......................................................................................... 63
134
4. A HLZATI RTEG
1.7.5.Legutbbi fejlesztsek........................................................................................... 90
1.8.sszefoglals............................................................................................................. 92
Krdsek........................................................................................................................... 94
Feladatok.......................................................................................................................... 96
4.7.
135
2.2.3.HTTP-zenetformtumok..................................................................................... 140
136
4. A HLZATI RTEG
2.4.1.SMTP...................................................................................................................... 134
4.7.
137
2.6.P2P-alkalmazsok.................................................................................................... 139
2.6.1.P2P-fj1cserls................................................................................................... 140
F \.................................................................................................................................... 143
2.7.TCP-szoketprogramozs.......................................................................................... 166
2.7.1.TCP-szoketprogramozs....................................................................................... 168
l....................................................................................................................................... 183
138
4. A HLZATI RTEG
t....................................................................................................................................... 186
O..................................................................................................................................... 245
O..................................................................................................................................... 211
1...................................................................................................................................... 196
1...................................................................................................................................... 196
r,=2X............................................................................................................................. 231
4.7.
139
I I l i................................................................................................................................. 106
(a)
lltson el egy tovbbttblt, amely ngy bejegyzst tartalmaz, a leghosszabb illeszked prefix mdszert hasznlja s a csomagokat a megfelel adatkapcsolati interfszre tovbbtja. (b) rja le, hogyan hatrozza meg tovbbttblja a megfelel adatkapcsolati interfszt az albbi clcimeknek cmzett datagramok esetben:
11001000 10010001 01010001 01010101 11100001 00000000 11000011 00111100 11100001 10000000 00010001 01110111
F9. Tekintsnk egy 8 bites hosztcmeket hasznl datagramhlzatot. Ttelezzk fel, hogy egy adott tvlaszt a leghosszabb illeszked prefix mdszert hasznlja s az albbi tovbbtjval rendelkezik:
140
Kimeneti interfsz 0 1 2 3
Adja meg mind a ngy interfsz esetben az interfszhez tartoz clcmtartomnyt s a tartomnyhoz tartoz cmek szmt. F10. Tekintsnk egy 8 bites hosztcmeket hasznl datagramhlzatot. Ttelezzk fel, hogy egy tvlaszt a leghosszabb illeszked prefix mdszert hasznlja s az albbi tovbbttblval rendelkezik:
Illeszked clcimprefix 00 01 10 11 Kimeneti interfsz 0 1 2 3
Adja meg mind a ngy interfsz esetben az interfszhez tartoz clcimtartomnyt s a tartomnyhoz tartoz cmek szmt. F I I . Tekintsnk egy tvlasztt, amely sszekapcsolja az 1-cs, 2-es s 3-as alhlzatot. Ttelezzk fel, hogy mindhrom alhlzat sszes interfsznek a 223.1.17.0/24-es prefixszel kell rendelkeznie, tovbb, hogy az 1-es alhlzatnak 125, a 2-es s 3-as alhlzatnak pedig 60-60interfszt kell tmogatnia. Osszon ki a hrom hlzatnak egy-egy a.b.c.d/x formj hlzati cmet gy, hogy ezek a felttelek teljesljenek. FI2. A 4.2.2. alfejezetben pldaknt szerepel egy a leghosszabb illeszked prefix mdszert hasznl tovbbttbla. rja t ezt a tblt gy, hogy a binris helyett az a.b.c.d/x jellst hasznlja. F13. Az F8. feladatban ellltott tovbbttblt rja t gy, hogy a binris helyett az a.b.c.d/x jellst hasznlja. F14. Tekintsnk egy 101.101.101.64/26-os prefixszel rendelkez alhlzatot. Adjon
4.7.
141
meg egy olyan (xxx.xxx.xxx.xxx alakban felrt) IP-cmet, amely ennek a hlzatnak kioszthat. Ttelezzk fel, hogy egy adott internetszolgltat a 101.101.128.0/17 alakban felrt cmblokkal rendelkezik, s ebbl a blokkbl ngy alhlzatot kvn ltrehozni gy, hogy mindegyik blokk azonos szm IPcmmel rendelkezzen. Melyek a ngy alhlzat (a.b.c.d/x alakban felrt) prefixei? F15. Tekintsk a 4.17. brn felvzolt topolgit. 12:00-tl kezdve az ramutat jrsval egyez irnyban jellje a hosztokkal rendelkez alhlzatokat A-val, B-vel s C-vel, a hosztokkal nem rendelkezket pedig D-vel, E-vel s F-fel. (a) Osszon ki hlzati cmeket mind a hat alhlzatnak az albbi megszortsokkal: minden cmnek a 214.97.254.0/23-as cmtartomnyba kell esnie; az A alhlzatnak elg cmmel kell rendelkeznie ahhoz, hogy 250 interfszt tudjon tmogatni; B alhlzatnak elg cmmel kell rendelkeznie ahhoz, hogy 120 interfszt tudjon tmogatni; a C alhlzatnak elg cmmel kell rendelkeznie ahhoz, hogy 120 interfszt tudjon tmogatni. A D, E s F alhlzatnak termszetesen kpesnek kell lennie kt-kt interfsz tmogatsra. A kiosztott cmek minden alhlzat esetben az a.b.c.d/x, illetve az a.b.c.d/x - e.f.g.h/y alakban legyenek felrva.
142
4. A HLZATI RTEG
(b) Az F15. a)-ra megadott vlaszt felhasznlva lltsa el mind a hrom tvlaszt
F16.
FI 7.
F18.
(leghosszabb prefixnek megfelel illeszkedst hasznl) tovbbttbljt. Tekintsk azt az esetet, amikor egy 500 bjtos MTU-val rendelkez adatkapcso latba 3000 bjtos datagramot kldnk ki. T telezzk fel, hogy az eredeti datagram azonost szma 422. Hny tredk ellltsra kerl sor s mik ezek jellemzi? Ttelezzk fel, hogy az A forrshoszt s a B clhoszt kztt szlltott datagramok mrete (a fejrszt is belertve) legfeljebb 1500 bjt lehet. Egy 4 milli bjtos MP3 elkldshez hny datagramra lenne szksg, ha az IP-fejrsz 20 bjtos? Tekintsk a 4.22. brn vzolt hlzati elrendezst. Tegyk fel, hogy az ott meg adottak helyett az internetszolgltat a 126.13.89.67-es cmet osztja ki az tvlasz tnak, s hogy az otthoni hlzat hlzati cme 192.168.0.0/16. (a) Osszon ki cmet az otthoni hlzat sszes interfsznek. (b) Ttelezzk fel, hogy minden hoszt rendelkezik kt l TCP-sszekttetssel a 128.119.40.86-os hoszt 80-as portjval. Adja meg az ennek megfelel hat bejegyzst a NAT cmfordt tbljban. F19. Ebben a feladatban a NAT-nak a P2P-alkalmazsokra gyakorolt hatst vizsgljuk. Ttelezzk fel, hogy az Aladr felhasznlnev fl lekrdezs tjn megtudja, hogy a Bla nev flnek van olyan fjlja, amelyet le szeretne tlteni. Tovbb ttelezzk fel, hogy Bla s Aladr is egy-egy KAI mgtt van. Prbljon felvzolni egy olyan technikt, amelynek segtsgvel Aladr alkalmazsspecifikus NAT-konfigurci nlkl tud TCP-sszekttetst ltesteni Blval. Ha ez
F20. F21. F22.
nehzsgekbe tkzik, magyarzza meg, hogy mirt. Sorolja fel a 4.26. bra azon v s y kztti tjait, amelyek hurokmentesek. 'legye meg ugyanezt az x s n\ a w s u s a z s x kztti utak esetben is. Tekintsk az albb felvzolt hlzatot. A feltntetett kapcsolat kltsgek figyelembevtelvel szmtsa ki Dijkstra legrvidebb t algoritmusval x s az sszes hlzati csompont kztti legrvidebb utat. Mutassa be az algoritmus mkdst a 4.4. tblzathoz hasonl tblzat kiszmtsval.
4.7.
143
F23. Tekintsk az F22. feladatban felvzolt hlzatot. A Dijkstra-algoritmus s a 4.4. tblzathoz hasonl sajt tblzata segtsgvel vgezze el az albbi szmtsokat:
144
4. A HLZATI RTEG
(a)
1 latrozza meg s s az sszes hlzati csompont kztti legrvidebb utat. (b) Hatrozza meg l s az sszes hlzati csompont kztti legrvidebb utat. (c) Hatrozza meg u s az sszes hlzati csompont kztti legrvidebb utat. (d) Hatrozza meg v s az sszes hlzati csompont kztti legrvidebb utat. (e) Hatrozza meg w s az sszes hlzati csompont kztti legrvidebb utat. (f) Hatrozza megy s az sszes hlzati csompont kztti legrvidebb utat. (g) l latrozza meg 2 s az sszes hlzati csompont kztti legrvidebb utat. F24. Tekintsk az albbi felvzolt hlzatot, s ttelezzk fel, hogy kezdetben minden csompont ismeri az sszes szomszdjhoz vezet t kltsget. Tegyk fel, hogy a hlzat tvolsgvektor-alap algoritmust hasznl. Adja meg az csompont tvolsgvektornak tartalmt.
F25. Tekintsnk valamilyen ltalnos topolgit (teht nem az F24. feladatban megadottat) s a tvolsgvektor-alap algoritmus szinkron verzijt. Ttelezzk fel, hogy egy adott csompont minden itercinl megkldi tvolsgvektorait szomszdainak, amelyek cserbe elkldik neki sajtjaikat. Legfeljebb hny itercira van szksg ahhoz, hogy stacionrius llapot lljon be, ha felttelezzk, hogy az algo ritmus elindtsakor minden csompont kizrlag a kzvetlen szomszdaihoz ve zet utak kltsgeit ismeri? Vlaszt indokolja. F26. Tekintsk az albb brzolt rszhlzatot, x-nek csak kt hozz kapcsold szomszdja van: w s y. w egy 5 kltsgrtk minimlis kltsg ttal, y pedig egy 6 ktsgrtck minimlis kltsg ttal rendelkezik az (brn nem lthat) clhoz. Az brn nem lthat sem a u'-tl sy-tl -hoz vezet teljes t, sem a w s>' kztti t. A hlzatban az sszes kapcsolatkltsg pozitv egsz szm.
145
4. A HLZATI RTEG
(a) Adja meg x tvolsgvektort a w, y s u clok esetben. (b) c(x,w)-re vagy c(x,y)-ra adjon meg egy olyan kapcsolatkltsgvltozst, hogy x-nek tjkoztatnia kelljen szomszdait egy /-hoz vezet j minimlis kltsg trl, miutn vgrehajtotta a tvolsgvektor-alap algoritmust.
GONDOLKODTAT KRDSEK
146
(c) c(x,w)-re vagy c(x,y)-ra adjon meg egy olyan kapcsolatkltscg-vltozst> hogy x-nek ne kelljen tjkoztatnia szomszdait egy u-hoz vezet j minimlis kltsg trl, miutn vgrehajtotta a tvolsgvektor-alap algoritmust. F27. Tekintsk a 4.29. brn lthat hromcsompontos topolgit. Az ott megadott kltsgek helyett azonban legyen c{x,y) = 5, c(yyz) = 6, c(z,x) = 2. Szmtsa ki a tvolsgok tbljt a tvolsgvektor-alap algoritmus valamely szinkron verzijnak inicializlsi lpst s minden itercijt kveten (ahogy ezt a 4.29. bra trgyalsnl is tettk). F28. rja le, hogy a BGP-nl miknt derthetk fel a hurkok az utakban. F29. Tekintsk az albb bemutatott hlzatot. Ttelezzk fel, hogy az AS3 s az AS2 az OSPF-et,azASl sazAS4pedigaRTP^etfuttatja AS-enbelli tvlasztsi protokollknt. Ttelezzk fel tovbb, hogy az AS-ek egyms kztt az eBGP s az iBGP-t hasznljk. Kezdetben ne legyen fizikai adatkapcsolat AS2 s AS4 kztt. (a) A 3c tvlaszt melyik tvlasztsi protokolltl rtesl az x prefixrl? Az OSPF- tl, a RIP-tl, az eBGP-tl vagy az iBGP-tl? (b) A 3a tvlaszt melyik tvlasztsi protokolltl rtesl x-rl? (c) Az le tvlaszt melyik tvlasztsi protokolltl rtesl x-rl? (d) Az ld tvlaszt melyik tvlasztsi protokolltl rtesl x-rl?
F30. Az elz feladatra utalva: az ld tvlaszt elhelyezi az (x, l) bejegyzst tovbbttbljban, amint rtesl x-rl. (a) Az / mivel lesz egyenl ennl a bejegyzsnl, /,-gyel vagy /,-vel? Vlaszt magyarzza el egy mondatban. (b) Most ttelezzk fel azt, hogy van fizikai adatkapcsolat AS2 s AS4 kztt (lsd a szaggatott vonalat az brn). Az I mivel lesz egyenl, /,-gyel vagy /,-vel, ha az ld tvlaszt rtesl arrl, hogy x AS2-n s AS3-n keresztl is elrhet? Vlaszt magyarzza el egy mondatban. (c) Ttelezzk fel, hogy van mg egy autonm rendszer, az brn nem lthat AS5, amely az AS2 s az AS4 kztti ton fekszik. Az / mivel lesz
FELADATOK
147
egyenl, /.-gvel vagy /,-vel, ha az ld tvlaszt rtesl arrl, hogy x AS2 AS5 AS4-en s AS3 AS4-en keresztl is elrhet? Vlaszt magyarzza cl egy mondatban. F31. Tekintsk az albbi hlzatot. B, illetve C internetszolgltat orszgos gerinchlzati szolgltatst nyjt A, illetve D regionlis internetszolgltatnak. Mindegyik internetszolgltat egy AS-bl ll. B s C az USA kt pontjn egyenrang flknt kommunikl egymssal a BGP-t hasznlva. Mi trtnik az A-bl D-be irnyul for galommal? B termszetesen a nyugati partvidken szeretn tadni ezt a forgalmat C-nek (mivel gy C-nek kellene viselnie a keletre szllts kltsgeit), mg C jobban szeretn, ha B viseln ezeket a kltsgeket, s neki csak a keleti partvidki trscsat lakozsi ponton (peering point) kellene tvennie a forgalmat. Milyen BGP-mechanizmus segtsgvel rhetn el C ezt a clt? Ennek a krdsnek a megvlaszolshoz elengedhetetlen a BGP-specifikci tanulmnyozsa.
F32. Mrlegelje, milyen tinformcik jutnak cl a 4.39. brn lthat W, X s Y csonka hlzathoz. Ezekre tmaszkodva milyen kpet alakthat ki magnak W sX a hlzat topolgijrl? Bizonytsa be vlaszt. A topolgia Y ltal kialaktott kpe az albbi brn lthat.
w
Az Y csonka hlzat ltal kialaktott kp a hlzat topolgijrl
F33.
Trjnk vissza az E22. feladatban szerepl (5-tl y-ig cmkzett) nyolccsompontos hlzathoz. Mutassa meg azt az s-gyker minimlis fesztft, amely (vghosztok- knt) az u, v, w s y csompontot is
148
4. A HLZATI RTEG
F34.
F35.
F36.
F37.
F38.
F39.
tartalmazza. Indokolja meg, hogy ez a fa mirt minimlis. Gondoljunk az adatszrs megvalstsnak kt alapvet megoldsra, az adatszrs egynekadsos emullsra s a hlzati rtegbeli (azaz tvlaszt ltal t- inogatott) adatszrsra, s ttelezzk fel, hogy a fesztfs adatszrssal valsul meg a hlzati rtegbeli adatszrs. Vegyk azt az esetet, amikor egyetlen kld s 32 cllloms van. Ttelezzk fel, hogy a kld egy tvlasztkbl ll binris fa segtsgvel kapcsoldik a clllomsokhoz. Ennl a topolginl mennyi egy adat- szrsos csomag kldsnek kltsge az adatszrs egynekadsos cmullsa, s mennyi a hlzati rtegbeli adatszrsesetn? Tegyk fel, hogy ahnyszor sor kerl egy csomag (vagy a csomag egy msolatnak) egy fizikai adatkapcsolaton trtn tkldsre, egy egysgnyi kltsg keletkezik. A kld, a clllomsok s az tvlasztk milyen sszekapcsolsi topolgija kellene ahhoz, hogy az adatszrs egynekadsos emullsnak s a valdi hlzati rtegbeli adatszrsnak a kltsgei minl inkbb klnbzzenek egymstl? Tetszs szerinti szm tvlasztt hasznlhat. Tekintsk a fordtott irny tovbbtst alkalmaz RPl ; -algoritmus mkdst a 4.41. brn felvzolt esetben. Az brn lthat topolgit hasznlva tallja meg az sszes csompont s az A forrscsompont kztti utaknak egy olyan csoportjt, hogy amennyiben ezek az utak lennnek a minimlis kltsg utak, akkor a B csompont az RPF miatt az A, C s D csompontoktl megkapja az A ltal kldtt adatszrsos zenet egy-egy pldnyt. (Jellje ezeket az utakat a 4.41. brhoz hasonlan vastag vonalakkal egy grfban.) Maradjunk a 4.41. brn lthat topolginl. Ttelezzk fel, hogy minden adat- kapcsolat egysgnyi kltsg, s hogy az E csompont egy adatszr forrs. A 4.41. brhoz hasonlan jellje nyilakkal azokat az adatkapcsolatokat, amelyeken a csomagok az RPF-et alkalmazva tovbbtdnak s azokat, amelyeken nem tovbbtdnak, ha az E csompont a forrs. A 4.43. brn lthat topolgia esetben ttelezzk fel, hogy minden adatkapcsolat egysgnyi kltsg. Legyen a Ccsompont a kzpontalap tbbeskiildses tvlasztsi algoritmus kzpontja. Induljon ki abbl, hogy minden csatlakoz tvlaszt a csatlakozsi szndkt jelz zenett a C-hez vezet minimlis kltsg tjn kldi el, s rajzolja meg a fenti felttelekkel fellltott kzpontalap tvlasztsi ft. Minimlis kltsg-e a kapott fa? lltst bizonytsa. A 4.5.1. alfejezetben foglalkoztunk Dijkstra kapcsolatllapot-alap algoritmusval, amelynek segtsgvel kiszmthatk a forrs s az sszes cl kztti minimlis kltsg egynekadsos utak. Ezeknek az utaknak az unijt nevezzk a minimlis kltsg egynekadsos utak fjnak (leastunicast-cost path tree) (illetve a legrvidebb egynekadsos utak fjnak, ha az sszes adatkapcsolati kltsg azonos). Ellenplda konstrulsval bizonytsa be, hogy a minimlis kltsg utak fja nem mindig azonos a minimlis fesztfval. Tekintsnk egy olyan hlzatot, amelyben az sszes csompont hrom msikkal van sszektve. Egy csompont egyetlen temben megkaphatja a szomszdai ltal kldtt sszes adatszrsos csomagot, elksztheti ezek msolatt s elkldheti ket sszes szomszdjnak (az adott csomag
FELADATOK
149
kldjnek kivtelvel). A kvetkez temben a szomszdok kaphatjk meg, msolhatjk le s tovbbthatjk ezeket a csomagokat s gy tovbb. Ttelezzk fel, hogy egy ilyen hlzatban az adatszrs a ncm-ellenrztt elrasztssal valsul meg. Az adatszrsos csomag hny msolata kerl tvitelre a t idintervallumban, ha felttelezzk, hogy az 1-es idintervallum ban a forrscsompont egyetlen adatszrsos csomagot tovbbt hrom szomszdjnak?
150
4. A HLZATI RTEG
F40. A 4.7. alfejezetben lttuk, hogy nincs olyan hlzati rtegbeli protokoll, amelynek segtsgvel azonostani lehetne egy adott tbbeskldses csoporthoz tartoz kosztokat. Ennek ismeretben a tbbeskldses alkalmazsok hogyan derthetik fel a tbbeskldses csoport tagsgt? F41. Adja meg egy olyan alkalmazsi rtegbeli protokoll pszeudokdos lerst, amely karbantart egy adott tbbeskldses csoportot alkot sszes hoszt cmt tartalmaz listt. Adja meg az e protokoll ltal hasznlt (egynekadsos vagy tbbeskldses) hlzati szolgltatst; jelezze, hogy ez a protokoll svon bell vagy svon kvl kld zeneteket, s adja meg ennek okt. (A svon bell vagy kvl a tbbeskldses csoport tagjai kztti alkalmazsi adatfolyamhoz viszonytva rtend.) F42. Milyen mret a tbbeskldses cmtartomny? Ttelezzk fel, hogy kt tbbeskldses csoport vletlenszeren vlaszt tbbeskldses cmet. Milyen nagy annak a valsznsge, hogy egyforma cmet vlasztanak? Ttelezzk fel, hogy egyszerre 1000 tbbeskldses csoport mkdik, s ezek vletlenszeren vlasztanak cmet. Mi annak a valsznsge, hogy zavarni fogjk egymst?
Gondolkodtat krdsek
Gl. Keressen hrom, nagysebessg tvlaszt-termkeket forgalmaz cget, s hasonltsa ssze termkeiket. G2. Az ARIN whois szolgltatsnak (http://www.arin.net/vvhois ) segtsgvel hatrozza meg hrom egyetem IP-cmtartomnyt. Meg lehet-e egyrtelmen hatrozni a whois szolgltats segtsgvel egy adott IP-cm fldrajzi helyzett? G3. Javban is megrhat az ICMP-zeneteket hasznl ping-kliensprogram? Ha igen, mirt? Ha nem, mirt nem? G4. A 4.4. alfejezetben utaltunk r, hogy az 1PV6 hasznlata lassan terjed. Ennek mi az oka? Mire lenne szksg elterjedse felgyorstshoz? G5. Eejtse ki, hogy a NAT milyen problmkat vet fel az IPsec-kel kapcsolatban (lsd [Phifer 2000]). G6. Tanulmnyozza a U PnP-t, s rszletesen ismertesse azokat az zeneteket, amelyeket a hoszt a NAT tkonfigurlsra hasznl. G7. Ttelezzk fel, hogy az X s a Z autonm rendszer az Y autonm rendszeren keresztl (s nem kzvetlenl) ll kapcsolatban. Tegyk fel tovbb, hogy Xnek Y-nal, Y-nak pedig Z-vel van trskzi megllapodsa (peeringje), s hogy Z ksz elszlltani Y sszes forgalmt, de X forgalmt nem akarja szlltani. Meg lehet-e fogalmazni a BGP-ben ilyen rtelm politikt Zszmra? G8. A 4.7. alfejezetben szmos tbbeskldses alkalmazsrl szltunk. Ezek kzl melyik s mirt illeszkedik jl az internetes minimalista tbbeskldses szolglati modellhez? Mely alkalmazsok megvalstsra kevsb alkalmas ez a szolglati modell?
FELADATOK
151
Vlaszol
Vinton G. Cerf
Vinton G. Cerf, a Google elnkhelyettese s az internet apostola, tbb mint 16 vig dolgozott az MCl-nl klnbz beosztsokban, szolglati ideje vgn a mszaki stratgirt felels rszleg vezet alelnke volt. A TCP/IP proto kollkszlet egyik kidoldozjaknt vlt kzismertt. 1976-tl 1982-ig az Egyeslt llamok Vdelmi Minisztriumhoz tartoz Fejlett Kutatsok Hivatalban (DoD Advanced Research Projects Agency, DARPA) a kutatsok vezetjeknt kulcsszerepet jtszott az internet s az internethez kapcsold csomagkapcsols s biztonsgi technikk kidolgozsban. 1997-ben megkapta a National Medl of Techno- logyt, amely a tudomnyos s mszaki fejlesztsek tern elrt kimagasl eredmnyekrt jr legmagasabb amerikai kitntets, 2005-ben pedig a Presidential Medl of Freedom elnki kitntetsben rszeslt. A Stanford Universityn szerzett BScfokozatot matematikbl, majd MSc- s PhD-fokozatot szmtstudomnybl a Los Angeles-i Universityof Californin (az UCLA-n). Mi sztnzte arra, hogy hlzatokkal foglalkozzon? Programozknt dolgoztam az UCLA-n az 1960-as vek vgn. Munkmat az Egyeslt llamok Vdelmi Minisztriumhoz tartoz Fejlett Kutatsok Hivatala, az akkori ARPA (ma DARPA) tmogatta. Leonard Kleinrock professzor laboratriumban dolgoztam az jonnan ltrehozott ARPAnet hlzati mrsekkel foglalkoz kzpontjban, a Network Measurement Centerben. Az ARPAnet els csompontjnak bezemelsre 1969. szeptember 1-jn kerlt sor az UCLA-n. Az n feladatom volt annak a szmtgpnek a programozsa, amely rgztette s tovbbtotta az ARPAnet teljestkpessgre vonatkoz adatokat a matematikai modellekkel val sszehasonlts s a hlzat teljestkpessgre vonatkoz elrejelzsek lehetv ttele cljbl. Tbb vgzett diktrsammal egytt az ARPAnet n. hosztszint protokolljainak kidolgozsval foglalkoztam, amelyektl azt vrtk, hogy lehetv teszik a hlzatba kapcsolt tbb klnbz tpus szmtgp egyttmkdst.
152
4. A
HLZATI RF.TEG
Szmomra ez a munka lenygz felfedez utat jelentett az elosztott rendszerek (nekem) addig ismeretlen vilgba. Gondolta volna az IP protokoll kidolgozsakor, hogy mra ennyire el fog terjedni? Azt hiszem, hogy amikor Bob Kahnnal 1973-ban elkezdtnk ezzel foglalkozni, szmunkra az elsrend krds az volt, hogyan tudnnk megoldani a heterogn csomagkapcsols hlzatok egyttmkdst anlkl, hogy magukat a hlzatokat kellene megvltoztatnunk. Azt remltk, hogy tallunk olyan megoldst, amelynek segtsgvel tlthat mdon sikerl sszekapcsolni csomagkapcsols hlzatok tetszleges sszellts csoportjt gy, hogy a hoszt-szmtgpek vgponttl vgpontig mindenfle protokolltalakts nlkl tudjanak egymssal kommuniklni. Azt hiszem, tudtuk, hogy egy teljestkpes s bvthet megoldssal van dolgunk, de ktlem, hogy lett volna arrl elkpzelsnk, milyen lesz az internetes vilg a maga tbb szz milli sszekapcsolt szmtgpvel.
FELADATOK
153
Hogyan ltja most a hlzati egyttmkds s az internet jvjt? Vlemnye szerint milyen komolyabb akadlyokat kell a tovbbi fejlesztsek sorn lekzdeni? Azt hiszem, hogy az internet s ltalban a hlzatok tovbbi elterjedsre kell szmtani. Mr most minden jel arra mutat, hogy internetkpes eszkzk millirdjai jelennek majd meg az interneten, belertve a mobiltelefonokat, htszekrnyeket, PDA-kat, otthoni szervereket, tv-kszlkeket, a laptopok sokasgt s gy tovbb. Komoly kihvst jelent a mobilits tmogatsa, a megfelel lettartam akkuk fejlesztse, a hozzfrsi hlzatok kapacitsnak nvelse s az optikai gerinchlzat korltlan bvtsnek lehetv ttele. Most komolyan elkteleztem magam az internet bolygkzi kiterjesztsvel foglalkoz projekt mellett, amelyen a NASA Jet Propulsion Laboratriumval kzsen dolgozom. Az IPv6-ra val tlls szksgessgt sem gyzm hangslyozni. Sok munka vr mg rnk! Szakmailag ki hatott nre sztnzen? Kollgm, Bob Kahn; konzulensem, Gerald Estrin; legjobb bartom, Steve Crocker, akivel egytt jrtam kzpiskolba, s aki 1960-ban (!) megismertetett a szmtgpekkel; s az a tbb ezer mrnk, aki napjainkban folyamatosan fradozik az internet tovbbfejlesztsn. Mit tancsolna a hlzatok s az internet vilgba belp hallgatknak? Gondolatban lpjenek t a meglv rendszerek korltain, kpzeljk el a jvbeni lehetsgeket, s dolgozzanak szorgosan azokon a megoldsokon, amelyek segtenek a jelenlegi korltok lebontsban s az elkpzelt lehetsgek megvalstsban. Merjenek lmodni: a Jet Propulsion laboratrium fl tucat munkatrsval egytt a fldi internet bolygkzi kiterjesztsnek megoldsn munklkodunk. Lehet, hogy ennek lpsrl lpsre trtn megvalstsa mg vtizedekig vrat magra, de mindig a klt, Rbert Browning gondo latt tartjuk szem eltt: tzznk ki az azonnal elrhetknl tvolabbi clokat, ostromoljuk az eget! 1
154
4. A
HLZATI RF.TEG
A fordt megjegyzse: Vinton G. Cerf Robert Browning Andrea del Sarto" cm versnek
egy sort (Ah, but a mans reach should exceed his grasp, or whats a heaven for?) fogalmazza t: A mans reach should exceed his grasp, or what are the heavens for?
5. FEJEZET
Az elz fejezetben lthattuk, hogy a hlzati rteg kt hoszt kztti kommunikcis szolgltatst biztost. Ahogy azt az 5.1. bra is mutatja, az erre szolgl kommunikcis tvonal a forrshoszttl a clhosztig tvlasztk (routerek) s az ket sszekt fizikai adat- kapcsolatok (linkek) sorozatn vezet t. A protokollveremben tovbb haladva lefel tbb krds is felmerlhet bennnk. Vajon hogy jutnak t a csomagok az egyes, szomszdos hosztokat vagy tvlasztkatt sszekt adatkapcsolatokon, amelyek a teljes kommunikcis tvonalat alkotjk? Hogyan gyazdnak be a hlzati rtegbeli csomagok az adatkapcsolaton val tvitelre hasznlt adatkapcsolati keretekbe? Kpesek az adatkapcsolati protokollok a szomszdos tvlasztk kztti megbzhat tvitelre? Vajon hasznlhatunk-e ugyanazon kommunikcis tvonal klnbz adatkapcsolatain klnbz adatkapcsolati protokollokat? Ebben a fejezetben a fenti s ms fontos krdsekre kaphatunk vlaszt. Mint azt ltni fogjuk, az adatkapcsolati csatornknak alapveten kt tpust klnbztetjk meg. Az els tpus az adatszr (broadeast) csatorna, amely a vezetkes s vezetk nlkli helyi hlzatokban (LAN), a mholdas hlzatokban, valamint a hibrid fnyve- zetszlas-koaxilis kbeles (hybrid fiber-eoax, HFC) hlzatokban elterjedt. Adatszr csatornk esetn tbb hoszt kapcsoldik ugyanazon kommunikcis kzeghez, az tvitel vezrlsre s a csomagtkzsek kezelsre pedig n. kzegelrsi protokollokat hasznlunk. Az adatkapcsolati csatornk msik fajtja az n. ktpontos (pont-pont) sszekttets, amelyet pldul kt tvlaszt kztt, vagy otthoni modemnk s az internetszolgltat tvlasztjnak sszektsre hasznlhatunk. Ktpontos sszekttetsek esetn a hozzfrs kezelse magtl rtetd, m a keretezs, a megbzhat adattvitel, a hibajelzs s a forgalomszablyozs tmakrei fontos krdseket vetnek fel. Ebben a fejezetben szmos adatkapcsolati technikval fogunk megismerkedni. El fogunk mlylni napjaink uralkod vezetkes LAN-technikja, az Ethernet rejtelmeiben, s megvizsgljuk a ktpontos protokollt (PPP), amely az otthoni betrcszs internetkapcsolatoknl elterjedt. Jllehet, a WiFi, vagy ltalnosabban a vezetk nlkli LAN-ok is ebbe a tmakrbe tartoznnak, ezekkel mgsem foglalkozunk ebben a fejezetben. No nem azrt, mert lnyegtelen tmakrk lennnek - pp ellenkezleg! Napjaink WiFiforradalma drasztikus gyorsasggal vltoztatja internetezsi szoksainkat. A WiFivel ezrt a vezetk nlkli hlzatoknak s a mobilits krdsnek szentelt 6.
FELADATOK
155
156
Mobiltelefon hlzat
>c
______
Adatkapcsolati Fizikai
Hlzati
Otthoni hlzat
Adatkapcsolati
Vllalati hlzat
FELADATOK
157
5.1.
Kezdjk mindjrt egy pr terminolgiai megjegyzssel. A fejezetben az tvlasztra s a hosztokra egyarnt a csompont (node) elnevezst hasznljuk, mivel - ahogy azt hamarosan ltni fogjuk - nem kell azzal foglalkoznunk, hogy egy adott csompont tvlaszt-e vagy hoszt. A szomszdos csompontokat sszekt csatornkat adatkapcsolatoknak (link) fogjuk nevezni. Egy csomagnak forrshoszttl clhosztig val eljuttatshoz a csomagot a kt vgpont kztti tvonal mentn tallhat minden egyes klnll adatkapcsolaton t kell juttatni. Egy csomag adott adatkapcsolaton val tvitelhez a kld csom pont a csomagot egy adatkapcsolati keretbe gyazza, amelyet kikld az adatkapcsolatra, a vev csompont pedig veszi a keretet, s kinyeri belle a kldtt csomagot.
5.1.1.
Az adatkapcsolati protokollok csomagok egyetlen adatkapcsolaton val tvitelre hasznlatosak. Az adatkapcsolati protokoll (link-layer protocol) definilja az tvitelre hasznlt adatformtumot, csakgy mint az ad s a vev csompont ltal a kldskor, illetve fogadskor elvgzend mveleteket. Az 1. fejezetbl emlkezhetnk, hogy az adatkapcsolati protokollokkal tvitt adategysgeket kereteknek (frame) nevezzk, s hogy egy adatkap csolati keretbe ltalban egyetlen hlzati rtegbeli csomagol gyazunk. Mint azt hama rosan ltni fogjuk, a keretek kldsekor s vtelekor vgrehajtand mveletek kiterjedhet nek a hibaellenrzsre, az jrakiildsre, a forgalomszablyozsra s a vletlen hozzfrsre is. Adatkapcsolati protokoll tbbek kztt az Ethernet, az IEEE 802.11 vezetk nlkli LAN protokoll (ms nven WiFi), a tokengyr s a PPP, de bizonyos szempontbl az ATM-et is tekinthetjk annak. A fent emlteti technikk nagy rszvel alaposan meg fogunk ismerkedni a fejezet msodik felben. Amg a hlzati szint protokollok feladata a csomagok forrshoszttl clhosztig val eljuttatsa, addig az adatkapcsolati protokollok csomponttl csompontig mozgatjk a csomagokat az tviteli t egyetlen adatkapcsolatn keresztl. Az adatkapcsolati rteg fontos tulajdonsga, hogy az tviteli t klnbz adatkapcsolatain klnbz adatkapcsolati protokollokat hasznlhatunk az tvitelre. Csomagunkat pldul tovbbthatjuk Ethernettel az els adatkapcsolaton, PPP-vel az utolsn, s egy WAN-hlzatokban hasznlatos adatkapcsolati protokoll segtsgvel a kztes adatkapcsolaton. Fontos megjegyeznnk, hogy az adatkapcsolati rteg szolgltatsai protokollon knt eltrhetnek. Pldul mg bizonyos protokollok kpesek a megbzhat tvitelre, addig msok nem. Ebbl kifolylag a hlzati rtegnek tbbfle adatkapcsolati protokollal is egytt kell tudnia mkdni a kt vgpont kztti tvitel megvalstsa rdekben. Hogy tlssuk az adatkapcsolati rteg feladatt s hlzati rteggel val viszonyt, vonatkoztassunk kicsit el a szmtgpes hlzatoktl, s vegynk egy utazsi pldt. Adotl egy utazsi gynk, aki egy Npolybl a Komrom-Esztergom megyei Szrligetre utaz turista tjt tervezi. Tegyk fel, hogy az gynk gy dnt, a turista szmra az a legknyelmesebb, ha Npolybl Rmig taxival utazik, onnan Budapestig replgppel, vgl pedig Budapesten vonatra szll, amely elviszi t a szrligeti vastllomsra. Attl kezdve, hogy az gynk
megteszi a hrom foglalst, a npolyi taxitrsasg felelssge, hogy eljut tassa a turistt a rmai repltrre, a lgitrsasg feladata a turista Rmbl Budapestig val utaztatsa, s a MV felel azrt, hogy az utas eljusson Budapestrl Szrligetre. Az t mindhrom szakasza kzvetlen sszekttets a szomszdos vrosok kztt. Figyeljk meg, hogy mindhrom szakasz klnbz vllalathoz tartozik, s hogy minden szakaszon teljesen ms mdon trtnik az utazs (taxi, replgp, illetve vonat). Habr a hrom tszakaszon hrom klnbz mdon utazik a turista, mindhrom szolgltats emberek szomszdos vrosok kztti utaztatst biztostja. Analginkban a turista jtssza az adatcsomag szerept, a hrom tszakasz hrom adatkapcsolatnak felel meg, az utazsi gynk pedig nem ms, mint az tvlaszt protokoll. Habr az adatkapcsolati protokollok ltal nyjtand alapszolgltats a csomagok szomszdos csompontok kztti tvitele, a szolgltatsok rszletei protokollrl protokollra eltrhetnek. A kvetkezkben felsorolunk nhny lehetsges adatkapcsolati szolgltatst:
hlzati rtegbl kapott csomagot az tvitel eltt. Egy keret valahny fejlcmezbl s egy adatmezbl ll. Utbbi tartalmazza az tviend hlzati rtegbeli csomagot. (A keret ezen fell tartalmazhat az adatmezt kvet farokrsz mezt is, de a tovbbiakban erre is fejlcmezknt fogunk hivatkozni.) A keretszerkezetet az adatkapcsolati protokoll definilja. Keretszerkezetekre szmos pldt fogunk ltni konkrt adatkap csolati protokollok vizsglatakor a fejezet msodik felben. Kzegelrs. A keretek adatkapcsolatra val kikldsnek szablyait egy kzegelrsi (mdium access control, MAC) protokoll rja le. Egy kld s egy fogad kztti ktpontos sszekttetsek esetn a kzegelrsi protokoll egyszer (vagy egyltaln nincs is) - a kld brmikor adhat, amikor a csatorna res. rdekesebb a helyzet, ha tbb csompont osztozik ugyanazon az zenetszrsi csatornn. Ez az n. tbbszrs hozzfrsi problma. Ebben az esetben a kzegelrsi protokoll feladata a csompontok kerettovbbtsnak szablyozsa. A kzegelrsi protokollokkal bvebben az 5.3. fejezetben foglalkozunk. Megbzhat tvitel. Ha egy adatkapcsolati protokoll megbzhat tvitelt biztost, akkor garantlja, hogy valamennyi adatkapcsolati keretet hiba nlkl tviszi az adatkapcsolaton. Emlkezznk vissza, hogy bizonyos szlltsi rtegbeli protokollok (pldul a TCP) szinten kpesek megbzhat csomagtovbbtsra. A szlltsi rteg megbzhat tviteli szolgltatshoz hasonlan sokszor az adatkapcsolati rtegben is nyugtz sokkal s jraadsokkal rjk el a megbzhat tvitelt (lsd 3.4. fejezet). Az adatkap csolati szinten megbzhat tviteli szolgltatst ltalban hibra hajlamos tviteli kzegek, pldul vezetk nlkli kapcsolat esetn hasznlunk annak rdekben, hogy a hibt helyben, teht a hibs adatkapcsolaton javtsuk ki ahelyett, hogy a szlltsi vagy alkalmazsi rteget knyszertennk a csomag jraadsra. Kis hibavalszn- sg kzegek esetn azonban csupn flsleges pluszkltsget jelent a szolgltats, gy a vezetkes adatkapcsolati protokollok ezt nem is tartalmazzk. Forgalomszablyozs. Egy adatkapcsolathoz kapcsold valamennyi
csompont korltos pufferkapacitssal br. Ez a tny problmt okoz, ha egy fogad csompont gyorsabban knytelen fogadni a kereteket, mint ahogy azokat fel tudja dolgozni. Forgalom- szablyozs nlkl a vev csompont puffere teht tlcsordulhat s keretek veszhetnek el. A szlltsi protokollokhoz hasonlan az adatkapcsolati protokollok is kpesek lehetnek a forgalom szablyozsra annak rdekben, hogy elkerljk a vev csom pont ad csompont ltali elrasztst. Hibajelzs. Egy csompont vevegysge hibsan nullnak rzkelhet egy, az adatkapcsolatra egy rtkknt kikldtt bitet, s fordtva. Ilyen bithibk jelcsillapods, illetve elektromgneses zaj jelenlte miatt is jelentkezhetnek. Mivel egy hibs csomagol rtelmetlen tovbbtani, szmos adattviteli protokoll rendelkezik olyan mechanizmussal, amely kpes egy vagy tbb hiba detektlsra. Ehhez az adsi oldalon a keret hiba-ellenrzsi bitjeit kell belltani, a vteli oldalon pedig el kell vgezni magt az ellenrzst. A hibajelzs meglehetsen elterjedt szolgltats az adatkapcsolati proto kollok krben. A 3. s 4. fejezetben mr szltunk arrl, hogy az internet hlzati s szlltsi rtege is kpes egy bizonyos szint hibajelzsre, amelyet egy ellenrz sszeggel (internet checksum) valst meg. Az adatkapcsolati rtegbeli hibajelzs ennl ltalban sokkal kifinomultabb, s hardverszinten valsul meg. Hibajavts. A hibajavts hasonlt a hibajelzsre. A klnbsg itt annyi, hogy a vev nem csak szleli a hibkat, hanem azok kereten belli pontos helyt is meg tudja llaptani (s gy kijavtani azokat). Nhny protokoll (pldul az ATM) a teljes csomag helyett csak a csomagfejlc hibit kpes javtani. A hibajelzsrl s -javtsrl az 5.2. fejezetben szlunk rszletesebben. Flduplex s duplex tvitel. Duplex tvitel esetn az adatkapcsolat mindkt vgn lev csompont adhat egyszerre. Ezzel szemben flduplex tvitelnl egy csompont nem adhat s vehet egy idben. Amint azt fent emltettk, szmos adatkapcsolati szolgltatsnak van megfelelje a szlltsi rtegben. Pldaknt vegyk a megbzhat tviteli szolgltatst, amely mind az adatkapcsolati, mind a szlltsi rteg protokolljaiban elfordulhat. Habr a megbzhat tvitelt a kt rteg protokolljai hasonl mdon biztostjk (lsd 3.4. fejezet), a kt szolgl tats mgsem ugyanaz, ugyanis mg egy szlltsi protokoll szolgltatsa egy kt vgpont kztti teljes tviteli tra vonatkozik, addig egy adatkapcsolati protokoll kt, kzvetlen fizikai sszekttetsben ll csompont kztt garantlja a megbzhat tvitelt. Hason lkppen, mindkt rteg protokolljai kpesek lehetnek a forgalom szablyozsra, de a fentiekhez hasonlan, amg a szlltsi rtegbeli forgalomszablyozs egy egsz tviteli tra vonatkozik kt vgpont kztt, addig az adatkapcsolati szint forgalomszablyozs csupn egy kt csompontot kzvetlenl sszekt adatkapcsolatra.
csatolkrtykra implementltk ezeket a szolgltatsokat, ezrt most vizsgljuk meg, mi a helyzet a vgberendezseknl. Vajon egy hoszt adatkapcsolati rtegi szoftveresen vagy hardveresen valstjk meg? Vajon egy kln krtyn vagy chipen valstjk meg, s ez hogyan kapcsoldik a hoszt tbbi hardveregysghez s opercis rendszerhez? Az 5.2. brn egy tipikus hoszt szerkezett lthatjuk. Az adatkapcsolati rteg feladatait legtbbszr a hlzati csatol, ms nevn a hlzati interfszkrtya (network interface card, NIC) ltja el. A hlzati csatol lelke az adatkapcsolati rteg vezrlegysge, amely ltalban egy specilis, az elz alfejezetben trgyalt funkcikat (keretezs, kzegelrs, forgalomszablyozs, hibajelzs stb.) megvalst chip. Az adatkapcsolati rteg szolgltatsainak j rszt teht hardveresen valstjk meg. Pldul az Intel 8254x tpus vezrl [Intel 2006] az 5.5. alfejezetben trgyalt Ethernet-protokollokat implementlja, az Atheros AR5006 pedig [Atheros 2006] a 802.11-es WiFi protokollokat, amelyekrl a 6.3. alfejezetben lesz sz. Mg az 1990-es vek vgig a hlzati csatolk tbbsge fizikailag klnll
Hlzati csatol
vtelt, az adatkapcsolati cmzshez szksges informci sszegyj tst vagy a vezrlegysg mkdtetst. A vev oldalon a szoftveres rsz a vezrlegysg megszaktsaira reagl (pldul keretek vtelt jelz megszaktsokra), de a hibk kezelse s a hlzati szint csomag hlzati rteghez val eljuttatsa is szoftveresen trtnik. sszefoglalva teht elmondhatjuk, hogy az adatkapcsolati rteg hardveres s szoftveres elemek sszessge, s a protokollveremnek ez az a rtege, ahol a hardver a szoftverrel rintkezik. Az [Intel 2006] programozi szemszgbl kzrtheten bemutatja a 8254x-es vezrlt, s egy rszletes lerst is tartalmaz rla.
Fizikai adatkapcsolat
Csatolkrtya Csatolkrtya
Adatkapcsolati protokoll
adatkapcsolati keretben kikldtt D-t s EDC-1 a cmzett csompont D-knt, illetve EDC-knt veszi. Meg kell jegyeznnk, hogy D* s EDC az tvitel kzben bekvetkez bithibk miatt eltrhet )-tl s EDC-ti.
Adatcsomag
d adatbit
5.2.1. Parits-ellenrzs
A hibaellenrzs valsznleg legegyszerbb mdja az, ha egyetlen paritsbittel toldjuk meg az zenetet, legyk fel, hogy az elkldeni kvnt D adatcsomag d bitbl ll (5.5. bra). Pros paritsbit hasznlata esetn a kld az zenethez csatolt paritsbit rtkt gy vlasztja meg, hogy a d + 1 bit (teht az eredeti zenet bitjei plusz a paritsbit) kzl pros
d adathiba
Parits-
bit
0111000110101011 1
lejtszsnak terletn, pldul audi CD-k hibavdelmre. Hlzatos alkalmazsok esetn a EEC-alap eljrsokat magukban vagy a 3. fejezetben trgyaltakhoz hasonl adatkapcsolati szint ARQ-alap (au-
Sorparits
d
\,\ 1./
* O a 0 a 3 .o
N
* S > f
2,j
w n
<*/./ i
Nincs hiba
1 1 0 0
0 1 1 0
1 1 1 1
0 1 1
0 0 Javthat
egybites hiba
Parits hiba
00101p
Parits hiba
tmatikus ismtlskr) eljrsokkal egytt hasznljk. A FEC-alap mdszerek elnye, hogy cskkentik a szksges jraadsok szmt, s ami taln mg fontosabb, lehetv teszik az azonnali hibajavtst a vev oldalon. Ezzel elkerlhetjk az adnak kldend iNAK nyugta, illetve az jrakldtt csomag terjedsi ksleltetst - ez rendkvl elnys vals idej hlzati alkalmazsok [Rubenstein 1998], illetve nagy ksleltets (pldul vilgr- bli) adatkapcsolatok esetn. Tbben vizsgltk az elre irnyul hibajavts hibajavt protokollokban trtn alkalmazst [Biersack 1992; Nonnenmacher 1998; Byers 1998; Shacham 1990].
ellenrz sszegt a teljes csomagra szmtjuk (belertve a fejlcet s az adatmezket is). IP-csomagoknl csak a fejlcre szmolunk ellenrz sszeget (mivel a szlltott TCP- vagy UDP-csomagok sajt ellenrz sszegekkel rendelkeznek). Ms protokollok, mint pldul az XTP [Strayer 1992] esetn kt ellenrz sszeget kell szmolni, egyet csak a fejlcre, egyet pedig a teljes csomagra. Az ellenrz sszegen alapul mdszerek elnye, hogy hasznlatuk csak kis pluszkltsget jelent. Pldul a TCP s UDP ellenrz sszegek mindssze 16 bitesek. Sajnos azonban a kvetkezkben trgyalt s az adatkapcsolati rtegben gyakran hasznlt ciklikus redundancia-ellenrzssel sszehasonltva meglehetsen gyenge vdelmet nyjtanak a bithibk ellen. Termszetesen merlhet fel a krds, vajon mirt hasznljk a ciklikus redundancia-ellen rzst az adatkapcsolati rtegben s az ellenrz sszegen alapul eljrsokat a szlltsi rtegben. A krds megvlaszolshoz emlkezznk vissza arra, hogy a szlltsi rteget jellemzen az opercis rendszer rszeknt, szoftveresen valstjk meg, s gy a szlltsi rtegbeli hibajelzst egyszer s gyors mdszerrel kell megvalstani, pldul ellenrz sz- szeggel. Ezzel szemben az adatkapcsolati rtegbeli hibajelzs clhardver segtsgvel trtnik, s gy a ciklikus redundanciaellenrzs sokkal bonyolultabb mveleteit is elvgezhet jk viszonylag rvid id alatt. Feldmeier olyan programozsi technikkat kutatott, amelyek nemcsak slyozott ellenrz sszeges, de a ciklikus redundancia-ellenrzst hasznl s egyb mdszerek hatkony implementcijt is lehetv teszik [Feldmeier 1995]
D: elkldend adatbitek
Bitminta
D x 2' XOR R
Matematikai kplet
Valamennyi CRC-mveletet modulo-2 aritmetika szerint vgezzk, az sszeadsnl s a kivonsnl nem vesszk figyelembe az tvitelt. Ennek kvetkeztben teht az sszeads s a kivons lnyegben ugyanaz a mvelet, s ekvivalens az operandusokon elvgzett bit szerinti kizr-vagy-mvelettel (XOR). gy pldul
0100
A szorzs s oszts mvelete megfelel a modulo-2 aritmetika szorzs, illetve oszts mveleteknek azzal a klnbsggel, hogy a szksges sszeadsi vagy kivonsi mveleteket az tvitelek figyelmen kvl hagysval kell elvgezni. A 2*nal val szorzs a binris aritmetiknak megfelelen k helyi rtkkel balra tolja el a bitmintt, gy a Dx 2' XOR R mvelet az 5.7. brn lthat d + r elem bitmintt adja eredmnyl. A tovbbiakban a bitminta fenti algebrai lerst fogjuk hasznlni. Most mr csak egy kritikus krds maradt megvlaszolatlan, nevezetesen az, vajon hogy szmtja ki a kld csompont az R bitsorozatot? Tudjuk, hogy R-re lteznie kell olyan n rtknek, hogy Dx2 r XOR R-nG Mskppen fogalmazva, egy olyan R-ct keresnk, amelyre G osztja Dx2'XOR Rnek. Ha a fenti egyenlet mindkt oldalra XOR-mveletet (azaz tvitel nlkli modulo-2 sszeadst) hajtunk vgre R-rel mint msik operandussal, akkor a kvetkezt kapjuk D x 2 r = nG XOR R Ebbl az egyenletbl mr lthatjuk, hogy amennyiben l)x2r -t G-vel osztjuk, a maradk pontosan R lesz. R-et teht a kvetkezkppen szmthatjuk:
R = maradk
Az 5.8. brn megfigyelhetjk R kiszmtst D = 101110, d = 6, G = 1001 s r- 3 esetn. A 9 tviend bit ebben az esetben 101110 011. A szmts vgigkvetst az olvasra bzzuk, s javasoljuk a Dx2r = 10101 lxG XOR R egyenlsg ellenrzst is. Nemzetkzi szabvnyok definiljk a 8, 12, 16 s 32 bites G genertorokat. Az ATM-cel- lk 5 bjtos vdelmt 5 bites CRC-kdok biztostjk. A tbb adatkapcsolati protokollban is hasznlt 32 bites lEEE-szabvnyos CRC-32 genertora a kvetkez: G crc . 32 = 100000100110000010001110110110111
1 0
1 0 1 1
1 0 0 1 | 1 1 1 0 1 O O P 1 0 1 0 1 0 0 1 1 1 0 000
1 1
1 0
11 0 0 '1 0 0 1 1 0 1 0 1 0 0 1 0 1 1 l 1
Az adatszrs fogalmval valamilyen szinten mr tisztban vagyunk - a televzi ugyanis, amita csak ltezik, az adatszrs elvn mkdik. A hagyomnyos televzi ugyanakkor csak egyirny adatszrst valst meg (azaz egy fix adcsompont sugroz szmos vevcsompontnak), mg egy szmtgpes hlzat csompontjai mind adsra, mind vtelre kpesek. Az adatszr csatornra esetleg tallbb hasonlat egy koktlparti, ahol az emberek egy nagyobb szobban gylnek ssze, hogy beszljenek egymsnak, s hallgassk egymst (a csatorna szerept a leveg jtssza). Egy msik j analgia az osztlyterem, ahol a tanr s a dikok egyazon csatornn osztoznak. Mindkt helyzet egyik kzponti krd se, hogy ki s mikor beszlhet, azaz tovbbthat zenetet a csatornra. Mi, mint emberek, kialaktottunk egy bonyolult szablyrendszert az adatszr csatorna megosztsra: Mindenki kapjon lehetsget a beszdre. Ne beszlj, amg nem szltanak. Hagyj msokat is szhoz jutni. Ha krdsed van, jelentkezz. Ne szlj kzbe, ha ms beszl. Ne aludj el, amikor ms beszl. A szmtgpes hlzatoknak is megvannak a sajt hasonl szablyrendszerei (protokolljai) -az gynevezett tbbszrs hozzfrsi protokollok (multipleaccessprotocols) - amelyek segtsgvel a csompontok szablyozhatjk a kzs csatornhoz val hozzfrsket. Ahogy az 5.9. bra is mutatja, a tbbszrs hozzfrsi protokollokra a legklnbzbb esetekben szksg lehet, belertve a vezetkes s vezetk nlkli helyi hlzatokat s a mholdas hlzatokat is. Habr valamennyi hlzati csompont a csatoljn keresztl ri el a csatornt, a fejezetben csompont alatt az ad-, illetve vevegysgeket fogjuk rteni. A gyakorlatban csompontok szzai, st ezrei kommuniklhatnak egymssal, egyetlen kzs csatornn osztozva. Mivel valamennyi csompont kpes keretek tovbbtsra, elfordulhat, hogy tbb csompont egy idben helyez egy-egy keretet a csatornra. Ilyenkor valamennyi csompont tbb keretei vesz egy idben, azaz valamennyi csompont a keretek tkzst (collide) fogja rzkelni. Kerettkzskor jellemzen semelyik csompont nem kpes semelyik vett keret rtelmezsre - az tkz keretekhez tartoz jelek lnyegben kibogozhatatlanul sszekeverednek. Ebbl kvetkezen valamennyi tkz keret elveszik, a csatorna pedig gyakorlatilag kihasznlatlanul marad az tkzs idtartamra. Egyrtelm, hogyha sok csompont viszonylag gyakran szeretne kereteket tovbbtani, az eredmny kereltkzsek sorozata lesz, s az adatszr csatorna svszlessgnek nagy rsze ki hasznlatlanul marad. Annak rdekben, hogy tbb aktv csompont esetn is ki tudjuk hasznlni az adatszr csatornt, valahogyan szablyozni kell a csompontok kerettovbbtst. Ezt a hozzfrs-szablyozst a tbbszrs hozzfrsi protokoll vgzi. Az elmlt 30 vben cikkek ezrei s doktori disszertcik szzai szlettek a tbbszrs hozzfrsi protokollok tmakrben. (Rom 1990] ezekrl a munkkrl nyjt rthet ttekintst. Napjainkban az jabb s jabb faj la adatkapcsolatok, klnskppen az j vezetk nlkli megoldsok megjelen svel
a tbbszrs hozzfrsi protokollok kutatsa mg mindig igen npszer. Habr az vek sorn tbbszrs hozzfrsi protokollok tucatjait hasznltk klnfle adatkapcsolati megoldsokban, szinte minden tbbszrs hozzfrsi protokollt alapveten hrom csoportba sorolhatunk be. Ezek: a csatornaosztsos protokollok (channel
(pldul Wifi)
(pldul Ethernet)
Koktlparti
8la,bla,b!a
ZZZZZ
Mholdas hlzat
partitioning protocols), a vletlen hozzfrsi protokollok (random access protocols) s a adsjog-tvteli protokollok (taking-turns protocols). Ezt a hrom protokollfajtt a kvetkez hrom alfejezetben trgyaljuk. ttekintsnket zrjuk egy idelis R bit/s tviteli sebessg adatszr csatornn mkd tbbszrs hozzfrsi protokoll kvnatos tulajdonsgainak sszefoglalsval: Egyedl forgalmaz csompontnak R b/s a hatsos adattviteli sebessge. Ha egyszerre M csompont forgalmaz, mindegyikknek R/M b/s a hatsos adat- tviteli sebessge. Ez nem felttlenl jelenti azt, hogy valamennyi csompontnak lland R/M b/s az tviteli sebessge, sokkal inkbb azt, hogy egy alkalmasan megvlasztott idintervallumra szmolva minden csompont tviteli sebessge R/M. 3. A protokoll elosztott, azaz nincsenek vezrcsompontok, amelyek meghibsodsval a teljes rendszer mkdskptelenn vlhatna. 4. A protokoll egyszer s olcsn megvalsthat. 1. 2.
5.3.
TBBSZRS
179
180
vezetk nlkli rendszerekben hasznljk, rszleteiben a 6. fejezetben fogjuk trgyalni, addig is elg, ha annyit tudunk rla, hogy a CDMA-kdokat a TDM idrseihez s az FDM frekvenciasvjaihoz hasonlan tbbszrs hozzfrs csatornk csompontjaihoz rendelhetjk.
5.3.
TBBSZRS
157
TDM
4KHz 1
FDM
2 3 4 1 2 34 1
*t
2 Link
Vaiamennyi.2* vet jele t idrs egy meghatrozott ad-vev prnak van fenntartva.
Rseit ALOI IA
A vletlen hozzfrsi protokollokkal val ismerkedsnket kezdjk az egyik legegyszerbb ilyen protokollal, a rseit ALOMA protokollal. A rseit ALOIIA ismertetse sorn a kvetkez felttelezsekkel fogunk lni:
158
5.3. Tbbszrs
HOZZFRSI PROTOKOLLOK
159
Az idrsek L/R msodpercesek (teht egy adatkeret tvitelhez pontosan egy idrs szksges). Egy adatkeret adst kizrlag az idrs elejn kezdhetjk. A csompontok szinkronizltak, azaz mindegyikk tudja, mikor kezddik egy idrs. Ha kt vagy tbb adatkeret tkzik egy idrsben, valamennyi csompont rzkeli az tkzst mg az idrs vge eltt. Legyen p egy valsznsgi mrtk, azaz egy 0 s 1 kz es szm. A rseit ALOHA mkdse mindezek utn igen egyszer: Ha egy csompontnak tovbbtand kerete van, megvrja a kvetkez idrs elejt, s abban az idrsben tovbbtja is az adatkeretet. Ha nem trtnt tkzs, sikeres volt az tvitel, s nincs szksg jraadsra. (A csompont, ha van mg tviend adatkerete, azt elksztheti tvitelre) Ha tkzs trtnt, a csompont szleli azt mg az idrs vge eltt. A kvetkez idrsekben p valsznsggel jraadja az adatkeretet, egszen addig, amg nem sikeres az tvitel. A p valsznsggel val jraads tulajdonkppen annyit jelent, hogy a csompont feldob egy cinkelt pnzrmt, amelynek p valsznsggel fej, (1 - p) valsznsggel az rs oldala kerl fellre. A fej az add jra az adatkeretet utastsnak, az rs pedig az a kvetkez idrst hagyjad ki, s a vgn jra dobd fel az rmt utastsnak felel meg. Els rnzsre a rseit ALOHA-nak sok elnys tulajdonsga van. A csatornaosztsos mdszerekkel ellenttben ugyanis egy csompont folyamatosan kihasznlhatja a teljes, R adattviteli sebessget, amennyiben aktv egyedl. (Egy csompont akkor aktv, ha ppen van elkldend kerete.) Ezen fell a protokoll nagymrtkben elosztott, mivel a csompontok egymstl fggetlenl rzkelik az tkzsek bekvetkeztt, s egymstl fggetlenl dntik el, mikor adjk jra az tkztt keretet (igaz, a csompontokat r kell szinkronizlni az idrsekre - hamarosan azonban trgyalni fogjuk az ALOHA protokoll egy nem rseit vltozatt s a CSMA protokollcsaldot is, amelyek nem ignylik a csom pontok szinkronizcijt, s amelyek gy teljesen elosztottak). A rseit ALOHA mindezeken tl egy vgtelenl egyszer mkds protokoll. A rseit ALOHA jl teljest, ha csak egy csompont aktv, de mi van, ha egyszerre tbb csompont is adni szeretne. Ekkor kt nagy problmval is szembe kell nznnk. Elszr is, ahogy azt az 5.11. bra is mutatja, ha tbb csompont aktv egyszerre, az idrsek egy bizonyos hnyadban tkzsek trtnnek, s gy ezek az idrsek elvesznek. Msrszt lesznek olyan idrsek is, amelyek resen maradnak, mivel az jraads valsznsgen alapul szablyozsa miatt valamennyi csompont tartzkodik az adatkeret jbli adstl. Teht kizrlag azon idrsek lesznek kihasznlva, amelyekben pontosan egy csompont tovbbt keretet. Az olyan idrseket, amelyekben csak egy csompont tovbbt keretet, sikeres idrseknek (successful slot) nevezzk. Egy rseit tbbszrs hozzfrs protokoll hatkonysga nem ms, mint a hossz idej futs sorn tapasztalt sikeres idrsek hnyada abban az esetben, ha sok aktv csompont van, s ezek
160
kzl mindegyiknek sok tovbbtand kerete van. Figyeljk meg, hogy amennyiben nem szablyoznnk a csatornhoz val hozzfrst, s minden csompont az tkzs utn rgtn jraadn a csomagjt, a hatkonysg nullval lenne egyenl. A rseit ALOHA nulla fl emeli a hatkonysgot - de vajon mennyivel?
5.3.
TBBSZRS
161
I. csompont
Id
2. csompont Jells:
3. csompont 3
5.11. bra. Az 1-es, 2-es s 3-os csompontok az els idrsben tkznek. A 2-es csompont vgl a negyedik, az 1-es csompont a nyolcadik, a 3-as csompont pedig a kilencedik idrsben jr sikerrel
Prbljuk meg most levezetni a rseit ALOHA segtsgvel elrhet maximlis hatkonysgot! A szmts egyszerstse rdekben mdostsuk kiss a protokollt, s tegyk fel, hogy valamennyi csompont minden egyes idrsben p valsznsggel prblkozik kerettovbbtssal. ('lht mindegyik csompont mindig rendelkezik tovbbtand adatkerettel, s akr jraadsrl, akr az adatkeret els tovbbtsi ksrletrl van sz, p valsznsggel forgalmazunk.) 'legyk fel tovbb, hogy N db csompontunk van sszesen. Annak valsznsge, hogy egy idrs sikeres, annak a valsznsgvel egyenl, hogy egy csompont forgalmaz, a tbbi N - 1 viszont nem. Egy csompont p valsznsggel ad, annak a valsznsge pedig, hogy a tbbi csompont nem ad, (1 - p)N~l. gy egy adott csompont sikernek valsznsge p( 1 - p)N Mivel sszesen Ncsompontunk van, an nak valsznsge, hogy ezek kzl brmelyik sikerrel jr, Np( 1 - p) v ~ ! . Ez teht azt jelenti, hogy N aktv csompont esetn a rseit ALOHA hatkonysga Np(l - py A maximlis hatkonysg elrshez meg kell tallnunk azt a p* valsznsget, amely maximalizlja a fenti kifejezst. (A levezets vzlatt lsd a fejezet vgi feladatoknl.) Vennnk kell teht Np*( 1 - p*)N 1 hatrrtkt, ahol N tart a vgtelenbe. (Lsd a feladatokat.) A szksges szmtsok elvgzse utn lthatjuk, hogy a hatkony sg az 1 le = 0,37 rtkben maximalizldik. Ez nem jelent mst, mint hogy amennyiben sok csompont
162
szeretne sok adatkeretet tovbbtani, az idrsek mindssze 37 szzalka hasznos, azaz a csatorna vals tviteli sebessge nem R b/s, csupn 0,37 R b/s! Egy hasonl vizsglat azt is megmutatja, hogy az idrsek szintn 37 szzalka res, s 26 szzalkukban trtnik tkzs. Kpzeljk csak el azt a szerencstlen rendszergazdt, aki megvett egy 100 Mb/s adattviteli sebessg ALOHArendszert, s arra szmt, hogy felhasznlk tmkelegnek tud majd sszesen, teszem azt, 80 Mb/s sebessg adattviteli szolgltatst biztostani! Ugyanis jllehet, a csatorna kpes egy keret teljes, 100 Mb/s sebessggel val tvitelre, hossz tvon mgis 37 Mb/s al kerl ezen a csatornn a hasznos tereszt kpessg.
5.3. Tbbszrs
HOZZFRSI PROTOKOLLOK
163
Egyszer ALOHA
A rseit ALOHA esetben szksg volt arra, hogy a csompontok adatkerettovbbtsait az idrsekhez szinkronizljuk. Az ALOHA els vltozata (az egyszer AL01IA) [Ab- ramson 1970] valjban nem rseit, teljesen elosztott protokoll volt. Az egyszer ALOHA, ha egy csompontnak tviend kerete keletkezik (azaz az adatkapcsolati rteg hlzati szint adatcsomagot kap a hlzati rtegtl), azt azonnal s teljes egszben tovbbtja. Amennyiben tkzst szlel a csompont, p valsznsggel (a teljes tkz keret leadst kveten) azonnal jraadja a keretet, 1 - p valsznsggel vr egy keretidnyit (teht egy adatkapcsolati keret adshoz szksges idt). Utbbi esetben a keretid letelte utn p valsznsggel jraadja a keretet, 1 - p valsznsggel pedig ismt egy keretidnyi vrakozsba kezd. Az egyszer ALOHA maximlis hatkonysgnak megllaptshoz egy adott i csompontra fogunk sszpontostani. Feltevseink ugyanazok, mint a rseit ALOHA vizsglatnl, idegysgnek a keretidt tekintjk. Egy keret adsnak megkezdse brmely idpillanatban p. Tegyk fel, hogy keretnket a p idpillanatban kezdjk tovbbtani. Ahogy az 5.12. brn is lthatjuk, a keret tvitele akkor lesz sikeres, ha a (f 0 - 1, j idintervallumban nem kezddtt meg msik keret adsa. Egy ilyen keret ugyanis tkzne az i csompont keretnek elejvel. Annak valsznsge, hogy egyik csompont sem kezdi meg adst ebben az idintervallumban, (1 - p)' v ". Hasonlkppen, nem kezddhet meg ms keret adsa addig, ameddig keretnket t nem vittk, hiszen ellenkez esetben az jonnan to vbbtott keret adsa az i csompont keretnek vgvel tkzne. Ebben az idszakaszban szintn (1 - p)N 1 valsznsggel nem kezddik meg ms keret tvitele. gy teht annak valsznsge, hogy egy adott csompont sikerrel tovbbt egy adatkeretet, /;(1 p) 2(;V l) . A rseit ALOHA-hoz hasonl hatrrtk-szmts segtsgvel azt kapjuk, hogy a maximlis hatkonysg csupn \/(2e) - a rseit ALOHA hatkonysgnak pontosan a fele. Ezt az rat kell teht fizetnnk egy teljesen elosztott ALOHA protokollrt.
tkzs / csompont keretnek elejvel tkzs /csompont keretnek vgvel
5.3. Tbbszrs
HOZZFRSI PROTOKOLLOK
164
o~
...
Time
Egy kis trtnelem Norm Abramson s az AI.OH Anet Dr. Norm Abramson szenvedlyes szrfs volt, s a csomagkapcsols irnt is rdekldtt. Ez a kt dolog vitte l a Hawaii Egyetemre 1969-ben. Hawaii tbb hegyes-vlgyes szigetbl ll, amely megnehezti a vezetkes hlzatok teleptst s mkdtetst. Abramson ezrt azon kezdett gondolkodni, hogyan lehetne megvalstani egy olyan hlzatot, amely rdi segts gvel tovbbt adatcsomagokat. Az ltala megtervezett hlzat egy kzponti hosztbl s tbb msodlagos, Hawaii szigetein sztszrt csompontbl llt. A hlzat kt klnbz frekven ciasvot hasznl csatornval rendelkezett. A lelltsi csatorna feladata a kzponti hoszttl a msodlagos csompontok fel val zenetszrs, a feltltsi csatorn pedig a msodlagos csompontoktl a kzponti hoszt fel irnyul forgalom lebonyoltsa volt. A letltsi csatornn az informcis adatcsomagok kldsn tl a kzponti hoszt nyugtkat is kldtt a msodlagos csompontoknak, minden egyes tlk kapott csomag sikeres vtele utn. Mivel a msodlagos csompontok csomagkldst elosztottan valstottk meg, a feltltsi csatornn elkerlhetetlenek voltak az tkzsek. Abramson ezen megfigyelse vezetett az egyszer ALOH A protokoll kidolgozshoz. 1970-ben, az ARPA folyamatos tmogatst lvezve, Abramson csatlakoztatta az AI.OH Anet-et az ARPAnet-hez. Abramson munkssga nemcsak azrt fontos, mert megjelenik benne az els csomagkapcsolssal mkd rdis hlzat, hanem azrt is, mert ihlette Bob Metcalfe munkjt, aki pr vvel ksbb az ALOHA mdostsval megalkotta a CSMA/CD protokollt s Etherneten alapul helyi hlzatot.
szmtgphlzatok vilgban ezt hvjk vivrzkelsnek (carrier sensing) a csompont ads eltt belehallgat a csatornba. Ha egy msik csompont keretnek adsa folyamatban van, a csompont vr (visszalp) vletlen ideig, majd ismt belehallgat a csatornba. Ha szabad a csatorna, a csompont megkezdi kerete tovbbtst. Ellenkez esetben ismt vletlen ideig vr, s megismtli a fent lertakat. Ha ms kezd veled egytt beszlni, hallgass el. A szmtgp-hlzatos vilgban ez az tkzsrzkels (collision detection) - a keretet tovbbt csompont hallgatja a csatornt ads kzben. Ha gy rzkeli, hogy egy msik csompont vele egyszerre ad, felfggeszti adst, s valamilyen protokoll segtsgvel kiszmtja azt az idpontot, amikor jra megprblkozik a keret tovbbtsval.
Ezen szablyok alapjn szlettek meg a vivrzkelses tbbszrs hozzfrs (car- rier sense multiple access, CSMA), valamint az tkzsjelzses CSMA (CSMA with collision detection, CSMA/CD)) protokollcsaldok [Kleinrock 1975b; Metcalfe 1976; Lm 1980; Rom 1990]. A CSMA-ra s CSMA/CD-re rendkvl sok vltozatot dolgoztak ki. Ezek rszleteirl a fent emltett anyagokban olvashatunk bvebben. Az Ethernetnl hasznlt CSMA/CD-vltozatot rszletesen az 5.5. fejezetben trgyaljuk, most a CSMA s a CSMA/CD legalapvetbb s legfontosabb jellemzit vesszk vizsglat al. Az els nagy krds amin esetleg az olvas is elgondolkozott, az az, vajon hogyan trtnhetnek keret tkzsek, amikor ads eltt minden csompont belehallgat a csatornba? Hogyan trtnhetnek keret tkzsek, amikor a csompontnak vissza kell lpnie a keret- tovbbtstl, ha ms csompont adst rzkeli? A krdsre a vlaszt a legknnyebben a jelterjedsi (vagy hely-id) diagramok segtsgvel szemlltethetjk [Molle 1987]. Az 5.13. brn ngy, sntopolgiba rendezett csompont jelterjedsi diagramjt lthatjuk. A vz szintes tengely az egyes csompontok helyt mutatja, a fggleges tengely az idtengely. A B csompont t0 idpontban szabadnak rzkeli a csatornt, mivel ppen senki sem forgalmaz rajta. Megkezdi teht keretnek tovbbtst, amelyek bitjei egyenletesen terjednek a kzegen B csomponttl elfel mindkt irnyba. Az 5.13. brn lthat, hogy az id elrehaladtval a keret terjedst brzol svok lefel toldnak. Ez azt jelenti, hogy el kell telnie valamennyi (nem nulla) idnek ahhoz, hogy a B csompont llal kikldtt bitek
Hely
________I______________!_______________I______________I________
Id
Id
folyamatban lv adst. Az 5.13. bra csompontjai nem vgeznek tkzsjelzst, gy az tkzs ellenre mindketten kikldik teljes keretket a csatornra. Egy tkzsjelzst hasznl csompont azonban hasonl esetben azonnal felfggeszti adst. Az 5.14. brn lthat eset az 5.13. brhoz hasonl, a klnbsg itt annyi, hogy a csompontok az tkzs szlelse utn rvid idvel abbahagyjk keretk tovbbtst. Egyrtelmen lthatjuk, hogy egy tbbszrs hozzfrsi protokoll tkzsjelzssel val felvrtezse nveli a protokoll teljestmnyt, mivel a hasznlhatatlann vlt, tkzs kvetkeztben megrongldott keretek nem kerlhetnek ki teljes egszkben a csatornra. Az 5.5. fejezetben trgyalt Ethernet-prolokoll is az tkzsjelzses CSM A-protokollok csaldjba tartozik.
Hely
_______I______________1______________!______________!_______
Id
mestercsompont kiesse esetn az egsz rendszer mkdskptelenn vlik. A msik trgyalt adsjog-tvteli protokoll az n. tokentadsos (token-passing) protokoll. Ennl a protokollnl nincsen mestercsompont. Egy specilis clokra hasznlt keret, egy n. tokn kering a csompontok kztt valamilyen, elre meghatrozott sorrendben - pldul az els csompont mindig a msodiknak adja t a tknt, a msodik mindig a harmadiknak, az N-edik pedig mindig az els csompontnak. Ha valamely csompont megkapja a tknt, csak akkor tartja meg, ha vannak tviend keretei, ellenkez esetben azonnal tovbbadja azt. Ha a tknt birtokl csompontnak van tviend adata, legfeljebb egy elre meghatrozott szm keretet kldhet t, majd tovbb kell adnia a tknt. A to kentadsos protokoll elosztott s rendkvl hatkony, de van nhny htultje is. Pldul egy meghibsodott csompont hasznlhatatlann teheti az egsz csatornt. Szintn problmt okoz, ha valamelyik csompont nem adja tovbb a tknt. Ekkor valamifle karbantartsi folyamatot kell indtani annak rdekben, hogy a tokn visszakerljn a csompontok kztti krforgsba. Az vek sorn szmos tokentadsos protokollt dolgoztak ki, amelyek kzl mindegyiknek szembe kellett nznie a fent emltett s ms komoly problmkkal. Ezen protokollok kzl mi kettt trgyalunk a kvetkez fejezetben, nevezetesen az FDDI-t s az IEEE 802.5 protokollt.
Helyi hlzat
Jells:
= interfsz
172
5.
AZ
HLZATOK
Egy tokentadsos helyi hlzatban az Ndb csompontot (tvlasztkat s hosztokat) egy kzvetlen adatkapcsolatokbl ll gyr kti ssze, amely egyben meghatrozza a token- tads sorrendjt. Mikor egy csompont elkld egy keretet, az bejrja a gyrt, amely gy egy virtulis adatszr csatornaknt mkdik. Mikor a cmzett csompont megkapja a keretet, elolvassa, majd tovbbkldi. A kld csompont felelssge a keret eltvoltsa a gyrrl. Az FDDI-t nagyobb terleten elhelyezked helyi hlzatokra, tbbek kztt nagyvrosi h lzatokra (metropolitan area network, MN) fejlesztettk ki. Ilyen nagymret (kilom terekre kiterjed) hlzatoknl flsleges hatkonysgromlst okoz, ha egy keret visszatr az t kld csomponthoz, ezrt az FDDI-ben mr a cmzett csompont eltvoltja a keretet a gyrrl. (Pontosan fogalmazva teht az FDDI-gyr nem tiszta adatszr csatorna, mivel nem minden csompont kap meg minden, a kzegre kikldtt keretet.)
5.4.1. MAC-cmek
Az adatkapcsolati szint cmek valjban nem csompontokat (hosztokat vagy tvlasztkat) azonostanak, hanem a csompontok hlzati csatolit. Ezt szemllteti az 5.16. bra is, Az adatkapcsolati cmeket LAN-cmeknek, fizikai cmeknek vagy MAC-cmek- nek is nevezik. Mivel a legutbbi a legelterjedtebb elnevezs, mi az adatkapcsolati cmekre MAC-cmekkent fogunk hivatkozni. A legtbb helyi hlzati szabvny (pldul az Ether net vagy az IEEE 802.11-es vezetk nlkli helyi hlzati szabvny) 6 bjtos MAC-cmeket definil, amely 2 48 lehetsges cmet jelent. Ahogy az 5.16. brn lthat, a MAC-cmeket ltalban hexadecimlisan rjuk, a cm minden bjtjt kt hexadecimlis szmmal kifejez ve. jllehet, a MAC-cmeket eredetileg llandra terveztk, ma mr meg lehet ket szoftveresen vltoztatni. A fejezetben ennek ellenre feltesszk, hogy a csatolk adatkapcsolati cmei rgztettek. A MAC-cmek rdekes tulajdonsga, hogy nincs a vilgon kt olyan hlzati csatol, amelynek cme megegyezne. I.ehet, hogy ez meglepen hangzik annak tudatban, hogy a csatolkat szmtalan orszg szmtalan zemben gyrtjk. 1 Iogy lehet mgis biztos egy tajvani cg abban, hogy az ltala gyrtott csatolk M AC-cmei klnbznek egy belga cg csatolinak cmeitl? A vlasz egyszer. A MAC-cmek kiosztst az IEEE felgyeli. gy valahnyszor egy cg hlzati csatolk
5.3.
TBBSZRS
HOZZFRSI PROTOKOLLOK
173
gyrtsba kezd, nvrtken megvsrol egy 2U cmbl ll tartomnyt. Az IEEE a cmtartomny lefoglalsakor rgzti annak els 24 bit jt, a csatolk cmeinek tbbi 24 bitje felett pedig a gyrt rendelkezik.
174
5.
AZ
HLZATOK
1A-23-F9-CD-06-9B
'9-BD-D2-C 7-56-2 A
5C-66-AB-90-75-B1
88-B2-2F-54-1A-0F u
5.16. bra. Minden LAN-hoz kapcsold csatolnak egyedi MAC-cime van Egy hlzati csatol MAC-cmnek struktrja egyszint (azaz nem hierarchikus), s nem vltozik, brhov is kerl a csatol. Ez azt jelenti, hogy egy hordozhat szmtgp Ethernet-krtyjnak, de egy PDA vezetk nlkli hlzati csatoljnak sem vltozik a M AC-cme, brhova is kerljn maga a szmtgp vagy a PDA. Emlkezznk arra, hogy ezzel szemben az IP-cmek struktrja hierarchikus (teht egy hlzati azonost rszbl s egy hosztot azonost rszbl ll), s amikor a hoszt mozog, teht egy j hlzatba kerl, IP-cme is megvltozik. A MAC-cmet a szintn egyszint s rgztett szemlyi szmokhoz hasonlthatnnk, mg az IPcimek a postai cmekhez hasonlan mkdnek, hiszen a postai cmek struktrja az IP-cmekhez hasonlan hierarchikus, s amikor va laki elutazik valahova, postai cme is megvltozik. Ahogy a szemlyeknl hasznos, ha van postai cmk s szemlyi szmuk is, gy a hlzati csompontok esetben is hasznos a MAC-cm s az IP-cm meglte. Ahogy az alfejezet elejn mr emltettk, ha egy hlzati csatol egy msik csatolnak kld zenetet, az adatkapcsolati keretbe elhelyezi a cmzett csatol MAC-cmt, majd kikldi a keretet a helyi hlzatra. Ha a helyi hlzaton adatszr csatornt hasznlunk (mint pldul a 802.11-es vezetk nlkli hlzatoknl s szmos Ethernetes hlzatban), akkor valamennyi, az tviteli kzeghez csatlakoz csompont veszi, s feldolgozza a keretet. Ez pontosabban fogalmazva azt jelenti, hogy valamennyi csompont veszi a keretet, majd megvizsglja, hogy a cmzett M AC-cme egyezik-e a sajt MAC-cmvel. Ha megegyezik a kt cm, a csatol eltvoltja a keret fejlct, s az gy kinyert hlzati szint adatcsomagot tovbbadja a hozz kapcsold csompontnak. Ha nem egyezik a kt MAC-cm, a csatol egyszeren figyelmen kvl hagyja a keretet, s nem adja tovbb a hlzati rtegbeli csomagot. Ezzel a megoldssal csak a cmzett csompont szerez tudomst a csomag rkezsrl. Bizonyos esetekben viszont a kld csompontnak kifejezett clja, hogy az sszes tbbi csompont megkapja, s feldolgozza a keretet. Ebben az esetben egy specilis krzvny- cmet (broadeast address) helyez cl a keret fejlcben a cmzett cme mezben. Azokban a helyi hlzatokban, amelyek 6 bjtos adatkapcsolati cmekkel mkdnek (mint pldul az Ethernet vagy tokentadsos I.AN-ok) a krzvnycm egy 48 bites egyesekbl ll sorozat (azaz hexadecimlisan az FF-FF-FF-FF-FF-FF cm).
175
Ivek a gyakorlatban i
A rtegek fggetlensge Szmtalan oka van annak, hogy a csompontok IP-cmeken kvl MAC-cmekkel is rendel keznek. Elszr is, a helyi hlzatokat gy terveztk, hogy az IP-n s az interneten tl tet szleges hlzati protokollal egytt tudjanak mkdni. Ha a csatolkat IP-cmekkel, s nem semleges" MAC-cmekkel azonostannk, igencsak nehzkes lenne ez az egyttmkds ms hlzati protokollokkal (pldul az IPX-szel vagy a DECnet-tel). Msrszt, ha a csatolknak hlzati cmeket kellene hasznlniuk MAC-cmek helyett, akkor ezt a cmet bels memri jukban kellene trolni, s jra kellene konfigurlni, valahnyszor thelyezzk (vagy bekapcsol juk) ket. A MAC-cmek elkerlsnek msik mdja az lehetne, ha a csatolk egyltaln nem rendelkeznnek semmifle cmmel, s valamennyi vett keretben szlltott adatot (ami ltal ban egy IP-csomag) tadnnak a hlzati rtegnek. Ezutn a hlzati rteg ellenrizhetn a cmegyezst. A megolds hibja, hogy minden, a helyi hlzaton megjelen keretrl, belertve a ms csompontnak cmzett kereteket is, rtesteni kellene a hosztot. Egyszval, annak rde kben, hogy a rtegek a hlzati architektra nagymrtkben fggetlen ptkvei lehessenek, a klnbz rtegeknek rendelkeznik kell valamifle sajt cmzsi rendszerrel. Ezek kzl a cimtpusok kzl mi eddig hrmat ismertnk meg, nevezetesen az alkalmazsi rteg hosztne- veit, a hlzati rteg IP-cmeit, valamint az adatkapcsolati rteg M AC-cmeit.
176
Most mr lthatjuk, hogy az ARP IP-cmeket fordt le MAC-cmekre. Bizonyos rte lemben az ARP s a hosztneveket lP-cmekre fordt DNS (amelyet a 2.5. alfejezetben is-
177
lF-cim:222.222.222.220
1A-23-F9-CD-06-9B
/
8-B2-2F-54-1A0F
5C-66-AB-90-7S-B1 IPcim:222.222.222.223
IP-cim:222.222.222.221
IPc i m : 2 2 2 . 2 2 2 . 222.22
178
179
180
cmfeloldshoz az ARP-protokolIt kell hasznlnunk. Els lpsben a kld csompont ltrehoz egy specilis csomagot, egy n. ARP-csomagot. Az ARPcsomag tbb mezt tartalmaz, kzttk a kld s a fogad csompont IP- s MACcmeit szllt mezket. Az ARP krs- s vlaszzeneteinek formtuma megegyezik. A krszenet clja, hogy az alhlzat valamennyi csompontjt lekrdezze annak rdekben, hogy megtalljuk a fel oldand IP-cmhez tartoz MAC-cmet. Visszatrve pldnkhoz, a 222.222.222.220 cm csompont egy ARP krszenetet ad t hlzati csatoljnak arra krve t, hogy a csomagot a krzvny MAC-cmre, teht az FF-FF-FF-FF-FF-FF cmre tovbbtsa. A csatol az ARP-csomagot egy adatkapcsolati keretbe gyazza, amely clcmmezjben a krzvnycmet adja meg, majd kikldi a keretet az alhlzatra. Az ARP-krst tartalmaz adatkapcsolati keretet valamennyi, az alhlzatra kapcsold hlzati csatol veszi, s (a krzvnycm miatt) a keretbe gyazott ARP-zenetet minden csatol tovbbadja a csompontban lv ARP-modulnak. Minden csompont ellenrzi, hogy IP-cme megegyezik-e az ARP-krs cl IP-cmvel. A krsre az a (legfeljebb egy) csompont vlaszol, amely egyezst tall, s elkld egy ARPvlaszzenetet, amely tartalmazza a krt IP-cm - MAC-cm prost. A krst kl d 222.222.222.220 cm csompont ezek utn mr frisstheti ARP-tbljt, s elkldheti csomagjt egy olyan adatkapcsolati keretben, amely a cmzett mezben mr a frissen megismert MAC-cmet tartalmazza. Nhny rdekes dolgot megfigyelhettnk az ARP-vel kapcsolatban. Elszr is, a krszenetet krzvny keretben kldjk, mg a vlaszzenetet mr egy egyszer keretben. Mieltt tovbbolvasnnk, rdemes elgondolkozni azon, vajon mirt van ez gy. Msodszor, az ARP plug-and-play elven mkdik, azaz a csompontok ARPtbli automatikusan felplnek, nincsen szksg a rendszergazda kzi konfigurcijra. Hasonl mdon, ha egy csompont lekapcsoldik az alhlzatrl, az t rint bejegyzs egy id utn trldik a tblbl.
181
MAC-cmmel rendelkezik. Az brn az is ltszik, hogy mg az egyik alhlzatnak 111.111.111.0/24 az alhlza- ti cme, addig a msiknak 222.222.222.0/24. Emiatt valamennyi, az elbbi alhlzathoz csatlakoz interfsznek 111.111.111.xxx alak az IP-cme, az utbbi hlzathoz tartoz interfszek IP-cmei pedig a 222.222.222.xxx mintra illeszkednek.
74-29-9C-E8-FF-55
IP-ci:n:
111.111.111.11 1
CC-49-DE-D0-AB-7D
IP-cim:lll.111.111.110
222.221
jp-cim:
1A-23-F9-CD-06-9B 1 P cim:222.222.222.220
4 9-BD-D2-C7-56-2A
IP-cim:
222 .222 .222.222
111.111.111.112
5.18. bra. Kt tvlasztval sszekapcsolt alhlzat Mindezek utn vizsgljuk meg, hogy egy, a 111.111.111.0/24 cm alhlzatra csatlakoz hoszt hogyan tud adatcsomagot kldeni egy, a msik alhlzaton lv hosztnak. Tegyk fel, hogy a kld csompont a 111.111.111.111 IP-cm csompont, s hogy a 222.222.222.222 cm hosztnak szeretne tkldeni egy IPcsomagot. A kld csompont szoks szerint t adja a tovbbtand csomagot hlzati csatoljnak. A problma ott jelentkezik, hogy ekkor kzlnnk kellene a csatolval a cmzett MAC-cmt is. Vajon milyen MAC-cmet kellene hasznlnunk? Felmerlhet esetleg a cmzett csompont adatkapcsolati cme, nevezetesen 49BD-D2-C7-56-2A. Hz a megolds azonban hibs lenne! Ha ugyanis ezzel a MACcmmel kldennk ki a keretet az alhlzatra, egyik csatol sem tovbbtan a benne lv csomagot a hlzati rtegnek, mivel a keret clcme nem illeszkedne egyik csatol MAC-cmvel sem. Az adatcsomag egyszeren elhalna, s az adatcsomag a menyorszgba kerlne. Ha jl megfigyeljk az 5.18. brt, szrevehetjk, hogy annak rdekben, hogy a csomag eljusson 111.111.111.111-tl a msik alhlzatba, azt els lpsben az tvlaszt 111.111.111.110 IP-cm interfszre kell elkldeni. Ebbl kvetkezen az adatkapcsolati keretben hasznland MAC-cm az tvlaszt 111.111.111.110 interfsznek cme, azaz E6-E9-00-17-BB-4B. Hogy hogyan derti ki a kld csompont az tvlaszt MAC-cmt? Termszetesen az ARP segtsgvel! Mikor a kld csompont csatoljnak mr rendelkezsre ll az tvlaszt MAC-cme, ltrehozza a keretet (amely tartalmazza a 222.222.222.222 IP-cmre cmzett csomagot), s kikldi a sajt alhlzatra. Az tvlaszt ezen alhlzatra csatlakoz hlzati csatolja szreveszi a neki cmzett adatkapcsolati keretet, gy tadja a benne lv adatcsomagot az tvlaszt hlzati rtegnek. Hurr! Az IPcsomag sikeresen megrkezett a forrs hoszttl az tvlaszthoz! Ez azonban ko rntsem jelenti azt, hogy kszen vagyunk. A csomagot ugyanis mg el kell
juttatnunk az CMZS tvlaszttl a cmzett hosztig. Az tvlasztnak elszr is el kell 5.4. ADATKAPCSOLATI 183 dntenie, hogy melyik interfszn kell tovbbtania a csomagot. Ahogy a 4. fejezetben mr megtrgyaltuk, ezt az tvlaszt tblja segtsgvel teheti meg. Az tvlaszt tblbl az tvlaszt azt olvassa ki, hogy a 222.222.222.220 IPcm interfszn kell kiadnia a csomagot. Ez az interfsz a csomagot ezek utn tadja hlzati csatoljnak, amely egy j keretbe helyezi azt, s kikldi a cmzett hoszt alhlzatra. Ezttal a keretben mr a csomag vgllomsnak MAC-cme szerepel clcmknt. s hogy hogyan szerzi meg az tvlaszt ezt az adatkap csolati cmet? Termszetesen ismt ARP-vel! Az Ethernetben hasznlt ARP-protokollt az RFC 826 definilja. A TCP/IP-t ismertet RFC 1180-ban egy kzrthet bevezett olvashatunk az ARP-rl. Az ARPvel rszletesebben a feladatokban foglalkozunk.
222.222.222.223
5C-66-AB-90-75 B1
13:52:00
184
5.5. Az Ethernet
5.
AZ
HLZATOK
Az Ethernet mra gyakorlatilag tvette az uralmat a vezetkes LAN-piacon, jllehet, az 1980-as s 90-es vekben szmtalan kihvs el lltotta a tbbi LANtechnika, ide rtve a tokengyrt, az FDDI-t s az ATM-et. Ezek a technolgik pr vre ugyan meg tudtk maguknak szerezni a piac egy kisebb rszt, de az Ethernet szletstl - a 70-es vek kzeptl - tart ersdsvel s nvekedsvel folyamatosan tartotta, s tartja meghatroz pozcijt. Az Ethernet napjainkra messzemenen a legelterjedtebb helyi hlzati megoldss ntte ki magt, s a belthat jvben minden bizonnyal az is marad. Mond hatjuk gy is, hogy az Ethernet sz ugyanazt jelenti a helyi hlzatokban, mint amit az internet sz a globlis hlzatoknl. Az Ethernet sikernek szmos oka van. Elszr is, az Ethernet volt az els, szeles krben hasznlt, nagysebessg helyi hlzati megolds. Minthogy igen hamar elterjedt, a rendszergazdk megismerkedhettek minden egyes rszletvel - a csodival csakgy, mint a zngivel s ksbb nem szvesen vltottak ms, frissen felbukkant LAN-megoldsokra. Msodszor, a tokengyr, az FDDI s az ATM mind bonyolultabbak s drgbbak voltak az Ethernetnl, ami mg jobban visszatartotta a rendszergazdkat a vltstl. Harmadszor, a ms megoldsokra (pldul FFDI-re vagy ATM-re) val ttrs oka legtbbszr azok nagyobb adatsebessge lett volna - az Ethernet azonban jabb, azonos vagy nagyobb adatsebessg verziival mindig felvette a versenyt a rivlisokkal. Az 1990-es vek elejn bevezettk a kapcsolt Ethernetet (switched Ethernet), amely tovbb nvelte az effektv adattviteli sebessgeket. Vgl pedig, az Ethernet hatalmas npszersgnek ksznheten a hozz szksges hardveregysgek (klnsen a hlzati csatolk s a kapcsolk) brki ltal hozzfrhetek s rendkvl olcsak lettek. Az Ethernet-alap LAN-t eredetileg Bob Metcalfe s Dvid Boggs tallta fel az 1970-es vek kzepn. Az 5.19. brn Metcalfe a tallmnyrl kszlt vzlata lthat. Az brt szem-
szabvnyhoz, amely egy kls advevt, egy Ethernet-csatolt, s e kettt sszekt interfszkbelt tartalmazott
5.4. ADATKAPCSOLATI
CMZS
185
222.222.222.223
5C-66-AB-90-75 B1
13:52:00
186
5.
AZ
HLZATOK
ssze
llve szrevehetjk, hogy eredetileg koaxilis kbelt hasznltak snknt a csompontok sz- szektsre. Ez a sntopolgia egszen az 1990-es vek kzepig elterjedt volt. A sntopo- lgia szerint felptett Ethernet-hlzat adatszr hlzatknt mkdik, azaz valamennyi tovbbtott adatkeretet valamennyi, a snre kapcsold csompont veszi, s feldolgozza. Az 1990-es vek vge fel a legtbb vllalat s egyetem az addig sntopolgij Ether- net-hlzatukat elosztalap csillagtopolgijv alaktotta. Ahogy az 5.20. brn is ltszik, egy ilyen kialakts esetn a hosztok (s az tvlaszt) rzbl kszlt sodrott rpr segtsgvel kzvetlenl kapcsoldnak egy eloszthoz. Az eloszt (hub) nem ms, mint egy fizikai szint eszkz, amely keretek helyett biteket kezel. Amikor valamely interfszre egy nulla vagy egy rtk bit rkezik, az eloszt egyszeren jra ellltja a bitet, megn veli jelerssgt, majd az sszes tbbi interfszn kikldi azt. gy teht a elosztalap csil lagtopolgij Ethernet is adatszr helyi hlzatnak szmt, hiszen amikor az eloszt az egyik interfszn vesz egy bitet, azt az sszes tbbi interfszn megismtli. Ha az eloszt egyszerre kl interfszn jelenik meg egy-egy bit, akkor tkzs trtnik, s a rszt vev csompontok jraadsra knyszerlnek. A 2000-es vek elejn az Ethernet egy jabb, fejldsben fontos szerepet jtsz vltozson ment keresztl. Az Kthernet-hlzatok tovbbra is a csillagtopolgit kvettk, de a kzppontban lev elosztt egy kapcsol (switch) vltotta fl. A kapcsolt Ethernetet a fejezet ksbbi szakaszban rszletesen fogjuk trgyalni, most csak annyit jegyeznnk meg, hogy amellett, hogy br a kapcsolk tkzsmentesek, trol-s-tovbbt elven mkdnek s csomagalapak, az tvlasztkkal ellenttben nem a harmadik, hanem csak a msodik rtegig vizsgljk a tovbbtand csomagot.
vegyk azt az CMZS esetet, amikor egy hoszt egy msik hoszt nak szeretne kldeni egy 1 5.4. ADATKAPCSOLATI 187 P-csomagot. l egyk fel, hogy a kt hoszt ugyanarra az F.thernet-alap helyi hlzatra (pldul az 5.20. bra hlzatra) kapcsoldik. (Habr Ethernet-keretnk szlltmnya jelen esetben egy IPcsomag, azt meg kell jegyeznnk, hogy a keretben ms hlzati rtegbeli protokollok csomagjait is szllthatnnk.) Legyen a kld hlzati csatol az A csatol, AA-AA-AA-AA-AA-AA M AC-cmmel, a fogad hlzati csatol pedig a B csatol, BB-BB-BB-BB-BB-BB MAC-cm- mel. A kld csatol az IP-csomagot adatkapcsolati keretbe gyazza, amelyet ezutn tad a fizikai rtegnek. A vev csatol a fizikai rtegtl kapja meg a keretet, kiszedi belle az IP-csomagot, amelyet lad a hlzati rtegnek. Most pldnk felhasznlsval vizsgljuk meg az 5.21. brn lthat F.thernet-keret felptst: Adatmez (46-tl 1500 bjtig). Ebben a mezben tovbbtdik az IP-csomag. A szllthat csomag maximlis mrete (maximum transmission unit - MTU) 1500 byte. Ez azt jelenti, hogy amennyiben az IP-csomag mrete meghaladja az 1500 bjtot, a hosztnak a tovbbts eltt fel kell trdelnie azt, a 4.4.1. alfejezetben megbeszltek szerint. Az adatmez minimlis mrete 46 bjt. Ha helykitltst alkalmazunk az adatmezben, a kitlt bitek az IP-csomaggal egytt tadsra kerlnek a hlzati rtegnek. A hlzati rteg az IP-fejlc hossz mezjnek segtsgvel tvoltja el ezen kitlt biteket. Clcm (6 bjt). Ez a mez tartalmazza a cmzett hlzati csatol MAC-cmt, azaz a BB-BB-BB-BB-BB-BB cmet. Ha a B csatol olyan Ethernet-keretet vesz, amely cl- cmknt a BB-BB-BB-BB-BB-BB cmet, vagy a krzvny MAC-cmet tartalmazza, a keret adatmezjnek tartalmt tadja a hlzati rtegnek; amennyiben ms clcmet tartalmaz keretet vesz, azt egyszeren figyelmen kvl hagyja. Forrscm (6 bjt). Ez a mez annak a csatolnak a MAC-cmt tartalmazza, amely a keretet a helyi hlzatra tovbbtja, azaz pldnkban az AA-AA-AA-AAAA-AA cmet. Tpusmez (2 bjt). A tpusmezben engedlyezhetjk az Ethernetnek, hogy klnbz hlzati protokollokat nyalboljon. Hogy megrtsk, mire j ez, emlkezznk vissza, hogy a hosztok az IP-n kvl ms protokollokat is alkalmazhatnak a hlzati rtegben. Egy adott hoszt valjban klnfle alkalmazsokhoz ms-ins hlzati protokollokat hasznlhat. Ezen okbl kifolylag amikor B csatolhoz megrkezik egy keret, neki tudnia kell, hogy melyik hlzati protokollnak tovbbtsa (azaz bontsa a nyalbot, demultiplexing) az adatmez tartalmt. Az IP-nek, csakgy mint az sszes tbbi hlzati protokollnak (pldul a Novell IPX-nek vagy az AppleIalknak) megvan a sajt, szabvnyostott tpusszma. St, mg a korbbiakban trgyalt ARP-protokoll is kln tpusszmmal rendelkezik. Vegyk szre, hogy az adatkapcsolati keretek tpusmezje a hlzati csomagok protokoll mezjnek s a szlltsi rtegbeli csomagok portszm mezjnek felel meg - ezen mezk ugyanis mindannyian arra szolglnak, hogy a hasznlt protokollt sszekapcsoljk az eggyel feljebbi rtegben hasznlt protokollal. Ciklikus redundancia-ellenrzs, CRC (4 bjt). Amint azt az 5.2.3. fejezetben mr megtrgyaltuk, a CRC-mez abban jtszik fontos szerepet, hogy a cmzett hlzati csatol megllapthassa, hogy a vett keret tartalmaz-e hibkat, azaz van-e olyan bit,
222.222.222.223 5C-66-AB-90-75 B1 13:52:00
188
Elhang
Clcm
Forrscm
5.
AZ
CRC
HLZATOK
Tpus
amely rtke megvltozott. Bithibk szmos okbl bekvetkezhetnek, ilyenek a jelcsillapts vagy a krnyez elektromgneses energia, amely zajt kelt az Ethernet- kbeleken vagy a hlzati csatol krtykban. A hibaellenrzs a kvetkezkppen mkdik. Az A hoszt Ethernet-kerete ltrehozsakor kiszmolja a CRC-mez rtkt, amelyet a keret CRC-mezn (sazelhangon) kvli bitjeinek valamilyen lekpezsvel kap. Mikor B hoszt megkapja a keretet, ugyanazt a lekpezst alkalmazva megvizsglja, hogy az eredmny s a CRC-mez rteke megegyezik-e. Ezt a vev oldalon vgrehajtott mveletet hvjuk CRC-ellenrzsnek. Amennyiben az ellenrzs meghisul, azaz a lekpezs eredmnye s a CRC-mez rtke nem egyezik meg, B hoszt mr biztos lehet abban, hogy a keret hibt tartalmaz. Elhang (8 bjt). Az Ethernet-keret egy 8 bjtos elhang mezvel kezddik. Az els 7 bjt rtke 10101010, azt utols pedig 10101011. Az elhang els 7 bjtja arra szolgl, hogy a vev csatolk felbredjenek, s rjukat a kld csompont rjhoz szinkronizljk. De mirt is ne lennnek az rk mindig szinkronban? Ne felejtsk el, hogy az A csatol clja, hogy a keretet az Ethernetes helyi hlzat tpustl fggen 10 Mb/s, 100 Mb/s vagy 1 Gb/s sebessggel tovbbtsa. Mivel azonban semmi sem tkletes, ezrt az A csatol sosem fogja pontosan valamelyik fenti sebessggel tovbbtani kerett, a megclzott adattviteli sebessgtl kismrtkben mindig elfog trni. Ez az eltrs pedig a tbbi csatol szmra elre nem ismert, gy a megoldst az jelentheti, hogy a vev csatolk az elhang els 7 bjtjnak teme alapjn rhzzk magukat az A csatol rajelre. Az elhang nyolcadik bjtjnak utols kt bitje (az els kt egymst kvet 1 -es bit) arra figyelmezteti a vevt, hogy hamarosan fontos dolgok jnnek. Amikor a B hoszt rzkeli a kt egymst kvet 1-es bitet, tudja, hogy a kvetkez 6 bjt mr a clcmet tartalmazza. A keret vgt a csatolk egsz egyszeren a kzegen addig jelen lv ram hinyaknt rzkelik. Az Ethernet alapsvi tovbbtst hasznl - ez annyit jelent, hogy a hlzati csatolk digitlis jeleiket kzvetlenl kldik az adatszr csatornra, s az ADSL-es s kbelmodemes rendszerektl eltren azokat nem toljk el valamely msik frekvenciasvba. Tbb Ethernet-vltozat (mint pldul a 10BASE-T) ezen fell Manchester-kdolst is hasznl, amelyet az 5.22. bra szemlltet. Manchesterkdols esetn valamennyi bit egy tmenetet tartalmaz a bitid kzepn - az 1 rtk bitek fentrl lefel irnyul tmenetet, mg a 0 rtk bitek lentrl felfel irnyul tmenetet. Manchester-kdolst akkor clszer hasz nlni, ha az ad s a vev csatolk nincsenek tkletes szinkronban. Ha ugyanis minden bit kzepre tmenetet helyeznk el, ezek segtsgvel a vev hoszt az ad hoszt rjhoz tudja igaztani a sajt rjt Miutn a vev csatol szinkronizlta a sajt rjt, dekdolhatja a biteket, s megllapthatja azok rtkeit. A Manchester-kdols sokkal inkbb fizikai, mint adatkapcsolati rtegbeli mvelet, azrt foglaltuk itt mgis tmren ssze, mert az Ethernet-hlzatban elterjedten hasznljk.
Az Ethernet-hlzatok minden vltozata sszekttets nlkli szolgltatst 5.4. ADATKAPCSOLATI CMZS 189 (connectionless service) biztost a hlzati rteg fel. Ez annyit jelent, hogy amikor az A hlzati csatol a B csatolnak kvn adatcsomagot kldeni, azt egyszeren begyazza egy keretbe, amelyet aztn a B-vel val megegyezs nlkl kld ki a helyi hlzatra. Ez az adatkapcsolati rtegbeli sszekttets nlkli szolgltats hasonlt a szlltsi rtegbeli UDP protokoll sszekttets nlkli szolgltatshoz.
222.222.222.223
5C-66-AB-90-75 B1
13:52:00
190
Id
5.
AZ
HLZATOK
Bitfolyam
5.22. bra.
Binris kdols
Manchesterkdols
Manchesterkdols
Ezenkvl valamennyi Ethernetes megolds megbzhatatlan szolgltatst (unreliable service) nyjt a hlzati rteg szmra. Preczebben megfogalmazva ez azt jelenti, hogy amikor a B csatol egy keretei fogad A csatoltl, elvgzi rajta a CRC-ellenr/.st, de annak eredmnyrl nem kld nyugtt az A csatolnak - sem pozitv nyugtt siker, sem negatv nyugtt meghisuls esetn. A CRC-ellenrzs sikertelensge esetn B csatol egyszeren figyelmen kvl hagyja a keretet. A megbzhat kerettovbbts ezen hinya (az adatkapcso lati rtegben) hozzjrul az Ethernet olcssghoz s egyszersghez, azonban azt is jelen ti, hogy a hlzati rteg fel tovbbtott adatfolyambl adatcsomagok maradhatnak ki.
Egy kis trtnelem Bob Metcalfe s az Ethernet Bob Metcalfe az 1970-es vek elejn a l larvard Egyetem doktorandus/, hallgatjaknt rszt vett az ARPAnet az MIT-n foly fejlesztsben. Tanulmnyai sorn elkezdett rdekldni Abramson ALOHA-val s vletlen hozzfrs protokollokkal kapcsolatos munkssga irnt. Doktoranduszi tanulmnyai befejeztvel, de mg mieltt elkezdett volna dolgozni a Xerox Palo Alto-i kutatsi kzpontjban (Xerox Palo Alto Research Center, Xerox PARC), tett egy hrom hnapos ltogatst Abramsonnl s Hawaii egyetemi kollginl, s gy els kzbl ismerhette meg az ALOl I Anet-et. Ksbb, a Xerox PARC-nl elkezdtk rdekelni az Alto tpus szmit gpek, amelyek sok rtelemben az 1980-as vek a szemlyi szmtgpeinek elfutrai vol tak. rezte, hogy szksg van ezen szmtgpek hlzatba ktsre, mghozz olcsn, gy az ARPAnet-ben, az ALOHAnet-ben s a vletlen hozzfrs protokollokban val jrtassgval felvrtezve - kollgjval, Dvid Boggs-szal egytt - feltallta az Ethernett. Az els Ethernet-hlzat 2,94 Mb/s adatsebessgre volt kpes, s 256 darab, 1 mrfldn bell elhelyezked hosztot tudott sszektni. Metcalfe s Boggs elrtk, hogy a Xerox PARCnl dolgoz kutatk tlnyom rsze sajt Alto szmtgpk segtsgvel kommunikljon. Ksbb Metcalfe kzremkdsvel ltrejtt egy, a Xerox, a Digital s az Intel kztti konzorcium, amely azt tzte ki clul, hogy egy 10 Mb/s sebessg Ethernet-szabvnyt hozzanak ltre az IEEE jvhagysval. Mivel a Xeroxot nem nagyon rdekelte az Ethernet bevezetse az zleti vilgba, Metcalfe megalaptotta sajt cgt, a 3Com-ot, amely hlzati megoldsok, kztk az Ethernet fejlesztsvel s eladsval foglalkozott. A 3Com fejlesztette s dobta piacra tbbek kztt a vgtelenl npszer IBM PC-khez kszlt Ethernet-krtykat. Metcalfe 1990-ben hagyta ott az akkor 2000 embert foglalkoztat 400 milli dollr bevtellel rendelkez 3Com-ot.
5.4. ADATKAPCSOLATI
CMZS
191
Ha az eldobott Ethernet-keretek miatt kimarad valahny adatcsomag, vajon rzkeli-e ezt a B hoszton fut alkalmazs? Ahogy a 3. fejezetben megtanultuk, ez attl fgg, hogy az alkalmazs TCP, vagy UDP protokollt hasznl. UDP esetn az alkalmazs szre fogja venni a csomagkimaradsokat. TCP hasznlata esetn azonban - mivel B hoszt szlltsi rtege nem rzkeli, s gy nem is nyugtzza az eldobott keretekben szlltott csomagokat - az A hoszt jrakldsre knyszerl. Vegyk szre, hogy a TCP ltal jraadott adat ahhoz az Ethernet-csatolhoz fog visszatrni, amely azt eldobta. Ebben az rtelemben az Ether net vgez jrakiildst, habr nem foglalkozik azzal, hogy egy teljesen j csomagot visz t s j adatokkal vagy egy mr korbban is tovbbtott csomagot.
222.222.222.223
5C-66-AB-90-75 B1
13:52:00
192
3.
Ads kzben a csatol figyeli, hogy megjelennek-e ms csatolktl szrmaz jelek a csatornn. Ha az egsz keretet sikerlt tvinni anlkl, hogy ms csatol jelt rzkelte volna, kszen van az adssal. 4. Ha ads kzben ms csatol jelt rzkeli, lell a keret adsval, s helyette egy 48 bites tkzsi jelzst (jam) tovbbt. 5. Az ads megszaktsa (azaz az tkzsi jelzs leadsa) utn a csatol az exponencilis visszalps fzisba kerl. Ez azt jelenti, hogy sorozatban az nedik tkzs szlelse utn a csatol vletlenszeren vlaszt egy K rtket a {0,1,2,..., 2"'- 1} tartomnybl, ahol m = min(/i,10). A csatol ezutn K x 512 bit idt vrakozik, majd a 2. pontban foglaltak szerint folytatja mkdst. A CSMA/CD protokoll pr rszlete mg tovbbi magyarzatra szorul. Elszr is, az tkzsi jelzs (jam) azrt szksges, hogy valamennyi ppen forgalmaz hlzati csatol rtesljn az tkzsrl. Ehhez nzznk egy pldt. Tegyk fel, hogy A csatol megkezdi egy keret tovbbtst, de pp mieltt jelei elrnk B csatolt, B csatol is elkezd adni. B teht csak pr bitet tovbbthat a kzegre, mieltt meg kell szaktania adst. Ez a pr bit termszetesen elri A-t is, de nem felttlenl szllt akkora energit, hogy A szlelni tudja az tkzst. Annak rdekben, hogy A hatrozottan rzkelje az tkzst (s gy megsza ktsa adst), B egy 48 bites tkzsi jelzst kld. iMost vizsgljuk meg az exponencilis visszalpsi algoritmust. Elszr is meg kell jegyeznnk, hogy a bitid (teht az az id, amely egyetlen bit tovbbtshoz szksges) igen rvid - egy 10 Mb/s adatsebessg Ethernet-hlzaton 0,1 mikroszekundum. Tekintsk most azt a pldt, amikor egy csatol tkzst rzkel a keret els tovbbtsa kzben. Ezutn a csatol K = 0-t s K = 1-et is 0,5 valsznsggel vlasztja. K = 0 vlasztsa esetn az tkzsi jelzs tovbbtst kveten rgtn a 2. pontra ugrik, K = 1 vlasztsa esetn pedig 51,2 mikroszekundumig vr a 2. pontra val ugrs eltt. Egy esetleges msodik tkzs utn K rtkt egyenl valsznsggel vlasztjuk a {0, 1, 2, 3} halmazbl. A har madik tkzst kveten {0,1,2,3,4,5,6, 7) rtkek kzl vlasztunk egyenl valsznsgekkel. 10 vagy tbb tkzs esetn pedig a {0, 1, 2,..., 1023} rtkek kzl vlasztunk szintn egyenl valsznsgekkel. gy teht K lehetsges rtkeinek halmaza az egyms utni tkzsekkel exponencilisan n (n = 10-ig) ezrt nevezzk az Ethernet visszalpsi algoritmust exponencilisnak. Az Ethernet-szabvny fels korltot szab kt csompont tvolsgra. Ezek a korltok biztostjk, hogy amennyiben A csatol kisebb K rtket vlaszt valamennyi, az tkzsben rszt vev csatolnl, akkor A keretnek jraadsakor ne trtnjen jabb tkzs. Ezt a tulajdonsgot alaposabban a feladatokban vizsgljuk meg. De mirt hasznlunk exponencilis visszalpst? Mirt nem vlasztjuk inkbb K rtkt a {, 1,2, 3, 4, 5,6, 7} halmazbl minden egyes tkzs utn? Azrt nem, mert amikor egy csatol szleli az els tkzst, nem tudhatja, hogy abban hny csatol vett rszt sszesen. Ha az tkzsnek kevs rsztvevje van, rdemesebb Krtkt egy kis halmazbl vlasztani. Ha azonban sok csatol keretei tkztek, K1 egy nagyobb, sztszrtabb rtkkszletbl clszer vlasztani (vajon mirt?). Az rtkhalmaz minden tkzs utni nvelsvel a csatolk megfelelen tudnak alkalmazkodni ezekhez a klnbz helyzetekhez.
5.5. Az
ETHERNET
193
Meg kell emltennk, hogy valahnyszor egy csatol egy jabb keretet kszt el tovbbtsra, a fent ismertetett CSMA/CD algoritmust futtatja. Ez teht azt jelenti, hogy a csatol egyltaln nem foglalkozik esetleges, a kzeli mltban bekvetkezett tkzsekkel, azaz lehetsges, hogy az jonnan ltrehozott keret ppen tcsszik a hlzaton, sikeresen to vbbtdik, amg tbb msik csatol az exponencilis visszalps llapotban vrakozik.
Az Ethernet hatkonysga
Amennyiben csak egy csompont kvn keretet tovbbtani, azt az Ethernet maximlis adattviteli sebessgn teheti (amely a hasznlt megoldstl fggen lehet pldul 10 Mb/s, 100 Mb/s vagy 1 Gb/s). Ha azonban tbb csompontnak van tovbbtand kerete, a tnyleges tviteli sebessg ennl jval alacsonyabb lehet. Az Ethernet hatkonysgt gy definiljuk, hogy a hossz futtats alatt sikeresen tvitt keretekre fordtott idt a teljes futtatsi idhz viszonytjuk, ha sok tovbbtand kerettel rendelkez csompontjaink vannak. Az Ethernet hatkonysgnak kzeltshez legyen dtet)r brmely kt csatol kztti jelterjeds maximuma, dilvUeu pedig az az idtartam, amely egy maximlis mret Ethernetkeret adshoz szksges (ez 10 xMb/s sebessg Ethernet esetn megkzeltleg 1,2 ms). Az Ethernet hatkonysgt megad kplet levezetse tlmutat e knyv keretein (lsd [Lm 1980] s [Bertsekas 1991]), ezrt itt csak a vgeredmnyt kzljk: Hatkonysg =--------------------I ^^tcrjcdcsi ^ Elviteli A kpletbl lthatjuk, hogy amennyiben / tfrjc>is ; 0-hoz tart, a hatkonysg az 1-et kzelti. Ez a megfigyels sszhangban van azzal a megrzsnkkel, hogy amennyiben 0 a terjedsi ksleltets, az tkz csompontok azonnal felfggesztik adsukat, s a csatorna nem marad kihasznlatlanul. Azt is megfigyelhetjk, hogy t/ , V ucit rtknek nagyra nvekedsvel is 1-hez kzelt a hatkonysg. Ezt szintn rezhetjk, hiszen mikor egy keret megszerzi a csatornt, azt hossz ideig meg is tarthatja - a csatorna teht hasznos munkt vgez az id nagy rszben.
5.5.3. Ethernet-vltozatok
Az Ethernettel val eddigi ismerkedsnk sorn gy beszltnk rla, mint egyetlen proto- kollszabvnyrl. A valsg ezzel szemben az, hogy a Ethernet tbb vltozatban is elrhet, mghozz olyan megtveszt nevekkel, mint a 10BASE-T, a 10BASE-2, a 100BASE-T, a 1000BASE-LX s a 10GBASE-T. Az IEEE 802.3 CSMA/CD (Ethernet) munkacsoportja [IEEE 802.3 2007] ezeket s szmos ms Ethernet-vltozatot szabvnyostott. Habr a fenti betszavak megtvesztnek tnhetnek, valjban rtelmes informcikat hordoznak. Els felk a szabvnyos adattviteli sebessgre utal - a 10, 100 1000 s 10G rendre a (m sodpercenknti) 10 Megabites, 100 Megabites, a Gigabites s a 10 Gigabites Ethernetnek felelnek meg. A BASE sz az alapsvi (baseband) Ethernetet jelenti, teht azt, hogy az tviteli kzeg kizrlag Ethernet-forgalmat tovbbt - szinte valamennyi 802.3-as szabvnyt az alapsvi Ethernetre dolgoztk ki. A sz vge magra az tviteli kzegre utal. Az Ethcrnet-szabvnyok tartalmaznak
194
5.
AZ
HLZATOK
adatkapcsolati szint s fizikai szint elrsokat is, utbbiak kztt azon lehetsges tviteli kzegeket, amelyeken az Ethernet-forgalmat to vbbthatjuk. Ide tartozik tbbek kztt a koaxilis kbel, a rzvezetk s a fnyvezet szl. A T rvidts ltalban a rzbl kszlt sodrott rprt jelli. Az Ethernetet trtnelmnek kezdetn a koaxilis kbel szegmenseknt kpzeltk cl, ahogy ezt az 5.19. bra is mutatja. A korai 10BASE-2 s 10BASE-5 szabvnyok 10 Mb/s sebessg Ethernetet definilnak ktfle koaxilis kbelre, amelyek maximlis hosszt 500 mterben szabtk meg. Nagyobb tvolsgokat ismtlk segtsgvel lehetett thidalni. Az ismtl olyan fizikai rtegbeli eszkz, amely a bemenetre kapott jelet a kimenetn jragenerlja. Az 5.19. brn felvzolt Ethernet-hlzat koaxilis kbele megfelel az adatszr kzegekrl alkotott elkpzelsnknek, ugyanis egy adott interfsz ltal tovbbtott kereteket az sszes tbbi interfsz megkapja, a CSMA/CD protokoll segtsgvel pedig szpen megolddik a tbbszrs hozzfrs problmja is. A csompontok egyszeren csak rkapcsoldnak a kbelre, s me, ksz is a helyi hlzat! Az vek sorn az Ethernet tbb, fejldse szempontjbl lnyeges vltozson ment keresztl, aminek kvetkeztben a mai Ethernet sokban klnbzik az eredeti, sntopolgit s koaxilis kbelt hasznl konstrukciktl. Manapsg a legtbb esetben a csompontok sodrott rprokon vagy fnyvezet szlon keresztli ktpontos adatkapcsolatokkal egy kapcsolhoz csatlakoznak, ahogy azt az 5.23. bra is mutatja. Az 1990-es vek kzepn megszletett a 100 Mb/s adatsebessg Ethernetszabvny, amely 10-szer gyorsabb volt a 10 Mb/s sebessg szabvnynl. Az eredeti keretszerkezei s tbbszrs hozzfrsi protokoll megmaradt, de nagyobb adattviteli sebessg fizikai rtegeket definiltak a rzvezetkekre (100BASE-T) s a fnyvezet szlra is (100BASE-FX, 100BASE-SX, 100BASE-BX). Az 5.24. bra ezeket a klnbz szabvnyokat s a kzs MAC protokollt s keretszerkezetet szemllteti. A 100 Mb/s adatsebesseg Ethernetnl egy sodrott rprral legfeljebb 100 mteres, fnyvezet szllal tbb kilomteres tvolsgot hi dalhatunk t, gy Ethernet-kapcsolk segtsgvel akr tbb pletet is sszekthetnk. A gigabites Ethernet a nagy sikernek rvend 10 Mb/s s 100 Mb/s sebessg Ether- net-szabvnyok kiterjesztse. Az 1000 Mb/s tviteli sebessg gigabites Ethernet az risi szm, mr hasznlatban lv Ethernet-eszkzkkel teljes mrtkben kompatibilis. A gigabites Ethernet szabvnya, ms nven az IEEE 802.3z a kvetkezkre kpes: Az Ethernet szabvnyos keretszerkezett hasznlja (5.21. bra), s visszafel kompatibilis a 10BASE-T s 100BASE-T verzikkal. Ez megknnyti a gigabites Ethernetre val ttrst a mr hasznlatban lv eszkzk megtartsa mellett is.
5.5. Az
ETHERNET
195
196
Lehetv teszi a ktpontos adatkapcsolatok, csakgy, mint azadatszr csatornk alkalmazst. A ktpontos adatkapcsolatok kapcsolkat, mg az adatszr csatornk elosztkat hasznlnak, ahogy azt korbban mr megtrgyaltuk. A gigabites Ethernet szakzsargonjban a elosztkat puffereit elosztknak nevezik. A CSMA/CD protokollt hasznlja kzs hasznlat adatszr csatornk esetn. A megfelel szint hatkonysg elrse rdekben a csompontok kztti maximlis tvolsgot szigoran korltozni kell. Ktpontos csatornkon duplex mkdst biztost 1000 Mb/s adattviteli sebessg mellett. A kezdetben fnyvezet szlon mkd gigabites Ethernet ma mr 5-s kategrij UTP kbelezs felett is hasznlhat. 2006 nyarn szabvnyostottk a 10 gigabites Ethernett (10GBASE-T), amely a kzeljvben remlhetleg mg kedvezbb tulajdonsgokkal ruhzza fel az Ethernetes helyi hlzatokat. Ethernettel val ismerkedsnket zrjuk egy olyan krds megvlaszolsval, amely eddig esetleg nyugtalantotta az olvast. A sn- s a elosztalap csillagtopolgia korban az Ethernet nem volt ms, mint egy adatszr csatorna (lsd 5.3. alfejezet), amelyen tbb csompont egyszerre trtn adsa esetn tkzsek trtntek. Az tkzsek kezelsre bevettk a szabvnyba a CSMA/CD protokollt, amely klnskppen a kis terleten elhe lyezked vezetkes Ethcrnethlzatoknl hatkony. Ha azonban manapsg mr a kapcso l kzppont trol-stovbbt elven mkd csillagtopolgia az elterjedt, vajon szksg van-e egyltaln tbbszrs hozzfrs protokollra? Ahogy az 5.6. alfejezetben ltni fogjuk, a kapcsol koordinlja keretek adst, s ugyanazon interfszen sosem kld el egynl tbb keretet. Ezenkvl a modernebb kapcsolk duplex mkdsre is kpesek, gy a kapcsol s a csompont egyszerre is kldhetnek egymsnak kereteket, minden problma nlkl. Ms szavakkal lve kapcsolalap Ethernethlzatokban nincsenek kerettkzsek, s gy nincs szksg tbbszrs hozzfrsi protokollokra! Ahogy lthattuk, a mai Ethernet-hlzatok nagyon sokban eltrnek a Metcalfe s Boggs ltal tbb mint 30 ve meglmodott Ethernettl - a sebessgek hrom nagysgrenddel nvekedtek, a kereteket tviteli kzegek egsz sorozatn vihetjk t, a kapcsolalap Et- hernet-hlzalok lettek a legelterjedtebbek, s mg a tbbszrs hozzfrsi protokollok is szksgtelenn vltak! Mindezt sszevetve tovbbra is beszlhetnk valdi Ethernetrl? A vlasz - termszetesen - a definci szerint igen. rdekes azonban megjegyeznnk, hogy mindezen vltozsok ellenre a szabvnynak van egy eleme, amely vgig kitartott eredeti formja mellett - ez az Ethernet keretszerkezete. Taln ez lenne az Ethernet-szab- vny egyetlen valban fontos eleme?
Alkalmazsi Szlltsi Hlzati Adatkapcsolati Fizikai
5.5. Az
ETHERNET
MAC protokoll s keretszerkezet
100BASE-TX 100BASE-T4 100BASE-T2 100BASE-SX 100BASE-FX 100BASE-BX
197
198
5.
AZ
HLZATOK
Levelez
1 Gb/s
szerver
100 Mb/s (fnyvezet szl) 100 Mb/s (fnyvezet szl) 10 Mb/s. 100 Mb/s, 1 Gb/s sebessg, Cat 5 UTP-kbe! , 100 Mb/s (fnyvezet szl)
Villamosmrnki tanszk
Szmtstudomnyi tanszk
Szmtgp-mrnki tanszk
5.5. Az
ETHERNET
199
bejegyzs ltrehozsnak idpontjt. Az 5.25. brn fent elhelyezked kapcsolnak egy lehetsges kapcsoltbljt mutatja az 5.2. tblzat. Habr a kerettovbbts mkdse mg hasonlnak tnhet a 4. fejezetben megtrgyalt csomagtovbbtshoz, hamarosan ltni fogjuk a kett kztti jelents klnbsgeket. Egy fontos eltrs, hogy a kapcsolk IP-c- mek helyett MAC-cmek alapjn vgzik a kerettovbbtst. Azt is ltni fogjuk, hogy a kap csoltblkat az tvlasztk tvlaszt tblzataitl teljesen eltr mdon kell felpteni. 5.2. tblzat. Az 5.25. brn fent elhelyezked kapcsolhoz tartoz
kapcsoltbla rszlete
Cm 62-FE-F7-11-89-A3 7C-BA-B2-B4-91-10
...
Interfsz 1 3
...
Hogy megrtsk a szrsi s tovbbtsi funkci mkdst, vegyk azt a pldt, amikor a DD-DD-DD-DD-DD-DD clcm keret megrkezik a kapcsol x interfszre. A kapcsol ezek utn megkeresi a tblzatban azt a sort, amely a DD-DD-DD-DD-DD-DD MAC-cmet tartalmazza. Ezutn hrom lehetsg jhet szba: A tblzat nem tartalmaz a DD-DD-DD-DD-DD-DD cmre illeszked sort. Ekkor a kapcsol elhelyezi a keret msolatait azx-en kvli valamennyi interfsznek kimeneti pufferben. Ms szavakkal lve a kapcsol adatszrssal krzvnyknt tovbbtja a keretet. A tblzat egyik bejegyzse a DD-DD-DD-DD-DD-DD cmet az x interfsszel prostja. Ebben az esetben a keret a helyi hlzat DD-DD-DD-DD-DD-DD csatolt tartalmaz rszrl rkezett. Nem szksges teht a keret tovbbtsa a tbbi interfszre, a kapcsol teht a keret eldobsval szrst hajt vgre. A tblzat egy bejegyzse a DD-DD-DD-DD-DD-DD cmet az y*x interfsszel prostja. Ekkor a keretet az y interfszre csatlakoz LAK szegmensre kell tovbbtani. A kapcsol ezt a keret )' interfszhez csatlakoz pufferben val elhelyezsvel valstja meg. Nzzk vgig ezeket a pldkat az 5.25. brn fell lthat kapcsolnak s 5.2. tblzatban lthat kapcsoltbljnak esetre. Tegyk fel, hogy egy 62-FE-F7-1189-A3 clcm keret rkezik a kapcsol 1-es interfszre. A kapcsol a tblbl kiolvassa, hogy a cmzett az 1-es interfszen elrhet hlzatban (azaz a Villamosmrnki tanszk hlzatban) tallhat. Ez teht azt jelenti, hogy a keret mr adatszrsra kerlt a helyi hlzat azon rszn, amely a cmzettet is tartalmazza, a kapcsol gy kiszri (azaz figyelmen kvl hagyja) a keretet. Most nzzk meg, mi trtnik, ha a 2-es interfszrl rkezik egy keret ugyanezzel a clcmmel. A kapcsol ismt megvizsglja tbljt, s ltja, hogy a cl az 1- es interfsz irnyban van - gy az 1-es interfsz pufferben helyezi el a keretet. A plda alapjn vilgos, hogy amg a kapcsoltbla teljes s pontos, a kapcsol adatszrs nlkl tovbbit minden keretet. Ebben az rtelemben a kapcsol okosabb, mint egy eloszt. De vajon hogyan kerlnek a bejegyzsek a kapcsoltblba? Lteznek adatkapcsolati megfeleli a
200
5.
AZ
HLZATOK
hlzati szint tvlaszt protokolloknak? Vagy netn rendszergazdnak kell kzzel kitltenie az egsz tblzatot?
egy
tlterhelt
201
A kapcsolknak megvan az a (mr amgy is tlterhelt rendszergazda szmra mindenkppen) fantasztikus tulajdonsga, hogy tblik automatikusan, dinamikusan s nllan plnek - anlkl, hogy a rendszergazda vagy valamely konfigurcis protokoll brmilyen szinten beavatkozna. Mshogy fogalmazva, a kapcsolk nllan tanulnak. Ez a kpessg a kvetkezkppen mkdik: 1. A kapcsoltbla eredenden res. 2. A kapcsol a tblban valamennyi berkez keretre eltrolja (1) a keret forrscm mezjben tallhat MAC-cmet, (2) azon interfsz szmt, amelyen a keret berkezett s (3) a berkezs idpontjt. gy teht a kapcsol rgzti a tbljba, hogy a kld csompont melyik hlzati szegmensen tallhat. Ha minden, a hlzaton tallhat csompont kld keretet, akkor valamennyi csompontra lesz bejegyzs a tblban. 3. A kapcsol trli a tblbl azokat a bejegyzseket, amelyekben trolt cmrl, mint forrscmrl nem rkezett keret egy bizonyos ideig (ez az elregedsi id [aging time]). Ennek ksznheten ha egy szmtgpet egy msik szmtgppel cserljk le a hlzatban, a lecserlt gp MAC-cme el fog tnni a tblzatbl. Vizsgljuk most meg az nll tanuls mkdst az 5.25. bra fent emltett kapcsolja s annak az 5.2. tblzatban lthat kapcsoltblja pldjn. Tegyk fel, hogy 9:39 idpontban egy forrscmknt a 01-12-23-34-45-56 MAC-cmet tartalmaz keret rkezik a 2- es interfsz irnybl. Tegyk fel tovbb, hogy ez a cm mg nem szerepel a kapcsol- tblban. A kapcsol ekkor teht j bejegyzssel bvti a tblt, ahogy azt az 5.3. tblzatban is lthatjuk. Pldnkat folytatva tegyk fel, hogy a kapcsolra belltott elregedsi id 60 perc, s hogy nem rkezik a 62-FE-F7-11-89-A3 forrscmet tartalmaz keret 9:32 s 10:32 kztt, gy 10:32 idpontban a kapcsol trli ezt a cmet a tblbl. A kapcsolk plug-and-play eszkzk, mivel a rendszergazda vagy felhasznl beavatkozsa nlkl is kpesek mkdni. A rendszergazdnak a kapcsol teleptsekor nincs 5.3. tblzat. A kapcsol megtanulja, hogy hol tallhat a 01-12-23-34-45-56 cm
csatol
Interfsz 2 3 1
...
...
ms dolga, minthogy csatlakoztassa a helyi hlzat szegmenseit a kapcsolhoz. Nem kell a kapcsoltbla konfigurlsval bajldnia sem a kapcsol teleptsekor, sem akkor, amikor egy hosztot eltvoltanak a hlzatrl. A kapcsolk mindezek mellett duplex mkdsre kpesek, azaz a kapcsol s a csompont egyszerre
202
5.
AZ
HLZATOK
Miutn megtrgyaltuk az adatkapcsolati szint kapcsolk mkdsnek alapjait, most vizsgljuk meg kpessgeiket s tulajdonsgaikat. Az 5.23. brn lthat hlzatot tekintve a kapcsolk szmos elnys tulajdonsgt fedezhetjk fel a sntopolgij vagy elosztalap csillagtopolgij adatszr hlzatokkal szemben: tkzsek megszntetse. Egy kapcsolkkal (elosztk nlkl) felptett helyi hlzatban ismeretlen az tkzsek kvetkeztben elpazarolt svszlessg fogalma! A kapcsolk pufferelik a kereteket, s egynl tbb keretet sosem tovbbtanak egy idben ugyanarra a hlzati szegmensre. Aztvlasztkhozhasonlanegy kapcsol maximlissszestett teresztkpessge teht a kapcsol interfszei maximlis adattviteli sebessgeinek sszege. gy teht kapcsolk hasznlatval jelents teljestmnynvekedst rhetnk cl az adatszr helyi hlzatokhoz kpest. Heterogn adatkapcsolatok. Mivel a kapcsolk adatkapcsolatokat vlasztanak el egymstl, a klnbz adatkapcsolatok klnbz sebessgeken s klnbz tviteli kzegeken mkdhetnek. Az 5.23. brn pldul lehetsges, hogy az A csompont 10 Mb/s sebessg lOBASE-T-vel, rzvezetkkel, a B csompont 100 Mb/s sebessg lOOBASE-FX-szel, fnyvezetszlas vezetkkel, mg C csompont 1 Gb/s sebessg lOOOBASE-T-vel, rzvezetkkel csatlakozik a kapcsolhoz. Kapcsolk segtsgvel ezrt knnyedn sszekthetnk rgebbi eszkzket jabbakkal. Hlzatfelgyelet. Amellett, hogy jobb biztonsgi szolgltatsokat nyjt (lsd a Fkuszban a biztonsgcm rst), egy kapcsol megknnyti a hlzat karbantartst. Pldul ha egy csatol meghibsodik, s folyamatosan kldi Ethernet-kereteit (ezt hvjk fecseg csatolnak), a kapcsol kpes szlel ni a problmt s lekapcsoldnia csatolrl. A kapcsol ezen kpessge mellett a rendszergazdnak nem kell kikelnie az gybl, s visszamenni a munkahelyre, hogy kijavtsa a hibt. Ezen kvl egy kbel esetleges elvgsa is csak azt a csompontot vlasztja le a hlzatrl, amely az elvgott kbellel csatlakozott a kapcsolhoz. A koaxilis kbel korban a rendszergazdk olykor rkat tltttek azzal, hogy vgigjrjk a vezetket (vagy pontosabban vgignyaljk a padlt), hogy megtalljk azt az egyetlen kbelhibt, amely az egsz hlzatot trdre knyszertette. Ahogy a 9. fejezetben (Hlzatfelgyelet) ltni fogjuk, a kapcsolk ezeken kvl statisztikt ksztenek a svszlessg kihasznltsgrl, az tkzsek gyakorisgrl valamint a klnbz forgalomtpusokrl, amelyet utna a rendszer gazda szmra is elrhetv tesznek. Ezek az informcik hasznosak hibakeresskor s hibajavtskor, valamint a hlzat tovbbfejlesztsnek tervezsekor.
Fkuszban a biztonsg
5.5. Az
egy
ETHERNET
snittrt (a hlzati forgalomba val belehallgatsra, annak naplzsra
203
k pes,
rosszindulat tmadk ltal szles krben hasznlt programot) futtat, nem fogja tudni megfigyelni az A-bl B-be tart keretet. gy egy kapcsolalap helyi hlzatban (a 802.11-es LAN-okhoz, illetve a elosztalap Ethernetes LAN-okho/. hasonl adatszr hlzatokkal ellenttben) sokkal nehezebb a dolga a tmadnak, aki kereteket szeretne lehallgatni. Igen m, de mivel a kapcsol adatszrssal kldi szt azokat a kereteket, amelyek cmzettje nincs benne a kapcsoltblban, a C-n fut sniffer mg mindig meg tud figyelni nhny olyan ke retet, amelyet nem kifejezetten C-nek szntak. Ezenkvl a tmad megfigyelheti az sszes olyan keretet is, amelyeket a krzvny MAC-cmre kldtek, azaz az FF-FF-FF-FF-FF-FF cmre. Egy kapcsol ellen vgrehajthat jl ismert tmads a kapcsolmrgezs (switch poisoning), amely sorn a kapcsolt klnbz, forrscmknt hamis MAC-cmeket tartal maz kerettel rasztjk cl, s gy a kapcsoltbla hamis bejegyzsekkel lesz tele, s nem marad hely a valdi csompontok cmeinek. Ezltal a kapcsol arra knyszerl, hogy a legtbb keretet adatszrssal tovbbtsa, amelyeket utna a tmad megfigyelhet fSkoudis 2006J. Mivel ez a tmads mg a tapasztalt tmadk szmra is bonyolult, a kapcsolk sokkal kevsb tmadhatk snifFerek segtsgvel, mint a elosztk vagy a vezetk nlkli helyi hlzatok.
204
5.
AZ
HLZATOK
hierarchikus (s nem egyszint, mint a M AC-cmzs), a csomagok nem kezdenek keringeni mg akkor sem, ha a hlzat alternatv tvonalakat tartalmaz. (Habr igaz, hogy rosszul belltott tvlasztsi tblk esetn elfordulhat ilyen kerings, de ahogy a 4. fejezetben megbeszltk, az IP a keringseket egy csomagfejlcben tallhat mez segtsgvel korltozza). Ebbl kvetkezik, hogy a csomagok nem csak egy fesztfa mentn haladhatnak, hanem nyugodtan hasznlhatjk a forrs s cl kztti legjobb utat. Az, hogy egy tvlasztkbl
5.5. Az
ETHERNET Hoszt
Hoszt
205
"^TTz atT
Adatkapcsolati Fizikai Fizikai
Hlzati Adatkapcsolati
5.26. bra. Csomagfeldolgozs a kapcsolkban, tvlasztkban s hosztokban ptett hlzat topolgijt mr nem kell egy fesztfra korltozni, megteremtette annak lehetsgt, hogy az internet olyan sr topolgival pljn meg, amely pldul tbb Eurpt s szak-Amerikt sszekt adatkapcsolatot is tartalmaz. Az tvlasztk msik elnys tulajdonsga, hogy tzfallal kpesek vdekezni az adatkapcsolati rteg esetleges adatszrsi viharai ellen. Taln a legnagyobb htrnyuk viszont, hogy nem plug-and-play eszkzk, be kell ugyanis lltani az s a hozzjuk kapcsold hosztok IP-cmeit. Tovbbi htrny, hogy a csomagonknti feldolgozsi idejk ltalban nagyobb, mint a kap csolk, mivel a harmadik rtegig felmenen kell feldolgozniuk a csomagokat. Vgl pe dig, angol nyelven ktflekppen is ejthetjk a router szt, mghozz rtor-nak vagy rauter-nek, s egyesek rengeteg idt kpesek elpazarolni a helyes kiejtsrl vitatkozva [Perlman 1999]. Most, hogy mr ismerjk a kapcsolk s az tvlasztk elnyeit s htrnyait, elgondolkozhatunk azon, hogy egy intzmny (pldul egy egyetem vagy egy cg) hlzatban mikor rdemes kapcsolkat, s mikor tvlasztkat hasznlni. ltalnossgban elmondhat, hogy az olyan kisebb, pr szz hosztbl ll hlzatoknl, amelyek nhny LAN-szegmensbl llnak, a kapcsolk teljesen megfelelek, mivel lokalizljk a forgalmat, s sszessgben nvelik a hlzat teresztkpessgt anlkl, hogy IP-cmeket kellene konfigurlnunk. Nagyobb, tbb ezer hosztbl ll hlzatok esetn azonban jellemzen tvlasztkat hasznlnak (a kapcsolk mellett). Az tvlasztknak robusztusabb md szereik vannak a forgalom elszigetelsre, kezelik az adatszrsi viharokat, s intelligen sebb tvonalakon tovbbtjk a csomagokat a hosztok kztt.
206 5. AZ RTEG S A HELYI HLZATOK Ebben a fejezetben megtanultuk, hogy a ADATKAPCSOLATI elosztk, a kapcsolk s az tvlasztk
egyarnt hasznlhatk hosztok, illetve hlzati szegmensek sszekapcsolsra. Az 5.4. tblzat e hrom mdszer kpessgeit s tulajdonsgait foglalja ssze. 5.4. tblzat. Hlzatok sszektsre hasznlhat eszkzk sszehasonltsa
5.6. A/.
207
Az adatkapcsolati protokollokkal val eddigi ismerkedsnk sorn az adatszr csatornkon alkalmazott protokollokra szortkoztunk. Ebben az a 1 fejezetben megismerkednk egy ktpontos sszekttetsekre kifejlesztett adatkapcsolati protokollal - a PPP ktpontos protokollal (point-to-point protocol). Mivel a betrcszs otthoni internetkapcsolatoknl ltalban PPP-t hasznlnak, napjainkban ktsgkvl ez az egyik legszlesebb krben el terjedt adatkapcsolati protokoll. A msik fontos, napjainkban hasznlt adatkapcsolati pro tokoll a HDI.C (high-level data link control - magas szint adatkapcsolat-vezrls) - errl bvebben [Spragins 1991] r. A HDLC-nl egyszerbb PPP-vel val ismerkedsnk sorn a ktpontos adatkapcsolati protokollok szmos fontos jellemzjt fogjuk megismerni. Ahogy a neve is mutatja, a ktpontos protokoll (PPP) [RFC 1661; RFC" 2153] egy olyan adatkapcsolati protokoll, amely egy ktpontos adatkapcsolat (point-to-point link) felett mkdik - teht olyan adatkapcsolat felett, amely kt vghez egy-egy csompont csatlakozik. Ez a ktpontos adatkapcsolat lehet egy soros betrcszs telefonvonal (pldul egy 56 kb/s sebessg modemmel ltestett kapcsolat), egy SONET/SDH sszekttets, egy X.25 sszekttets, vagy akr egy ISDN-vonal. Ahogy mr fent is emltettk, az otthoni betrcszs internetkapcsolatokhoz hasznlt protokollok kzl a PPP a legelterjedtebb. Mieltt a PPP rszleteibe merlnnk, tanulsgos lehet megvizsglni azokat a kvetelmnyeket, amelyeket az IETF tztt ki a PPP tervezsekor [RFC 1547):
hlzati csomagot PPP adatkapcsolati keretbe gyazni gy, hogy a vev azonostani tudja mind a PPP-keret, mind a benne szlltott hlzati csomag elejt s vgt. tltszsg. A PPP nem llthat semmifle megktst a szlltott csomag formtumval szemben. gy pldul nem tilthatja meg bizonyos bitmintk hasznlatt a hlzati csomagban. Ehhez a krdshez hamarosan visszatrnk a bjtbeszrsrl szl szakaszban. Tbbfle hlzati rtegbeli protokoll. A PPP-nek tmogatnia kell tbb, ugyanazon az adatkapcsolaton egyszerre fut hlzati protokoll (pldul IP s DECnet) hasznlatt. Mint ahogy az IP-nek is kpesnek kell lennie tbbfle szlltsi protokoll (pldul a TCP s az UDP) nyalbolsra ugyanazon a kt vgpont kztti sszekttetsen, gy kell a PPP-nek tmogatnia klnbz hlzati protokollok nyalbolst egyazon ktpontos adatkapcsolat felett. Ez a kvetelmny legalbb annyit jelent, hogy a PPP-ben definilni kell egy protokolltpus-mezt, vagy valamilyen hasonl eljrst arra, hogy a vev oldali PPP protokoll kpes legyen a megfelel hlzati protokollnak tovbbtani a keretben kapott hlzati adatcsomagot. Tbbfle udatkapcsolat-tpus. Amellett, hogy tbbfle hlzati protokoll
208
csomagjait kell tudnia szlltani, a PPP-nek kpesnek kell lennie tbbfle tvitelikzeg-tpus feletti mkdsre. Ide tartoznak a soros adatkapcsolatok (amelyeken egyszerre csak egy bitet tovbbthatunk egy irnyba), a prhuzamos adatkapcsolatok (amelyek egyszerre tbb bit tovbbtsra kpesek), de a szinkron (a bitekkel egytt rajelet is tovbbt), az aszinkron, a kissebessg, a nagysebessg, az elektromos s az optikai kzegek felett megvalstott adatkapcsolatok. Hibajelzs. A PPP-t hasznl fogad flnek kpesnek kell lennie bithibk szlelsre a vett keretben. Kapcsolatllapot figyelse. A PPP-nek fel kell ismernie az adatkapcsolati szint hibkat (pldul azt, hogy a kld oldalrl nem lehet adatot tovbbtani a vev oldal irnyba), s ezeket jeleznie kell a hlzati rteg fel. Hlzati cmegyeztets. A PPP-nek biztostania kell egy olyan mechanizmust a hlzati rteg (pldul IP) szmra, amellyel a felek megtudhatjk vagy bellthatjk egyms hlzati cmeit. Egyszersg. A PPP-vel szemben a fent felsoroltakon kvl mg szmos kvetelmnyt tmasztottak. Mindezek felett a legels s legfontosabb azonban az egyszersg. Ahogy az RFC 1547 rja, Egy ktpontos protokollnl a jelsz az egyszersg kell hogy legyen. Ez a PPP-vel szemben megfogalmazott tbbi kvetelmny ismeretben, mr elg magasra tette a lcet! Ma mr tbb; mint tven RFC definilja ezen egyszer protokoll klnbz rszleteit.
5. AZ
Habr gy tnhet, hogy a PPP-nek rengeteg kvetelmnyt kellett kielgtenie, a helyzet valjban sokkal bonyolultabb is lehetett volna! A PPP tervezsi specifikcii azt is explicite felsoroljk, hogy a protokollnak milyen kvetelmnyeket nem kell teljestenie:
azokat.
tviteli sebessgvel kell tudnia fogadni a kereteket. Amennyiben valamely fels rteg nem kpes ezen a sebessgen fogadni a csomagokat, akkor a fels rteg dolga, hogy csomagokat dobjon el, vagy cskkentse a kld fl adsi sebessgt. Azaz ahelyett, hogy a PPP-t futtat kld flnek kellene szablyoznia sajt adsi sebessgt, a felsbb rtegbeli protokollnak kell szablyoznia azt a sebessget, amellyel a csomagokat tovb btsra tadja a PPP-nek. Sorrendhelyessg. A PPP-nek nem feladata annak biztostsa, hogy a vev ugyanolyan sorrendben kapja meg a kereteket, mint amilyen sorrendben a kld elkldte azokat. rdekessgknt megjegyezzk, hogy mg ez a fajta rugalmassg hasonlt az IP szolgltatsi modelljre (amely megengedi a kt vgpont kztti csomagok tetszleges sorrendben trtn tovbbtst), addig ms, PPP felett mkd hlzati protokollok megkvetelik a kt vgpont kztti sorrendhelyes tvitelt. Tbbpontos adatkapcsolatok. A PPP-nek csak olyan adatkapcsolatok felett kell tudnia mkdni, amelyre egyetlen kld s egyetlen vev csatlakozik. Ms adatkapcsolati protokollok (pldul a HDLC) tbb, ugyanazon kzegre csatlakoz fogad csompontot (pldul egy Ethernethez hasonl elrendezst) is kpesek kezelni.
5.25. bra. Elosztk, kapcsolk s egy tvlaszt segtsgvel felptett egyetemi hlzat
5.6. A/.
209
Most, hogy mr ismerjk, hogy mik a PPP tervezs eltt kitztt cljai (s mik nem), nzzk meg, hogyan vltotta valra a protokoll ezeket a clkitzseket.
5.7.1. PPP-kcretezs
Az 5.27. brn lthatjuk, hogy a PPP a HDLC-hez hasonl keretszerkezetet [RFC 1662] hasznl. A PPP-keret a kvetkez mezket tartalmazza: Jelzmez. Minden PPP-keret egy egybjtos, 01111110 bitsorozatot tartalmaz jelzmezvel indul s r vget. Cmmez. Ennek a meznek egyetlen lehetsges rtke 11111111.
1
1111,111 0 0 0 0 0 0 1 1
Vltoz 1
11 vagy 2
p,0t0 k 7
mret
mezo
2 vagy 4
01 111 no
"-
1 .. ,11 Jl ...___________________________________1
Jelzmez
cm-, mind a vezrlmez rtke fix, felmerlhet hogy vajon mirt definiltk ezeket a mezket egyltaln. A PPP specifikcija, az [RFC 1662) szerint a tovbbi rtkek ksbb kerlhetnek definilsra, habr mind a mai napig egyetlen egyet sem definiltak. A kt mez fix rtkei miatt a PPP lehetv teszi a kld szmra, hogy egyszeren ne kldje el a cm- s vezrlmez rtkeit, ezzel megsprolva kt felesleges bjt tovbbtst. Protokollmez. A protokoll mezbl tudja meg a vev, hogy melyik az a felsbb szint protokoll, amelyhez a vett keretbe gyazott adat (azaz a PPPkeret informcis mezjnek tartalma) tartozik. Egy PPP-keret vtelekor a vev elszr hibaellenrzst hajt vgre a kereten, majd a bele gyazott csomagot tadja a megfelel protokollnak. A PPP-ben hasznlatos 16 bites protokollkdokat az RFC 1700 s az RFC 3232 defi nilja. Minket most csak az IP protokoll rdekel (teht az az eset, amikor a PPP-ke- retbe gyazott csomag egy IP-csomag), amely kdja hexadecimlisan 21 - ms hl zati protokollok s kdok: AppleTalk(29), DECnet (27). Adatmez. Ez a mez tartalmazza magt a keretbe gyazott csomagot (adatot), amelyet a felsbb rtegbeli protokoll (pldul az IP) kld t a PPPcsatornn. A mez maximlis mrete alaprtelmezs szerint 1500 bjt, br ezt megvltoztathatjuk a csatorna kezdeti belltsakor, amelyet lentebb trgyalunk. Ellenrz sszeg mez. Az ellenrz sszeget a tovbbtott keretben tallhat bithibk szlelsre hasznljuk. A mez 2 vagy 4 bjtosHDLC'-szabvny szerinti ciklikus redundanciakdot tartalmaz.
Bjtbeszrs
Mieltt befejeznnk a PPP-keretezs trgyalst, foglalkozzunk kicsit azzal a problmval, amely akkor merlhet fel, ha egy protokoll egy bizonyos bitmintt hasznl a keret elejnek s vgnek jelzsre. Mi trtnik ugyanis akkor, ha ez a
210
bitminta mshol is elfordul a csomagban? Mi trtnik pldul, ha a 01111110 jelzmezrtk az informcis mezben is felbukkan? A vev fl hibsan fogja rzkelni a PPP-keret vgt? A problma egy megoldsa az lehetne, ha a PPP megtiltan e bitminta hasznlatt a fels rtegbeli protokoll szmra. A PPP tltszsgi kvetelmnye miatt ez a lehetsg azonban szba sem jhet. Egy alternatv megolds, amelyet a PPP s mellette szmos ms protokoll is alkalmaz, a bjtbeszrs (byte stuffing) mdszere. A PPP-ben definiltak egy specilis bitmintt, a 01111101 sorozatot. Amennyiben a jelzmez bitsorozata, a 01111110 valahol mshol is elfordul a keretben, a PPP beszrja el (hozzadja) ezt a specilis bit mintt, hogy jelezze azt, hogy a rkvetkez 01111110 sorozat nem jelzbitsorozat, hanem valdi adat. Ha teht a vev egy olyan 01111110 sorozatot lt, amelyet a 01111101 szekvencia elz meg, eltvoltja a specilis bitsorozatot, s visszalltja a szlltott adat eredeti llapott. Amennyiben a specilis bitsorozatunk is valdi adatknt
b5 b4 b1 b2
5. AZ
01111110
r
01111110 b4 b5 ppp
b2 b1
p p p m-m
b5 b4 0 1 1 1 1 1 1 0
0 1
1 1 1 0 1
b 2
b l
5.28. bra. Bjtbeszrs szerepel a keretben, akkor el is be kell szrni a specilis szekvencit, gy ha a vev egy magban ll 01111101 sorozatot rzkel, biztos lehet benne, hogy az bjtbeszrssal kerlt az adatfolyamba. Ha azonban kt 01111101 sorozat kveti egymst, az azt jelenti, hogy az eredeti adat is tartalmazta a specilis bitsorozatot. Az 5.28. brn nyomon kvethetjk a PPP bjtbeszrsnak mkdst. (A PPP valjban a specilis bitsorozattal megelztt bjtra ezen kvl egy XOR mveletet is vgrehajt a hexadecimlis 20 rtkkel, mint msik operandussal, de erre a rszletre az egyszersg kedvrt itt nem trnk ki.) Megjegyezzk, hogy a PPP egy adatkapcsolat-vezrl protokollt (link control protocol, LCP) is tartalmaz, amelynek feladata a PPP-adatkapcsolat inicializlsa, karbantartsa s lezrsa. Az LCP nhny rszlett a knyvhz tartoz internetes anyagok trgyaljk.
5.25. bra. Elosztk, kapcsolk s egy tvlaszt segtsgvel felptett egyetemi hlzat
5.6. A/.
211
hozzfrsi protokollok trgyalsakor (5.9. bra) mr lttuk, hogy tbb hoszt is kapcsoldhat ugyanahhoz a kzs vezetkhez, s ez a hosztok kztti vezetk lehet egy rdisv vagy egy msfajta kzeg. Ezek utn az adat- kapcsolatokat egy mr kiss absztraktabb szinten, vezetkek helyeit csatornknak kpzel tk el. Az Ethernet-hlzatok trgyalsakor olyan tbb hosztot sszekapcsol kzeggel is tallkoztunk, amely mr egy bonyolultabb, kapcsolt infrastruktra volt. Ezen fejlds ellenre a hosztok nzpontjbl a kzeg egy egyszer adatkapcsolati csatorna maradt, amely kt vagy tbb hosztot kt ssze. Lttuk pldul, hogy az Ethernet-hosztoknak nem is kell tisztban lennik azzal, hogy a tbbi hoszttal egy rvid egyszegmenses LAN (5.9. bra), vagy egy nagyobb terletei tfog kapcsolt LAN (5.25. bra) kti-e ssze ket. Az 5.7. alfejezetben megtrgyaltuk, hogy a PPP protokollt elterjedten hasznljk kt hoszt kztti modemes sszekttetseknl. Itt teht a kt csompontot sszekt adat- kapcsolat a telefonhlzat - egy logikailag klnll, globlis tvkzlsi hlzat, amelynek megvannak a jelzshez s adattvitelhez szksges sajt kapcsoli, adatkapcsolatai
5.6. A/.
215
s protokollvermei. Az internet adatkapcsolati rtege szemszgbl nzve ugyanakkor a telefonhlzaton keresztli betrcszs kapcsolat egy egyszer vezetk. Ebben az rtelemben az internet virtualizlja, ltszlagoss teszi a telefonhlzatot, azaz egy kt hoszt sszektsre alkalmas adatkapcsolati techniknak, megoldsnak tekinti. Visszaemlkezhetnk a 2. fejezetre, ahol lttuk, hogy az tlapol (overlay) hlzatok is tlapol (over- lay) csompontok sszektsre hasznlhat erforrsknt tekintenek az internetre, azaz ugyangy elfedik az internetet, ahogy az internet is elfedi a telefonhlzatot. Ebben az alfejezetben az aszinkron tviteli md (asynchronous transfer mode, ATM) valamint a tbbprotokollos cmkekapcsols (multiprotocol label switching, MPLS) alapjn mkd hlzatokkal fogunk megismerkedni. Az ramkrkapcsolt telefonhlzatokkal ellenttben mind az ATM, mind az MPLS csomagkapcsolssal mkdik, s sajt maga ltal definilt virtulis ramkrket hasznl. Mindkettnek megvan a sajt keretszerke- zete s sajt csomagtovbbtsi szablyrendszere. Az internet nzpontjbl azonban az ATM-et s az MPLS-t is IP-eszkzk sszektsre alkalmas adatkapcsolati techniknak, megoldsnak kell tekintennk, csakgy, mint a telefonhlzatot vagy a kapcsolt Ether- net-hlzalokat. gy a tovbbiakban mind az ATM-et, mind az MPLS-t az adatkapcsolati rteghez tartoznak fogjuk venni. IP-eszkzk sszektsre hasznlhatunk kerettovb bt (Frame-relay) hlzatokat is, habr ezek mr egy kiss rgi (de mg mindig fejld) technika kpviseli, s a fejezet sem foglalkozik velk - m [Goralski 1999] rthet s rszletes magyarzatot ad rluk. Az ATM-et s MPLS-t mi szksgkppen tmren fogjuk ismertetni, mivel egsz knyvek szlhatnnak (s szlnak) rluk. A [Black 1995, Black 1997] s a [Davie 2000) anyagokat ajnljuk rendre az ATM, illetve az MPLS rszletei irnt rdekldk figyelmbe. E fejezetben elssorban arra keressk a vlaszt, hogy ezen hl zatok hogyan biztostjk az IPeszkzk sszektst, igaz, nhny technikai rszletben mlyebben is elmerlnk.
5.8.1. ATM-hlzatok
Az ATM-hlzatok (asynchronous transfer mode - aszinkron tviteli md) szabv nyainak kidolgozsa az 1980-as vek kzepn kezddtt. A cl egy olyan megolds kifejlesztse volt, amely egymagban kpes vals idej audio- s videoinformci, e-mailek, de szveges s kpfjlok tvitelre is. Az ATM-szabvnyok fejlesztsben kt csoport, nevezetesen az ATM Frum (mai nevn az MFA Frum [MFA Frum 2007]) s a Nemzetkzi Tvkzlsi Egyesls (International Telecommunications Union) (ITU 2007] vett rszt. Munkjuk eredmnye egy teljes, vgpont-vgpont elv szabvny volt, amely az ATM alkalmazsi interfsztl kezdve mindent tartalmaz, egszen a klnbz optikai kbelek, rzvezetkek s rdis fizikai rtegek feletti bitszint keretezs specifikcijig. Az ATM a gyakorlatban fleg a telefonos s IP-hlzatokban terjedi el, ahol mint adatkapcsola ti technikt tbbek kztt IP-tvlasztk sszektsre hasznlhatjk, ahogy azt fent is megtrgyaltuk.
Az ATM f jellegzetessgei
Ahogy a 4.1. alfejezetben megbeszltk, az AI'M szmos klnbz szolglati modellt tmogat, mint pldul az lland bitsebessg (constant bit rate) szolgltatst, a vltoz bitsebessg szolgltatst, az elrhet bitsebessg
216
5.
AZ
HLZATOK
193
Vgrendsze r
Vgrendsz er
5.29. bra. Az ATM hrom rtege; ozAAL kizrlag azATM-hlzat szln tallhat
meg
meghatrozatlan bitsebessg (unspecified bit rate) szolgltatst. Az ATM architektrja csomagkapcsolt, virtulis ramkrket (virtual circiut - VC) definil. Emlkezznk visz- sza, hogy a 4.2.1. alfejezetben mr valamilyen szinten foglalkoztunk a virtulis ramkrkkel. Az ATM felptse hrom rtegbe rendezdik, ahogy azt az 5.29. bra mutatja. Az ATM adaptcis rtege (ATM adaptation layer, AAL), amely lnyegben megfeleltethet az internet szlltsi rtegnek, kizrlag azon eszkzknl van jelen, amelyek az ATM-hlzat szln helyezkednek el. A kld oldalon a felsbb rtegbeli alkalmazs vagy protokoll (mint pldul az IP, ha az ATM-et IP-eszkzk sszekapcsolsra hasznljuk) az A A 1.-nek adjk t az tviend adatot. A vev oldalon az AAL tovbbtja a vett adatot a fel sbb rtegbeli alkalmazsnak vagy protokollnak. AAL-rtegeket definiltak tbbek kztt lland bitsebessg szolgltatsokhoz s ramkr-emulcihoz (AALI), vltoz bitsebes sg szolgltatsokhoz, pldul vltoz bitsebessg videhoz (AAL2) s olyan adatszllit- si szolgltatsokhoz, mint pldul az IP-csomagok tovbbtsa (AAL5). Az adaptcis rteg szolgltatsai kztt megtallhat a hibajelzs s a csomagdarabols/csomagsszellts. Az AAL llal kezeli adategysget az igencsak ltalnos AAL protokoll adategysg (protocol data unit, PDU) elnevezssel illettk, ez egy UDP- vagy TCP-szegmensnek felel meg. Az 5.30. brn megfigyelhetjk az AAL5 rteghez lartoz PDU felptst. A PDU mezi viszonylag egyrtelmek. A kitltmezvel (idegen nevn PAD) rhet el az, hogy a PDU mrete 48 egsz szm tbbszrse legyen. Erre azrt van szksg, mert a PDU-kat 48 bjtos egysgekre kell darabolni, hogy pontosan illeszkedjenek az als, ATM-rteg- beli csomagok (ms nven ATM-cellk) adatmezibe. A hosszmez a PDU adatmezjnek hosszt adja meg, gy a vev ennek segtsgvel eltvolthatja a kitltmezt. A CRC-me- z az Ethernet esetben is hasznlt ciklikus redundancia-ellenrzs alap hibajelzshez szksges. A adatmez legfeljebb 65535 bjt hossz lehet. Lpjnk most egy rteggel lejjebb, s vizsgljuk meg az ATM architektrjnak szvben elhelyezked ATM-rteget. Az ATM-rteg hatrozza meg az ATM-cellk szerkezett s mezinek jelentst. Egy ATM-cella pp ugyanolyan fontos szerepet jtszik az ATM-h- lzatban, mint egy IP-csomag az IP-hlzatban. A cella els 5
194
5.
AZ
HLZATOK
bjtja alkotja az ATM-fej- lcel, a maradk 48 bjt pedig az ATM-adatmezt. Az 5.31. brn lthatjuk az ATM-cella fejlcnek felptst.
0-65535
Adatmez 0-47 Kitltmez Hosszmez CRC-mez
5.7. PPP:
A KTPONTOS PROTOKOLL
1 1 1 1 I 1 I I I I 1 1 I I 1 1 1 1 1 1 1 1 1 1 1 1 P T 1 1 1 1 1 1 1 1 1
195
40 bjt 1 1 1 1 1
C L P
V C I
H E C
5.31. bra. Az ATM-cella fejlcnek szerkezete Az ATM-cella mezi a kvetkezk: Virtuliscsatorna-azonost (virtual channel identifier, VCI). Annak a virtulis csatornnak az azonostja, amelyheza cella tartozik. Csakgy, mint a legtbb virtulis ramkrket alkalmaz technolgia esetben, az ATM-cellk VCImezje is adat- kapcsolatrl adatkapcsolatra cserldik (lsd a 4.2.1. fejezetet). Adatok tpusa (Payload type, PT). A cella szlltmnynak tpust azonostja. Tbbfle tpust definiltak klnfle adatok, karbantartsi informcik szlltsra, illetve ltezik egy res cellt jelz adattpus is. A PT-mezben tallhat tovbb egy olyan bit is, amely az AAL darabolt PDU-jnak utols darabjt szllt cellt jelzi. Cellavesztsi priorits (Cell-loss priority, CLP) jelzbit. A kld csompont llt hatja be, hogy klnbsget lehessen tenni a magas s az alacsony priorits forgalom kztt. Ha torlds esetn egy ATM-kapcsolnak el kell dobnia nhny cellt, ennek a bitnek a segtsgvel elszr eldobhatja az alacsony priorits cellkat. A fejlc hibavdelme (header error control, HEC) bjt. A cella fejlct vd hibajelz bitek. Mg mieltt a forrscsompont elkezdhetn a cellk adst a clcsompontnak, az ATM-hlzatnak egy virtulis csatornt (virtual channel, VC) kell felptenie a forrs s a cl kztt. Egy virtulis csatorna nem ms, mint egy virtulis ramkr, amelyet a 4.2.1. alfejezetben mr bemutattunk. Minden virtulis csatorna egy adatkapcsolatok sorozatbl ll tvonal a forrs- s a clcsompont kztt. A virtulis csatorna minden egyes adatkap- csolatjhoz egy virtuliscsatornaazonost (virtual channel identifier, VCI) rendeldik. Valahnyszor felpl vagy lebomlik egy csatorna, a virtulis csatorna lekpezsi tblzato kat frissteni kell (lsd 4.2.1. alfejezet). Ha lland virtulis csatornkat hasznlunk, nincs szksg dinamikus csatorna felptsre s -lebontsra. Ha dinamikus virtulis csatorna lt rehozsa s lebontsa szksges, a Q.2931 protokoll (Black 1997, ITU-T Q.2931 1994] tartalmazza az ATM-kapcsolk s a vgrendszerek kztti jelzszeneteket. Az ATM fizikai rtege az ATM protokollvermnek legaljn tallhat, s feszltsgszinteket, bitidket, valamint a fizikai szint keretezst kezeli. A fizikai rtegben sok mlik a adatkapcsolat fizikai jellemzin. A fizikai rteg alapveten kt nagy osztlyba sorolhat: lteznek olyan, megoldsok, amelyek rendelkeznek tviteli keretszerkezettel (mint pldul a TI, T3, SONET vagy az SDH), s lteznek olyanok is, amelyek nem. Amennyiben a fizikai rteg rendelkezik ilyen keretszerkezettel, akkor a rteg feladata a keretek generlsa s visszafejtse. Az itt hasznlt tviteli keret megnevezs nem keverend ssze az adat- kapcsolati rtegben (pldul az Ethernetben) hasznlt adatkeretekkel, amelyekkel a feje zet korbbi rszeiben foglalkoztunk. Az tviteli keretszerkezet itt egy fizikai rtegbeli, az adatkapcsolatra kikldtt bitek szervezst segt TDM-szer mechanizmust jelent.
1
IP-tvlaszt &
IP-tvlaszt
ATM-hlzat ~ IP-tvlaszt
IP-tvlaszt
&
1
Internetes IP-forgalom
197
5.
AZ
HLZATOK
1. Megvizsglja az adatcsomag clcmt. 2. Az tvlaszt tbljhoz fordul, s meghatrozza a kilpsi tvlaszt (azaz a csomag tvonaln elhelyezked kvetkez tvlaszt) IP-cmt. 3. Annak rdekben, hogy a csomag eljusson a kilpsi tvlasztig, a belpsi tvlaszt az ATM-et egyszeren egy adatkapcsolati protokollnak tekinti. Ahhoz, hogy eljuttassuk csomagunkat a kvetkez tvlasztig, meg kell tudnunk annak fizikai cmt. Az 5.4.2. alfejezetbl emlkezhetnk, hogy ezt az ARP segtsgvel rhetjk el. Egy ATM-interfsz esetben ez gy mkdik, hogy a belpsi tvlaszt a kilpsi tvlaszt IP-cme alapjn kikeresi ATMes ARP-tbljbl annak ATM-cmt. Az ATM ARP-protokollt az (RFC 2225) rja le rszletesen. 4. Ezt kveten a belpsi tvlasztn fut IP protokoll tadja a csomagot s a kilpsi tvlaszt ATM-cmt az eggyel lejjebb lev rtegnek (teht az ATMnck). Miutn a ngy lpst vgrehajtottuk, a csomag kilpsi tvlasztig val eljuttatsa mr nem az IP, hanem az ATM kezben van. Az ATM-nek most az a feladata, hogy a fenti 3. lpsben megszerzett ATM-clcmre juttassa a csomagot. Ez kt rszfeladatbl ll: 1. Meg kell hatrozni a kilpsi tvlasztig vezet virtulis csatorna azonostjt (VCI). 2. Az adatcsomagot cellkra kell darabolni a virtulis csatorna ad oldaln (teht a belpsi tvlasztnl), a vev oldalon (azaz a kilpsi tvlasztnl) pedig a cellkat egyestve vissza kell lltani az eredeti adatcsomagot. Az els rszfeladat magtl rtetd. A kld oldali interfsz karbantart egy ATM-c- meket VCI-kre lekpez tblzatot. Mivel azt tteleztk fel, hogy a virtulis csatornk llandak, ez a tblzat is lland s mindig friss. (Nem lland virtulis csatornk esetn az ATM Q.2931-es jelzsprotokollra lenne szksgnk a virtulis csatornk dinamikus felptsre s lebontsra.) A msodik feladathoz mr kiss vatosabban kell hozzll- nunk. Az egyik megolds itt az IP-darabols alkalmazsa lehetne, amelyet a 4.4. fejezetben trgyaltunk. Ez az eredeti adatcsomagot olyan darabokra trdeln, amelyek mrete nem haladja meg a 48 bjtot, s amelyek gy elfrhetnnek egy-egy ATM-cellban. Ennek a megkzeltsnek azonban van egy risi hibja - az IP-tredkeknek ugyanis jellemzen 20 bjtos fejlceik vannak, s ez azt jelenten, hogy egy ilyen tredket szllt ATM-cellban 25 bjtot foglalnnak el a fejlcek, s mindssze 28 bjtnyi hasznos informci lenne. Az ATM-ben ezrt a hatkonyabb csomagdarabols s -sszellts elrsre AAL5-I hasznlnak. Ezek utn az ATM-hlzat minden egyes cellt eljuttat az ATM-clcmre. Az ATMfor- rs s az ATM-clcsompont kzti valamennyi ATM-kapcsolban az ATM fizikai rtege s az ATM-rteg is feldolgozza az ATM-cellt, de az AAL-rteg nem. Jellemzen minden kapcsol lecserli a VCI-azonostt (lsd 4.2.1. alfejezet), s jraszmolja a HEC-mez rtkt. Amikor a cellk megrkeznek az ATM-clcmre, az AAL adott virtulis csatornhoz tartoz pufferbe kerlnek. Ezutn helyrell az
198
5.
AZ
HLZATOK
AAL5 PDU, majd pedig a benne szlltott IP-csomag tkerl a protokollveremben eggyel feljebb tallhat IP rteghez.
A tbbprotokollos cmkekapcsols (mulliprotocol label switching, MPLS) az 1990-es vek kzepnek-vgnek azon ipari trekvseibl fejldtt ki, amelyek az IPtvlasztk tovbbtsi sebessgnek nvelsre irnyultak. Kzt a sebessgnvekedst gy kvntk elrni, hogy tvettk a virtulis ramkrk egyikf koncepcijt: a fix hosszsg cmkket. Nem az volt a cl, hogy lemondjanak az IP clcmalap csomagtovbbtsrl egy olyan megolds javra, amely fix hosszsg cmkken s virtulis ramkrkn alapul, ehe lyett arra trekedtek, hogy az eredeti csomagtovbbtsi mdszert hatkonyabb tegyk azltal, hogy a csomagokat klnbz cmkkkel ltjk el, s az tvlasztkat felksztik (az IP-cmckkel szemben) a fix hosszsg cmkken alapul tvonalvlasztsra, ahol lehetsges. Fontos, hogy ezek a megoldsok kz a kzben egyttmkdnek az IP-vei, annak cmzst s tvlasztst hasznlva. A fent lert trekvseket az 1ETF az MPLS protokollban sszegezte [RFC 3031, R1 ; C 3032), amely hatkonyan integrlja a virtulis ramkri technikkat a datagramhlzatokba. Az MPLS-sel val ismerkedsnk elejn vizsgljuk meg az MPLS-t alkalmaz tvlasztk ltal kezelt adatkapcsolati keretek szerkezett. Az 5.33. brn lthatjuk, hogy egy PPP-adatkapcsolaton vagy helyi hlzaton (pldul Etherneten) tovbbtott adatkapcsolati keret egy kis mret, a msodik s harmadik rteg fejlcei kztt tallhat MPLS-fejlcet tartalmaz. Az ilyen tpus adatkapcsolatokon hasznland MPLS-fejlcet az RFC 3032 definilja. ATM-re s kerettovbbtsi (frame relay) hlzatra is kidolgoztak fejlce ket, ezeket ms RFCk tartalmazzk. Az MPLS-fejlc mezi kztt megtallhat a cmke mez (amely a 4.2.1. alfejczetben megtrgyalt virtulisramkr-azonost szerept jtsz- sza), 3 ksrleti clokra fenntartott bit, egyetlen S jel bit, amely vermelt MPLS-fejlcek sorozatnak vgt jelzik (ez egy bonyolultabb tma, amivel itt nem foglalkozunk), s egy lettartammez (TTL). Az 5.33. bra alapjn azonnal s egyrtelmen ltszik, hogy egy MPLS-fejlcet tartalmaz csomagot kizrlag kt, MPLS-re kpes tvlaszt kztt kldhetnk (minthogy egy MPLS-t nem ismer tvlaszt elgg megzavarodna, ha egy MPLSfejlcet tallna ott, ahol egy IP-fejlcre szmtott!). Az MPLS-t tmogat tvlasztkat gyakran nevezzk cmkekap- csolt tvlasztknak (label-switched router), mivel tvlaszt tbljukban az MPLS-cm- ke alapjn keresnek, s ezutn rgtn kiadjk a csomagot a megfelel kimeneti interfszen. Az MPLStvlasztnak teht nem kell megnznie a cmzett IP-cmt, s megkeresnie a leghosszabb prefixegyezst az tvlaszt tblban. De vajon honnan tudhatja egy tvlaszt, hogy a szomszdja valban tmogatja-e az MPLS-t, s hogyan tallja ki, hogy egy adott IP-cmhez milyen cmkt kell rendelnie? Hogy a krdsekre vlaszolni tudjunk, kzelebbrl is meg kell vizsglnunk MPLS-tvlasztk egy csoportjnak egyttmkdst.
PPP va^y Ethernet MPLS-fejlc IP-fejlc Az adatkapcsolati keret tovbbi rsze
199
Cmke
5.
S
AZ
HLZATOK
5.8. AZ
200
Az 5.34. bra pldjt tekintve az R tvlaszttl az R4-ig minden tvlaszt tmogatja az MPLS-t. R5 s R6 ezzel szemben hagyomnyos IP-tvlasztk. R kihirdette R2-nek s R3-nak, hogy (R) kpes csomagokat tovbbtani A irnyba, s hogy a 6 rtk MPLS-cmkvcl kapott csomagokat fogja A csompont irnyba tovbbtani. R3 tvlaszt pedig tudatta R4-gyel, hogy az A s D clcsompontok irnyba kpes csomagokat tovbbtani, s hogy rendre a 10, valamint 12 rtk MPLS-cmkkkel kapott MPLS-csomagokat fogja ezen csompontok fel tovbbtani. R2 R4-nek hirdette ki, hogy (R2) kpes az A csompont elrsre, s hogy a 8 rtk MPLS-cmkvel kapott csomagokat fogja A irnyba kldeni. Figyeljk meg, hogy R4 mr ktfle ton is kpes A elrsre: a 0 szm interfszn, 10 rtk kimen MPLS-cmkvel, illetve az 1-es interfszen, 8-as MPLS-cmkvel. Az 5.34. bra azt mutatja, hogy az R5 s R6 nev IP-eszkzk, valamint A s 1) csompontok egy MPLS-infrastruktrn (az R, R2, R3 s R4-es MPLS-tvlasz- tkon) keresztl vannak sszektve hasonl mdon ahhoz, ahogyan egy kapcsolt LAN vagy ATM-hlzat kt ssze IP-eszkzket. s valban, az R, R2, R3 s R4 tvlasztk is ugyanezt csinljk anlkl, hogy akr egyszer is
hozznylnnak az IP-fejlchez.
A fenti lersban nem ismertettk azt a protokollt, amely a cmkk MPLStvlasztk kztti kihirdetsrt felel, mivel ezen jelzszenetek ismertetse jval tlmutat a knyv keretein. Azt azrt megjegyezzk, hogy az IETF MPLS-sel foglalkoz munkacsoportja az [RFC 3468]-ban lerta, hogy az MPLS-jelzs kidolgozsa sorn a (7. fejezetben ismertetett) RSVP protokoll egy kiterjesztst, az RSVP-TE-t [RFC 3209) fogja alapul venni. Az rdek ld olvasnak gy az RFC 3209 olvasst tudjuk ajnlani. Az MPLS eddigi tanulmnyozsa sorn arra fektettk a hangslyt, hogy az MPLS cmkealap kapcsolst vgez anlkl, hogy figyelembe kellene vennie a csomag IP-cmt. Az MPLS valdi elnyei azonban nem a kapcsolsi sebessgek nvekedsnek lehetsgben, sokkal inkbb az MPLS-ben lehetv vl j forgalom kezelsi kpessgekben rejlenek. Ahogy fent emltettk, R4 ktfle tvonalon is el tudja rni az A csompontot. Ha az tvlaszts az IP rtegben trtnne az IP-cm alapjn, akkor a 4. fejezetben tanulmnyobemeneti cimke kimeneti cmke 10 12 8 kimeneti interfsz 0 0 1 kimeneti bemeneti cmke cmke
cl
interfsz
A D A
bemeneti cmke
kimeneti cimke 6
cl
kimeneti interfsz
201
5.
AZ
HLZATOK
bemeneti cimke 6
kimeneti cimke
-
cl A
kimeneti interfsz 0
zott IP-ben hasznlt tvlaszt protokollok egyetlen, legalacsonyabb kltsg tvonalat hatroznnak meg A csompont irnyba. gy az MPLS lehetv teszi csomagok olyan tvonalakon val tovbbtst, amelyeket az IP hagyomnyos tvlaszt protokolljaival nem hasznlhatnnk. Ez a forgalom mrnksg (traffic engineering) egy igen egyszer MPLS-alap formja [RFC 3346; RFC 3272; RFC 2702; Xiao 2000). A forgalom mrnksg lnyege, hogy a rendszergazda fellrva az ltalnos lP-tvlasztst, egy bizonyos cl fel tart forgalom egy rszt egy adott tvonalon, egy msik rszt pedig egy msik tvonalon vezeti el (akr rendszablyozsi, akr teljestmnynvelsi, akr ms megfontolsokbl). Az MPLS sok ms clra is alkalmazhat. Hasznlhatjuk tbbek kztt az MPLS csomagtovbbtsi tvonalainak gyors helyrelltsra, azaz pldul egy adatkapcsolat meghibsodsa esetn a forgalom egy elre kiszmtott vdelmi tvonalra val terelsre (lsd |Kar 2000; Huang 2002; RFC 3469]). Az MPLS ugyancsak hasznlhat a differencilt szolgltatsi keretrendszer (dif-serv) megvalstsra, amelyet a 7. fejezetben fogunk trgyalni. Vgl megjegyezzk, hogy az MPLS hasznlhat, s hasznljk is az n. virtulis magnhlzatok (virtual privt networks, VPN) implementlsra. Egy felhasznl magnhlzatnak megvalstsakor az internetszolgltat sajt MPLS-kpes hlzatt hasznlja a felhasznl klnbz hlzatainak sszekapcsolsra. AZ MPLS alkalmas arra, hogy a felhasznl VPN-hlzatnak mind az erforrsait, mind az abban hasznlt cmzst elszigetelje a tbbi, az internetszolgltat hlzatt hasznl felhasznl VPN-h- lzataitl - rszletekrt lsd [DeClercq 2002]. Az MPLS-sel val ismerkedsnk szksgkppen rvid volt, de biztatjuk az olvast, hogy tanulmnyozza az ltalunk emltett anyagokat. Meg kell megjegyeznnk, hogy gy tnik, az MPLS szmos alkalmazsi terletvel igen gyorsan az internetes forgalommrnksg svjci bicskjv (azaz sokoldalan hasznlhat eszkzz) vlik.
5.9. sszefoglals
Ebben a fejezetben megvizsgltuk az adatkapcsolati rteget - annak szolgltatsait, a mkdse mgtt rejl elveket, s nhny fontos protokollt, amely ezen elvek alapjn nyjtja adatkapcsolati szolgltatsait. Lttuk, hogy az adatkapcsolati rteg alapszolgltatsa hlzati adatcsomagok egyik csomponttl (tvlaszttl vagy hoszttl) egy szomszdos csompontig val mozgatsa. Azt is lttuk, hogy az adatkapcsolati protokollok a hlzati csomagokat adatkapcsolati keretekbe gyazzk, mieltt azokat elkldenk a szomszdos csomponthoz vezet adat- kapcsolatra. Ezen keretezsi feladat mellett megtanulhattuk, hogy klnbz adatkapcsolati protokollok klnbz adatkapcsolat-hozzfrsi, kzbestsi, forgalomszablyozsi s tviteli szolgltatsokat nyjtanak. Ezen klnbsgek rszben a vilgszerte hasznlt adatkapcsolatok sokflesgnek a kvetkezmnye, amelyek felett az adatkapcsolati pro- tokolloknak mkdnik kell. Egy egyszer ktpontos sszekttets egyetlen vezetken keresztl kommunikl kt felet kt ssze. Egy tbbszrs hozzfrs adatkapcsolaton tbb kld s tbb vev osztozik, kvetkezskppen egy tbbszrs hozzfrsi csatorna adatkapcsolati protokollja
(tbbszrs hozzfrsi protokollja) vezrli a kzegelrst is. Az ATM s az MPLS esetben a kt szomszdos csompontot (pldul kt IP-tvlasztt, amelyek IPrtelemben szomszdosak - azaz valamely clcsompont fel vezet ton egy ugrsra tallhatak egymstl) sszekt adatkapcsolat valjban egy egsz hlzat is lehet. Bizonyos rtelemben egy hlzat adatkapcsolatknt val kezelse nem felttlenl szokatlan. Egy telefonos adatkapcsolat pldul, amely az otthoni modemet/szmtgpet kti ssze egy tvoli modemmel/szmtgppel, valjban egy kifinomult s sszetett te- leonhlzaton tvezet tvonal. Az adatkapcsolati kommunikci mgtt rejl elvi krdsek kzl beszltnk hibajelzsi s hibajavtsi mdszerekrl, a tbbszrs hozzfrsi protokollokrl, az adatkapcsolati cmzsrl s a kiterjesztett helyi hlzatok elosztk, illetve kapcsolk segtsgvel trtn kialaktsrl. A hibajelzs s hibajavts tmakrben megnztk, hogyan lehet a keretekhez fztt plusz bitek segtsgvel rzkelni vagy akr ki is javtani olyan bithibkat, amelyek a keret adatkapcsolaton val tovbbtsa kzben keletkeznek. Megismertk az egyszer paritsbites s az ellenrz sszeget hasznl mdszereket, csakgy, mint az ezeknl robusztusabb ciklikus redundancia-ellenrzst. Ezek utn ttrtnk a tbbszrs hozzfrsi protokollok tmakrre. Itt az adatszr csatornkhoz val hozzfrs szablyozsnak hrom alapvet megkzeltst emltettk s ismertk meg: a csatornaosztsos mdszereket (TDM, FDM), a vletlen hozzfrsi mdszereket (az ALOH A s a CSMA protokollokat) s adsjog-tvteli mdszereket (a lekrdez s a tokentadsos protokollokat). Lttuk, hogy ha tbb csompont osztozik ugyanazon az adatszr csatornn, akkor a csompontokat adatkapcsolati cmekkel kell elltnunk. Megtanultuk, hogy a fizikai cmek elgg klnbznek a hlzati rtegbeli cmektl, s azt is, hogy az interneten egy specilis protokoll: a cmfelold protokoll (Address Resolution Protocol, ARP) feladata a cmek kt fajtja kztti lekpezs. Ksbb tanulmnyoztuk, hogy egy adatszr kzegre kapcsold csompontok hogyan alkotnak helyi hlzatot, illetve hogyan kapcsolhatunk ssze helyi hlzatokat egy nagyobb helyi hlzatt - mghozz hlzati szint tvlasztk hasznlata nlkl. Nhny konkrt adatkapcsolati protokollt - az Ethernetet s a PPP-t - is rszletesebben megismertk. Az adatkapcsolati rteg tanulmnyozst annak vizsglatval zrtuk, hogy az ATM- s MPLS-hlzatok hogyan biztostanak adatkapcsolati szint szolgltatsokat IP-tvlasztk sszektsekor. Az adatkapcsolati rteg felfedezsvel a protokollveremben lefel vezet utunk vgre rtnk! Val igaz, hogy a fizikai rteg az adatkapcsolati rteg alatt helyezkedik el, de ennek rszletei taln mr egy msik trgy (pldul a kommunikcielmlet, de nem a szmtgp-hlzatok) tmakrbe tartoznak. Ennek ellenre ebben s az 1. fejezetben is rintettk a fizikai rteg nhny krdst is (mint pldul a Manchester-k- dols lnyegt az 5.5. alfejezetben vagy a klnbz tviteli kzegeket az 1.2. alfejezetben). A fizikai rteggel legkzelebb a kvetkez szakaszban, a vezetk nlkli adatkapcsolatok jellemzinek tanulmnyozsakor fogunk tallkozni. Habr utunk a protokollverem mentn vget rt, a szmtgp-hlzatokkal val ismerkedsnk mg korntsem. A kvetkez ngy fejezetben a vezetk nlkli hlzatokat, a multimdia-hlzatokat, valamint a hlzatbiztonsg s a hlzatfelgyelet krdseit vesszk vizsglat al. Ezen ngy tmakr kzl egyiket sem sorolhatnnk csupn egyetlen rteghez - valjban mindegyikk tbb rtegre
terjed ki. Ezeken - az irodalom egy rsze ltal mr a halad kategriba sorolt terleteken azonban csak akkor igazodhatunk el, ha a protokollverem valamennyi rtegrl mr van biztos alaptudsunk - olyan alaptudsunk, amely az adatkapcsolati rteg megismersvel most teljess vlt!
Krdsek
5.1-5.2. alfcjczet KI. Ha az interneten tallhat valamennyi adatkapcsolat megbzhat tviteli szolgltatst biztostana, a TCP megbzhat tviteli szolgltatsa mr redundns lenne? Vlaszt indokolja! K2. Soroljon fel nhny olyan szolgltatst, amelyet adatkapcsolati protokollok biztosthatnak a hlzati rteg fel! Az IP, illetve a TCP szolgltatsai kzl melyek hasonlak ezekhez? 5.3. alfejezet K3. Tegyk fel, hogy egy adatszr kzegen egyszerre kt csompont kezd el adni egy L hossz csomagot R adattviteli sebessggel. A kt csompont kztti terjedsi ksleltets jellse: dtcticdiu. Lesz-e tkzs, ha dler)Cfi < IIR? Vlaszt indokolja! K4. Az 5.3. fejezetben megemltettk az adatszr csatornk ngy kvnatos tulajdonsgt. Ezen tulajdonsgok kzl melyekkel rendelkezik az ALOHA? s melyekkel rendelkezik a tokentads? K5. Magyarzza el a tokentadsos s a lekrdez protokollt a koktlparti analgijt hasznlva! K6. Nagyon nagy kerlet helyi hlzat esetn mirt nem hatkony a tokentadsos gyr protokoll? 5.4. alfejezet K7. Mekkora a MAC-cmtartomny? Mekkora az lPv4-cmtartomny? sazIPv6cm- tartomny? K8. legyk fel, hogy A, B s C csompontok ugyanazon adatszr helyi hlzatra csatlakoznak (csatolikon keresztl). Ha A csompont tbb ezer csomagot kld B-nek, a keretekben B M AC-cmt hasznlva, C csatolja fel fogja dolgozni ezeket a kereteket? Ha igen, tovbbtja-e C csatolja a keretekbe gyazott csomagokat a hlzati rtegnek? Hogyan vltoznak a krdsekre adott vlaszok, ha az A a krzvny MAC-cm- mel kldi kereteit? K9. Mirt krzvny keretben kldjk ki az ARP-krseket? Az ARP-vlaszokat szllt kereteket mirt egy meghatrozott MAC-cmre cmzik? K10. Az 5.18. bra hlzatn a tvlasztnak kt ARP-modulja van. Mindkt modul sajt ARP-tblval rendelkezik. Lehetsges, hogy a kt tblban megjelenik ugyanaz a MAC-cm? 5.5. alfejezet K1X. Hasonltsa ssze a 10BASE-T, a 100BASE-T, valamint a gigabites Ethernet ltal hasznlt keretszerkezeteket! Miben klnbznek? K12. Tegyk fel, hogy egy 10 Mb/s adatsebessg ad egy vgtelen, 1-esekbl ll Man- chester-kdols folyamot kld a csatornra. A csatolt elhagy
jel hny tmenetet tartalmaz msodpercenknt? KI3. CSMA/CD protokoll hasznlata esetn mi annak a valsznsge, hogy az tdik tkzst kveten egy csompont a K = 4 rtket vlasztja? A K = 4 vlaszts mekkora vrakozsnak felel meg 10 Mb/s adatsebessg Ethernet esetn? 5.6. a 1 fejezet K14. Tekintsk az 5.25. brt. Hny alhlzatot tartalmaz a 4.4. alfejezetben trgyalt cmzsi szablyok rtelmben?
Feladatok
FI. legyk fel, hogy egy csomag adat rsze az 1010101010101011 bitsorozat. Mi tallhat a paritsbiteket tartalmaz mezben, ha ktdimenzis, pratlan paritst alkalmazunk? Vlaszadskor ttelezze fel, hogy a paritsbitek mezjnek hossza minimlis. F2. Mutassa meg (egy az 5.6. brtl klnbz pldn), hogy a ktdimenzis paritsellenrzs kpes egyetlen hiba jelzsre, illetve javtsra. Mutasson pldt olyan ktszeres bithibra, amely jelezhet, de nem javthat. F3. Tegyk fel, hogy egy csomag adatrsze (azaz D az 5.4. brn) J0 bjtbl ll, amelyek a 0-tl 9-ig terjed egszek 8 bites, eljel nlkli reprezentcii. Szmtsa ki az internetes ellenrz sszeget. F4. A feladat ugyanaz, mint az elbb, a klnbsg az, hogy a csomag 10 bjtja nem az egszeket tartalmazza 0-tl 9-ig, hanem (a) az 1-tl 10-ig terjed egszek binris alakjt. (b) az A-tl J-ig terjed betk ASCII-kdjait (nagybetk). (c) az a-tl j-ig terjed betk ASCII-kdjait (kisbetk). Szmolja ki az internetes ellenrz sszeget ezekre az adatokra. F5. Vegyk az 5.8. bra 4 bites G genertort, s tegyk fel hogy D rtke 10101010. Mi lesz az R rtke? F6. A feladat ugyanaz, mint az elbb, csak D rtke (a) 10010001. (b) 10100011. (c) 01010101. F7. Az 5.3. fejezetben bemutattunk egy vzlatot a rseit A LI IA hatkonysgnak levezetsre. Ebben a feladatban kiegsztjk a levezetst. a) Emlkezznk vissza, hogy N aktv csompont esetn a rseit ALOHA hatkonysga Np{ 1 - p)K~'. Keresse meg azt a p-1, amely maximalizlja a kifejezst, (b) Az elz feladatban kiszmtott p segtsgvel szmolja ki a rseit ALOIIA hatkonysgt, ha Na vgtelenhez tart. Tipp: (1 - 1 /N)s 1/e-hez tart, ha Na vgtelenhez tart. F8. Mutassa meg, hogy azegyszer ALOHA maximlis hatkonysga U{2e). Megjegyzs: A feladat knny, ha mr megoldotta az elz feladatot!
F9. Tegyk fel, hogy hrom aktv csompont - A, B s C csompont versenyeznek a csatornhoz val hozzfrsrt, rseit ALOI I A-t hasznlva. Tegyk fel, hogy mindhrom csompontnak vgtelen szm tovbbtand csomagja van. Valamennyi csompont valamennyi idrsben p valsznsggel prblkozik csomagadssal. Az els idrs sorszma 1, a msodik 2, s gy tovbb. (a) Mi annak a valsznsge, hogy A csompont elszr a 4. idrsben jr sikerrel? (b) Mi a valsznsge annak, hogy valamely csompont (akr A, B vagy C) sikerrel jr a 2. idrsben? (c) Mi annak valsznsge, hogy az els sikeres csomagads a 4. idrsben trtnik? (d) Mi ennek a hrom csompont rendszernek a hatkonysga? F10. brzolja a rseit ALOHA s az egyszer ALOHA hatkonysgt p fggvnyben, N kvetkez rtkei mellett: a) N= 10. b) N = 25. c) N = 50. FI 1. Tekintsnk egy N csomponttal rendelkez, 11 b/s adattviteli sebessg adatszr csatornt. Tegyk fel tovbb, hogy az adatszr csatornn lekrdez protokollt hasznlunk (egy, az emltetteken felli lekrdez csomponttal) a tbbszrs hozzfrsszablyozsra. Jellje t/kkerdetsi azt az idtartamot, amely egy csompont forgalmazsnak befejezse s a kvetkez csompont adsnak engedlyezse kztt telik el (azaz a lekrdezsi ksleltetst). Tegyk fel, hogy egy fordulban egy adott csompont maximum Q bitet tovbbthat. Mi az adatszr csatorna maximlis teresztkpessge? FI 2. Tekintsk az 5.35. bra hrom helyi hlzatt, amelyet kt tvlaszt kt ssze. (a) Rajzolja jra az brt hlzati csatolkkal. (b) Rendeljen IF-cmeket valamennyi interfszhez. Azelsalhlzatban 111.111.111. xxx, a msodik alhlzatban 122.222.222.xxx, a harmadik alhlzatban pedig 133.133.133.xxx alak IP-cmeket hasznljon. (c) Rendeljen MAC-cmet minden csatolhoz.
2. alhlzat
F13.
F14.
F15.
F16.
(d) Tegyk fel, hogy egy IP-csomagot tovbbtunk A s F hosztok kztt. Tegyk fel tovbb, hogy valamennyi A RP-tbla friss adatokat tartalmaz. Sorolja fel valamennyi szksges lpst, ahogy azt az 5.4.2. alfejezet egy tvlaszts pldjnl tettk. (e) Oldja meg a (d) feladatot gy, hogy a kld hoszt ARP-tblzata kezdetben res (s a tbbi A RP-tbla friss adatokat tartalmaz). A feladat ugyanaz, mint az elbb, csak a 2. s 3. alhlzatok kztti tvlasztt egy kapcsolra cserljk le. Vlaszolja meg az elz feladat (a)(e) krdseit ebben az j krnyezetben. Emlkezznk vissza, hogy CSMA/CD protokoll hasznlata esetn a csatol tkzs utn K x 512 bitidnyit vrakozik, ahol K rtke vletlenszeren vlasztott. Ha K = 100, mennyit vrakozik a csatol a 2. lpshez val visszatrs eltt 10 Mb/s adatsebessg Ethernet esetn? s 100 Mb/s sebessg Ethernet esetn? Tegyk fel, hogy az A s B csompontok ugyanazon a 10 Mb/s sebessg Ethernet- snen helyezkednek el, s hogy a kt csompont kzti terjedsi ksleltets 225 bitid. Tegyk fel tovbb, hogy az A csompont megkezdi egy keret tovbbtst, de mg mieltt befejezn, B is megkezdi kerete adst. Befejezheti-c A a keret adst, mieltt rzkeln, hogy B is forgalmaz? Vlaszt indokolja! Ha igen a vlasz, A tvesen hiszi, hogy keretnek tovbbtsa sikeres volt. Tipp: Vegyk azt az esetet, amikor A csompont a / = 0 bitidnl kezdi meg adst. Legrosszabb esetben A egy minimlis mret keretet 512 + 64 bitid alatt tovbbt. A csompont teht 512 + 64 bitidnl fejezn be a keretadst. A vlasz teht nem, amennyiben B jelei / = 512 + 64 bitid eltt rik el A-t. Legrosszabb esetben mikor rnek el B jelei A-hoz? Tegyk fel, hogy A s B csompontok ugyanazon a 10 Mb/s adatsebessg Ethernet- snen helyezkednek el, s hogy a kettejk kztti terjedsi ksleltets 225 bitid. Tegyk fel, hogy A s B egyszerre tovbbt egy-egy keretet, amelyek tkznek, s ezutn A s B CSMA/CD algoritmussal
klnbz K rtkeket vlasztanak. Ha nincs A-n s B-n kvl ms aktvcsompont, tkzhetnek-e A s B jraadott keretei? Cljainknak megfelel, ha vgiggondoljuk a kvetkez pldt, 'legyk fel, hogy A s B is t = 0 bitidben kezdi meg adst. Az tkzst mindketten t = 225 bitidben rzkelik. Az tkzsi jel tovbbtst t = 225 + 48 = 273 bitidben fejezik be. Tegyk fel, hogy Ka = 0 s Kh = 1. Mikorra idzti B az jraadst? Mikor kezdi meg A az jraadst? {Megjegyzs: A csompontoknak a 2. lpshez val visszatrs utn meg kell vrniuk, am g szabad lesz a csatorna - lsd a protokollt.) A csompont jelei mikor rik el B-t? Vissza fog lpni B az elre kitztt idpontban val jraadstl? F17. Vegynk egy 100 Mb/s sebessg 100BASE-T Ethernet-hlzatot, amelyben valamennyi csompont egy eloszthoz kapcsoldik kzvetlenl. Mekkora lehet egy csompont s a eloszt kztti maximlis tvolsg, ha 0,50 rtk hatkonysgot kvnunk elrni? Tegyk fel, hogy egy keret hossza 64 bjt, s a hlzatban nincsenek ismtlk. Ez a maximlis tvolsg azt is garantlja, hogy A csompont kpes rzkelni, ha ms csompont is ad, mikzben forgalmaz? Vlaszt indokolja! Hasonltsa ssze a kiszmolt tvolsgot a valdi 100 Mb/s szabvnnyal! F18. Ebben a feladatban egy CSMA/CD-hez hasonl tbbszrs hozzfrsi protokoll hatkonysgt szmoljuk ki. A protokoll idrseket hasznl, s a csompontok az idrsekhez vannak szinkronizlva. A rseit ALOHA-val szemben azonban egy idrs jval rvidebb a keretidnl (egy keret tovbbtshoz szksges idnl). Jellje S a rsidt. Tegyk fel, hogy a keretek L mrete egyforma, L = /c X X 5, ahol R
a csatorna adattviteli sebessge, s k egy nagy egsz szm. A csatornn N csompontunk van, s mindegyik vgtelen szm tovbbtand kerettel rendelkezik. Feltesszk tovbb, hogy dteriCdcsl < S, azaz minden csompont a keret vge eltt kpes az tkzs rzkelsre. A protokoll a kvetkezkppen mkdik: Amennyiben egyik csompont sem birtokolja a csatornt, mindegyik csompont versenyezni kezd rte - minden csompont p valsznsggel tovbbt keretet a csatornra. Amennyiben pontosan egy csompont forgalmazott az idrsben, akkor ez a csompont a kvetkez k - 1 idrsre maghoz ragadja a csatornt, s tovbbtja a teljes kerett. I la valamelyik csompont birtokolja a csatornt, az sszes tbbi csompont tartzkodik a kerettovbbtstl, mindaddig, amg a csatornt birtokl csompont befejezi forgalmazst. Amint ez a csompont befejezi a kerettovbbtst, valamennyi csompont versenyezni kezd a csatornrt. Figyeljk meg, hogy a csatorna kt llapot kztt ingzik: a pontosan k idrsig tart hasznos llapot kztt s a vletlen szm keretidig tart haszontalan llapot kztt. Egyrtelm, hogy a csatorna hatkonysga a k / ( k + *) arny, ahol xaz egymst kvet haszontalan idrsek vrhat szma. (a) Rgztett N s p rtkek mellett szmolja ki a protokoll hatkonysgt! (b) Szmtsa ki azt a p rtket, amely maximalizlja a hatkonysgot, rgztett N mellett. (c) Felhasznlva a (b) feladatban kiszmtott p rtket (amely N fggvnye), szmolja ki a hatkonysgot, ha N a vgtelenbe tart. (d) Mutassa meg, hogyha a keret mret nagy, a hatkonysg l-hez kzelt. FI9. legyk fel, hogy A s B csompontok egy 900 mteres kbel kt vghez kapcsoldnak, s hogy mindkettjknek egy-egy 1000 bites kerete van (az elhangot s a teljes fejlcmezt is belertve), amelyet a msikhoz szeretnnek eljuttatni. Mindkt csompont megksrli az adst t = 0 idpontban. Tegyk fel, hogy A s B kztt ngy jelismtl helyezkedik el, s hogy egyenknt 20 bites ksleltetst okoznak. Tegyk fel tovbb, hogy az tviteli sebessg 10 Mb/s s hogy a csompontok CSMA/CD protokollt hasznlnak, 512 bit egsz szm tbbszrsnek megfelel visszalpsi idtartamokkal. Az els tkzs utn A csompont K = 0 rtket, B csompont K = 1 -et vlaszt az exponencilis visszalpshez. Az tkzsi jelet s a 96 bites ksleltetst hagyjuk figyelmen kvl. (a) Msodpercekben kifejezve mekkora az egy utas terjedsi ksleltets A s B kztt (beleszmtva az ismtlk ksleltetst is)? Tegyk fel, hogy a jelterjedsi sebessg 2 x 10* m/sec. (b) Mikorra r oda B csomponthoz az A csompont ltal kldtt keret teljes egszben (msodpercekben kifejezve)? (c) Most tegyk fel, hogy csak A csompont szeretne keretet kldeni, s a jelismtlket kapcsolkkal helyettestettk. Tegyk fel tovbb, hogy minden egyes kapcsolnak a trols-s-tovbbtsi ksleltetsen kvl 20 bites feldolgozsi ksleltetse is van. Msodpercekben kifejezve mikorra kapja meg B csompont az A csompont csomagjt? F20. Tekintsk az F12. feladat 5.35. brjt. Rendeljnk MAC-cmeket s IPcmeket az A hoszt, mindkt tvlaszt, valamint az F hoszt interfszeihez. Tegyk fel, hogy az A hoszt az F hosztnak kld egy adatcsomagot. Adja meg
F21.
F22.
F23.
F24.
F25.
F26.
ezen I P-csomagot szllt keret forrs s cl MAC-cmt (i) az A hoszt ti a bal oldali tvlasztig, (ii) a bal oldali tvlaszttl a jobb oldali tvlasztig, (iii) a jobb oldali tvlaszttl az F hosztig. Ezen kvl adja meg az IPcsomagban lv forrs s cl IP-cmeket ezekre az tszakaszokra. Cserljk le az 5.35. bra bal oldali tvlasztjt egy kapcsolra, s csatlakozzon az A, B, C s D hoszt, valamint a jobb oldali tvlaszt csillagtopolgiban ehhez a kapcsolhoz. Tegyk fel, hogy A hoszt F hosztnak kld egy adatcsomagot. Adja meg ezen IP-csomagot szllt keret forrs s cl MAC-cmt (i) az A hoszttl a kapcsolig, (ii) a kapcsoltl a jobb oldali tvlasztig, (iii) a jobb oldali tvlaszttl az F hosztig. Ezen kvl adja meg az IP-csomagban lv forrs s cl IP-cmeket ezekre az tszakaszokra. Tekintsk az 5.25. brt. Tegyk fel, hogy valamennyi adatkapcsolat adatsebessge 100 Mb/s. Mekkora a hlzatnak a 14 vgberendezs kztt elrhet maximlis sszestett teresztkpessge? Mirt? Cserljk le az 5.25. bra hrom tanszki tvlasztjt elosztkkal. Valamennyi adatkapcsolat adatsebessge 100 Mb/s. Mekkora a hlzatnak a 14 vgberendezs kztt elrhet maximlis sszestett teresztkpessge? Mirt? Cserljk le az 5.25. bra valamennyi kapcsoljt elosztkkal. Valamennyi adat- kapcsolat adatsebessge 100 Mb/s. Mekkora a hlzatnak a 14 vgberendezs kztt elrhet maximlis sszestett teresztkpessge? Mirt? Vizsgljuk meg egy kapcsol tanulsnak mkdst az 5.23. bra segtsgvel. legyk fel, hogy (i) A egy keretet kld D-nek, (ii) D egy kerettel vlaszol A-nak, (iii) C egy keretei kld D-nek, (iv) D egy kerettel vlaszol Cnek. A kapcsoltbla kezdetben res. Adja meg a kapcsoltbla llapott valamennyi esemny eltt s utn. Valamennyi esemnyre keresse meg az(oka)t az adatkapcsolat(ok)at, amely(ek)en a kerettovbbts trtnik, s rviden igazolja vlaszt. Emlkezznk vissza, hogy az ATM 53 bjtos csomagokat hasznl, amelyek egy 5 bjtos fejlcbl s egy 48 bjtos adatmezbl llnak. Az tvenhrom bjtos hossz szokatlanul kicsi fix hosszsg csomagoknl - a legtbb hlzati protokoll (az IP, az Ethernet, a kerettovbbtsi protokoll s gy tovbb) tlagosan sokkal nagyobb csomagokat hasznl. A kis csomagmret egyik f htultje, hogy az adatkapcsolatok adatsebessgnek jelents hnyadt a fejlcek bjtjai hasznljk cl - az ATM esetben a svszlessg majdnem 10szzalkt pazaroljkel a fejlcek. Ebben a feladatban azt vizsgljuk, hogy vajon mirt vlasztottak ilyen kicsi csomagmrelet. Ennek rdekben tegyk fel, hogy egy ATM-cella /. bjtbl (ahol L valsznleg eltr 48-tl) s egy 5 bjtos fejlcbl ll. (a) Tegyk fel, hogy egy hangforrs digitlisan kdolt hangjt visznk t kzvetlenl ATM felett. Tegyk fel tovbb, hogy a forrs hangjt lland, 64 kb/s sebessggel kdoljuk, s hogy minden cellt teljesen megtltnk, mieltt kikl- dennk a hlzatra. Az egy cella megtltshez szksges idt csomagolsi ksleltetsnek (packetization delay) nevezzk. Szmolja ki a csomagolsi ksleltetst L fggvnyben, ms-ban. (b) Egy 20 msec-nl nagyobb csomagolsi ksleltets szlelhet s
kellemetlen visszhangot okozhat. Szmtsa ki a csomagolsi ksleltetst L = 1500 bjt (ami nagyjbl egy maximlis mret Ethernet-csomag mrete), illetve L = 48 (az ATM-cellnak megfelel mret) esetn. (c) Szmtsa ki egy ATM-kapcsol trols-s-tovbbtsi ksleltetst, az adatkapcsolat R = 155 Mb/s (ATM-bcn elterjedt) adatsebessge, /. = 1500 bjt, illetve L = 48 bjt esetn. (d) Magyarzza el a kis cellamret elnyeit. F27. Tekintsk az 5.34. brn lthat MPLS hlzatot, s tegyk fel, hogy az R5 s R6 tvlasztk most MPLS-tvlasztk! El szeretnnk rni, hogy az R6-tl az A fel tart csomagok az R6-R4-R3-R1 tvonalon s az R5-tl A fel halad csomagok az R5-R4-R2-R1 tvonalon haladjanak. lltsa el R5 s R6, s mdostsa R4 MPLS-tbljt gy, hogy elrhessk clunkat. F28. Hlzatunk az elz feladatval egyezik, de most tegyk fel, hogy R6-tl Dbe men csomagokat az R6-R4-R3 tvonalon, R5-tl D-be tart csomagokat pedig az R4-R2-R1-R3 tvonalon szeretnnk tvinni. lltsa be az sszes tvlaszt MPLS-tbljt gy, hogy ezt elrjk.
Gondolkodtat krdsek
Ajnljuk, hogy a kvetkez krdseknek a vveben nzzen utna. Gl. Mennyibe kerl nagyjbl egy 10/100 Mb/s sebessg csatol? s egy 1 gigabites Ethernet-csatol? Milyenek ezek az rak egy 56 kb/s sebessg modem vagy egy ADSL-modem rhoz viszonytva? G2. A kapcsolk ra sokszor interfszeik (vagy LAN-os zsargonnal lve portjaik) szmnak felel meg. Mekkora nagyjbl egy kizrlag 100 Mb/s sebessg interfszekkel rendelkez kapcsol egy interfszre szmtott ra? G3. A hlzati csatolk tbb funkcija a csompont processzorn szoftveresen is megvalsthat. Milyen elnykkel, illetve htrnyokkal jr, ha ezeket a feladatokat a csatolrl a csompontra helyezzk t? G4. Keresse meg a weben az Ethernet-keretek fejrszben az IP-csomagok, illetve az ARP-csomagok jellsre hasznlt protokollszmokat. G5. Olvassa el az MPLS-es forgalom mrnksgrl szl [Xiao 2000, Huang 2002 s RFC 3346) anyagokat. Sorolja fel a forgalom mrnksg nhny cljt. Ezen clok kzl melyek azok, amelyeket csak MPLS-sel s melyek azok, amelyek ms ltez (nem MPLS) protokollokkal is elrhetk? Az utbbi esethez kpest milyen elnyei vannak az MPLS-nek?
Vlaszol
Simon S. Lm
Simon S. Lm az austini Texasi Egyetem (University of Texas) professzora s igazgattancsnak elnke. 1971-tl 1974-ig a Los Angeles-i California University (UCLA) ARPA Network Mesurement Centerben dolgozott, ahol mholdas s rdis csomagkapcsolssal foglalkozott. Azt a kutatcsoportot vezette, amely feltallta a bizton sgos szoketeket, s 1993ban elksztette az els biztonsgos szoket-rteg prototpust, amelyet Secure Network Programming-nek neveztek cl, s amely elnyerte a 2004 ACM szoftverrendszere djat. Kutatsi terlete hlzati protokollok tervezse s vizsglata. Villamosmrnki BsC diplomjt a Washington State Universityn, MsC s PhD fokozatt pedig a Los Angeles-i California Universityn szerezte. Mirt dnttt a hlzatok mellett? Amikor friss BsC-diplomsknt megrkeztem a Los Angeles-i Kaliforniai Egyetemre, irnytselmletet szerettem volna tanulni. Azutn felvettem egy sorbanllsi elmlettel log- lalkoz trgyat Leonard Kleinrocknl, aki nagy hatssal volt rm. Egy ideig sorbanllsi rendszerek adaptv irnytsval foglalkoztam, mint lehetsges diplomatmval. 1972 elejn Larry Roberts letre hvta az ARPAnet mholdas rendszer (ARPAnet Satellite System) cm projektet (amelyet ksbb Mholdas csomagkapcsolsnak - Packet Satellite-nek - hvtak). Kleinrock professzor felkrt, hogy vegyek rszt a projektben. Els dolgunk az volt, hogy kidolgozzunk egy egyszer, de mg valszer visszalpsi algoritmust a rseit A LI IA szmra. Nem sokkal ksbb tbb rdekes kutatsi tmval is megismerkedtem, mint pldul az ALOI IA instabilitsval s az adaptv visszalps szksgessgvel, amelyek diplomamunkm magjt alkottk. n az internet korai korszakban, az 1970-es vekben a Kaliforniai Egyetemre rkezst kveten mr aktvan kutatott. Milyen volt akkoriban a lgkr? Sejtette brki is, hogy hova fog fejldni az internet?
A lgkr egyltaln nem klnbztt ms ipari vagy egyetemi rendszerfejlesztsi projektek lgkrtl. Kezdetben az ARPAnet clkitzse elgg szerny volt, mindssze annyi, hogy biztostsa a tvoli hozzfrst drga szmtgpekhez, amelyeket gy tbb kutat is hasznlhatott. A Mholdas csomagkapcsols projekt 1972-es, illetve a Rdis csomagkapcsols projekt 1973-as elindtsval az ARPA cljai nagymrtkben megvltoztak. 1973-ban az ARPA mr hrom klnbz csomagkapcsolt hlzatot fejlesztett egyszerre, s szksges s vlt, hogy Vint Cerf s Bob Klin kidolgozzanak egy stratgit ezek sszekapcsolsra. Akkoriban ezeket a fejlesztseket (vlemnyem szerint) inkbb logikusnak tartottk, mint hihetetlennek. Senki sem lthatta elre az internet mai mrett s a szemlyi szmtgpek mai elterjedtsgt. Akkoriban mg tz vvel az els PC-k megjelense eltt jrtunk. Hogy rvilgtsunk a lnyegre, kpzeljk el, hogy akkoriban a hallgatk mg lyukkrtykon adtk be szmitgpes programjaikat ktegelt feldolgozsra. Csak nhny hallgat frhetett hoz
z kzvetlenl szmtgpekhez, amelyeket ltalban zrt helyen helyeztek el. A modemek lassak voltak, s ritkasgszmba mentek. Vgzs dikknt csak egy telefon volt az asztalomon, s paprral s ceruzval vgeztem munkm nagy rszt. Mit gondol, hova jutnak a hlzatok s az internet a jvben? A mltban az interneten hasznlt IP-protokoll egyszersgvel nyerte meg a versenyt, s vlt a hlzatok de facto szabvnyv. Versenytrsaival, mint az 1980-as vek X.25 protokolljval, vagy az 1990-es vekben kifejlesztett ATM-mel szemben brmilyen adatkapcsolati protokoll felett futhat, mivel csupn best el'ort (legjobbra trekv) szolgltatst nyjt, gy teht brmilyen csomagkapcsolt hlzat kapcsoldhat az internetre. Sajnlatos mdon az IP legnagyobb erssge hinyossgg vlt. Az IP olyan, mint egy knyszerzubbony, amely az internet fejlesztst bizonyos irnyokra korltozza. Az lP-r- teg gazdasgilag tl fontos ahhoz, hogy belekontrkodjunk, vagy hogy olyan j kpessgekkel ruhzzuk fel, mint a tbbesklds vagy a QoS. Az elmlt vekben a kutatk tbbsge a szlltsi s alkalmazsi rtegekben kereste a tbbesklds s a QoS-szolgltatsok megvalstsnak lehetsgeit. Ms npszer kutatsi tmk, mint a biztonsg vagy a P2P-rendszerek kizrlag az alkalmazsi rtegre szortkoznak. A vezetk nlkli s ad hoc hlzatok, a szenzors mholdas hlzatok terletn is sokan kutatnak. Ezeket a hlzatokat tekinthetjk nll rendszereknek vagy adatkapcsolati szint rendszereknek, s ezek nyugodtan fejldhetnek, mivel kvl esnek az IP knyszerzubbonyn. j internetalkalmazsok fejlesztsnek lehetsgt sokan a P2P-rendszerekben ltjk, m a P2P rendszerek az internetes erforrsok kihasznlsnak szempontjbl egyltaln nem hatkonyak. n tbbek kztt arra vagyok kvncsi, hogy vajon az internet magjnak tviteli s kapcsolsi kapacitsa gyorsabban fog-e nni, mint a megjelen forgalomignyek, mikzben az internet tovbb n, egyre tbbfle eszkzt kt ssze, s tmogatja a jvbeni P2P-alkalmazsokat. Nagy kihvst fog jelenteni a hlzat stabilitsnak biztostsa rossz indulat tmadsok s torldsok mellett, a kapacitsok jelents nvekedse nlkl. Mi a legnagyobb kihvs a munkjban? A munkm legnagyobb kihvst jelent rsze az, hogy tantsam s motivljam minden egyes hallgatmat az rimon s minden egyes doktoranduszomat, s nem csak az llovasokat. Kzlk a legrtelmesebbeknek s legmotivltabbaknak csak egy kis irnymutatsra van szksgk, semmi msra. Tlk sokszor tbbet tanulok, mint k tlem. A gyengbb kpessg hallgatk oktatsa s motivlsa viszont risi kihvst jelent. Hogy ltja, milyen hatssal lesz az internet a tanulsra a jvben? Vgeredmnyben a teljes emberi tudsanyag elrhet lesz az interneten, amely gy a tanuls leghatkonyabb eszkzv fog vlni. Ez az risi tudsbzis egy szintre fogja hozni a vilg sszes dikjnak lehetsgeit. Pldul brmelyik orszg motivlt dikja kpes lesz elrni a legjobb weboldalakat, a legjobb multimdis eladsokat s a legmagasabb sznvonal oktatsi anyagokat. gy tudom, hogy az IEEE s az ACM digitlis knyvtrai mr ma is nagymrtkben felgyorstottk a
szmtstudomnnyal foglalkoz knai kutatk munkjt. Idvel az internet a tanuls rdekben minden fldrajzi hatrt t fog lpni.
FELADATOK
217
218
GONDOLKODTAT KRDSEK
219
6. FEJEZET
A telefonos vilg elmlt 15 ve vitathatatlanul a mobiltvkzls fnykora volt. Mg 1993-ban vilgszerte 34 milli mobiltelefon-elfizet volt, ez a szm 2005-re tbb mint 2 millirdra emelkedett, s gy a mobiltelefon-elfizetk szma mra nagyobb lett a vezet- kestelefon-elfizetk szmnl [ITU Statistics 2007]. A mobiltelefonok elnyei mindenki szmra nyilvnvalak: elrhetsg brhol, brmikor, ktetlen hozzfrs a globlis telefonhlzathoz knnyen hordozhat, kis sly kszlkek segtsgvel. A laptopok, palm- topok s PDA-k korszaknak bckszntvel s ezeknek az eszkzknek a globlis inter nethez brhol s brmikor trtn kapcsolhatsguk gretvel vajon a vezetk nlkli interneteszkzk is hasonl robbansszer elterjeds eltt llnak? Brmit is tartogat a vezetk nlkli interneteszkzk jvje, mr most vilgos, hogy a vezetk nlkli hlzatoknak s mobilitson (hordozhatsgon) alapul szolgltatsaiknak helye van letnkben. Hlzatos szemszgbl nzve a vezetk nlkli s mobilhlzatokkal megjelen kihvsok - klnskppen adatkapcsolati s hlzati szinten - olyan nagymrtkben eltrnek a hagyomnyos, vezetkes hlzatoktl, hogy egy kln fejezetet (ezt a fejezetet) szentelnk tanulmnyozsuknak. A fejezet elejn a mobilfelhasznlkrl, a vezetk nlkli adatkapcsolatokrl s hlzatokrl lesz sz, ezen kvl megvizsgljuk azt is, hogy ezek hogyan kapcsoldnak a nagyobb (ltalban vezetkes) hlzatokhoz. Klnbsget fogunk tenni a hlzatok vezetk nlkli adatkapcsolatai, illetve a segtsgkkel lehetv vl mobilits ltal tmasztott kihvsok kztt. Ezzel a - vezetk nlklisg s a mobilits kztti - klnbsgttellel lehetv vlik, hogy jobban sztvlasszuk, megismerjk s megrtsk a kt terlet leglnyegesebb elemeit. Meg kell jegyeznnk, hogy lteznek olyan hlzati krnyezetek, amelyek csompontjai vezetk nlkliek, de nem hordozhatk (pldul otthoni vagy irodai vezetk nlkli hlzatok rgztett munkallomsokkal s nagy kijelzkkel), s vannak korlto zottan mobil krnyezetek is, amelyek nem ignyelnek vezetk nlkli adatkapcsolatokat (pldul egy dolgoz, aki otthon vezetkes hlzatban hasznlja a laptopjt, majd lekapcsolja, elmegy a munkahelyre, ahol csatlakoztatja a laptopot a cg vezetkes hlzathoz). Termszetesen a legrdekesebb hlzati krnyezetek azok, amelyek egyszerre vezetk nl kliek s mobilok - pldul egy olyan szituci, amikor a mobil felhasznl (mondjuk egy aut hts lsn lve) egyszerre tart fenn egy VoIP-hvst s tbb TCPsszekttetst, mikzben 160 kilomter per rs sebessggel szguld egy nmet autplyn. Pontosan itt, a vezetk nlklisg s a mobilits metszetben fogunk
220
szembeslni a legrdekesebb mszaki kihvsokkal! Kezdsknt ismertetjk azt az elrendezst, amelyben a vezetk nlkli kommunikci s mobilits krdseit vizsgljuk - ez egy olyan hlzat, amelyben a vezetk nlkli (s esetleg mobil) felhasznlk egy nagyobb hlzathoz kapcsoldnak a hlzat szln elhelyezked vezetk nlkli adatkapcsolaton keresztl. Ezutn a 6.2. alfejezetben ennek a vezetk nlkli adatkapcsolatnak a tulajdonsgait elemezzk. Szintn a 6.2. alfejezetben rviden bemutatjuk egy vezetk nlkli hlzatokban gyakran hasznlt csatornaosztsos proto koll, a kdosztsos tbbszrs hozzfrs (code division multiple access, CDMA) alapjait. A 6.3. alfejezetben valamilyen szinten megvizsgljuk az IEEE 802.11 (WiFi) vezetk nlkli helyi hlzati szabvny adatkapcsolati szint tulajdonsgait, de a Bluetooth-rl s a WiMAX-rl is szlunk pr szt. A 6.4. alfejezetben a mobil (cells) internet-hozzfrst tekintjk t, idertve az egyre jobban fejld harmadik genercis (3G) mobiltechnolgikat, amelynek segtsgvel mind a hangtvitel, mind a nagysebessg internet-hozz frs lehetv vlik. A 6.5. alfejezetben figyelmnket a mobilits krdse fel fordtjuk, s olyan problmkkal foglalkozunk, mint egy mobil-elfizet megtallsa, a mobil-elfizet fel trtn tvlaszts, vagy a hlzat klnbz pontjai kztt dinamikusan mozg mobil felhasznl tadsa. Megvizsgljuk, hogy ezen szolgltatsokat hogyan valstottk meg a mobil-IP- (6.6. alfejezet) s GSM-szabvnyokban (6.7. alfejezet). Vgl tanulmnyozzuk a mobilits s a vezetk nlkli adatkapcsolatok szlltsi protokollokra s hlzati alkalmazsokra gyakorolt hatst (6.8. alfejezet).
6.1. Bevezets
A 6.1. brn szemlltetjk azt az elrendezst, amelynek segtsgvel a vezetk nlkli adattvitel s a mobilits krdseit vizsgljuk. Eleinte egytt s ltalnosan foglalkozunk a klnbz megoldsokkal, mint az IEEE 802.11-hez hasonl vezetk nlkli helyi hlzatokkal s a mobil- (cells) hlzatokkal (pldul a 3G-hlzatokkal), a ksbbi alfejezetek- ben pedig rszletesebben is megvizsgljuk a klnbz vezetk nlkli megoldsokat. Egy vezetk nlkli hlzatban a kvetkez alkotelemeket tallhatjuk:
FELADATOK
221
%>>
S&>
Hlzati
infrastruktra
Jells:
i?
Mozg vezetk nik hoszt
Lefedett kizei
222
5.
AZ
HLZATOK
6.1. bra. A vezetk nlkli hlzat elemei tvlasztk, kapcsolk s ms hlzati eszkzk sszektsre. Ebben a fejezetben ennek ellenre mi a hlzat szln hasznlt vezetk nlkli adatkapcsolatokkal fogunk foglalkozni, mivel a legnagyobb mszaki kihvsok a hlzat ezen rszn jelennek meg, s a legnagyobb fejlds is itt trtnik. Bzislloms. A bzislloms (base station) a vezetk nlkli infrastruktra kulcs- fontossg eleme. A vezetk nlkli hosztoktl s adatkapcsolatoktl eltren a bzis- llomsnak nincs egyrtelm megfelelje a vezetkes hlzatban. A bzislloms azrt felels, hogy adatot (pldul csomagokat) kldjn a vezetk nlkli hosztnak, illetve hogy adatot fogadjon tle. Amikor azt mondjuk, hogy egy mobil hoszt trsult egy bzisllomssal, az azt jelenti, hogy (1) a mobil hoszt a bzislloms kommuni kcis hatsugarban helyezkedik el, s hogy (2) a hoszt arra hasznlja a bzisllo mst, hogy kzte (a hoszt kztt) s egy nagyobb hlzat kztt adatokat vigyen t. Bzisllomsra plda a mobiltelefon-hlzatok (cells hlzatok) tjtsz llomsai (cell tower) vagy az 1F.EE 802.11 vezetk nlkli hlzat hozzfrsi pontjai (access point). A 6.1. brn a bzislloms egy nagyobb hlzathoz (pldul az internethez, egy cges vagy otthoni hlzathoz vagy egy telefonhlzathoz) kapcsoldik, s gy adatkapcsolati tjtszknt mkdik a vezetk nlkli hoszt s a vilg azon rsze kztt, amellyel a hoszt kommunikl.
Egy bzisllomshoz kapcsold hosztokat sokszor infrastruktra mdban m kdknek nevezzk, hiszen valamennyi hagyomnyos hlzati szolgltatst (mint a cmkiosztst s az tvlasztst) az a hlzat valstja meg, amelyhez a hosztok a bzisllomson keresztl kapcsoldnak. Az ad hoc hlzatokban (ad hoc networks) nincs olyan infrastruktra, amelyhez a hosztok kapcsoldhatnnak. Ennek hinyban azonban a hosztoknak maguknak kell biztostania olyan szolgltatsokat, mint pldul az tvlaszts, a cmkioszts vagy a DNS-hez hasonl cmfordts. Mikor egy mobil hoszt valamely bzislloms hatsugarbl egy msik bzislloms hatsugarba lp, megvltozik a nagyobb hlzathoz val kapcsoldsi pontja (azaz megvltozik az a bzislloms, amelyhez kapcsoldik) - ezt a folyamatot vezrlstadsnak (handoff) nevezzk. Ez a fajta mobilits tbb rdekes krdst is felvet. Ha egy hoszt mozoghat, hogyan tudjuk megtallni t a hlzatban, amikor adatot akarunk kldeni neki? Hogyan mkdik a cmzs, ha a hoszt klnbz lehetsges helye ken bukkanhat fel? Ha a hoszt egy TCP-sszekttets fennllsa vagy egy telefonhvs lebonyoltsa kzben mozog, hogyan kell tovbbtanunk az adatokat, hogy a kapcsolat tovbbra is zavartalanul fennlljon? Ezeknek s mg sok (valban sok!) ms krdsnek ksznheten a mobilhlzatok tmakre rendkvl izgalmas kutatsi terlet. Hlzati infrastruktra. Ez az a nagyobb hlzat, amellyel a vezetk nlkli hoszt kommuniklni kvn. Most, miutn megismertk a vezetk nlkli hlzatok elemeit, megjegyezzk, hogy a klnbz elemeket klnfle vezetk nlkli hlzatokban klnbz mdokon helyezhetjk el. Ezen hlzatok egy osztlyozsa hasznos lehet az olvas szmra a fejezet tovbbi rszben, illetve amennyiben mr nem e knyvbl ismerkedik a vezetk nlkli hlzatokkal. Legfels szinten kt kvetelmny szerint csoportosthatjuk a vezetk nlkli hlzatokat: (i) aszerint, hogy a vezetk nlkli hlzat egy csomagja pontosan egy vagy tbb kzvetlen vezetk nlkli adatkapcsolaton halad t, illetve (ii) aszerint, hogy van-e infrastruktra a hlzatban, pldul egy bzislloms:
200 Mb/s 54 Mb/s 5-11 Mb/s 4 Mb/s 1 Mb/s
802.11 n 802.11 a,g 802.11b 802.11 a.g kt pont kztti WiMAX UMTS/WCDMA-HSDPA, CDMA2000-1 xEVDO Javtott 3G
802.15.1
384 kb/s 56
3G
pleten kvl
Kzepes tvolsg pleten kvl 200 m-4 km Nagy tvolsg pleten kvl 5 km20 km
Egy adatkapcsolatos, infrastruktrn alapul. Ezek a hlzatok rendelkeznek egy nagyobb vezetkes hlzathoz (pldul az internethez) csatlakoz bzisllomssal. Ezen fell a kommunikci mindig a bzislloms s valamely vezetk nlkli hoszt kztt zajlik, egyetlen vezetk nlkli adatkapcsolaton keresztl. Az 1EEE802.11 -es hlzatok, amelyeket tantermekben, kvzkban vagy knyvtrakban hasznlhatunk, a mobiltelefon-hlzatok, valamint az IEEE 802*. 16 WiMAX-hlzatok, amelyekkel hamarosan megismerkednk, mind ebbe a kategriba esnek. Egy adatkapcsolatos, infrastruktra nlkli. Ezekben a hlzatokban nincs vezetk nlkli hlzathoz kapcsold bzislloms, habr - ahogy hamarosan ltni fogjuk -lehet olyan csompontjuk, amely a tbbi csompont adattvitelt vezrelheti. A Blue- tooth-hlzatok (amelyekrl a 6.3.6. alfejezetben olvashatunk bvebben), valamint az ad hoc mdban mkd IEEE 802.11-es hlzatok ilyen tpus hlzatok. Tbb adatkapcsolatos, infrastruktrn alapul. Ezek a hlzatok tartalmaznak egy, a nagyobb vezetkes hlzathoz kapcsold bzisllomst. Nhny vezetk nlkli csompont azonban ignybe kell vegye ms vezetk nlkli csompontok tjtsz szolgltatst a bzisllomssal val kommunikcijhoz. Nhny vezetek nlkli szenzorhlzat, illetve a vezetk nlkli teljesen sszekttt hlzatok (wireless mesh net- works) ebbe a kategriba esnek. Tbb adatkapcsolatos, infrastruktra nlkli. Ezekben a hlzatokban nincsen bzis- lloms, s a csompontoknak adott esetben ms tjtsz csompontokon keresztl kell eljuttatniuk zeneteiket a clcsompontig. A csompontok lehetnek mobilok, amely azt jelenti, hogy a kztk lev sszekttetsek llandan vltozhatnak. gy van ez a mobil ad hoc hlzatoknl (mobile ad hoc network, MANET). Ha a hordozhat csompontok jrmvek, akkor kzti ad hoc hlzatrl (vehicular ad hoc network, VANET) beszlnk. Elkpzelhet, hogy milyen nagy kihvst jelent ilyen hlzatok rszre protokollokat fejleszteni. Ez szmos, jelenleg is foly kutats tmja. Ebben a fejezetben elssorban az egy adat kapcsolatos hlzatokat, majd az infrastruktrn alapul hlzatokat fogjuk trgyalni. ssuk most bele magunkat kicsit mlyebben a mobil- s vezetk nlkli hlzatok kihvsaiba. Elsknt az egyedli vezetk nlkli adatkapcsolattal foglalkozunk, a hordozhatsg krdseinek trgyalst kicsit ksbbre halasztjuk.
Egy kis trtnelem
nlkli
hozzfrs:
hamarosan
philadelphiai
A vezetek nlkli, vagyis WiFi-hotspotok - azok a nyilvnos helyek, ahol az IEF.E 802.11-es vezetk nlkli hozzfrs ll a felhasznlk rendelkezsre - vilgszerte egyre gyakoribb vlnak klnbz szllodkban, repltereken s kvzkban. 2006 vgre a T-Mobile tbb mint 8000 helysznen biztostott csatlakozsi pontokat az Egyeslt llamokban, gy a Starbucks kvzkban s a Borders knyvs zenem-ruhzakban is. A McDonalds vilgszerte tbb mint 7000 ttermben teszi elrhetv a vezetk nlkli internetet. Ezzel szemben a Pennsylvania llambeli Philadelphia vrosa a mindentt elrhet vezetk nlkli internet-hozzfrs fogalmt egy lpssel tovbbfejleszti egy olyan program segtsgvel, amely a vros 135 ngyzetmrloldes terletn tallhat valamennyi vrosrszbe
eljuttatja a vezetk nlkli internetet. A cl nem ms, mint hogy Philadelphia az amerikai nemzet legnagyobb WiFi-hotspotja legyen, ezzel segtve az oktatst, a digitlis szakadk thidalst, a vrosrszek fejldst s az llami kiadsok cskkentst. A terv szerint mintegy 4000 villanyoszlopot s forgalom irnyit berendezst ltnak el IEEE 802.1 lb protokoll szerint mkd vezetk nlkli hozzfrsi pontokkal. Az ambicizus program egy megllapodson alapul, melynek rsztvevi a vrosvezets, a Wireless Philadelphia (egy non-profit szervezet) s az Earthlink nev internetszolgItat. A terv kivitelezse a vroslakknak nem kerl pnzbe, s megvalsulsa utn a klnbz parkokban s nyilvnos helyeken ingyenes hozzfrst biztost. Az otthoni s cges felhaszn lknak viszont fizetnik kell majd a hozzfrsrt. A Wireless Philadelphia szervezet bevtelt (a hozzfrsi djak 5 szzalkt) philadelphiai oktatsi s kzssgi programok, tbbek kztt technolgiakzpont programok szervezsbe fektetik.
Cskken
jelerssg.
vevhz rkezve mr nem teljesen tisztn kivehet. Az ad s a vev kztti mozg objektumok a tbbutas terjeds idbeni vltozst okozhatjk. A vezetk nlkli csatornk tulajdonsgait, modelljeit s mrseit rszletesebben megismerhetjk [Anderson 1995) munkjbl. A fent lertakbl rezhetjk, hogy gyakrabban fordulnak el bithibk vezetk nlkli, mint vezetkes kzegen. gy az sem csoda, hogy a vezetk nlkli adatkapcsolati protokollk (mint az IKRE 802.11 protokoll, amelyet a kvetkez alfejczetben trgyalunk), nemcsak igen ers CRC hibajelz kdokat, de olyan adatkapcsolati szinten is megbzhat adattvitelt biztost eljrsokat is tartalmaznak, amelyek megismtlik a megsrlt kereteket. Miutn megbeszltk, hogy milyen mdokon srlhetnek meg a keretek a vezetk nlkli csatornn, vizsgljuk most meg a vezetk nlkli jelet fogad hosztot. Ez a hoszt egy olyan jelet fog venni, amely az eredeti jel (a tobbutas terjedsnek, a jelgyenglsnek s mg sok minden msnak ksznheten) deformldott alakjbl s a krnyezetbl szrmaz httrzajokbl ll. A jel-zaj viszony (signal-to-noise ratio, SNR) egy a vett jel s az elbb emltett zaj erssgt mutat relatv mrtk. Az SNR-t jellemzen decibelben (dB) mrik, amelyet sokak vlemnye szerint a villamosmrnkk azrt hasznlnak, hogy sszezavar jk az informatikusokat. A dB-ben mrt SNR nem ms, mint a vett jel s a zaj amplitdi hnyadosnak tzes alap logaritmusnak hszszorosa. A mi cljainknak azonban az is megfelel, ha tudjuk, hogy nagyobb SNR mellett a vev knnyebben nyeri ki a tovbbtott jelet a httrzajbl. A 6.3. bra (forrs: [Holland 2001]) a bithiba valsznsgt (bit error rate, BR) - annak valsznsgt, hogy egy kldtt bit a vevnl hibsan jelenik meg - mutatja az SNR-hez viszonytva, hrom klnbz, a kldend bitek idelis vezetk nlkli csatornn val kdolsra hasznlt modulcis technika mellett. A modulcis tech nikk s a kdolsi eljrsok trgyalsa csakgy, mint a BR s az eredeti jel kinyerse, jval tlmutat e knyv keretein (ezen tmk rszletes lerst lsd [Schwartz 1980]). A 6.3. bra mindamellett szmos olyan fizikai rtegbeli jellemzt is brzol, amelyek szksgesek a felsbb szint vezetk nlkli protokollok megrtshez: Egy adott modulcis eljrs mellett ha n az SNR, cskken a BR. Mivel a kld az SNR-t az adsi jelcrssg nvelsvel tudja nvelni, a bithiba valsznsgnek cskkenst is az adsi jelcrssg nvelsvel tudja elrni. Vegyk azonban szre, hogy a gyakorlatban a BR igen kismrtk javulst rhetjk el az adsi jelerssg egy bizonyos kszbszint fel nvelsvel, pldul a BR 10 l2 -rl 10" ,3 -ra val cskken-
SNR dB)
tst. Az adsi jelcrssg nvelsnek htrnyai is vannak: az adnak tbb energit kell felhasznlnia (amely elg nagy gondot jelenthet akkumultorrl zemel mobil kszlkek esetben), ezenkvl az ads nagyobb valsznsggel fogja zavarni valamely ms ad adst (lsd a 6.4. (b) bra).
Adott SNR mellett egy nagyobb bitsebessggel br modulcis eljrsnak (akr hibzik, akr nem), nagyobb lesz a bithiba elfordulsnak valsznsge.
Pldul mg a 6.3. brn 10 dB-es SNR mellett az 1 Mb/s adattviteli sebessg BPSK-modulcinak 10 : -nl is alacsonyabb a bithiba valsznsge, addig 4 Mb/s sebessg QAM16 modulcit hasznlva 10 1 a bithiba-valsznsg, amely mg mindig tl magas ahhoz, hogy a gyakorlatban hasznos legyen, br 20 dB-es SNR mellett a QAM16 modulci adatsebessge 4 Mb/s, bithiba-valsznsge 10 7 , a BPSK modulci adatsebessge 1 Mb/s, bithiba-valsznsge pedig olyannyira kicsi, hogy (sz szerint) lekerlt a trkprl. Ha a QAM16 10 _: nagysg bithiba-valsznsge elfogadhat, akkor ez a modulcis eljrs az idelis vlaszts. Ezek a megfigyelsek adnak rtelmet az utols jellemznek, amelyet a kvetkezkben ismertetnk.
A fizikai szint modulcis eljrst dinamikusan vlaszthatjuk meg annak rdekben, hogy a modulci a csatorna jellemzihez alkalmazkodjon. Az SNR
(s gy a BR is) a mobilits vagy a krnyezet vltozsnak kvetkeztben mdosulhat. Adaptv modulcit s kdolst hasznlnak a cells adattviteli rendszerek, az IEEE 802.16 WiMAX- s az IEEE 802.11 WiFi-hlzatok, amelyeket a 6.3. alfejezetben trgyalunk. Ennek segtsgvel pldul kivlaszthatjuk azt a modulcis eljrst, amely egy bithibavalsznsgre megadott korlt s adott csatornajellemzk mellett a maximlis tviteli sebessget biztostja.
A magasabb s idben vltoz bithiba-valsznsg nem az egyetlen klnbsg a vezetkes s vezetk nlkli csatornk kztt. Emlkezznk vissza, hogy vezetkes adatszr csatornk esetben egy csompont adst valamennyi msik csompont veszi. Vezetk nlkli csatornk esetn a helyzet nem ilyen egyszer, ahogy azt a 6.4. brn is lthatjuk. Tegyk fel, hogy az A csompont tovbbt adatokat a B csompontnak. Tegyk l tovbb, hogy a C csompont is a B csompont fel tovbbt. A rejtett lloms problmja ak
kor ll fenn, ha a krnyezet fizikai akadlyai (pldul egy hegy vagy egy plet) miatt A s C csompont nem hallja egymst, habr adsaik B clcsompontnl zavarjk egymst. A problmt a 6.4. (a) brn figyelhetjk meg. szrevtlen tkzseket ezen fell a jel vezetk nlkli csatornn val terjedse kzbeni gyengls is okozhat. A 6.4. (b) brn lthatjuk azt az elrendezst, amelyben A cs C gy helyezkednek el, hogy jeleik nem ersek elgg ahhoz, hogy szleljk egyms adsait, de ahhoz mg elg ersek, hogy B csompontnl zavarjk egymst. Ahogy a 6.3. alfejezetben ltni fogjuk, a rejtett lloms problmja s a jelgyengls miatt a vezetk nlkli hlzatokban jval bonyolultabb a tbbszrs hozz frs problmja, mint a vezetkes hlzatokban.
6.2.1.
CDMA
Az 5. fejezetbl emlkezhetnk, hogy hosztok osztott csatornn keresztli kommunikcijhoz szksg van egy olyan protokollra, amely biztostja, hogy a klnbz adk ltal kldtt jelek ne zavarjk egymst a vev csompontoknl. Az 5. fejezetben a kzegelrsi protokollok hrom osztlyval ismerkedtnk meg, nevezetesen a csatornaosztsos protokollokkal, a vletlen hozzfrsi protokollokkal, valamint a adsjog-tvteli protokollal. A kdosztsos tbbszrs hozzfrs (code division multiple access, CDMA) a csatorna osztsos protokollok csaldjhoz tartozik, s uralja a vezetk nlkli helyi hlzatok, va lamint a mobilhlzatok terlett. Mivel a CDMA ennyire fontos a mobilhlzatokban, rviden megismerkednk vele, mg mieltt a kvetkez alfejezetekben belekezdennk az egyes vezetk nlkli hozzfrsi technikk tanulmnyozsba. CDMA protokoll hasznlata esetn a biteket gy kdoljuk, hogy beszorozzuk ket egy olyan jelsorozattal (a kddal), amely a tovbbtand bitek sorozatnl sokkal nagyobb sebessggel, a tredksebesggel (chipping rate) vltozik. A 6.5. brn megfigyelhetjk a CDMA-kdols/dekdols egy egyszer, idealizlt esett. Tegyk fel, hogy az egysgnyi idt az a sebessg definilja, amellyel az eredeti adatfolyam bitjei elrik a CDMA-kdolt - azaz az eredeti adatfolyam valamennyi bitjnek tovbbtshoz egy bitrsnyi idre van szksgnk. Legyen dt az /'-edik bitrsben kldend adatbit rtke. Hogy megfeleljnk a matematikai kvetelmnyeknek, a 0 rtk biteket -1 rtkkel fogjuk reprezentlni. Valamennyi bitrst tovbb osztunk M minirsre - a 6.5. brn M = 8, habr a gyakorlatban M rtke jval nagyobb ennl. A kldben hasznlt CDMA-kd rtkek A hossz sorozat bl ll, ezeket c r -mel jelljk, ahol m = 1,..., M, s a sorozat elemei a +1 vagy -1 rtkeket vehetik fel. A 6.5. brn az ad M bites CDMA-kdja (1, 1, 1, -1,1, -1, -1, -1). A CDMA mkdsnek megrtse rdekben vegyk most d-1, az /-edik adatbitet. A bit adsi idejnek m-edik minirsben a CDM A-kdol ki menete Z. wi , ami nem ms, mint a d rtk megszorozva a csomponthoz rendelt CDMA-kd m-edik bitjvel, c^-mel: 2,>= /, x c
( 6. 1)
Egy egyszer, egymst zavar adk nlkli vilgban a vev a kdolt Zm biteket vve visszalltan az eredeti d adatbitet a kvetkez kifejezs kiszmolsval:
Az olvas esetleg vgigszmolhatja a 6.5. bra pldjt, hogy lssa, hogy a (6.2) kplet hasznlatval a vev valban kpes helyesen visszalltani az eredeti adatbiteket. A vilg azonban egyltaln nem idelis, s gy, ahogy azt fent emltettk, a CDMA-nak klnbz kdokat hasznl, egymst zavar adcsompontok jelenlte mellett is mkdnie kell. De vajon hogyan lltja vissza a CDM A-t hasznl vev a kld eredeti bitjeit, amikor ezek a bitek ms adk bitjeivel interferlnak? A CDM A azt felttelezi, hogy kt egymst zavar bit jelei additvak. Ez azt jelenti pldul, hogy amennyiben hrom ad 1 rtket kld, egy negyedik ad pedig -1 rtket ugyanabban a minirsben, akkor abban a minirsben minden vev 2 rtket fog venni (mivel 1 + 1 + 1 - 1 = 2). Az s kld tbb ad jelenlte mellett is pontosan ugyangy kdolja a kldend Zsin. biteket, azaz a (6.1) kplet alapjn. Egy vev ltal az m-edik minirsben vett rtk most azonban az N kld ltal ebben a minirsben kldtt bitek sszege:
r,=2X
5*1
Kld
vev kpes lesz kinyerni egy bizonyos ad ltal kldtt bitsorozatot sszegezdtt jelbl, pontosan ugyanazon a mdon, mint a (6.2) kpletnl:
az
d,=T.ZL*cm 1Y m1
(6.3)
Ezt lthatjuk a 6.6. brn is, kt CDMA-ad esetre. A fels kld ltal hasznlt M bites CDMA-kd (1, 1, 1, -1,1, -1, -1 -1), mg az als kld CDMA-kdja (1, -1,1,1,1, -1,1,1). A 6.6. brn azt is megfigyelhetjk, amint a vev kinyeri a fels ad eredeti adatbitjeit a vett jelbl. Figyeljk meg, hogy a vev kpes az 1. ad ltal kldtt adat kinyersre annak ellenre, hogy a 2. ad adsa is jelen van a csatornn. Ha visszaemlkeznk koktlpartis pldnkra az 5. fejezetbl, a CDMA protokoll ahhoz hasonlthat, mintha a partizok klnbz nyelveken beszlnnek. Ilyen krlmnyek kztt az emberi fl kpes rllni arra a nyelvre, amelyet megrt, a tbbi nyelven foly beszlgetseket meg kiszrni. Lthatjuk, hogy a CDMA egy olyan csatornaosztsos protokoll, amely a kdteret osztja fel (a frekvenciatartomny helyett), s minden csomponthoz a kdtartomny egy szelett rendeli. A CDMA protokollal val ismerkedsnket itt szksgkppen rvidre kell fognunk a valsgban azonban tbb dolgot is fontolra kell vennnk. Elszr is, annak rdekben, hogy a CDM A-vevk egyrtelmen ki tudjk nyerni egy bizonyos ad jelsorozatt, a kdokat nagy odafigyelssel kell megvlasztani. Msodszor, mi feltteleztk, hogy a klnbz adktl vett jelek erssge megegyezik - ezt azonban a gyakorlatban elg nehz elrni. Az ezen s ms tmakrkkel foglalkoz irodalom igen gazdag - lsd a [Pickholtz 1982] s [Viterbi 1995] anyagokat a rszletekrt.
Kldk
6.6.
Adat bitek
Kd
Z*m csatorna
1.vev
1. idrsben
0.
idrsben
kvl mindhrom szabvny ugyanazt az adatkapcsolati szint keretszerkezetet hasznlja, mindhrom szabvny kpes az adattviteli sebessg cskkentsre nagyobb tvolsgok thidalsnak rdekben, vgl pedig mindhrom szabvny lehetv teszi ad hoc, illetve az infrastruktra md hasznlatt, amelyeket szintn megismernk nemsokra. Mindazonltal, ahogy a 6.1. tblzat is mutatja, a hrom szabvny fizikai rtegbeli tulajdonsgai nhny ponton sokban eltrnek.
Az IEEE 802.11b vezetk nlkli helyi hlzatok 11 Ylb/s adatsebessgre kpesek, s a szabadon hasznlhat 2,4-2,5 GHz-es frekvenciasvban mkdnek, ahol is a 2,4 Gllz-es hordozhat telefonokkal s a mikrohullm stkkel kell versenyeznik a frekvenciasvrt. Az IEEE 802.1 la vezetk nlkli helyi hlzatok ennl jelentsen nagyobb sebessgre kpesek, de nagyobb frekvencikat hasznlnak. A nagyobb frekvenciatartomny miatt az IEEE 802.1 la hlzatoknl kisebb a hattvolsg rgztett adteljestmny mellett, s job ban ki vannak tve a tbbutas terjeds hatsainak is. A IEEE 802.1 lg hlzatok az IEEE 802.11b hlzatokkal azonos, kisebb frekvenciatartomnyban mkdnek, s visszafel kompatibilisek az IEEE 802.11b hlzatokkal (teht meglv IEEE 802.11b klienseinket inkrementlisan frissthetjk), de az IEEE 802.11a hlzatok megnvekedett adattviteli sebessgre is kpesek, teht a kecske is jllakik, s a kposzta is megmarad. Egy j WiFi-szabvny, az IEEE 802.1 In [IEEE 802.1 In 2007] most van a szabvnyosts folyamatban. A IEEE 802.1 In tbbszrs kimeneti s tbbszrs bemeneti (multiple-in- put multiple-output - MIMO) antennkat hasznl, azaz kt vagy tbb antennt az ad oldalon s kt vagy tbb antennt a vev oldalon, amelyek klnbz jeleket adnak s vesznek [Diggavi 2004]. Br a szabvny mg nem vgleges, elzetesen legyrtott eszkzk mr lteznek, amelyek tesztjei azt mutatjk, hogy tbb, mint 100 Mb/s adattviteli sebes sg rhet el a gyakorlatban [Loh 2006]. A szabvny egy nagy megoldatlan problmja azonban, hogy hogyan fog egyttmkdni a mr ltez IEEE 802.1 la/b/g eszkzkkel.
s (elmletileg) ezek a cmek is egyediek mindenhol a vilgon. Ahogy korbban emltettk (lsd 6.1. alfejezet), a hozzfrsi pontokat tartalmaz vezetk nlkli helyi hlzatokat infrastruktrn alapul vezetk nlkli helyi hlzatoknak (infrastructure wireless LANs) is nevezzk, ahol az infrastruktra a hozzfrsi pon-
Kapcsol vagy
Internet
1.BSS 2.BSS
6.7. bra. IEEE 802.11 helyi hlzati architektra tokbl s az azokat, valamint az tvlasztt sszekt vezetkes Ethernetes infrastruktrbl ll. A 6.8. brn lthatjuk, hogy az IEEE 802.11 llomsok ad hoc hlzatba is csoportosulhatnak - azaz egy olyan hlzatba, amelyben nincs kzponti vezrls, s amely nem ll sszekttetsben a kinti vilggal. A hlzatot ebben az esetben menet kzben alaktjk ki olyan mobil eszkzk, amelyek szrevettk, hogy kzel vannak egymshoz, amelyek kommuniklni szerelnnek egymssal, s amelyek nem talltak semmilyen mr felplt hlzatot a krnyken. Ad hoc hlzatok ltrejhetnek, amikor klnbz emberek laptopjai egyms kzelbe kerlnek (pldul konferenciaieremben, vonaton vagy au tban), s kzponti hozzfrsi pont irnytsa nlkl szeretnnek adatokat cserlni. Bl z ad hoc hlzatokat a hordozhat kommunikcis eszkzk fejldsvel egyre nagyobb rdeklds vezi, ebben az alfejezetben mi az infrastruktrn alapul vezetk nlkli helyi hlzatokat fogjuk megvizsglni.
Csatornk s trsuls
Az IEEE 802.11 hlzatokban valamennyi vezetk nlkli llomsnak trsulnia (kapcsoldnia) kell egy hozzfrsi ponthoz, mieltt hlzati rtegbeli adatokat tudna kldeni vagy fogadni. Habr a trsulst valamennyi IEEE 802.11 szabvny hasznlja, mi itt az IEEE 802.1 lb/g szabvny esett fogjuk vizsglni. Amikor egy rendszergazda mkdsbe helyez egy hozzfrsi pontot, egy egyvagy kt- szavas szolgltatscsoport-azonostt (Service Set Identifier, SSID) rendel a hozzfrsi ponthoz. (Pldul amikor az Elrhet vezetk nlkli hlzatok megjelentse menpontra kattintunk Microsoft Windows XP alatt, a hozzfrsi pontok SSID-it tartalmaz listt kapunk.) A rendszergazdnak ezenfell egy csatornaszmot is kell rendelnie a hozzfrsi ponthoz. Hogy megrtsk a
csatornaszmok szerept, emlkezznk vissza, hogy az IEEE 802.11 hlzatok a 2,4 GHz-tl 2,485 GHz-ig terjed frekvenciasvban mBSS
6.8. bra. Egy IEEE 802.11 ad hoc hlzat kdnek. Ezen a 8 MHz-es svon bell az IEEE 802.11 szabvny 11, egymst rszben tfed csatornt definil. Kt csatorna akkor s csak akkor nem tfed, ha ngy vagy tbb csatorna vlasztja el ket. Valjban az 1, 6 s 11 csatornkbl ll halmaz az egyetlen hromelem, nem tfed csatornkbl ll halmaz. Ez azt jelenti, hogy a rendszergazda hrom hozzfrsi pont azonos helyen trtn felszerelsvel, s az 1, 6 s 11 csatornk hozzfrsi pontokhoz val rendelsvel egy 33 Mb/s sszestett tviteli sebessg vezetk nlkli hlzatot hozhat ltre. Most, hogy mr rtjk az IEEE 802.11 csatorninak alapjait, vizsgljunk meg egy rdekes (s a gyakorlatban nem teljesen szokatlan) pldt - a WiFi-dzsungel pldjt. Egy WiFi-dzsungel (WiFi jungle) egy olyan helyet jelent, ahol egy vezetk nlkli lloms tbb hozzfrsi ponttl is kpes elg ers jelet venni. Pldul New York vrosnak tbb kvzjban az lloms tbb krnykbeli hozzfrsi pont jelt is tudja fogni. Az egyik hozzfrsi pont lehet pldul a kvz sajtja, mg a tbbi hozzfrsi pont lehet a krnykbeli laksok otthoni hlzatnak hozzfrsi pontja. Ezekhez a hozzfrsi pontokhoz mindemellett kln-kln rendeltek csatornkat, s knnyen tartozhatnak klnbz IP-alhlzatokhoz. Tegyk fel most, hogy az olvas hordozhat szmtgpvel a kezben, vezetk nlkli internet-hozzfrst s egy alms rtest keresve belp egy ilyen WiFidzsungelbe. Tegyk fel, hogy a WiFi-dzsungelben t hozzfrsi pontot tallunk. A vezetk nlkli internetelrs rdekben pontosan egy alhlzathoz kell csatlakoznunk, s gy pontosan egy hozzfrsi ponttal kell trsulnunk. A trsuls nem jelent mst, minthogy a vezetk nlkli lloms egy virtulis vezetket hoz ltre maga s a hozzfrsi pont kztt. Bvebben kifejtve, kizrlag a trsult hozzfrsi pont fog vezetk nlkli llomsunkra kereteket (teht adatokat, pldul felsbb szint adatcsomagokat tartalmaz kereteket) kldeni, illetve vezetk nlkli llomsunk kizrlag a trsult hozzfrsi ponton keresz tl fog adatokat kldeni az internetre. De vajon hogyan trsul a vezetk nlkli lloms egy bizonyos hozzfrsi ponttal? Vagy egy mg alapvetbb krds: Hogyan tudja meg a vezetk nlkli lloms, hogy milyen hozzfrsi pontokhoz kapcsoldhat, ha azok a dzsungelben vannak? Az IEEE 802.11 szabvny szerint a hozzfrsi pontnak n. jelzfnykereteket (beacon frames) kell periodikusan kldenie, amelyek a hozzfrsi pont SSID-jt s
MAC-cmt
6.2. VEZETS
239
tartalmazzk. Vezetk nlkli llomsunk gy annak tudatban, hogy a hozzfrsi pontok jelzfnykereteket kldenek, psztzni kezdi a 11 csatornt ilyen, hozzfrsi pontoktl szrmaz jelzfnykeretet keresve. (A hozzfrsi pontok kzl nhny lehet, hogy ugyanazt a csatornt hasznlja - hiszen egy dzsungelben vagyunk!) Miutn megismertk a krnykbeli hozzfrsi pontokat, kivlaszthatunk (vagy vezetk nlkli llomsunk ki vlaszthat) kzlk egyet, amelyhez kapcsoldni fogunk. Az IEEE 802.11 szabvny nem tartalmaz semmilyen algoritmust a hozzfrsi pont kivlasztsra - ez az algoritmus az IEEE 802.11-es firmware- illetve szoftvertervezkre maradt. A hoszt ltalban azt a hozzfrsi pontot vlasztja, amelyiknek a legnagyobb a jelerssge. Br a nagy jelerssg alapjban vve j (lsd pldul 6.3. bra), nem ez az egyetlen tnyez, amely meghatrozza, hogy a hoszt milyen teljestmnnyel kpes venni. Elfordulhat ugyanis, hogy br a hozzfrsi pont jelerssge nagy, ms hosztok tlterhelik (amelyeknek osztoznia kell a hozzfrsi pont vezetk nlkli svszlessgn), mg egy msik, egyltaln nem leterhelt hozzfrsi pontot azrt nem vlasztunk ki, mert ki csi a jelerssge. A hozzfrsi pontok kivlasztsra tbb megolds szletett (Vasudevan 2005; Nicholson 2006; Sudaresan 2006). [Bardwell 2007) rdekesen s kzrtheten r a jelerssg mrsrl. A csatornk psztzst s jelzfnyzenetek keresst passzv psztzsinak (passive scanning) nevezzk (lsd 6.9. (a) bra). A vezetk nlkli hoszt ezen kvl aktv psztzsi (active scanning) is vgezhet, amely sorn egy vizsglati keretet (probe frame) kld ki. Ezt a keretet valamennyi, a vezetk nlkli hoszt hatsugarn belli hozzfrsi pont venni fogja, ahogy azt a 6.9. (b) bra is mutatja. A hozzfrsi pontok a keretre egy vizsg lati vlaszkerettel reaglnak. A vezetk nlkli hoszt a vlaszol hozzfrsi pontok kzl ezutn kivlaszthatja azt, amelyikhez kapcsoldni szeretne. A hozzfrsi pont kivlasztsa utn a vezetk nlkli hoszt egy trsulsi krszenetet kld a hozzfrsi pontnak, amelyre az egy trsulsi vlaszzenettel felel. Vegyk szre,
a) Passzv psztzs
1. 2. 3. Az AP-k jelzfnykereteket kldenek Hl a vlasztott AP-nek trsulsi krszenetet kld A vlasztott AP H 1-nek trsulsi vlaszzenetet kld b)
Aktv psztzs
Hl vizsglati krszenetet kld krzvnyknt zenetszrssal Az AP-k vizsglati vlaszzenetet kldenek Hl a vlasztott AP-nek trsulsi krszenetet kld A vlasztott AP H1 -nek trsulsi vlaszzenetet kld
1. 2. 3. 4.
6.2. VEZETK
240
hogy erre a msodik krs-vlasz zenetprra is szksg van, hiszen a kezdeti vizsglati keretre vlaszol hozzfrsi pont nem tudhatja, hogy (a felteheten sok hozzfrsi pont kzl) a hoszt melyiket fogja vlasztani, hasonlan ahhoz, amikor a DHCP-kliensek tbb DHCP-szerver kzl vlaszthatnak (lsd 4.21. bra). Miutn trsult az AP-vel, a hoszt kapcsoldni kvn a hozzfrsi pontot tartalmaz alhlzathoz is (abban az rtelemben, ahogy azt a 4.4.2. alfejezetben az IPcmzssel kapcsolatban megismertk). A hoszt ezrt a hozzfrsi ponton keresztl egy DHCP felfedez zenetet fog kldeni (lsd 4.21. bra) az alhlzatra. Miutn a hoszt megszerezte az IP-cmt, a klvilg szmra gy ltszik, mint egy jabb, IP-cmmel rendelkez hoszt az alhlzaton. A hozzfrsi ponttal val trsuls rdekben a vezetk nlkli llomsnak bizonyos esetekben hitelestenie kell magt a hozzfrsi pont fel. Az IEEE 802.11-es vezetk nlkli helyi hlzatok a hitelestsre s hozzfrsre tbb megoldst is knlnak. Egyik lehetsges, sok cg ltal alkalmazott megolds az, amikor a vezetk nlkli hlzathoz val hozzfrst az lloms MAC-cime biztostja. Egy msik megolds, amelyet szmos internet kvzban hasznlnak, a felhasznlk nvvel s jelszval trtn azonostsa. A hozzfrsi pont ltalban mindkt esetben egy hitelestsi szerverrel kommunikl, s a vezetk nlkli lloms s a hitelestsi szerver kztt tovbbt informcit egy RA- DlUS-hoz [RFC' 2865] vagy DIAMETER-hez [RFC 3588] hasonl protokoll segtsgvel. A hitelestsi szervert azrt rdemes elvlasztani a hozzfrsi pontoktl, mert gy egy hitelestsi szerver tbb hozzfrsi pontot is vezrelhet, egyetlen szerveren kzpontostva a hitelests s hozzfrs (sokszor rzkeny) dntseit, s ezzel cskkentve a hozzfrsi pontok kltsgeit s mkdsk bonyolultsgt. A 8.8. alfejezetben ltni fogjuk, hogy az j, az IEEE 802.11 protokoll biztonsgi krdseit definil IEEE 802.1 li protokoll is pontosan ezt az utat kveti.
6.2. VEZETS
241
Elszr is, tkzsrzkels helyett az IEEE 802.11 tkzselkerlsi mdszereket hasznl. Msodszor, a vezetk nlkli csatornk viszonylag magas bithiba-valsznsge miatt az IEEE 802.11 (az Ethernettel ellenttben) adatkapcsolati szint nyugtzst s jraadst (ARQ) alkalmaz. Az tkzselkerlsi s adatkapcsolati szint nyugtzsi technikkat a kvetkezkben trgyaljuk. Az 5.3., illetve 5.5. alfejezetekbl emlkezhetnk, hogy egy Ethernetes lloms hallgatja a csatornt ads kzben, s amennyiben msik lloms forgalmazst rzkeli, felfggeszti adst, s egy rvid, vletlenszeren vlasztott idtartam letelte utn jra prblkozik az adssal. Az IEEE 802.3-as Ethernet-szabvnnyal ellenttben az IEEE 802.11 MAC protokoll nem hasznl tkzsrzkelst. Ennek kt f oka van: Az tkzsrzkelshez szksges, hogy az llomsok egyszerre tudjanak kldeni (sajt jeleiket kldeni) s fogadni (rzkelni a tbbi lloms adst forgalmazs kzben). Mivel az IEEE802.il csatol ltal vett jel erssge ltalban rendkvl gyenge a kldtt jel erssghez kpest, az tkzsrzkel hardver drga lenne. A lnyegesebb problma azonban az, hogy mg ha a csatolk tudnnak egyszerre adni s venni (s gy felfggeszteni az adst foglalt csatorna esetn), egy csatol mg mindig nem volna kpes azsszes tkzs rzkelsre a 6.2. alfejezetben trgyalt rejtett lloms problmja s a jelgyengls miatt. Mivel az IEEE 802.11-es vezetk nlkli helyi hlzatok nem hasznlnak tkzsrzkelst, egy keretadsba kezd csatorna az egsz kerett tovbbtja, azaz ha az lloms keretadsba kezd, nincs visszat. rezhetjk, hogy egsz keretek tovbbtsa (klnskppen nagyobb mret keretek esetn) gyakori tkzsek mellett nagymrtkben cskkentheti egy tbbszrs hozzfrsi protokoll teljestmnyt. Az tkzsek valsznsgnek csk kentse rdekben ezrt az IEEE 802.11 szabvny szmos tkzselkerlsi mdszert hasznl. Ezekkel hamarosan megismerkednk. tkzselkerlsi mdszerekkel val ismerkedsnk eltt mg meg kell vizsglnunk az IEEE 802.11 szabvny adatkapcsolati szint nyugtzsi (link-layer acknowledgement) mdszert. A 6.2. alfejezetben emltettk, hogy amikor egy vezetk nlkli hlzathoz csatlakoz lloms egy keretet tovbbt, ez a keret nem felttlenl r el srtetlenl a cmzett llomshoz. Mivel az ilyen esetek elfordulsnak eslye nem elhanyagolhat, az IEEE 802.11 MAC protokollja adatkapcsolati szint nyugtkat hasznl. Ahogy azt a 6.10. brn is lthatjuk, mikor a cllloms ltal fogadott keret sikeresen tmegy a CRC-ellenrzsen, ki kell vrnia az n. rvid keretkzi id (Short Inter-frame Spacing, SIFS) leteltt, majd visszakldenie egy nyugtt. Amennyiben a kld lloms nem kap nyugtt egy bizonyos idn bell, azt felttelezi, hogy hiba trtnt az tvitel sorn, a CSMA/CA protokoll segtsgvel hozzfr a csatornhoz, s jraadja a keretei. Amennyiben tbb jraads utn sem kap nyugtt, a kld lloms feladja, s nem prblkozik tbbet a keret tovbbtsval. Most, hogy mr rtjk az IEEE 802.11 adatkapcsolati szint nyugtzsnak mkdst, belekezdhetnk a CSMA/CA protokoll tanulmnyozsba. Tegyk fel,
242
6. VEZETK ^LKLI
S MOBILHLZATOK
hogy valamely lloms (teht egy vezetk nlkli lloms vagy egy hozzfrsi pont) egy keretet kvn tovbbtani.
Forrs Cl
:
OV^ 13
:TS,FS
p*"~
6.10. bra. Az IEEE 802.11 adatkapcsolati szint nyugtkat hasznl 3. Amikor a szmll rtke 0-ra cskken (figyeljk meg, hogy ez csak akkor kvetkezhet be, amikor a csatornt szabadnak rzkeljk), az lloms a teljes keretet tovbbtja, majd nyugtra vr. 4. Amennyiben megrkezett a nyugta, a kld lloms biztos lehet benne, hogy kerete psgben megrkezett a vevhz. Ha a kldnek mg van tovbbtand kerete, a 2. lpsre ugorva kezdi meg a CSMA/CA protokoll vgrehajtst. Ha nem rkezik nyugta, a kld csompont visszatr a 2. lps visszalpsi fzishoz egy nagyobb intervallumbl vlasztott vletlen rtkkel. Emlkezhetnk, hogy az Ethernet esetben hasznlt CSMA/CD tbbszrs hozzfrsi protokollnl (5.5.2. alfejczet) egy lloms rgtn megkezdi adst, amint a csatornt szabadnak rzkeli. Ezzel szemben a CSMA/CA protokollnl az lloms addig nem kezd bele a kerettovbbtsba, amg a szmll le nem jr, mg akkor sem, ha kzben a csatornt szabadnak rzkeli. Vajon mirt tr el a kt protokoll ezen a ponton ennyire? A krds megvlaszolshoz kpzeljnk el egy olyan helyzetet, ahol kt llomsnak van tviend adata, de egyik sem kezdi meg adst, mivel szlelik, hogy egy harmadik lloms mr foglalja a csatornt. Az Ethernet CSMA/CD protokollja szerint mindkt csatorna azonnal megkezden adst, amint a
6.2. VEZETS
243
csatornt szabadnak rzkeli. Ez tkzshez vezetne, ami nem nagy problma a CSMA/CD esetn, mivel a kt lloms felfggeszten adst, s nem tovbbtan flslegesen a keretek megmarad rszeit. Az IEEE 802.11 esetben
244
6. VEZETK
NLKLI S MOBILHLZATOK
azonban ms a helyzet. Mivel ugyanis az IEEE 802.11 nem rzkel tkzst s nem szakt meg kerettovbbtst, az tkz keretek teljes egszkben tovbbtsra kerlnek. Az IEEE 802.11 clja teht az, hogy ahol csak lehet, elkerlje az tkzseket. IEEE 802.11 esetn ha a kt csompont foglaltnak rzkeli a csatornt, mindketten a vletlen ideig tart visszalps fzisba kerlnek, amelyhez remlhetleg klnbz rtkeket vlasztanak. Amennyiben a visszalpsi rtkek valban klnbzek, a csatorna szabadd vlsa utn az egyik lloms hamarabb kezdi el kerete tovbbtst, mint a msik, s (amennyiben a kt lloms ltja egymst), a vesztes lloms hallja a gyztes lloms jelt, meglltja a szmlljt, s addig nem forgalmaz, amg a gyztes lloms foglalja a csatornt. Ily mdon sikerlt elkerlnnk egy kltsges tkzst, de termszetesen mg mindig trtnhetnek tkzsek az IEEE 802.11 hlzatban: Az llomsok pldul lthatatlanok lehetnek egyms szmra, vagy vlaszthatnak klnbz visszalpsi rtkeket, amelyek elg kzeliek ahhoz, hogy a gyztes lloms jelei ne rjk el elg hamar a vesztes llomst. Emlkezznk vissza, hogy ezzel a problmval mr foglalkoztunk korbban, a vletlen hozzfrsi protokollok trgyalsakor az 5.14. brn.
'o
Hl
AP
H2
245
Az ilyen helyzetek elkerlsre az IEEE 802.11 protokoll lehetv teszi az llomsok szmra a rvid adskrs (Request to Send, RTS), illetve adsra ksz (Clear to Send, CTS) vezrlkeretek hasznlatt annak rdekben, hogy a csatornt adsra lefoglaljk. Mikor egy kld egy adatkeretet (DATA) szeretne tovbbtani, elszr egy RTS-keretet kld a hozzfrsi pontnak, amelyben jelzi a DATA- s az ACK-keretek tovbbtshoz szksges teljes idt. Amikor a hozzfrsi pont RTS-keretet vesz, egy krzvnyknt kldtt CTS-kerettel vlaszol. Ez a CTS-keret ketts clt szolgl: Egyrszt engedlyezi az adnak a kerettovbbtst, msrszt a tbbi llomst arra utastja, hogy a lefoglalt idszakban tartzkodjanak a kerettovbbtstl. Ennek megfelelen a 6.12. bra Hl llomsa az adatkeret tovbbtsa eltt, elsknt k- rzvnyknt kikild egy RTS-keretet, amelyet a hatsugarban lv llomsok, kztk a hozzfrsi pont is szlel. A hozzfrsi pont ezek utn egy CTS-kerettel vlaszol, amelyet valamennyi, az hatsugarban tallhat lloms vesz, belertve Hl-et s H2-t is. H2 a CTS-keret vtele utn tartzkodik a kerettovbbtstl, a CTS-keretben megadott idtartam lejrtig. A 6.12. brn lthatjuk az RTS-, CTS-, ADAT- s ACK-kereteket. Az RTS- s CTS-keretek hasznlata ktflekppen nvelheti a teljestmnyt: A lthatatlan llomsok ltal okozott problma mrskldik, hiszen a ADATkeret tovbbtsa kizrlag a csatorna lefoglalsa utn kezddhet meg. Mivel az RTS- s CTS-keretek rvidek, tkzsk csak a keretek ltal ignyelt rvid ideig fog tartani. Az RTS- s CTS-keretek sikeres tovbbtsa utn a ADAT- s ACK- kereteket mr tkzs nlkl lehet tovbbtani. Ajnljuk, hogy az olvas nzze meg a knyvhz tartoz weboldalon tallhat IEEE 802.11 appletet. Ez az interaktv applet a CSMA/CA protokoll mkdst szemllteti, belertve az RTS- s CTS-keretek kldst is. Habr az RTS- s CTS-keretek hasznlata cskkenti a keret t kzsek szmt, ksleltetst okoz, s hasznlja a csatorna erforrsait. Emiatt az RTS- s CTSkereteket csak olyan esetben hasznljk, amikor hossz adatkeretet kell tvinni (ha egyltaln hasznljk). A gyakorlatban minden vezetk nlkli lloms bellthat egy olyan RTS-kszbrtket, hogy az RTS/CTS-szekvencia csak akkor jusson szerephez, amikor az adatkeret hosszabb a kszbrtknl. Sokszor a kszbrtk meghaladja a maximlis keretmretet, gy az RTS/CTS-szekvencia elmarad valamennyi elkldtt adatkeret ell.
246
6. VEZETK ^LKLI
S MOBILHLZATOK
sszekttets felett. Nhny olcsn kaphat IEEE 802.11 hardvereszkzzel, irnytott antennkkal s megnvelt adteljestmnnyel gy tbb tz kilomteres vezetk nlkli ktpontos sszekttetseket hozhatunk ltre kis kltsggel. [Raman 2007] egy az indiai Gangesz-sksgon mkd sok csompontos hlzatrl r, amely ilyen vezetk nlkli ktpontos sszekttetseket tartalmaz.
247
<< >
ksleltetse
248
6. VF.ZETK
NLKLI S MOBILHLZATOK
249
4
CRC
1. Idtartam mez
'
U5 AI
111 1 I1 Forrs Tbb jrapr- Tpenergia- Tbb AP darab blkozs gazdlkods adat WEP Lefo9lalt
1 ,,,,
Adatmez s CRC-mez
A keret szvben tallhat az adatmez (payload), amely tipikusan egy IP- vagy egy ARP-csomagot hordoz. Habr a mez maximlis megengedett hossza 2312 bjt, ltalban 1500 bjtnl rvidebb, amely elegend egy IP- vagy egy ARPcsomag szmra. Az Ethernet-keretekhez hasonlan az IEEE 802.11 keret is 32 bites ciklikus redundancia-ellenrzst (CRC) hasznl annak rdekben, hogy a vev rzkelhesse, ha a vett keret hibs. Ahogy korbban lttuk, a bithibk a vezetk nlkli helyi hlzatokon jval gyakoribbak, mint a vezetkeseken, gy a CRC-meznck itt tbb hasznt vesszk.
Cmmezk
Az Ethernet s az IEEE 802.11 protokoll keretszerkezete kztt taln a legszembetnbb eltrs az, hogy az utbbi ngy cmmezvel rendelkezik, amelyek kzl mindegyik egy 6 bjtos MAC-cmet tartalmazhat. De vajon mi szksg van ngy cmmezre? Nem elg a forrs s a cl MAC-cme, ahogy az Ethernet esetben is? Ltni fogjuk, hogy a hrom cm mezre klnbz hlzatok sszekapcsolsakor lehet szksg - klnskppen akkor, amikor egy hlzati rtegbeli adatcsomagot egy vezetk nlkli llomstl valamely hoz zfrsi ponton keresztl egy tvlaszt valamely interfszhez mozgatunk. A negyedik cmmez akkor jut szerephez, amikor a hozzfrsi pontok ad hoc mdban tovbbtanak egymsnak kereteket. Mivel mi csak az infrastruktrval rendelkez hlzatokkal foglalkozunk, nzzk meg, mire j az els hrom cmmez. F.zeket a cmmezket a szabvny a kvetkezkppen definilja:
250
6. VEZETK ^LKLI
S MOBILHLZATOK
Hogy megrtsk a 3. cmmez szerept, emlkezznk vissza, hogy a BSS (amely a hozzfrsi pontot s a vezetk nlkli llomsokat is tartalmazza) egy alhlzat rsze, s ez az alhlzat egy tvlaszt valamely interfszn keresztl csatlakozik tovbbi alhlzatokhoz. A 3. cmmez az tvlaszt ezen interfsznek MAC-cmt tartal mazza. Hogy mg jobban tlssuk, mire j a 3. cmmez, vegynk egy tbb hlzat egyttmkdsrl szl pldt, amelyet a 6.14. brn lthatunk. Az brn kt hozzfrsi pont szerepel, amelyek kln-kln tbb vezetk nlkli llomsrt felelnek. Mindkt hozzfrsi pont kzvetlenl kapcsoldik egy tvlaszthoz, amely sszekttetsben ll az internettel. Nem szabad elfelejtennk, hogy a hozzfrsi pontok adatkapcsolati szint eszkzk, s gy nem beszlik az IP nyelvt, s nem rtik az IP-cmeket sem. Kpzeljk el most azt az esetet, amikor az R tvlaszt-interfszrl a Hl llomshoz szeretnnk egy csomagot tovbbtani. Az tvlaszt ekkor nem tud arrl, hogy kzte s Hl kztt van egy hozz frsi pont - az tvlaszt szemszgbl a Hl egyszeren csak egy hoszt az tvlaszthoz kapcsold egyik alhlzaton. Az tvlaszt ismeri Hl hoszt IP-cmt (az adatcsomag clcmmezjbl), gy az A RP protokoll segtsgvel kiderti Hl MAC-cmt is, csakgy, mint egy egyszer Ktherne- tes helyi hlzatnl. Miutn mr tudja a M AC-cmet, az R tvlaszt-interfsz becsomagolja az adatcsomagot egy Ethernet-keretbe. Az Ethernet-keret forrscmmezje R MAC-cmt tartalmazza, a clcmmez pedig Hl MAC-cmt. Amikor a hozzfrsi pont veszi a keretet, ezt a 802.3 Ethernet-keretet IEEE 802.11 kerett alaktja, mg mieltt kiklden a vezetk nlkli csatornra. Az 1. s 2. cmmezbe rendre berja H1 s a sajt MAC-cmt, ahogy azt fent megbeszltk. A 3. cm-
2. BSS
az
IEEE
802.11
protokollban:
251
252
6. VEZETK ^LKLI
S MOBILHLZATOK
mezben a hozzfrsi pont R MAC-cmt helyezi el. Ily mdon III (a 3. cmmezbl) megllapthatja a csomagot az alhlzatra kikld tvlasztinterfsz MAC- cmt. Gondoljunk most bele, hogy mi trtnik, amikor tovbbtand adatcsomaggal szeretne vlaszolni. Hl egy Hl-tl Rl-nek
Hl ltrehoz egy IEEE 802.11 keretet, amely 1. s 2. cmmezjben rendre elhelyezi a hozzfrsi pont s a sajt (Hl) MAC-cmt, a korbban trgyaltaknak megfelelen. A 3. cmmezbe R MAC-cme kerl. Amikor a hozzfrsi pont megkapja az IEEE 802.11 keretet, azt Ethernetkerett alaktja. Az Ethernet-keret forrscm mezje Hl MAC-cmt, clcmmezje pedig R MAC-cmt fogja tartalmazni. gy teht a hozzfrsi pont a 3. cmmez alapjn hatrozza meg az Ethernet-keret clcmmezjbe rand rtket. sszefoglalva, teht a 3. cmmez dnt szerepet jtszik egy BSS s egy vezetkes hlzat kztti egyttmkdsben.
A korbbiakbl emlkezhetnk arra, hogyha egy IEEE 802.11 protokoll szerint mkd lloms p keretet vesz, azt egy nyugta segtsgvel visszaigazolja. Mivel ezek a nyugtk is elveszhetnek, a kld lloms adott esetben tbb pldnyt is kldhet egy keretbl. Ahogy az RDT 2.1 protokollnl mr lttuk (3.4.1. alfejezet), hogy a kld sorszmok segtsgvel eldntheti, hogy egy jabb keretet kell kikldenie, vagy egy korbban mr tovbbtottl jrakldenie. Az IEEE 802.11 keret sorszmmezje pontosan ugyanazt a clt szolglja, mint a 3. fejezetben, csak jelen esetben adatkapcsolati s nem hlzati szinten. Ahogy korbban mr megbeszltk, az IEEE 802.11 protokollban az ad lloms lefoglalhatja a csatornt az adatkeret s a nyugta tvitelhez szksges idre. Ezt az idtarlam- rtket szlltja az idtartammez (mind RTS-, mind CTS-csomagok esetn). Ahogy a 6.13. brn is lthatjuk, a vezrlmez tbb almezbl ll. Itt csak a fontosabb almezkrl szlunk pr szt - rszletesebb lersrt az IEEE 802.11 specifikciinak olvasst ajnljuk a [Ileld 2001; Crow 1997; IEEE 802.11 1999] munkkban. A tpus- s altpus- mezk alapjn tudhatjuk meg, hogy a keret az RTS, a CTS, az ACK-keretek kzl melyiket szlltja vagy adatkeretet hordoz. A cls a/orrsalmezk a klnbz cmmezk szerept definiljk. (A cmmezk szerepe attl fgg, hogy ad hoc vagy infrastruktra zemmd ban mkdik-e a hlzat, illetve infrastruktra mdban attl, hogy egy vezetek nlkli lloms vagy egy hozzfrsi pont kldi-e a keretet.) Vgl a WEP-mez azt jelzi, hogy hasznlunk-e titkostst, vagy nem. (A WEP-rl a 8. fejezetben runk rszletesebben.)
253
A vezetk nlkli helyi hlzatok hattvolsgnak nvelse rdekben az egyetemek s cgek sokszor tbb BSS-t is elhelyeznek egy IP-alhlzaton bellre. Ezzel magtl rtetden felmerl a BSS-ek kztti mobilits krdse - vajon hogy kpesek a vezetk nlkli llomsok kt BSS kztt gy mozogni, hogy kzben nem szakadnak meg fennll TCP-sszekttetseik? Ahogy ebben az alfejezetben ltni fogjuk, elg knnyen kezelhet a helyzet, ha a BSS-ek ugyanazon alhlzathoz tartoznak. Amikor az llomsok klnbz alhlzatok kztt mozognak, kifinomultabb mobilitsi protokollokra van szksgnk, amelyekrl a 6.5. s 6.6. alfejezetben lesz sz. Nzznk most egy pldt ugyanazon alhlzathoz tartoz BSS-ek kztti mobilitsra. A 6.15. brn egy kt sszekttt BSS-bl ll hlzatot lthatunk, ahol is Hl hoszt BSSl-bl BSS2 fel tart. Mivel a kt BSS-t sszekt eszkz nem tvlaszt, a kt BSS valamennyi llomsa ugyanazon alhlzathoz tartozik, idertve a hozzfrsi pontokat is. gy amikor Hl tlp BSSI-bl BSS2-be, megtarthatja IPcmt, s valamennyi l TCP-sszekttetse is srtetlen marad. Ha a BSS-cket tvlasztval ktnnk ssze, Hl-nek j IP-cmet kellene kr nie attl az alhlzattl, amelybe belp. A cmvltoztats miatt megszakadnnak (s vgl lezrulnnak) Hl TCP-sszekttetsei. A 6.6. alfejezetben ltni fogjuk, hogyan orvosolhat ez a problma hlzati szint mobilitsi protokollokkal, mint pldul a mobil IP-vel. De mi is trtnik pontosan, amikor Hl tlp BSSl-bl BSS2-be? Ahogy Hl az 1. hozzfrsi ponttl (API) tvolodik, rzkeli API jelnek gyenglst, s elkezd ersebb jelek utn kutatni. H1 megkapja a 2. hozzfrsi pont (AP2) jelzfnykereteteit (amelyek SSID-je egyetemi vagy cges krnyezetben megegyezhet API SSID-jvel). Hl ezutn elszakad APl-tl, s AP2-vel trsul, IPcmnek s fennll TCP-sszekttetseinek megtartsa mellett. A hozzfrsi pont s a hoszt szmra a problma ezzel meg is olddott. De mi a helyzet a 6.15. bra kapcsoljval? Honnan fogja tudni, hogy a hoszt az egyik hozzfrsi pont felgyelete all a msik hozzfrsi ponthoz kerlt? Az 5. fejezetbl emlkezhetnk arra, hogy a kapcsolk nllan tanulnak, s sajt maguk ptik fel tovbbttblikat. Az nll tanuls ezen kpessge alapjn a kapcsol szpen kezeli az alkalmi helyzetvltoztatsokat (pldul amikor egy dolgozt az egyik osztlyrl thelyeznek egy msik osztlyra). Igen m, de a kapcsolkat nem arra terveztk, hogy olyan mobil felhasznlkat kezeljenek, akik fenn szeretnk tartani TCP-sszekttetseiket BSS-ek kzti mozgsuk kzben is. Hogy megrtsk a problma slyt, gondoljunk bele, hogy mieltt a hoszt az egyik BSS-bi a msikba lpett volna, a kapcsol tovbbttblja egy olyan bejegyzst tartalmazott, amely Hl MAC-cmt a kapcsol azon interfszvel prostja, amelyen keresztl Hl elrhet. Ha Hl eredetileg a BSSl-ben tartzkodik, akkor a neki cmzett adatcsomagokat a kapcsol APl-en keresztl fogja kikldeni. Amint azonban Hl tlp BSS2-be, a neki sznt csomagokat mr AP2-n keresztl kellene kldeni. Hgy (rendkvl egyszer) megoldst jelenthet, ha AP2 egy Ethernet-keretet kld a kapcsolnak krzvny cmmel, mint clcmmel s Hl
254
Kapcsol
6. VEZETK ^LKLI
S MOBILHLZATOK
cmvel mint forrscmmel. Mikor a kapcsol veszi a keretet, frissti tovbbttbljt, aminek eredmnyekppen ezentl AP2-n keresztl prblkozik majd Hl elrsvel. Az IEFF. 802.1 lf szabvnnyal foglalkoz munkacsoport egy olyan hozzfrsi pontok kztti protokollt fejleszt, amely ilyen s ehhez hasonl helyzeteket hivatott kezelni.
255
Tpenergia-gazdlkods
szinttel magasabb lesz. A fent ismertetett mdszer mgtti elmlet hason lt a TCPben hasznlatos tapogatz torldskezel eljrshoz - j felttelek mel lett (amelyet az ACK-zenetek jeleznek), addig nveljk az adsi sebessget, amg valami rossz nem trtnik (nem jnnek az ACK-zenetek). Amikor valami rossz trtnik, az adsi sebessget cskkentjk. Az IEF.E 802.11 protokoll sebessgadaptcija s a TCP protokoll torldskezelse teht arra a gyerekre hasonlt, aki egyre tbbet kvetel a szleitl (pldul tbb dessget vagy ksbb, tizenvesen tbb zsebpnzt) egszen addig, amg a szlk azt nem mondjk Elg!, s ekkor a gyerek visszafogja magt (persze csak azrt, hogy ksbb, remlhetleg rendezdtt felttelek mellett jra prblkozzon!). A sebessgadaptci fejlesztsre tbb mdszert is kidolgoztak (lsd (Holland 2001; La- cagc 2004]).
Mobil eszkzk esetn a tpenergia rendkvl rtkes erforrs, ezrt az IEEE 802.11 szabvny olyan energiagazdlkodsi eljrsokat is tartalmaz, amelyek segtsgvel az IEEE 802.11- es csompontok minimalizlhatjk azt az idt, amg az rzkelsi, tovbbtsi, vteli s egyb ramkreiket bekapcsolva kell tartaniuk. Az IEEE 802.11 energiagazdlkodsa a kvetkezkppen mkdik. A csompontok alv s ber zemmdok kztt tudnak vltogatni (egy eladteremben l lmos hallgathoz hasonlan). Egy csompont az IEEE 802.11 fejlc tpenergiagazdlkods bitjnek 1-be lltsval jelezheti a hozzfrsi pont fel, hogy alv llapotba megy. Ezutn a csompont bellt egy idztt, ami ppen azeltt breszti fel, hogy a hozzfrsi pont jelzfny keretet kldene (emlkezznk vissza, hogy egy hozzfrsi pont ltalban 100 ms idkznknt kld jelzfnykeretet). Mivel a hozzfrsi pont a belltott energiagazdlkodsi bitbl tudja, hogy a csompont alv mdba megy, tudja, hogy nem kldhet kereteket a csompontnak, s gy valamennyi, az alv csompontnak kldend zenetet ksbbi tovbbts cljbl puffereli. A csompont pp a jelzfnykeret kldse eltt bred fel, s azonnal aktv llapotba kerl (ellenttben az lmatag hallgatval, ez az breds mindssze 250 mikroszekundumba kerl [Kamerman 1997]!). A hozzfrsi pont ltal kldtt jelzfnykeret tartalmaz egy listt azokrl a csompontokrl, amelyek szmra a hozzfrsi pontban tartogat pufferelt zeneteket. Ha csompontunk szmra nincs puierelt zenet, mris visszamehet alv llapotba. Msklnben a csompont egy hozzfrsi pontnak kldtt lekrdez zenet segtsgvel kifejezetten krheti a szmra eltrolt keretek kldst. A jelzfnykeretek kztt 100 ms telik el, a felbredsi id 250 ps, s a jelzfnykeret vtelhez s annak ellenrzshez, hogy nincs a csompontnak cmzett vrakoz keret, hasonlan kevs id szksges, gy egy olyan csompont, amelynek nincs kldend s fogadand kerete, az id 99 szzalkban aludhat, amely jelents tpenergiamegtakartst eredmnyez.
256
6. VEZETK ^LKLI
S MOBILHLZATOK
Kt msik IEEE 802-es protokollt is kidolgoztak ennl kisebb, illetve nagyobb tvolsgra lv eszkzk kommunikcijra. Kisebb tvolsgok thidalsra alkalmas a Bluetooth-szabvny (amelyet az IEEE 802.15.1 szabvny [IEEE 802.15 2007) definil), nagyobb tvolsgok feletti kommunikcira pedig a WiM AXszabvnyt fejlesztettk ki (ezt az IEEE 802.16 szab vny [IEEE 802.ld 2004; IEEE 802.16e 2005] rja le).
Bluetooth
Egy IEEE 802.15.1 hlzat kis hattvolsgon bell mkdik, kevs tpenergii hasznl s olcs. A Bluetooth lnyegben egy kis fogyaszts, kis hattvolsg s kis sebessg kbeleket helyettest megolds, amelyet notebookok, klnbz perifrik, mobiltelefonok s PDA-k sszekapcsolsra fejlesztettek ki, mg az IEEE 802.11 nagyobb fogyaszts, kzepes hattvolsg s nagyobb sebessg hozzfrsi megolds. Emiatt a 802.15.1 hlzatokat sokszor vezetk nlkli szemlyi hlzatoknak hvjk (wireless personal area network, WPAN). A 802.15.1 adatkapcsolati s fizikai rtegeinek a korbbi, szemlyi h-
0
S
. .'
{
Mesiercsompont
Szolgacsompont
I ni ki v es/k?
6.16. bra. Egy Bluetooth-os pikohlzat lzatokra kifejleszteti Bluetooth-specifikci szolglt alapul [Held 2001, Bisdikian 2001). Az IEEE 802.15.1 hlzatok a szabadon hasznlhat 2,4 GHz-es frekvenciatartomnyban mkdnek, s TDM-et hasznlnak, 625 mikroszekundumos idrsekkel. Egy idrsben a kld a 79 csatorna kzl valamelyiken tovbbt, amely csatorna kivlasztsa idrs rl idrsre vltozik ismert, pszeudo-vletlenszer mdon. Ez a csatornavltsi mdszer, amely frekvenciaugrsos szrt spektrumknt ismert (frequency-hopping spread spectrum, FHSS) az idben elrehalad ads jeleit a frekvenciatartomnyban sztterti. Az IEF.E 802.15.1 legfeljebb 4 Mb/s adattviteli sebessgre kpes. Az IEEE 802.15.1 hlzatok ad hoc hlzatok. Nincs szksg semmilyen hlzati infrastruktrra (pldul hozzfrsi pontra) ahhoz, hogy a 802.15.1 eszkzk sszekapcsoldhassanak. Ebbl az kvetkezik, hogy a 802.15.1 eszkzknek nszervez mdon kell sszekapcsoldniuk. Az eszkzk els lpsben egy legfeljebb nyolc eszkzbl ll pikohlzatba (piconet) szervezdnek, ahogy azt a 6.16. brn is lthatjuk. Az eszkzk kzl az egyik lesz a mestercsompont, a tbbi szolgacsompont lesz. A mestercsompont valban uralkodik a pikohlzat felett - az 6 rja hatrozza meg a pikohlzat idejt, tovbbthat adatokat minden pratlan sorszm idrsben, egy szolgacsompont pedig csak azutn forgalmazhat, ha a mestercsomponttal azt az elz idrsben megbeszlte. Ezenfell a szolgacsompontok kizrlag a mesternek kldhetnek adatokat. A szolgacsompontokon kvl a pikohlzatban mg jelen lehet legfeljebb 255 inaktv eszkz is. Ezek az eszkzk addig nem kommunikl hatnak, amg a mestercsompont inaktvrl aktvra nem vltoztatta llapotukat. Az rdekld olvas a [Held 2001, Bisdikian 2001] anyagokban, illetve a hivatalos IEEE weboldalon [IEEE 802.15 2007] olvashat tbbet a Bluetooth-rl.
WiMAX
A WiMAX (World lnteroperability fr Microwave Access - vilgszint egyttmkds a mikrohullm hozzfrsrt) egy IEEE 802.16 szabvnyokbl ll szabvnycsald, amelynek clja, hogy sok felhasznl szmra, nagy terleten tegye lehetv a vezetk nlkli hozzfrst olyan adattviteli sebessgekkel, amelyek a kbel modemes, illetve ADSL-es
hlzatokkal is felveszik a versenyt. Az IEEE 802.16d szabvnyt gy terveztk, hogy 110-130 km/h sebessggel (teht autplyn) halad mobil felhasznlk szmra is biztostani tudja a hozzfrst. Eddigiektl eltr keretszerkezett kisebb, korltozott erforrsokkal rendelkez eszkzkre, pldul PDA-kra, telefonokra s laptopokra szabtk.
i *
*o c ni MAD Ml MAD 1 - DL 2 DL ' nj DL-MAr UL-MAP .... .... v JC lket lket ' lket
n DL
....
55
55 2
Az IEEE 802.16 architektra alapja a kzponti bzislloms, amely nagyszm felhasznl (ms nven elfizeti lloms) kiszolglsra kpes. Ebben az rtelemben a WiMAX egyesti a YViFi-t s a cells felpts mobiltelefon-
hlzatokat. A bzislloms felels az adatkapcsolati csomagok tovbbtsnak szablyozsrt, mind letltsi (a bzisllomstl az elfizeti llomsok fel mutat), mind feltltsi (az elfizeti llomsoktl a bzis- lloms fel mutat) irnyban, a 6.17. brn brzolt TDM-keretszerkezetnek megfelelen. Ebben a szakaszban a csomag elnevezst fogjuk hasznlni a keret helyett (amelyet az IEEE 802.11-es s adatkapcsolati kereteknl hasznltunk), hogy klnbsget tegynk az adatkapcsolati szint adategysgek s a 6.17. brn lthat TDMkeretszerkezet kztt. A WiMAX teht idosztsos multiplexelst (TDM) hasznl, habr a keretidk vltozhatnak, ahogy azt lentebb trgyaljuk. Meg kell jegyeznnk, hogy a WiMAX FDM-mdban is kpes mkdni, m ezzel itt nem foglalkozunk. A keret kezdetn a bzislloms MAP-zeneteket (kzegelrsi protokolliizeneteket) kld a letltsi csatornn, amelybl az elfizeti llomsok tjkozdhatnak a keret lke- teinek (brsztjeinek) tovbbtshoz hasznlt fizikai rtegbeli jellemzkrl (a modulcis eljrsrl, a kdolsrl s a hibajavts paramtereirl). Egy kereten bell tbb lket is elfordulhat, egy lketen bell pedig tbb, valamely elfizeti llomsnak cmzett csomagot is tovbbthatunk. A bzislloms tovbbtja a lket valamennyi csomagjt, ugyanazon fizikai rtegbeli jellemzket hasznlva. Ezek a fizikai jellemzk azonban lketrl lketre vltozhatnak, amely lehetv teszi, hogy a bzislloms olyan fizikai szint tviteli belltsokat hasznljon, amelyek a vev elfizeti csompont szmra a legknyelmesebbek. A bzislloms a csatorna egyes vevk fel becslt llapota alapjn sszellthatja azon vevk halmazt, amelyeknek a kereten bell adatokat fog tovbbtani. Ez a fajta megalkuv temezs (opportunistic scheduling) [Bender 2000, Kulkarni 2005] - teht a fizikai szint protokoll a kld s vev kzti csatornallapot alapjn trtn megvlasztsa s a cmzett csompontok szintn csatornallapot alapjn trtn kivlasztsa - lehetv teszi a bzis- lloms szmra, hogy a lehet legjobban kihasznlja a kzeget. A WiM AX-szabvny nem kti meg, hogy milyen fizikai szint paramter-belltsokat kell hasznlni egy adott szituciban. Ez a dnts a WiMAX-eszkzk gyrtjra, illetve a rendszergazdra hrul. A WiMAX-bzislloms az eddig emltetteken kvl az elfizeti llomsok feltltsi csatornhoz val hozzfrst is szablyozza, az UL-MAP zenetek segtsgvel. Ezen zenetek hatrozzk meg, hogy az egyes elfizeti llomsok mikor frhetnek hozz a csatornhoz az UL-MAP zenetet kvet feltltsi alkeret(ek)ben. A WiMAX nem szablyozza azt sem, hogy az egyes elfizeti llomsokhoz hogyan rendeljk hozz az engedlyezett adsi idt - ez a dnts a rendszergazdra marad. A szabvny azonban tartalmaz olyan mechanizmusokat (mint pldul az UL-MAP vezrlzenetek), amelyek segtsg vel kifejleszthetnk egy szablyrendszert klnbz csatorna-hozzfrsi idk klnb z elfizeti llomsokhoz val hozzrendelsre. A feltltsi alkeret els szakaszai arra szolglnak, hogy az elfizetk a rdis adatkapcsolatot vezrl zeneteket, a WiMAX-h- lzatba val belpshez, illetve hitelestshez szksges zeneteket, valamint a magasabb szint hlzatkezelsi protokollokhoz (mint pldul a DHCP vagy SNMP protokollokhoz) tartoz zeneteket tovbbtsanak.
A 6.18. brn lthat a WiMAX csomagszerkezete, amelybl mi most egyedl a kapcsolatazonost mezvel foglalkozunk. A WiMAX architektrja sszekttetsalap, amely lehetv teszi, hogy minden egyes kapcsolathoz valamilyen szint szolgltatsminsget (quality of service, QoS) rendeljnk. Hogy hogyan trtnik ez a QoS-hozzrendels, az mr a rendszergazda feladata. A WiMAX klnbz alacsony szint eljrsokat biztost (pldul az n. csalornabecsls s sszekttets-elfogads mez a bzislloms s a hoszt kztti klnfle informci szlltshoz), de sem egy QoS biztostshoz szksges l talnos megkzeltst, sem az ahhoz elengedhetetlen szablyrendszert nem definiltk. Az eszkzk a WiM AX-ban is rendelkeznek 48 bites M AC-cimekkel, de ezeket a cmeket inkbb eszkzazonostkknt foghatjuk fel, mivel a csompontok kztti adattvitelt sz- szekttets-azonostkkal (s nem a kld, illetve fogad csompont cmvel) vezrlik. WiMAX-szal val ismerkedsnk szksgkppen rvid volt, nem rtintettnk szmos tmakrt, mint pldul a tpenergia-gazdlkodst (itt is ltezik az IEEE 802.11 protokoll- hoz hasonl alv zemmd), az elfizeti llomsok bzisllomsok kzti mozgst, a bzisllomsrl az elfizeti llomsok fel tovbbtand adatkapcsolati keretek csatornallapottl fgg temezst, a QoStmogatst vagy a biztonsg krdseit. Az IEEE 802.16e szabvnnyal, amely mg fejleszts alatt van, a WiMAX-rendszerek a kvetkez vekben tovbbi fejlds el nznek. Mg a fent emltett szabvnyok elgg szrazak lehetnek az olvas szmra, a WiMAX-ot trgyal (Eklunk 2002], valamint a [Cicconetti 2006] mun kk rendkvl olvasmnyosak.
0 EC Tpus
MSB-bitjei (3)
sszekttets-azonost (MSB-bite)
Fejlc CRC
tallhat jeleket zavar pletektl s a bzislloms antenninak magassgtl. Habr a 6.19. bra olyan cellkat mutat, amelyekben egy bzislloms van, mghozz kzpen, manapsg tbb rendszerben a cellk sarkaiba helyezik el a bzisllomsokat, ahol hrom cella tallkozik, s gy egy lloms irnytott antennk segtsgvel hrom cellt is kiszolglhat.
Mobiltelefon kapcsolkzpontja
Jells:
Bzislloms
Felhasznlk
6.19. bra. A mobilhlzati architektra elemei Ahogy a 6.19. bra mutatja, a bzisllomsok mobiltelefonos kapcsolkzpontokkal (mobile switching center, MSC) llnak sszekttetsben, amelyek a mobilfelhasznlk fell jv, illetve az irnyukba men hvsok felptsrt s lebontsrt felelnek. A mobiltelefonos kapcsolkzpontok mkdskben sokban hasonltanak a hagyomnyos te lefonos kapcsolkzpontokhoz (pldul az irodai alkzpontokhoz), de fel vannak vrtezve azokkal a kpessgekkel, amelyek a felhasznlk mobilitsnak kezelshez szksgesek.
Egy kis trtnelem Harmadik genercis mobiltelefon-hlzatok sszehasonltsa vezetk nlkli helyi hlzatokkal Szmos mobilszolgltat fejleszt harmadik genercis (3G) mobiltelefon rendszereket, amelyek zrt trben 2 Mb/s, szabadtren pedig 384 kb/s vagy nagyobb adattviteli sebessgre kpesek. A 3G-rendszereket djkteles rdis frekvenciasvokra fejlesztik, gy a szolgltatknak jelents sszegeket kell fizetnik a kormnyoknak ezekrt a frekvenciasvokrt cserbe. A 3G-rendszerck segtsgvel a felhasznlk tvoli helyekrl a mobiltelefonos hozzfrshez hasonlan, akr szabadtren s mozgs kzben is hozzfrhetnek az internethez. Pldul egy 3Grendszcrbcn autvezets kzben trkpeket krhetnk le, vagy a tengerparton napozva megnzhetjk, milyen filmek mennek a moziban. Mindezek mellett tbb szakrt ktelkedik a 3G-megoldsok sikerben, mivel elgg drgk, s a vezetk nlkli helyi hlzatokkal is versenyeznik kell. A szakrtk fbb aggodalmai a kvetkezk:
264
zetk nlkli helyi hlzatok lassan mindentt megtallhatak lesznek. Az 54 Mb/s adatsebessg IEEE 802.11 helyi hlzatok szles krben terjednek.
szmtgpei s PDA-t gyrilag felszerelnek IEEE 802.1 L-es h lzati krtykkal. Ezenkvl a fejld interneteszkzk - mint a vezetk nlkli kamerk
yalt WiMAX minden bizonnyal nagy hatsugar adatszolgla tokat fog nyjtani a mobil-felhasznlk szmra, mghozz tbb megabites vagy nagyobb
l nemrg jelentette be, hogy 3,5 millird dollrt fektet YViMAX- fejlesztsbe az elkvetkezend nhny vben.
zatok bzisllomsai mobiltelefonokat is tudnnak kezelni. A jv telefonjai kpesek lehetnek arra, hogy egy Skype-hoz hasonl VoIP-szolgltats se -
- vagy IP-hlzathoz kapcsoldjanak, gy megkerlve a mobil telefonos szolgltatk cells hangtviteli s 3G adatszolgltatsait.
t abban hisznek, hogy a 3G nemcsak nagy sikert fog aratni, de forradalmastani fogja mindennapi munknkat s letnket. Termszetesen lehetsges,
ralkod technikkk vlnak olyan eszkzkkel, amelyek alapjn automatikusan vlasztjk ki, hogy tartzkodsi helykn melyik a legjobb mdszer az
lsd jelen alfejezet negyedik genercis (4G) vezetk nlkli hozz frsrl szl lerst)
szhez
tbb hvs is folyik. Ezeknek a hvsoknak osztozniuk kell a mobilszolgltatnak fenntartott rdis frekvenciasvon. A rdis apsg kl f mdszert hasznlnak
(FDM) s idosztsos (TDM) nyalbolsi mdszerek valamilyen kombincija. Az 1. fejezetbl emlkezhetnk arra, hogy az
el a csatornt tbb frekvenciasvra oszthatjuk, s minden frekvenciasvon egy hvs bo nyoldhat. Azt is megtrgyaltuk, hogy hasznlata esetn az idt keretekre, azokat pedig idrsekre osztjuk, s egy hvshoz az aktulis keret egy bizonyos idrst M/TDM-et hasznl rendszereknl a csa tornt frekvencia-alsvokra osztjuk, azokat pedig tovbb idkeretekre s idrsekre, gy TDM-rendszerben a csatornt / 1 'frekvencia-alsvra osztjuk, s minden alsvot tovbb osztunk 7 idrsre, akkor a csatorna kezelni. s hozzfrs (CDMA). A 6.2.1. alfejezetbl emlkezhetnk arra, hogy a CDMA nem frekvencia vagy id szerint osztja fel a sznlk ugyanazt a frekvencia- s idtartomnyt hasznljk. A cella valamennyi fel hasznljhoz egy egyedi bitsorozatot, n. nk. Ahogy a 6.2.1. alfejezetben lttuk, ha ugyanazt a tredksorozatot hasznljuk az adban s a vevben, a vev kpes arra, tal tovbbtott bitsorozatot a tbb, egyszerre zajl adsbl. A CDMA egyik legnagyobb elnye, hogy nincsen szksg frekvencia sre. FDM/TDM-rcndszer hasznlata esetn a vevk rz kenyek az azonos frekvenciatartomnybeli jelek keltette zajra. Ennek
ugyanazt a frekvencit csak egymstl megfelelen tvol elhelyezked cellkban hasznlhatjuk jra. Ilyen fajta frekvenciancy reuse) problma nem merl fel CDMA-rendszerek esetn.
1 Globlis mobilkommunikcis rendszer (Global System fr Mobile Communica tions, GSM). Az 1980-as vekben Eurpban reztk, hogy szksg van egy egsz Eurpt lefed digitlis rendszerre, amely lecserln az egymssal inkompatibilis 1G-rendszereket, s amely minden orszgra kiterjed mobilitst s olyan szolgltatsokat biztostana, amelyek analg rendszerekkel elrhetetlenek. Ez a felismers vezetett a mobiltelefonos kommunikcit tmogat GSM-szabvny kidolgozshoz. A GSM Eurpban az 1990-es vekben nagyon sikeres volt, s egyre jobban elterjedt. Ezutn tovbbterjedt zsiba s szak-A meri kba, napjainkra pedig a legszlesebb krben 32 bites CRC vlt. A 2G mobilrendszerek GSMhasznlt mobilkommunikcis szabvnny szab- vnya kombinlt FDM/TDM-mdszert hasznl a rdis interfszen. A GSM-rend- szerek 200 kHz svszlessg frekvenciasvokon mkdnek, s 6.18. bra. IEEE 802.16 csomag minden frekvenciasv 8 hvst nylbl TDM-mdszerrel. A GSM 13 kb/s s 12,2 kb/s sebessggel kdolja a beszdet.
265
oldsokrl beszlnk, ltalban genercikba soroljuk az egyes megoldsokat. A korbbi genercikat fleg hangtvitelre iltelefonos rendszerek azonban a hangtvitel mellett internetes hozzfrst is biztosta nak. Mivel e knyv szmtgpes iltelefonos rendszerekrl szl, termszetesen inkbb az jabb genercis mobiltelefonos rendszerek irnt rdekldnk. Mivel s rendszerek kzvetlenl a korbbi genercikbl fejld tek ki, mgis az els s korai genercis rendszerek rvid ttekintsvel
efoglalnkban a klnbz megoldsok zsargonjnak betra datn fogunk tvgtatni. Az olvas ne rezze gy, hogy e fejezst s rvidtst meg kell jegyeznie. Az sszefoglal clja az, hogy tlssuk a klnbz vezetk nlkli genercikat, s klnbz kifejezsek s rvidtsek jelentsrl. ndszerek analg FDMA-rendszerek voltak, amelyeket kiz rlag hangtvitelre terveztek. Ezek az iG-megoldsok mra mr szinte a digitlis 2G-rendszerek vettk t.
dszereket, jllehet digitlisak, szintn hangtvitelre terveztk, de mivel a jelenlegi, adat- s hangalap kommunikcira endszerek a 2G-rendszerekbl nttek ki, fontos, hogy nhny szt szljunk a 2G-megoldsokrl. Egy msodik genercis ginformcit digitlis formtumv ala ktja, mieltt a jelet modulln, s tovbbtan az terbe. Tbbfle 2G-szabvny s meg rben, mint pldul:
32 bites CRC
266
6. VEZETK
NLKLI S MOBILHLZATOK
IS-95 CDM A. A/. IS-95 CDM A szabvny kdosztsos tbbszrs hozzfrst alkalmaz (lsd 6.2.1. alfejezet). A szabvny letkpessgt a Qualcomm vllalat bizonytotta az 1980-as vek vge fel - azta szmos IS-95 rendszert fejlesztettek ki, legfkpp szak-Amerikban s Koreban.
267
A harmadik genercis mobilrendszerek clja az, hogy a 2G-rendszereknl jval nagyobb adatsebessgen tegyenek elrhetv mind telefonos, mind adatszolgltatsokat. A 3G-rendszerek kvetelmnyei: 144 kb/s adattviteli sebessg autzs kzben, 384 kb/s szabadban lls vagy sta kzben, 2 Mb/s sebessg fedett helyen. A 3G kzdtern kt nagyobb szabvny versenyzik egymssal:
Univerzlis mobiltvkzlsi szolgltats ( Universal Mobile Telecommunications Service, UMTS). Az UMTS a GSM 3G-szolgltatsokra
kpes tovbbfejlesztse. Habr az UMTS hlzati architektrja a mr meglv GSM-architektra tbb elemt felhasznlja, a rdis interfszen nem a GSM FDMA/TDMA-megoldst hasznlja. Az UMTS a TDMA-rseken bell ehelyett a CDMA egy vltozatt, a szles sv direkt szekvencis CDMA-t (Direct Sequence Wideband CDMA, DS-WCD.MA) alkalmazza (amellyel a TDM-rsek tbb frekvencin is elrhetv vlnak - ez az eddig bemutatott hrom csatornaosztsos mdszer egy rdekes felhasznlsa). Nem tl meglep mdon, m ivei azUMTSaGSM-repl, Eurpban szles krben terjed. A WCDMAakr 14 Mb/s sebessgre kpes adatszolgltatst HSDPA/HSUPA-nak nevezik (nagysebessg letltsi/feltltsi csomagalap hozzfrs - High Speed Downlink/Uplink Packet Access). Az EVDO-hoz hasonlan a HSDPA/HSUPA-ban is megtallhat az alkalmi temezs s sok ms jonnan kifejlesztett eljrs.
268
6. VEZETK
NLKLI S MOBILHLZATOK
sszekttetscinket. Ezenfell szeretnnk, ha a rendszer tudn, ppen merrejrunk, hogy az jonnan kezdemnyezett hvsok helyvltoztatsunk kzben is elrhessenek bennnket. Szeretnnk, ha a rendszer tmogatn a hangtvitelt, csakgy, mint a vals idej IP feletti videotvitelt, hogy Dick Tracy-karrt viselhessnk s bartainkkal s kollginkkal brhol videokonferencit folytathassunk. 1 s termszetesen mindezt ingyen szeretnnk (vagy relisabban nzve, alacsony sszegrt). Habr a fent lertak mr a vezetek nlkli mennyorszgot idzik, a j hr az, hogy a hozz szksges kritikus sszetevk mr rendelkezsre llnak, gy mostantl mr tnyleg csak a protokollokat s a klnbz mszaki megoldsokat kell integrlni, hogy kvnsglistnk valsgg vljon. A szksges technikk kztt megtallhatk a hozzfrsi megoldsok, mint az IEEE 802.11 vagy a 3G, a mobilitskezel protokollok (lsd 6.5, 6.6 s 6.7 alfejeze- tek), a titkostsi s hitelestsi protokollok (lsd 8. fejezet), valamint a multimdia-hlzati protokollok (mint a VoIP-hoz a SP protokoll, amelyrl a 7. fejezetben szlunk bvebben).
A lektor megjegyzse: Olyan karrrl van sz, amely az 1940-es vek detektvrcgnyeibl
szerint tbbek kztt mholdas vevvel, videokamerval, amely rintkpernyvel, arra, hogy
ismert, hres amerikai nyomoz, Dick 'lracy karrja lehetne, ha mg ma is lne. Az ra az elkpzelsek wcbhoz/frssel, GPShelymeghatrozval rendelkezik, alkalmas
269
kvzba vagy tanterembe) viszi, s az j helysznen is kapcsoldik a hlzathoz. Ez a felhasznl is mobil (br kevsb, mint a BMW-s!), de nincs szksge a meglv sszekttetsek fenntartsra mozgs kzben. A 6.20. bra a mobilits ezen skljt brzolja, a hlzati rteg nzpontjbl. Mennyire fontos, hogy a mobil csompont cme vltozatlan maradjon? Mobiltelefonszmunk - amely lnyegben a telefon hlzati szint cme - vltozatlan marad, mi kzben klnbz szolgltatk hlzatai kztt mozgunk. Vajon egy laptopnak is meg kell tartania IP-cmt, mikzben IP-hlzatok kztt mozog? A vlasz ersen fgg attl, hogy milyen alkalmazsok futnak rajta. A BMW-s esetben, ahol az autplyn val szgulds kzben is fenn kell tartani a TCPsszekttetseket a tvoli alkalmazsokkal, knyelmes lenne ugyanazt az IPcmet megtartani. Emlkezznk vissza ugyanis a 3. fejezetre, ahol lttuk, hogy az internetes alkalmazsoknak tudniuk kell annak a tvoli egysgnek az IP-cmt s portszmt, amellyel kommuniklnak. Ha a mobil egysg meg tudja tartani IPcmt mozgs kzben, a mobilits szrevehetetlen marad a tvoli alkalmazs fell nzve. Ez az tltszsg rengeteget r - az alkalmazsnak nem kell olyan IPcmekkel bajldnia, amelyek vltozhatnak, s az alkalmazs ugyanazon rsze kpes kezelni a mobil s a nem mobil kapcsolatokat. A kvetkez alfejezetben ltni fogjuk, hogy a mobil-IP biztostja ezt az tltszsgot, magyarul azt, hogy egy mobil csompont megtarthassa lland IP-cmt mozgs kzben. Msrszt viszont egy nem ennyire mobil felhasznl esetleg ki akarja kapcsolni laptopjt az irodban, azt hazavinni, majd otthon bekapcsolni s dolgozni rajta. Ameny- nyiben a laptop elssorban kliensknt viselkedik az otthoni kliens-szerver alkalmazsokban (pldul levlklds/levlfogads, bngszs a weben, Telnetkapcsolat felptse egy tvoli hoszttal), a laptop llal hasznlt IP-cm nem annyira fontos. Ekkor lnyegben megteszi egy olyan IP-cm, amelyet az otthoni internetszolgltat ideiglenesen rendel a laptophoz. A 4.4. alfejezetben lttuk, hogy a DHCP mr kpes ennek megvalstsra. Milyen vezetkes infrastruktra tmogatst lvezhetjk? A fenti helyzetek kzl mindegyikben azt feltteleztk, hogy van egy vezetkes, fix infrastruktra, amelyhez a mobil felhasznlk kapcsoldhatnak - pldul az otthoni internetszolgltat hlzata, az irodai vezetk nlkli hlzat vagy az autplyn mindenhol elrhet vezetk nlkli hozzfrsi hlzatok. Mi trtnik azonban akkor, ha nincs ilyen elrhet hlzat. Ha kt felhasznl egyms kommunikcis hatsugarn bell van, vajon felptNincs mobilits Nagyfok mobilits
i ilSl
A felhasznl ugyanazon vezetk nlkli hozzfrsi hlzaton bell mozog A felhasznl hozzfrsi hlzatok kztt mozog, mozgs kzben kikapcsol A felhasznl hozzfrsi hlzatok kztt mozog, sszekttetseit fenntartja
hetnek egy hlzati sszekttetst, brmifle hlzati szint infrastruktra nlkl is? Az ad hoc hlzatok ppen erre kpesek. Ez a gyorsan fejld terlet azonban a mobilhlzatok hatrn van, s tlmutat e knyv keretein, de a [Perkins 2000] anyagban, illetve az IETF mobil ad hoc hlzatokkal foglalkoz (Mobile Ad Hoc NetWork, MANET) munkacsoportjnak weblapjn (manet 2007]
270
6. VEZETK
NLKLI S MOBILHLZATOK
rszletesen olvashatunk rla. Hogy megrtsk, mit is jelent a mobil felhasznl sszekttetseinek fenntartsa mozgs kzben, vegynk egy emberi analgit. Egy csaldi fszekbl kirepl egyetemista mobill vlik, mivel kollgiumokban, illetve albrletekben kezd lni, cmeit pedig gyakran vltoztatja. De mi trtnik, ha egy rgi bart kapcsolatba szeretne lpni vele? Hogyan fogja t megtallni? Gyakori megolds, hogy megkeresi a csaldot, mivel a mobil egyetemista gyakran kzli a csalddal pillanatnyi tartzkodsi helyi (ha msrt nem is, ht azrt, hogy a szlei elkiildhessk neki a pnzt, amibl kifizeti a lakbrt). A csald hza teht az a hely, ahova els lpsknt fordulhatunk az egyetemistval val kommunikci felvte le cljbl. A ksbbi kommunikci ezek utn lehet indirekt (pldul a levelet elszr a szli hzba kldjk, akik azt tovbbkldik a gyerekknek), vagy direkt (pldul a szlk ltal megadott cm ismeretben kzvetlenl az egyetemistnak kldjk). Visszatrve az eredeti hlzati krnyezethez, egy mobil csompont (mint pldul egy laptop vagy PDA) lland otthont hazai hlzatnak (home network), az otthoni hlzatban tallhat egysget, amely a lejjebb trgyalt mobilitskezelsi feladatokat ltja el, s a mobil csompont nevben cselekszik, hazai gynknek (home agent) nevezzk. Az a hlzat, amelyben a mobil csompont ppen tartzkodik, az idegen (vagy tvoli) hlzat (foreign network), s az idegen hlzat azon eleme, amely a lent trgyalt mobilitskezelsi feladatok elltsban segti a mobil csompontot, az idegen gynk (foreign agent). A hazai hlzat lehet pldul a cges hlzatunk, mg az idegen hlzat egy megltogatott kollgnk hlzata. A partner az az egysg, amely kommuniklni kvn a mobil csomponttal. A 6.21. brn lthatjuk ezeket a szereplket, illetve az albb trgyalt cmzsi fogalmakat is. Vegyk szre, hogy az brn az gynkk az tvlasztkban helyezkednek el (lehetnek pldul tvlasztkon fut folyamatok), de megvalsthatk a hlzat hosztjain vagy szerverein is.
6.5.1. Cmzs
Korbban mr megjegyeztk, hogy annak rdekben, hogy a hlzati alkalmazsok fel tltsz legyen a mobilits, j, ha a mobil csompont megtartja eredeti cmt, mikzben egyik hlzatrl a msikra vndorol. Mikor a mobil csompont egy idegen hlzatban tartzkodik, a teljes, eredeti cmre kldtt forgalmat t kell irnytani az idegen hlzatba. De hogyan trtnik ez? Az egyik megolds, hogy az idegen hlzat minden msik hlzatnak kihirdeti, hogy a mobil csompont az hlzatban tallhat. Ehhez a krzetek kztti s krzeten belli (interdomain s intradomain) tvlasztsi informcik szoksos kicserlsre s a ltez lvlasztsi infrastruktra kismrtk mdostsra vol na szksg. Az idegen hlzat egyszeren kihirdethetn szomszdainak, hogy ismer egy konkrt tvonalat a mobil csompont lland cmhez (azaz lnyegben kzln a tbbi hlzattal, hogy ismeri a helyes utat, amelyen a mobil csompont lland cmre sznt csomagokat kell kldeni - lsd 4.4. alfejezet). Ezek a szomszdok azutn elterjesztenk ezt az informcit a hlzatban, a szoksos tvonalvlaszt informcik s tvonalvlaszt tblzatok frisstsnek rszeknt. Amikor a mobil csompont elhagyja az egyik idegen hlzatot, s egy msikhoz kapcsoldik, az j idegen hlzat hirdetn ki a mobil csom-
271
ponthoz vezet tvonalat, a rgi idegen hlzat pedig visszavonn az ltala szolgltatott, a mobil csompontot rint tvonalvlaszt informcit. Ez egyszerre kt problmt is megold anlkl, hogy a hlzati szint infrastruktrt nagymrtkben meg kellene vltoztatni. A tbbi hlzat megtudja a mobil csompont helyzett, s egyszer lesz hozz irnytani a neki cmzett csomagokat, mivel az tvlaszt tblk az idegen hlzatba fogjk irnytani a csomagokat. Nagy htrny azonban, hogy nem sklzhat. Ha a mobilits kezelse a hlzat tvlasztinak felelssge lenne, az t vlasztk tvlaszt tblzataiban mobil csompontok milliirl kellene informcikat trolnunk, s ezeket frissteni, valahnyszor egy mobil csompont elmozdul. Mg tbb htrnyos tulajdonsgra derl fny a fejezet vgn lv feladatokbl. Egy msik (s a gyakorlatban alkalmazott) megkzelts szerint a mobilits kezelsnek terht a hlzat kzpontjbl annak szlre kell tvinni - ez egy jra s jra visszatr tma az internettel val ismerkedsnk sorn. Ezt egyszeren megtehetjk a mobil csompont hazai hlzatn keresztl. Hasonl mdon ahhoz, ahogy a mobil egyetemista szlei kvetik gyerekk mozgst, a mobil csompont hazai hlzata is kpes kvetni, hogy a mobil csompont melyik idegen hlzatban tartzkodik. A mozg csompont (vagy az t kpvisel idegen gynk) kztt ezrt egy protokollra lesz szksgnk, valamint arra, hogy a hazai gynk frisstse a mobil csompont helyzett. Vizsgljuk meg most az idegen gynkt kicsit rszletesebben. Az egyik legegyszerbb megolds, hogy az idegen gynkket az idegen hlzat hatrn elhelyezked tvlasztkban helyezzk cl. Az idegen gynk egyik feladata, hogy a mobil csompont szmra ltrehozzon egy n. felgyeleti cmet (care-of address, COA) , amely felgyeleti cm hlzati rsze megegyezik az idegen hlzat hlzati cmvel. Vgeredmnyben teht kt cmmel rendelkezik a mobil csompont, nevezetesen egy lland cmmel (permanent address) (amely hasonl az egyetemista szlei hznak cmhez) s egy felgyeleti cmmel (COA), amelyet gyakran neveznek idegen cmnek (foreign address) (amely az egyetemis ta jelenlegi lakhelynek cmhez hasonlthat). A 6.21. bra pldjn a mobil csompont lland cme 128.119.40.186. Amikor a csompont tkerl a 79.129.13.0/24 cm hlzatba, felgyeleti cme 79.129.13.2 lesz. Az idegen gynk msik feladata, hogy rtestse a hazai gynkt arrl, hogy a mobil csompont pillanatnyilag az (az idegen gynk) h lzatban tartzkodik, s az adott felgyeleti cm tartozik hozz. Rvidesen ltni fogjuk, hogy a felgyeleti cm alapjn vlik lehetsgess az adatcsomagok tirnytsa az idegen gynkn keresztl a mobil csomponthoz. Habr eddig sztvlasztottuk a mobil csompont s az idegen gynk szerept, rdemes megjegyeznnk, hogy a mobil csompont is magra vllalhatja az idegen gynk feladatait. Pldul a mobil csompont szerezhet magnak felgyeleti cmet az idegen hlzatban (pldul egy olyan protokollal, mint a DHCP), s sajt maga is tjkoztathatja a hazai gynkt errl a felgyeleti cmrl.
272
6. VEZETK
NLKLI S MOBILHLZATOK
ugyanis mg nem foglalkoztunk, hogyan kell megcmezni s tovbbtani a mobil csompontoknak cmzett adatcsomagokat. Mivel egyedl a hazai gynk (s nem a hlzat sszes tvlasztja) ismeri a mobil csompont aktulis helyzett, nem elegend, ha az adatcsomagot a mobil csom-
Hazai hlzat:
128.119.40.0/24
Idegen hlzat:
79.129.13.0/24
Mobil csompont
lland cm: 128.119.40.18 6
I
& Hazai gynk
Idegen gynk
Partner
6.21. bra. Egy mobil hlzati architektra alapelemei pont lland cmvel elltva egyszeren leadjuk az adatkapcsolati szint infrastruktrnak. Ennl tbbet kell tenni. A problmt ktflekppen lehet megoldani, az n. kzvetett s kzvetlen tvlasztssal.
tartzkod csompontok szmra rkez csomagokat. A hazai gynk ezen adatcsomagokat elfogja, majd kt lpsben tkldi a mobil csompontnak. Els lpsben az adatcsomagot az idegen gynknek kldi, a mo bil csompont felgyeleti cmt hasznlva (a 6.22. bra 2. lpse), majd a csomag az idegen gynktl a mobil csompontnak tovbbtdik (a 6.22. bra 3. lpse).
Hazai hlzat:
128.119.40.0/2 4
Idegen hlzat:
79.129.13.0/24
Mobil csompont
W>>
lland cm: 128.119.40.18 6
jFelgyeleti
Hazai gynk
Partner
6.22. bra. Kzvetett tvlaszts egy mobil csomponthoz Sokat tanulhatunk abbl, ha megvizsgljuk az tirnyts pontos mkdst. A hazai gynknek a mobil csompont felgyeleti cmt kell hasznlnia clcmknt, hogy a hlzati rteg a csomagot az idegen hlzat fel kldje. Msfell azonban rdemes lenne az adatcsomagot teljesen rintetlenl hagyni, hogy az azt fogad alkalmazs ne vegye szre, hogy a csomag a hazai gynkn keresztl jutott el hozz. Mindkt fent emltett clunkat kielgti, ha a hazai gynk begyazza (encapsulate) a partner adatcsomagjt egy j (nagyobb) adatcsomagba, s ezt a nagyobb adatcsomagot kldi el a mobil csompont felgyeleti cmre. A felgyeleti cmet birtoklidegen gynk fogadja, s kibontja a csomagot - teht kinyeri a partner eredeti adatcsomagjt az azt tartalmaz nagyobb csomagbl, s ezt az eredeti csomagot tovbbtja (a 6.22. bra 3. lpse) a mobil csompontnak. A 6.23. brn azt figyelhetjk meg, amint a partner eredeti csomagja a hazai hlzatba tovbbtdik, onnan egy msik csomagba gyazva az idegen gynkhz jut, majd az eredeti csomag az idegen gynktl a mobil csomponthoz kerl. A szemfles olvas szreveheti, hogy az itt trgyalt begyazs/kibonts mvelete megegyezik a 4. fejezetben a tbbeskldsnl s IPv6-nl elkerlt alagutazs mdszervel. Vizsgljuk most meg azt, hogy a mobil csompont hogyan kldhet csomagot a partnernek. Ez a mvelet igen egyszer, minthogy a mobil csompont kzvetlenl
a partnernek tudja cmezni az adatcsomagot (sajt lland cmt forrs-, a partner cmt pedig clcmknt hasznlva). Mivel a mobil csompont ismeri a partner cmt, nincs szksg arra, hogy a csomagot a hazai gynkn keresztl kldjk vissza. Ezt a mveletet a 6.22. bra 4. lpse brzolja.
cl: 128.119.40.186
\
Nagy kiterjeds hlzat
gynk
cl: 128.119.40.186
Partner
6.23. bra. Begyazs s kibonts Foglaljuk ssze kzveteti tvlasztsrl szerzett j ismereteinket a hlzati rteg mobilits tmogatshoz szksges elemeinek felsorolsval. Ezek a kvetkezk:
csompontnak az idegen gynknl kell bejegyeztetnie magt az idegen hlzathoz val csatlakozskor, s hasonlkppen, a csompont a hlzat elhagysakor is az idegen gynkkel trlteti a r vonatkoz adatokat. Az idegen gynk s a hazai gynk kztti regisztrcis protokoll. Az idegen gynknek a hazai gynk tudtra kell adnia a mobil csompont felgyeleti cmt. Az idegen gynk azonban nem felels azrt, hogy amikora mobil csompont elhagyja hlzatt, a hazai gynknl trltesse a felgyeleti cmet. Ezt ugyanis a mobil csompont j hlzathoz val csatlakozsakor, egy jabb felgyeleti cm bejegyzse automatikusan fellrja. Adatcsomag-begyazsi protokoll a hazai gynknl. Ahhoz szksges, hogy a hazai gynk a partner eredeti adatcsomagjt egy felgyeleti cmre kldend csomagba gyazza, s ezt tovbbtsa. Adatcsomag-kibontsi protokoll az idegen gynknl. Feladata, hogy a kapott adatcsomagbl kibontsa a partner eredeti adatcsomagjt, s ezt tovbbtsa a mobil csompontnak. A fenti lersban valamennyi olyan alkotelemrl - idegen gynkkrl, a hazai gynkrl s a kzvetett tvlasztsrl - szltunk, amely ahhoz szksges, hogy a mobil csompont fenntarthassa l sszekttetseit klnbz hlzatok kztt vndorolva. Pl
daknt kpzeljk el azt a helyzetet, amikor egy mobil csompont az A idegen hlzatban tartzkodik, az A hlzattl kapott felgyeleti cmet, s hazai gynkn keresztl, kzvetetten fogadja a neki cmzett csomagokat. A mobil csompont most a B hlzathoz kapcsoldik, amely elkldi a hazai gynknek a mobil csompont j felgyeleti cmt. Ettl a pillanattl kezdve a hazai gynk a B hlzatba fogja tirnytani a csomagokat. A partner szemszgbl nzve a mobilits tltsz - a csomagok ugyanazon hazai gynkn keresz tl tovbbtdnak a mobil csompont helyvltoztatsa eltt is s utn is. A partner szemszgbl az adatcsomagok folyama hbortatlanul jut el a mobil csompontig - a berkez csomagok elszr az A hlzatba, majd a felgyeleti cm megvltozsa utn a B hlzatba tovbbtdnak. De vajon a mobil csompont is gy fogja rzkelni, hogy az adatcsomagok folyama nem szakad meg? Amg az A hlzatrl val levls (ami utn nem tud az A hlzatrl csomagokat fogadni) s a B hlzatba val belps (amikor bejegyezteti az j felgyeleti cmet a hazai gynknl) kztt eltelt id rvid, csak kevs adatcsomag fog elveszni. A 3. fejezetbl emlkezhetnk, hogy kt vgpont kztti sszekttetsek esetn hlzati torldsok kvetkeztben is elfordulhatnak csomagvesztsek, gy a hlzatok kzti mozgs miatti alkalmi csomagvesztsek nem jelentenek nagy problmt. Ameny- nyiben a csomagveszts-mentes kommunikci a cl, felsbb szint eljrsok segtsgvel oldhatjuk meg a csomagvesztsek problmjt, akr hlzati torlds, akr a felhasznl mobilitsa miatt kvetkeztek be. A mobil-IP-szabvny [RL'C 3344] is kzvetett tvlasztst hasznl, ahogy azt a 6.6. al- fejezetben is ltni fogjuk.
6.24. bra 3. s 4. lpsn. Jllehet a kzvetlen tvlasztsnl megolddik a hromszgeit tvlaszts problmja, kt j kihvssal is szembe kell nznnk:
A partnergynknek szksge van egy a mobil felhasznlk helyzett meghatroz protokollra, amely segtsgvel lekrdezheti a mobil csompont felgyeleti cmt (a 6.24. bra 1. s 2. lpse) Amikor a mobil csompont az egyik idegen hlzatbl a msikba vndorol, vajon hogyan trtnik az adatok tirnytsa az j idegen hlzatba? Kzvetett tvlaszts esetn egyszeren megoldhatjuk a problmt azzal, hogy a hazai gynkben frisstjk a felgyeleti cmet. Kzvetlen tvlaszts esetn azonban a partnergynk csak egyszer krdezi le a felgyeleti cmet a hazai gynktl, az adatklds elejn. gy a felgyeleti cm frisstse a hazai gynknl br szksges, de nem elgsges ahhoz, hogy az adatokat a mobil csompont j idegen hlzatba irnytsuk. Megoldsi jelenthet, ha ltrehozunk egy olyan protokollt, amely rtesti a partnergynkt a megvltozott felgyeleti cmrl. Egy msik megolds, amelyet a GSM-hlza- toknl a gyakorlatban is alkalmaznak, a kvetkezkppen mkdik. Tegyk fel, hogy a mobil csompontnak kldtt adatfolyamot jelenleg abba az idegen hlzatba tovbbtjuk, amelyben a mobil csompont az adatklds elejn tartzkodott (a 6.25. bra 1. lpse). Azt az idegen gynkt, amely idegen hlzatban a mobil csompontot elszr megtalltuk, horgonygynknek (anchor foreign agent) fogjuk hvni. Amikor a mobil csompont egy
Hazai hlzat:
128.119.40.0/24
Idegen hlzat:
79.129.13.0/24
Hazai gynk
Idegen gynk
Partner Jells:
Vezfiuzenete*. Adatfolyam
gynk
Hazai gynk
r9 on y
Uj idegen hlzat:
Partnergynk
Partner
j idegen gynk
6.25. bra. Mobil csompont vndorlsa kzvetlen tvlaszts hasznlata mellett j idegen hlzatba kerl (a 6.25. bra 2. lpse), a mobil csompont bejegyezteti magt az j hlzat idegen gynknl (3. lps), majd ez az idegen gynk elkldi a mobil csompont j felgyeleti cmt a horgonygynknek (4. lps). Ha a horgonygynk egy mr elvndorolt mobil csompontnak szl begyazott keretet vesz, azt egy j keretbe gyazva, az j felgyeleti cmet hasznlva tovbbthatja a mobil csompontnak (5. lps). Ha a mobil csompont ksbb ismt egy jabb idegen hlzatba vndorol, az j hlzat kap csolatba lp a horgonygynkkel annak rdekben, hogy a mobil csompontnak cmzett csomagokat onnantl kezdve az j idegen hlzatba tovbbtsa.
6.6. Mobil-IP
A mobilitst tmogat internetes architektra s protokollok, gyjtnevn a mobilIP, nagy rszt az IPv4 verzira az RFC 3344-ben definiltk. A mobil-IP igen rugalmas protokoll, tbbfle mdban is tud mkdni (pldul idegen gynkkel s anlkl is), segtsgvel a mobil csompontok s gynkk tbbfle mdon is felderthetik egymst, tmogatja az egyszeres, illetve tbbszrs felgyeleti cmek hasznlatt, s az adatcsomagok begyazsra is sokfle mdszert ismer. A mobilIP mint olyan, elgg sszetett szabvny, egy egsz knyvre lenne szksg minden rszletnek lershoz - [Perkins 1998b) ilyen knyv. A mi szerny clunk annyi, hogy sszefoglaljuk a mobil-IP legfontosabb rszeit, s hogy bemutassunk nhny gyakran elfordul helyzetet.
A mobil-IP architektrjban megtallhat valamennyi fent emltett elem, mint pldul a hazai gynk, az idegen gynk, a felgyeleti cm s a csomagok begyazsa/ kibontsa. A jelenlegi szabvny (RFC 3344] kzvetett tvlasztst hasznl a mobil csompontok elrsre. A mobil-IP-szabvny hrom f rszbl ll:
amelyek segtsgvel a hazai vagy idegen gynk kihirdetheti szolgltatsait a mobil csompontnak, msrszt olyan protokollokat is, amelyeken keresztl a mobil csompontok krhetik a hazai s tvoli gynkk szolgltatsait. Regisztrci a hazai gynknl. A mobil-IP tartalmazza azokat a protokollokat, amelyek segtsgvel a mobil csompontok felgyeleti cmeiket be tudjk jegyeztetni, illetve trltetni tudjk a hazai gynknl. Az adatcsomagok kzvetett tovbbtsa. A mobil-IP azt is meghatrozza, hogy hogyan kell a hazai gynknek tovbbtani az adatcsomagokat a mobil csompontok lei, ide rtve az adatcsomagok tovbbtsa mellett a felmerl hibk kezelst s az adatcsomagok begyazsnak klnbz mdjait [RFC 2003, RFC 2004]. A mobil-IP-szabvny minden elemnek megalkotsakor fontos szerepet kaptak a biztonsgi megfontolsok. Pldul a mobil csompontoknak azonostaniuk kell magukat annak rdekben, hogy egy rosszindulat felhasznl ne regisztrlhasson hamis felgyeleti cmeket a hazai gynknl, gy akadlyozva meg azt, hogy bizonyos IP-cmekre kldtt adatcsomagokat e felhasznlhoz irnytsanak. A mobil-IP biztonsgi eljrsai kzl tbbet trgyalunk a 8. fejezetben, gy az albbiakban nem foglalkozunk biztonsgi krdsekkel.
gynkk feldertse
Mikor egy mobil-lP-csompont j hlzatba kerl, akr egy idegen hlzathoz kapcsoldik, akr visszatr hazai hlzatba, meg kell tudnia, hogy kicsoda a hlzatban tallhat idegen vagy hazai gynk. Valjban a mobil csompont hlzati rtege azltal rzkeli, hogy j hlzatba kerlt, hogy felfedez egy j, az eddigitl klnbz IP-cm idegen gynkt. Ezt a folyamatot hvjuk az gynk feldertsnek (agent discovery). Az gynk feldertse kt mdon trtnhet: gynkhirdetssel vagy gynklekrdezssel. gynkhirdets (agent advertiseinent) esetn a hazai vagy idegen gynk az tvlaszt-feldertsi protokoll [RFC 1256] egy kiterjesztsnek segtsgvel kihirdeti szolgltatsait. Az gynk valamennyi hozz kapcsold adatkapcsolaton periodikusan krzvny- knt kikld ICMP-zeneteket, amelyek tpus mezjt 9-re (tvlaszt-felderts) lltja. Az tvlaszt-feldertsi zenet tartalmazza az tvlaszt (azaz az gynk) IP-cmt, gy a mobil csompontok megismerhetik azt. Az zenet ezenfell egyb, a mobil csompont szmra szksges gynkfelderts-specifikus adatokat is tartalmaz. Lssunk ht ezen gynkspecifikus adatok kzl nhny fontosabbat: Hazai gynk bit (H). Azt jelzi, hogy az gynk hazai gynk az t tartalmaz hlzatban. Idegen gynk bit (F). Azt jelzi, hogy az gynk idegen gynk az t tartalmaz hlzatban.
8
Tpu s = 9 Kd = 0
16
24
Ellenrz sszeg
tv lasz ts cm e
- Hagyomnyos ICMP-mezk
RBHFMGrT bitek
Hoss z
Sors zm
Mobilitsi
0
v a g y t b b fe l g y el et i c m
gynkhirdetsi kiegszts
6.26. bra.
kiegsztssel
tvlaszt-feldertsi
ICMP-zenet
mobilitsi
gynkhirdetsi
Regisztrci szksges (R). Azt jelzi, hogy a hlzatba lp mobil felhasznlknak regisztrlniuk kell magukat az idegen gynknl. Pontosabban
fogalmazva ezt azt jelenti, hogy a mobil csompontok nem kaphatnak felgyeleti cmet az idegen hlzattl (pl-dul DHCP-vel), s nem hasznlhatjk az idegen gynk szolglatait anl kl, hogy regisztrlnk magukat nla. M s G begyazsi bitek. Azt jelzik, hogy milyen csomagbegyazst alkalmazunk, amennyiben nem IP-csomagot gyazunk egy IP-csomagba.
A 6.26. bra az gynkhirdetsi - ICMP - zenet fontosabb mezit szemllteti. gynklekrdezs esetn az a mobil csompont, amelyik nem akar az gynkk gynkfeldertsi zeneteire vrni, adatszrssal kikld egy gynklekrdezsi zenetet, amely egyszeren egy 10 rtk tpusmezvel elltott ICMP-zenet. A lekrdez zenetet vev gynk kzvetlenl a mobil csompontnak vlaszol, egy gynkhirdetsi zenettel. A mobil csompont ezek utn gy folytatja mkdst, mintha egy nem ltala kiknysze- rtett gynkhirdetsi zenetet kapott volna.
1.
Egy idegen gynk hirdetsi zenetnek vtelt kveten a mobil csompont egy mobil-IP regisztrcis zenetet kld az idegen gynknek. A regisztrcis zenetet egy UDP-csomagban kldi, mghozz a 434-es portra. Az zenet tartalmazza az idegen gynk ltal kihirdetett egyik felgyeleti cmet (COA), a hazai gynk cmt (HA), a mobil csompont lland cmt (MA), a regisztrci ignyelt lettartamt, valamint egy 64 bites regisztrciazonostt. Az ignyelt regisztrcis lettartam az a msodpercekben kifejezett idtartam, ameddig a regisztrci rvnyes marad. Amennyiben a regisztrcit nem frisstik a megadott lettartamon bell, az rvnytelenn vlik. A regisztrcis azonost sorszmknt mkdik, s arra szolgl, hogy a regisztrcis krseket ssze tudjuk prostani a fogadott regisztrcis vlaszzenetekkel - ezt a kvetkezkben trgyaljuk. 2. Az idegen gynk a regisztrcis zenet fogadsakor bejegyzi a mobil csompont lland IP-cmt, s ezek utn tudni fogja, hogy figyelnie kell azon zeneteket, amelyekben szlltott adatcsomag clcme illeszkedik a mobil csompont lland cmre. Az idegen gynk ezutn elkld egy (mint korbban emltettk, UDP-csomagban elhelyezett) IP regisztrcis zenetet a hazai gynk 434-es portjra. Ez az zenet tartalmazza a felgyeleti cmet, a hazai gynk cmt, a mobil csompont lland cmt, a krt begyazsi formtumot, a krt regisztrcis lettartamot, valamint a regisztrciazonostt. 3. A hazai gynk megkapja a regisztrcis krelmet, s ellenrzi annak hitelessgt s helyessgt. A hazai gynk ezutn sszerendeli a mobil csompont lland IP- cmt s a felgyeleti cmet - gy a jvben a mobil csompont cmre rkez adatcsomagokat egy msik csomagba gyazva a felgyeleti cmre fogja tovbbtani. A regisztrcis krst a hazai gynk ezutn egy, a sajt cmt, a mobil csompont lland cmt, a valdi regisztrcis lettartamot s a regisztrciazonostt tartal maz mobil-IP regisztrcis vlaszzenettel nyugtzza. 4. Az idegen gynk megkapja a regisztrcis vlaszzenetet, amelyet a mobil csompontnak tovbbt. A regisztrci ezen a ponton vget rt, a mobil csompont ksz az lland cmre kldtt csomagok fogadsra. A fenti lpseket a 6.27. brn kvethetjk nyomon. Figyeljk meg, hogy a hazai gynk a krtnl rvidebb lettartamot llt be. Az idegen gynknek nem kell explicite trltetnie a felgyeleti cmet, mikor egy mobil csompont elhagyja a hlzatt. Ez ugyanis automatikusan meg fog trtnni, amikor a mobil csompont tlp egy msik hlzatba (akr egy jabb idegen hlzatba, akr a hazai hlzatba), s j felgyeleti cmet regisztrl. A mobil-IP szmos, a fent lertakon kvli helyzet kezelsre kpes, s a fent lertaknl jval tbb kpessggel br. Az rdekld olvasnak a [Perkins 1998b; RFC 3344] anyagokat ajnljuk.
ta tmogatjk - a mobiltelefon-hlzatokat. Mivel a 6.4. alfejezetben mr rszletesen tanulmnyoztuk a mobiltelefon-hlzatok vezetek nlkli csatornit, itt a mobilits szempontjbl vizsgl-
juk meg ezeket a hlzatokat, a szles krben elterjedt s kiforrott GSM cells architektrjt [Goodman 1997; Mouly 1992; Scourias 1997; Kaaranen 2001; Korhonen 2003] mint esettanulmnyt tekintve. Ltni fogjuk, ahogy a mobil-IP esetben is, a 6.5. alfejezetben lefektetett alapelvek j rsze a GSM hlzati architektrjban is visszakszn. A mobil-IP-hez hasonlan a GSM is kzvetett tvlasztst hasznl, amelynek sorn a partner hvst elszr a mobil felhasznl hazai hlzatba, majd onnan az idegen hlzatba irnytjk. A GSM szhasznlatval lve, a mobil felhasznl hazai hlzatt a felhasznl hazai nyilvnos fldi mobiltelefon-hlzatnak (home public land mobile
Idegen hlzat:
79.129.13.0/24
_________J _________
Mobil gynk
MA: 128.119.40.186
Hazai gynk
HA: 128.119.40.7
Idegen gynk
COA: 79.129.13.2
&
<iM>
ICMP gynkhirdets
Regisztrcis krelem
COA- 79.129.137 HA: 128.119.407 MA: 1 2 8 ! 19.40.186 lettram: 9999 Azonost: 714 COA: 79.129.13.2 HA: 128.119.40.7 MA: 128.119.40.186 lettartam: 9999 Azonost: 7 1 4 Begyazsi formtum
Regisztrcis krelem
Regisztrcis vlasz
HA: 128. H 9.40.7 MA: 1281:9.40.186 ienactam: 4999 Azonost: 714 Begyazs formtum HA: 128.119.407 MA. 128.1 i 9.40.186 lettartam: 999 Azonost: 714
Regisztrcis vlasz
Id
Id
network, homc PLMN) nevezzk. Mivel a PLMN rvidts hasznlata nem egszen felel meg annak a clunknak, hogy elkerljk a rvidtsek bettorldst, egy hazai GSM PLMN-re egsz egyszeren hazai hlzatknt fogunk hivatkozni. A hazai hlzat az a szolgltat, amellyel a mobil felhasznl szerzdsben ll (teht az a szolgltat, aki a havi szmlkat kldi a felhasznlnak). Az a PLMN, amelyet idegen hlzatknt fogunk emlegetni, az a hlzat, amelyben a mobil felhasznl jelenleg tartzkodik. Ahogy a mobil-IP esetben is, a hazai s idegen hlzatok feladatai elg sokban eltrnek. A hazai hlzat karbantart egy olyan adatbzist, az n. hazai helyregisztert (home location register, HLR), amely az egyes elfizetk lland telefonszmait s elfizeti profiljait tartalmazza. Fontos, hogy a HLR ezeken fell az elfizetk jelenlegi helyzetre vonatkoz informcikat is tartalmaz. Fia teht egy felhasznl ppen egy msik szolgltat hlzatban tartzkodik, a HLR elg informcit tartalmaz ahhoz, hogy (egy hamarosan ismertetett mdszerrel) megszerezzk azt az idegen hlzathoz tar toz telefonszmot, amelyre a felhasznl berkez hvsait tovbbtani kell. Ahogy ltni fogjuk, a hv fl a hazai hlzat specilis kapcsolkzpontjhoz, az tjr mobiltelefon kapcsolkzponthoz (Gateway Mobile services Switching Center, GMSC) fordul, amikor valamely mobil felhasznlt kvnja felhvni. Ismt a rvidtsek bet- torldsnak elkerlse vgett a GMSC-re a nagyobb kifejezerej hazai MSC (home MSC) kifejezssel fogunk hivatkozni. Az idegen hlzat tartja karban a ltogati helyregiszter (visitor location register, VLR) nev adatbzist. A VLR valamennyi, jelenleg a VLR ltal kiszolglt hlzatrszben tartzkod mobil felhasznlrl tartalmaz egy bejegyzst. VLR-bejegyzsek teht folyamatosan jnnek ltre s sznnek meg, ahogy felhasznlk belpnek a hlzatba s kilpnek onnan. A VLR-t ltalban az idegen hlzatbl vagy annak irnyba kezdemnyezett hvsok felptst vezrl mobil kapcsolkzponttal (mobile switching center, MSC) ptik egybe. A gyakorlatban egy szolgltat hlzata a szolgltat elfizeti szmra a hazai hlzat, mg a ms szolgltatkhoz tartoz elfizetk szmra egy idegen hlzat.
hlzatt. A hvs a hv fltl a PSTN-hlzaton t a mobil felhasznl hazai hlzatnak mobiltelefon-kapcsolkzpontjhoz (hazai MSC) tovbbtdik. Ez a hvs tjnak els szakasza. 2. A hazai MSC' fogadja a hvst, s a ITLR-tl lekrdezi a mobil felhasznl helyzett. A legegyszerbb esetben a HLR a mobil lloms barangolszmt (mobile station roaming number, MSRN) adja vissza, amelyre mi barangolszmknt fogunk hivat-
Hazai hlzat
Hv fl
Mobiltelefon
Nyilvnos kapcsolt 3) Mobiltelefon kapcsolkzpont 4 telefonhlzat (PSTN)
felhasznl
Idegen hlzat
fizetrl, s meghatrozza, hogy mely szolgltatsokat kell biztostani az elfizet szmra az idegen hlzatban (ha egyltaln biztostani kell valamilyen szolgltatst).
kommuniklni, hanem azt is, hogy a fennll hvst a hlzatban tallhat valamely kapcsolkzpontban t kell kapcsolni az j bzisllomshoz. Els lpsben tegyk fel, hogy a kt bzislloms ugyanazon MSC-hez tartozik, s a hvs tkapcsolst ennl az MSC-nl kell elvgezni. Egy vezrlstads szmos okbl kifolylag megtrtnhet, pldul (1) a jelenlegi bzislloms s a mobil lloms kztti jel annyira legyenglhet, hogy a hvs megszakadsnak veszlye fenyeget, vagy (2) egy cellban tl sok hvst kell kezelni, gy a cella tlterheltt vlhat. Ezt a tlterheltsget gy cskkenthetjk, hogy tbb mobil llomst tadunk a kevsb terhelt szomszdos cellknak. Mikzben egy mobil lloms valamely bzisllomshoz kapcsoldik, periodikusan mri a sajt bzisllomstl, illetve ms, hallhat bzisllomsoktl rkez jelzfnyzenetek jelerssgt. Ezeket a mrt rtkeket a mobil lloms msodpercenknt egyszer vagy ktszer elkldi a bzisllomsnak. A vezrlstadst ezen mrsek, a szomszdos cellk terheltsge s egyb tnyezk alapjn a rgi bzislloms kezdemnyezi [Mouly 1992]. A GSM-szabvny nem tartalmaz konkrt algoritmust annak meghatrozsra, hogy az tadsnak meg kell-e trtnnie vagy nem. A 6.30. bra azokat a lpseket brzolja, amelyek akkor mennek vgbe, ha egy bzis- lloms gy dnt, hogy tad egy mobil felhasznlt: I. A rgi bzislloms tjkoztatja az idegen MSC-t arrl, hogy vezrlstads kvetkezik, s arrl, hogy ki lesz az j bzislloms (vagy mely bzisllomsok jhetnek szba).
Rgi bzislloms
j bzislloms
Rgi bzislloms
bzislloms
Uj
hrom MSC
Hazai hlzat
Hazai hlzat
Hazai MSC
Hv fl Hazai MSC
Horgony MSC
Horgony MSC
a) Vezrlstads eltt
b) Vezrlstads utn
szinten (a kapcsoldsi pontjukat vltoztat felhasznlk miatt). Vajon a szlltsi s alkalmazsi szinteken is hasonl fontos klnbsgeket fedezhetnk fel? Csbt azt gondolni* hogy ezek a klnbsgek cseklyek lesznek, tekintve, hogy a hlzati rteg ugyanazt a best effort (legjobbra trekv), tovbbtsi szolgltatst nyjtja a felsbb rtegek szmra mind vezetkes, mind vezetk nlkli hlzatok esetn. Hasonlkppen, ha a TCP-hez vagy UDP-hez hasonl protokollok mind vezetkes, mind vezetk nlkli hlzatokban biztostanak klnfle alkalmazsok szmra szlltsi szolgltatst, akkor az alkalmazsi rtegnek is vltozatlannak kell lennie. Bizonyos rtelemben megrzsnk nem csal - a TCP s az UDP vezetk nlkli hlzatokban is kpes mkdni (s mkdik is). Msfell viszont a szlltsi protokollok ltalnossgban, s konkrtan a TCP is, nagyon eltr telje stmnnyel mkdnek vezetkes, illetve vezetk nlkli hlzatokban, gy a kt krnyezet kztti klnbsgekpp itt, a teljestmny tern lesznek szembet nek. Lssuk, mirt! Emlkezznk vissza, hogy a TCP a kld s a cmzett kztt elveszett vagy megsrlt szegmenseket jraadja. Mobil felhasznlk eseten a csomagvesztst okozhatja akr hlzati torlds (az tvlasztk puffereinek tlcsordulsa), akr vezrlstads (a szegmenseknek a mobil felhasznl j kapcsoldsi helyre trtn tirnytsbl szrmaz ksleltetsek). Brmely eset ll fenn, a TCP-szint nyugtbl az ad csak annyit tud meg, hogy a szegmens nem ment t srtetlenl -
a kld teht nem tudja, hogy a szegmenstor- lds, vezrlstads vagy bithibk felfedezse miatt veszett el. Az ad reakcija minden esetben ugyanaz - a szegmens ujraadsa. A TCP torldskezelsi eljrsa is ugyangy rea gl mindegyik esetre - cskkenti a torldsi ablak mrett, ahogy a 3.7. alfejezetben meg trgyaltuk. A torldsi ablak felttel nlkli cskkentsvel a TCP implicite azt felttelezi, hogy a csomagveszts torlds s nem bithiba vagy vezrlstads miatt kvetkezett be. A 6.2. alfejezetben lttuk, hogy a vezetk nlkli hlzatokban gyakrabban fordulnak el bithibk, mint vezetkes hlzatokban. Amikor ilyen bithibk kvetkeznek be vagy vezr lstads trtnik, semmi sszer ok nincs arra, hogy a TCP-kld cskkentse a torldsi ablak mretet (s ezzel az adsi sebessgt). Valjban olyan helyzet is fennllhat, hogy az tvlasztk pufferei resek, s csak nhny csomag lzeng a kt vgpont kztti tvonalon anlkl, hogy brmennyire is fennllna a torlds veszlye. Az 1990-es vek eleje-kzepe fel a kutatk rjttek, hogy a vezetk nlkli csatornk magas bithiba-valsznsge s a vezrlstads kvetkeztben bekvetkez csomagvesztsek lehetsge miatt a TCP torldskezelsi mechanizmusa problmt jelenthet a vezetk nlkli hlzatoknl. A problma megoldsra szletett mdszereket hrom nagycsoportba sorolhatjuk: Helyi javts. A helyi javtst vgz protokollok akkor s ott kezelik a bithibkat, amikor s ahol (pldul egy vezetk nlkli csatornn) bekvetkeznek. Ilyen az IKEE 802.11 ARQ protokoll, amellyel a 6.3. alfejezetben tallkoztunk, vagy azok a mg kifinomultabb eljrsok, amelyek mind nyugtzst (ARQ), mind elre irnyul hibajavtsi (FEC) alkalmaznak [Ayanoglu 1995]. A TCP-kld felvilgostsa a vezetk nlkli adatkapcsolatokrl. A helyi javtst hasznl megoldsoknl a TCP-kld nem tud arrl, hogy kikldtt szegmensei egy vezetk nlkli csatornn haladnak t. Alternatv megoldst jelenthet, ha a TCP-kldket s -vevket felvilgostjuk a vezetk nlkli adatkapcsolatok jelenltrl, hogy szt tudjk vlasztani a vezetkes hlzatok torlds kvetkeztben elfordul s a vezetk nlkli csatornk csomagsrls okozta csomagvesztseit, s hogy kizrlag vezetkes krnyezetben hasznljanak torldskezelst. A [Balakhrisnan 1997] anyag olyan TCP-vlto- zatokat tanulmnyoz, amelyek lnek ezzel a klnbsgttellel. |Wei 2004] olyan meg oldsokat vizsgl, amelyek clja egy kt vgpont kztti tvonal vezetk nlkli, illetve vezetkes szakaszain trtn csomagvesztsek kztti klnbsgttel. sszekttets-oszt (split-connection) eljrsok. A sszekttetsoszt eljrsok [Bakre 1995] a mobil felhasznl s a msik vgpont kztti (kt vgpont kztti) sszekttetst kt szlltsi szint sszekttetsre osztjk - ezek kzl az egyik a mobil hoszttl a vezelk nlkli hozzfrsi pontig, a msik rsz pedig a hozzfrsi ponttl az sszekttets msik vgpontjig terjed (amelyet itt vezetkes hoszt na k tteleznk fel). A kt vgpont kztti sszekttets gy teht egy vezetk nlkli s egy vezetkes szakasz konkatencijaknt ll el. A vezetk nlkli szakasz feletti szlltsi rteg lehet egy hagyomnyos TCPsszekttets [Bakre 1995], vagy UDP s fltte egy specilis hiba javt rteg. [Yavatkar 1994] egy szlltsi szint , szelektv ismtlst alkalmaz proto koll hasznlatnak lehetsgt vizsglja vezetk nlkli sszekttetsek felett. A (Wei 2006] anyagban kzztett mrsek arrl szmolnak be, hogy a sszekttets-oszt eljrsokat elterjedten hasznljk cells adathlzatokban, s hogy osztott TCP-ssze- kttetsek hasznlatval valban jelents
A TCP vezetk nlkli csatornk feletti teljestmnynek vizsglatt szksgszeren rvidre kellett szabnunk. Az olvast azonban arra btortjuk, hogy a hivatkozott anyagokat lapozgatva ismerje meg ennek a napjainkban is aktulis kutatsi terletnek nhny rszlett. Miutn megvizsgltuk a szlltsi szint protokollokat, foglalkozzunk kicsit a vezetk nlklisg s a mobilits alkalmazsi protokollokra gyakorolt hatsval. Itt figyelembe kell vennnk, hogy a vezetk nlkli csatornk gyakran relatve alacsony svszlessggel rendelkeznek, ahogy azt a 6.2. brn is lttuk. Ennek megfelelen a vezetk nlkli csatornk s klnsen a cells vezetk nlkli csatornk felett mkd alkalmazsoknak a svszlessget nehezen megszerezhet eszkzknt kell kezelnik. Pldul egy 3G-s mobiltelefonon fut webbngszt kiszolgl webszerver nagy valsznsggel nem lesz kpes ugyanazt a rszletds kpet szolgltatni, mint amit egy vezetkes kzegen keresztl kiszolglt bngsznek nyjt. Habr a vezetk nlkli csatornk kihvsok el lltjk az alkalmazsi rteget, az ltaluk lehetv vl mobilits, a hely- s krnyezet fgg alkalma zsok egsz sora szmra nyitja meg az utat [Chen 2000j. ltalnosabban fogalmazva, a vezetk nlkli s mobil hlzatok kulcsszerepet fognak jtszani a jv mindenhol jelen lv szmtgpes krnyezeteinek megvalstsban [Weiser 1991]. Ha azt mondjuk, hogy amit lttunk, csak a jghegy cscsa, nem jrunk messze a valsgtl, hiszen a vezetk nlkli s mobil hlzatok csak most fognak berobbanni a hlzati alkalmazsok s protokollok vilgba!
6.9. sszefoglals
A vezetk nlkli s mobil hlzatok forradalmastottk a telefonos vilgot, s egyre nagyobb hatssal vannak a szmtgpes hlzatokra is. Mivel segtsgkkel brhol, brmikor egy globlis hlzatot rhetnk el, nem csak egyre tbb helyen frhetnk az internethez, de rdekes, helyfgg szolgltatsok egsz sornak megjelense vlik lehetv. Minthogy a vezetk nlkli s mobil hlzatok egyre fontosabb szerepel tltenek be, ezt a fejezetet az alapelveik, gyakori vezetk nlkli csatorna feletti eljrsaik s architektrjuk bemutatsnak szenteltk. A fejezetet egy bevezetvel kezdtk a vezetk nlkli s mobil hlzatok vilgba, klnbsget tve a kommunikcis csatornk vezetk nlklisge s az ltaluk lehetv vl mobilits jelentette kihvsok kztt. Ez lehetv tette az egyes terletek kulcsfogalmainak elklntst s megismerst. Els lpsben a vezetk nlkli kommunikcit s a vezetk nlkli csatornk jellemzit tekintettk t, a 6.2. alfejezetben. A 6.3. s 6.4. alfejezetek- ben megvizsgltuk az IEEE 802.11 (WiFi) vezetk nlkli helyi hlzati szabvny, az IEEE 802.16 WiMAX-, valamint az IEEE 802.15.1 Bluetooth-szabvny adatkapcsolati jellemzit s megismerkedtnk a mobil internet-hozzfrssel. Ezek utn figyelmnket a mobilits vizsglatnak szenteltk. A 6.5. alfejezetben a mobilits szmos formjt lttuk, amelyek mind klnbz kihvsokat jelentenek* s klnbz megoldsokat kvetelnek. Megis merkedtnk a mobil felhasznlk megtallsnak, illetve a feljk trtn tvlasztsnak a problmival csakgy, mint a hlzati kapcsoldsi pontjukat vltoztat felhasznlk tadsnak klnbz mdszereivel. Megvizsgltuk, hogy ezeket a problmkat hogyan kezelik a mobil-IP, valamint a GSM esetben, rendre a 6.6. s
6.7. alfejezetekben. Vgl, a 6.8. alfejezetben megvizsgltuk a vezetk nlkli adatkapcsolatok s a mobilits szlltsi szint protokollokra s a hlzati alkalmazsokra gyakorolt hatst. Habr egy egsz fejezetet szntunk a vezetk nlkli s mobil hlzatok tanulmnyozsnak, egy egsz knyvre (vagy inkbb knyvekre) lenne szksg ezen rdekes s gyorsan fejld terlet teljes felfedezsre. Arra bztatjuk az olvast, hogy a fejezetben emltett anyagok segtsgvel jobban mlyedjen bele ebbe a tmakrbe.
Krdsek_______________________________________________
6.1. alfejezet
KI. Mit jelent az, ha egy vezetk nlkli hlzat infrastruktra mdban mkdik? Ha a hlzat nem infrastruktra mdban mkdik, akkor milyen mdban mkdik, s ez a md miben klnbzik az infrastruktra mdtl? K2. Melyik a vezetk nlkli hlzatok azon ngy tpusa, amelyet a 6.1. alfejezetben lv osztlyozsban megemltettnk? 6.2. al fejezel
K3. Mik a klnbsgek a vezetk nlkli csatornk kvetkez htrnyos tulajdonsgai kztt: jelgyengls, tbbutas terjeds, ms forrsokkal val interferencia? K4. Ahogy egy mobil csompont egyre tvolodik egy bzisllomstl, mi az a kt dolog, am it a bzisllomsnak meg kell tennie an nak rdekben, hogy ne njn a tovbbtott keretek elvesztsnek valsznsge? 6.3. aIfejezet
K5. Ismertesse az IEEE 802.11 jelzfny keretnek a szerept. K6. Igaz, vagy hamis a kvetkez llts: Mieltt egy IEEE 802.11 lloms tovbbt egy adatkeretet, elsknt RTS-keretet kell kldenie, s fogadnia egy CTS-keretet. K7. Mirt hasznlunk nyugtzst IEEE 802.11 eseten, amikor vezetkes Ethernet esetn nem? K8. Az IEEE 802.11 s az Ethernet keretszerkezete megegyez. Igaz vagy hamis? K9. Magyarzza meg az RTS-kszbrtk mkdst. K10. Tegyk fel, hogy az IEEE 802.11 RTS- s CTS-keretei ugyanolyan hosszak, mint a DATA- s ACK-keretek. Jelentene brmi elnyt a CTS- s RTS-keretek hasznlata? Vlaszt indokolja. Kll. A 6.3.4. alfejezet a mobilits olyan formjt trgyalja, amikor egy vezetk nlkli lloms azonos alhlzaton bell mozog kt BSS kztt. Amikor a hozzfrsi pontokat egy kapcsol kti ssze, azegyikhozzfrsi pontnak lehet, hogy egy,, becsaps >> M AC-cmmel elltott keretet kell kldenie annak rdekben, hogy a kapcsol megfelelen tovbbtsa a keretet. Mirt? K12. Mi a klnbsg a Bluetooth-hlzat mestercsompontja s egy IEEE 802.11 hlzat bzisllomsa kztt?
K13. Igaz vagy hamis a kvetkez llts: WiMAX esetn a bzisllomsoknak minden csompont fel ugyanazzal az adsi sebessggel kell adatokat tovbbtaniuk. K14. Mit jelent az alkalmi temezs WiMAX esetn? K15. A 6.3.2. alfejezctben lthattuk, hogy kt f 3G-szabvny ltezik: az UMTS s a CDM A-2000. Ezek a szabvnyok mely 2G-, illetve 2,5G-szabvnyok leszrmazottai? G.5-6.6. alfejezet Kl. Egy az internettel vezetk nlkli sszekttetsben ll csompontnak mindig mobilnak kell lennie? K17. Mi az eltrs az lland s a felgyeleti cm kztt? Ki osztja ki a felgyeleti cmeket? K18. Kpzeljnk el egy mobil-IP fltti TCP-sszekttetst. Igaz vagy hamis-e az az llts, miszerint a mobil lloms s a kezdemnyez fl kztti TCPsszekttets felptsi zenetei thaladnak a mobil lloms hazai hlzatn, mg az adattvitel a kezdemnyez fl s a mobil lloms kztt kzvetlenl, a hazai hlzat megkerlsvel folyik? 6.7. alfejezel K19. Mi a HLR s a VLR szerepe a GSM-hlzatokban? A mobil-IP architektrjnak mely elemei hasonlak a VLR-hez, illetve a HLR-hez? K20. Mi a horgony-MSC szerepe a GSM-hlzatokban? 6.8. alfejezet K21. Miaza hrom eljrs, amellyel elkerlhetjk azt, hogyegyctlen vezetknlkli sszekttets lerontsa a TCP-sszekttets kt vgpont kztti teljestmnyt?
Feladatok
F1. Vegyka 6.5. bra egy kldt tartalmaz CDM A pldjt. Mi lenne a kld ki menete (a kt brzolt adatbitre), ha a kld ltal hasznlt CDMA-kd (1, -1,1, -1,1, -1,1, -1) lenne? F2. Tekintsk a 2. adt a 6.6. brn. Mi a kld csatornra kldtt kimenete, Z (az i 1. ad jelhez val hozzadds eltt)? F3. Tegyk lel, hogy a 6.6. bra vevje a 2. ad ltal kldtt adatokat szeretn fogadni. Mutassa meg (szmts segtsgvel), hogy a vev a 2. ad kdjnak hasznlatval kpes kinyerni a 2. ad adatfolyamt a csatornn lv sszeaddott jelbl! F4. Egy ktads, ktvevs pldra adjon meg kt olyan 1 s -1 rtkeket tartalmaz CDMA-kdot, amelyek hasznlatakor a vevk nem kpesek az adk eredeti adatfolyamainak kinyersre. F5. Tegyk fel, hogy egy kvzban kt szolgltat is biztost WiFi-hozzfrst, sajt hozzfrsi pontjaikkal s cmtartomnyaikkal.
2
(a) Tegyk fel tovbb, hogy valamilyen vletlen folytn mindkt szolgltat gy lltotta be hozzfrsi pontjait, hogy a 11-cs csatorna felett mkd jenek. A IEEE 802.11 protokoll ebben a helyzetben teljes mrtkben mkdskptelen lesz? Gondolja t, hogy mi trtnik, amikor kt, klnbz szolgltathoz csatlakoz lloms egyszerre prbl adni. (b) Most tegyk fel, hogy az egyik szolgltat hozzfrsi pontja az 1-es, a msik pedig a 11-es csatornn mkdik. Hogyan vltoznak az elz krdsre adott vlaszai? F6. A CSMA/CA protokoll 4. lpsben egy keretet sikerrel tovbbt csompont az 1. lps helyett a 2. lpsnl kezdi jra a CSMA/CA protokoll vgrehajtst. Mi jrhatott a CSMA/CA tervezinek fejben, amikor gy dntttek, hogy egy ilyen lloms nem kezdheti meg rgtn a msodik keret adst (amennyiben a csatornt szabadnak rzkeli)? F7. Tegyk fel, hogy egy IEEE 802.11b llomst gy lltottak be, hogy mindig lefoglalja a csatornt egy RTS/CTS zenetvltssal. Tegyk fel tovbb, hogy ennek az llomsnak hirtelen tmad 1000 bjt tovbbtand adata, s az sszes tbbi lloms nyugalmi llapotban van ekkor. Az SIFS s DIFS rtkek fggvnyben, a terjedsi ksleltets figyelmen kvl hagysa mellett, bithibktl mentes csatornt felttelezve szmolja ki azt az idtartamot, amely a keret tovbbtshoz s a nyugta vtelhez szksges. F8. Vegyk a 6.32. brn vzolt elrendezst, A, B, C s D vezetk nlkli csompontokkal. A ngy csompont rdis hattvolsgt a sznezett ellipszisek mulatjk - mind a ngy csompont ugyanazon frekvencin mkdik. Amikor A forgalmaz, azt csak B hallhatja/veheti, amikor B forgalmaz, azt A s C is hallhatja/veheti, ami kor C forgalmaz, azt B s D is hallhatja/veheti, D csompont adst csak C csompont hallhatja/veheti. Ttelezzk fel, hogy valamennyi csompont vgtelen szm zenettel rendelkezik, amelyeket a tbbi csompontnak szeretne elkldeni. Amennyiben egy zenet cmzettje nem kzvetlen szomszd, az zenetet egy msik csompont segtsgvel kell tovbbtani. Ha pldul A D-nek szeretne tovbbtani, zenett elsknt B-nek kell elkldenie, aki azutn D-nek tovbbtja azt. Az idt rsekre osztjuk fel, egy zenet- kldshez pontosan egy idrs szksges, ahogy pldul a rseit ALOHA-ban is. Egy idrsben egy csompont hrom dolgot tehet: (i) zenetet kld (amennyiben van kldend zenete); (ii) fogadhat zenetet (ha pontosan egy zenetet kldenek neki); (iii) maradhat csndben. Amennyiben egy csompont kt vagy tbb adst is hall egyszerre, tkzs trtnik, s egyik zenetet sem sikerl fogadnia. Feltesszk, hogy nincsenek bitszint hibk, azaz ha pontosan egy zenetet kldnkki, az srtetlenl rkezik meg a kld hatsugarn bell elhelyezked csompontokhoz. (a) Tegyk fel, hogy egy mindentud vezrl (egy olyan vezrl, amelyik a hlzat valamennyi csompontjnak llapott ismeri) brmelyik csompontot brmire utasthatja, pldul, hogy kldjn egy zenetet, fogadjon egy zenetet vagy
maradjon csndben. A mindentud vezrlvel mekkora a legnagyobb adattviteli sebessg, amellyel egy zenetet C csomponttl A csompontig tvihetnk? Feltesszk, hogy a tbbi forrs/cl pros kztt nem kell semmit tvinni. (b) Tegyk most fel, hogy A kld zeneteket B-nek, s D pedig C-nek kld zeneteket. Mi a maximlis sszestett adatsebessg, amellyel az A-bl Bbe, illetve a D-bl C-be kldtt zenetek haladhatnak? (c) legyk lel, hogy A B-nek, C pedig D-nek kld zeneteket. Mi a maximlis sszestett adatsebessg, amellyel az A-bl B-be, illetve a C-bl D-be kldtt zenetek haladhatnak? (d) Tegyk fel, hogy a vezetk nlkli csatornkat vezetkesekre cserljk. Vlaszolja meg az (a)-(c) krdseket ebben az esetben is. (e) Tegyk fel, hogy most ismt vezetek nlkli krnyezetben vagyunk, s hogy a forrstl a clig eljutott zeneteket a cmzett egy ACK-zenettel nyugtzza (pldul mint TCP esetn). Vlaszolja meg ebben az esetben is az (a)-(c) krdseket. F9. rja le a 802.15.1 Bluetooth-keret formtumt. Khhez a knyvn kvl ms anyagokat is el kell olvasnia. Tall valamit a keretben, amely miatt a 802.15.1 hlzatban nem lehet tbb 8 aktv csompontnl? Vlaszt magyarzza meg. F10. Vegyk a kvetkez idealizlt WiMAX-hlzatot. A letltsi alkeret (lsd 6.17. bra) idrsekre van osztva, mghozz alkeretenknt Nazonos hossz letltsi rsre. A ngy csompontot, A-t, B-t, C-t s D-t a bzisllomsbl rendre 10 Mb/s, 5 Mb/s, 2,5 Mb/s, 1 Mb/s sebessgeken lehet elrni a letltsi csatornn. A bzislloms vgtelen mennyisg tovbbtand adattal rendelkezik valamennyi csompont fel, s brmelyik csompontnak a letltsi alkeret brmely idrsben tud kldeni. (a) xVlekkora maximlis adatsebessggel tud kldeni a bzislloms, ha brmelyik idrsben tetszleges csompontnak kldhet? Igazsgos ez a megolds? Magyarzza meg, hogy mit rt igazsgos alatt. (b) Ha a rendszerben definiltak egy igazsgossgi kvetelmnyt arra vonatkozan, hogy minden csompontnak ugyanannyi adatot kell fogadnia minden letltsi alkeretben, akkor mi lesz a bzislloms tlagos letltsi sebessge (az sszes csompontra szmolva) egy letltsi alkereten bell? (c) Tegyk fel, hogy az igazsgossgi kvetelmnyt gy mdostjuk, hogy brmely csompont legfeljebb ktszer annyi adatot fogadhat egy alkereten bell, mint brmely msik. Mi lesz a bzislloms tlagos letltsi sebessge (az sszes csompontra szmolva) egy letltsi alkereten bell? FII. A mobil felhasznlk IP-cmeinek megtartsra a 6.5. alfejezetben lert egyik megolds szerint az idegen hlzat a ltez t vlasztsi infrastruktrt hasznlva a hlzatban elterjeszt egy, a mobil felhasznlhoz vezet utat. A megolds egyik htrnyaknt a nehz sklzhatsgot emeltk ki. Amikor a
mobil felhasznl az egyik hlzatbl tlp egy msikba, az j hlzatnak ki kell hirdetnie a mobil felhasz- nlhozvezet utat, a rgi hlzatnakpedig vissza kell vonniaa korbban elterjesztett tvonalat. Gondolja t, hogy tvolsgvek tor-alap tvlaszts esetn hogyan terjed az tvlasztsi informci a hlzatban (klnskppen hlzatkzi tvlaszts esetn, a vilgot behlz hlzatok kztt). (a) Kpes lesz minden tvlaszt azonnal az j tvonalon kldeni csomagjait, amint az idegen hlzat elkezdi terjeszteni az tvonalat? (b) Lehetsges, hogy klnbz tvlasztk klnbz idegen hlzatban tartzkodnak hiszik a mobil csompontot? (c) Gondolkozzon el arrl az idsklrl, amelyen haladva a hlzatban tallhat tvlasztk vgl megismerik az j utat a felhasznlhoz. FI2. Tegyk fel, hogy a 6.21. brn lthat partner egy mobil csompont. Vzolja azt a plusz adatkapcsolati szint infrastruktrt, amely szksges volna a csomagok eredeti mobil csomponttl a (most mr mobil) partnerig val eljuttatshoz. A 6.22. brhoz hasonlan ismertesse az eredeti mobil csompont s a (most mr mobil) partner kztt halad adatcsomagok szerkezett. F13. Mobil-IP esetn milyen hatssal lesz a mobilits a forrs s cl kztt halad adatcsomagok kt vgpont kztti ksleltetsre? F14. Vegyk a 6.7.2. alfejezet vgn trgyalt lncolsi pldt. Tegyk fel, hogy egy mobil felhasznl az A, B s C idegen hlzatokat ltogatja meg, s hogy egy hv fl akkor ltest kapcsolatot a mobil felhasznlval, amikor a mobil felhasznl ppen az A idegen hlzatban tartzkodik. Ismertesse az idegen gynkk kztt, illetve az idegen gynkk s a hazai gynk kztt a mobil csompont A hlzatbl B, illetve C hlzatokba trtn tvndorlsa kzben lezajl zenet vltsi szekvencit. iMsodik esetknt tegyk fel, hogy nem fzzk lncba a kapcsolkzpontokat, s hogy a hv felet (csakgy, mint a hazai gynkt) kln kell rtesteni a mobil fel hasznl felgyeleti cmnek vltozsairl. Ismertesse ebben a msodik esetben szksges zenetvltsi szekvencit. F15. Vegynk kt mobil csompontot, amelyek ugyanazon, idegen gynkkel is rendelkez idegen hlzatban helyezkednek el. Lehetsges, hogy a kt mobil csompont ugyanazt a felgyeleti cmet hasznlja? Vlaszt indokolja! F16. Alapul vve azt az eljrst, amelyben a VLR friss informcit kld a HLR-nek a mobil csompont helyzett illeten, mik az elnyei, illetve htrnyai annak, ha az MSRN-t adja meg HLR-nek a VLR cme helyett?
Gondolkodtat krdsek
Gl. Soroljon fel t olyan, a piacon ma jelen lv termket, amelyek rendelkeznek Blue- tooth vagy IEEE 802.15 interfsszel. G2. Elrhet a 3G vezetk nlkli szolgltats a lakhelyn? Milyen ron? Milyen alkalmazsokat tmogat? G3. IHHK 802.11 felhasznlknt mifle problmkat figyelt mr meg? Hogyan fejldhet az IEEE 802.11, hogy kikszblje ezeket a problmkat? G4. Keressen r a Weben, hogy milyen irnyokba trtntek fejlesztsek WiMAX-
hl- zatok tern. Mennyire voltak tfogak ezek a fejlesztsek? Milyen adattviteli sebessgeket sikerlt velk elrni? Mekkora tvolsgokat sikerlt thidalni? Mindezt mekkora felhasznlszm mellett? G5. Keresgljen a weben, hogy megismerkedjen az EVDO-t s HSDPA-t rint fejlesztsekrl. Melyik terjedt el jobban eddig? Hol?
Vlaszol
Charlie Perkins
Charles E. Perkins a Nokia Research Centeren belli Palo Alto Systems Research Center egyik legmegbecsltebb munkatrsa. Vezetk nlkli mobil hlzatokkal s di
namikus konfigurcis protokollokkal foglalkozik. Ezek mellett az internetet fejleszt munkacsoport (Internet En- gineering Task Porc, IETF) mobil-IP munkacsoportjnak kiadvnyszerkesztje, a mip4, mip, manet, dhc, sea- moby (Seamless Mobility - teljes mobilits), valamint az autoconf munkacsoportok tbb szabvnynak s ms dokumentumnak szerzje vagy trsszerzje, az ACM s az IEEE tbb vezetk nlkli hlzatokkal foglalkoz foly iratnak szerkesztje. A Nokinl meghatroz szerepe volt azokban a kutatsokban, amelyek az ad hoc hlzatokkal, illetve a tbb milli hordozhat eszkz internet-hozz frsvel, tovbb a sklzhatsggal, illetve teljestmnyjellemzkkel foglalkoztak. Tbb mobil-IP-rl, illetve ad hoc hlzatokrl szl knyvet rt s szerkesztett, valamint szmos djnyertes cikkel is publiklt a mobilhlzatok, az ad hoc hlzatok, a mobilhlzatok tvonal-optimalizlsa, az erforrs-felderts, illetve a mobil szmtgpek automatikus konfigurcijnak tmakrben. Charles Perkins emellett a MobiHoc konferencia egyik ltrehozja. A konferencinak volt elnke, illetve programbizottsgi elnke is. Dolgozott az IETF internetarchitektrval foglalkoz bizottsgban (Internet Architecture Board) s az amerikai Nemzeti Kutatsi Tancs (National Research Council) tbb bizottsgban csakgy, mint a Katonai Kutatlaboratrium (Army Rese arch Lb) s a svjci M1CS Program szmos technikai rtkel bizottsgban. Mirt dnttt a vezetk nlklisg s a mobilits kutatsa mellett? A vezetk nlkli hlzatok s a mobilits vilgba egy IBM Research-nl vgzett projektmunka sorn kerltem az 1980-as vek vgn. Voltak rdis adatkapcsolataink, s egy olyan ThinkPad-szer eszkzt prbltunk kifejleszteni (mint pldul egy Palm Pilot), amely kpes vezetk nlkli hlzatokhoz
csatlakozni s felismerni a kzrst. Kifejlesztettnk egy egyszer megoldst (a ksbbi mobil-lP-t), s azt vettk szre, hogy mkdik. Mobil IP-s tapasztalainkkal felvrtezve kidolgoztuk az RIP egy mdostott vltozatt, amely gyorsnak s hatkonynak bizonyult, s amellyel megvalstottuk az els ad hoc hlzatot, ami szintn elg jl mkdtt. A mkds alatt n azt rtem, hogy a mr meglv alkalmazsok brmifle mdosts nlkl is teljesen jl futottak, s a hlzat az j fejlesztseinkkel is ugyanolyan olajozottan mkdtt. Ezeket a jellemzket nevezhetjk alkalmazstltszsgnak, illetve sklzhatsgnak. Termszetesen a kutats a laborban s a piaci siker egszen ms dolgok, s a fent emltett kt megoldsban mg rengeteg rtk rejlik, ami a piacon mg nem jelent meg. Mi volt az els munkja a szmtgpiparban? A Texas llambeli houstoni TRW Controlsnl dolgoztam. Ez jelents vltozst jelentett egyetemi tanulmnyaimhoz kpest.
A TRW Controlsnl megtanultam egy fontos dolgot: azt, hogy mennyire gyengk mg a legkritikusabb kzmvezrl rendszerek szoftverei is. Ezek a rendszerek azrt felelsek, hogy risi villamos eloszthlzatokban a villamos ram ramlst vezreljk. A vezrlshez kifejlesztett szoftverekben olyan megoldsokat tallhatunk, amelyektl felll az ember htn a szr. Mindemellett az temtervek mindig szkre szabottak voltak, s a programozk vgtelenl kibrndultak voltak a menedzsment szndkai s sajt munka- krlmnyeik miatt. Az egsz rendszeri jra kellett volna tervezni, az alapoktl kezdve. Nincs tl sok okom azt hinni, hogy a dolgok az elmlt 30 v sorn megvltoztak, fleg a 2003-as ramsznet krlmnyeinek ismeretben. Valjban a liberalizci kvetkeztben szinte biztos, hogy rosszabb a helyzet. rmmel hagytam ott a TRW Controlst, s kezdtem a Tektronixnl (Tek Labs) dolgozni. Mi jelenti a legnagyobb kihvst munkjban? A legnagyobb kihivst az jelenti, hogy rjjjek, mivel segthetnm a legjobban a cgemet. Munkm rsznek tekintem ezenkvl azt, hogy kicsit alaktsak az ltalam megismert vezetk nlkli megoldsokon, hogy azok jobb szolgltatst s az emberek szmra nagyobb lmnyt nyjtsanak a mindennapokban. A cgem feladata az emberek sszekapcsolsa (Connecting People), s n remlem, hogy hozzjrulok ahhoz, hogy ezek a kapcsolatok - amennyire csak lehet harmonikusak s zavartalanok legyenek. s miutn ezt a munkt gy igyekszem vgezni, hogy maximalizljam az ltalunk fejlesztett mszaki megoldsok piaci letkpessgt, minden nap j kihvs. gy gondolom, hogy klnsen a vezetk nlkli vilgban mg fejldnik kell a biztonsgi megoldsoknak, hogy vonzak s elfogadottak (mint egy eskabt) legyenek, s ne nehzkesek s ijesztek (mint amilyenek manapsg). Rszletesebben mszaki szinten fogalmazva - ebben valjban jobban otthon is vagyok - hlzati protokollok problmit prblom megoldani gy, hogy minl kevesebb teher nehezedjen a vezetk nlkli eszkzkre (s akkumultoraikra!), s hogy a felhasznlk a lehet legkevesebb knyelmetlensggel szembesljenek. A mai vezetk nlkli telefonok sszektse az internettel nagysebessg hlzati megoldsok segtsgvel egyrszt elkpeszten rdekes mszakilag, msrszt pedig vgtelen piaci lehetsgeket jelent azok szmra, akik meg tudjk tallni a megfelel utakat. Hogyan ltja a vezetk nlkli vilg jvjt? Az egsz vezetk nlkli ipar hatalmas vltozson megy keresztl, aminek nem ltni a vgt. j nagysebessg vezetk nlkli megoldsok emelkednek fel, s lehet, hogy olyan elre nem lthat gyakorlati hatsaik lesznek, amelyek gykeresen megvltoztatjk majd a trsadalmat. A jelenlegi, titkossggal kapcsolatos vrakozsaink s a kommunikcink (hang-, kps adatkommunikci) korltozott lehetsgei tz v mlva mr esetleg is meretlenek lesznek. Ahogy a cgek is egyre inkbb a vezetk nlkli kommunikci hvei lesznek, nagyon valszn, hogy j biztonsgi mrck jelennek majd meg, amelyek
jelentsen megvltoztatjk majd a munkahelyi gyakorlatot. Elg vilgosan ltszik, hogy egyre nagyobb frekvenciaspektrum ll majd a rdis kommunikci rendelkezsre, amely igen nagy sebessgv vlhat. Az llamok tbb s tbb nagysebessg rdis szolgltatst bocstanak majd polgraik rendelkezsre - egsz vrosok vlhatnak risi helyi hlzatokk. Ez j ert adhat ahhoz, hogy ismt megismerjk a kzssg fogalmt, egy fogalmat, amely trsadalmunkban, legalbbis az Egyeslt llamokban mr rg nem ismert. Termszetesen a kzssg tovbbra is ignyelni fogja az internethez val hozzfrst. A trolkapacitsok hihetetlenl gyorsan nnek, mghozz olyan olcsk, hogy ma mr zsebnkben hordhatjuk a teljes Wikipdit, valsznleg a vilg sszes telefonszmt, s akkor mg nem is emltettk a pldtlan szemlyes knyv-, zene- s filmgyjtemnyeket. A vezetk nlkli megoldsok fejldse gyorstja az internet nvekedst. Ahogy a vezetk nlkli eszkzk olcsbbakk vlnak, egyre tbb helyen jelenik meg az internetes kommunikci letnkben (fldugkban, tbb rsztvevs jtkokban, a metr krtya- leolvasiban). Ez pedig tovbb motivlja az j alkalmazsok s biztonsgi megoldsok fejlesztst.
30
6. VEZETK
NLKLI S MOBILHLZATOK
FELADATOK
31
7. FEJEZET
Multimdia-hlzatok
Napjainkban tani lehetnk az internetes audio- s videoalkalmazsok szles kr terjedsnek. Sok szz weboldal - pldul a CCN, Rhapsody, Napster, MSN, AOL, Yahoo! - teszi elrhetv az audio- s videotartalmak vals idej letltst. A YouTube s ms videomegoszt oldalakon a felhasznl - krsre - msok ltal feltlttt videkat is megtekinthet. Millik hasznljk a Skype-ot telefonlsra s videokonferencira. Nhny hagyomnyos televzis csatornt ma mr az interneten keresztl kzvettenek, lehetv tve a vilg brmely szgletbl szrmaz televzis adsok vtelt. A multimdis internetal kalmazsok robbansszer nvekedse a szles sv lakossgi hozzfrs s a nagysebes sg vezetk nlkli hozzfrs (mint pldul a WiFi) elsdleges kvetkezmnye. Ahogy az 1.2. alfejezetben elmondtuk, a szles sv hozzfrsek szma tovbb nvekszik, ez pedig elsegti j s rdekes multimdis alkalmazsok fejldst. A multimdis alkalmazsok a szolgltatsok kvetelmnyeit teintve jelentsen klnbznek a hagyomnyos rugalmas alkalmazsoktl, mint amilyen az e-mail, a webszrf- ls, a tvoli elrs, a fjlletlts s -megoszts is (amelyet a 2. fejezetben trgyaltunk). A rugalmas alkalmazsokkal ellenttben a multimdis alkalmazsok klnsen rzkenyek a vgpontok kztti ksleltetsre s ksleltetsingadozsra, de eltrik az alkalmanknti adatvesztesget. Ezt a fejezetet a multimdis alkalmazsok osztlyozsval kezdjk (lsd 7.1. alfejezet). Ltni fogjuk, hogy a multimdis alkalmazsok besorolhatk trolt
audio/vide folyamszer letltse (streaming stored audio/video), l audio/vide folyamszer letltse (strea- ming live audio/video) vagy vals idej interaktv audio/vide (real-time interactive audio/ vide) kategrikba. Tovbb, azt is ltni
fogjuk, hogy mindegyik alkalmazsnak a hlzat klnbz szolgltatsaira van szksge. A 7.2. alfejezetben megvizsgljuk a trolt audio/vide folyamszer letltsnek nhny rszlett. A 7.3. alfejezetben megmutatunk alkalmazsszint eljrsokat, amelyek megnvelhetik a multimdis alkalmazsok tel jestmnyt a mai legjobb szolgltatsra trekv (best-effort) interneten. A 7.4. alfejezetben bemutatunk szmos multimdia-protokollt, amelyeket a mai interneten hasznlnak. A 7.5. alfejezetben olyan hlzati mechanizmusokat vizsglunk meg, amelyekkel meg tudjuk klnbztetni az egyik forgalmi osztlyt (pldul ksleltetstr alkalmazsokat, mint amilyen a multimdia) a msiktl (pldul rugalmas alkalmazsok, amilyen az FTP is), s amelyek megklnbztetett szolgltatsokat nyjtanak az eltr forgalmi osztlyok szmra. Vgl a 7.6. alfejezetben tgondoljuk azt az esetet, amikor a hlzatnak teljest mnybeli garancikat kell adnia egy alkalmazs szmra - pldul hogy mi szksges ahhoz, hogy a csomagalap IP-tclefonhvs ugyanazt a teljestmnyt kapja, mint a vonal -
523
kapcsolt telefonhlzati hvs. Ltni fogjuk, hogy ehhez j hlzati mechanizmusok s protokollok bevezetsre lesz szksgnk.
7.1.
A 2. fejezetben az alkalmazsok szmra nyjtand szolgltatsi felttelek trgyalsa sorn meghatroztunk bizonyos szm jellemzt, amelyek szerint ezeket a feltteleket osztlyozhatjuk. Kett ezek kzl - az idbeli tnyezk s az adatvesztesggel szembeni trkpessg - klnsen fontos a hlzati multimdis alkalmazsok szmra. Az idbeli tnyezk azrt fontosak, mert szmos multimdis alkalmazs nagyon ksleltetsrzkeny (delay sensitive). Rvidesen ltni fogjuk, hogy sok multimdia-alkalmazsban a cso magok, amelyek a kldtl a fogadig pr szz milliszekundumnl tbb ksleltetst szen vednek el, lnyegben hasznlhatatlanok a fogad fl szmra. Msfell viszont a hlzati multimdia-alkalmazsok tbbnyire vesztesgtrk (loss-tolerant) - a ritkn elfordul ritkn okoz hibt az audio-/videolejtszsban, s ezek a vesztesgek gyakran rszlegesen vagy teljesen elrejthetk. Ezek a ksleltetsrzkeny, m vesztesgtr jellemzk teljesen klnbznek azoktl, amelyekkel a rugalmas alkalmazsok - a web, az e-mail, az FTP s a Telnet - rendelkeznek. A rugalmas alkalmazsok szmra a hossz ksleltetsek ideges- tek, m nem krosak, s az tvitt adat teljessge s srtetlensge a legfontosabb.
7.1.1.
Pldk multimdia-alkalmazsokra
Az internet a multimdia-alkalmazsok szles skljt tmogatja. Ebben az alfejezetben a multimdia-alkalmazsok hrom tfog osztlyt vizsgljuk meg: (1) a trolt audio/vide folyamszer letltst, (2) az l audio/vide folyamszer letltst s (3) a vals idej interaktv audio/videt. Ebben a fejezetben nem trgyaljuk a tltsd-le-s-indtsd-el tpus alkamazsokat, mint amilyen egy P2P fjlmegoszt alkalmazs, ahol a teljes MP3-fjl letltse megtrtnik, mieltt annak lejtszsa elkezddne. A tltsd-le-s-indtsd-el tpus alkalmazsok rugalmas, fjltviteli alkalmazsok klnleges ksleltetsi kvetelmnyek nlkl. A fjltviteli (HTTP s FTP) s P2P-rendszereket a 2. fejezetben vizsgltuk meg.
Mivel a mdia elre felvett, a kliensnl lv felhasznl megllthatja, visszatekerheti, elreprgetheti vagy kereshet a multimdis tartalomban. Az idnek, amely a felhasznl krstl annak teljeslsig eltelik, egy s tz msodperc kztt kell lennie az elfogadhat vlaszreakcihoz. Folyamszer multimdia-letlts. A trolt audio/vide folyamszer letltsre 6.32. bra. Azalkalmazsokban, F8. feladat hlzatiaelrendezse szolgl kliens tipikusan pr msodperccel a fjl szerverrl
523
trtn letltsnek megkezdse utn kezdi el az audio-/videotartalom lejtszst. Ez azt jelenti, hogya kliens mr lejtssza azaudit/videt a fjl egy bizonyos helyrl, mikzben a ksbbi fjlrszeket mg ppen tlti le a szerverrl. Ez az eljrs, az gynevezett folyamszer multimdia-letlts (streaming), elkerli a teljes fjl letltst (s a fel
merl igen valszn nagy ksleltetst), mieltt a lejtszst elkezden. Sok ilyen folyamszer multimdia-letlt kliens ltezik, mint pldul a RealPlaycr a RealNet- workstl (RealNetworks 2007], az Apple QuickTime-ja [QuickTime 2007) s a Microsoft Windows Medija [Microsoft Media Player 2007]. Folytatlagos lejtszs. Amint a multimdia-tartalom lejtszsa elkezddik, a felvtel rgztsnek eredeti idztse szerint kell elrehaladnia. Ezrt az adatnak idben meg kell rkeznie a szervertl a kliensen val lejtszshoz, msklnben a felhasznl frusztrl pufferelsi ksleltetst rzkel. Habr a trolt mdis alkalmazsoknl kvetelmny a folyamatos lejtszs, a kt vg kztti ksleltetsk mindazonltal kevsb szigor, mint az olyan l, interaktv alkalmazsoknak, mint pldul az internettelefon s a videokonferencia (lsd albb).
IPTV
A televzis tartalmat hagyomnyosan fldfelszni mikrohullm sugrzssal, hibrid fnyvezetszlas-koaxilis kbeles (hybrid-fiber coax, MFC) s geostacionrius mholdas csatorn kon szolgltatjk (lsd 1.2. alfejezet). A mai internetes vilgban viszont nagymrtk rdekl ds van az IPTV irnt - amely az interneten val televzis tartalom sztosztst jelenti. Az IPTV egyik kihvsa a hatalmas svszlessg igny megoldsa, klnsen a szerverforrsnl. Gondoljunk bele pldul egy f sportesemny kzvettsbe, amilyen egy vilgbajnoki meccs, amelyet egyetlen szerver szolgltat az interneten 100 milli egyidej felhasznlnak. Ha a vide tviteli sebessge egy 1 Mb/s-os szerny rtk, akkor a szerver ltal ignyelt svszlessg iszony nagy, 100 terabit/msodperc lenne! Ezrt a klasszikus kliens-szerver eloszts szba sem jhet. Ha az IP tbbesklds az interneten szleskren elterjedne, akkor sokkal knnyebb lenne az IPTV-t megvalstani. Egy msik megolds a videnak egy tbbeasadssal tartalomsztoszt alfejezet). Szintn alternatv megolds a peer-to-peer sztoszts, ahol minden egyes fl, amely egy televzis csatornt fogad, maga is segt a csatorna jrasztosztsban a tbbi fl fel. A legnagyobb vonzer az ilyen megoldsban taln az alacsony sztosztsi kltsg: ha az egyes telek egyttesen elg feltltsi svszlessget adnak, kis szerver-svszlessgre van szksg (taln csak alig prszorosa a vide sebessgnek). Ilyen alacsony r esetn brki, akinek van webkamerja, elhanyagolhat kltsggel egy l kzvettst tud sztosztani tbb milli felhasznlnak. mkd tlapol hlzaton val sztosztsa. CDNs) Ilyen szolgltatst (lsd a hlzatok (content distribution networks, nyjtanak 7.3.
26
6. VEZETK
NLKLI S MOBILHLZATOK
Eddig nhny BitTorrent tpus P2P IPTV rendszert ptettek ki. Ezen a terleten az ttr, a CoolStreaming, tbb mint 4000 egyidej felhasznlt szmllt 2003-ban |CoolStreraming 2005]. Nemrg szmos ms rendszer, pldul a PPLive s ppstream, rt el hatalmas sikereket tbb tzezer egyidej felhasznlval, akik 300 kb/ss 1 Mb/s kzt ti sebessggel nztek adsokat. Ezeknl a BitTorrent tpus rendszereknl a felek egy dinamikus tfed hlzatot alkotnak, s videotredkeket cserlnek ki az tfed hlzaton lv szomszdjaikkal. rdekes lenne vgigkvetni, hogyan fejldik az IPTV a kvetkez 5-10 vben. Mi lesz a mszaki megolds alapja: CDN vagy P2P, vagy a kett keverke? Vajon a vilgbajnoksg szurkoli tbornak nagy rsze az interneten keresztl fogja nzni a meccseket 20!4-ben?
Mivel az l audio-/vide folyamszer letlts sorn fogadott adatot nem troljk, a kliens nem tekerhet elre, azaz nem nzhet bele a mdiba ksbbi esemnyeket kutatva. Habr a vett adat helyi trolsval lehetsges a megllts s a visszatekers. Az l, kzvettsszer alkalmazsoknak gyakran nagyszm kliense van, amelyek ugyanazt az audio-/videoadst tltik le. A 4.7. alfejezetben trgyalt IP tbbeskldses eljrsokkal lehet az l audiot/videt hatkonyan sztosztani sok fogadhoz egyszerre. Ennek ellenre manapsg az l audio-/videotartalmakat gyakran alkalmazs szint tbbeskldssel (P2P vagy CDN hasznlatval) vagy tbb klnll egynekadsos adatfolyammal osztjk szt. Hasonlan a trolt audio/vide folyamszer letltshez a folyamatos lejtszs kvetelmny, habr az idbeli megktsek nem annyira szigorak, mint a vals idej interaktv alkalmazsoknl. A felhasznl letltsi krstl az l tvitelt kvet lejtszs megkezdsig eltel legfeljebb nhny tz msodperces ksleltets mg elviselhet.
28
6. VEZETK
NLKLI S MOBILHLZATOK
informcit is kldhetnk a hlzat keltette csomagveszts cskkentsre. Ezek kzl szmos eljrst megvizsglunk a fejezet els felnek htralv rszben.
szolgltatsokat, az ISP tlbiztosthatja a svszlessget s a kapcsolsi kapacitst. Megfelel forgalmi elrejelzssel s svszlessg tlbiztostsval puha QoS-garancikat lehet tenni. Tartalomsztoszt hlzatok (CDNs) msolatot ksztenek a trolt tartalomrl, s a msolatokat az internet szln helyezik el. Az interneten keresztlfoly forgalom (weboldalak, MP3-ak, videk) nagy rszt trolva, a CDN-ek jelentsen cskkenthetik a forgalmat az ISP-ken s az ISP-k kztti csatlakozsi pontokon. Tovbb, az CDN-ek klnbz szolgltatsokat nyjtanak a tartalomszolgltatknak: azok a tartalom- szolgltatk, amelyek fizetnek egy CDN-szolgltatsrt, gyorsabban s hatkonyabban clba juttathatjk a tartalmat. A CDN-eket a 7.3. alfejezetben tanulmnyozzuk. A felhasznlk milliihoz egyidejleg eljuttatott l adsfolyam forgalmnak (pldul egy sportesemny forgalmnak) kezelsre, tbbeskldses tlapol hlzatokat (multicast overlay neworks) hozunk ltre. Egy tbbeskldses tlapol hlzat felhasznli hosztokat s valsznleg dediklt szervereket tartalmaz, amelyek az interneten sztszrdva helyezkednek el. Ezek a hosztok, a szerverek s a kztk lv logikai adatkapcsolatok egyttesen egy tlapol hlzatot alkotnak, amely tbbeskldssel tovbbtja (lsd 4.7. alfejezet) a forgalmat a forrstl a tbb milli felhasznlig. Ellen ttben az lPtbbeskldssel,aztlapol hlzatok alkalmazsi szinten vgzika tbbes kldst. Pldul a forrshoszt kldheti az adatfolyamot hrom tlapol szervernek; mindegyik tlapol szerver tovbbi lapol szervereknek s hosztoknak tovbbtja a folyamot; a folyamat folytatdik, sztosztsi ft hozva ltre az IP-hlzat felett. Az tlapol hlzatokon a npszer ladsforgalmakat tbbeskldssel tovbbtva az internet teljes forgalmt cskkenteni lehet az egynekadsi sztosztshoz kpest. A lefoglalok tbora s a szabadelv tbor kztt van meg egy harmadik tbor is - a megklnbztetett szolgltatsok (diferentialed services, Diffserv) mellett rvelk. Ez a tbor viszonylagosan kis mrtk vltoztatsokat hajtana vgre a hlzaton s a szlltsi rtegben, s egyszer djazs s hzirend smkat vezetne be a hlzat szln (amely a felhasznlk s a felhasznlk ISP-i kztti interfszt jelenti). Alapelvk, hogy kis szm forgalmi osztlyt hoznak ltre (csupn kt osztlyt), minden adatcsomagot hozzrendelnek egy osztlyhoz, az adatcsomagoknak az osztlyuknak megfelelen klnbz szint szolgltatsokat adnak az tvlasztk vrakozsi soraiban, s a djat a felhasznlktl az ltaluk a hlzatba kldtt csomagok osztlynak megfelelen szedik be. A megkln bztetett szolgltatsokat a 7.5. alfejezetben trgyaljuk. A multimdia-forgalom kezelsnek e hrom mdszert - a legtbbet kihozni a legjobbra trekv szolgltatsbl, a megklnbztetett QoS s a garantlt QoS sszefoglaltuk a 7.1. tblzatban, s egyenknt trgyaljuk a 7.3., 7.5. s 7.6. alfejezetben.
30
6. VEZETK
NLKLI S MOBILHLZATOK
Hangtmrts az interneten
A folyamatosan vltoz audiojel (amely beszdbl vagy zenbl szrmazik) digitlis jell trtn talaktsnak lpsei a kvetkezk: Az analg hangjelet elszr egy meghatrozott sebessggel mintavtelezik, pldul msodpercenknt 8000 mintval. Minden minta rtke egy tetszleges vals szm. Ezutn minden mintt egy a vges szm rtkhalmaz valamely elemre kerektenek. A mvelet neve a kvantls (quantization). A vges szm rtkhalmaz - amely elemeit kvantlsi rtkeknek nevezzk - tipikus mrete a kett valamely hatvnya, pldul 256 kvantlsi rtk. Minden kvantlsi rtket kttt szm bittel runk le. Pldul 256 kvantlsi rtk esetn minden rtket - gy minden mintt is - 1 bjttal runk le. Minden
mintt talaktva, bitekkel runk le. A mintk bitszint egymsutn rva a jel digitlis lerst kapjuk.
reprezentcijt
Ha egy audiojelet pldul msodpercenknt 8000 mintval mintavteleznk, s minden mintt 8 biten kvantlunk, akkor a kapott digitlis jel bitsebessge msodpercenknt 64 000 bit lesz. A lejtszshoz ezt a digitlis jelet ezek utn visszaalakthatjuk - azaz dekdolhatjuk - analg jell. A dekdolt audiojel azonban ltalban klnbzik az eredeti audiojeltl. A mintavtelezsi sebessg s a kvantlsi rtkek szmnak nvelsvel jobban kzelthetjk az eredeti analg hangjelet. gy nyilvnval kompromisszum van a de kdolt audiojel minsge s a digitlis jel trhely-, illetve svszlessg-ignye kztt. A most lert alap kdolsi eljrst impulzuskd-modulcinak (pulse code modula- tion, PCM) nevezik. A beszdkdols gyakran hasznlja a PCM-et, msodpercenknti 8000 mints mintavteli sebessggel s mintnknti 8 bites lerssal, gy 64 kb/s-os adat- sebessget eredmnyezve. Azaudio-CD-k szintn PCM-et hasznlnak, msodpercenknti 44 100 minta mintavteli gyakorisggal s mintnknt 16 bites lerssal; ebbl egycsatorns hangra 705,6 kb/s, szterera pedig 1,411 Mb/s adatsebessg addik.
32
Ahogy a sztere zenre add 1,411 Mb/s-os sebessg majdnem minden hozzfrsi sebessgei meghalad, ugyangy a beszd 64 kb/s-os sebessge is meghaladja a betrcs- zs modemmel rendelkez felhasznl hozzfrsi sebessgt. Ezen okokbl kifolylag a PCM-mel kdolt beszd s zene ritkn hasznlatos az interneten. Helyettk tmrtsi eljrsokat hasznlnak az adatfolyam bitsebessgnek cskkentsre. A beszdnl hasz nlt npszer tmrtsi eljrsok a GSM (13 kb/s), a G.729 (8 kb/s), a G.723.3 (6,4 s 5,3 kb/s) s mg szmos szabadalmaztatott eljrs. Egy sztere CD-minsghez kzeli np szer tmrtsi eljrs az MPEG 1 layer 3, kzismertebb nevn az MP3. Az MP3-tmrtk leggyakoribb sebessge a 96 kb/s, a 128 kb/s s a 160 kb/s, s nagyon kicsi hangminsg-romlst okoznak. Ha egy MP3-fjlt tbb rszre vgunk, akkor mindegyik rsz lejtszhat marad. Az ilyen fejlc nlkli fjlformtum lehetv teszi az MP3-ba kdolt zene interneten keresztli letltst (feltve, ha a lejtszsi sebessg s az internetkapcsolat sebessge kompatibilisek). Az MP3 tmrtsi szabvny bonyolult, felhasznlja a pszicho- akusztikai maszkolst, a redundancia cskkentst s a bitgyjt pufferelst.
Kptmrts az interneten
A vide kpek sorozata, tipikusan lland sebessggel (24 vagy 30 kp/s) megjelentve. Egy digitlisan kdolt kp kppontok tmbjbl ll, amelyben minden kppontot bizonyos szm bittel rnak le, a fnyessg s szn kifejezshez. A videban ktfle redundancia van, mindkettt kihasznlhatjuk a tmrtsnl. A trbeli redundancia egy kpen belli redundancia. Pldul egy olyan kp, amely tbbnyire fehr sznt tartalmaz, hatko nyan tmrthet. Az idbeli redundancia egy kp ksbbi megismtldst jelenti. Egy kp s egy ksbbi kp teljes egyezsnl pldul nincs rtelme a ksbb kvetkez kpet is kdolni; sokkal hatkonyabb egyszeren jelezni a kdols sorn, hogy a ksbbi kp teljesen ugyanaz. Az MPEG tmrtsi szabvnyok a legnpszerbb tmrtsi eljrsok. Ide tartozik a CD-ROM-minsg videt jelent MPEG 1 (1,5 Mb/s), a j minsg DVD videt jelent MPEG 2 (3-6 Mb/s) s az objektumorientlt videotmrtst jelent MPEG 4. Az MPEG-szabvnyok jelentsen tmaszkodnak a JPEG-szabvnyra a kptmrtsnl azltal, hogy a kpek kztti idbeli redundancia cskkentse mellett a JPEG ltal biztostott trbeli redundancit is kihasznljk. A H.261 videotmrt szabvnyok is igen npszerek az interneten. Emellett mg szmos egyedi, szabadalmaztatott eljrs ltezik, pldul az Apple QuickTime-ja s a RealNetworks kdoli. Azoknak az olvasknak, akik tbbet szeretnnek megtudni a hang- s kptmrtsrl, ajnlott olvasmny a [Rao 1996] s a [Solari 1997] munkja. [Crowcroft 1999] j ttekintst ad a hlzaton keresztli multimdia-tvitelrl.
gy kis trtnelem
Trolt hang s vide folyamszer letltse: A RealNetworkstl a YouTube-ig A RealNetworks cg, amely ttr volt a hang- s vide folyamszer letltsben, elsknt hozta be a kztudatba az internetes audit. Az els termkk - az 1995-ben bemutatott RealAudio rendszer - egy hangkdolbl, egy audioszer vrbl s egy hanglejtszbl llt. Az ltal, hogy lehetv tette a felhasznlknak, hogy bngszszenek, kivlasszanak s krsre
33
hangtartalmat tlthessenek le az internetrl, gyorsan npszer rendszerr vlt a szrakozta ts, az oktats s a hrtartalmak sztosztsban. Napjainkban a hang- s vide folyam s/e r letlts az internet legnpszerbb szolgltatsai kztt van. Nemcsak a letlthet tartalmakat szolgltat cgek bsges knlatval tallko zunk, de szmtalan klnbz szerver-, lejtsz- s protokolltech ni kkt alkalmaznak. N hny rdekes plda a 2007-es vbl:
MSN vide. A felhasznlk vltozatos tartalmakat tltenek le, pldul nemzetkzi hreket s
videoklipeket. A videt a npszer Windows Media Player (WMP) jtssza le, amely majdnem minden Windowst futtat hoszton megtallhat. A WMP- s a Microsoft-szerverek kztti kommunikci a jogvdett Microsoft Media Server (MMS) protokollon keresztl trtnik, amely tipikusan RTSP/RTP-n keresztl prblja letlteni a tartalmat; a tzfal okozta meghi sulsesetn HTTP-n keresztl ksrli mega tartalom lekrsi.
Muze. Hangminta-szolgltatst nyjt kereskedseknek, mint pldul a BestBuy-nak s a Yahoo-nak. Az ilyen kereskedelmi oldalakon kivlasztott zenei mintk valjban a Muze-rl jnnek, s WMP-n keresztl tltik le ket. A Muze, Rhapsody, YouTube s sok ms letlthet tartalmat nyjt szolgltat tartalomeloszt hlzatokat (CDN-eket) hasznl a tartalmaik szt osztsra, a 7.3. alfejezetben lertak szerint.
klienshez, lehetv tve a helyi gyorsttrbl a fjl jbli lejtszst.) (Sripanidkulchai 2004). A krt audio-/videofjl megrkezsekor a kliens (tipikusan) pr msodpercen bell elindtja a fjl lejtszst. N hny rendszer felhasznli interaktivitst is lehetv tesz: a lejtszs meglltst/folyta tst, a fjlban idbeli ugrst. A vals idej adatfolyam protokoll (real-time streaming protokoll, RTSP), amelyet majd a fejezet vgn rszleteznk, egy felhasznli interaktivi tst lehetv tev nyilvnos protokoll. A felhasznlk gyakran egy webkliensen (bngszn) keresztl kezdemnyezik az audio/vide folyamszer letltst, m azutn egy mdialejtszn (pldul Windows Media Playeren vagy egy Flash lejtszn) keresztl nzik meg, s azzal irnytjk a lejtszst. A mdialejtsz szmos funkcival rendelkezik, tbbek kztt a kvetkezkkel:
formban kerl tvitelre trhellyel s svszlessggel val takarkoskods miatt. A mdialejtsznak a hangot s a kpet lejtszs kzben vals idben kell kiterjesztenie, azaz visszaalaktania tmrtetlen formba. Ksleltetsingadozs eltvoltsa (jitter removal). A csomagok ksleltetsi ingadozsa az adott csomagfolyamon belli csomagok forrs-cl kztti ksleltetsnek vltakozsa. Mivel a hangot s a videt ugyanolyan idztssel kell lejtszani, mint ahogyan azt felvettk, a fogad fl egy rvid ideig puHereii a kapott csomagokat a ksleltets ingadozs elkerlse vgett. A tmt rszletesen a 7.3. alfejezetben vizsgljuk meg.
35
lehessen tallni) a HTTP-n keresztl letlteni kvnt multimdia-fjlrl. Ezt a metallomnyt aztn a bngsztl megkapja a mdialejtsz, amelynek feladata, hogy a HTTP-szerverrel kapcsolatba lpjen, amely ez utn HTTP-n keresztl elkldi a multimdia-fjlt a mdialejtszhoz (ezeket a lpseket mutatja be a 7.1. bra):
1.
A felhasznl egy audio-/videofjl h i perhivatkozsra kattint. A hiperhivatkozs nem mutat kzvetlenl a fjlra, helyette egy metafjlra. A metafjl tartalmazza a tnyleges audio-/videofjl URL-jt. A HTTPvlaszzenetbe gyazott metafjl tartalmazza a tartalom tpust ler fejlecsort, amely kijelli a megfelel audio-/videoalkalmazst. 2. A kliens bngszje megvizsglja a vlaszzenet tartalmnak tpusra vonatkoz fejlcsort, elindtja a hozzrendelt mdialejtszt, s tadja a vlaszzenet teljes trzst (azaz a metafjlt) a mdialejtsznak. 3. A mdialejtsz TCP-sszekttetst ltest kzvetlenl a HTTP-szerverrel. Ezutn elkld egy HTTP-krst tartalmaz zenetet az audio-/videofjlnak a TCP-ssze- kttetsen keresztl. Azaudio-/videofjI elkldsre kerl egy I ITTP-v lasz zenetben a mdialejtsznak. A lejtsz elindtja az audio-/videofjl folyamnak lejtszst. A kzbens lps fontossga, amelynek sorn a metallomnyt begyjtjk, tisztn ltszik. Azltal, hogy a bngsz ltja a fjl tartalmnak tpust, el tudja indtani a megfelel mdialejtszt, s gy a mdialejtsz kzvetlenl kapcsoldik a szerverhez. Megtanultuk teht, hogyan jrul hozz egy metafjl ahhoz, hogy a mdialejtsz kzvetlenl tudjon kommuniklni a webszerverrel, amely az audio- s videofjlokat trolja. Ennek ellenre szmos cg, amely audio/video folyamszer letltsre szolgl termkeket forgalmaz, nem ajnlja az imnt bemutatott architektrt. Szerintk a trolt hang- s videofolyamot ajnlott inkbb olyan dediklt folyamletltst megvalst szerverekrl letlteni, amelyeket folyam letltsre optimalizltak.
Szerver Webbngsz
37
sebessget. Ez a puffer kirlshez vezethet - a folyamat neve hezs (starvation) -, s nem vrt szneteket eredmnyezhet a kliens fel men audio-/videotartalom kimenetn. [VVang 2004) szerint, ha a TCP tlagos
Kliens
7. MSzerverek ULTIMDIA-HLZATOK
Webbngsz
Webszerver
2 o * < u l
v/V
7.2.
mdialejtszra
bra.
Letlts
egy
adatfolyam-letltst
megvalst
szerverrl
tbocstkpessge nagyjbl ktszerese a mdia bitsebessgnek, akkor a vals idej TCP-adatfolyam-letlts minimlis hezst s kis kezdeti ksleltetst eredmnyez. A harmadik lehetsg esetn az x{t) viselkedse nagymrtkben a kliens pufFernek mrettl fgg (amely nem tvesztend ssze a T CP fogad oldali pufFervel). Abban az esetben, ha ez a puffer elg nagy ahhoz, hogy az egsz mdiafjl elfrjen benne (valsznleg a lemeztrban), akkor a TCP az adatkapcsolat teljes pillanatnyi svszlessgt felhasznlja, gy x(t) sokkal nagyobb lehet, mint d. Ha az x(t) sokkal nagyobb vlik d-nl, akkor a mdia egy nagyobb rsze elre letltdik a klienshez, egy esetleges kliens oldali hezsnek pedig kicsi lesz az eslye. Msfell viszont, ha a kliens puTer kicsi, akkor x(t) a kirtsi sebessg d rtke krl fog ingadozni. A kliens oldali hezs veszlye
7. MULTIMDIA-HLZATOK
______________I ________________.
60
Feltltsi Hlzat sebessg = x ( t ) fell
7. MULTIMDIA-HLZATOK
Kirlsi sebessg = d ^ kiterjeszts s a lejtszs fel
. 11
Szmos internetes multimdia-felhasznl (klnsen azok, akik tv-tvirnytval a kezkben nttek fel) szeretn vezrelni a mdia folyamatos lejtszst gy, hogy a lejtszst sznetelteti, egy ksbbi idpontra pozcionlja a lejtszst, a kpernyn nzve elre-, illetve visszaprgeti s gy tovbb. Ez a hasznlati md hasonlt a DVD-lejtsz funkciihoz egy DVD-film nzse kzben, illetve egy CDlejtsz szolgltatsaihoz egy zenei CD hallgatsa kzben. A felhasznl szmra a lejtszs vezrlshez a mdialejtsznak s m diaszervernek szksge van egy protokollra a lejtszst vezrl informci kicserlshez. A vals idej adatfolyam-letltst tmogat protokoll (Real-Time Streaming Protocol, RTSP), amelyet az RFC 2326 definil, egy ilyen protokoll. Mieltt belemlyednnk az RTSP rszleteibe, elszr megemltjk, hogy az RTSP mit nem tmogat. Az RTSP nem definilja a hang s a kp tmrtst. Az RTSP nem mondja meg a hang s a kp csomagokba gyazst hogyan kell elvgezni, mieltt a hlzaton tkldjk azokat; a mdiafolyam szmra a begyazsi eljrst az RTP vagy egy cg sajt protokollja vgzi. (Az RTP-t a 7.4. alfejezetben trgyaljuk.) A RealNetworks hang- s videoszerverek s -lejtszk pldul RTSP-t hasznlnak a vezrlsi adatok egyms kztti tkldsre, m a mdiafolyam maga RTP- csomagokba, vagy ms sajt adatformtumba gyazhat be. Az RTSP nem kti ki, hogy a mdia vals idej letltst hogyan valstsuk meg; TCP-n vagy UDP-n is tvihet. Az RTSP szintn nem kti ki, hogy a mdialejtsz hogyan puffereli az audit s a videt. A mdia lejtszsa elkezddhet, amint az els csomagok megrkeznek a klienshez, pr msodperces vrakozs utn, vagy amikor a letlts teljesen befejezdtt. Ha az RTSP a fentiek kzl egyiket sem vgzi el, akkor vgl is mit csinl? Az RTSP lehetv teszi a mdialejtsznak a mdiafolyam tvitelnek vezrlst. A fent emltettek szerint a vezrlshez tartozik a szneteltets/folytats, a lejtszs jrapozicionlsa, gyorstekers elre s htra. Az RTSP egy svon kvli protokoll (out-of-band protocol). Pontosabban az RTSP-tizeneteket svon kvl kldik, mivel svon bellinek az a mdiafolyam szmt, amelynek a csomagstruktrjt nem az RTSP hatrozza meg. Az RTSP-zenetek a mdiafolyamtl eltr portszmot hasznlnak, az 544-es portot. Az RTSP-specifikci [RFC 2326] megengedi, hogy az RTSP-zeneteket mind TCP-n, mind UDP-n tkldhessk. A 2.3. alfejezetet felidzve emlkezhetnk arra, hogy a fjltviteli protokoll (FTP)
7.3. bra. A kliens oldali puffer feltltse x(t) sebessggel s kirlse d sebessggel
szintn a svon kvli alapelvet hasznlja. Eszerint az FTP kt kliens/szerver szoketprt hasznl, mindegyik a sajt portszmval: egyik kliens/szerver pr azt a TCP-sszekttetst valstja meg, amely a vezrl informcikat szlltja; a msik kliens/szerver szoketprt pedig arra a TCP-sszekttetsre hoztk ltre, amelyik a tnyleges fjlt szlltja. Az RTSP-csator na sok tekintetben hasonl az FTP vezrlcsatornjhoz. Most kvessnk vgig egy egyszer RTSP-pldt, amelyet a 7.4. bra illusztrl. A web- bngsz elszr egy megjelentst ler fjlt kr a webszervrtl. A megjelentst ler fjl tartalmazhat szmos folytonos mdiafjlra vonatkoz hivatkozst, s a fjlokra rvnyes S Z n kronizlsi irnyelveket is. M inden hivatkozs az rt sp: // URL- metdussal kezdd i k.
61
7. MULTIMDIA-HLZATOK
7.3. bra. A kliens oldali puffer feltltse x(t) sebessggel s kirlse d sebessggel
38
Kliens
7. MULTIMDIA-HLZATOK
Szerverek
Webbngsz
HTTP GET
Webszerver
I 'i WWW
Elkszts
Lejtszs
Mdia lejtsz
Mdiafolyam
Mdia szerver
Sznet
Kapcsolatbonts
Albb egy megjelentst ler fjlt is bemutatunk, amely a [Schulzrinne 1997]-bl szrmazik. Ebben a pldban az audio- s videofolyam prhuzamosan s helyes ajakszinkronnal kerl lejtszsra (ugyannanak a csoportnak a tagjaknt). Az audiofolyamnl a lejtsz vlaszthat egy gyenge s egy jobb minsg felvtel kzl. (A fjl formtuma hasonl a SMIL-hez [SMIL 2007], amelyet sok vals idej letltst megvalst termk hasznl a multimdia-megjelents szinkronitsnak meghatrozshoz.) A webszerver begyazza a megjelentst ler fjlt egy HTTP-vlaszzenetbe, s elkldi az zenetet a bngsznek. Amikor a bngsz ezt a HTTP-zenetet megkapja, az zenet tartalomtpus mezje alapjn meghv egy mdia lejtszt (azaz egy segdalkalmazst). A megjelentst ler fjl mdiafolyamokra vonatkoz hivatkozsokat tartalmaz, az rtsp:// URI.-metdust alkalmazva. Ezutn a 7.4. brnak megfelelen a lejtsz s a szerver RTSP-zenetek sorozatt kldi el egymsnak. A lejtsz elkld egy RTSP SETUP krst, a szerver vlaszol egy RTSP OK zenettel. A lejtsz elkld egy RTSP PLAY krst, pldul gyenge minsg hangra, a szerver pedig jbl vlaszol egy RTSP OK zenettel. Ezen a ponton a vals idej letltst megvalst szerver hozzkezd a gyenge minsg hang elkldshez a sajt svon belli csatornjban. Ksbb a mdialejtsz egy RTSP PAUSK krst kld, a szerver pedig RTSP OK zenettel vlaszol. Amikor a felhasznl vgzett, a mdialejtsz 7.3. bra. A kliens oldali puffer elkld egy x(t) RTSP TEARDOWN feltltse sebessggel s krsi, amelyet a szerver szintn egy RTSP OK zenettel
kirlse d sebessggel
39
7. MULTIMDIA-HLZATOK
elfogad.
7.3. bra. A kliens oldali puffer feltltse x(t) sebessggel s kirlse d sebessggel
54c)
<track type=audio e="PCMU/8000/ l" src="rtsp: / /audio. example. com/twister/audio. en/lofi"> <track type=audio e="DVI4/16000/2" pt="90 0714/8000/1" src="rtsp: / /audio.example.com/twister/audio.en/hifi"> <track type="video/jpeg" src="rtsp://vide.example.com/tv/ister/video"> </group> </session>
Nzznk egy tmr lerst a tnyleges RTSP-zenetekrl. A lers egy kliens (K:) s egy szerver (S:) kztti egyszerstett plda.
</switch>
K: SETUP rtsp://audio.example.com/twister/audio RTSP/1.0 Cseq: 1 Transport: rtp/udp; compression; port=3056; mode=PLAY S: RTSP/1.0 200 OK Cseq: 1 Session: 4231 K: PLAY rtsp://audio.example.com/twister/audio.en/lofi RTSP/1.0 Rang: npt=0- Cseq: 2 Session: 4231 S: RTSP/1.0 200 OK Cseq: 2 Session: 4231 K: PAUSE rtsp://audio.example.com/twister/audio.en/lofi RTSP/1.0 Rang: npt=37 Cseq: 3 Session: 4231 S: RTSP/1.0 200 OK Cseq: 3 Session: 4231 K: TEARDOWN rtsp://audio.example.com/twister/audio.en/lofi RTSP/1.0 Cseq: 4 Session: 4231 S: RTSP/1.0 200 OK Cseq: 4 Session: 4231
40
7. MUI.TIMDIA-HLZATOK
rdekes megemltennk a hasonlsgokat a HTTP s az RTSP kztt. Minden krss vlaszzenet ASCII szveges formtum, a kliens szabvnyostott eljrsokat alkalmaz (SETUP, PLAY, PAUSE s gy tovbb), a szerver pedig szabvnyostott kdokkal vlaszol. Fontos klnbsg, hogy az RTSP-szerver nyomon kveti a kliens llapott minden folyamatban lv RTSP-munkamenetnl. A szerver pldul szmontartja, hogy a kliens kezdeti llapotban, lejtsz llapotban vagy sznet llapotban van-e. A munkamenet- s sorszmok, amelyek az RTSP-krsek s vlaszok rszei, segtenek a szervernek kvetni a munkamenet llapott. A munkamenetszm rgztett az egsz munkamenet alatt; a kliens nveli a sorszmot minden j zenet kldsekor; a szerver visszajtssza a munka- menetszmot s az aktulis sorszmot. Amint a pldban is lthattuk, a kliens a munkamenet ltestsekor SETUP zenetet kld, biztostva a letltend fjl URL-jt s az RTSP-verzit. Ez a munkamenet-felpt zenet tartalmazza a kliens portszmt, amelyre a mdit kell kldeni. A munkamenet-felpt zenet jelzi azt is, hogy a mdit UDP-n keresztl kell kldeni az RTP csomagkezelsi protokolljt alkalmazva (ezt a tmt bvebben a 7.4. alfejezetben trgyaljuk). Vegyk szre, hogy ebben a pldban a lejtsz nem a j minsg lejtszst vlasztotta, hanem csupn a mdia gyenge minsg vltozatt. Az RTSP valjban sokkal tbbre kpes, mint amit a fenti rvid ttekintsben lertunk. Az RTSP pldul lehetsget nyjt a klienseknek a szerver fel irnyul vals idej feltltsre (pldul felvtelkor). Az RTSP-t tvette a RealNetworks, az audio-/videoletltsi ipar egyik vezetje. Henning Schulzrinne kzremkdse ltal elrhet egy weboldal, amely az RTSP-rl szl [Schulzrinne-RTSP 2007].
41
7. MUI.TIMDIA-HLZATOK
elmagyarzzuk, hogyan hasznlhat a tartalomsztoszt hlzat s az erforrsok felgyelete a hasonl hibk elkerlsre s megelzsre.
Fentebb emltettk, hogy a legjobbra trekv s/.oJgltats csomagvesztshez, tlzott vgpontok kztti ksleltetshez s csomagksleltets ingadozshoz vezethet. Vizsgljuk meg ezeket a problmkat kzelebbrl. Annak rdekben, hogy a lers konkrt legyen, az eljrsokat a kvetkez internetes telefonalkalmazsok (Internet phone applications) krnyezetben mutatjuk be. A szituci hasonlt a vals idej videokonferencis alkalmazsokhoz [Bolot 1994]. Az internetes telefonrl szl pldnkban a kzi beszl mikrofonja vltakoz, beszd l- keteket s beszdszneteket tartalmaz hangjeleket generl. A svszlessg megtakartsa rdekben az alkalmazsunk csupn a beszdlketek alatt kld csomagokat. Egy beszdlket sorn a kld msodpercenknt 8000 bjtot generl, 20 ms-onknt pedig egy tredkk lltja ssze a generlt bjtokat. gy a bjtok szma egy tredkben (20 ms x 8000 bjt/s) = 160 bjt. iMinden tredkhez egyedi fejlc csatoldik, amelynek tartalmt albb rszletezzk. A tredk s a fejlc egy UDP-csomagba gyazdik be a szoket-interfsz- hez irnyul hvson keresztl. Ezltal egy beszdlket sorn minden 20. ms-ban egy UDP-csomag kerl elkldsre. Abban az esetben, ha minden csomag elr a vev flhez, s csak kismrtk vgpontok kztti ksleltets van jelen, akkor a csomagok 20 ms-onknt rkeznek a vevhz a beszdlket sorn. Ilyen idelis krlmnyek mellett a vev egyszeren le tud jtszani minden tredket, mihelyt azok megrkeznek. Sajnos egyes csomagok elveszhetnek, ms csomagok vgpontok kztti ksleltetse pedig nem azonos, mg akkor sem, ha az internet kihasznltsga nagyon kicsi. Ezrt a vevnek tbb figyelmet kell fordtania arra, hogy eldntse, (1) mikor kezdje el lejtszani a tredket, s (2) mit csinljon hinyz tredk esetn.
Csomagveszts
Tekintsk az internetes telefonalkalmazsunk ltal generlt egyik UDP-szegmenst. Az UDP-szegmenst IP-adatcsomagba gyaztk be. Amint az adatcsomag a hlzaton keresztl barangol, tbb tvlaszt puffern (vrakozsi sorn) is keresztlhalad annak rdekben, hogy elrje a kifel men adatkapcsolatokat. Elkpzelhet, hogy a kldtl a fogadig terjed ton lev pufferck egy vagy tbb tagja tele van, s nem tudjk fogadni az IP-cso- magot. Ebben az esetben az IP-adatcsomagot eldobjk, s soha nem fog megrkezni a vev alkalmazshoz. A csomagvesztst kikszblhetjk gy, hogy a csomagokat UDP helyeit TCP-n kldjk t. Emlkezznk arra, hogy a TCP jrakldi azokat a csomagokat, amelyek nem rnek clba. Az jrakldsi eljrs viszont gyakran elfogadhatatlan az olyan vals idej interaktv audioalkalmazsoknl, mint amilyen az internetes telefon is, mivel nvelik a vgpontok kztti ksleltetst [Bolot 1996). T ovbb, a TCPtorldskezels miatt a kld oldalon az adsi sebessg a csomagveszts kvetkezmnyeknt a vev fl vteli sebessge al cskkenhet. Hz komolyan befolysolhatja a vev oldali beszdrthetsget. Emiatt a legtbb internetes tele fonalkalmazs UDP felett mkdik, s nem trdik az elveszett csomagok jrakldsvel. [Baset 2006) bemutatja, hogy a Skype UDP-t hasznl kivve, ha NAT vagy tzfal mgtt van, amely blokkolja az UDP-szegmenseket (ebben az esetben TCP-t hasznl).
42
7. MUI.TIMDIA-HLZATOK
A csomagok elvesztse nem annyira katasztroflis, mint ahogyan azt gondolhatnnk. A beszd kdolstl s tjtszstl, valamint a vev oldalon a csomagveszts maszkolsnak mdjtl fggen az 1 s 20 szzalk kztti csomagveszts mg trhet minsget biztost. Az elre irnyul hibajavts (FEC) pldul segthet a csomagveszts elrejtsben. Ksbb ltni fogjuk, hogy FEC esetn az eredeti adatok mellett redundns adatokat is kldnk, gy az elveszett adatok valamekkora rsze visszanyerhet a redundns adatokbl. Mindazonltal, ha a kld s a vev kzt egy vagy tbb adatkapcsolat slyosan tlterhelte vlik, s a csomagveszts 10 s 20 szzalk kz nvekszik (habr ezek az rtkek egy meg felelen felgyelt hlzatban ritkn fordulnak el), akkor igazbl semmit nem lehet tenni az elfogadhat hangminsg biztostsnak rdekben. Egyrtelm, hogy a legjobbra trekv szolgltatsnak megvannak a korltai.
Csomagksleltets ingadozsa
A vgpontok kztti ksleltetsnek igen fontos rsze az tvlasztkban elszenvedett vletlenszer sorbanllsi ksleltets. Az ilyen hlzaton belli vltoz ksleltetsek miatt az az id, amely a csomagnak a forrsnl trtn ellltstl a vevhz val megrkezsig eltelik, csomagrl csomagra vltozhat. Ezt a jelensget nevezik ksleltetsi ingadozsnak (jitter). Pldaknt kpzeljnk el kl egymst kvet csomagot egy beszdlketen bell az internetes telefonalkalmazsunknl. A kld a msodik csomagot 20 ms-mal az els elkldse utn tovbbtja. A vevnl viszont e kt csomag kztti eltrs nagyobb lehet, mint 20 ms. Azrt, hogy ezt magunk el tudjuk kpzelni, tegyk fel, hogy az els csomag az egyik tvlaszthoz gy rkezik meg, hogy az tvlaszt vrakozsi sora majdnem teljesen res, m mieltt a msodik csomag megrkezik ugyanehhez az tvlaszthoz, rengeteg ms forrsbl szrmaz csomag rkezik a vrakozsi sorhoz. Mivel ennl az tvlasztnl az els csomag kis sorban llsi ksleltetst szenved el, a msodik pedig nagyot, a kt csomag kzti idklnbsg nagyobb lesz, mint 20 ms. Ugyangy, ez a idklnbsg az egymst k vet csomagoknl akr kisebb is lehet, mint 20 ms. Ezt belthatjuk, ha elkpzelnk szintn kt egymst kvet csomagot egy beszdlketben. Tegyk fel, hogy az els csomag olyan sorba rkezik meg, amelyben mr sok ms csomag tartzkodik, a msodik csomag pedig a tbbi forrsbl jv csomagok rkezse eltt csatlakozik a sorhoz. Ebben az esetben
43
7. MUI.TIMDIA-HLZATOK
a kt csomagunk rgtn egyms utn tallja magt a sorban. Abban az esetben, ha az tvlaszt kimen adatkapcsolatra a tovbbtsi id kevesebb, mint 20 ms, akkor az els s msodik csomag idklnbsge kisebb lesz, mint 20 ms.
A helyzet hasonl ahhoz, mint amikor autt vezetnk. Tegyk fel, hogy egy bartunk s mi kln kocsival hajtunk San Diegobl Phoenix fel. Tegyk fel, hogy a vezetsi stlusunk hasonl, s mindketten 100 km/h sebessggel megynk, mivel a forgalom ezt megengedi. Vgl tegyk fel, hogy a bartunk egy rval hamarabb indul, mint mi. Ekkor a kzbejv forgalomtl fggen, Phoenixbe rkezsnk kztt akr tbb, akr kevesebb is lehet, mint egy ra. Akkor, ha a vev figyelmen kvl hagyja a ksleltetsingadozs jelenltt, s elkezdi lejtszani a tredket, amint az megrkezik, a vevnl az gy kapott hang minsge any- nyira rossz lehet, hogy a beszd knnyen rthetetlenn vlhat. Szerencsre az ingadozst gyakran kikszblhetjk sorszmok, idblyegek s lejtszsi ksleltets hasznlatval, ahogyan azt majd a tovbbiakban trgyalni fogjuk.
45
7. MUI.TIMDIA-HLZATOK
tekintik.
46
Tervezeti lejtszs
7. MUI.TIMDIA-HLZATOK
p-r
Kimaradt csomagok Ellltott csomagok Vett csomagok
Tervezett lejtszs
Mi a j vlaszts a q rtkre? Az internettelefon 400 ms-ig terjed ksleltetst is tmogat, m csupn q kisebb rtkeinl rhet el kielgt interaktv lmny. Msfell viszont ha q rtkt sokkal kisebbre vlasztjuk, mint 400 ms, akkor sok csomag leksheti az temezett lejtszsi idejt a hlzat ltal okozott csomagksleltets-ingadozs miatt. Az igazat megvallva, ha a vgpontok kztti ksleltets tipikusan nagyon vltoz, akkor nagy q rtk hasznlata ajnlott, msfell viszont, ha a ksleltets kicsi s a ksleltets vltozsa is kicsi, akkor a kis q rtk hasznlata javasolt, esetleg kevesebb mint 150 ms. A lejtszsi ksleltets s a csomagksleltets ingadozsa kztti sszefggst a 7.5. bra mutatja. Az bra azokat az idket brzolja, amikor egy beszdlket sorn a csomagok generldnak, valamint amikor azokat lejtsszk. Kt kln esetet mutatunk be, klnbz kezdeti lejtszsi ksleltetsekkel. Amint azt a balra lthat lpcs mutatja, a kld szablyos idkznknt kldi el a csomagokat - mondjuk minden 20. ms-ban. E beszdlket els csomagja r idpontban rkezik meg. Ahogyan az brn is ltszik, a hlzati ksleltets ingadozsnak ksznheten a kvetkez csomagok megrkezsi ideje kzti tvolsg nem azonos. Az els lejtszsi terv esetn az lland kezdeti lejtszsi ksleltets p-r rtkre van belltva. Ezen terv esetn a negyedik csomag nem rkezett meg az temezett lejtszsi idejre, s a vev elveszettnek tekinti. A msodik lejtszsi terv esetn az lland kezdeti lejtszsi ksleltets p - r rtkre van lltva. Ebben az esetben minden csomag megrkezik az temezett lejtszsi id eltt, gy nincs csomagveszts.
47
mszetes mdja ennek a kettssgnek a kezelsre a hlzati ksleltets s a kslel tets vltozsnak megbecslse, s a lejtszsi ksleltets megfelel belltsa minden beszdlket eltt. Az ilyen beszdlketek eltti adaptv lejtszsi ksleltets belltsa azt eredmnyezi, hogy az ad zneteit tmrteni s meghosszabbtani kell; a t mrts s a kis mrtk meghosszabbts viszont nem szrevehet a beszdben. ee 1994)-t kvetve most bemutatunk egy generikus algoritmust, amelyet a vev fl a lejtszsi ksleltetsnek adaptv belltshoz hasznlhat. egyen
csomag idblyege = az az idpont, amikor a csomagot a kld ellltotta, r. = az i. csomag vtelnek ideje a vevnl, pt = az i. csomag zsnak ideje a vevnl.
csomag vgpontok kztti hlzati ksleltetse r - t.. A hlzati ksleltets ingadozsnak kvetkeztben ez a ksleltets csomagrl csomagra Jellje di az i. csomag vtelnl az tlagos hlzati ksleltets becslst. A becslt rtk az idblyegekbl a k vetkezkppen ll el:
gy meghatrozott lland (pldul u = 0,01). gy di az / megfigyelt ksleltets simtott tlaga. A becslt rtk tbb slyt helyez a nemrg megfigyelt hlzati ksleltetsekre, mint a tvoli mltban megfigyelt hlzati tsekre. Az ilyen becslt rtk szmtsa nem lehet teljesen idegen a szmunkra; hasonl tletet hasznlnak a krljrsi id becslsre a TCP amelyet a 3. fejezetben trgyaltunk. Jellje v az tlagos ksleltets becslsbl szmtott tlagos ksleltetsi szrs becslt rtkt. Ehhez a shoz szintn az idblyegeket hasznljuk fel:
v. becslt rtkeket minden berkez csomagra kiszmtjk annak ellenre, hogy csupn a beszdlketek els csomagjai esetn hasznljk a lejtszsi pontjnak meghatrozshoz. slsek kiszmtsa utn a vev a kvetkez algoritmust alkalmazza a csomagok lejtszsra. Ha az csomag az els csomag a beszdlketben, a pi si idejt a kvetkez mdon szmtjuk: p,=t,+d, + Kv,
gy pozitv konstans rtk (pldul K = 4). A Kvt kifejezs oka a lejtszsi id olyan elg tvoli idpontra lltsa, hogy a beszdlketben berkez ok csupn kis tredke vesszen el a ksn rkezs miatt. A beszdlket brmely elkvetkez csomagjnak lejtszsi idpontja a beszdlket els nak lejtszsi idpontjbl eltolssal szmtdik ki. Rszletesebben, legyen
dlket els csomagjnak ellltstl a lejtszsig eltelt id hossza. Ha a j. csomag szintn ugyanehhez a beszdlkethez tartozik, a
ban kerl lejtszsra. nt bemutatott algoritmus tkletesen rthet, ha felttelezznk, hogy a vev fl meg tudja mondani, hogy az adott csomag a beszdlket els a-e vagy sem. Ha nincs csomagveszts, akkor a vev meg tudja hatrozni, hogy az i. csomag a beszdlket els csomagja-e oly mdon, hogy sonltja a i. s az (/ - 1). csomag idblyeget. t,-t, , > 20 ms esetn a vev tudja, hogy az /. csomag a beszdlket els csomagja. Ttelez zk fel, ost van esetleges csomagveszts. Ebben az esetben kt sikeres csomag v telnek idblyege kztt lehetsges a 20 ms-nl nagyobb eltrs, ha a mag azonos beszdlkethez tartozik. Ebben az esetben klnsen hasznosak a sorszmok. A vev fel hasznlhatja a sorszmokat annak ptsra, hogy a 20 ms-nl nagyobb klnbsg az idblyegekben az j beszdlket vagy csomagveszts kvetkezmnye.
ezetet vgn ejtsnk pr szt a trolt hang s kp folyamszer letltsrl. A trolt hang s kp folyamszer letltsre szolgl alkalmazsok n sorszmokat, id- blyegeket s lejtszsi ksleltetseket hasznlnak azrt, hogy enyhtsk, vagy akr teljesen megszntessk a hlzati ts ingadozsnak hatsail. Fontos klnbsg van viszont a vals idej interaktv hang s kp, valamint a trolt hang s kp folyamszer letltse Egsz pontosan a trolt hang s kp folyamszer letltse eltri a jelentsen hosz- szabb ksleltetseket. Abban az esetben, ha a felhasznl krst nyez egy hangvagy videoanyagra, a felhasznl elfogadhatnak tekint 5 msodperc vagy mg ennl is hosszabb vrakozst a lejtszs dse eltt. s sok felhasznl az olyan interaktv tevkenysgek utn is, mint amilyen az idbeli ugrs a mdiafolyamban, elfogadhatnak rzi a
48
7. MUI.TIMDIA-HLZATOK
megbeszltk, hogy az internetes telefonalkalmazsok hogyan oldjk meg a cso- magksleltets ingadozst. Most rviden ttekintnk nhny amely megprbl csomagveszts mellett elfogadhat hangminsget megrizni. Az ilyen smkat csomag- vesztst kikszbl smknak (loss y schemes) nevezzk. Tg rtelemben a csomagveszts a kvetkezkppen definilhat: egy csomag elveszettnek tekintend, ha soha nem rkezik vevhz, vagy a tervezett lejtszsi id utn rkezik meg. Az internet telefonos pldnk fog most is krnyezetl szolglni a csomagvesztst bl smk bemutatshoz. zet elejn emltett mdon, az elveszett csomagok jrakldse nem megfelel meg olds egy olyan interaktv vals idej alkalmazsnl, mint amilyen net telefon. Az temezett lejtszsi idejt leks csomagok jrakldse valban nem szolgl semmilyen clt. Az tvlaszt vrakozsi sorn ul csomagot gysem lehet elg gyorsan jra elkldeni. Ezen megfontolsok miatt az internetes, telefonalkalmazsok gyakran hasznl nak yen tpus csomagveszts-megelzsi smt. A csomagveszts-megelzsi s mk kt tpusa ismeretes: az elre irnyul hibajavts (forward error on, FEC) s az sszefsls (interleaving).
A FEC alaptlete az, hogy az eredeti csomagfolyamhoz redundns adatokat adunk. Azon az ron, hogy kiss megnveljk a hangfolyam tviteli sebessgt, a redundns informci felhasznlhat nhny elveszett csomag kzelt vagy teljes visszalltsra. [Bolot 1996] s [Perkins 1998] gondolatait kvetve felvzolunk kt egyszer FEC-eljrst. Az els eljrs minden n tredk utn kld egy redundns tredket. A redundns tredket az n eredeti tredkbl kapjuk kizr VAGY mvelettel [Shacham 1990]. Eszerint, ha az n + 1 szm csomagbl ll csoportbl csupn egy csomag veszik el, a vev az elveszett cso magot teljes mrtkben el tudja lltani. Kt elveszett csomag esetn viszont a vev nem tudja visszalltani az elveszett csomagokat: Az n + 1 rtket, vagyis a csoport mretet kicsire lltva az elveszett csomagok nagy rsze visszallthat, ha a csomagveszts nem rendkvl nagy mrtk. Minl kisebb viszont a csoport mrete, annl nagyobb az audio folyam tviteli sebessgnek relatv nvekedse. A gyakorlatban az tviteli sebessg l/>;-es tnyezvel nvekszik; pldul ha n = 3, akkor az tviteli sebessg 33 szzalkkal nvekszik. Tovbb, ez a sma megnveli a lejtszsi ksleltetst, mivel a vevnek a lejtszs meg kezdse eltt meg kell vrnia, amg a teljes csomagcsoport megrkezik. Tovbbi gyakor lati rszletek megtallhatk a multimdia-tvitelben hasznlt FEC mkdsrl az [RFC 2733] ajnlsban. A msodik FEC eljrs redundns informciknt egy kisebb felbonts hangfolyamot kld. Pldul a kld elllt egy nvleges hangfolyamot s egy annak megfelel kis felbonts, kis bitsebessg hangfolyamot is. (A nvleges folyam lehet 64 kb/s PCM-kdo- ls, a kisebb felbonts folyam pedig 13 kb/s-on kdolt GSM.) A kis bitsebessg folyam a redundns folyam. Amint a 7.6. bra is mutatja, a kld az ti. csomagot gy lltja el, hogy veszi a nvleges folyam n. tredkt s hozzfzi a redundns folyam (ti - 1). tredkhez. gy ahol nincs egymst kvet csomagveszts, a vev el tudja tntetni a vesztesget a kvetkez csomaggal rkez kis bitsebessgen kdolt tredk lejtszsval. Termszetesen a kis bitsebessg tredkek gyengbb minsget eredmnyeznek, mint a nvleges tredkek. Az olyan folyam viszont, amely fknt nagyobb felbonts tredkeket s ritkn
49
kis felbontsakal tartalmaz, s nincs benne hinyz tredk, j ltalnos hangminsgei ad. Vegyk szre, hogy ebben a smban a vevhz csupn kt tredknek kell megrkeznie a lejtszs megkezdse eltt, gy a lejtszsi ksleltets nvekedse kis mrtk. Tovbb, ha a kis bitsebessg kdols sokkal kisebb, mint a nvleges kdols, akkor az tviteli sebessg nvekedse is kicsi lesz. Annak rdekben, hogy az egymst kvet hibkkal megbirkzzunk, csak egy egyszer vltoztatst kell tennnk. Ahelyett, hogy a kld csupn az (;i - 1). kis bitsebessg tredket fzn hozz az n. eredeti tredkhez, hozzfzheti az (n 1). s (n - 2). kis bitsebessg tredket is, vagy az (n - 1)., ( - 2). s (n - 3). kis bitsebessg tredket s gy tovbb. A nvleges tredkekhez val tbb kis bitsebessg tredk hozzfzsvel a vteli hangminsg a legjobbra trekv krnyezetek szles krben elfogadhatv vlik. Msfell viszont a hozzadott tredkek nvelik az tvitelhez szksges svszlessget s a lejtszsi ksleltetst. A RAT [RAT 2007] egy jl dokumentlt internetes telefonalkalmazs, amely FEC-t hasznl. A gyengbb minsg hangfolyamot a fenti mdon egytt kldi el a nvleges hangfolyammal. Tovbbi informcik tallhatk [Roseberg 2000| munkjban.
sszefsls
A redundns tvitel alternatvjaknt az internetes telefonalkalmazs kldhet sszefslt hangot is. A 7.7. bra szerint az tvitel eltt a kld jra sorba rendezi a hangot tartalmaz adategysgeket oly mdon, hogy az eredetileg szomszdos egysgeket az tvitt folyamban megadott tvolsgra klnti el. Az sszefsls mrskeli a csomagveszts hatst. Abban az esetben pldul, ha az adategysgek 5 ms, a tredkek pedig 20 ms hosszsgak (gy egy tredkben 4 adategysg van), akkor az els tredk az 1., 5., 9. s 13. adategysget tartal mazza; a msodik tredk a 2., 6., 10., s 14. adategysget s gy tovbb. A 7.7. brn lthat, hogy egy sszefslt folyambl egy csomag elvesztse sok kis rst eredmnyez a visszalltott folyamban, nem pedig egy nagy rst, amely a nem sszefslt folyam esetn keletkezne.
50
7. MUI.TIMDIA-HLZATOK
Az sszefsls jelentsen javtja a hangfolyam rzkelhet minsgt (Perkins 1998], s kismrtk adattbblettel jr. Az sszefsls nyilvnval htrnya a megnvekedett lappangs. Ezen tulajdonsgai korltozzk az internetes telefon s a hasonl interaktv alkalmazsok alkalmazhatsgt, ennek ellenre a trolt hang folyamszer letltsnl jl hasznlhat. Az sszefsls egyik f elnye, hogy nem nveli meg a folyam svszlessgignyt.
Eredet i folyam
sszefslt folyam
1 1 1
I I
I I
I I
I I
r +
Csomagveszts
Vett folyam
Visszalltott folyam
7.7. bra. sszefslt hang kldse lycttesti. Alacsony szmtsi komplexits szksges hozz, s meglehetsen jl teljest. A vevalap helyrellts msik eljrsi formja az interpolci, amely az elveszett csomag eltti s utni hangrsz segtsgvel llt el interpollssal egy megfelel csomagot, amely a vesztesget ptolja. Az interpolls valamelyest jobb minsget ad, mint a csomagismtls, de jval nagyobb szmtsi intenzitst ignyel [Perkins 1998).
ttrazs hogyan enyhti ezt a problmt. Annak ellenre, hogy a gyorsttrazst csupn a tradicionlis webtartalmak kapcsn beszltk meg, tisztn lthat, hogy ez a mdszer megfelel az olyan multimdis tartalmak esetn is, mint amilyen a trolt hang s vide. Ebben az alfejezetben bemutatjuk a tartalomsztoszt hlzatokat (content distribution networks, CDNs), amelyek alternatv megoldst nyjtanak a trolt multimdis tartalom (valamint a hagyomnyos vvebtartalom) sztosztsra. A CDN-ek alapfilozfija az, hogy ha a kliens nem tud a tartalomhoz jnni (mivel a legjobbra trekv szolgltatson alapul t, amely a szervertl a kliensig megy, nem tmogatja a vide folyamszer letltst), a tartalmat kell a klienshez hozni. A CDN-ek gy a webes gyorsttrtl eltr modellt hasznlnak. Egy CDN esetn, a tovbbiakban nem az ISP-k a fizet gyfelek, hanem a tartalomszolgltatk. A megosztani kvnt videval rendelkez tartalomszolgltat (pldul CNN) fizet a CDN-t szolgltat cgnek (pldul Akamainak) azrt, hogy azok az gyfelek, akik az videit szeretnk letlteni, a lehet legkisebb ksleltetssel kapjk meg azt. A CDN-t biztost cg ltalban a kvetkez mdon nyjtja a tartalomsztoszt szolgltatst: 1. A CDN-szolgltatst nyjt cg tbbszz CDN-szervert (CDN servers) telept szerte az interneten. ltalnos esetben a CDN-szervereket adatkzpontokba (datacenters) helyezik, amelyek gyakran alacsonyszint ISP-k, kzel az ISP hozzfrsi hlzatokhoz s a kliensekhez. 2. A CDN lemsolja az gyfelei tartalmt a CDN-szervereken. Az gyfelek tartalomfrisstseikor a CDN jra sztosztja a legjabb tartalmat a CDNszerveren. 3. A CDN-szolgltatst nyjt cg egy olyan mechanizmust biztost, hogy amikor egy klienstl tartalomkrs rkezik, a tartalmat az a CDN-szerver szolgltatja, amelyik a legjobb mdon tudja eljuttatni a tartalmat az adott klienshez. Ez a szerver lehet a klienshez legkzelebbi CDN-szerver (esetleg a kliens ISP-jn belli) vagy olyan szerver, amely a kliens fel rendelkezik egy torlds nlkli ttal. A 7.8. brn a tartalomszolgltat s a CDN-t szolgltat cg kzti egyttmkds lthat. A tartalomszolgltat elszr meghatrozza, hogy mely objektumait (pldul videkat) szeretn sztosztani a CDN-en keresztl. (A tartalomszolgltat a fennmarad objektumokat a CDN kzbenjrsa nlkl osztja szt.) A tartalomszolgltat felcmkzi ezt a tartalmat, majd eljuttatja egy CDNcsomponthoz, amely msolatot kszt rla, s tovbbtja a kivlasztott CDNszerverek fel. A CDN-t zemeltet cg akr sajt magn- hlzattal is rendelkezhet, amely a CDN-csompontbl a CDN-szerverekig eljuttatja a tartalmat. Minden esetben, amikor a tartalomszolgltat mdostja a CDN llal sztosz lott objeklumot, eljuttatja a legjabb verzit a CDN-csomponthoz, amely jbl azonnal msolatot kszt, s tovbbtja az objektumot a CDN-szerverekhez. Fontos esznkbe vsni azt, hogy az egyes CDN-szerverek ltalban sok tartalomszolgltattl rendelkeznek objektummal. Most egy rdekes krds kvetkezik. Amikor a felhasznl szmtgpn a bngsz utastst kap egy meghatrozott objektum letltsre (URL-cmmel azonostva), hogyan dnti el a bngsz, hogy az eredeti forrsszerverrl vagy a
CDN-szerverek kzl az egyikrl tltse le az objektumot? A CDN-ek ltalban a DNS-tirnyitst hasznljk fel arra, hogy a bngszt a megfelel szerverhez vezessk |Kangasharju 2000).
55
CDN-szerver Dl-Amerikban
CDN-szerver zsiban
cmkzett objektumokat
Pldaknt tegyk tl, hogy a tartalomszolgltat hostneveawww.foo.com . Tegyk fel, hogy a CDN-t mkdtet vllalat hostneve a cdn.com. Tovbb tegyk fel, hogy a tartalomszolgltat csupn az mpeg videofjljait szeretn sztosztani a CDN ltal; minden ms objektumot, belertve az alap HTML-oldalakat, kzvetlenl a tartalomszolgltat osztja szt. Ehhez a tartalomszolgltat a forrsszervernl tallhat sszes HTML-objektumot mdostja gy, hogy a videofjlok URL-jeit elltja a http://www.cdn.com eltaggal. Ennek eredmnyekppen, ha a forrsszerveren lev egyik HTML-fjl eredetileg tartalmazott egy http://www.foo.com/sports/highlights.mpg hivatkozst,a tartalomszolgltat a cmkzs sorn a hivatkozst kicserli a http: // www.cdn .com/www. foo.com/sports/highlights.mpg karakterlncra. Amikor a bngsz a highlights.mpg videt tartalmaz weboldalt szeretn letlteni, a kvetkez esemnyek trtnnek: 1. A bngsz elkldi az alap HTML-objektum letltsi krelmt a forrsszerverhez, a www.foo.com-hoz , amely elkldi a krt HTML-objektumot
56
7. M ULT1MHD1A-H1.ZAT0K
a bngsznek. A bngsz elemzi a HTML-fjlt, s megtallja az albbi hivatkozst http: //www. cdn.com/www.foo.com/sports/highlights.mpg . 2. A bngsz ezutn egy DNS-keresst hajt vgre a www.cdn.com-ra , amely a hivatkozott URL hosztneve. A DNS gy van belltva, hogy a gykr DNSszerverhez rkez minden krst, amely www.cdn.com-ra vonatkozik, elkldi egy a v/ww.
57
cdn.com szmra hiteles DNS-szerverhez. A hiteles DNS-szerver a krs vtelekor megnzi a krst kld bngsz IP-cmt. A CDN DNS-szervere a teljes internetre ksztett bels hlzati trkpt felhasznlva, visszakldi annak a CDN-szervernek az IP-cmt, amely a krst kiad bngsz szmra nagy valsznsggel a legalkalmasabb (leggyakrabban a bngszhz legkzelebbi CDN-szervert). 3. A krst kiad kliensnl tallhat DNS megkapja az IP-cmet tartalmaz vlasz- zenetet. Ezutn a bngsz elkldi a HTTP-krst a kapott IP-cfmmel rendelkez CDN-szerverhez. A bngsz errl a CDN-szerverrl letlti a highlights.mpg video- fjlt. A v;ww.cdn.com cmre vonatkoz esetleges kvetkez krseket a kliens tovbbra is ugyanarra a CDN-szerverre kldi, mivel a www.cdn.com IP-cmt a (klienshosztnl vagy a helyi DNSnvszerveml lv) DNS-gyorsttr mr tartalmazza. A 7.9. brn is bemutatott ttekintsben a krst kiad hoszt az alap HTiMLobjektu- mrt elsknt a forrs webszerverhez fordul, majd a CDN hiteles DNSszerverhez a legalkalmasabb CDN-szerver IP-cmrt, vgl pedig ahhoz a CDNszerverhez, amelyiktl megkapja a videi. Vegyk szre, hogy a II ITP, a DNS s a bngsz semmilyen mdostst nem ignyel a sztosztsi sma megvalstshoz. Htra van mg annak a magyarzata, hogy a CDN-t mkdtet cg hogyan hatrozza meg a letltst kezdemnyez hoszt szmra legalkalmasabb CDNszervert. Annak ellenre, hogy erre minden CDN-t biztost cgnek megvan a sajt, nem nyilvnos eljrsa, nincs nehz dolgunk elkpzelni, hogyan is csinljk. A CDN-t biztost cg az interneten tallhat minden hozzfrsi ISP szmra (ahol a lehetsges krst kiad kliensek tallhatk) nyilvntartja a legalkalmasabb CDNszervert. A CDN-t mkdtet vllalat azon ludasa alapjn hatrozza meg a legalkalmasabb CDN-szervert, amelyet az internetes tvlasztk tblibl (egsz pontosan a 4. fejezetben bemutatott BGP-tblkbl), a be cslt krbejrsi idkbl s ms mrsi adatokbl, amelyekkel a klnfle szerverektl a
CDN-szerver
58
Forrsszerver
59
klnfle hozzfrsi hlzatokig a cg rendelkezik; errl bvebb informci a [Verma 2001]-ben tallhat. Ezek alapjn a CDN megbecsli, hogy melyik legjobbra trekv szolgltatst nyjt CDN-szerver a legalkalmasabb az ISP szmra. Ezt a CDN az interneten tallhat szmos hozzfrsi ISP-re elvgzi, s felhasznlja a kapott informcit a hiteles DNS-szerver belltsra. Ha az Olvas a multimdia folyamszer letltst egy nagymret mkd CDN (Akamai) szemszgbl*szeretn megvizsglni, ajnlott a [Sripanid- kulchpai 2004] munka tanulmnyozsa.
60
61
alkalmazsszint teljestmnyt kt hlzati vgpont kztt, s gy ele gend kapacitst tudjunk lefoglalni egy adott teljestmny elrshez.
62
7. MUI.TIMDIA-HLZATOK
1.
Modelleket kell meghatrozni mind a hvs szintjn (pldul felhasznlk rkeznek a hlzatba s vgpontok kztti alkalmazsokat indtanak), mind csomagszinten (pldul a folyamatban lev alkalmazsok csomagokat kldenek). Vegyk szre, hogy a terhels idben vltozhat. 2. Jl meghatrozott teljestmnykvetelmnyek. Lehet, hogy egy ksleltetsrzkeny forgalmat (pldul egy interaktv audio-/videoalkalmazst) tmogat teljestmnykvetelmny az a valsznsg, amellyel az alkalmazsok vgpontok kztti kslel tetse meghalad egy mg elviselhet maximumot, kisebb legyen, mint egy valami lyen kis e rtk [Fraleigh 2003). 3. Modellek alkotsa vgpontok kztti teljestmny elrejelzsre egy adott
Hlzati
vgpontok
kztti
forgalomigny-modellek.
terhelsi modell esetn, s eljrsok keresse egy legkisebb kltsg svszlessg lefoglalsra, amelyek ltal a felhasznli kvetelmnyek teljeslnek. Ebben a tmban a kutatk sorbanllsi modelleket fejlesztenek
ki (lsd 1.4. fejezet), amelyekkel mennyisgileg meg lehet hatrozni a teljestmnyt egy adott terhelsre, valamint optimalizlsi elj rsokat kutatnak a teljestmnykvetelmnyek kielgtsre alkalmas legkisebb klt sg svszlessg lefoglalsra. Habr a mai legjobbra trekv internet megfelel tervezs esetn (mszaki szempontbl) kpes lenne elegend teljestmnyt szolgltatni a multimdis forgalom szmra, a krds az, hogy mirt nem teszi? A vlaszok elssorban gazdasgi s szervezeti jellegek. Gazdasgi szemszgbl a krds az, hogy a felhasznlk hajlandk lennnek-e fizetni internetszolgltatjuknak azrt, hogy a legjobbra trekv interneten elegend svszlessget ptsen ki a multimdis alkalmazsok szmra? A szervezetek kztti vitk taln mg ijesztbbek. Figyeljk meg, hogy kt multimdis vgpont kztt az t tbb internetszol gltatbl ll hlzaton vezet keresztl. Szervezeti szemszgbl a f krds pedig, hogy hajlandk lennnek-e ezek az internetszolgltatk egyttmkdni (esetleg a bevtel megoszlsval) annak rdekben, hogy a vgpontok kztti t a multimdis alkalmazsok szmra megfelelen megtervezett legyen? Az emltett gazdasgi s szervezeti problmk ttekintse a [Davies 2005) munkban tallhat meg. A (Fraleigh 2003] dolgozat pedig lerja, hogy az 1. szint gerinchlzatot hogyan lehet ksleltetsrzkeny forgalom tmo gatsra felhasznlni.
63
alkalmazsokat, amelyek egymssal egyttmkdnek. A fejezetben megvizsgljuk az RT P, a SP s a H.323 mkdst vals idej interaktv alkalmazsok esetn. Mindhrom szabvnyhalmazt szleskren megvalstottk kln bz ipari termkekben.
Az elz alfejezetben lthattuk, hogy az ad oldalon tallhat multimdis alkalmazs az audio-/videotredkekhez fejlcmezket fz hozz, mieltt azokat a szlltsi rtegnek tadja. Ezek a fejlcmezk sorszmokat s idblyegeket tartalmaznak. Mivel a legtbb multimdis hlzati alkalmazs fel tudja hasznlni a sorszmokat s az idblyegeket, knyelmes lenne olyan szabvnyostott csomagszerkezetet hasznlni, amelyben van mez a hang- s kpadat, a sorszm s idblyeg, valamint ms potencilisan hasznos mez szmra. Az RFC 3550 ltal definilt vals idej protokoll (real-time protocol, RTP) ilyen szabvny. Az RTP alkalmazhat olyan gyakran hasznlt formtumokban trolt ada tok tvitelre, mint pldul hang esetn a PCM, a GSM s az MP3, vide esetn pedig az MPEG s a H.263. Az RTP alkalmas egyedi formtum audio- s videoadatok tvitelre is. Manapsg az RTP szles kr elterjedtsgnek rvend, sok szz termkben s kutatsi prototpusban hasznljk. Ms fontos vals idej interaktv protokollnak is kiegsztje, mint pldul a SIP-nek s a H.323-nak. A fejezetben bemutatjuk az RTP-t s trsprotokolljt, az RTCP-t. Ajnlott elltogatni Henning Schulzrinne RTP-vel foglalkoz weboldalra is [Schulzrinne-RTP 2007], amely sok informcival szolgl a tmrl. A RAT weboldal |RAT 2007] megtekintse is hasznos, ahol egy internetes telefonalkalmazs lersa tallhat.
RTP-alapok
Az RTP ltalban UDP felett fut. A kld oldal RTP-csomagba gyazza a mdiatredket, majd ezt a csomagot UDP-szegmensbe gyazza, s vgl tadja a szegmenset az IP-nek. A vev oldal az UDP-szegmensbl kibontja az RTP-csomagot, ezutn az RTP-csomagbl szintn kibontja a mdiatredket, s legvgl tadja a tredket a mdialejtsznak dekdolsra s megjelentsre. Pldaknt kpzeljk el az RTP-t beszd tvitelre. legyk fel, hogy a beszdforrs 64 kb/s-os PCM-kdoIs (azaz mintavtelezett, kvantlt s digitalizlt). Tovbb tegyk fel, hogy az alkalmazs 20 ms-onknt gyjti ssze a kdolt adatot, gy egy tredk 160 bjtbl ll. A kld oldal minden hangadattredk el egy RTP-fejrszt (RTP header) illeszt, amely tartalmazza a hangkdols tpust, egy sorszmot s egy idblyeget. Az RTP-fej- rsz normlis esetben 12 bjt hossz. A hangtredk s az RTP-fejrsz egytt alkotja az RTPcsomagot (RTP packet). Az RTP-csomag ezutn elkerl az UDP-szoket interfsz hez. A vev oldalon az alkalmazs megkapja a csomagot a szkt interfsztl. Az alkalmazs kibontja a hangtredket, s az RTP-csomag fejrszmezi segtsgvel megfelelen dekdolja, majd lejtssza. Ha egy alkalmazs az RTP-t magba foglalja - nem gy, mint adatmezt, sorszmot vagy idblyeget lehetv tev egyedi sma -, knnyebben egytt tud mkdni ms hlzati multimdis alkalmazsokkal. Pldul ha kt klnbz cg fejleszt internetes telefonszoftvert, s mindkett alkalmazza az RTP protokollt a sajt termkben, akkor van nmi remnynk arra, hogy az egyik termket hasznl szemly a msik internetes telefonalkalmazst hasznl szemllyel
kommuniklni tudjon. A 7.4.3. fejezetben ltni fog juk, 7. hogy az RTP-t gyakran 64 IV1U LTI M EDI A- HLZATOK hasznljk egytt az internetes telefon szabvnyaival. Ki kell emelnnk, hogy az RTP nem nyjt semmifle eljrst, amellyel az adatot idben cl lehet juttatni a clig, s nem ad semmilyen szolgltatsminsgi (QoS) garancit sem; mg a csomagok pontos clba rst sem garantlja, s azt sem biztostja, hogy a csomagok
helyes sorrendben rjenek clba. Valjban az RTP-begyazs csupn a vgrendszereknl lthat. A tvlasztk nem tesznek klnbsget az RTPcsomagot hordoz s az RTP-cso- magot nem hordoz IP-adatcsomagok kztt. Az RTP minden forrs szmra lehetv teszi (pldul kamera vagy mikrofon szmra), hogy kijellje a sajt fggetlen RTP-csomagfolyamait. Kt rsztvev kztti videokonferencia esetn pldul ngy RTP-folyam lehet nyitva - kt folyam a hang tvitelre (egy-egy mindkt irnyba), kt folyam a vide tvitelre (szintn egy-egy mindkt irnyba). Szmos npszer kdolsi eljrs azonban - mint az MPEG 1 s MPEG 2 - a kdols sorn a han got s a videt egyetlen folyamba ktegeli. Abban az esetben, amikor a kdols sorn a han got s a videt sszektegelik, egy irnyba csupn egyetlen RTP-folyamot lltanak el. Az RTP-csomagok nem korltozdnak csupn az egynekadst megvalst alkalmazsokra. Elkldhetk egytl-tbbnek s tbbtl-tbbnek tpus tbbeskldses fkon keresztl is. Egy tbbtl-tbbnek tbbeskldses munkamenetben a sajt RTP-folyamaik elkldsre a munkamenet sszes adja s forrsa ltalban kzs tbbesklds-csopor- tot hasznl. Az olyan sszetartoz R I P tbbeskldses folyamok, mint amilyen pldul egy videokonferencia esetn a klnbz adktl ered hang- s videofolyamok, egy RTP-munkamenethez tartoznak.
Az RTP-csomag fejrszmezi
A 7.10. brn lthat az RTP-csomag fejrsz ngy f mezje: az adatmez tpusa, a sorszm, az idblyeg s a forrsazonost.
Adatmez _ tpusa Sorszm Idblyeg Szinkronizcis forrsazonost Egyb mezk
7.10. bra. Az RTP fejrszmezi Az RTP-fejrszben tallhat adatmez tpusa mez 7 bit hossz. Hangfolyam esetn ez a mez mutatja a hasznlt hangkdolst (pldul PGM, adaptv deltamodulci, lineris prediktv kdols). Abban az esetben, ha a kld szeretn menet kzben a kdolsi megvltoztatni, a vevi az adatmez tpusa mezn keresztl tjkoztathatja. A kld megvltoztathatja a kdo lst a hangminsg javtsa, vagy pp az RTP-folyam bitsebessgnek cskkenlse rdekben. A 7.2. lblzat felsorol nhny, az RTP ltal jelenleg tmogatott hang adatmez tpust.
Videofolyam esetn az adatmez tpusa a videokdolst jelli (pldul mozg JPEG, MPEG 1, MPEG 2, H.261). A munkamenet sorn a kld most is megvltoztathatja menet kzben a vide kdolst. A 7.3. tblzat felsorol nhny, az RTP ltal jelenleg tmogatott videoadat-mez tpust. A tovbbi fontos mezk a kvetkezk:
elkldtt RTP-csomag esetn eggyel n, s a vev fel tudja hasznlni a csomagveszts felismersre, valamint a csomagsorrend visszalltsra. Abban az esetben pldul, ha az alkalmazs a vev oldalon a 86. s 89. sorszm kztt nem kap csomagot, felismeri, hogy a 87. s a 88. csomag hinyzik. gy a vev megprblhatja az elveszett adatokat elfedni. Idblyegmez. Az idblyegmez 32 bit hossz. Az RTP-adatcsomag els bjtjnak mintavteli pillanatt tkrzi. Amint az elz fejezetben is lttuk, a vev az idblyegeket felhasznlhatja a hlzatban elfordul csomagksleltets ingadozsnak kikszblsre, valamint a szinkronizlt lejtszs megvalstsra. Az idblyeg a kld mintavteli rajelbl szrmazik. I lng esetn pldul az idblyeg rajele mintavteli peridusonknt eggyel nvekszik (pldul 8 kHz-es mintavteli frekvencia esetn minden 125. fisec-ban); abban az esetben, ha az audio alkalmazs 160 kdolt mintbl ll tredkeket hoz ltre, akkor aktv forrs esetn az idblyeg minden RTP-csomag esetn 160-nal n. Az idblyeg mg inaktv forrs esetn is lland sebessggel n. Szinkronizcis forrsazonost (SSRC) mez. Az SSRC-mez 32 bit hossz. Az RTP-csomag forrst azonostja. ltalnos esetben minden RTP-munkamenet kln SSRC-rtkkel rendelkezik. Az SSRC nem a kld IP-cme, hanem egy vletlen szm, amelyet a forrs oszt ki, amikor egy j folyam indul. Annak valsznsge, hogy kt folyam ugyanazt a vletlen szmot kapja, nagyon kicsi. Ma mgis ez trtnik, a kt forrs egy j SSRC-rtket generl.
Egy msik lehetsges megolds egy elre elksztett Java RTP-osztly (vagyC RTP-kny v- tr C programozk szmra) felhasznlsa az RTP-mveletek megvalstsra. Ennl a megoldsnl, amely a 7.12. brn is lthat, az alkalmazsfejleszt az RTP-t a szlltsi rteg rsznek tekinti, egy RTP/UDP APIknt az alkalmazsi rteg s a szlltsi rteg kztt. Az alapvet rszletek bemutatsa nlkl (mivel azok osztly-/knyvtrfggek) el kell mondjuk, hogy amikor egy mdiatredket adunk t az API-nak, az alkalmazs kld oldalnak kell az interfszt biztostania magval a mdiatredkkel, az adatmez tpusszmval, az SSRC-vel s az idblyeggel, valamint a clport szmval s a cl IP-c- mvel egytt. Megemltjk tovbb, hogy a Java multimdis keretrendszere (Java Media Framework, JMF) tartalmaz egy teljes RTPimplementcit.
Alkalmazsi RTP UDP IP Adatkapcsolati Fizikai -Szlltsi
69
7. MUI.TIMDIA-HLZATOK
Az RCF 3550 az RTP-vezrl protokoll (RTF control protocol, RTCP) specifikcijt is tartalmazza, egy olyan protokollt, amelyet a hlzati multimdis alkalmazs ltalban az RTP-vel egytt hasznl. A 7.13. brn lthat tbbeskldses forgatknyvnek megfelelen az RTP-munkamenet minden rsztvevje elkldi a tbbi flnek IP-tbbeskldsen keresztl az RTCP-csomagokat. Egy RTPmunkamenethez ltalban egy tbbeskldsi cm tartozik, a munkamenethez tartoz RTP- s RTCP-csomagok pedig ezt a cmet hasz nljk. Az RTP- s RTCPcsomagok a megklnbztethetsg miatt ltr portszmot hasznlnak. (Az RTCP portszma az RT P portszmnl eggyel nagyobb rtk.) Az RTCP-csomagok nem tartalmaznak begyazott hang- s videotredkeket. A csomagokat ezzel szemben idszakosan kldik, s olyan jelentseket, statisztikkat tartalmaznak, amelyek az alkalmazs szmra hasznosak, s amelyek a vevtl s/vagy a kldtl erednek. Ilyen statisztika pldul az elkldtt csomagok szma, az elveszett csomagok szma s a berkezsi idk ingadozsa. Az RTP-specifikci [RFC 3550] nem mondja meg az alkalma zsnak, hogy mit csinljon ezekkel az adatokkal, amelyeket a visszajelzsekbl nyert; ezt az alkalmazsfejleszt dnti el. A kld felhasznlhatja ezt az informcit pldul az tviteli sebessg mdostsra. A visszajelzsekbl nyert informci hibaelemzsi clokat is szolglhat; pldul a vev meghatrozhatja, hogy a problma helyi, rgin belli vagy globlis.
RTCP-csomagtpusok
Minden olyan RTP-folyam esetn, amelyet a vev egy munkamenet rszeknt megkap, a vev egy vteli jelentst llt el. A vev a vteli jelentseket sszefogja egy RTCP-csomagba. A csomagot ezutn kikldi a tbbeskldses fiiba, amely a munkamenet rsztvevit kti sz- sze. A vteli jelentsnek szmos mezje van, amelyek kzl a legfontosabbak a kvetkezk:
Kld
IRTCP j
4
1RTCP1
i
Internet
7.4. VALS
70
7.4. VALS
71
7.4. VALS
72
Annak az RTP-folyamnak az SSRC-ertke, amelyhez a vteli jelents generldott. Az RTP-folyamon bell elveszett csomagok. Minden vev kiszmolja az folyamban elkldtt csomagok s az elveszett RTP-csomagok arnyt. Abban az esetben, ha a kld olyan vteli jelentst kap, amely szerint a vev csupn az ad ltal elkldtt csomagjainak kis rszt kapta meg, alacsonyabb kdolsi sebessgre vlthat, a hlzati torlds cskkentse s a clba jutott csomagok arnynak nvelse rdekben. A legutols vett sorszm az RTP-csomagfolyamban. A csomagok berkezsi idejnek ingadozsa, amely egy simtott becslse az RTP- folyamban egyms utn clba jutott csomagok berkezsi ideje kztti vltakozsnak. Minden RTP-folyam esetn, amelyet egy ad elkld, az ad RTCP kldsi jelentst tartalmaz csomagot hoz ltre, majd azt tovbbtja. F.zek a csomagok tbbek kztt az albbi, RTP-vel kapcsolatos informcit tartalmazzk: az RTP-folyam SSRC rtkt, a folyam legutoljra ellltott RTP-csomagjnak idblyegt s a kls ra aktulis a folyamban elkldtt csomagok szmt, a folyamban elkldtt bjtok szmt.
A kldsi jelentsek az egy RTP-munkameneten belli klnbz mdifolyamok szinkron izcijhoz hasznlhatk. Kpzeljnk el pldul egy videokonferenciaalkalmazst, amelyben minden egyes ad kt klnbz RTP-folyamot llt el, egyet a hangnak, egyet pedig a kpnek. Az RTP-csomagok idblyegei a vide s a hang mintavteli frekvencijhoz ktttek, nem pedig a kls ra aktulis idejhez (pldul a vals idhz). Minden egyes RTCP kldsi jelents tartalmazza az adott RTP-folyamban legutoljra ltrejtt csomagra vonatkoz idblyeget s a keletkezsnek kls ra szerinti idejt. Ily mdon az RTCP kldsi jelents sszerendeli a mintavteli rajelet a vals ra idejvel. Ezt az sszerendelst a vevk fel tudjk hasznlni visszajtszskor a kp s a hang szinkronizcijhoz. Minden tkldeni kvnt RTP-folyam esetn, a kld forrst ler csomagokat is kszt s tovbbt. Ezek a csomagok olyan informcikat tartalmaznak a forrsrl, mint az e-mail cme, a kld neve s cme, valamint az RTP-folyamot elllt alkalmazs lersa. Tartalmazza mg a megfelel RTP-folyam SSRC-rtkt is. Ezek a csomagok lekpezst szolgltatnak a forrsazonost (azaz az SSRC) s a felhasznl/hos/.tnv kztt. Az RTCP-csomagok vermelhetk, ez azt jelenti, hogy vevk vteli jelentsei, a kldsi jelentsek s az imnt emltett forrslerk sszellthatk egyetlen csomagg. Az gy keletkez csomagot UDP-szegmensbe gyazzk, s tovbbtjk a tbbeskldses fa fel.
7.4. VALS
73
RTCP-csomagok sszestett tviteli sebessge jelentsen meghaladja azt a sebessget, amivel az ad az RTP-csomagokat kldi. Fi gyeljk meg, hogy amg a vevk szmnak nvekedsvel a tbbeskldses fba jut RTP-for- galom nem vltozik, addig az RTCP-forgalom a vevk szmval linerisan nvekszik. E skl zsi problma megoldshoz az RTCP a rszt vev felek szmnak megfelelen mdostja azt a sebessget, amellyel a rsztvevk RTCP-csomagokat kldenek a tbbeskldses fba. Mivel minden rsztvev minden ms tagnak is kld vezrlsi csomagot, a munkamenetben rsztvev sszes tag szmt minden rszt vev kpes megbecslni [Friedman 1999]. Az RTCP megksrli a forgalmt a munkamenetben elrhet svszlessg 5 szzalkra korltozni. Tegyk fel pldul, hogy egy olyan adnk van, amely 2 Mb/s sebessggel kld videt. Ekkor az RTCP megprblja a forgalmt a 2 Mb/s 5 szzalkra, vagyis 100 kb/s-ra korltozni a kvetkez mdon. A protokoll a sebessg 75 szzalkt, azaz 75 kb/s-ot a vevknek adja; a maradk 25 szzalkot, azaz 25 kb/s-ot pedig az adnak. A vevknek adott 75 kb/s egyenletesen oszlik meg kztk. gy ha R vev van, akkor minden vevnek 75 R kb/s jut az RTCP-forgalom kldsre, s az ad pedig 25 kb/s sebessggel kldhet RTCP-forgal- mat. Egy tag (ad vagy vev) gy hatrozza meg az RTCP-csomag kldsnek peridust, hogy kiszmolja az (egsz munkamenetre vonatkoz) tlagos RTCP-csomagmretet, s az gy kapott rtket elosztja a hozz rendelt sebessghez tartoz tlagos RTCP-csomagmret- tel. sszegzskppen, az egy adra vonatkoz RTCP csomagtviteli peridus: Az adk szma x 7 =------------------------------------------------------ x tlagos RiCP-csomagmerct 0,25 x 0,05 x A munkamenet svszlessge Egy vevre vonatkoz RTCP csomagtviteli peridus pedig a kvetkez
T =-------------A vevk szma ---------------------- x tlagos RTCP-csomagmcret 0,75 x 0,05 x A munkamenet svszlessge
7.4. VALS
74
cgek tbb nem hasznlnak magncl telefonalkzpontokat (privt branch exchange, PBX), amelyek a cgen belli telefonhvsok kezelsre szolgl helyi vonalkapcsolk. Helyettk a cgen belli telefonos forgalom a vllalat nagysebessg LAN-hlzatn folyik keresztl. Mindez tudomnyos-fantasztikus trtnetnek hangzik. Termszetesen a mai vonalkapcsolt hlzatok s PBX-rendszerek nem fognak a kzeli jvben egyhamar teljesen eltnni [Jiang 2001]. Mindamellett lteznek protokollok s termkek ennek a vzinak a valra vltshoz. Ezek kztt a protokollok kztt az egyik leggretesebb az (RFC 3261] szabvnyban meghatrozott viszonykezdemnyez protokoll (session initiation proto- col, SP). A SP nem tlsgosan fontos protokoll, amely a kvetkezket valstja meg: Eljrsokat biztost a hv s a hvott fl kztti kapcsolat felptsre IPhlzaton keresztl. Lehetv teszi a hv fl szmra, hogy a hvott fl fel jelezze a hvskezdemnyezsi szndkt. Lehetv teszi a feleknek, hogy megegyezzenek a mdia kdolsban. Lehetv teszi a hvsok befejezst is. Eljrsokat biztost a hv fl szmra a hvott fl jelenlegi IP-cmnek meghatrozsra. A felhasznlk nem rendelkeznek lland IP-cmmel, mivel lehet, hogy dinamikus cmkiosztst hasznlnak (DHCP hasznlatval), vagy lehet az is, hogy tbb 1P- kpes kszlkkel rendelkeznek, mindegyiknek ms az IP cme. Eljrsokat biztost a hvskezels szmra, mint pldul j mdiafolyam indtsra a hvs alatt, kdols megvltoztatsra menetkzben, j tagok meghvsra hvs kzben, hvstirnytsra s hvsvrakoztatsra.
7.4. VALS
75
Bobnak. (A megjelents egyszerstse miatt a 7.14. b rn Alice Bob utn beszl, m a valsgban egyszerre is beszlhetnnek.) Bob a krsnek megfelelen kdolja s csomagolja a hangot, majd elkldi a hangot tartalmaz csomagokat a 38060-as portra, a 167.180.112.24 IP-cmre. Alice szintn a krsnek megfelelen kdol s kszti el a csomagokat, majd tovbbtja azokat a 48753-as portra s 193.64.210.89 IP-cmre. Ebbl az egyszer pldbl megtanultuk a SP nhny kulcsfontossg jellemzjt. Elszr is, hogy a SP egy svon kvli protokoll: a SIP-zenetek kldsre s fogadsra hasznlt szktek klnbznek a mdia tartalmnak tvitelre hasznlt szktektl. Msodsorban, hogy a SIP-zenetek maguk is ASCIIkdolsak, s hasonltanak a HTTP-zenetekhez. Harmadikknt pedig elmondhat, hogy a SP minden zenetre vteli visszajelzst vr, gy mind UDP, mind pedig TCP felett hasznlhat.
7.4. VALS
76
193.64.210.8 9
as
Id
Id
7.14. bra. SIP-hivsfelpits bban az esetben, ha Alice ismeri Bob IP-cmt Kpzeljk el mi trtnne, ha a pldban Bob nem rendelkezne PCM /-law kdolval a hangkdols szmra. Ebben az esetben a 200 OK vlasz helyett 600 Nt Acceptable zenetet kldene, s felsoroln, hogy milyen kdolsokat tud elvgezni. Alice gy a felsorolt kdekek kzl vlasztana, s jabb INVITE zenetet kldene, ezttal a kivlasztott kdolst jelezve. A hvs elutastsra Bobnak sok ms elutast vlaszkd is rendelkezsre ll. (Szmos ms kd ltezik, pldul foglalt, nincs a telefonnl, a hvshoz fizets szksges, s nem engedlyezett hvs.)
SIP-cmek
Az elz pldban Bob SIP-cme sip:bob@l 93.64.210.89. Ezzel egytt arra szmtunk, hogy sok - ha nem a legtbb - SIP-cm hasonl az e-mail cmekhez. Pldul Bob cme lehet sip:bob@domain.com . Abban az esetben, amikor Alice SIPkpes kszlke INVITE zenetet kld, akkor az zenet tartalmazza ezt az e-mailcmszer karakterlncot; ezutn a SIP-hlzat az zenetet Bob jelenleg hasznlt IP-
7.4. VALS
77
kpes kszlke fel irnytja (a ksbbiekben lert mdon). Ms lehetsges SIPcm formtum lehet Bob korbbi tele
7.4. VALS
78
fonszma vagy egyszeren Bob vezetkneve/els keresztneve/msodik keresztneve (ha ezek egyrtelmen azonostjk Bobot). A SP egyik rdekes tulajdonsga, hogy weboldalakba lehet begyazni ugyangy, ahogyan az emberek e-mail cme is szerepel a weboldalakon, a mailto URL-t hasznlva. Pldul tegyk fel, hogy Bob rendelkezik szemlyes honlappal, s szeretn a ltogatk szmra lehetv tenni, hogy a honlapon keresztl fel tudjk hvni. Ekkor egyszeren hozz kell adnia a sip:bob@doma in.com URL-cmet az oldalhoz. Abban az esetben, amikor a ltogat rkattint a hivatkozsra, elindul a SIP-alkalmazsa, s INVITE zenetet kld Bobnak.
SIP-zenetek
A SIP-rl adott rvid bevezetnkben nem tekintjk t az sszes zenetfajtt s fejrszt. Ehelyett rviden megnzzk a SP INVITE zenetet, nhny ltalnos fejrsz sorral egytt. Tegyk fel ismt, hogy Alice szeretne egy IP-telefonhvst kezdemnyezni Bob fel, ezttal Alice csupn Bob SIP-cmt ismeri, s nem tudja Bob jelenlegi kszlknek az IP-cmt. Ebben az esetben az zenete ehhez lesz hasonl:
I N V I T E s i p : bob@domain.com S I P / 2 . 0 Via: SIP/2.0/UDP 167.180.112.24 F r o m : s i p : alice@hereway.com T o : s i p : bob@domain.com C a l l - I D : a2e3a@pigeon.hereway.com Content-Type: application/sdp Content-Length: 885 c=IN IP4 167.180.112.24 m=audio 38060 RTP/AVP 0
Az INVITE sor tartalmazza a SP verziszmot, valamint egy HTTP-krs zenetet. Minden esetben, amikor egy SIP-zenet egy SIP-kpes eszkzn keresztlhalad (az eredeti kld kszlket is belertve), az eszkz egy Via (Keresztl) fejrszt illeszt hozz, amely az eszkz IP-cmt jelli. (Hamarosan ltni fogjuk, hogy az ltalnos INVITE zenet szmos SIP-kpes eszkzn megy keresztl, mieltt elrn a hvott fl SIP alkalmazst.) Az e-mail zenethez hasonlan a SIP-zenet tartalmaz egy From (Felad) s egy To (Cmzett) fejrszsort. Az zenet rendelkezik egy Call-ID-vcl (Hvs-azonostval), amely egyrtelmen azonostja a hvst (hasonl mdon, mint a inessage-ID - zenetazonost - az e-mail esetn). Rendelkezik tovbb Content-Type (Tartalom-tpus) fejrszsorral, amely meghatrozza a SIP-zenet tartalmt ler formtumot. A Content-l.ength (Tartalomhossz) sora megadja az zenet tartalmnak hosszt bjtokban. Az zenet kvetkez sorban pedig mr a tartalom kezddik. Esetnkben a tartalom informcii hordoz Alice IP-cmrl s arrl, hogy Alice hogyan szeretn fogadni a hangot.
7.4. VALS
79
A 7.14. brn felvzolt pldban azt feltteleztk, hogy Alice SIP-kpes eszkze ismeri azt az IP-cmet, amelyen Bobot el tudja rni. Ez a felttelezs azonban nem valszer, nem csupn azrt, mert az IP-cmeket gyakran dinamikusan osztjk ki DHCP felhasznlsval, hanem mert Bob tbb IP-kpes kszlkkel is rendelkezhet (pldul klnbz eszkzkkel az otthonban, az autjban s a munkahelyn). Ezrt most tegyk fel, hogy Ali- ce csupn Bob e-mail cmt ismeri, a bob@domain.com cmet, s ezt a cmet hasznlja a SIP-alap hvsokhoz is. Ebben az esetben Alice-nek meg kell tudnia a bob@domain.com cm felhasznl ltal jelenleg hasznlt eszkz IP-cmt. Ehhez Alice egy INVITE zenetet hoz ltre, amely INVITE bob@domain.com SIP/2.0 sorral kezddik, s elkldi egy SlP-he- lyettesnek (SP proxy). A helyettes egy SIP-vlaszzenettel lelel, amely tartalmazhatja a bob@domain.com ltal jelenleg hasznlt eszkz IP-cmt, vagy tartalmazhatja egy web- oldal URL-jt (amely szerint Bob alszik. Hagyj bkn!). A helyettes vlasza a hv fltl is fgghet: ha a hv fl Bob felesge, akkor elfogadja a hvst s visszaadja Bob IP-cmt; ha a hv fl Bob anysa, akkor a vlasz az az URL, amelyik az Alszok weboldalra mutat. A kedves olvas mostanra mr biztos clgondolkozott azon, hogy a helyettes szerver vajon honnan tudja bob@domain.com jelenlegi IP-cmt? Ennek megvlaszolshoz ejtennk kell pr szt egy msik SIP-kpes eszkzrl, a SIPnyilvntartrl (SP regist- rar). Minden SIP-felhasznlhoz rendelnek egy nyilvntartt. Minden esetben, amikor a felhasznl egy SIP-alkalmazst indt egy eszkzn, az alkalmazs egy SIP-nyilvntart zenetet kld a nyilvntartnak, informlva t a jelenlegi IP-cmrl. Abban az esetben pldul, amikor Bob elindt egy SIP-alkalmazst a PDA kszlkn, az alkalmazs egy zenetet kld a kvetkez sorokkal:
REGISTER sip:domain.com SIP/2.0 Via: SIP/2.O/UDP 193.64.210.89 From: s i p : bob@domain.com T o : s i p : bob@domain.com E x p i r e s : 3600
Bob nyilvntartja nyomon kveti Bob aktulis IP-cmt. Minden esetben, amikor Bob SI p -kpes kszlket cserl, az j kszlk j nyilvntart zenetet kld, jelezve az j IP-cmt. Mg abban az esetben is, ha Bob hosszabb ideig ugyanannl a kszlknl marad, a kszlk nyilvntarts-frisstsi zeneteket kld rtestskppen, hogy a leg- utb kldtt IP-cm mg mindig rvnyes. (A fenti pldban 3600 msodpercenknt kell frisstsi zeneteket kldeni annak rdekben, hogy a nyilvntart szerver ne dobja el a cmet.) rdemes megjegyezni, hogy a nyilvntart mkdse analg a DNS hitelest nvszolgltat mkdsvel: a DNS-szerver lland hosztneveket fordt meghatrozott IPcmekre; a SIP-nyilvntart pedig fix szemlyi azonostkat (pldul bob@domain. com) fordt dinamikus IP-cmekre. A SIP-nyilvntartk s helyettestk gyakran ugyanazon a hoszton futnak. Vizsgljuk meg, hogy az Alice SIP-helyetteslje hogyan szerzi meg Bob aktulis IP-c- mt. Az elzekben lertak szerint a helyettes szervernek csupn annyit kell tennie, hogy elkldi Alice INVITE zenett Bob nyilvntartjhoz/helyettestjhez. Ezutn a nyilvntart/helyettest tovbbtja az zenetet Bob ppen hasznlatban
7.4. VALS
80
lv SIP-kpes kszlkhez. Vgl Bob, Alice INVITE zenett megkapva, SIPvlaszzenetet kld Alice-nek. Pldaknt tekintsk a 7.15. brt, amelyenjim@umass.edu ppen a 217.123.56.89 IP-cm gpen dolgozik, s szeretne IP-hlzaton keresztli beszdtvitelt (VoIP) kezdemnyezni keith@upenn.edu-val, aki pp a 197.87.54.21 IP-cmmel rendelkez eszkzn dolgozik. A kvetkez lpsek trtnnek: (1) Jim INVITE zenetet kld az umass SIP-helyettesnek. (2) A helyettes DNS-keresst hajt vgre az upenn.edu SIP-nyilvntartn (az brn nem
SIP-nyilvntart upenn.edu
SIP-helyettes umass.edu
SIP-nyilvntart eurcom.fr
SIP-klIens 217.123.56.89
SIP-kliens 197.87.54.21
lthat), majd tovbbtja az zenetet a nyilvntart szerverhez. (3) Mivel keith@upenn. edu mr nincs nyilvntartva az upenn nyilvntartnl, az upenn nyilvntart tirnyt vlaszt kld, amely jelzi, hogy a helyettes prblkozzon a keith@eurecom.fr cmmel. (4) Az umass helyettest INVITE zenetet kld az eurecom SIP-nyilvntartnak. (5) Az eurecom nyilvntart ismeri keith@eurecom.fr IP-cmt, s tovbbtja az INVITE zenetet a 197.87.54.21 cm hosztnak, amelyen Keith SIP-kliense fut. (6-8) A nyilvntartkon/ helyetteseken keresztl egy INVITE zenet visszajut a 217.123.56.89 cmen tallhat SIP- klienshez. (9) A mdiaforgalom kzvetlenl a kt eszkz kztt zajlik. (A folyamat sorn egy SP hvsi fogadsi (nyugta-) zenet is ltrejn, amely az brn nincs feltntetve.) A SIP-rl szl lersunkat a beszdhvsok kezdemnyezsre fkuszltuk. Mivel a SP ltalban hvsok kezdemnyezsre s befejezsre szolgl jelzsi protokoll, ugyangy hasznlhat videokonferencia-hvsok esetn, mint szvegalap viszonyoknl. A gyakorlatban a SP szmos azonnali zenetkld alkalmazs alapvet rszv vlt. Azok az Olvask, akik tbbet szeretnnek megtudni a SP protokollrl, ltogassk meg Henning Schulzrinne SP weboldalt
7.4. VALS
81
[Schulzrinne-SIP 2007]. Ezen az oldalon tallhatnak nylt for rskd SIP-kliens s -szerver megvalstsokat [SP Software 2007].
7.4.4. 1H.323
A SP alternatvjaknt, az internetes vgrendszerek krben a H.323 egy msik npszer szabvny vals idej hang- s videokonferencik lebonyoltsra. A 7.16. brn lthat, hogy a szabvny azt is trgyalja, hogy az internethez kapcsolt vgrendszerek hogyan kom
82
7. MUI.TIMDIA-HLZATOK
muniklhatnak a szoksos vonalkapcsolt telefonhlzatok telefonkszlkeivel (Annak ellenre, hogy ezt nem emltettk, erre a SP is kpes.) A H.323znavezrl a SlP-nyilvn- tarthoz hasonl eszkz. A H.323-szabvny egy ernyspecifikci, amely a kvetkez specifikcikat tartalmazza: A vgpontok kzs audio-/videokdol*snak megtrgyalsra szolgl specifikci. Mivel a H.323 szmos klnbz hang- s videokdolsi szabvnyt tmogat, a vgpontoknak meg kell egyeznik egy protokoll segtsgvel a kzs kdolsban annak rdekben, hogy lehetv tegyk a kommunikcit. A hang- s videotredkek csomagokba gyazst s tvitelt ler specifikci. A gyakorlatban a H.323 erre a clra az RTP protokollt hasznlja. A vgpontok s a hozzjuk tartoz znavezrlk kztti kommunikci specifikcija. Az internetes telefonok s a hagyomnyos PSTN hlzatbeli telefonok kztti tjrn keresztli kommunikci specifikcija. A H.323-vgpontoknak mg a legrosszabb esetben is tmogatniuk kell a G.711 beszdtmrt szabvnyt. A G.711 ajnls PCM-kdolst hasznl digitalizlt beszd ellltsra 56 kb/s vagy 64 kb/s esetn. Annak ellenre, hogy a H.323 elrja, hogy minden vgpont beszdkdols-kpes legyen (G.711 hasznlatval), a vide tvitelnek lehetsge nem ktelez. Mivel a videotmogats nem ktelez, a vgberendezsek gyrti eladhatnak egyszerbb beszdtvitelre kpes berendezseket, valamint olyan berendezseket is, amelyek a hang s a vide tvitelt is tmogatjk. Egy H.323-kpes vgpont videotmogatsa nem ktelez. Abban az esetben viszont, ha egy vgpont tmogatja a videotvitelt, akkor kte lezen ismernie kell a QCIF H.264 (174 x 144 kppont) videoszabvnyt. A H.323 tfog ernyspeciikci, amely a fenti szabvnyok s protokollok mellett felhasznlja a H.245 vezrlprotokollt, a Q.931 jelzsi csatornt s a RAS protokollt, hogy a znavezrlnl regisztrltassa magt.
Znavezrl
Telefonhlzat
7.4. VALS
Internet
83
H.323-vgpontok
Telefonkszlkek
7.4. VALS
84
Ezt a fejezetet a } 1.323 s a SP kztti klnbsgek kiemelsvel fejezzk be. A H.323 multimdia-konferencik lebonyoltsra szolgl teljes, fgglegesen integrlt protokollgyjtemny: jelzs, regisztrls, belpsellenrzs, szllts s kdolsi eljrsok. Ezzel ellenttben, a SP csupn a viszony felptsrt s felgyeletrt felels, egyetlen komponensknt. A S P egyttmkdik az RTP-vel, de nem tartalmazza azt. Ugyangy nem tartalmazza, m egyttmkdik a G.711 hangkodekkel s a QCIF H.261 video- kodekkel is. Ms protokollokkal s szolgltatsokkal egytt is hasznlhat. A H.323 az 1TU- (telefon) szervezet szabvnya, a SIP-et viszont az 1ETF hozta ltre, valamint sok ms elkpzelst klcsnvesz a webtl, a DNS-tl s az internetes e-mail-tl. A H.323 egy ernyszabvny, amely sszetett, s sok mindenre kiterjed. A SP a KISS elvet hasznlja: keep it simple, stupid vagy keep it short and simple (tervezd rvidre s egyszerre, ne bonyoltsd feleslegesen).
7.4. VALS
85
Mindannyian tisztban vagyunk a mindennapi let klnbz szolgltatsi osztlyaival - az els osztlyon utaz utasok a replgpen jobb szolgltatsokat kapnak, mint az zleti osztlyon utazk, akik pedig jobb szolgltatsokat kapnak, mint mi, akik a turistaosztlyon utazunk; a VIP-szemlyek azonnal bejutnak olyan helyekre, ahov mi csak sorban llssal mehetnk be; az idseket klnsen tisztelik nhny orszgban, tiszteletbeli helyeket kapnak rendezvnyeken s a legjobb telt az asztaloknl. Fontos, hogy az ilyen megklnbztetett szolgltatsok forgalomcsoportokra vonatkoznak, pldul forgalmi osztlyokra, nem pedig egyedi kapcsolatokra. A replgpen pldul az els osztlyon utazk ugyanabban a bnsmdban rszeslnek (egyik els osztly utas sem kap jobb bnsmdot, mint egy msik els osztly utas) ugyangy, ahogy minden VoIP-csomagot egyenlen kezelnek egy hlzaton bell, fggetlenl attl, hogy mely vgpontok kztti kapcsolathoz tartoznak. Amint ltni fogjuk, azzal hogy sok egyedi kapcsolat helyett kisszm forgalmi csoporttal foglalkozunk, a legjobbra trekvnl jobb szolgltatsokat nyjt j hlzati eljrsok viszonylag egyszerek maradnak. A korai internet tervezinek nyilvn megvolt az elkpzelsk a tbbosztly szolgltatsokrl. Emlkezznk csak a szolgltats tpusa mezre az IPv4-fejlcben a 4.13. brn. Az IEN123 [ISI 1979] lerja, hogy a ToS-mez az IPv4 egyik eldjben is ltezett a kvetkez mdon: A szolgltats tpusa [mez] egy jelzse azoknak a paramtereknek, amelyek a kvnt szolgltats minsgre vonatkoznak. Ezeket a paramtereket kell felhasznlni a tnyleges szolgltatsi paramterek kivlasztshoz, amikor az adatcsomagot tvisszk a hlzat egy bizonyos rszn. Szmos hlzat biztost fontossgi sorrendet a szolgltatsokban, amely valamilyen mdon az elbbre sorolt forgalmat fontosabbnak kezeli, mint az tbbi forgalmat. Mr hrom vtizeddel ezeltt is tisztban voltak azzal az elkpzelssel, hogy klnbz osztly forgalmak szmra eltr osztly szolgltatsokat nyjtsanak. Neknk azonban ugyanilyen hossz id kellett ahhoz, hogy megvalstsuk ezt az elkpzelst. A vizsglatainkat a 7.5.1. alfejezetben nhny jelenet bemutatsval kezdjk, amelyek elremozdtjk a klnbz eljrsok bevezetsnek szksgessgt tbbosztly szolgltatsok biztostsra. Ezutn kt fontos tmakrt rintnk adatkapcsolati szint temezs s csomagosztlyozs a 7.5.2. alfejezetben. A 7.5.3. alfejezet pedig a Diffserv-tmrl szl - az internet megklnbztetett szolgltatsokat nyjt jelenlegi szabvnyairl.
7.4. VALS
86
87
7. MUI.TIMDIA-HLZATOK
R - l ss
1,5 Mb/s sebessg ' v vL adatkapcsolat % ^ R2
t *
R1 kimen sora
adatkapcsolat ^ ^
Annak rdekben, hogy Rl megklnbztethesse a sorban ll audio- s az FTPcso- magokat, minden csomagot meg keli jellni, hogy melyik forgalmi osztlyhoz tartozik. Ez volt az IPv4 szolgltats tpusa (ToS) mezjnek eredeti clja. Mivel ez egyrtelm, a tbbszrs forgalmi osztlyok biztostshoz szksges eljrsok kapcsn ez az els kvetkeztetsnk.
2.
3.
FTP-szerver
Tegyk fel, hogy az tvlaszt valahogyan (a ksbbi fejezetekben lert eljrsok segtsgvel) megllaptja, hogy az 1 Mb/s sebessg hangalap alkalmazs csomagjai rszre kell prioritst biztostania. Mivel a kimen adatkapcsolat sebessge 1,5 Mb/s, mg a kisebb priorits FTP-csomagok is tlagosan 0,5 Mb/s tviteli svszlessget kapnak. Mi trtnik viszont akkor, ha a hangalap alkalmazs 1,5 Mb/s vagy ennl nagyobb sebessggel kezdi el kldeni a csomagjait (akr szndkosan, akr az alkalmazsban lv hiba miatt)? Ebben az esetben az FTP-csomagok hezni fognak, azaz semmilyen szolgltatatsban sem rszeslnek az R1-R2 adatkapcsolatban. I Iasonl problmk fordulhatnak el abban az esetben is, ha tbb azonos priorits alkalmazs (pldul egyszerre tbb hanghvs) osztozik egy azonos adatkapcsolat svszlessgn; egyetlen nz
ba dntheti a tbbi adatfolyam teljestmnyt. Idelis esetben ahhoz, hogy egy adatfolyamot megvdjnk egy msik hibsan mkd adatfolyamtl, olyan fok elszigetelsre van szksg, amely ltal garantlhat a csomagok osztlyok kztti megklnbztetse, s az esetleges azonos forgalmi osztlyba tartoz adatfolyamok kztti megklnbztetse. Az azonos forgalmi osztlyba tartoz adatfolyamok egymstl val megvdsnek elkpzelse ellentmond azon korbbi megfigyelsnknek, miszerint az azonos osztlyba tartoz csomagokat azonos mdon kell kezelni. Valjban a csomagokat a hlzat bels rszben elhelyezked tvlasztknl egyenl mdon kezelik. A hlzat szln azonban azrt, hogy egy adatfolyam sszestett sebessge ne haladjon meg egy megadott rtket, az egy adatfolyamon belli csomagokat is ellenrzik. Ezek a megfontolsok adjk a msodik kvetkeztetsnket: 2. kvetkeztets: Ajnlott az adatfolyamok, valamint a forgalmi osztlyok kztt bizonyos fok elszigetelst biztostani annak rdekben, hogy egy osztlyt vagy adatfolyamot ne rinthesse htrnyosan egy msik osztly vagy adatfolyam hibs mkdse. A kvetkez alfejezetben megvizsglunk nhny specilis eljrst, amely alkalmas a forgalmi osztlyok, valamint az adatfolyamok kztti elklntsre. Megjegyezzk, hogy kt f megolds ltezik. Az els megolds a forgalom ellenrzse (traflic police), amelyet a 7.19. bra is bemutat. Abban az esetben, ha a forgalmi osztlynak vagy az adatfolyamnak egy meghatrozott kvetelmnynek kell megfelelnie (pldul, hogy a hangfolyam ne ha ladja meg az 1 Mb/s-os cscssebessget), akkor valamilyen ellenrz eljrst alkalmaz-
R1
Jells:
Csomagjells s ellenrzs
Mrs ellenrzs
j
Megjellsek
hatunk. Az ellenrztt alkalmazs hibs mkdse esetn az ellenrzsi eljrs lpseket tesz (pldul eldobja vagy kslelteti a kvetelmnyt megsrt csomagokat) azrt, hogy a hlzatba belp tnyleges forgalom megfeleljen a kvetelmnynek. A kvetkez fejezetben bemutatott lyukas vdr (leaky bucket) eljrs taln a legszlesebb krben alkalmazott ellenrzsi eljrs. A 7.19. brn a csomagosztlyozs s a jellsi eljrs (1. kvetkeztets), valamint az ellenrzsi eljrs (2. kvetkezfets) egytt helyezkedik el a hlzat szln, egyrszt a vgrendszernl, msrszt egy szls tvlasztnl. Egy msik megolds a forgalmi osztlyok s folyamok kztti elklnts megvalstsra az adatkapcsolat-szint csomagtemezs (link-level packetscheduling mechanism) gy, hogy minden osztly s adatfolyam szmra lland svszlessget foglalunk le. A hangfolyam szmra lefoglalhatunk pldul az Rlnl 1 Mb/s-ot, az FTP-folyam szmra pedig 0,5 Mb/s-ot. Ebben az esetben a hangfolyam s az FTP-folyam a 7.20. bra szerint egy-egy logikai adatkapcsolatot lt 1,0 s 0,5 Mb/s sebessggel. A svszlessg adatkapcsolat-szint lefoglalsnak szigor vgrehajtsval egy osztly vagy adatfolyam csupn a szmra lefoglalt svszlessget hasznlhatja; gyakorlatilag nem tud olyan svszlessget felhasznlni, amelyet ms ugyan nem hasznl, de nem a szmra van lefoglalva. Abban az esetben pldul, ha a hangfolyam megsznik (a beszl sznetet tart, s nem keletkeznek csomagok), az FTP-folyam akkor sem lenne kpes 0,5 Mb/s-nl nagyobb sebessggel adatot tvinni az R1-R2 kapcsolaton, annak ellenre, hogy a hangfo lyam 1 Mb/s-os svszlessge ppen nincs hasznlatban. Szksg van teht a svszlessg lehet leghatkonyabb kihasznlsra olyan mdon, hogy egy osztly vagy adatfolyam szmra lehetv vljon egy ms ltal ppen kihasznlatlan svszlessg felhasznlsa. E megfontolsbl szletett a harmadik kvetkeztetsnk: 3. kvetkeztets: Az osztlyok, illetve adatfolyamok kztti elklnts mellett szksg van az erforrsok (pldul adatkapcsolatok svszlessge, pufferek) lehet leghatkonyabb kihasznlsra.
R1
*
0,5 Mb/s sebessg logikai adatkapcsolat
temezsi eljrsok
Az 1.3. s 4.3. a 1 fejezeteket felidzve, a klnbz hlzati adatfolyamokhoz tartoz csomagok valamelyik adatkapcsolat kimen pufferben kerlnek a vrakozsi sorba, s ott trtnik a nyalbolsuk az tvitel eltt. Azt a mdszert, ahogyan a sorban ll csomagokat kivlasztjk az adatkapcsolaton trtn tvitelre, adatkapcsolat-temezsnek nevezzk. Nzznk meg a legfontosabb adatkapcsolat-temezsek kzl nhnyat rszletesebben. Elsknt be, elsknt ki (FIFO) A 7.21. bra egy absztrakci a FIFO (first-in-first-out) adatkapcsolat-temezs sorbn- llsi modelljrl. Az adatkapcsolat kimenetre rkez csomagok vrni knyszerlnek, ha az adatkapcsolat ppen egy msik csomag tvitele miatt foglalt. Abban az esetben, ha a berkez csomag szmra nincs elegend hely a pufTerben, a sor csomageldobsra vonatkoz irnyelve (packet-discarding policy) meghatrozza, hogy a berkez csomagot dobja el (s ez elveszik) vagy ms csomagokat tvoltson-c el a sorbl azrt, hogy a berkez sz mra helyet szabadtson fel. Az albbiakban a csomageldobst nem vesszk figyelembe. Amikor a csomag tvitele az adatkapcsolaton teljes mrtkben befejezdik (azaz megkapja a megfelel szolgltatst), kikerl a vrakozsi sorbl.
Adatkapcsolat (Szerver)
7.21. bra. A FIFO sorbon lls vzloto A FIFO (rkezsi sorrend szerinti temezs, first-come-first-served, FCFS nven is ismert) temezsi mdszer a csomagokat olyan sorrendben vlasztja ki elkldsre, ahogyan azok az adatkapcsolat kimen vrakozsi sorba megrkeztek. Mindannyiunknak ismers lehet a FIFO vrakozsi sor a buszmegllk kapcsn (klnsen Angliban, ahol a sorban llsi tkletesre fejlesztettk) vagy ms szolgltatsi kzpontok kapcsn, ahol az rkez gyfl az egyetlen sor vgre ll be, megtartva a helyt halad elre, majd kiszolgl jk, amint elrte a sor eleit. A 7.22. bra mutatja a FIFO-t mkds kzben. A csomagok rkezst a fels idvonalon lthat szmozott nyilak jellik, ahol a szmok a csomagok rkezsi sorrendjt mutatjk. A csomagok tvozsa az als idvonalon lthat. A csomagok kiszolglshoz (tvitelhez) szksges idket a kt idvonal kztt elhelyezked satrozott tglalapok jellik. A FIFO-kiszolgls kvetkeztben a csomagok az rkezsk sorrendjben tvoznak. Figyeljk meg, hogy a 4. csomag tvozsa utn az adatkapcsolat kihasznlatlan marad (mi-
Id
H !-
Id
Tii H iiiii--------------------------1---1-----1------i
m m. B
H 1----------1------1------!------1------1------1-----1--------1-----1-------1-------= 4 r= b f = f = l f = 12 t= 14
r= 12 t = 14
mm
vei az els ngy csomag tvitele befejezdtt, s a csomagok tvoztak a sorbl) az 5. csomag megrkezsig. Prioritsos sorba llts A prioritsos (fontossgi sorrend szerinti) sorba llts (priority queuing) esetn a 7.23. brn lthat mdon a berkez csomagokat fontossgi osztlyokba soroljk a kimenet vrakozsi sorban. Az elz fejezetben lertak szerint a csomag fontossgi osztlya fgghet a fejrszben hordozott jellstl (pldul az IPv4csomag ToS-fej rszmez rtktl), a forrs vagy cl IP-cimtl, a forrsport szmtl vagy egyb kvetelmnytl. Tipikusan minden fontossgi osztly sajt vrakozsi sorral rendelkezik. Amikor a csomagok elkldsre kivlasztdnak, a prioritsos sorba lltsi eljrs a legnagyobb, nem res vrakozsi sorral rendelkez prioritsi osztlybl vlaszt csomagot (azaz abbl, ame lyiknek van kiszolglsra vrakoz csomagja). Azonos prioritsi osztlyban a kiszolgls rendszerint ITFO-elv szerint mkdik. A 7.24. bra illusztrlja a kt fontossgi osztllyal rendelkez prioritsos sorba llts mkdst. Az 1., 3. s 4. csomag a nagyobb prioritsi osztlyba tartozik, mg a 2. s az 5. csomag a kisebbe. Az 1. csomag rkezsekor az adatkapcsolat kihasznlatlan, gy a csomag tvitele azonnal elkezddik. A kiszolgls kzben megrkezik a 2. s a 3. csomag, s rtelemszeren bekerlnek a kis, illetve a nagy priorits osztlyba. Az 1. csomag tvitele utn a 3. (nagy priorits) csomag kerl kivlasztsra a 2. csomaggal szemben (amely an-
Ft, i ? ISI
rkezsek ! j I j j Id
H h->
m m m, m
f = o
rr
r,= i2 r=14
Id
H 1-----------1-------1------1-------1--------
t= 2
Tvozsok
i i fii isi rr rV
r=4
t= 6
r=8
f = 10
4 5
7.24. bra. A prioritsos sorba llts mkdse nak ellenre, hogy korbban rkezett, kisebb prioritsi osztlyba tartozik). A 3. csomag tvitelnek befejezsekor a 2. csomag kiszolglsa kezddik meg. A 4. (nagy priorits) csomag a 2. (kis priorits) csomag kiszolglsa kzben rkezik meg. Egy nem megszak- tsos prioritsos sorba llts esetn a csomagok tvitelt nem lehet megszaktani, miutn az mr elkezddtt. Esetnkben a 4. csomag a vrakozsi sorba kerl, majd a 2. csomag tvitelnek befejezse utn kerl kiszolglsra. Krbejrsos s slyozott egyenl esly (WFQ) sorba llts A krbejrsos sorba llts (round robin queuing discipline) esetn a prioritsos sorba lltshoz hasonlan a csomagokat osztlyokba soroljk. Az elz esetnl ltott szigor fontossgi sorrend kiszolglssal szemben, a krbejrsos sorba lltsi temez folyamatosan vltoztatja a kiszolglst az osztlyok kztt. Az temezs legegyszerbb esetben elszr egy 1. osztly csomag kerl tvitelre, majd egy 2. osztly, majd megint egy 1. osztly, ezutn jra 2. osztly, s gy tovbb. Egy gynevezett munkatakarkos sorba lltsi fegyelem esetben soha nem fordulhat el, hogy egy adatkapcsolat kihaszn latlan maradjon egszen addig, amg ltezik (brmelyik osztlyba tartoz) tvitelre vr csomag. A munkatakarkos krbejrsos sorba llts (work-conserving round robin discipline) abban az esetben, ha nem tall egy adott osztlyban csomagot, a krbejrsos temezs szerinti kvetkez osztlyban keres tovbb. A 7.25. brn kt osztllyal rendelkez krbejrsos sorba llts mkdse lthat. A pldban az 1., 2. s 4. csomag az 1. osztlyba, mg a 3. s 5. csomag a
2. osztlyba tartozik. Az 1. csomag tvitele a sorba rkezse utn azonnal elkezddik. A 2. s 3. csomag az 1. csomag kiszolglsa kzben rkezik, gy bellnak a vrakozsi sorba. Az tvitel befejse- kor az adatkapcsolat temezje egy 2. osztlyba tartoz csomagot keres, gy a 3. csomagot vlasztja ki tvitelre. A 3. csomag tvitele utn az temez egy 1. osztly csomagot keres, gy a 2. csomag kiszolglst kezdi meg. Ennek befejezse utn a 4. csomag az egyetlen sorban ll csomag; ezrt ennek tvitele azonnal elkezddik a 2. csomag utn. A slyozott egyenl esly .sorba llts (weighted fair queuing, WFQ) a krbejrsos sorba lltsi temezs egyfajta ltalnostsa, amely igen jl hasznlhat a QoS-archi- tektrk esetn [Demers 1990; Parekh 1993]. A WFQ illusztrcija a 7.26. brn lthat. A berkez csomagok a megfelel osztlyhoz tartoz vrakozsi terleten llnak be a sorba. A krbejrsos sorba lltsi temezshez hasonlan a WFQ-temez is krkrs mdon szolglja ki az osztlyokat - elszr az 1. osztlyt, majd a 2. osztlyt, vgl a 3. osztlyt, ezek utn pedig (felttelezve, hogy sszesen hrom osztly van) visszatr a ki-
m mm m
rkezsek
rr
Id
T1
Kiszolgls
H- -1
ii
if f= 14 ------* 5
B8 ! 3 csomag
t
Tvozsok
7.25. bra. A kt osztllyal rendelkez krbejrsos sorba llts mkdse szolgls sorrend elejre. A WFQ szintn egy munkatakarkos sorba lltsi fegyelem, gy res osztly esetn azonnal a kiszolglsi sorozat kvetkez osztlyra ugrik.
A WFQ abban klnbzik a krbejrsos sorba lltsi temezstl, hogy brmely idtartamot tekintve minden egyes osztly klnbz mrtk kiszolglsban rszesl. Rszletesebben kifejtve, minden i osztlyhoz rendelnk egy w slyt. A WFQ esetn minden olyan idintervallumban, amikor az / osztlybeli csomagok kerlnek tvitelre, az /. osztly a szolgltats Wf I (wp mennyisgnek megfelel rszt kapja meg biztosan, ahol a nevezben tallhat sszegzs az sszes vrakoz csomaggal rendelkez osztlyra vonatkozik. Mg a legrosszabb esetben is, ha minden osztly rendelkezik vrakoz csomaggal, az /. osztly garantltan megkapja a teljes svszlessg w-J V, (wp rszt. gy az R tviteli sebessggel rendelkez adatkapcsolat esetn, az osztly mindenkpp kpes legalbb R x wj (w ; ) sebessget elrni. Az elzekben egy idelis WFQ-t mutattunk be, mivel nem vettk figyelembe azt, hogy a csomagok diszkrt adategysgek, s egy cso mag tvitelt egy msik csomag tvitelnek kezdete nem szaktja meg; [Demers 1990] s [Parekh 1993] ad bvebb lerst errl a csomagolsi krdsrl. A kvetkez alfejezetekben ltni fogjuk, hogy a WFQ kzponti szerepet jtszik a QoS-architekt rkban. Megtallhat a mai tvlaszt-termkekben is [Cisco QoS 2007].
Tvozsok
Adatkacsolat
7.5. TBBFLE
101
102
7. MULTIMDIA-HLZATOK
monknti csomagok szmt), azaz amilyen gyorsan az adatfolyamok csomagjai a hl zatba rkezhetnek. Ebben az esetben kritikus krds az idintervallum, amely szerint az ellenrzst vgrehajtjuk. Az az adatfolyam, amelynek az tlagos sebessge msod percenknt 100 csomagra korltozdik, szigorbban korltozott, mint az a forrs, amelyiknek percenknt 6000 csomagot engednk, annak ellenre, hogy elg hossz idintervallumot figyelembe vve mindkett ugyanolyan tlagos teresztsi kpessg gel rendelkezik. Az utbbi megszorts pldul megengedi, hogy egy msodperc hosz- sz idintervallumban egy adatfolyam 1000 csomagot kldjn, mg az elbbi korltozs ezt a kldsi tulajdonsgot nem engedi meg. Cscssebessg. Amg az tlagos sebessgbeli megszortsok korltozzk a hossz tvon a hlzatba kldhet forgalom mennyisgt, a cscssebessg megszortsai a rvid tvon a hlzatba kldhet csomagok szmnak legmagasabb rtkt korltozzk. A fenti pldnkban elfordulhat, hogy a hlzat ellenriz egy adatfolyamot olymdon, hogy percenknt tlagosan 6000 csomagot enged be, m korltozhatja gy is, hogy az adatfolyam msodperenknt legfeljebb 1500 csomagot kldhet. Lkelmret. A hlzat azt is megmondhatja, hogy egy rendkvl rvid idinterval lum alatt legfeljebb mennyi csomagot (mekkora csomaglketet) lehet a hlzatba kldeni. Abban az esetben, ha az intervallum hossza nullhoz kzeli, ez a korlt meg mondja, hogy mennyi csomagot lehet egyidejleg a hlzatba kldeni. Annak elle nre, hogy az egyidej csomagklds nem lehetsges (mivel minden adatkapcsolatnak van fizikai sebessgkorltja), az elvonatkoztatott maximlis lketmret hasznos fogalom. A lyukas vdr mdszer absztrakci, amely ezen ellenrzsi korltozsok jellemzs re hasznlhat. A 7.27. brn lthat, hogy a lyukas vdr olyan vdr, amely b szm zsetont tud trolni. A zsetonok a kvetkez mdon jutnak be a vdrbe: az j zsetonok egy lland r zseton/msodperc sebessggel keletkeznek. (Az egyszersg kedvrt fel ttelezzk, hogy az idegysg a msodperc.) Abban az esetben, ha a vdrben b-nl kevesebb zseton van, akkor a keletkezsekor az j zseton beleesik a vdrbe; ellenkez esetben viszont az jonnan keletkezett zseton nem kerl be a vdrbe, s a vdrben tallhat vezrjelek szma b marad. Vizsgljuk most meg, hogy a lyukas vdr milyen mdon hasznlhat csomagfolyam ellenrzsre. Tegyk fel, hogy mieltt egy csomag bekerlne a hlzatba, elszr el kell tvoltania egy zsetont a zsetonok trolsra szolgl vdrbl. Abban az esetben, ha a vdr res, a csomagnak vrnia kell, amg rkezik egy zseton. (Msik megolds a csomag eldobsa lehetne, m ezt most figyelmen kvl hagyjuk.) Vizsgljuk meg, hogy ez a visel keds hogyan ellenrzi a forgalmat. Mivel legfeljebb b zseton lehet a vdrben, a lyukas
103
7. MUI.TIMDIA-HLZATOK
vdr ltal ellenrztt adatfolyam maximlis lketmrete b lehet. Tovbb, mivel a zsetonok ellltsi sebessge r, brmely hossz idintervallumban a hlzatba legfeljebb rt + b szm csomag rkezhet. Ennlfogva, az r zsetonellltsi sebessg korltozza azt a hossz tv tlagsebessget, amellyel a csomagok a hlzatba rkeznek. A lyukas vdrket arra is felhasznlhatjuk (klnsen, ha egyms utn kt lyukas vdrnk van), hogy a hossz tv llagsebessg mellett az adatfolyam cscssebessgt is szablyozzuk; lsd mg a fejezet vgn tallhat feladatokat. Lyukas vdr + slyozott egyenl esly sorba llts = bizonythat legnagyobb ksleltets egy vrakozsi sorban Hamarosan megvizsgljuk az gynevezett Intserv- s Diffserv-megoldsokat, amelyek alkalmasak szolgltatsminsg biztostsra az interneten. Ltni fogjuk, hogy mind a lyukasvdr-ellenrzs, mind pedig a WFQ-temezs fontos szerepet kap. Zrjuk ezrt ezt az alfejezetet azzal, hogy megvizsgljuk egy tvlaszt kimen adatkapcsolatt, amely n adatfolyamot nylbl, valamint minden adatfolyamra lyukasvdr-ellenrzs rvnyes b s r, i = 1,..., n paramterekkel, s WFQ-temezst hasznlva. Az adat folyam kifejezs alatt most olyan csomagok halmazt rtjk, amelyben lv csomagokat az temez nem klnbzteti meg egymstl. A gyakorlatban az adatfolyamot alkothatja akr egyetlen kt vgpont kztti sszekttets forgalma, vagy akr sok ilyen sszekttets gyjtemnye is. Az esetet a 7.28. bra illusztrlja. A WFQ-rl szl lersunkban lttuk, hogy minden egyes i adatfolyam szmra biztostott az adatkapcsolati svszlessg legalbb R x Wj/ (wj) rsze, ahol R az adatkapcsolat csomag/msodpercben mrt tviteli sebessge. Kzek utn krdezhetnnk, hogy mi az a legnagyobb ksleltets, amelyet egy csomag tapasztalhat, mikzben a kiszolglsra vr WFQ-nl (miutn thaladt a lyukas vdrn)? Koncentrljunk most az 1. adatfolyamra! legyk fel, hogy az 1. adatfolyam zsetonokat trol vdrje kezdetben tele van. Az 1. adat folyam lyukas vdr ellenrzjhez b{ csomaglket rkezik. Ezek a csomagok eltvoltjk az sszes zsetont a vdrbl (vrakozs nlkl), majd csatlakoznak az 1. adatfolyam WFQ vrakozsi terlethez. Mivel ezeket a csomagokat legalbb R x wj (wj) csomag/m-
104
7. MULTIMDIA-HLZATOK
R x v i /wj
A kplet teht azt jelenti, hogy ha b{ csomagunk van a vrakozsi sorban, s ezeket legalbb R x wi iQwp csomag/msodperc sebessggel szolgljk ki (tvoltjk el a sorbl), akkor az utols csomag tvitelig eltelt idmennyisg nem lehet tbb, mint b\ /(R x w\ /(2,wp). Az egyik megoldand fejezetvgi feladatban be kell majd bizonytani, hogy rj < R x vi /Cwj) esetn dmiX valban a lehet legnagyobb ksleltets, amelyet brmely 1. adatfolyamban elhelyezked csomag tapasztalhat a WI'Q vrakozsi sorban.
7.5.3. Uiffserv
Az internetes DifFserv-architektra [RFC 2475; Kilkki 1999] a szolgltatsok differencilt (megklnbztetett md) nyjtst tzi ki clul - amely azt a kpessget jelenti, hogy az internet klnbz forgalmi osztlyait klnbz mdon kezelje s mindezt sklzhat s rugalmas mdon. A sklzhatsg kvetelmnye abbl a tnybl ered, hogy egymssal egyidejleg tbb szzezer forrs-cl kztti forgalom adatfolyama lehet jelen egy internetes gerinchlzati tvlasztnl. Rvidesen ltni fogjuk, hogy ezt a kvetel mnyt mr csupn az ltal is teljesteni lehet, hogy egyszer tbbletfunkcionalitst adunk a hlzati maghoz azzal, hogy jval sszetettebb vezrl mkdst valstunk meg a hl zat szln. A rugalmassg irnti igny pedig abbl a tnybl kvetkezik, hogy j szolglta tsi osztlyok jhetnek ltre, valamint rgiek vlhatnak elavultt. A DifFservarchitektra rugalmassga azt jelenti, hogy nem hatroz meg szolgltatsokat vagy szolgltatsi osztlyokat. ppen ellenkezleg, a DifTserv csupn a
7.5. TBBFLE
SZOLGLTATSI OSZTLY LEHETV TTELE 105 mkdshez szksges komponenseket szolgltatja, teht a hlzati architektra azon rszeit, amelyekkel a szolgltatsokat meg lehet valstani. Vizsgljuk meg most ezeket a komponenseket rszletesebben.
Ahhoz, hogy bemutathassuk a megklnbztetett szolgltatsok (Diffserv) modelljnek szerkezeti rszeit meghatroz keretrendszert, kezdjk a 7.29. brn lthat egyszer h lzattal. Ebben az a 1 fejezetben lerjuk a Diffserv komponenseinek egyik hasznlati mdjt. Az RFC 2475 szabvnyban lertak szerint szmos ms felhasznls lehetsges. Clunk a Diffserv f szempontjainak bemutatsa, nem pedig az architektra modell kimert rsz letessg lersa. Azoknak az olvasknak, akik tbbel szertnnek megtudni a Dilfserv-architektrrl, ajnlott a tmra szleskren kitr [Kilkki 1999] knyv. A Diffserv-architektra kt funkcionlis elemhalmazbl ll:
hatrn (vagy egy olyan DiTserv-kpes hosztnl, amely forgalmat generl, vagy az els olyan Diffserv- kpes tvlasztnl, amelyen a forgalom tmegy) a befel rkez csomagokat megjellik. Kicsit pontosabban ez azt jelenti, hogy a csomag fejrsznek megklnbztetett szolgltats (DS) mezjt valamilyen rtkre belltjk. Pldul a 7.29. brn a H 1-tl a H3-hoz kldtt csomagokat az R jelli meg, mg a H2-tl H4-hez kldtt csomagokat az R2. A jells, amelyet a csomag kap, jelzi, hogy melyik forgalmi osztlyba tartozik. A klnbz forgalmi osztlyok klnbz szolgltatsokat kapnak a hlzat belsejben. Magfunkcik: tovbbts. Abban az esetben, amikor a DS-mezben megjellt csomag egy Diffserv-kpes tvlaszthoz rkezik, a csomag tovbbtsa a kvetkez csomponthoz a csomag osztlyhoz rendelt csomagtovbbtskor kvlrl megfigyelhet viselkeds (per-hop behaviour) alapjn trtnik. A csomagtovbbtskor kvlrl megfigyelhet viselkeds befolysolja azt, hogy az tvlaszt puffere s svszlessge
Hl
Jells:
hogyan oszlik meg a verseng forgalmi osztlyok kzlt. A Ditfservarchitektra alapelve az, hogy az tvlaszt csomagtovbbtskor kvlrl megfigyelhet viselkedse csupn a csomagok jellseitl fgg, azaz attl az osztlytl, amelyikbe a csomag tartozik. gy, ha a 7.29. bra szerint a Hl-tl a H3-fel kldtt csomagok ugyanazt a jellst kapjk, mint a H2-tl a H4-fel irnyul csomagok, akkor a hlzat sszevontan kezeli ket anlkl, hogy megklnbztetn a Hl, illetve a H2-tl ered csomagokat. Az R3 pldul nem klnten el a Hl-ti, illetve a H2-I1 ered csomago kat, amikor tovbbtja ket az R4 fel. gy a megklnbztetetl szolgltatsi architek tra megsznteti az tvlasztban fenntartott llapotok szksgessgt minden egyes forrs-cl prhoz - ez fontos tnyez az alfejezet elejn trgyak sklzhatsgi kve telmnyek elrse rdekben. Hasznos lehet itt egy analgia bemutatsa. Szmos nagyszabs kzssgi esemny (pldul egy nagy fogads, egy nagy tncklub vagy egy diszk, egy koncert vagy egy focimeccs) esetn a belp emberek valamilyen tpus jegyet kapnak: VIP a nagyon fontos szemlyek szmra; 18 v feletti jegyek azoknak a szemlyeknek, akik elmltak vagy ppen pontosan 18 vesek (alkoholos italok felszolglsa esetn pldul); sznpad mgtti jegyek a koncerteken; sajtjegyek az jsgrk szmra; s hagyomnyos belp az tlagemberek nek. Ezek a belpk ltalban az esemnyre trtn belpskor kerlnek kiosztsra, azaz az esemny szln. Itt, az esemny szln trtnnek a szmtsignyes mveletek, pldul a belpdj fizetse, a megfelel tpus meghv ellenrzse s a meghv rvnyestse a szemlyazonossg ellenrzse mellett. Tovbb elfordulhat, hogy bizonyos tpus szemlyek csupn korltozott szmban kapnak belpt az
esemnyre. Abban az esetben, ha ilyen korlt ltezik, az ilyen szemlyeknek vrniuk kell a belps eltt. Miutn mindannyian bejutottak, a klnbz szemlyek a klnbz belpik alapjn eltr szolgltats igny- bevtelre jogosullak - egy VIP kaphat ingyen italokat, jobb asztalt, ingyen telt, belpst nyerhet kizrlagos termekbe s udvarias kiszolglsban rszesl. Ezzel ellenttben, egy hagyomnyos szemly csupn alapszolgltatsokat kap. Mindkt esetben az esemny sorn az egyes embereket megillet szolgltatsok csupn a belpjk tpustl fggnek. Emellett az azonos osztlyba tartoz szemlyeket egyformn kezelik.
Diffserv-forgalomosztlyozs s -kondicionls
A 7.30. bra egy logikai nzett mutatja be a hlzat szln elhelyezked tvlasztkon belli osztlyozsnak s a jellsi funkciknak. A berkez csomagokat elszr osztlyozzk. Az osztlyoz a csomagokat egy vagy tbb fejrszmezjk alapjn vlasztja ki (pldul forrsportszm, forrscm, clcm, clportszm s protokollazonost), s a csomagot a megfelel jell eljrshoz irnytja. A csomag jellse az IPv4- vagy IPv6-fejrsz DS-mezjben tallhat [RFC 3260]. A DS-mez clja a 4. fejezetben trgyalt IPv4-szol- gltats tpusmezjnek s az IPv6 forgalomosztly mezjnek helyettestse. Nhny esetben a vgfelhasznl hozzjrul ahhoz, hogy a csomagkldsi sebessgt korltozzk annak rdekben, hogy alkalmazkodjon egy meghatrozott forgalmi profilhoz (traffic profile). A forgalmi profil megszabhatja a cscssebessg maximumt, vagy akr a csomagfolyam lketmrett, ahogyan azt korbban a lyukas vdr eljrsnl is lttuk. Addig, amg a felhasznl az adott forgalmi osztlynak megfelelen kldi a csomagokat a hlzatba, azok megkapjk a priorits jellsket, s tovbbtdnak a clirnyuk fel. Msfell, ha megsrtik a forgalmi profilt, a profilon kvli csomagok ms tpus je-
logikai smja
llst kapnak, esetleg mdosulhatnak (pldul feltarthatok, gy egy maximlis sebessgkorlt lehetsges), vagy eldobdnak a hlzat szln. A 7.30. brn lthat mrsi funkci (metering function) feladata a bejv csomagfolyam s az adott forgalmi osztly sszehasonltsa, s annak megllaptsa, hogy a csomag a megfelel forgalmi osztlyon bell van-e. A tnyleges dnts, hogy a csomagot jra megjelljk, tovbbtjuk, ksleltetjk vagy eldobjuk, a hlzati rendszergazda ltal megllaptott hzirend krdse, a Diffserv-archi- tektra ezt nem hatrozza meg.
Jelenleg ktfle PHB ltezik: egy srgs tovbbts PHB [RFC 3246] s egy biztos tovbbts PH B [RFC 2597]. A srgs tovbbts (expedited forwarding, EF) PH B megmondja, hogy egy forgalmi osztly tvozsi sebessge egy tvlaszttl nagyobb vagy egyenl legyen, mint egy elre belltott rtk. Ez azt jelenti, hogy a forgalmi osztly szmra brmely idintervallumban biztostott az elegend svszlessg ahhoz, hogy a forgalom kimen sebessge elrjen vagy akr meghaladjon egy elre belltott rtket. Figyeljk meg, hogy az FF PHB magban foglalja az osztlyok kztti elklnts nhny formjt, mivel a garancia biztostsa az tvlaszthoz rkez tbbi osztlytl fggetlenl trtnik, gy mg ha a tbbi osztly forgalma tltelti is az tvlasztt s az adatkapcsolat er forrsait, ezeknek az erforrsoknak bizonyos rszt akkor is elrhetv kell tenni az osztly szmra, hogy az megkapja a minimlis sebessgre vonatkoz garancit. Az EF teht egy minimlis svszlessg-garancival rendelkez adatkapcsolat egy egyszer absztrakcival rendelkz osztlyt biztostja. A biztos tovbbts (assured forwarding, AF) PHB ennl sszetettebb. Az AF ngy osztlyba sorolja a forgalmat, amelyek kzl mindegyik garantltan valamekkora minimlis svszlessgben s pufer kapacitsban rszesl. Minden osztlyon bell a csomagokat tovbb soroljk az eldobsi sorrend szerinti hrom kategria kzl valamelyikbe. Abban az esetben, ha egy AF osztlyon bell torlds lp fel, az tvlaszt a csomagokat a hozzjuk tartoz eldobsi sorrend rtkk alapjn dobja el. Tovbbi rszletek [RFC 2597]-ben tallhatk. Az osztlyokhoz rendelt erforrsok vltozta tsval, az ISP klnbz AF forgalmi osztlyok szmra eltr teljestmnyszintet tud biztostani.
Diffserv-visszatekintcs
Az elmlt 20 vben szmos prblkozs trtnt (ltalban sikertelenl) a csomagkapcsolt hlzatokon belli QoS bevezetsre. A sikertelensgek tbbnyire inkbb gazdasgi s jogi okokra vezethetk vissza, mintsem mszaki okokra. E prblkozsok kztt voltak a vgpontok kztti ATM-hlzatok s a TCP/IPhlzatok. Nzznk meg pr krdst, amely a Diffserv kapcsn felmerl (s amelyeket rviden a kvetkez fejezetben tanulmnyozunk majd). Eddig rtelemszeren azt tteleztk fel, hogy a Diffserv csupn egy adminisztratv krzeten bell kerlt teleptsre. A sokkal tipikusabb eset azonban az, hogy a vgpontok kztti szolgltatsokat tbb internetszolgltat befolysolja, amelyek a kommunikl vgrendszerek kztt helyezkednek el. Annak rdekben, hogy biztostani tudjuk a vg pontok kztti DifFservszolgltatsokat, a vgrendszerek kztti internetszolgltatknak nemcsak a szolgltatst kell biztostaniuk, hanem egytt is kell mkdnik, valamint meg kell llapodniuk annak rdekben, hogy az gyfeleknek igazi vgpontok kztti szolgltatsokat ajnlhassanak. Ilyen egyttmkds nlkl azok az internetszolgltatk, amelyek az gyfeleknek kzvetlenl ruljk a Diffservszolgltatst, gyakran mondogatjk majd, hogy Igen, tudjuk, hogy n tbb pnzt fizetett, de az egyik magasabb szint ISP-nkkel nincs szolgltatsi szerzdsnk.
Sajnljuk, hogy sok rs volt a VolP-hvsban! A Diffserv nmagban mg egy azonos adminisztratv krzetben sem elegend egy adott szolgltatsi osztlyhoz tartoz szolgltats minsgi garancijhoz. A Diffserv csupn lehetv teszi a klnbz szolgltatsi osztlyok szmra, hogy eltr szint teljestmnyt kapjanak. Abban az esetben, ha a hlzat jelentsen alultervezett, meg a nagy priorits forgalmi osztly sem kap elfogadhat teljestmnyt. Ezrt ahhoz, hogy sikeres legyen, a Diffserv mellett szksges mg a hlzat megfelel tervezse is (lsd 7.3.5. al- lejezet). A Diffserv-szolgltatssal azonban az internetszolgltat nagyobb hangslyt helyezhet a hlzat kapacitsnak nvelsre. Azltal, hogy az erforrsok a nagy priorits forgalmi osztlyok szmra brmikor elrhetek (a kis priorits osztlyok rovsra), az internetszolgltat ezen osztlyok szmra nagyobb teljestmnyt tud szolgltatni. Abban az esetben, amikor ezeket az erforrsokat a nagy priorits forgalmi osztlyok nem hasznljk, elrhetv vlik a kis prioritssal rendelkez osztlyok szmra is (amelyek felteheten ezrt az alacsonyabb szint szolgltatsrt kevesebbet is fizettek). A msik problma ezekkel a fejlett szolgltatsokkal az, hogy szksg lehet a forgalom ellenrzsre s esetleges mdostsra, amely viszont bonyolult s kltsges mvelet. A szolgltats elszmolst szksges lenne ms mdon elvgezni, inkbb a forgalom alapjn, mintsem lland havidjjal, amely a jelenlegi gyakorlat - ez az internetszolgltatk szmra egy msik kltsges kvetelmny. Vgl akkor, ha a Diffserv-szolgltats bevezetse utn, a hlzatban csupn mrskelt mrtk forgalom van, az id nagy rszben nem lenne rzkelhet klnbsg a legjobbra trekv szolgltats s a Diffserv-szol gltats kztt. Manapsg a vgpontok kztti ksleltets valban inkbb a hozzfrsi sebessgektl s az tvlasztk kztti ugrsok szmtl fgg, mintsem az tvlasztknl elszenvedett sorbanllsi ksleltetsektl. Kpzeljk csak el azt az elgedetlen gyfelet, aki fizetett a prmium szolgltatsrt, m azt tapasztalja, hogy a msok szmra nyjtott legjobbra trekv szolgltats majdnem mindig ugyanazt a teljestmnyt nyjtja!
7.5. TBBFLE
87
Egyszeren nincs elegend svszlessg, hogy mindkt alkalmazst egyszerre szolgljuk ki. Abban az esetben, ha mindkt alkalmazs egyenl svszlessget kapna, csupn 0,75 Mb/s jutna mindkettjknek. Ms oldalrl kzeltve a dolgot, mindkt alkalmazs elveszten az tvitt csomagjainak 25 szzalkt. Ez annyira alacsony QoS, hogy egyik alkalmazs sem lenne hasznlhat. Ebben az esetben jobb, ha egyltaln nem kldenek csomagokat. Abban a 7.31. brn is lthat esetben, amikor is a kt alkalmazst nem lehet egy idben kiszolglni, mit csinljon a hlzat? Azzal, hogy rossz QoS mellett engedjk mindkettt tovbb mkdni, olyan hlzati erforrsokat pocskolunk el az alkalmazsok ltal kldtt adatfolyamokra, amelyek a vgfelhasznlk szmra hasznlhatatlanok. A vlasz szerencsre vilgos - az egyik alkalmazsfolyamot blokkolni kell (pldul megtagadjuk a hozzfrst a hlzathoz), amg a msikat tovbb engedjk mkdni az alkalmazs ltal ignyelt teljes 1,0 Mb/s-os svszlessg felhasznlsa mellett. A telefonhlzat megfelel plda egy ilyen hlzatra, amely hvsblokkolst vgez. Abban az esetben, ha a szksges erforrst (a telefonhlzatoknl pldul egy vgpontok kztti ramkrt) nem lehet lefoglalni, a hvst blokkoljk (megakadlyozzk a belpst a hlzatba), s a felhasznlhoz foglalt jelzst kldenek vissza. A pldnkban abbl, hogy a hlzatba olyan adatfolyamot engednk, amely nem kap elegend QoS-t, nem szrmazik semmilyen nyeresg. ppen ellenkezleg, az elgtelen QoS-sel rendelkez adatfolyamoka hlzatban kltsggel jrnak, mivel a hlzati erforrsokat olyan adatfolyam emszti fel, amely a vgfelhasznl szmra hasznavehetetlen. Abban az esetben, ha az adatfolyamokat a sajt erforrs-kvetelmnyk, valamint a mr engedlyezett adatfolyamok erforrs-szksgletei alapjn klsleg blokkoljuk vagy engedlyezzk, a hlzat garantlni tudja, hogy az engedlyezett adatfolyamok megkapjk a krt erforrsokat. A QoS garantlsnak szksgessge magban foglalja azt is, hogy az adat folyam meghatrozza a szmra szksges QoS-kvetelmnyekel. Azt a folyamatot, amelynek sorn az adatfolyam meghatrozza a sajt maga szmra szksges QoS kvetelmnyeit, majd rbzza a hlzatra, hogy t elfogadja-e (a krt QoS mellett) vagy blokkolja, hvsengedlyezsnek (call admission) nevezzk. A QoS-t biztost eljrsokkal kapcsolatban ez lesz a 4. kvetkeztetsnk (a 7.5.1. a 1 fejezetben lert tbbi kvetkeztetsnk mellett). 4. kvetkeztets: Abban az esetben, ha a mkdshez szksges erforrsok nem mindig elrhetk, m a QoS-t mindenkppen garantlni kell, hvsengedlyezs szksges, amelynek sorn az adatfolyamok meghatrozzk a sajt kvnt QoS-kvetelm- nyeiket, majd ezutn a hlzat annak fggvnyben vagy engedlyezi vagy blokkolja ket, hogy a krt QoSkvetelmnyeket tudja-e biztostani vagy sem.
88
7. MUI.TIMDIA-HLZATOK
89
vl
n Mb/S sebessg
adatkapcsolat
T "
audiofolyam
H2
H4
7.31. bra. Kt verseng audiocilkalmazs tlterheli az R1-R2 adatkapcsolatot mikor hozzfrhet ezekhez, a tbbi hvs erforrskrstl fggetlenl. Abban az esetben, ha egy hvs garancit kr s kap x Mb/s adatkapcsolati svszlessgre, s soha nem vgez 1 -nl nagyobb sebessg tvitelt, akkor csomagvesztstl s ksleltetstl mentes tviteli teljestmnyt tapasztal. Hvs engedlyezse. Az erforrsok lefoglalsa rdekben a hlzatnak rendelkeznie kell olyan mechanizmussal, amellyel a hvsok erforrsokat tudnak krni, s azokat le tudjk foglalni: ez a folyamat a hvsengedlyezs (call admission). Mivel az erforrsok nem vgtelen kapacitsak, azt a hvsengedlyezsi krst, amelyre nincs elegend erforrs, nem engedlyezzk (azaz blokkoljuk). Ilyen a telefonhlzat hvs engedlyezsi 1 Az egyetlen mdja annak, hogy egy hvs szmra garantljuk a kvnt QoS elrshez szksges erforrsokat (adatkapcsolati svszlessget, puffereket), hogy elre lefoglaljuk azokat a hvs szmra. Ezt a folyamatot a hlzatok nyelvn erforrs lefoglalsnak (resource reservation) neveznk. Miutn az erforrsokat lefoglaltuk a hvs szmra, a hvs idtartama alatt a hvs krsre - br-
Erforrs
lefoglalsa.
90
7. MUI.TIMDIA-HLZATOK
mechanizmusa is - az erforrsokat a trcszskor krjk. Abban az esetben, ha a hvs teljestshez szksges ramkrk rendelkezsre llnak, lefogla lsra kerlnek, s a hvs teljesl. Ha az ramkr nem ll rendelkezsre, a hvs blokkoldig s foglalt jelzs hallhat a kzibeszcln. Egy blokkolt hvs jra prblkozhat az engedly megszerzsrt, m mindaddig, amg a hvsengedlyezsi folyamatot nem teljestette, nem kldhet forgalmat a hlzatba. Termszetesen,ahogyan mra 1.3.1. fejezetben ltott tterem menedzseresem fogadott cl az tterem asztalszmnl tbb foglalst, egy tvlaszt sem foglalhat le nagyobb svszlessget, mint amennyi az adatkapcsolaton elrhet. Egy hvs tipikusan a sv- szlessgnek csupn tredkt foglalja le, ezltal az tvlaszt egynl tbb hvs szmra is kioszthat svszlessget. Az sszes lefoglalt svszlessgnek azonban kevesebbnek kell lennie, mint az adatkapcsolat teljes kapacitsa. Hvskezdemnyez jelzs. A fent lert hvsengedlyezsi folyamat esetn egy hvsnak kpesnek kell lennie lefoglalnia a forrs-cl t mentn tallhat minden egyes hlzati tvlasztnl a szmra elegend erforrst annak rdekben, hogy a vgpontok kztti QoS-kvetelmnyek teljesljenek. Minden tvlasztnak meg kell hatroznia a hvs helyi erforrsignyeit a tbbi folyamatban lv viszony erforrs foglalsnak fggvnyben, s el kell dntenie, hogy egy msik folyamatban lv viszony lefoglalsnak megsrtse nlkl ki tudja-e elgteni az engedlyezsre vr viszony QoS-kvetelmnyeit. Ahhoz, hogy ezeket a klnfle tevkenysgeket megfelelen vezrelhessk, jelzsi protokollra (signaling protocol) van szksgnk - ilyen tevkenysg az erforrsok csompontrl csompontra halad lefoglalsa,
valamint az a teljes, vgpontok kztti tvonalra vonatkoz elnts, hogy a hvs a vgpontok kztti ton elhelyezked tvlasztknl le tudta-e foglalni a megfelel erforrsokat. Ez a hvsfelptsi protokoll (call setup protocol) feladata. A 7.32. bra felvzolja a hvs felptsnek folyamatt. Vizsgljuk meg ezeket a lpseket kzelebbrl: 1.
egy tvlaszt el tudja dnteni, hogy elegend erforrssal rendelkezik-e a hvs QoS-ig- nynek teljestshez, a hvsnak elszr kzlnie kell a QoSkvetelmnyeit, valamint jellemeznie kell a hlzatba kldeni kvnt forgalmat, amelyre a krt QoS vonatkozik. Az internet I ntserv-architektrja esetn az gynevezett Rspec (Ra lefoglalst [reservation],spec a meghatrozst [specification] jelenti) [RFC 2215] hatrozza meg a hvs ltal krt QoS-jellemzket; az gynevezett Tspec (T a forgalmat [trafic] jelenti) [RFC 2210] pedig azt a forgalmat jellemzi, amelyet a kld a hlzatba fog juttatni, vagy a vev fog fogadni a hlzatbl. Az Rspec s a Tspec alakja vltoz, a krt szolgltatstl fgg, a kvetkezkben bemutatott mdon. Az ATM hlzatokban felhasznli forgalom lert s a QoS-paramtert hordoz informcis elemek hordozzk a Tspec s Rspec jellemzkhz hasonl informcit. A rszletekrt lsd [Black 1997]. 2. Jelzsek hvsfelpts esetn. A hvsnak a forgalom jellemzst s QoSkrst el kell juttatni az tvlasztkhoz, ahol az erforrsok lefoglalsa trtnik. Az Intserv esetn erre a clra az RSVP protokoll [RFC 2210] hasznlhat az interneten. Az ATM- hlzatokban a Q2931b [Black 19971 protokoll hordozza ezt az informcit az ATM-kapcsolk s vgpontok kztt. 3. Elemenknti hvsengedlyezs. Miutn az tvlaszt megkapja a forgalom lerst s a QoS-t, cl kell dntenie, hogy engedlyezi-e a hvst. Az engedlyezs fgg a forgalom tulajdonsgaitl, a krt szolgltats tpustl s a jelenlegi erforrs-lefoglal-
7.33. bra. Viselkeds elemenknti hvs esetn soktl, amelyeket az tvlaszt a folyamatban lv hvsoknak mr kiosztott. Emlkezznk arra, hogy a 7.5.3. alfejczetbcn pldul a lyukas vdr ltal vezrelt forrs s a WFQ egyttes hasznlata hogyan kpes meghatrozni a forrs legnagyobb sorban llsi ksleltetst. Az elemenknti hvsfelpts a 7.33. brn lthat. A hvsfelptsrl s engedlyezsrl tovbbi informcikat a [Breslau 2000; Roberts 2004] munkkbl szerezhetnk.
hogyha egy lyukas vdr eljrst hasznl forrs kldi a csomagokat a vrakozsi sorba - amely garantlja, hogy a sorban ll csomagok tviteli sebessge msodpercenknt R bit lesz -, a csomag ltal tapasztalt legnagyobb sorbanllsi ksleltets b/R rtk lesz mindaddig, amg R nagyobb mint r. Egy msodik lntserv szolgltatsi garancit is definiltak, vezrelt
puha
llapot (soft state) protokollknt ismert. A puha llapot fogalma nagyjbl a jelzsekhez
hasonlthat, amelyek sorn a ltrehozott llapot ideje lejr (s trldik), hacsak periodikusan meg nem jtjk egy olyan jelzsi zenet vtelvel (ltalban olyan entitstl, amely az lla pot
ltrehozsrt felels), amely azt jelzi, hogy az llapotnak mg fenn kell maradnia. Mivel a nem frisstett llapot ideje elbb-utbb lejr, a puha llapot jelzs nem ignyel sem kifeje zett llapoteltvoltst, sem olyan eljrst, amely az llapot ltrehozsakor bekvetkez hiba miatt keletkez
rva llapotot tvoltja el. Ehhez hasonlan, mivel az llapotok ltrehozsa s a puha llapot fogalma Clark nevhez fzdik [Clark 1988], aki lerta a
frisstsi zenetek utn tovbbi periodikus frisstsi zenetek kvetkeznek, nincs szksg megbzhat jelzsre. A vgrendszerek ltal kldtt periodikus llapotfrisstsi zenetek gondolatt, s hangslyozta, hogy az ilyen frisstsi zenetekkel rendszerlells esetn az llapot automatikusan visszal lthat - mindez a vgrendszer szmra tltsz mdon s minden kls rendszerlells utni visszalltsi eljrs nlkl: . ..az llapotinformci nem kritikus az adatfolyamhoz rendelt szolgltatstpus karbantar tshoz. Ezzel ellenttben a szolgltats tpusa a vgpontokon mlik, amelyek idszakonknt ismtelt zeneteket kldenek annak rdekben, hogy a megfelel szolgltatstpus legyen az adatfolyamhoz rendelve. gy az adatfolyamhoz rendelt llapotinformci egy rendszerlells sorn elveszhet anlkl, hogy tarts fennakadst okozna a hasznlt szolgltatsokban. Ezt az elkpzelst puha llapotnak hvom, s taln igen nagy mrtkben hozzjrul az elsdleges cljainkhoz, amely a tlls s a rugalmassg..." Rviden, a puhallapot-megolds lnyege az, hogy az llapot megvalstja hasznlja a leg jobbra trekv periodikus llapotmegvalsitst s -frisstst, az llapot fenntartja pedig az idztsre trtn llapottrlst. A puhallapot-megolds szmos protokollban megtallhat, pldul az RSVP, PIM (4.7. alfejezet), SP (7.4.3. alfejezet), IGMP (4.7. alfejezet) protokollban s a transzparens hidak tovbbttbliban (5.6. alfejezet). A
ltrehozott llapotok mindaddig megmaradnak, amg azokat kifejezetten el nem tvoltja az llapot ltrehozja ltal kldtt llapotlebonts zenet. Mivel az llapot egszen addig megmarad, amg kifejezetten el nem tvoltjk, a kemny llapot jelzsnek szksge van egy eljrsra az olyan hasznlatlan llapotok lebontshoz, amelyek az llapot ltrehozjnak sszeomlsa vagy vratlan tvozsa esetn keletkeztek. Ehhez hasonlan, mivel az llapotok ltrehozsa s eltvoltsa csupn egyszer trtnik meg (s nem hasznl llapotfrisstst s idtllpst sem), fontos, hogy az llapot ltrehozja tudja, mikor keletkezett vagy trldtt az llapot. A megbzhat (s nem a legjobbra trekv) jelzsi protokollok gy ltalban a kemny llapot protokollok alapjn mkdnek. Rviden, a kemny llapot megkzelts lnyege teht az llapotot trol informci megbzhat kifejezett ltrehozsa s eltvoltsa. A kemny llapot megoldst tbbek kztt az ST-II [Partridge 1992, RFC 1190] s a Q.2931 [ITU-T Q.2931 1994] protokollok tartalmazzk. Az RSVP a koncepcijbl kvetkezen (habr nem ktelez jelleggel) kifejezetten gondos kodik a lefoglalsok eltvoltsrl. A nyugtaalap megbzhat jelzst az lRl-'C 29611-ben kiegsztsknt vezettk be a RSVPbc, s a [Pan 1997]-ben is javaslatot tettek r. Az RSVP gy opciknt tvette a kemny llapot jelzsnek nhny elemt. A puha s a kemny llapot sszehasonltst lsd [Ji 2003].
7.7. sszefoglals
A multimdis hlzatpts manapsg az internet egyik legizgalmasabb (s mg a teljes megvalstsra vr) fejlesztse. Az emberek vilgszerte mindenhol egyre kevesebb idt tltenek a rdijuk s a televzijuk eltt, sokkal inkbb az internet fel fordulnak hang- s kpanyagok letltse cljbl, amelyek lehetnek akr l, akr elre felvett anya
gok. Ahogy a nagysebessg hozzfrs egyre tbb laksba behatol, ez az irnyvonal folytatdik - a pamlagon heversz szemly a vilg brmely pontjn, az interneten fog hozzfrni a kedvenc msorhoz, nem pedig a hagyomnyos msorszrs csatornkon. A hang- s videosztoszts mellett az internet a telefonhvsok tovbbtsra is felhasznlhat. 10 ven bell az internet a hagyomnyos vonalkapcsolt telefonos rendszert sok orszgban gyakorlatilag teljesen eltnteti majd. Az internet nemcsak kevesebb pnzrt nyjtja a telefon szolgltatst, hanem szmos rtknvel szolgltatst is biztost, pldul a videokonferencit, online katalgusszolgltatst, hangalap zenetkldsi szolgltatsokat s webintegrcit. A 7.1. alfejezetben hrom osztlyba soroltuk a multimdis alkalmazsokat: trolt hang s kp folyamszer letltse, vals idej hang s kp egy-tbb tpus letltse, valamint vals idej hang s kp interaktv tvitele. Kiemeltk, hogy a multimdis alkalmazsok ksleltetsrzkenyek s vesztesgtrek - ezek olyan jellemzk, amelyek nagyon klnbznek a ksleltetstr s vesztesgrzkeny statikus tartalmakat megvalst alkalmazsoktl. Szmos akadlyoz tnyezt is megbeszltnk, amelyeket a mai internet helyez a multimdis alkalmazsok el. Megvizsgltunk szmos lehetsges megoldst az akadlyok elhrtsra, pldul a jelenlegi hlzati struktra egyszer javtst (tbb svszles sg kiptse, tbb hlzati gyorsttr, tbb CDN-csompont s tbbesklds kiptse), tbb funkci hozzadst az internethez, amellyel az alkalmazsok vgpontok kztti erforrsokat foglalhatnak le (s a hlzat tiszteletben tarthatja ezeket a lefoglalsokat), s vgl szolgltatsi osztlyok bevezetst a megklnbztetett szolgltatsok nyjtsra. A 1.2-1 A. alfejezetekben multimdia-hlzatokra vonatkoz architektrkat s mechanizmusokat vizsgltunk meg egy legjobbra trekv hlzatban. A 7.2. alfejezetben tnztnk szmos architektrt trolt hang s kp folyamszer letltsre. Megbeszltk a felhasznli interakcit pldul szneteltets/folytats, jrapozcionls s vetts kzbeni gyorstekers -, s bevezettk az RTSP-t, egy protokollt, amely kliens-szerver kommunik cit biztost a folyamszer letltst megvalst alkalmazsok szmra. A 7.3. alfejezetben lttuk, hogy az interaktv vals idej alkalmazsok megtervezhetk legjobbra trekv hlzatok feletti hasznlatra is. Lttuk, hogy klienspufferek, csomagsorszmok s idblyegek kombincija nagymrtkben cskkentheti a hlzat ltal keltett ksietetsi ingadozst. Azt is megbeszltk, hogy a CDN hogyan segti el a trolt multimdia folyamszer letltst azltal, hogy a trolt multimdit elretekinten a vgfelhasznlkhoz kzeli CDN-szerverekhez helyezi. A 7.5. alfejezet bemutatta, hogy nhny hlzati mechanizmus (adatkapcsolatiszint temezs s ellenrzs) hogyan hasznlhat megklnbztetett szolgltatsok nyjtsra klnfle forgalmi osztlyok szmra. Vgezetl, a 7.6. alfejezetben kidertettk, hogy a hlzat hogyan kpes szolgltatsminsgi garancikat biztostani az engedlyezett hvsok szmra. Ebben a rszben tovbbi j hlzati mechanizmusokra s protokollokra volt szksgnk, pldul az erforrs-lefoglalsra, hvsok engedlyezsre s a hvsjelzsek re. Ezek az j hlzati elemek egytt a jvben olyan garantlt QoS-alap hlzatot fog nak ltrehozni, amely a mai legjobbra trekv internettl meglehetsen eltr (s sokkal bonyolultabb) hlzat lesz.
Krdsek
7.1-7.2. alfejezetek KI. Mit rtnk a trolt audio/vide folyamszer letltsnek interaktivitsn? Mit rtnk a vals idej interaktv audio/vide interaktivitsn? K2. Hrom tbort trgyaltunk, amelyek segtsgvel az internet nagyobb hatkonysggal tmogatja a multimdis alkalmazsokat. Rviden foglalja ssze mindhrom tbor nzpontjt. n melyik tborba tartozik? K3. Mik a tipikus tmrtsi arnyok (a tmrtetlen objektum bitszmnak arnya az objektum tmrtett vltozatnak bitszmhoz kpest) kp- s hangalap alkalmazsok esetn, s melyek a 7.1. a 1 fejezetben trgyalt tmrtsi eljrsok? K4. A 7.1. s 7.2. brn kt sma lthat a trolt mdia folyamszer letltsre. Mik az egyes smk elnyei s htrnyai? 7.3-7.4. alfejezetek K5. Mi a klnbsg vgpontok kztti ksleltets s a csomagksleltets ingadozsa kztt? Mik a ksleltets ingadozsnak okai? K6. Az temezsi id utn rkezett csomag mirt szmt elveszettnek? K7. A 7.3. alfejezel bemutat kt FEC-smt. Rviden foglalja ssze ket. Mindkt sma tbbletbitekkel nveli az adatfolyam tviteli sebessgt. Nveli-e az sszefsls is az tviteli sebessget? K8. Mi a DNS szerepe a CDN-hlzatokban? Kell-e mdostani a DNS-t, hogy tmogassa a CDN-t? Milyen informcit kell (ha kell egyltaln) a DNS szmra szolgltatni a CDN-hlzatnak? K9. Milyen informci szksges egy hlzat tervezse esetn egy adott szolgltatsminsg (QoS) elrshez? K10. Hogyan kpes a vev azonostani a klnbz RTP-adatfolyamokat klnbz munkamenetekben? Hogyan lehet egy munkameneten bell a klnbz adatfolyamokat azonostani? Hogyan klnbztetjk meg az (egy munkamenethez tartoz) RTP- s az RTCP-csomagokat? KI 1. A 7.4. alfejezetben hrom RTCP-csomagtpust mutattunk be. Rviden foglalja ssze a hrom csomagtpus ltal hordozott informcit. KI2. Mi a szerepe a SIP-nyilvntartnak? Mennyire tr el a SIP-nyilvntart szerepe a mobil-IP hazai gynknek szereptl? 7.5-7.6. alfejezetek KI3. A 7.5. fejezetben kifejtettk a nem megszaktsos prioritsos sorballtst. Mi lenne a megszaktsos prioritsos sorba llts? Van-e rtelme a megszaktsos prioritsos sorba lltsnak a szmtgp hlzatokban? KI4. Adjon pldt olyan temezsre, amely nem munkatakarkos. K15. Mondjon a mindennapi letben tapasztalt sorba lltsi pldt a FIFO, prioritsos, krbejrsos s WFQ tpus sorba lltsra. Kl. Soroljon fel nhny nehzsget, amely az Intserv-modell s az adatfolyamonknt erforrs-lefoglals kapcsn felmerl.
Feladatok
FI. Bngsszen a weben, s keressen kt honlapot, amelyrl trolt hang s/vagy vide tlthet le folyamszeren! A kvetkez krdsek eldntsre hasznlja a Wireshark protokollanaliztor programot (szabadon letlthet a www.wireshark.org honlaprl): (a) Hasznlnak-e metafjlokat? (b) Az audio/video UDP-n vagy TCP-n kerl tvitelre? (c) Hasznlnak-e RTP-t? (d) Hasznlnak-e RTSP-t? F2. Kpzeljk el a 7.3. brn lthat klienspuffert! legyk fel, hogy a letltrendszer a harmadik megoldst hasznlja, vagyis ahol a szerver a lehet leggyorsabban kldi a mdit a szoketbe. Felttelezzk, hogy a rendelkezsre ll svszlessg az id legnagyobb rszben d. Tegyk fel azt is, hogy a klienspuffer a mdia egyharmadt kpes trolni. Mutassa be, hogy az x(t) s a klienspuffer hogyan alakul az id folyamn. F3. A TCP vev oldali puffere s a mdialejtsz klienspufere ugyanazt a fogalmat jelli? Ha nem, hogyan viszonyulnak egymshoz? F4. A 7.3. alfejezet internetes telefon alkalmazsa esetn legyen h a tredkekhez adott fejrszbjtok sszessge, belertve az UDP- s IPfejrszt is. (a) felttelezve, hogy 20 ms-onknt bocstunk ki IP-adatcsomagot, szmtsa ki az tviteli sebessget bit/s-ban az alkalmazs egyik oldala ltal ellltott csomagokra. (b) Mi a h tipikus rtke RTP hasznlata eseten? F5. Tekintsk a 7.3. al fejezetben lert folyamatot a / i tlagos ksleltets becslsre. Tegyk fel, hogy u = 0,1. Legyen r, - t] a legutbbi minta ksleltetse, az r, - pedig az az eltti minta ksleltetse, s gy tovbb. (a) Tegyk fel, hogy egy adott hangalap alkalmazs esetn ngy csomag rkezett a vevhz r, - f 4 , r 3 - / 3 , r, - / 2 s rt mintaksleltetssel. Fejezze ki a d ksleltetst a ngy minta alapjn. (b) ltalnostsa a kapott kpletet n minta ksleltetsre. (c) A (b) esetben kapott kplet esetn ti tartson vgtelenhez, adja meg ebben az esetben a kpletet! Magyarzza el, hogy ez az tlagolsi eljrst mirt nevezik exponencilis mozgtlagnak. F6. Ismtelje meg a 6. krds (a) s (b) rszt az tlagos ksleltets szrsra. F7. A 7.3. alfejezetben tallhat internetes telefon esetn bemutattunk egy online eljrst (exponencilis mozgtlag) a ksleltets kiszmtsra. Ebben a feladatban egy alternatv eljrst vizsglunk. Legyen t. az /'. vett csomag idblyege; r pedig legyen az id, amikor az /. csomag rkezett. Jelljk d-vei a az n. csomag megrkezse utni becslt ksleltetst. Az els csomag rkezsekor a becslt ksleltetst d, = r - rtkre lltjuk. (a) Tegyk fel, hogy tudni szerelnnk dn = (r, - /, + r 2 - t2 + ... + r - tj/n minden n esetn. Adjon egy rekurzv formult dr rtkre dn ,, rn s t fggvnyben. (b) Magyarzzad, hogy a 7.3. alfejezetben bemutatott ksleltetsbecsls mirt alkalmasabb az internetes telefnihoz, mint az (a) rszben ltott ksleltetsbecsls.
(
F8. Hasonltsa ssze a 7.5. alfejezetben ltott ltagos ksleltets becslsre vonatkoz eljrst s a 3.5. alfejezetben tallhat krljrsi id becslsre vonatkoz mdszert! Milyen kzs tulajdonsggal rendelkeznek? Miben klnbznek?
F9. Tekintsk a 7.3. alfejezetben lv alkalmazkod (adaptv) lejtszsi stratgit. (a) Hogyan lehetsges, hogy a kt sikeresen clba rkezett csomag idblyegrtke tbb mint 20 ms-mal eltr egymstl, mikzben ugyanahhoz a beszdlkethez tartoznak? (b) Hogyan hasznlhatja fel a vev a sorszmokat annak eldntsre, hogy egy csomag vajon a beszd lket els csomagja-e? Vlaszoljon minl tbb konkrtummal. F10. Nzzk a kvetkez brt (ami hasonl a 7.5. brhoz)! Az ad t = 1 idpillanatban periodikusan kezdi el adni a csomagokba gyazott hangot. Az els csomag t = 8 idpillanatban rkezik meg a vevhz. (a) Milyen ksleltetsei (az adtl a vevig, a lejtszsi ksleltetst figyelmen kvl hagyva) vannak a 2-8. csomagoknak? Fontos megjegyeznnk, hogy az brn a fggleges s vzszintes vonalszegmensek 1, 2 vagy 3 idegysg hosszak. (b) Abban az esetben, ha a hang lejtszsa az els csomag berkezse utn a t = 8 idpillanatban azonnal elkezddik, az els nyolc elkldtt csomag kzl melyik nem fog megrkezni idben a lejtszshoz? (c) Abban az esetben, ha a hang lejtszsa t = 9-kor kezddik el, az els nyolc elkldtt csomag kzl melyik nem fog megrkezni idben a lejtszshoz? (d) Mi az a legkisebb lejtszsi ksleltets a vevnl, aminl mind az els nyolc csomag idben rkezik meg?
FII. Tekintsk jra az F10. feladatban lthat hangcsomagok tvitelt s a vteli idket mutat brt. (a) Szmtsa ki a 2-8. csomagok becslt ksleltetst, a 7.3.2. alfejezetben lv d-re vonatkoz kpletet felhasznlva. (b) Szmolja ki a 2-8. csomagok becslt ksleltetsbl ered szrs becslst, a 7.3.2. alfejezetben lv v -re vonatkoz kplet segtsgvel. Legyen u =
0,1. FI2. Eleventsk fel a 7.3. alfejezetben az internetes telefonra vonatkoz kt FECsmt! Tegyk fel, hogy az els sma minden ngy eredeti tredkhez kszt egy redundns tredket. Ttelezzk fel, hogy a msodik sma esetn pedig kis bitszm kdols tviteli sebessge az eredeti adatfolyam tviteli sebessgnek 25 szzalka. (a) Mennyi tbbletsvszlessget ignyel a kt sma? Mennyi a kt sma lejtszsi ksleltetse? (b) Hogyan teljestenek a smk, ha minden t csomagbl az els elveszik? Melyik sma esetn lesz jobb hangminsg? (c) Hogyan teljestenek a smk, ha minden msodik csomag elveszik? Melyik sma eseten lesz jobb hangminsg? F13. 'legyk fel, hogy a CDN nem nveli a hlzatban tallhat adatkapcsolatok kapacitst (felttelezve, hogy a CDN mr ltez adatkapcsolatokat hasznl a tartalom sztosztsra a CDN-csompontok kztt), hogyan nveli ekkor a CDN a hosztok ltal tapasztalt teljestmnyt? Adjon egy pldt is. F14. Lehetsges, hogy a CDN rosszabb teljestmnyt nyjt annak a multimdiaobjektumot kr hosztnak, mint annak, amelyik tvoli forrsszervertl kr objektumot? Fejtse ki! F15. Hogyan szmoljk az rkezsek kztti idbeli ingadozst az RTCPjelentsekben? (Tipp: Olvassa el az RTP RFC-t.) F16. (a) legyk fel, hogy kt IP-adatcsomagot kldnk az interneten, klnbz UDP-szegmenst hordozva. Az els adatcsomag forrs-IP-cme Al, cl-IPcme B, forrs-portszma Pl s clportszma P2. A msodik adatcsomag for- rs-IP-cme A2, cl-IP-cme B, forrsportszma P2 s clportszma T. Tegyk fel, hogy az Al klnbzik A2-tl s Pl is klnbzik P2-tl. Felttelezve, hogy mindkt adatcsomag clba r, ugyanaz a szkt fogadja-e ket? Ha igen, mirt, ha nem, mirt nem? (b) Tegyk fel, hogy Alice, Bob s Claire szeretne audiokonferencia-hvst lebonyoltani SP s RTP hasznlatval. Elg-e Alice szmra, Bobnak s Claire-nek zenetklds s fogads cljbl egy UDP-szoket (a SP ltal ignyelt szoketen kvl)? Ha igen, akkor hogyan klnbzteti meg Alice SIP-kliense a Bobtl s Claire-tl rkezett RTP-csomagokat? F17. Tekintsnk egy RTP-munkamenetet ngy felhasznlval, amelyek ugyanarra a tbbesklds cmre kldenek s onnan fogadnak RTP-csomagokat. Mindegyik felhasznl 100 kb/s sebessggel kld videoadatot. (a) Milyen sebessgre korltozza a forgalmat az RTCP? (b) Mennyi svszlessget kap egy vev? (c) Mennyi svszlessget kap egy ad? F18. (a) Mennyiben hasonlt az RSTP a HTTP-hez? Vannak-e az RSTP-nek eljrsai? Felhasznlhat-e a HTTP-adatfolyam krsre? (b) Mennyiben klnbzik az RSTP a IITTP-tl? Pldul a HTTP svon belli vagy svon kvli? Fenntart-e az RSTP llapot informcikat a kliensrl (tekintse a sznteteltets/folytats funkcit)? F19. Igaz vagy hamis: (a) Abban az esetben, ha a vide kzvetlenl egy webszerverrl tltdik le a mcdia- lejtszra, az alkalmazs TCP-t hasznl, mint alapul szolgl szlltsi protokollt.
(b) RTP hasznlatakor az ad megvltoztathatja a kdolst a viszony kzben. (c) Az RTP-t hasznl sszes alkalmazs a 87-es portot kell hasznlja. (d) Abban az esetben, ha egy RTP-munkamenct kln hang- s kln videofolyam- mal rendelkezik minden ad szmra, a hang- s videofolyamok ugyanazt az SSRC-rtket hasznljk. (e) A megklnbztetett szolgltatsoknl, mivel a csompontok csomagtovbbtskor kvlrl megfigyelhet viselkedse az osztlyok kztt klnbz teljestmnyeket hatroz meg, nem jell ki semmilyen konkrt eljrst ezeknek a teljestmnyeknek az elrsre. (f) 'legyk fel, hogy Alice SIP-viszonyt szeretne felpteni Bobbal. Az INVITE zenetben szerepel a kvetkez sor: m=audio 48753 RTP/AVP 3 (az AVP 3 a GSM- hangot jelenti). Alice ezzel az zenettel jelezte, hogy GSMhangot szeretne kldeni. (g) Az elz lltsban Alice az INVITE zenetben azt jelezte, hogy a hangot a 48753-as portra kldi. (h) A SP egyedek kztt kldtt SIP-zeneteket ltalban egy alapvet SlPport- szmra kldik. (i) A bejegyzs fenntartsa miatt a SIP-kliensek periodikusan REGISTER zeneteket kldenek. (j) A SP megkveteli, hogy minden SIP-kliens tmogassa a G.711 hangkdolst. F20. Tegyk fel, hogy WFQ temezsi szablyt alkalmazunk egy pufferre, amely hrom osztlyt tmogat, s a hrom osztlyra vonatkoz slyok 0,5, 0,25 s 0,25. (a) Tegyk fel, hogy minden osztlynak nagyszm csomagja van a pufferben. Milyen sorrendben lesz a hrom osztly kiszolglva, hogy a VVFQ-slyok teljesljenek? (Krbejrsos temezs esetn az alapvet sorrend az 123123123...). (b) Kpzeljk el, hogy az 1. s a 2. osztly nagyszm csomaggal rendelkezik a pufferben, s nincs 3. osztlybeli csomag. Milyen sorrendben lesz a hrom osztly kiszolglva, hogy a WFQ-slyok teljesljenek? F21. Tekintsk meg a 620. oldalon lv brt, amely hasonlt a 7.22-7.25. brkhoz. Vlaszolja meg a kvetkez krseket: (a) Felttelezve a FIFO-kiszolglst, jellje be azt az idt, amikor a 2-12. csomagok elhagyjk a vrakozsi sort! Mennyi az a ksleltets, amg a csomagok a megrkezstl a sor elejre jutnak, ahol tvitelre kerlnek? Mennyi ennek a ksleltetsnek az tlaga a 12 csomagra? (b) Ttelezznk fel egy prioritsos kiszolglst, s tegyk fel, hogy a pratlan szm csomagok nagy prioritssal, a prosszmakpedigkisprioritssal rendelkeznek. Jellje be azt az idt, amikor a 2-12. csomagok elhagyjk a vrakozsi sort! Mennyi az a ksleltets, amg a csomagok a megrkezstl a sor elejre jutnak, ahol tvitelre kerlnek? Mennyi ennek a ksleltetsnek az tlaga a 12 csomagra? (c) Most legyen a kiszolgls krbejr. Tegyk fel, hogy az 1., 2., 3., 6., 11. s 12. csomagok az 1. osztlyba, a 4., 5., 7., 8., 9. s 10. csomagok pedig
a 2. osztlyba tartoznak. Jellje be azt az idt, amikor a 2-12. csomagok elhagyjk a vrakozsi sort! Mennyi a ksleltets a csomagok a megrkezstl a tvozsukig? Mennyi ennek a ksleltetsnek az tlaga a 12 csomagra? (d) Ttelezznk fel most slyozott egyenl esly sorban llsi (WFQ) kiszolglst. Tegyk fel, hogy a pratlan szm csomagok az 1. osztlyba, a pros szmak a 2. osztlyba tartoznak. Az 1. osztly WFQ-slya 2, a 2. osztly 1. Vegyk szre, hogy nem lehetsges a szveg szerinti idelis WFQ-temezst elrni, ezrt indokolja, hogy mirt azt a csomagot vlasztotta ki kiszolglsra! Mennyi a ksleltets a csomagok megrkezstl a tvozsukig? Mennyi ennek a ksleltetsnek az tlaga a 12 csomagra? (e) Mit vesz szre az tlagos ksleltetsnl mind a ngy esetben (FCFS, RR, prioritsos s WFQ)?
rkezsek
m
16 8 10
Id
IIli
Kiszolgls alatt lv : i csomag f = 0
I 1--------1-----1----1- - - -1----1-----1-----h
Id
i1--------------1-------------1-------1-------1-------1-------1-------1------1-------1-------1------1-------1------1-------h>
Tvozsok
f = 2
f = 4
f = 6
f = 8
f = 10 f= 12 f = 14
F22. Tekintsk jra az F21. feladathoz tartoz brt. (a) Prioritsos kiszolglst felttelezve, legyenek az 1., 4., 5., 6. s 11. csomagok nagy priorits csomagok. A fennmarad csomagok legyenek kis prioritsak. jellje be az idrseket, amikor a 2-12. csomagok elhagyjk a vrakozsi sort. (b) Legyen most a kiszolgls krbejrsos, tartozzanak az 1., 4., 5., 6. s 11. csomagok az 1. forgalmi osztlyba, a fennmarad csomagok pedig a 2. forgalmi osztlyba. Jellje a rseket, amikor a 2-12. csomagok elhagyjk a vrakozsi sort! (c) Ttelezznk fel WFQ-kiszolglst, tartozzanak az l.,4., 5., 6. s 11. csomagok az 1. forgalmi osztlyba, a fennmarad csomagok pedig a 2. forgalmi osztlyba. Az 1. osztly WFQ-slya 1, a msik pedig 2 (lthatjuk, hogy ezek a slyok eltrnek az elz krdsben szerepl slyoktl). Jellje a rseket, amikor a 2-12. csomagok elhagyjk a vrakozsi sort. Nzzk meg a kiktst az elz WFQ- kiszolglsra vonatkoz krdsben is! F23. Nzzk meg az albbi brt, amely egy lyukasvdr-ellenrzt mutat, amelyet egy csomagfolyam tpll. A zsetonpufl'er legfeljebb kt zsetont tud trolni, s t = 0 idpillanatban kezdetben tele van. j zsetonok rkeznek l zseton/idrs sebessggel. A kimen adatkapcsolat sebessge akkora, hogyha kt csomag ignyel zsetont az idrs kezdetekor, akkor mind a kett egyszerre lphet be az idrsbe. A rendszer idztsi rszletei az albbiak: 1. A csomagok (ha van egyltaln) az idrs kezdetekor rkeznek. gy az brn az 1., 2. s 3. csomagok az 0. rsben rkeznek. Abban az esetben, ha a vrakozsi sorban mr vancsomag,azrkezkbellnaka sorok vgre. A csomagoka sorban FIFO-elv szerint haladnak elre. 2. Miutn az rkezk hozzaddtak a sorhoz, ha van sorban ll csomag, egy vagy kt csomag (az elrhet zsetonok szmtl fggen) eltvolt egy-egy zsetont a trolpufferbl, s az idrs alatt tovbbhalad a kimen adatkapcsolat fel. gy mind az 1., mind a 2. csomag eltvolt egy-egy zsetont a pulTerbl (mivel ott kezdetben kt zseton van), s tovbbhalad a kimen adatkapcsolat fel a 0. idrsben. 3. Mivel a zsetongenerlsi sebessg r = 1, egy j zseton addik a trol
pufferhez, ha az nincs tele. 4. Ezutn a kvetkez idrsbe lpnk, s a lpsek megismtldnek. Vlaszolja meg a kvetkez krdseket: (a) Azonostsa minden idrsben a sorban ll csomagokat s zsetonok szmt a vdrben a berkezsek feldolgozsa utn kzvetlenl (az 1. lps), de mieltt
10
8
/
rke- . zsek | i
rr rr
f=4
tii
i
------1-----1---1----1 i
f=4
t=
8
f=6
f= 2
t=2
F27.
F28.
brmely csomag tjutott a vrakozsi soron, s eltvoltott egy zsetont. Ebben az esetben a / = 0 idrsben a fenti plda szerint az l, 2. s 3. csomagok llnak a sorban s kt zseton van a puTerben. (b) Minden idrs esetn jelezze, hogy mely csomagok jelennek meg a kimeneten a zseton(ok) eltvoltsa utn! Ebben az esetben a = 0 idrsben a fenti plda esetn az 1. s 2. csomag jelenik meg a lyukas vdr puffernek kimenetn. Ismteljk meg az F23. feladatot r= 2-t felttelezve. Ttelezze fel megint, hogy a vdr kezdetben tele van. Tekintsk az F24. feladatot, s tegyk fel, hogy r = 3 sb = 2, mint korbban. Vltozni fog-e a fenti krsre adott vlasz? Tekintsk a (a 7.5. alfejezetben trgyalt) lyukasvdr-ellenrzst, amely az adatcsomag tlagos tviteli sebessgt s lketmrett szablyozza. Szeretnnk a p cscssebessget is szablyozni. Mulassa meg, hogy ezzel a lyukasvdr-ellenrz- vel hogyan lehet egy msodik lyukasvdr-ellenrzt tpllni gy, hogy a kt sorba kapcsolt ellenrz ellenrizze az tlagos tviteli sebessget, a cscssebessget s a lketmretet! Adja meg a msodik ellenrz vdrmrett s zsetonellltsi sebessgt! Feleljen meg egy adott csomagfolyam az (r, b) paramter lyukas vdr mechanizmusnak b lketmrettel s r tlagos tviteli sebessggel abban az esetben, ha minden t idintervallumra a t id alatt a lyukas vdrhz rkez csomagok szma kevesebb, mint rt + b. Kell-c valaha egy ( r,b) paramter lyukas vdrnek megfelel csomagfolyamnak vrnia az r, b paramter lyukas vdr ellenrznl? Igazolja a vlaszt! Mutassa meg, hogy rj < IR x /(]hj) esetn d i valban a legnagyobb ksleltets, amelyet egy csomag tapasztalhat az 1. adatfolyamban YVFQ tpus sorban lls esetn.
Gondolkodtat krdsek
Gl. Keressen egy cget, amely l vide folyamszer sztosztst teszi lehetv P2P hasznlatval. rjon egy beszmolt az alapul szolgl technikrl. G2. n szerint TCP vagy UDP felett jobb a trolt audio/vide folyamszer letltse? G3. rjon egy beszmolt a Cisco SP-termkeirl.
8. FEJEZET
Szmtgp-hlzatok biztonsga
Hadd mutassunk be kt embert, Alice-t s Bobot, akik egymssal szeretnnek kommuniklni, mghozz biztonsgosan. Mivel hlzatokrl beszlnk, meg kell jegyeznnk, hogy Alice s Bob lehet akr kt tvlaszt is, amelyek a forgalomirnyt tblikat akarjk egymsnak biztonsgosan tkldeni, vagy lehet egy kliens s egy szerver, amelyek biztonsgos kapcsolatot szeretnnek felpteni, esetleg ppen kt e-mail alkalmazs, amelyek biztonsgosan akarnak e-mailt vltani - mindezen pldkkal tallkozunk mg ebben a fejezetben. Alice s Bob jl ismert figurk a biztonsggal foglalkoz szakemberek kr ben, vlhetleg azrt, mert a nevk jobban hangzik, mint egy ltalnos A-nak nevezett entits, amely biztonsgosan szeretne kommuniklni a B nev ltalnos entitssal. Til tott szerelmi kapcsolatokat, a hbors kommunikcit vagy zleti tranzakcikat szoks emlegetni mint olyan helyzeteket, amikor az embernek biztonsgos kommunikcira van szksge. Az elbbire szvesebben gondolunk, mint az utbbi kettre, ezrt szves rmest kpzeljk Alice-t s Bobot - mint kldt s vevt - az els szituciba. Az imnt azt mondtuk, hogy Alice s Bob kommuniklni szeretnnek, mgpedig biztonsgosan. De mit is jelent ez pontosan? Ahogy ltni fogjuk, a biztonsg (akrcsak a szerelem) csodlatos dolog; azaz nagyon sok szempontbl tekinthet. Alice s Bob bizonyra szeretnk, ha az zeneteik tartalma titokban maradna egy ket lehallgat harmadik fl (mondjuk egy fltkeny hzastrs) eltt. Valsznleg arrl is szeretnnek meggyzdni, hogy amikor kommuniklnak, valban egymssal kommuniklnak, ha pedig az zeneteiket valaki meghamistan, akkor azt bizonyra szrevennk. A fejezel els rszben azo kat az alapvet kriptogrfiai mdszereket vesszk t, amelyek lehetv teszik az zenetek titkositst, a kommunikl felek hitelestst, s az zenetek integritsnak biztostst. A fejezet msodik rszben azt vizsgljuk, hogyan lehet az alapvet kriptogrfiai ptkvekbl biztonsgos hlzati protokollokat pteni. Ismt fentrl lefel kzeltve, az alkalmazsi rteggel kezdve sorra vesszk a fels ngy hlzati rtegben mkd biztonsgi protokollokat. Megnzzk, hogyan lehet biztonsgoss tenni a levelezst, hogyan lehet egy TCP-sszekttetst megvdeni, miknt lehet a hlzati rtegben ltalnos biztonsgot nyjtani, valamint hogyan lehetnek a vezetk nlkli hlzatok biztonsgosak. Emlkezhet az Olvas, hogy az 1.6. alfcjezetben ttekintettnk nhny tmadst, kztk tbb DoS tpus tmadst is, amelyekkel a rossz fik zavart okozhatnak egy szervezet hlzatban (mint amilyen egy egyetemi vagy cges hlzat). Fejezetnk harmadik rszben a mkdsi biztonsggal foglalkozunk, amely szervezetek hlzatainak vdelmrl szl. Konkrtan azt vizsgljuk majd meg alaposan, hogy a tfalak s a behatolsjelz rend szerek miknt nvelhetik egy szervezet hlzatnak biztonsgt. G4. Megoldhat-e a QoS-garancik problmja csupn a svszlessg nvelsvel, azaz ha addig nveljk az adatkapcsolatok kapacitsl, amikor a svszlessg-koril mr nem fog szmtani? G5. Kgy rdekes feltrekv piac az internetes telefoni s a cgek nagysebesg LAN- hlzatt hasznlja a PBX-ek (magncl helyi telefon alkzpontok) lecserlsre, rjon egyoldalas beszmolt errl a tmrl. A dolgozat a kvetkez krdsekre adjon vlaszt: (a) Mi a hagyomnyos PBX? Kik hasznljk? (b) Kpzeljnk el egy hagyomnyos telefonhlzaton lebonyoltott hvst egy cgen belli felhasznl s egy cgen kvli felhasznl kztt. Milyen tpus technika kell a LAN s a hagyomnyos telefonhlzat kztti interfszi? (c) Az internetes telefon alkalmazson s a (b) rszben ltott interfszen kvl milyen egyb dolgok szksgesek a PBX lecserlshez?
G6. Gondolkodjon cl azon, hogy milyen mdon tervezik az autplya-hlzatokat (pldul egy nagyvrosba vezet autplya svjainak szmt). Soroljon fel ngy lpst, amelyrl gy gondolja, hogy egy kzlekedsi mrnknek meg kell tennie ilyen autplyk tervezsekor. Mely lpsek feleltethetk meg ezeknek a szmtgpes hlzatok tervezsekor?
Vlaszol
Henning Schulzrinne
Henning Schulzrinne egyetemi tanr, a Columbia University Department of Computer Science tanszkvezetje s az Internet Real-l ime Laboratory vezetje. Trsszerzje az RTP-nek, az RSTP-nek, a SIP-nek s a GIST-nek, ame lyek az interneten keresztli audio- s videokommunik- ci szmra kulcsfontossg protokollok. Villamosmrnki BS fokozatot szerzett a nmetorszgi TU Darmstadt egyetemen, villamosmrnki s szmtstudomnyi MS fokozatot a University of Cincinnatin, villamosmrnki PhD fokozatot a University of Massachusettsen. Mi ksztette arra, hogy a multimdia-hlzatokra szakosodjon? Ez majdnem vletlenl trtnt. PhD-halIgatknt kapcsolatba kerltem a DARTnettel, az egsz Egyeslt llamokon thidal Ti vonalakkal rendelkez ksrleti hlzattal. A DARTnet a tbbesklds s a vals idej internetes protokollok tesztkrnyezetl szolglt. Ez vezetett az els hangeszkz megrshoz, a NVoThoz. Nhny DARTnet-rsztvevn keresztl belekeveredtem az IETF-be is, az ppen kezdd Audio Vide Transport munkacsoportba. Ez a csoport volt az, amely ksbb befejezte az RTF szabvnyostst. Mi volt az els munkja a szmitgpes iparban? Mit eredmnyezett? Az els munkm egy Altair szmtgpes kszlet sszeforrasztsa volt, amikor mg fiskolai hallgat voltam Livermore-ban, Kaliforniban. Odahaza Nmetorszgban gy kezdtem, hogy ltrehoztam egy kis tancsadi irodt, amellyel cmkezelsi programot ksztettnk utazsi irodknak - az adatokat szalagos kazettn troltuk a TRS-80-unk szmra s egy IBM Selectric rgpet hasznltunk nyomtatknt egy hzilag barkcsolt hardverinterfsszel kiegsztve. Az els igazi llsomat az AT@T Bell Laboratorynl kaptam, hlzati emultort fejlesztettem hlzati ksrletek lebonyoltsra laboratriumi krlmnyek kztt.
%
Clunk elemek s ptblokkok ellltsa az internet mint az egyedli jvbeli kommunikcis infrastruktra szmra. Ebben benne van olyan j protokollok fejlesztse, mint pldul a GIST (hlzati szint jelzs) s a LOST (erforrsok hely alapjn trtn meghatrozsa), valamint a korbban ksztett protokollok, mint pldul a SP kibvtse, valamint olyan munkk, mint a gazdag jelenlt, a P2Prendszerek, az jgenercis vszhvs s a szolgltatsltrehoz. Mostanban intenzven vizsgltuk a VoIP kapcsn felmerl vezetk nlkli rendszereket, a 802.11b s a 802.lln hlzatokat, s taln a WiMax-hl- zatok lesznek majd a jv hozzfrsi hlzatai. Megprblunk a gyakorlatban is hasznos munkt vgezni azltal, hogy prototpusokat s nylt forrs rendszereket ksztnk, vals rendszerek teljestmnyt mrjk, illetve azzal, hogy rszt vesznk az IETF szabvnyok elksztsben.
n milyen jvkpet lt a multimdis hlzatok tern? Jelenleg tmeneti szakaszban vagyunk; mr csak pr v, s az IP lesz az univerzlis platform a multimdis szolgltatsok szmra, az IPTV-tl a VoIP-ig. Szerintnk a rdi, a telefon s a televzizs hviharok s fldrengsek kzben is elrhet lesz majd, teht amikor az internet tveszi ezeknek a dediklt hlzatoknak a szerept, a felhasznlk ugyanazt a megbzhatsgot vrhatjk majd el. Meg kell tanulnunk olyan koszisztmra tervezni a hlzati technikkat, amelyben verseng szolgltatk, szolgltats- s tartalomszolgltatk szolglnak ki mszakilag kpzetlen felhasznlkat, vdik meg ket a kis szm, de rosszindulat s bnz felhasznlktl. A protokollok megvltoztatsa egyre nehezebb. Egyre bonyolultabbak, mivel a verseng zleti rdekeket, biztonsgot, szemlyisgjogi vdelmet s a tzfalak s hlzati cmfordtk ltal okozott hlzatok tltszsgnak hinyt is szem eltt kell tartaniuk. Mivel a multimdia-hlzat ptse majdnem az egsz fogyaszti szrakoztat ipar alapjv vlik, hangslyt kell majd helyezni a hatalmas hlzatok kis kltsg kezelsre. A felhasznlk elvrjk majd, hogy ugyanazt a tartalmat minden eszkzkn megtallhassk. Mi az oka a SP gretes jvjnek? Ahogyan a jelenlegi vezetk nlkli hlzat 3G-hlzatt fejldik, van arra remny, hogy egyetlen multimdis jelzsi mechanizmus terjedjen el az sszes hlzattpuson, a kbelmodemektl a vllalati telefonos hlzatokon keresztl egszen a nyilvnos vezetk nlkli hlzatokig. A rdis szoftverekkel egytt ez lehetv teszi a jvben, hogy egyetlen eszkzt hasznlhassunk majd az otthoni hlzatban vezetk nlkli Bluetooth telefonknt, vllalati hlzatban 802.11 kapcsolaton keresztl s nagy kiterjeds 3G-hlzatokban. Mg mieltt egy ilyen egyetlen univerzlis vezetk nlkli eszkznk lenne, a szemlyi mobilitsi mechanizmusok lehetv teszik, hogy a hlzatok kztti klnbsgeket elrejt sk. Egyetlen azonost elegend lesz majd egy szemly elrsre, a jelenlegi krlbell fl tucat technikai s helyspecifikus telefonszm megjegyzse s tovbbadsa helyett. A SP elvlasztja a hang- (bit) tvitelt a hangszolgltatstl. Technikailag mr most lehetsg van arra, hogy a helyitelefon-monopliumot levlasszuk, ahol az egyik cg a hagyomnyos bitl vitelt biztostja, mg msok az IP hangtrcszst s a klasszikus telefonszolgltatsokat, mint pldul az tjrkat, hvstovbbtst s a hv fl azonostjt. A multimdis jelzsen tl a SP lehetv tesz egy j szolgltatst, amely az interneten eddig hinyzott: egy esemny jelzst. Ltrehoztunk kzel hasonl szolgltatsokat a HTTP barkcsolsval s az e-mail hasznlatval, m ezek sohasem voltak kielgtek. Mivel az esemnyek az elosztott rendszerek szmra egy kzs absztrakci, ez egyszerstheti az j szolgltatsok ltrehozst. Milyen tancsokat tud adni azoknak az egyetemi hallgatknak, akik most kezdenek cl foglalkozni a hlzatokkal?
A hlzatok mr majdnem klasszikus thidal diszciplna. Mert a villamosmrnki tudomnybl, az informatika minden rszbl, az opercikutatsbl, a statisztikbl, a kzgazdasgtanbl s ms terletekrl. gy a hlzatokkal foglalkoz kutatknak a protokollokon s tvlaszt-algoritmusokon kvl rengeteg mindennel tisztban kell lennik. Mivel a hlzatok a mindennapi let fontos rszeiv vltak, azoknak az egyetemi hallgatknak, akik ezen a terleten ttrst szeretnnek elrni, az j hlzati erforrs-korltokra kell gondolniuk: az emberi idre s energira sokkal inkbb, mint a svszlessgre s trkapacitsra. A hlzati kutatsban val munka mindenkit roppant megelgedssel tlthet el, mivel az emberek kztti kommunikcirl s az elkpzelsek kicserlsrl szl, az emberi lt egyik alapvet tulajdonsgrl. A szllts s az energiaeloszts mellett az internet vlt a vilg harmadik globlis infrastruktrjv. A gazdasg szinte semmilyen rsze nem mkdhet a nagysebessg hlzatok nlkl, gy ezen a terleten rengeteg lehetsg nylik a kzeli jvben.
A hlzati biztonsggal kapcsolatos vizsgldsunk elejn trjnk vissza Alice-hez s Bobhoz, a szerelmesekhez, akik biztonsgosan" szeretnnek kommuniklni. Egsz pontosan mit jelent ez? Az biztos, hogy Alice szeretn, ha kizrlag Bob rten meg a neki kldtt zenetet, akkor is, ha egy olyan nem biztonsgos kzegen keresztl trtnik a kommunikci, ahol egy tmad (Trudy) kpes elfogni minden zenetet, amit Alice Bobnak kld. Bob pedig arrl szeretne meggyzdni, hogy az zenetet, amit Alice-tl kapott, valban Alice kldte, mikzben Alice is biztosan akarja tudni, hogy akivel beszl, az tnyleg Bob. Mindketten biztosak akarnak lenni abban is, hogy az zeneteik tartalmt nem vltoztattk meg tkzben. Mindenekeltt pedig arra szeretnnek garancit, hogy egyltaln kommuniklhatnak, azaz senki nem akadlyozza meg, hogy hozzfrjenek azokhoz az erforrsokhoz, amelyek kommunikcijukhoz szksgesek. Ezen meggondolsok mentn a biztonsgos kommunikci albbi elvrt tulajdonsgait hatrozhatjuk meg: Titkossg. Egy elkldtt zenet tartalmt kizrlag a kldje s a cmzettje legyen kpes rtelmezni. Mivel egy hallgatz fl megszerezheti az zenetet, az zenetet valahogyan titkostani kell (azaz a tartalmt el kell rejteni), hogy az elfogott zenetet ne tudjk illetktelenek dekdolni (a tartalmt megfejteni). Alighanem legtbbszr a titkossgnak ezen rtelmezsre gondolunk a biztonsgos kommunikci kifejezs hallatn. Azonban, nemcsak hogy a biztonsgos kommunikci fogalma nem korltoz dik ennyire (a biztonsgos kommunikci tovbbi szempontjait trgyaljuk albb), de ez a titkossgnak is csak egy szk defincija. Lehetsges pldul, hogy Alice azt is titokban szeretn tartani, hogy egyltaln Bobbal kommunikl (vagy a beszlgetsek idpontjt, s/vagy gyakorisgt is). Az adatok titkostsnak s visszafejtsnek kriptogrfiai mdszereit a 8.2. alfejezetben trgyaljuk. zenetintegrits. Abban az esetben is, ha a kld s a vev hitelesteni tudjk egymst, afell is biztosak szeretnnek lenni, hogy az zeneteik tartalmt az tvitel sorn nem mdostottk sem szndkos rosszindulattal, sem vletlenl. Az ellenrz sszegeken alapul mdszerek, amelyekkel a megbzhat szlltsi s adatkapcsolati protokollok kapcsn tallkoztunk, kiegszthetk
gy, hogy az zenetek ilyen rtelemben vett integritst biztostsk. Errl szl a 8.3. alfejezet. Vgpont-hitelests. Mind a kldnek, mind a vevnek meg kell tudni bizonyosodni a msik fl kiltrl, vagyis arrl, hogy akivel kommunikl, az valban az, akinek (vagy aminek) mondja magt. Ha emberek egymssal szemtl szemben beszlnek, akkor vizulis felismerssel knnyedn megoldjk ezt a problmt. Amikor azonban a kommunikl felek olyan kzegen keresztl vltanak zeneteket, ahol nem lthatjk egymst, a hitelests nem megy ilyen egyszeren vgbe. Mi alapjn kellene elhinnnk pldul, hogy egy e-mail, amiben az ll, hogy egy bartunk kldte, valban tle jtt? Ha valaki felhvna, s azt lltan hogy a bank nevben telefonl, ahol a szmlnkat vezetik, s arra krne, hogy adjuk meg a szmlaszmnkat, a titkos azonost sz munkat (FN-kd) s az egyenlegnket ellenrzs cljbl, vajon elmondannk-e ezeket az adatokat telefonon keresztl? Remlhetleg nem! A vgponthitelests mdszereit a 8.4. alfejezetben vizsgljuk. Mkdsi biztonsg. Mra majdnem minden szervezet (cgek, egyetemek stb.) rendelkezik a nyilvnos hlzatra, az internetre csatlakoz sajt hlzattal. Ezeket veszlyeztethetik azok a tmadk, akik az interneten keresztl hozzfrnek a hlzathoz. A t-
117 Adatok
Biztonsgi uzeneiklds Vezerlo- s adatzenetek Biztonsgi zenetCsatorna rogadas
7. MUI.TIMDIAAdatok -HLZATOK
Alice
Bob
Trudy
8.1.
madk megksrelhetik fregprogramok teleptst a gpekre, vagy megtudhatnak szervezeti titkokat, vagy feltrkpezhetik a bels hlzat felptst, s DoS-tmad- sokat indthatnak ellene. A 8.9. alfejezetben ltni fogjuk, hogy egy szervezet hlzata elleni tmadsok elhrtsra olyan eszkzk szolglnak, mint a tzfalak s a behatolsjelz rendszerek. A tzfal a szervezet hlzata s a nyilvnos hlzat kztt helyez kedik el, s felgyeli a be- s kimen csomagokat. Egy behatolsjelz rendszer a cso magokat mlyrehat vizsglatnak veti al, s rtesti a rendszergazdt a gyans tev kenysgekrl. Miutn tisztztuk, hogy mit rink hlzati biztonsgon, hatrozzuk meg pontosan, hogy egy tmad milyen informcikhoz frhet hozz s milyen mveleteket hajthat vgre. A 8.1. brn lthat a szereplk elhelyezkedse. Alice, a kld szeretne adatot kldeni Bobnak, a vevnek. Annak rdekben, hogy az adatcsere biztonsgos legyen, azaz teljestse a titkossg, vgpont-hitelests s zenet integrits kvetelmnyeit, Alice s Bob vezrl- s adatzenete ket fognak vltani (nagyon hasonlan ahhoz, ahogy egy TCP-sszekttets kldje s vevje is vezrl- s adatszegmenseket kldenek). Jellemzen ezen zenetek egy rszt vagy kzlk mindegyiket titkostjk. Ahogy azt az 1.6. alfejezetben trgyaltuk, egy tmad kpes: hallgatzni - lehallgatni s rgzteni a csatornn kldtt vezrl- s adatzeneteket. mdostani, beszrni vagy trlni zeneteket vagy azok tartalmt.
Ltni fogjuk, hogy amennyiben nem tesznk megfelel ellenintzkedseket, ezen kpessgek sokfle tmads kivitelezsre nyitnak lehetsget egy tmad szmra: lehallgathatja a kommunikcit (ellophat jelszavakat s ms adatokat), megszemlyesthet ms entitst, eltrthet egy mr mkd kapcsolatot, vagy a rendszer erforrsainak tlterhelsvel megakadlyozhatja, hogy a jogszer felhasznlk ignybe vehessenek bizonyos szolglta tsokat stb. Ezekkel s ms biztonsgi fenyegetettsgekkel foglalkozik egy tanulmnyktet [Denning 1997) s Rubin nagyon olvasmnyos knyve is [Rubin 2001). Az ismert tmad sok listjt a CERT Coord inat ion Center [CERT 2007) tartja folyamatosan karban. Ezeken kvl rdekesek mg a [Cisco Security 2007; Voydock 1983; Bhimani 1996) forrsok. Megllaptottuk teht, hogy tnyleges fenyegetettsgeket rejt az internet, de vajon mi lehet a mi biztonsgosan kommunikl bartaink, Alice s Bob internetes megfelelje? Termszetesen Alice s Bob lehetnek valdi emberek, felhasznlk egy rendszer kt vg
7. MUI.TIMDIA-HLZATOK pontjnl, pldul egy igazi Alice s egy igazi Bob, akik valban biztonsgosan szeretnnek e-maileket kldeni egymsnak. Vagy lehetnek egy elektronikus vsrlsi tranzakci rsztvevi is. Pldul lehet, hogy egy igazi Bob a hitelkrtyja szmt szeretn biztonsgosan elkldeni egy webszervernek, hogy megvsroljon egy termket az interneten keresztl. Ehhez hasonlan elkpzelhet, hogy egy valdi Alice online szeretne kapcsolatba lpni a bankjval. Lehetsges azonban, ahogy a [RFC 1636] is rja, hogy a biztonsgos kommunikcit ignyl felek a hlzati infrastruktra rszei. Emlkezznk arra, hogy kt fl kzti biztonsgos kommunikcira van szksg a nvfeloldst vgz rendszer eset ben is (DNS, lsd 2.5. alfejezet), valamint akkor is, amikor az tvonalvlaszt folyamatok routing informcit cserlnek. Ugyancsak gy van a 9. fejezetben trgyaland hlzatfel gyeleti alkalmazsok esetben is. Az interneten valsggal elszabadulna a pokol, ha egy tmad kpes lenne sszezavarni, irnytsa al vonni vagy meghamistani akr a DNS keresseket s frisstseket (ahogy a 2.5. alfejezetben trgyaltuk), akr az tvonalvlasztst [Murphy 2003] vagy ppen a hlzatfel gyeleti feladatokat [RFC 2574]. Ezek utn mr adott egy vzunk, tisztztuk a legfontosabb fogalmakat s belttuk a hlzati biztonsg szksgessgt. A kvetkezkben nzznk a kriptogrfia mlyre. Amikor titkossgra treksznk, magtl rtetd a kriptogrfia alkalmazsa. Hamarosan ltni fogjuk azonban, hogy ez a vgponthitelestsnl s az zenetintegritsnl is kulcsszerepet kap, ezltal a kriptogrfia a hlzatbiztonsg alappillre lesz.
119
formjban (pldul: Szeretlek Bob. Alice) nylt szvegnek (plaintext, cleartext) nevezzk. Alice az zenett egy rejtjelez (kdol) algoritmus (encryption algorithm)
614
Jells:
Nylt szveg
Nylt szveg
Rejtett szveg
Dekdols
\ 4 Csatorna
Trudy
Kulcs
8.2.
segtsgvel titkostja, gy a titkostott zenet - amelyet rejtett szvegnek (ciphertext) neveznk - az illetktelenek szmra rtelmezhetetlenn vlik. rdekes mdon a legtbb modern kriptogrfiai rendszer esetben, gy az interneten hasznlatos megoldsoknl is, maga a rejtjelezs mdja ismert, vagyis publiklt, szabvnyos, brki szmra - mg a lehetsges tmadk szmra is hozzfrhet (pldul [RFC 1321; RFC 2437; RFC 2420; NIST 2001]). Ha mindenki ismerheti az adatok kdolsnak mdjt, nyilvn kell lennie valamilyen titkos informcinak, ami megakadlyozza, hogy illetktelenek is dekdoljk az adatokat. Ennl a pontnl kapnak szerepet a kulcsok (key). A 8.2. brn Alice a rejtjelez algoritmus bemenetn megadja a KA kulcst, amely szmok vagy betk egy sorozata. A rejtjelez algoritmus bemeneteknt az m nylt zenet, valamint a kulcs szolgl, kimenete pedig a rejtett szveg. Egy m nylt szvegnek a KA kulccsal val titkosts eredmnyeknt ltrejv rejtett megfeleljt K{m) jelli. A szvegkrnyezetbl vilgosan kiderl majd, hogy ppen melyik rejtjelez algoritmus bemenetn hasznljuk a K A kulcsot. Bob is hasonlan tesz, megad egy Kf kulcsot a dekdol algoritmusnak (decryption algorithm), amelynek bemenete egyrszt Bob kulcsa, ms rszt a rejtett szveg, kimenete pedig az eredeti nylt szveg. Ms szavakkal. Bob meg kapja a titkostott KA(m) zenetet, s KB(KA{m) -m szmtsval tudja azt dekdolni. Szimmetrikus kulcs rendszerek (symmetric key system) esetn Alice s Bob kulcsa megegyezik, s senki ms nem ismerheti. Nyilvnos kulcs rendszerekben (public key system) kulcsprokat hasznlnak. A egyik kulcsot ismeri Alice s Bob is (st, valjban a vilgon mindenki). A msik kulcsot viszont csak Alice vagy csak Bob tudhatja, mindketten nem. A kvetkez szakaszban rszletesen is megvizsgljuk a szimmetrikus kulcs s a nyilvnos kulcs rendszereket.
Egy kis trtnelem Kdfeltr versenyek A 56 bites DES (Data Encryption Standard) titkositt elsknt az USA kormnyzata alkalmaz ta, de ma is szles krben hasznljk pnzgyi szolgltatk s ms ipargak is rzkeny adataik vdelmre. Az RSA Security nev cg egy teljes DES-tr versenysorozatot szponzorl, hogy
615
8.1. MIT
123
advny egy 56 bites DES-el rejtjelezett zenet megfejtse minl rvidebb idn bell. A kdtrk az sszes lehetsges kulcs vgigprblsval oldjk ezt meg. Az RSA 10 000 dollros djat fizet a gyztesnek. Az els DES-tr versenyt 1997-ben egy coloradi csapat nyerte meg, akik kevesebb mint ngy hnap alatt talltk meg a titkos kulcsot. Azta a technika fejldse rvn sokkal gyor sabban vgrehajthat a kimert keress. 1998. februrjban a Distibuted.Net nyerte az RSA II-l DES-tr versenyt, 41 napos teljestmnnyel, majd jliusban az Electronic Frontier Foundation (EFF) nyert az RSA II-2 DES-tr versenyen, amikor 56 ra alatt fejtett meg egy DES-zenetet. 1999 janurjban a Distributed.Net, amely szmtgp-rajongk egy vilgmret szvets ge, az EFF Deep Crack-kel, egy erre a clra tervezett szuperszmtgppel, valamint vilgszerte kzel 10 000 internetre kttt PC-vel dolgozott, s nyerte meg a III. RSA DES-tr versenyt mindssze 22 ra s 15 perc alatt. Az EFF Deep Crack s a Distibuted.Net gpei egytt msodpercenknt 245 millird kulcsot prbltak ki.
124
8.
SZMTGP-HLZATOK
BIZTONSGA
A szeretlek bob. alicekdolsa ixoxujxh nn. mjdvx. A Caesar-k- dolshoz hasonlan, ezttal is rtelmetlennek ltszik a szveg. A monoalfabetikus kdol annyiban tnik jobbnak a Caesar-kdolsnl, hogy 34 helyett 35! (lO -10 nagysgrend) a lehetsges betprostsok szma. Mind a 10 prosts vgigprblsa tl sok munkval jrna ahhoz, hogy ez a kd feltrsnek, egy zenet megfejtsnek jrhat tja legyen. A nylt szveg nyelvnek statisztikai elemzsvel viszont arnylag knnyen trhet ez a kd is. Angol szveg esetn tudjuk pldul, hogy az e s a t a kt leggyakoribb bet egy szvegben (az sszes bet 13, illetve 9 szzalka), tovbb bizonyos betk sokszor szerepelnek egytt prban vagy bethrmasokban (angolban ilyenek: in, it, the, ion, ing stb.). Mg knnyebben boldogulhat egy tmad a kd trsvel, ha az zenetek lehetsges tartalmrl is van nmi ismerete. Pldul ha Bob felesge, Trudy a kvncsiskod, s gyantja, hogy Bobnak viszonya van Alice-cl, sejtheti, hogy a bob s alice nevek szerepelnek a szvegben. Ma Trudy biztosan tudja, hogy a kt nv szerepel a rejtett szvegben, s birtokba jut az elbbi plda szerinti rejtett szveg, a 35 betprbl azonnal meg tud hatrozni hetet, gy mris a 10-ed rszre cskkent a kimert keresssel vgigprbland prostsok szma. A valsgban ha Trudy tnyleg azzal gyanstja Bobot, hogy viszonya van, joggal szmt hat bizonyos jl megvlasztott szavak elfordulsra az zenetben. Ha azt vizsgljuk, hogy mennyire nehezen tudja Trudy Alice s Bob titkostst megtrni, hrom lehetsget klnbztethetnk meg aszerint, hogy a tmadnak milyen informcik llnak rendelkezsre. Rejtett szveg tmads. Bizonyos esetekben a tmad csak elfogott rejtett szvegekhez fr hozz, semmi biztosat nem tud a nylt zenet tartalmrl. Lthattuk, hogy a statisztikai elemzs miknt segt a rejtett szveg tmads (ciphertext-only attack) vgrehajtsban. 1 Ismert nylt szveg tmads. Az imnt lttuk, hogy ha Trudy biztos benne, hogy a bob s alice szavak szerepelnek a rejtett zenetben, akkor az a, l, i, c, e, b s o betk (nylt, rejtett) betprostst meg tudja hatrozni. Elkpzelhet, hogy Trudy olyan szerencss volt, hogy sikerlt megszereznie minden rejtett zenetet, majd rtallt az egyik zenet dekdolt vltozatra is, amelyet Bob rt fel egy darab paprra. Valamely titkost algoritmus elleni, ismert nylt szveg tmadsnak (knovvn-plaintext attack) nevezzk azt az esetet, amikor a tmad ismer (nylt szveg-rejtett szveg) prokat. Vlasztott nylt szveg tmads. A vlasztott nylt szveg tmadsnl (chosen- plaintext attack) a tmad megvlaszthatja, hogy mely nylt szveg titkostott vltozatt szeretn megtudni. Az eddigiekben bemutatott egyszer titkost algoritmusok esetn pldul Trudy teljes egszben feltrn a titkostt, ha r tudn venni Alice-t, hogy a kvetkez zenetet kldje
1 A fordt vethet be.
8.1. MIT
125
titkostva: Egy htlen vejt fln csp, dhs mexiki r Wesselnyinl mzol Quitban. Ltjuk majd, hogy a kifinomultabb titkostsi mdszerek esetn a vlasztott szveg tmads sem felttlenl eredmnyezi a titkostsi eljrs feltrst. tszz vvel ezeltt talltk fel a monoalfabetikus kdoln alapul tovbbfejlesztett eljrst, a polialfabetikus titkostst (polyalphabetic encryption). A polialfabetikus kdols tlete az, hogy tbb monoalfabetikus kdolt alkalmaznak, a nylt szveg adott poz-
126
8.
SZMTGP-HLZATOK
BIZTONSGA
djban lv beti egy adott monoalfabetikus kdol szerint titkostva. gy a nylt szveg klnbz helyein elfordul azonos betknek tbbfle kdolt megfelelje lehet. A 8.4. brn lthatunk pldaknt egy polialfabetikus kdolt. Ahogy a sorok mutatjk, a kdol kt Caesar-titkostt alkalmaz (k = 5 s k = 19 kulcsokkal). Ezt a kt Caesar-kdolt, C, -t s C 2 -t, hasznlhatjuk a C,,C,,C P C,,C\ minta szerint ismtelve. Azaz, a nylt szveg els betjt C, szerint, a msodikat C2 szerint, a harmadik s negyedik bett C, szerint, mg az tdiket C 2 szerint kdolva. A minta ismtldik, vagyis a hatodik bett ismt C, -el, a hetediket C, -vei titkostjuk s gy tovbb. A szeretlek bob. nylt zenet tit kostva: isvyi fqfVegyk szre, hogy az szveg els e betjt C,, mg a msodik e betjt C2 szerint kdoltuk. Ebben a pldban a kdols s a dekdols kulcsa a kt Caesartitkost kulcsnak (k = 5 s k = 19), valamint a C,, C,, C,, C,,C 2 mintnak az ismerete.
Tartalomjegyzk............................................................................................. 7
A szmtgp-hlzatok s az internet.......................................................26
1.1.Mi az az internet?..................................................................................... 2
1.1.1.Alkotrszek.......................................................................................... 2
1.1.2.Szolgltatsok....................................................................................... 5
8.1. MIT
127
1.2.1.Kliens- s szerverprogramok..............................................................14
1.2.2.Hozzfrsi hlzatok......................................................................... 14
1.3.1.Vonalkapcsols s csomagkapcsols.................................................30
1.3.3.lnternetszolgltatk s internet-gerinchlzatok.............................41
128
8.
SZMTGP-HLZATOK
BIZTONSGA
1.4.1.Ksleltetsek ttekintse...................................................................46
1.4.4.Szmtgp-hlzatok tbocstkpessge.....................................58
1.5.1.Rtegezett architektra...................................................................... 63
8.1. MIT
129
1.7.5.Legutbbi fejlesztsek........................................................................90
1.8.sszefoglals.......................................................................................... 92
Krdsek........................................................................................................ 94
Feladatok....................................................................................................... 96
Gondolkodtat krdsek............................................................................105
130
8.
SZMTGP-HLZATOK
BIZTONSGA
Az alkalmazsi rteg..................................................................................113
2.1.2.Kommunikl folyamatok.................................................................119
2.1.5.Alkalmazsi protokollok....................................................................130
8.1. MIT
131
2.2.3.HTTP-zenetformtumok..................................................................140
2.2.5.Webes gyorsttrazs.....................................................................149
2.3.1.FTP-parancsok s -vlaszok.............................................................129
132
8.
SZMTGP-HLZATOK
BIZTONSGA
2.4.1.SMTP.................................................................................................. 134
2.4.2.sszehasonlts a HTTP-vei..............................................................113
2.4.4.Levl-hozzfcrsi protokollok...........................................................118
2.5.3.DNS-rekordok s -zenetek..............................................................131
2.6.P2P-alkalmazsok................................................................................. 139
8.1. MIT
133
2.6.1.P2P-fj1cserls................................................................................ 140
F \................................................................................................................. 143
2.7.TCP-szoketprogramozs......................................................................166
2.7.1.TCP-szoketprogramozs...................................................................168
l.................................................................................................................... 183
t................................................................................................................... 186
134
8.
SZMTGP-HLZATOK
BIZTONSGA
O.................................................................................................................. 245
O.................................................................................................................. 211
1................................................................................................................... 196
1................................................................................................................... 196
8.1. MIT
135
r,=2X.......................................................................................................... 231
I I l i............................................................................................................. 106
Blokkrcjljclezk
Haladjunk most mr a modern idk fel, s vizsgljuk meg, hogyan is trtnik a szimmetrikus kulcs titkosts manapsg. A szimmetrikus kulcs titkostsi mdszerek kt nagy csoportra oszthatk: kulcsfolyamatos-rejtjelezkre (stream cipher) s blokkrejtjelezkre (block cipher). A kulcsfolyamatos rejtjelezkkel rviden a 8.8. alfejezetben fogunk foglalkozni a vezetk nlkli hlzatok biztonsga kapcsn. Jelen alfejezetben a blokkrejtjelezkre koncentrlunk, amelyeket szmos interneten hasznlt biztonsgi protokoll, belertve a PGP (biztonsgos levelezs), SSL (biztonsgos TCP-sszekttets), valamint az IPsec (biztonsgos hlzati rteg), is alkalmaz. A blokk rejtjelezk a titkostand zenetet k bitbl ll blokkokban dolgozzk fel. Ha pldul k = 64, akkor az zenetet 64 bites blokkokra bontjk, s minden blokkot kln-kln titkostanak. A kdol egy blokk titkostshoz egy klcsnsen egyrtelm lekpezst hasznl, ezzel a k bites nylt szveget tartalmaz blokknak egy k bites titkostott szveget tartalmaz blokkot feleltet meg. Hogy kzelebbrl megvizsglhassuk a blokk rejtjelezket, vegynk egy egyszer pldt. Tegyk fel, hogy k = 3, azaz a blokk rejtjeleznk 3 bites bemenetet (nylt szveg) 3 bites kimenetre (rejtett szveg) kpez le. Egy lehetsges lekpezs lthat az albbi tblzatban: kerneiie t 000 001 010 011
kimenet
136
8.
SZMTGP-HLZATOK
BIZTONSGA
8.2. A
137
Figyeljk meg, hogy a lekpezs klcsnsen egyrtelm, vagyis minden lehetsges bemenethez ms-ms kimenet tartozik. Ez a blokkrejtjelez 3 bites blokkokra osztja az zenetet, s a fenti lekpezs szerint titkostja azokat. Ellenrizheti az olvas, hogy a 010110001111 zenet titkostott megfelelje az 101000111001 zenet lesz. Maradva ennl a 3 bites pldnl, rdemes megjegyezni, hogy a fent ltott csupn egy az sszes lehetsges lekpezs kzl. Hnyfle lekpezs lehetsges? Hogy ezt a krdst megvlaszolhassuk, vegyk szre, hogy a lekpezs nem ms, mint az sszes lehetsges bemenet egy permutcija. sszesen 2 3 (=8) lehetsges bemenet ltezik (a bemenet oszlop elemei). Ez a 8-fle bemenet 8! = 40 320 klnbz mdon permutlhat. Mivel minden permutci meghatroz egy lekpezst, sszesen 40 320-fle lekpezs lehetsges. Ezen lekpezsek kulcsnak is tekinthetk - ha Alice s Bob is ismerik a megfeleltetst (vagyis a kulcsot), az egymsnak kldtt zeneteiket kpesek kdolni s dekdolni. A kimert keresses tmads ez ellen a kdol ellen a rejtett szvegnek az sszes lehetsges lekpezssel val dekdolsa. Ha 40320-fle lekpezs lehet csupn (k = 3), ez gyorsan kivitelezhet akr egy asztali PC-vel is. A kimert keresses tmadsokat elkerlend, a blokkrejtjelezk ltalban sokkal hosszabb, 64 bites, vagy annl is nagyobb mret blokkokkal dolgoznak. rdemes megjegyezni, hogy a lehetsges lekpezsek szma 2 1 !, amely k viszonylag kis rtkei (mint pldul k = 64) mellett is csillagszati rtk. A bemutatott formjukban a teljes-tbls blokkrejtjelezk kis k rtkek mellett is ers szimmetrikus kulcs titkostk lehetnek, de sajnos nehezen megvalsthatk, k = 64 esetn egy adott lekpezs hasznlatakor Alice-nek s Bobnak egy 2 61 -fle bemenetet tartalmaz tblzattal kellene dolgoznia, amely kivitelezhetetlen feladat. St, ha Alice s Bob szeretn lecserlni a kulcsot, mindkettejknek jra el kellene lltani a tblzatot. A teljes-tbls blokkrejtjelezk, amelyek egy elre meghatrozott lekpezst valstanak meg a lehetsges bemenetek s kimenetek kztt (mint a fenti pldban), gy szba sem jhetnek. ltalban a blokkrejtjelezk ehelyett olyan fggvnyeket hasznlnak, amelyek gy viselkednek, mint a vletlenl permutlt tblzatok. Pldaknt lthat egy ilyen fggvny k = 64 bitre a 8.5. brn (a pldt a [Kaufmann 1995|-bl vettk t). A fggvny elszr 8, egyenknt 8 bitbl ll darabra bontja a 64 bites blokkot. Minden 8 bites darabot egy 8 bitbl 8 bitbe lekpez, mg kezelhet mret tblzat segtsgvel dolgoz fel. Az els 8 bites darabot pldul a -gyei jellt tblzattal. Ezutn, a kimenet 8 bites darabjait jra egy 64 bites blokk rakja ssze. A blokkon bell ezutn a 64 bitet sszekeveri (permutl ja), gy szletik egy 64 bites kimenet. Ezt a kimenetet visszacsatolja a 64 bites bemenetre, s egy j ciklus kezddik. A fggvny kimeneteknt n ciklus utn ll el vgl a 64 bites rejtett szveg. Az ismtlsek azt a clt szolgljk, hogy a bemenet egyetlen bitje a kimenet legtbb (vagy minden) bitjnek kialakulsban szerepet jtsszon. (Ha csak egyszer futtatnnk, egy adott bemeneti bit csupn 8 kimeneti bitre lenne hatssal.) Ennek a blokkrejtjeleznek a 8 permutcis tblzat lenne a kulcsa (feltve, hogy a kevers mindig ugyanaz). Manapsg szmos npszer blokkrejtjelez ltezik, tbbek kztt a DES (Data Encryp- tion Standard), a 3DES s az AES (Advanced F.ncryption Standard). Ezen szabvnyok kzl mindegyik fggvnyeket hasznl elre definilt tblzatok
138
8.
SZMTGP-HLZATOK
BIZTONSGA
helyett a 8.5. brnak megfelelen (jllehet, azok sokkal bonyolultabbak, s jellemzek az adott titkostra). Az algoritmusok kivtel nlkl felhasznlnak kulcsknt egy bitsorozatot. A DES pldul 64 bites blokkokhoz 56 bites kulcsokat hasznl. Az AES 128 bites blokkokkal dolgozik, a kulcs hossza pedig vlaszthat: 128, 192 vagy 256 bites lehet. Egy algoritmusnak a kul csa hatrozza meg a kis tblzatok lekpezseit s azokat a permutcikat, amelyeket az algoritmus futsa sorn felhasznl. Minden ilyen titkost ellen a kimert keresses
8.2. A
139
64 bites bemenet
8 bit
/ 7 IZ
8 bit
/ \
8 bit
T
Ismtls n-szer 8 bit 8 bit
8 bit
i
v
8 bit i.
Y
8 bit
4 /\
8 bit
8 bit
Y V
8 bit
8 bit
\
8 bit
/
8 bit
/
8 bit
8 bit
\\\
/7
64 bites kevers
140
8.
SZMTGP-HLZATOK
BIZTONSGA
blokkban is lehet HTTP/l.i. Az egyforma nylt sz veg blokkokbl termszetesen a blokkrejtjelez is egyforma rejtett blokkokat llt el. Egy tmad, ha ismeri a hlzati protokollt, amelyet Alice s Bob hasznl, kitallhatja a nylt szveg blokkokat, ha megfigyeli az egyforma rejtett blokkokat. F.gy tmad akr egsz rejtett zeneteket is kpes lehet megfejteni az alkalmazott protokoll ismeretben az egyforma rejtett blokkok beazonostsval [Kaufmann 1995]. A problma megoldsra a blokkrejtjelezk egy titkostott blokkok lncolsnak (Cipher Block Chaining, CBC) nevezett technikt hasznlnak. Hogy megrtsk a CBC-t, jellje m(i) a nylt szveg i-edik blokkjt, c{i)a rejtett szveg /-cdik blokkjt, a b pedig az a s b bitsorozat kizr vagy (XOR) kapcsolatt. Ezen kvl tegyk fel, hogy a blokkmret 64 bit. Jellje a titkost algoritmus S kulccsal val vgrehajtst Ks. A CBC mkdse a kvetkez:
1.
Az zenet (vagy adatsor) titkostsa eltt, a kld egy 64 bites vletlen bitsorozatot generl, amelyet inicializl vektornak (Initialization Vector, IV) neveznk. Jellje ezt az inicializl vektort c(0). A kld nylt szvegknt tkldi az lV-t a vevnek. 2. Az els blokk esetn a kld kiszmtja m(i) c(0) rtket, azaz a nylt szveg els blokkjnak s az inicializl vektornak XOR kapcsolatt. A megfelel rejtett blokkot ezutn gy kapjuk, hogy a mvelet eredmnyn vgrehajtjuk a blokkrejt- jelezs algoritmust, azaz c(l) = Ks{m{[) c(0)). A kld a titkostott c(l) blokkot kldi t a vevnek. 3. Az /-edik blokk esetn, a kld a c{i) = Ks(nt(i) c(i -1)) formulval kapja meg az /-edik rejtett blokkot. Vizsgljuk most meg ezen megkzelts kvetkezmnyeit. Elszr is, a vev gy is kpes visszalltani az eredeti zenetet. Mgpedig gy, hogy ha a vev megkapja c(0-t, dekdolja azt K$-sel, gy a kvetkezt kapja: s(i) = (m(i) c(i -1)). Mivel a vev ismeri c(i -l)-et is, a nylt szveg megfelel blokkjt megkaphatja m(i) = (s(i) c(i -1)) kiszmtsval. Msodszor pedig, meg akkor is, ha a nylt szveg kt blokkja megegyezik, a megfelel rejtett blokkok (majdnem mindig) klnbzek. Vgl pedig, annak ellenre, hogy az IV-t a kld nyltan tovbbtja, a tmad nem kpes dekdolni a rejtett blokkokat, mivel nem ismeri az S titkos kulcsot. A CBC-nek fontos kvetkezmnyei vannak, amikor biztonsgos hlzati protokollokat szeretnnk tervezni: szksg van a protokollban egy olyan mechanizmusra, amely eljuttatja az IV-t a kldtl a fogadhoz. A fejezet htra lv rszeiben tbb protokoll kapcsn is ltni fogjuk, hogy ez hogyan trtnik.
hitelestsre s digitlis alrs ksztsre is hasznlhatk. rdekes mdon nemrg derlt ki, hogy nagyon hasonl elveket, mint amelyeket a (DilTie 1976] s az [RSA 1978] bemutat, mr az 1970-es vek elejn tlk fggetlenl is kidolgoztak az Egyeslt Kirlysgban, a Communications-Electronics Security Group kutatinak titkos beszmoliban. Ahogy az sokszor elfordul, a nagyszer
tletek sok helyen felmerlhetnek egymstl fggetlenl; szerencsre a nyilvnos kulcs eljrsok fejldse nemcsak egy bizalmas krben zajlott, hanem a nyilvnossg eltt is. Maga a nyilvnos kulcs kriptogrfia tlete meglehetsen egyszer. Tegyk fel, hogy Alice Bobbal szeretne kommuniklni. Ahogy a 8.6. bra mutatja, ahelyett hogy Alice-nek s Bobnak lenne egy kzs titkos kulcsa (mint a szimmetrikus kulcs rendszerek esetben), Bobnak (vagyis az zenet vevjnek) kt kulcsa is van - egy nyilvnos (publi- kus) kulcs, amelyet a vilgon mindenki ismer (mg Trudy, a tmad is), s egy titkos (privt) kulcs, amelyet kizrlag Bob ismerhet. K'fcs K{i fogja jellni Bob nyilvnos s titkos kulcst. Ahhoz, hogy Alice Bobbal kommunikljon, elszr megszerzi Bob nyilvnos kulcst. Ezutn Alice az (m) zenett valamilyen ismert (pldul egy szabvnyos) kdol algoritmus segtsgvel, Bob nyilvnos kulcsval rejtjelezi, vagyis Alice kiszmtja 1. Bob, amikor megkapja Alice titkostott zenett, a sajt titkos kulcsval s az ismert (pldul egy szabvnyos) dekdol algoritmus segtsgvel visszafejti azt. Azaz, Bob Klt(Kg{m)) kiszmtst vgzi el. Az albbiakban ltni fogjuk, hogy lteznek olyan megfelel rejtjelez/dekdol algoritmusok, valamint eljrsok a nyilvnos s a titkos kulcspr megvlasztsra, hogy K'8(K*B(m)) = m teljesl. A nyilvnos kulcs kriptogrfia tlete teht nem bonyolult. Rgtn felmerlhet azonban kt aggodalmunk is. Az els gondunk, hogy az igaz ugyan, hogy a tmad, aki elfogja Alice titkostott zenett, csak rtelmezhetetlen zenetet lt, de ismeri mind a kulcsot (Bob nyilvnos kulcsa. amit az egsz vilg lthat), mind a titkostsi eljrst, amivel Alice titkostotta zenett. Trudy vlasztott nylt szveg tmadst hajthat vgre, vagyis az ismert (szab vnyos) titkostsi eljrs segtsgvel, Bob nyilvnosan elrhet kulcsnak ismeretben tetszleges ltala vlasztott zenetet kdolhat. gy Trudy pldul prblkozhat olyan ze netek vagy zenetrszek kdolsval, amelyekrl gyantja, hogy azok kzl valamelyiket Alice kldte. Vilgos, hogy amennyiben a nyilvnos kulcs kriptogrfia mkdkpes, akkor a kulcspr megvlasztsa s a kdols/dekdols bizonyra gy zajlik, hogy egy tmad szmra Bob privt kulcsnak meghatrozsa, vagy Alice Bobnak szl zenetnek ms mdon trtn dekdolsa vagy kitallsa lehetetlen (vagy legalbbis annyira nehz, hogy majdnem lehetetlen). A msodik aggodalmunk, hogy mivel Bob titkost kulcst mindenki ismeri, brki kldhet titkostott zeneteket Bobnak, gy Alice is, vagy valaki, aki csak azt lltja, hogy Alice. Abban az esetben, amikor egyetlen titkos kulcs van, kimondatlanul is KJ Nyilvnos titkost kulcs K
Titkos (privt) dekdol kulcs
Nylt zenet,
m
Rejtett szveg Rejtjelez algoritmu s
Nylt zenet,
KB*(m)
Dekdol algoritmus
Xir
azonostja a kldt a vev szmra a tny, hogy a kld ismeri a kulcsot. Nyilvnos kulcs titkostsnl azonban ez mr nem ll fenn, ugyanis brki kldhet Bobnak titkostott zenetet Bob nyilvnosan hozzfrhet kulcst hasznlva. Ahhoz, hogy egy zenetet a kldjhez hozzrendelhessnk, a 8.3. alfejezetben trgyalt digitlis alrsokra van szksg. Szmos algoritmus s kulcs ltezhet, amelyek megfelelnek a lent lertaknak, mgis az RSA algoritmus (kitalli, Ron Rivest, Adi Shamir s Leonard Adleman nyomn nevezik gy) az, amely mr-mr szinonimja lett a nyilvnos kulcs kriptogrfinak. Nzzk meg elbb, hogy miknt is mkdik az RSA, majd vizsgljuk meg, hogy mirt mkdik. Tegyk fel, hogy Bob titkostott zeneteket szeretne kapni, ahogy a 8.6. bra is mutatja. Az RSA kt idevg sszetevje: a nyilvnos s a titkos kulcs megvlasztsa, a titkost s a dekdol algoritmusok. Bob az albbi lpsek vgrehajtsval vlasztja meg a nyilvnos s a titkos kulcst: 1. Kivlaszt kt nagy prmszmot, p-1 s q-1. Mennyire legyen nagy p s q? Minl nagyobbak, annl nehezebb megtrni az RSA-t, viszont annl tovbb tart a kdols s dekdols is. Az RSA Laboratories ajnlsa szerint vllalatok szmra p s q szorzata legyen 1024 bites nagysgrend, mg kevsb rtkes informcik esetn 768 bites |RSA Key 2007] (azon persze gondolkodhatunk, hogy mirt is tartjk a vllalati felhasznlst sokkal fontosabbnak, mint brmi mst). Arrl, hogy hogyan lehet nagy prmeket tallni, rszletesebben [Caldweel 2007] mvben olvashatunk. Kiszmtja ti = pq s z- {p-\)(q-\) rtkeket. Vlaszt egy olyan n-nl kisebb e szmot, amelynek nincs kzs osztja (az 1en kvl) 2-vel. (gy mondjuk, hogy e s z ekkor relatv prmek.) Ezt a szmot hasznljk titkostsra, ezrt szoks e-vel jellni (az angol encryption sz nyomn). Keres egy olyan d szmot, amelyre fennll, hogy ed-1 oszthat (azaz maradk nlkl oszthat) 2-vel. Dekdolskor ezt a szmot fogjuk hasznlni, ezrt jelljk J-vel (az angol decryption sz nyomn). Mskppen fogalmazva, egy adott e szmhoz megkeressk azt a d szmot, amelyre ed szorzat 2-vel osztva 1 maradkot ad. (Ha az .v egsz szmot elosztjuk az n egsszel, akkor a maradkot xmod n jelli.) A nyilvnos Kg kulcs, amelyet Bob a nagyvilg nyilvnossgra hoz, az (n,e) szmpr, a titkos kulcsa, Kf pedig az (ti,d) szmpr.
2. 3.
4.
5.
A kvetkez trtnik, amikor Alice titkost s Bob dekdol: legyk fel, hogy Alice egy olyan m bitmintt vagy szmot szeretne kldeni Bobnak, amelyre ni < ti. A kdolshoz Alice kiszmtja az ni* hatvnyt, majd veszi az w-nel val maradkt. Azaz, az ni nylt zenet c titkostott rtke, amelyet majd Alice elkldi a kvetkez:
c = mc md n
Bob a kapott c rejtett zenet dekdolshoz kiszmtja m = cd md n rtket, amihez szksge van az (ti, d) titkos kulcsra. 8.1. tblzat. Alice RSA-titkostsa, e = 5,n = 35 me Nylt szveg betje m, szmmal kifejezve
1 12 15 22 5 248832 759375 5153632 3125
0
V e
C*
c=m'modr?
0
V e
Vegynk egy egyszer pldt az RSA-ra. Tegyk fel, hogy Bob vlasztsa p- 5 s q = 7. (Az igazat megvallva, ezek az rtkek messze nem elg nagyok ahhoz, hogy biztonsgosak legyenek.) Ekkor r = 35 s z - 24. Bob vlasztsa e = 5, mivel az 5 s a 24 relatv prmek. Vgl Bob kivlasztja a d - 29 rtket, mivel 5x29-1 (vagyis ed - 1) oszthat 24-gyel. Bob nyilvnossgra hozza az n = 35 s e = 5 rtkeket, s titokban tartja ad = 29 szmot. Alice a kt nyilvnossgra hozott szm ismeretben, tegyk fel, hogy az /, o, v s e betket szeretn Bobnak elkldeni. Minden bett brzoljunk egy 1 s 26 kztti szmmal (hasznljuk most az angol bct, legyen az a az 1, s a z a 26). Alice s Bob a titkostst, illetve a dek dolst a 8.1. s a 8.2. tblzatokban lthat mdon vgzik. Ltva a 8.1. s 8.2. tblzatokban, hogy mr a kis pldnk is eredmnyezett nhny igen nagy szmot, s a korbban ltottak alapjn tudva, hogy p s q nhnyszor szz bit hosz- sz kell hogy legyen, felmerlhet az RSA-val kapcsolatban nhny gyakorlati problma. Hogyan vlasztunk nagy prmeket? Hogyan vlasszuk meg ezutn az e s d szmokat? Hogyan vgznk hatvnyozst nagy szmokkal? Ezen fontos krdsek mr tlmutatnak knyvnk keretein, rszletes trgyalsuk (Kaufmann 1995] mvben, valamint az ott hi vatkozott irodalomban tallhat.
Viszonykulcsok
Meg kell jegyeznnk, hogy az RSA llal megkvetelt hatvnyozs elgg
idignyes mvelet. sszehasonltsknt, a DES legalbb 100-s/or gyorsabb szoftveres megvalstsban, s 1000-10 000-szer gyorsabb hardveresen [RSA Fst 2007]. ppen ezrt, a gyakorlatban az RSA-t sokszor szimmetrikus kulcs kriptogrfival kombinlva hasznljk. Pldul ha Alice nagy mennyisg titkostott adatol szeretne kldeni Bobnak, a kvetkezkpp jrhat el. Elszr Alice vlaszt egy kulcsot, amellyel magt az adatot fogja kdolni, ezt a Ks kulcsot fogjuk viszonykulcsnak (session key) nevezni. Alice-nek Bob tudomsra kell hoznia a viszonykulcsot, mivel ez az a kzs titkos kulcs, amelyet a szimmetrikus kulcs titkostsnl (pldul DES vagy AES) alkalmazni fognak. Alice a viszonykulcsot Bob nyilvnos kulcsval titkostja, vagyis kiszmtja c = (Ks)f md/; rtket. Bob megkapja c -t, az RSA-val titkostott viszonykulcsot, majd ezt dekdolja, gy megkapja a K$ viszonykulcsot. Bob most mr ismeri a viszonykulcsot, amelyet Alice az adatok titkostsra fog hasznlni.
(m'Y md = m
md .
Br ppen azon vagyunk, hogy az RSA mkdsben a csods elemeket megmagyarzzuk, most a szmelmlet egy meglehetsen varzslatos eredmnyre lesz szksgnk. Nevezetesen arra, amelyik azt mondja ki, hogy ha p s q prmek, s = pq, akkor xy md ugyanannyi, mint )** > md [Kaufmann 1995]. Felhasznlva ezt:
(m'Y md = ? 1 md =
/, azaz:
(m'Y md = m.
Pontosan erre az eredmnyre szmtottunk! Elszr az e (titkostskor), majd a d (dekdolskor) hatvnyra emelve, visszakapjuk az eredeti rn rtket. Mg ennl is szebb, hogy ha elszr a d s azutn az e hatvnyra emelnk - azaz megfordtjuk a kdols s dekdols sorrendjt, s elszr a dekdolst hajtjuk vgre s csak azutn a kdolst - szintn visszakapjuk az eredi m rtket. (Az llts bizonytsa pontosan megegyezik az elbbivel, ugyanis med = mde) Hamarosan ltjuk majd, hogy az RSA algoritmus ezen szpsges tulajdonsgnak, miszerint (rn'Y md = (mJ)r md n mg nagy hasznt vesszk. Az RSA biztonsga azon alapszik, hogy nem ismert gyors algoritmus egy szm prmtnyezinek megtallsra, jelen esetben a nyilvnos n szm p s q prmekre val bontsra. Ha valaki ismern a /> s q szmokat, akkor a nyilvnos e szm segtsgvel knnyen kiszmthatn a titkos kulcsot, ci-1 is. Az sem ismert viszont, hogy egyltaln ltezik-e gyors algoritmus a prmtnyezkre bontsra, ilyen rtelemben az RSA biztonsgossga nem garantlt.
8.3. Uzenetintegrits
Az elz fejezetben lttuk, hogy titkostssal hogyan lehet biztostani kt kommunikl fl szmra a titkossgot. Ebben a fejezetben a kriptogrfia egy nem kevsb fontos terletvel, az zenetintegritssal (message integrity) (ms nven zenethitelests, message authentication) foglalkozunk. Szintn ebben a fejezetben trnk ki a digitlis alrsokra. Ltni fogjuk, hogy a kriptogrfiai hash fggvnyek mind az zenetintegritsnak, mind a digitlis alrsoknak kzs alkotelemei. jfent Alice s Bob segtsgvel vezetjk be az zenetintegrits problmjt. Tegyk fel, hogy Bob kap egy zenetet (akr titkostott szvegt, akr nylt szvegt), s gy gondolja, hogy az zenetet Alice kldte. Az zenet hitelestshez Bobnak ellenriznie kell, hogy 1. az zenet valban Alice-tl jtt, 2. az zenetet nem mdostottk tkzben, amg Bobhoz rt. A 8.5-8.8. alfejezetekben ltni fogjuk, hogy az zenetintegrits krdse kulcsfontossg csaknem az sszes biztonsgos hlzati protokoll esetben. Konkrt pldaknt, gondoljunk egy olyan szmtgp-hlzatra, amely kapcsolatlla- pot-alap tvlaszt algoritmust hasznl (pldul OSPF) ahhoz, hogy meghatrozza a kt tvlaszt kztti tvonalat (lsd 4. fejezet). A kapcsolatllapot-alap algoritmus sorn minden tvlasztnak kapcsolatllapotzeneteket kell szctkldenie a hlzat tbbi tvlasztjnak. Egy tvlaszt kapcsolatllapot-zenete tartalmaz egy listt a kzvetlen szomszdjairl, s ezen szomszdok kzvetlen elrsnek kltsgrl. Amint egy tv laszt a hlzat sszes tbbi tvlasztjtl megkapta a kapcsolatllapot-zenetet, tud fel lltani
egy teljes kpet a hlzatrl, majd ezutn megkeresi a legalacsonyabb kltsg t vonalakat, s ez alapjn tlti ki az tvlaszt tblzatt. Egy viszonylag egyszer tmads az tvlaszt algoritmus ellen az, ha Trudy hamis kapcsolatllapotzeneteket terjeszt, benne valtlan kapcsolatl lapot-in formcikkal. Ezrt van szksg zenetintegritsra - amikor egy B tvlaszt kap egy kapcsolatllapotzenetet A-tl, akkor a B tvlasztnak ellenriznie kell, hogy tnyleg az A tvlaszt kldte az zenetet, valamint azt is, hogy tovbbts kzben senki nem mdostotta azt. libben az alfejezetben bemutatunk egy elterjedt mdszert az zenetintegrits biztostsra, amelyet sok biztonsgos hlzati protokoll alkalmaz. Mieltt azonban ezt megtennnk, a kriptogrfia egy jabb fontos fejezetvel kell megismerkednnk - a kriptogrfiai hash fggvnyekkel.
Hossz zenet:
Tartalomjegyzk..........................................7
1.1.Mi az az internet?.................................2
1.1.1.Alkotrszek.......................................2
1.1.2.Szolgltatsok....................................5
1.2.1.Kliens- s szerverprogramok..........14
1.2.2.Hozzfrsi hlzatok.....................14
1.3.3.lnternetszolgltatk s internetgerinchlzatok.........................................41
1.4.1.Ksleltetsek ttekintse................46
1.4.4.Szmtgp-hlzatok tbocstkpessge.................................58
1.5.1.Rtegezett architektra..................63
1.7.5.Legutbbi fejlesztsek....................90
1.8.sszefoglals......................................92
Krdsek....................................................94
Feladatok...................................................96
Gondolkodtat krdsek.........................105
Leonard Kleinrock...................................108
Az alkalmazsi rteg...............................113
2.1.2.Kommunikl folyamatok.............119
2.1.5.Alkalmazsi protokollok................130
2.2.3.HTTP-zenetformtumok..............140
2.2.5.Webes gyorsttrazs..................149
2.3.Fjltvitel: FTP..................................127
2.3.1.FTP-parancsok s -vlaszok..........129
2.4.1.SMTP...............................................134
2.4.2.sszehasonlts a HTTP-vei..........113
2.4.4.Levl-hozzfcrsi protokollok.......118
2.5.3.DNS-rekordok s -zenetek..........131
2.6.P2P-alkalmazsok.............................139
2.6.1.P2P-fj1cserls............................140
F \.............................................................143
2.7.TCP-szoketprogramozs...................166
2.7.1.TCP-szoketprogramozs................168
l................................................................183
t................................................................186
Bram Cohen.............................................202
A szlltsi rteg.....................................205
O...............................................................245
O...............................................................211
Sally Floyd...............................................295
A hlzati rteg.......................................298
Vinton G. Cerf..........................................151
1...............................................................196
1...............................................................196
r,=2X......................................................231
p*"~ j.......................................................242
I I l i..........................................................106
B2
Cl D2
AC Ellenrz sszeg
Ron Rivest MD5 hash algoritmust [RFC 1321] szles krben alkalmazzk manapsg. 1 Ez az algoritmus ngy lpsben szmt ki egy 128 bites hash rtket. Az els lps egy kitlt lps (kiegsztve az zenetet egy egyessel s kell szm nullval, hogy az zenet hossza megfeleljen bizonyos feltteleknek), a msodik egy hozzfzs (hozzfzi a kitlts eltti zenet- hossz 64 bites reprezentcijt), a harmadik az sszeg inicializlsa, s egy vgs, ismtld lps, amelyben az zenet 16 szavas blokkjait ngy krben dolgozza fel (mdostja). Az MD5 lersa (belertve egy C forrskd megvalsts is) megtallhat az [RFC 1321]-ben. A msodik fontos, ma hasznlatos hash fggvny a Secure Hash Algorithm (SHA1) [FIPS 1995]. Ez az algoritmus hasonl elveken alapul, mint az MD5 eldje, az MD4 [RFC 1320). llamkzi alkalmazsok esetn az SHA-1 algoritmust, az Egyeslt llamok kzponti szabvnyt kell hasznlni. Az zenetrl 160 bites pecstet (message digest) kszt. A hosszabb kimenet biztonsgosabb teszi az SHA-1 -et.
8.3.2. zenethitelest kd
Trjnk vissza az zenetintegrits krdshez. Most, hogy megrtettk a hash fggvnyeket, nzzk meg, hogy els kzeltsben hogyan biztostannk az zenet integritst: Alice elkszti az m zenetet s kiszmtja a hash rtkt, H(m)-et (mondjuk SHA-1 algoritmussal). 2. Alice hozzfzi H(w)-et az m zenethez, ezzel ltrehozva egy kibvtett zenetet, (m,H(m))-et, s ezt a kibvtett zenetet kldi el Bobnak. 3. Bob megkapja az {m,h) kibvtett zenetet, s kiszmtja a H(m) rtket. Ha H(rn) = hy Bob arra kvetkeztet, hogy minden rendben zajlott. 1. Ez a megkzelts nyilvnvalan hibs. Trudy ugyanis kszthet egy hamis zenetet, ni-1, amelyben azt lltja, hogy Alice, majd kiszmtja H(ni)-1, s elkldi Bobnak a ( m z e n e t e t . Amikor Bob megkapja az zenetet, a 3. lpsben minden stimmel, s Bob nem is sejti, hogy megtrfljk. Ahhoz, hogy zenetintegritst biztostsunk, a kriptogrfiai hash fggvnyeken kvl egy kzs titokra, s-re is szksge lesz Alice-nek s Bobnak. Ezt a kzs titkot, amely nem
tbb mint egy bitsorozat, hitelest kulcsnak (authentication key) nevezzk. A kzs titok felhasznlsval az zenet integrits biztostsa a kvetkezkppen nz ki: 1.
8.3. ZENETINTEGRITS
161
Alicc ltrehozza az m zenetet, hozzfzi m-hez az 5 kulcsol, gy megkapja m + s -t, majd kiszmtja a H(m+s) hash rtket (pldul SlA-1 algoritmussal). H(m+s)-et zenethitelest kdnak nevezzk (message authentication code, MAC). 2. Alice ezutn hozzfzi a MAC-rlkel az m zenethez, ltrehozva egy kibvtett zenetet, (m, H(m+$))-1, s ezl a kibvtett zenetet kldi el Bobnak. 3. Bob megkapja az (m,h) kibvtett zenetet, s kiszmtja a H{m+s) MACrtket (megkapta az m zenetet s ismeri az s litkot). Ha H(m+$) = h, Bob arra kvetkeztet, hogy minden rendben zajlt t. A folyamatot a 8.9. bra foglalja ssze. Felhvjuk az olvas figyelmt, hogy itt a MAC (amely a message authentication code rvidtse) nem ugyanaz, mint amivel az adatkapcsolati rleg protokolljai esetn tallkoztunk (amely a mdium access control rvidtse). A MAC egyik szp tulajdonsga, hogy nincs szksg hozz titkostsra. Valban, sok alkalmazs esetn, belertve a korbban emltett kapcsolatllapot-alap tvlasztst is, a kommunikl felek csak az zenetintegritssal foglalkoznak, s nem rdekli ket az zenetek titkossga. MAC hasznlatval a felek gy tudjk az egymsnak kldtt zeneteiket hitelesteni, hogy kzben nem kell bonyolult titkost algoritmusokat beptenik az integritsvdelem folyamatba. Ahogy kitallhattuk, szmos klnbz szabvnyt javasoltak az zenethitelest kdokra. Manapsg a legnpszerbb a HMAC, amely egyarnt hasznlhat MD5-tel s SHA-l-gyel. A HMAC a hitelest kulcsot s az adatot tulajdonkppen ktszer vezeti keresztl a hash fggvnyen [Kaufmann 1995; RFC 2104). Mg mindig maradt egy fontos krdsnk. Hogyan osztjuk szt a kzs hitelest kulcsot a kommunikl feleknek? A kapcsolatllapot-alap tvlaszt algoritmus esetben pldul valahogy el kellene juttatnunk a titkos hitelest kulcsot a hlzat minden megbzhat tvlasztjhoz. (Megjegyezzk, hogy minden tvlaszt hasznlhatja ugyanazt a hitelest kulcsot). Egy rendszergazda megteheti ezt azzal, hogy minden egyes tvlasztt fizikailag felkeres. Vagy, ha a rendszergazda egy lusta fick, s minden tvlasztnak
Internet
H(m+ s)
Jells:
m I * zenet s =
Kzs titox
162
8.
SZMTGP-HLZATOK
BIZTONSGA
van sajt nyilvnos kulcsa, akkor a rendszergazda kioszthatja a hitelest kulcsot minden egyes tvlasztnak gy, hogy titkostja az egyes tvlasztk nyilvnos kulcsval, majd a titkostott kulcsot a hlzaton keresztl elkldi az adott tvlasztnak.
8.3. ZENETINTEGRITS
prost. Szeretn bizonytani a brsg eltt (mivel peresked tpus), hogy Bob valban alrta a dokumentumot, s kizrlag lehetett az, aki alrta azt a dokumentumot. Alice fogja Bob K, nyilvnos kulcst, s alkalmazza azt az m dokumentumhoz tartoz digitlis alrsra. Azaz, kiszmtja K*B(K~(m)) rtket, s lm, drmai izgalmak kzepette megkapja m-t, amely
163
8.3. UZENETINTEGRITS
Amila mi....
164
Alrt zenet:
zenet:
Encryption algorithm
T
Bob
Ke
8.10. bra.
pontosan megegyezik az eredeti dokumentummal. Alice az albbi rvek alapjn llthatja, hogy kizrlag Bob rhatta al a dokumentumot: Ahhoz, hogy Kg(Kl(m)) = m fennlljon, akrki is rta al az zenetet, az alrs, vagyis K'B(m) szmtsakor a Kt titkos kulcsot kellett hasznlnia. Az egyetlen, aki ismerhette a K~ titkos kulcsot, az Bob. Idzzk fel a 8.2. alfejezetbl, az RSA bemutatsbl, hogy a K'f nyilvnos kulcs ismerete mit sem segt Kn titkos kulcs megtallsban. Ezrt, az egyetlen szemly, aki ismerheti a K~ titkos kulcsot, az lehet, aki generlta a ( K ' f . K B ) kulcsprt, azaz Bob. (Felttelezzk, hogy Bob nem adta oda a K ~ kulcsot msnak, s senki sem lopta el azt tle.) Azt is fontos megjegyeznnk, hogy ha az eredeti m dokumentumot valamikor megvltoztatjk m-re, Bob alrsa, amelyet m-re ksztett, nem lesz rvnyes mre, mivel nem azonos m -vei. Ltni fogjuk teht, hogy a digitlis alrs zenetintegritst is biztost, az zenet vevje egyarnt kpes meggyzdni az zenet kldjnek kiltrl, valamint arrl, hogy az zenetet nem vltoztattk meg. Annak, hogy kdolssal runk al adatokat, az az egyik htultje, hogy a kdols s dekdols mveletnek szmtsa kltsges. A kdols s dekdols tbbletrfordtsval egytt a teljes adat kdolssal/dekdolssal trtn alrsa megengedhetetlenl drga lenne. Ennl hatkonyabb megkzeltst eredmnyez, ha a hash fggvnyeket is bevonjuk a digitlis alrs ksztsbe. Idzzk fel a 8.3.2. alfejezetbl, hogy egy hash fggvny bemenet egy tetszleges hosszsg m zenet, s abbl kiszmtja az zenet egy rgztett hosszsg ujjlenyomatt, pecstjt (message digest), amelyet H{ni) jell. A hash megvdi az adatot abban az rtelemben, hogy ha m-et m-re cserlik, akkor az eredeti adaton szmtott (s 8.7. bra. Hash fggvnyek az adattal egytt tkldtt) H(m) rtk nem fog megegyezni a mdostott adaton szmtott H(m') rtkkel. A hash fggvny alkalmazsval Bob az zenet helyett az zenet hash rtkt
rja al, azaz kiszmtja artket. Mivel rendszerint H(m) sokkal kisebb, mint az eredeti m zenet, a digitlis alrs ksztshez szksges szmtsigny gy jelentsen cskken.
8.3. ZENETINTEGRITS
165
166
8.
SZMTGP-HLZATOK
BIZTONSGA
......
Hash fggvny
v_
Opgmdvboijrtnsd gghPPdogm;lcvkb
Bob
Alirt pecst
Fgkopdgoo69cmxw 54psdterma[asofmz
V
8.11. bra. Digitlison alrt zenet kldse
A 8.11. bra sszefoglalja a digitlis alrs ksztsnek folyamatt arra az esetre, ami kor Bob kld zenetet Alice-nek. Bob elkszti az eredeti, hossz zenet pecstjt egy hash fggvnnyel. Ezutn a kapott hash rtket digitlisan alrja a titkos kulcsval. Az eredeti (nylt szveg) zenetet, az zenet digitlisan alrt pecstjvel egytt (amit a to vbbiakban digitlis alrsnak neveznk), ezutn elkldi Alice-nek. A 8.12. bra foglalja ssze az alrs ellenrzsnek folyamatt. Alice a kld nyilvnos kulcst alkalmazva, az zenetbl megkapja a hash rtket. Alice a hash fggvny segtsgvel szintn elkszt a nylt zenetbl egy msodik pecstet. Ha a kt pecst megegyez, akkor Alice biztos lehet az zenet kldje s integritsa fell.
8.3. UZENETINTEGRITS
167
Mieltt tovbbmennnk, rviden hasonltsuk ssze a digitlis alrsokat s a M AC-kdokat, mivel mutatnak ugyan hasonlsgot, de van kztk nhny apr, de lnyeges k lnbsg. Mind a digitlis alrsok, mind a MAC-kdok egy zenetbl (vagy dokumen tumbl) indulnak ki. MAC ksztsekor a hitelest kulcsot hozzfzzk az zenethez, majd vesszk az eredmny hash rtkt. Fontos megjegyezni, hogy sem nyilvnos, sem szimmetrikus kulcs titkosts nem trtnik MAC ksztsekor. Digitlis alrs ksz tsnl elszr vesszk az zenet hash rtkt, majd ezt a titkos kulcsunkkal titkostjuk (nyilvnos kulcs titkostst alkalmazunk). A digitlis alrs teht egy kemnyebb mdszer, mivel szksges hozz a httrben egy nyilvnos kulcs infrastruktra (Public Key Infrastructure, PKI), az albb rszletezett hitelestsszolgltatkkal egytt. A 8.5. alfejezetben ltjuk majd, hogy a PGP egy npszer biztonsgos e-mail rendszer - digitlis alrsokat hasznl az zenetintegrits vdelmre. A korbbiakban lttuk, hogy az OSPF MAC-kdokkal vdi az zenetek integritst. A 8. 6. s 8.7. alfejezetben azt is ltjuk majd, hogy a MAC-kdokat npszer szlltsi s egyb hlzatbiztonsgi protokollok is alkalmazzk.
168
Alrt pecst
8.
SZMTGP-HLZATOK
BIZTONSGA
Fgkopdgoo69cmxw 54psdterma[asofmz
Kdol algoritmus
fw
Bob titkos kulcsa, Kg*
l
Hossz zenet
Kedves Allce! Ez egy nagyon hossz levl, meri annyi minden van. amit el kell mondanom
Hash fggvny
....................................
8.3. UZENETINTEGRITS
169
hez az zenethez (Trudy) a sajt nyilvnos kulcst mellkeli, br Alice termszetesen azt fogja gondolni, hogy az Bob nyilvnos kulcsa. Trudy mellkel tovbb egy digitlis alrst is, amelyet kszteti a sajt titkos kulcsval. Miutn Alice megkapja az zenetet, azt gondolvn, hogy az Bob nyilvnos kulcsa, Trudy nyilvnos kulcsval ellenrzi a digitlis alrst, s arra jut, hogy a nylt zenetet valban Bob kldte. Bob igen meg fog lepdni, amikor a pizzafutr megjelenik nla egy pepperonis, szardells pizzval. Ebbl a pldbl lthatjuk, hogy ahhoz, hogy hasznt vegyk a nyilvnos kulcs kriptogrfinak, meg kell tudnunk gyzdni arrl, hogy a rendelkezsnkre ll annak az entitsnak (szemly, tvlaszt, bngsz stb.) a publikus kulcsa, amellyel kommuniklni szeretnnk. Ha pldul Alice Bobbal szeretne kommuniklni, meg kell bizonyosodnia arrl, hogy a nyilvnos kulcs, amely lltlag a Bob, valban Bob nyilvnos kulcsa. Egy nyilvnos kulcs hozzrendelst egy adott entitshoz ltalban egy hitelestsszolgltat (Certificate Authority, CA) vgzi, amelynek feladata az azonossg ellenrzse s a tanstvnyok killtsa. Egy hitelestsszolgltatnak az albbi feladatai vannak:
Hash fggvny
Kdol algoritmus
r
W1
Alice Trudy nyilvnos kulcst hasznlja, azt gondolvn, hogy a Bob kulcsa, gy arra jut, hogy az zenetet Bob kldte.
\
Az zenet (Trudy titkos kulcsval) alrt pecstje
Fgkopdgoo69cmxw 54psdterma[asofmz
1.
A CA ellenrzi, hogy egy entits (szemly, tvlaszt stb.) valban az, akinek mondja magt. Nincs elrt mdszer az azonosts elvgzsre. Ha valakinek egy bizonyos CA-val akad dolga, akkor meg kell bznia abban, hogy a CA kell alapossggal ellenrizte az illet azonossgt. Ha pldul Trudy csak bestl Linkci CA-hoz, s egyszeren kzli, hogy n vagyok Alice., s mris kap egy Alice szemlyazonossghoz rendelt tanst vnyt,akkor nem ajnlott tlzott bizalommal lenni a Linkci CA ltal killtott nyilvnos kulcs tanstvnyok irnt. Ezzel szemben az ember inkbb megbzik (vagy inkbb nem!) egy olyan CA-ban, amely rsze egy llamkzi vagy llami programnak. Csak annyira bzhatunk meg valamely nyilvnos kulcshoz rendelt azonostban, amennyire a CA-ban, s annak azonostsi mdszereiben megbzunk. Micsoda bizalmi hlba keveredtnk! 2. Ha a CA meggyzdtt az entits azonossgrl, a CA killt egy tanstvnyt (certi- ficate), amely az entits nyilvnos kulcst az entits azonossghoz rendeli. A tanstvny tartalmazza a nyilvnos kulcsot, valamint a kulcs tulajdonosnak egyedi azonostsra alkalmas informcit (pldul egy ember nevt vagy egy IP-cmet). A tanstvnyt a CA digitlisan alrja. A 8.14. bra mutatja ezeket a lpseket. Most lssuk, hogyan kzdhetnk a Trudy-hoz hasonl pizza rendelssel szrakozk s ms illetktelenek ellen a tanstvnyok segtsgvel. Amikor Bob elkldi a rendelst, elkldi a CA ltal alrt tanstvnyt is. Alice a CA nyilvnos kulcsval leellenrzi Bob tanstvnynak rvnyessgt, s megkapja belle Bob nyilvnos kulcst. Az ITU s az IETF is szabvnyostotta a CA-kat. Az ITU X.509 (IT 1993] szabvny meghatrozza a hitelestsszolgltatst, s elrja a tanstvnyok kttt szintaxist is. Az [RFC 1422| rszletezi a biztonsgos e-levelezsre hasznlatos CAn alapul kulcskezelst. Ez utbbi kompatibilis az X.509 szabvnnyal, de tbb is nla annyival, hogy kulcskezelst, megvalst eljrsokat, konvencikat is rgzt. A 8.3. tblzat tartalmazza egy tanstvny legfontosabb mezit.
CA nyilvnos
kulcsa, KQ!
Hitelestsszolgltat (CA)
&
Bob CA ltal alirt tanstvnya, amely tartalmazza Bob nyilvnos kulcst, K8~
Az utbbi idkben az e-kereskedelemben bekvetkezett hatalmas fejlds, s az ezzel prhuzamosan a biztonsgos tranzakcikra vonatkoz, egyre szlesebb krben jelentkez igny, a hitelestszolgltatk irnti rdekldst is felerstettk. A CA-szolgltatst nyjt vllalatok kztt megtalljuk a VcriSign cget is [VeriSign 2007).
8.4. Vgpont-hitelests
A vgpont-hitelests (end-point authentication) nem ms, mint a szemlyazonossg igazolsa msvalaki fel. Mi emberek sokflekppen hitelestjk egymst: tallkozskor felismerjk egyms arct, a telefonban rismernk a msik hangjra, a vmnl a hatrr is hitelest bennnket, amikor megnzi a fnykpnket az tlevelnkben. Ebben az alfejezetben megnzzk, hogyan tudja egyik fl a msikat azonostani olyankor, amikor a felek hlzaton keresztl kommuniklnak. Jelen esetben egy l, azaz a protokoll futsakor jelen lv msik fl hitelestsvel foglalkozunk, mgpedig a kommunikci tnyleges idejvel azonos idben. Ez a problma egy kicsit ms, mint annak bizonytsa, hogy egy mltban kapott zenet valban az lltlagos kldtl szrmazik-e. E krdst a 8.3. alfejezetben trgyaltuk. Amikor a hitelests hlzaton keresztl trtnik, nem hagyatkozhatunk biometrikus azonostkra, mint amilyen a kls megjelens vagy a beszdhang. Ahogy a ksbbi eset- tanulmnyainkbl is ki fog derlni, a valsgban sokszor a hlzat alkotelemeinek, pldul tvlasztknak vagy kliens/szerver folyamatoknak kell hitelestenik egymst. Ebben az esetben a hitelestsnek egyedl a hitelestsi protokoll (authentication protocol) llal meghatrozott zenetek s adatok cserje alapjn kell megtrtnnie. A hitelestsi proto koll jellemzen azelll fut le, hogy a kl fl valamilyen ms protokoll futtatsba kezdene (pldul megbzhat adattovbbts, tvlasztshoz szksges
informcik cserje, vagy egy e-mail protokoll). A hitelestsi protokoll elbb mindenki szmra kielgt mdon tisztzza a rsztvevk kiltt; a felek csak ezutn ltnak hozz a tnyleges munkhoz. Ahogy a 3. fejezetben a megbzhat adattviteli protokoll fejlesztsnl, gy itt is tanulsgos lesz egy hitelestsi protokoll (amelynek neve ap lesz, mint authentication protocol) tbb verzijt kifejleszteni, s haladvn elre, az egyes verzik hinyossgait feltrni. (Ha az Olvasnak tetszik egy terv ilyen lpsrl lpsre val fejlesztse, bizonyra tetszene [Bryant 1988] munkja is, amely egy nylt hlzatbeli hitelest rendszer tervezirl szl kpzeletbeli trtnetet mesl el, azt a folyamatot, ahogy k felfedezik a sok apr felmerl problmt.) Tegyk most tel, hogy Alice szeretn hitelesteni magt Bob fel.
8.4.1.
Hitelestsi protokoll
apl.O
Valsznleg nem tudunk elkpzel ni annl egyszerbb hitelestsi protokollt, minthogy Alice egyszeren kld egy zenetet Bobnak, amiben az ll, hogy Alice. Ez a protokoll lthat a 8.15. brn. A protokoll a hibja kzenfekv - Bob sehogyan sem tudja kiderteni, hogy az a valaki, aki azt mondja, hogy Alice vagyok', az valban Alice-e. Pldul Trudy (a tmad) is ugyangy kldhette ezt az zenetet.
8.4.2.
Hitelestsi protokoll
ap2.0
Ha Alice a kommunikcijt mindig egy jl ismert hlzati cmrl (pldul egy adott IP-cmrl) folytatja, akkor Bob megksrelheti Alice hitelestst gy, hogy ellenrzi, hogy az IP-csomag forrscme, amelyben Alice hitelest zenete rkezik, megegyezik-e Alice ezen jl ismert cmvel. Ezzel hitelesthetnnk Alice-t. Ez a mdszer, lehet hogy megakadlyozna egy hlzatokban jratlan tmadt abban, hogy megszemlyestse Alice-t, de nem gtoln - msok mellett - az ebbl a knyvbl tanul buzg hallgatkat sem. A hlzati s adatkapcsolati rteggel kapcsolatban tanultakbl tudjuk, hogy nem is olyan nehz (pldul ha valaki hozzfr az opercis rendszer forrskdjhoz s sajt kernelt fordthat, mint a Linux s sok ms ingyenes opercis rendszer esetben is) egy IP-csomagot kszteni, abba tetszleges IP-forrscmet (pldul Alice jl ismert cmt) rni, majd elkldeni a csomagot az adatkapcsolati rtegbeli protokollon keresztl az els tvlasztig. Innentl pedig a tvlasztk a hibs forrscmmel elltott IP-csomagot engedelmesen tovbbtjk Bobnak. Ez a megkzelts, amely a 8.16. brn is lthat, az IP tejtsnek (IP spooing) egy fajtja. Az IP-cm hamistsa ellen gy vdekezhetnk, hogy a Trudy kzelben lv els tvlasztt gy lltjuk be, hogy csak olyan csomagokat toAlice
Alice
vagyok
177
Alice Bob
8. SZMTGP-HLZATOK BIZTONSGA
Trudy
8.16. bra. ap2.0 protokoll s egy azt kijtsz forgatknyv vbbtson, amelyek Trudy IP-cmt tartalmazzk (RFC 2827]. Ez a lehetsg azonban nem mindenhol adott, s ltalnosan nem ktelez a hasznlata. Bob teht ostoba lenne, ha azt felttelezn, hogy Trudy hlzatnak gazdja (aki lehet, hogy maga Trudy) gy lltotta be a Trudyhoz legkzelebbi tvlasztt, hogy kizrlag helyesen cmzett csomagokat tovbbtson.
8.4.3.
Hitelestsi protokoll
ap3.0
A titkos jelszval trtn hitelests egy klasszikusnak szmt megkzelts. PINkdot hasznlunk, hogy azonostsuk magunkat a bankautomata szmra, s hogy bejelentkezznk az opercis rendszerbe. A jelsz egy kzs titok, amelyet csak a hitelest s a hitelestett szemly ismerhet. A Telnet s az FTP is jelszavas hitelestst hasznl. gy teht az ap3.0 protokoll sorn Alice a titkos jelszavt kldi el Bobnak, ahogy a 8.17. brn is lthatjuk. Mivel a jelszavak olyannyira elterjedtek, felttelezhetnnk, hogy az ap3.0 meglehetsen biztonsgos. Ha ezt hinnnk, bizony rosszul gondolnnk! Itt is nyilvnval a biztonsgi hiba. Ha Trudy lehallgatja Alice kommunikcijt, akkor megszerezheti Alice jelszavt. Nehogy azt higgyk, hogy ez nem tl valszn. Gondoljunk bele, hogy amikor Telnettel bejelentkeznk egy tvoli gpre, a jelszavunk titkosts nlkl kerl tovbbtsra a Tel- net-szervernek. Brki, aki a Telnet-klienshez vagy szerverhez tartoz LAN-ra csatlakozik, lehallgathat (olvashat s trolhat) minden csomagot, amelyet a LAN-on tovbbtanak, gy teht ellophatja a jelszt is. Ez a val letben is egy kzismert mdja a jelszavak megszerzsnek (pldaknt lsd [Jimancz 1997] dolgozatt). Ez a fajta veszly teht nagyon is valsgos, gy nyilvnval, hogy az ap3.0 nem llja meg a helyt.
8.4.4.
Hitelestsi protokoll
ap3.1
Az ap3.0 kijavtsra egy kzenfekv tletnk, hogy titkostsuk a jelszt. A jelsz titkostsval megakadlyozhatjuk, hogy Trudy megszerezze Alice jelszavt. Ha felttelezzk, hogy Alice s Bob rendelkezik egy KA_B kzs titkos szimmetrikus kulccsal, akkor Alice mr titkosthatja a jelszavt, s gy kldheti el az t azonost Alice vagyok. zenetet Bobnak, a titkostott jelszavval egytt. Bob
8.13. bra. Trudy a nyilvnos kulcs kriptogrfia segtsgvel eljtssza, hogy Bob
178
8.
SZMTGP-HLZATOK
BIZTONSGA
dekdolja a jelszt, s feltve, hogy a jelsz helyes, hitelesti Alice-t. Bob igen megnyugtatnak tartja Alice hitelessgt, hiszen nem-
8.3. UZEK'HTINTEGRITS
Alice Bob
179
Alice Bob
Hangrgzt (diktafon)
Jells:
8.17. bra. ap3.0protokoll s egy azt kijtsz forgatknyv csak a jelszt ismeri, de a kzs titkos kulcsot is ismernie kellett ahhoz, hogy titkostsa a jelszt. Nevezzk ezt a protokollt ap3. J-nek. Az igaz ugyan, hogy az ap3.1 protokoll megakadlyozza, hogy Trudy hozzfrjen Alice jelszavhoz, a kriptogrfia ilyetn alkalmazsa mgsem oldja meg a hitelests problmjt. Bob visszajtszsos tmadsnak (playback attack) van kitve: elg, ha Trudy egyszeren lehallgatja s megjegyzi a jelsz titkostott vltozatt, majd Alice-nek kiadva magt visszajtssza azt Bobnak. A titkostott jelsz hasznlata az ap3.1 protokollban nem hozott lnyegi vltozst a 8.17. brn lthat ap3.0 protokollhoz kpest.
ap4.0
Az ap3.1 protokollal az a gond, hogy ugyanazt a jelszt hasznljk jra s jra. A problma egyik lehetsges megoldsa lehetne, ha minden alkalommal ms jelszt hasznlnnk. Alice s Bob megegyezhet a jelszavak egy sorozatban (vagy egy algoritmusban, amellyel a jelszavakat ellltjk), s sorra ezeket a jelszavakat hasznlhatjk, mindegyiket csak egyszer. Ezt az tletet valstja meg az S/KEY rendszer (RFC 1760], tvve a jelszsorozat generlsnak Lamport szerinti megoldst (Lamport 1981]. Ahelyett, hogy megelgednnk ezzel a megoldssal, nzznk meg egy ltalnosabb megkzeltst a visszajtszsos tmads megakadlyozsra. A 8.17. brn lthat tmadsra azrt nylik lehetsg, mert Bob nem tudja megklnbztetni Alice eredeti hitelest zenett Alice ksbb visszajtszott hitelest zenettl. Azaz, Bob nem tudhatja, hogy Alice valban ott van-e az sszekttets tloldaln, vagy az zenet, amit kap, csupn egy visszajtszsa Alice egy korbban rgztett hitelestsnek. A nagyon (nagyon) figyelmes Olvasnak eszbe juthat, hogy a hromutas TCP-kzfogsnak ugyanezt a problmt kellett megoldania - a TCP-sszekttets a szerver oldalon nem fogadhatja el az sszekttetst, ha a kapott SYN-szegmens egy korbbi sszekttets SYN-szegmensnek msolata (jrakldse). Hogyan is llaptotta meg a TCP szerver oldala, hogy a kliens valban jelen
180
8. SZMTGP-HLZATOK BIZTONSGA
van-e? Egy nagyon rgta nem hasznlt kezdeti sorszmot vlasztott, ezt elkldte a kliensnek, s vrta, hogy a kliens vlaszoljon egy ACK-szegmenssel, amely ezt a sorszmot tartalmazza. Ugyanezt az tletet tvehetjk, a hitelests cljainak megfeleltetve. A nonce (a number used only once) egy olyan szm, amelyet a protokoll csak egyetlen egyszer hasznlhat. Azaz, ha egyszer a protokoll egy adott nonce-t hasznl, mg egyszer soha tbbet nem fogja ugyanezt a szmot hasznlni. Az ap4.0 protokoll nonce-t alkalmaz, a kvetkezkppen: 1. Alice elkldi az Alice vagyok. zenetet Bobnak. 2. Bob vlaszt egy R nonce-t, s elkldi azt Alice-nck. 3. Alice titkostja a nonce-t a K A_B Alices Bob ltal ismert titkos szimmetrikus kulccsal, majd a titkostott nonce-t, KA_f(R) rtkel visszakldi Bobnak. Csakgy, mint az ap3.l protokoll esetben, az a tny, hogy Alice ismeri a K { H kulcsot, s ezt hasznlja a titkostsra, biztostja Bobot, hogy a kapott
8.13. bra. Trudy a nyilvnos kulcs kriptogrfia segtsgvel eljtssza, hogy Bob
8.3. UZEK'HTINTEGRITS
181
zenetet Alice kldte. A nonce hivatott garantlni, hogy Alice l, azaz jelen van a protokoll futsakor. 4. Bob dekdolja a kapott zenetet. Ha a dekdolt rtk megegyezik az Alicenekkldtt nonce rtkvel, akkor Alice hitelestette magt. Az ap4.0 protokoll futst a 8.18. bra mutatja. Bob azzal, hogy egyszer hasznlatos R szmot alkalmaz, majd ellenrzi a visszakapott K, H ( R ) rtket, biztos lehet mind afell, hogy Alice az, akinek mondja magt (mivel ismeri a titkos kulcsot, amely R titkostshoz kellett), mind afell, hogy lben van jelen (mivel a frissen generlt R nonce-t titkostotta).
ap5.0
A nonce s a szimmetrikus kulcs kriptogrfia egyttes alkalmazsa volt az alapja jl mkd hitelestsi protokollunknak, az p4.-nak. Addik a krds, hogy vajon hasznlhat-e hitelestsre egy nonce (szimmetrikus kulcs kriptogrfia helyett) nyilvnos kulcs kriptogrfia alkalmazsa mellett. A nyilvnos kulcs megkzeltssel megszabadulhatnnk a kzs kulcsokon alapul rendszerekkel kapcsolatban felmerl nehzsgektl - elssorban a kt fl kzti titkos kulcs ltrehozsnak gondjtl. Az apS.O protokoll nyilvnos kulcs kriptogrfit alkalmaz annak analgijra, ahogy az ap4.0 a szimmetrikus kulcs megkzeltst hasznlta.
Bob
Alice
Alice vagyok
1. Alice elkldi Bobnak az Alice vagyok. zenetet. 2. Bob vlaszt egy R szmot, s elkldi Alice-nek. Ne felejtsk, a nonce annak biztostsra szolgl, hogy Alice l, azaz jelen van. 3. Alice a sajt titkos kulcsval titkostja a nonce-t, s az eredmnyt, K j ( R ) rtket elkldi Bobnak. Mivel kizrlag Alice ismeri a titkos kulcsot, senki ms nem tudja kiszmtania K j ( R ) rtkt. 4. Bob Alice K * nyilvnos kulcst hasznlja, hogy a kapott zenet alapjn kiszmtsa a K ] ( K A { R ) ) rtket. A nyilvnos kulcs RSA titkosts 8.2. alfejezetbeli trgyalsbl emlkezhetnk, hogy K \{K 4(R)) = R Azaz, Bob eredmnyl az R szmot kapja, ezzel hitelesti Alice-t. Az apS.O protokoll mkdst mutatja a 8.19. bra. Vajon az ap5.0 ugyanolyan biztonsgos, mint az ap4.0? Mindkett hasznl nonce-t. Mivel az ap5.0 nyilvnos kulcs mdszerekkel dolgozik, Bobnak felttlenl meg kell szereznie Alice nyilvnos kulcst. Ez lehetv teszi azt a 8.20. brn lthat forgatknyvet, amely sorn Trudy megszemlyestheti Alice-t. 1. Alice elkldi Bobnak az Alice vagyok. zenetet. 2. Bob vlaszt egy R szmot, s elkldi Alice-nek. 3. Trudy a sajt Kr titkos kulcsval titkostja a nonce-t, s az eredmnyt, K r { R ) rtket elkldi Bobnak. Bob szmra K r ( R ) zenet pusztn egy halom bit, nem tudhatja, hogy az valjban K ^ ( R ) vagy K : ( R ) . 4. Bobnak most meg kell szereznie Alice nyilvnos kulcst, hogy a kapott rtket K \ segtsgvel dekdolhassa. Kld egy zenetet Alice-nek, amelyben elkri a A", kulcsot (Bob akr Alice weboldalrl is letltheti a kulcsot). Trudy ezt az zenetet is elfogja, s K ] kulcsot, azaz Trudy sajt nyilvnos kulcst kldi Bobnak vlaszknt. Bob kiszmtja a K ' r { K r ( R)) rtket, s gy hitelesti Trudyt, mint Alice-t! Ebbl a forgatknyvbl vilgosan ltszik, hogy az apS.O protokoll csak annyira lehet biztonsgos, amennyire a nyilvnos kulcsok terjesztse biztonsgos. Szerencsre, ahogy a 8.3. alfejezetben lttuk, tanstvnyok alkalmazsval biztonsgoss tehet a nyilvnos kulcsok terjesztse.
%
Alice v a g y o k
hitelesti Alice-t
Alice vagyok
KT'(Kfm = R.
Alice-knt hitelesti Trudyt
8.20. bra. Egy biztonsgi rs az ap5.0 protokollban A 8.20. bra szerinti forgatknyv esetn Alice s Bob egyttesen vgl rjhetnek, hogy valami nem stimmel, mivel Bob azt lltja majd, hogy Alice-szel kommuniklt, Alice viszont tudja, hogy soha nem lpett kapcsolatba Bobbal. Ltezik egy mg alattomosabb tmads, amely mg ezt a leleplezdst is elkerli. A 8.21. brn lthat forgatknyvben Alice s Bob egymssal beszl ugyan, de a hitelestsi protokollban lv biztonsgi rs kihasznlsval Trudy tltszan (transzparens mdon) bekeldhet Alice s Bob kz. Mgpedig azltal, hogy amikor Bob a Trudytl kapott kulccsal titkostott adatot kld Alice-nek, Trudy meg tudja fejteni a Bobtl Alice-nek kldtt zenetek nylt szvegt. Ugyanekkor Trudy tovbbtja Bob zenett Alice-nek, miutn azt Alice valdi nyilvnos kulcsval jra titkostotta. Bob rl, hogy titkostva kldheti az adatokat, s Alice is rl, mert a sajt nyilvnos kulcsval titkostva kapja az zeneteket, egyikk sem sejti Trudy jelenltt. Ha Bob s Alice ksbb tallkoznak is, s beszlnnek az zenetvltsrl, mindent rendben tallnak majd, mivel Alice pontosan megkapta, amit Bob kldtt neki. Az imnti plda az gynevezett kzbekeldses (man-inthe-middle) tmads egy pldja. (Fontosabban, esetnkben woman-in-the-middle tmadsrl beszlhetnk.) Nha llnc (bucket-brigade )1 tmadsnak is nevezik ezt a fajta tmadst, mivel Trudy ahhoz hasonlan tovbbtja az adatokat, ahogy tzoltskor a vizesvdrket adjk kzrl kzre egy llncon keresztl, ha a vzforrs tvol van.
Az elz nhny fejezetben sorra vettk a hlzatbiztonsg legalapvetbb krdseit, gymint a szimmetrikus s nyilvnos kulcs kriptogrfit, a vgponthitelestst, a kulcsok sztosztst, az zenetintegritst s a digitlis alrsokat. Most azt vizsgljuk majd, hogyan lehet ezekkel az eszkzkkel az internetet biztonsgoss tenni. rdekes mdon az
185
%
8. SZMTGP-HLZATOK BIZTONSGA
<
Alice
vagyok
Alice vagyok
Alice K (X) dekdolsval megkapja az Xzenetet udy dekdolja a K}+(X) zenetet, ~(K*{X)) kiszmtsval megkapja X rtket, majd titkostja az X zenetet Kj kulccsal s elkldi Alicenek K~{X)- 1.
Bob az X zenete t kldi, Kj kulccsal titkostv a
8.21. bra. Kzbekeldses tmads internet protokollkszletnek fels ngy rtege kzl brmelyikben lehetsges biztonsgi szolgltatst nyjtani. Ha a biztonsgot egy alkalmazsi rtegbeli protokoll nyjtja, akkor a biztonsgi szolgltatsokat, mint pldul titkossgot, hitelestst vagy zenetintegritst, csak az adott, ezt a protokollt hasznl alkalmazs veszi ignybe. Ha a szlltsi rteget tesszk biztonsgoss, akkor minden alkalmazs, amely a protokollt hasznlja, lvezi a szlltsi rteg biztonsgi szolgltatsait. Amikor a biztonsg hoszt-hoszt alapon a hl zati rtegben valsul meg, akkor minden szlltsi rtegbeli szegmens (gy az alkalmazsi rteg adatai is) hasznlja a hlzati rteg biztonsgi szolltatsait. Ha pedig adatkapcsolati alapon nyjtunk biztonsgot, akkor az adatkapcsolat biztonsgi szolgltatsai minden, az adatkapcsolaton keresztl tovbbtott keretben tallhat adatra vonatkoznak. A 8.5-8.8. alfejezetekben megvizsgljuk, hogy a hlzatbiztonsg eszkzei hogyan hasznlhatk az alkalmazsi, szlltsi, hlzati s adatkapcsolati rtegben. A knyv ltalnos felptst kvetve, a protokollkszlet tetejrl indulunk, s az alkalmazsi rteg biztonsgt vizsgljuk elszr. Egy esettanulmnyon, mgpedig az elektronikus levelezsen mint konkrt alkalmazson keresztl mutatjuk be az alkalmazsi rteg biztonsgt. Ez utn haladunk lefel a protokollkszletben. Megvizsgljuk majd az SSL protokollt (amely
186
8.
SZMTGP-HLZATOK
BIZTONSGA
a szlltsi rtegben nyjt biztonsgot) az IPsec protokollt (amely a hlzati rteget teszi biztonsgoss) s az IEEE 802.11 vezetk nlkli LAN protokollt. Felmerlhet a krds, hogy a biztonsgi funkcikat mirt valstjk meg az internet tbb rtegben is. Nem lenne elg a hlzati rtegben nyjtani a biztonsgi szolgltatsokat, s akkor ksz is lennk az egsszel? Kt vlasz is adhat erre a krdsre. Elszr is, br a hlzati rteg teljes lefedettsget nyjt azzal, hogy a datagramokban lv adatokat (azaz szlltsi rtegbeli szegmenseket) titkostja s hitelesti a forrs IP-cmt, a felhasz nlk szintjn nem tud biztonsgot garantlni. Pldul egy kereskedelmi weboldal nem bzhat az 1 Prteg biztonsgban, amikor egy vsrlt szeretne hitelesteni, aki ppen egy, az adott weboldalon lv termket szeretne megvsrolni. Szksg van teht mind a hlzati rteg teljes lefedettsgre, mind a felsbb rtegekben nyjtott biztonsgi funkcikra. Msodszor pedig j internetes szolgltatsokat, belertve a biztonsgi szolgltatsokat is, mindig egyszerbb a protokollkszlet fels rtegeiben megvalstani. Mikzben arra vrunk, hogy a biztonsg szles krben megvalsuljon a hlzati rtegben, amely hossz vekig eltarthat mg, szmos alkalmazsfejleszt teszi a dolgt, s kedvenc alkalmazst elltja biztonsgi funkcikkal. Klasszikus pldja ennek a Pretty Good Privacy (PCP), amely biztonsgos e-mail szolgltatst nyjt (amelyet a fejezet ksbbi rszben trgya lunk). Mivel csupn egy kliens- s egy szerveralkalmazs kellett hozz, a PGP volt az egyik els, az interneten szleskren elterjedt biztonsgi megolds.
lehetetlenl nehz elolvasni az zenetet. Br a megolds egyszer, megvan az az 8.4. VGPONT -HITELESTS 187 alapvet nehzsge, amelyet a 8. 2. fejezetben mr kifejtet
188
8.
SZMTGP-HLZATOK
BIZTONSGA
tnk - gy kiosztani a szimmetrikus kulcsot, hogy az kizrlag Alice s Bob birtokba juthasson. gy termszetes, hogy egy msik megkzeltsre is gondolhatunk, mgpedig a nyilvnos kulcs kriptogrfira (pldul RSA hasznlatra). A nyilvnos kulcs megkzelts esetn Bob nyilvnossgra hozza a publikus kulcst (pldul a szemlyes weblapjn vagy egy kulcsszcrveren), Alice az zenett Bob nyilvnos kulcsval titkostja, s elkldi a titkostott zenetet Bob email cmre. (A titkostott zenetet MIME-fejlccel tovbbtjk egyszer SMTP protokoll segtsgvel, ahogy a 2.4. alfejczetben lttuk.) Ami kor Bob megkapja az zenetet, egyszeren dekdolja azt a titkos kulcsval. Feltve, hogy Alice biztosan tudja, hogy a nyilvnos kulcs Bob nyilvnos kulcsa (s amennyiben a kulcs elgenden nagy), ez a megkzelts egy kitn mdszer a kvnt titkossg biztostsra. Gondot jelent azonban, hogy a nyilvnos kulcs titkosts nem tl hatkony, klnsen hossz zenetek esetben. (A hossz e-mail zenetek manapsg nem ritkk az interneten, hla a mellkleteknek, kpeknek, videknak.) Ahhoz, hogy thidaljuk a hatkonysggal kapcsolatos problmt, hasznljunk viszonykulcsot (lsd 8.2.2. alfejezet). Esetnkben Alice (I) vlaszt egy Ks vletlen szimmetrikus viszonykulcsot, (2) titkostja az ni zenett ezzel a szimmetrikus kulccsal, (3) titkostja a szimmetrikus kulcsot Bob nyilvnos K's kulcsval, (4) sszefzi a titkostott zenetei s a titkostott szimmetrikus kulcsot, ezzel kszt egy csomagot, vgl (5) elkldi Bob e-mail cmre a csomagot. Az egyes lpseket a 8.22. bra is mutatja. (Ezen, s tovbbi brkon a krbe irt + az sszefzs, mg a krbe rt a sztvlaszts jele.) Amikor Bob megkapja ezt a csomagot, ( 1) a K[{ tilkos kulcsnak segtsgvel kiszmtja a Ks szimmetrikus kulcsot, majd (2) a Ks szimmetrikus kulcsot hasznlja az m zenet dekdolsra. Azutn, hogy terveztnk egy titkossgot biztost levelezrendszert, tervezznk most egy olyan rendszert, amely egyarnt biztostja a kld hitelessgt s az zenet integritst. Tegyk fel most egy rvid idre, hogy Alice s Bob nem foglalkoznak a titkossggal (mindenkinek el szeretnek mondani, hogy mit reznek!), s csak a kld hitelestse s az zenet integrits rdekli ket. Ahhoz, hogy eleget tegynk ennek a feladatnak, digitlis alrsokat s zenetpecsteket fogunk alkalmazni, ahogy a 8.3. alfejezetben bemutattuk. Konkrtan, Alice (1) egy H hash fggvny (pldul MD5) segtsgvel kszt egy pecstet az m zenetrl, ezutn (2) alrja az eredmnyt a titkos K~ kulcsval, gy kszt egy digitlis alrsi, (3) az eredeti (nylt szveg) zenethez hozzfzi az alrst, ezzel kszt egy csomagot, vgl (4) ezt a csomagot elkldi Bobnak. Amikor Bob megkapja a csomagot,
Internet
K e
Kg (K$)
KB(KS )
KH-)
8.4. VGPONT-HITELESTS
189
m ()
KA
()
KA (H(m))
KA ( H(m))
Interne t
m
Alice elkldi az
m e-mail zenetet
Bobmegkapja az
m zenetet
Internet fel
biztostshoz Alice szimmetrikus kulcs titkostst, nyilvnos kulcs kriptogrfit, egy hash fggvnyt s digitlis alrst hasznl
dig Bob nyilvnos kulcsval. Hasonlan Bob is ktszer vgez nyilvnos kulcs kriptogrfiai mveletet - egyszer a sajt titkos kulcsval, egyszer pedig Alice nyilvnos kulcsval. A 8.24. brn sszefoglalt eljrs a legtbb e-mail felhasznl szmra, az esetek nagy tbbsgben valsznleg kielgt biztonsgot nyjt. Mg egy fontos problmt azonban meg kell oldanunk. A 8.24. bra szerinti mdszer mkdshez Alice-nek tudnia kell Bob nyilvnos kulcst. Bobnak pedig ismeri kell lice nyilvnos kulcst. Ezen nyilvnos kulcsok terjesztsnek mdja nem nyilvnval. Pldul Trudy eljtszhatja Bob szerept, s odaadhatja Alice-nek a sajt nyilvnos kulcst, mondvn, hogy az Bob nyilvnos kulcsa, ezzel pedig hozzjuthat a Bobnak sznt zenetekhez. A nyilvnos kulcsok biztonsgos terjesztsnek elterjedt mdszere, hogy a nyilvnos kulcsokat CA segtsgvel tanstjuk, ahogy azt a 8.3. alfejezetben lttuk.
Egy kis trtnelem Phil Zimmermann s a PGP Philip R. Zimmermann a Pretty Good Privacy (PGP) megalkotja. Ezrt a tettrt egy hrom vig tart bngyi nyomozs gyanstottjv vlt, mivel a kormny gy gondolta, hogy azzal, hogy az 1991-ben szabad szoftverknt trtn publiklst kveten a PGP vilgszerte elter jedt, megsrtette az USA kriptogrfiai szoftverekre vonatkoz exportszablyozst. Miutn a PGP szabad felhasznls szoftverknt jelent meg, valaki kitette a/, internetre, s gy klfldiek is letltttk. A kriptogrfiai programok az Egyeslt llamok szvetsgi trvnye szerint hadi felszerelsnek minslnek, gy tilos az exportjuk. A kormnyzati kzbeavatkozsok dacra, s annak ellenre, hogy hinyzott a tkeer, a fizetett munkaer s a vllalati httr is, a PGP a vilg legelterjedtebb levelezstitkostsra szolgl szoftvere lett. Furcsa md Zimmermann gyvel a kormnyzat valsznleg akaratlanul is hozzjrult a PGP elterjedshez. 1996 elejn a kormny elejtette a vdat. A hr bejelentst rmmel fogadtk az internet aktivisti. Zimmermann esete a hatalmas kormnyzattal szemben a jogairt kzd rtatlan ember trtnete lett. A kormnyzat meghtrlsa rmmel nyugtzott hr volt, rszben a Kongresz- szus az internet cenzrzsrt folytatott kampnya, s az FBI a kormnyzati lehallgatsok szlesebb kr engedlyezsre irnyul nyomsgyakorlsa miatt. Miutn a kormny ejtette az gyet, Zimmermann megalaptotta a PGP Inc. vllalatot, ame lyet 1997. decemberben megvsrolt a Network Associates. Zimmermann jelenleg fggetlen kriptogrfiai szakrtknt dolgozik.
8.5.2. PGP
A Pretty Good Privacy (elg jl vdett szemlyes adatok, PGP) nev, e-mail zenetek titkostsra szolgl szoftvert Phil Zimmermann rta 1991-ben, s ez vlt a terlet defac- to szabvnyv. A PGP weboldala tbb mint egymilli krst szolgl ki havonta 166 orszg felhasznli szmra [PGPI 2007). A PGP klnbz verzii nyilvnosan hozzfrhetk; a PGP nemzetkzi honlapjrl (International PGP Home Page [PGPI 2007)) letlthetjk pldul a kedvenc platformunkon fut szoftvert, de rengeteg rdekes olvasmnyt is tallunk itt. (A PGP alkotjtl egy meglehetsen rdekfeszt rs a [Zimmermann 2007).) A PGP-nek ltezik kereskedelmi vltozata is, s sok levelez kliensalkalmazs is tartalmazza bvtmnyknt, mint pldul a Microsoft Exchange s Outlook. A PGP konstrukcija lnyegben ugyanaz, mint amit a 8.24. brn bemutattunk. A PGP az adott
verzitl fg-
BEGIN PGP SIGNED MESSAGE ------------Hash: SHA1 Bob: Lthatlak ma este? Szenvedlyes szerelemmel, Alice BEGIN PGP SIGNATURE----------Version: PGP fr Personal Privacy 5.0 Charset: noconv yhHJRHhGJGhgg/12EpJ+lo8gE4vB3mqJhFEvZP9t6n7G6m5Gw2 END PGP SIGNATURE-----------8.25. bra. Egy alrt PGP-zenet
gen az MD5- vagy SHA-algortanssal szmtja az zenetpecstet; szimmetrikus kulcs titkostsra a CAST, 3DES vagy IDFA kzl valamelyiket, publikus kulcs titkostsra pedig az RSA-algoritmust hasznlja. Ezen tlmenen a PGP adattmrtst is vgez. Amikor egy felhasznl telepti a PGP programot, a szoftver generl szmra egy kulcsprt. A nyilvnos kulcsot a felhasznl kiteheti a weboldalra, vagy elhelyezheti egy nyilvnos kulcsszerveren. A titkos kulcsot jelszval vdik. Ezt a jelszt mindig meg kell adni, akrhnyszor a felhasznl a titkos kulcsot hasznlja. A PGP felknlja a felhasznlnak, hogy digitlisan alrja vagy titkostsa, vagy egyszerre digitlisan alrja s titkostsa az zenetet. A 8.25. brn lthat egy alrt PGP-zenet. Ez maga az zenet, amely a MIM fejlcet kveten megjelenik. Az zenet kdolt rsze K ,(//(m)), vagyis az zenet alrt lenyomata. Ahogy fent kifejtettk, ahhoz, hogy Bob ellenrizni tudja az zenet integritst, hozz kell frnie Alice nyilvnos kulcshoz. A 8.26. bra egy titkostott PGP-zenetet mutat. Ez az zenet szintn a MIMEfejlcet kveti. Termszetesen a nylt zenetet a titkostott levl nem tartalmazza. Amennyiben egy kld (pldul Alice) titkossgot s zenetintegritst is szeretne, akkor a PGP-zenet egy a 8.26. brn lthathoz hasonl zenetet tartalmaz a 8.25. brn lthat zenet rszeknt.
BEGIN PGP MESSAGE----------Version: PGP fr Personal Privacy 5.0 u2R4d+/jKmn8Bc5+hgDsqAewsDfrGdszX681iKm5F6Gc4sDfcXyt RfdSIOjuHgbcfDssWe7/K=lKhnMikLo0+l/BvcX4t==Ujk9PbcD4 Thdf2awQfgHbnmKlok8iy6gThlp END PGP MESSAGE
8.26. bra. Egy titkos PGP-zenet
A PGP gondoskodik a nyilvnos kulcs tanstvnyok kezelsrl is, azonban a hagyomnyos CA helyett egy attl lnyegesen eltr megoldst alkalmaz. A PGP nyilvnos kulcsait egy bizalmi hl tanstja. Alice maga is tansthatja egy kulcs/felhasznlnv pr sszetartozst, amennyiben gy gondolja, hogy a pr valban sszetartoz. Ezenkvl a PGP azt is megengedi, hogy Alice kijelentse, hogy megbzik tovbbi kulcsok egy msik telhasznl ltal lltott hitelessgben. Nhny PGP-felhasznl kulcsalr sszejveteleket is tart, s ott rjk al egyms kulcsait. A felhasznlk ilyenkor fizikailag sszegyl nek, kicserlik a
alrsval tanstjk azokat. A PGP nyilvnos kulcsait nyilvnos PGPkulcsszerverek (PGP public key servers) is terjesztik az interneten keresztl. Amikor a felhasznl egy ilyen szervernek elkldi a kulcst, a szerver eltrol belle egy pldnyt, egy pldnyt elkld az sszes tbbi nyilvnos kulcsszervernek is, s azutn brkinek odaadja a kulcsot, aki csak kri. Br vannak kulcsalr sszejvetelek s nyilvnos PGP-kulcsszerverek, mgis a leggyakoribb mdja a nyilvnos kulcs terjesztsnek, hogy a felhasznlk kzz teszik azt a szemlyes weboldalukon vagy e-leveleikben hirdetik.
Vgl pedig, ha a szervert nem hitelestik, egy szerver kiteheti az Alice Zrt. jl ismert lgjt az oldalra, mikzben azt valjban Trudy zemelteti, aki gy tesz, mintha az Alice Zrt. lenne. A rendels felvtele utn Trudy zsebre teheti a pnzt, s eltnhet. Vagy Trudy ellophatja Bob szemlyazonossgt azzal, hogy begyjti a nevt, cmt s hitelkrtyaszmt.
Az SSL elejt veszi ezeknek a problmknak azzal, hogy a TCP-sszekttetseket felruhzza titkossggal, adatintegritssal, szerverhitelestssel s klienshitelestssel. Az SSL protokollt gyakran HTTP felett zajl tranzakcik biztostsra hasznljk. Mivel azonban az SSL a TCP-sszekttetseket teszi biztonsgoss, brmely TCP felett fut alkalmazs hasznlhatja. Az SSL egy egyszer programozi interfszt (Application Programmer Interface, API) nyjt, amely sok hasonlsgot mutat a TCP programozi interfszvel. Ha egy alkalmazs az SSL-t szeretn hasznlni, akkor az alkalmazs betlti az SSL-osztlyokat/knyvtrakat, amelyek a fejleszt szmra az SSL-szoketinterfszt nyjtjk. Ahogy a 8.27. bra mutatja, annak ellenre, hogy az SSL technikailag az alkalmazsi rtegben helyezkedik el, a fejleszt szempontjbl ez egy olyan szlltsi protokoll, amely a TCP szolgltatsait nyjtja, kiegsztve biztonsgi szolgltatsokkal.
Kzfogs
A kzfogs fzis alatt Bobnak (a) fel kell ptenie egy TCP-sszekttetst Aliceszel, (b) ellenriznie kell, hogy Alice valban Alice, s (c) el kell kldenie Alice-nek egy titkos mcsterkulcsot (master key), amelybl majd Alice s Bob is elllthatja az SSL-viszony- hoz szksges szimmetrikus kulcsokat. Ezt a hrom lpst mutatja a 8.28. bra. Megjegyezzk, hogy amint a TCP-sszekttets felplt, Bob egy hello zenetet kld Alice-nek.
Alkalmazsi SSL-szoket Alkalmazsi TCP-szoket TCP IP
SSL-alrteg TCP-szoket TCP IP
'Alkalmazsi rteg
1 A fordt megjegyzse: A szerz ltal hasznlt elnevezs nem szerencss, mivel az igazi SSL Handshake a kulcsszrmaztatst is magban foglalja.
TCP API
SSL hello
(c)
Mestertitok (MS) generlsa EMS dekdolsa -val, hogy megkapjuk MSt
8.28. bra. A majdnem-SSL-kzfogs Alice vlaszul elkldi a tanstvnyt, amely tartalmazza a nyilvnos kulcst. Ahogy a 8.3. alfejezetben rszleteztk, Bob biztos lehet benne, hogy ez a nyilvnos kulcs Alice kulcsa, mivel a tanstvnyt egy CA lltotta ki. Bob ezutn generl egy mestertitkot (Master Secret, MS) (amelyet kizrlag ennl az SSL-viszonynl (SSL session) hasznl), titkostja az MS-titkot Alice nyilvnos kulcsval, ezzel ltrehozza a titkostott mestertitkot (Encrypted Master Secret, EMS), majd elkldi az EMS-t Alice-nek. Alice a titkos kulcsval dekdolja az EMS-t, s gy megkapja az MS-titkot. A fzis lezrultval Bob hitelestette Alice-t, s mind Alice, mind Bob (de ms nem) ismeri az SSL-viszony mestertitkt.
Kulcsszm! azt a t s
Elvileg minden tovbbi titkosts s adatintegrits-ellenrzs trtnhetne az Alice s Bob kzs MS-mestertitknak szimmetrikus kulcsknt val hasznlatval. ltalban viszont biztonsgosabbnak tartjuk, ha Alice s Bob ms-ms kulcsokat hasznl, tovbb klnbz kulcsokat hasznlnak titkostsra s integrits-ellenrzsre is. Alice s Bob az MS-titkot teht arra hasznlja, hogy ngy kulcsot lltson belle el: E B = a viszony titkost kulcsa a Bobtl Alice-nek kldtt adatokra, M B = a viszony MAC-kulcsa a Bobtl Alice-nek kldtt adatokra, E A = a viszony titkostkulcsa az Alice-tl Bobnak kldtt adatokra, M A = a viszony MAC-kulcsa az Alice-tl Bobnak kldtt adatokra. Alice s Bob egyarnt kiszmtjk a ngy kulcsot az MS-titokbl. Ezt megtehetnk gy is, hogy egyszeren ngy rszre daraboljk az MS-titkot. (Ltni fogjuk azonban, hogy az igazi SSL kicsit bonyolultabban jr el.) A kulcsszrmaztatsi fzis vgn Alice s Bob is rendelkezik ugyanazzal a ngy kulccsal. Ezek kzl a kt tikostkulcsol adatok titkostsra, a msik kett MAC-kulcsot pedig adatintegrits ellenrzsre fogjk hasznlni.
Adattovbbts
Most, hogy Bob mr biztosan tudja, hogy Alice-szel beszl, s mindketten ismerik a ngy kzs viszonykulcsot (E B ,M B ,E A s M, x ) elkezdhetnek a TCP-sszekttetsen keresztl biztonsgosan adatokat kldeni egymsnak. Mivel a TCP egy bjtalap protokoll, kzenfekv lenne az a megkzelts, hogy az alkalmazs adatait egybl titkostsa az SSL, majd a titkostott adatot kapsbl adja tovbb a TCP-nek. Viszont ha ezt tennnk, akkor hova tennnk az integrits-ellenrz MAC-kdot? Bizonyra nem szeretnnk megvrni a TCP-vi- szony lezrst, hogy egyszerre ellenrizhessk Bob minden adatnak az integritst, amelyet Bob a viszony fennllstl kezdve kldtt. A problma megoldsaknt az SSL az adatfolyamot rekordokra bontja, kiegszti a rekordokat integrits-ellenrz MAC-kddal, majd titkostja a rekord+MAC egyttest. A MAC kiszmtshoz Bob veszi a rekord adatnak s az M lt kulcs egyttes hashrtkt pontosan gy, ahogy a 8.3. alfejezetben lttuk. A rekord+MAC csomag titkostshoz ezutn a viszony B titkost kulcst hasznlja. Vgl ez a titkostott csomag kerl szlltsra a TCP segtsgvel az interneten keresztl. Br a fenti megkzelts sok mindenre j, mgsem golyll, ha az egsz adatfolyam integritsnak biztostsrl van sz. Nzzk azt az esetet, amikor Trudy kzbekeldik (woman-in-the-middle) s kpes az Alice s Bob kztt kldtt TCPszegmensek sorozatba ms szegmenseket kzbeszrni vagy abbl szegmenseket trlni vagy msra cserlni. Trudy pldul elfoghat kt szegmenst, amelyet Bob kldtt Alice-nek, megcserlheti ezek sorrendjt, a TCP-sorszmokat ennek megfelelen be tudja lltani (hiszen ezek nem tit- kostottak), s a kt szegmenst ezutn fordtott sorrendben elkldheti Alice-nek. Nzzk meg, hogyan dolgozn fel ezeket a szegmenseket Alice, feltve, hogy a TCP-szegmensek pontosan egy rekordot tartalmaznak: 1. Az Alice-nl futtatott TCP protokoll mindent rendben tallna, s tovbbtan a kt rekordot az SSL-alrtegnek. 2. Alice oldaln az SSL dekdoln a kt rekordot. 3. Alice oldaln az SSL a MAC segtsgvel ellenrizn mindkt rekord integritst. 4. Az SSL ezutn a dekdolt bjtfolyamot tovbbadn az alkalmazsi rtegnek. Ekkor azonban az Alice ltal kapott teljes bjtfolyam a kl megcserlt rekord miatt rossz sorrendben rkezne meg! Gondoljunk vgig ehhez hasonl tovbbi forgatknyveket, amelyek sorn Trudy trl, vagy visszajtszik szegmenseket. Bizonyra kitallta az Olvas, hogy a sorszmok hasznlata knl megoldst a prob lmra. Az SSL is ezt teszi, mgpedig a kvetkezkeppen. Bob nyilvntart egy sorsz mot, amelyet nullrl indt, s minden egyes elkldtt SSL-rckord utn megnveli eggyel. Maga a rekord nem tartalmazza a sorszmot, ehelyett Bob a MAC szmtsakor a sorszmot is figyelembe veszi a hitelest kd meghatrozshoz. A MAC teht az adat s az M H MAC-kulcs s a helyes sorszm hash rtke lesz. Alice is kveti Bob sorszmozst, gy ellenrizheti az egyes rekordok adatainak integritst, ha a MAC meghatrozsakor is beszmtja a megfelel sorszmot. Az SSLsorszmok ilyetn alkalmazsa megakadlyozza Trudyt abban, hogy kzbekeldses tmadst hajtson vgre, pldul sszekeverjen vagy visszajtsszon szegmenseki. (Mirt is?)
Adat
MAC
Az
SSL-rekord
Az SSL-rekord (SSL record) (ugyanez a majdnem-SSL-rekord is) a 8.29. brn lthat. A rekord tpus-, verzi-, hossz-, adat- s M AC-mezket tartalmaz. Meg kell jegyeznnk, hogy az els hrom mez nem titkostott. A tpusmez jelzi, hogy a rekord egy kzfogs- (hands- hake) zenet, vagy az alkalmazs adatt tartalmaz zenet. Ahogy ksbb ltjuk majd, az SSL-viszony lezrsra is ez szolgl. A vev oldalon az SSL a hosszmez segtsgvel nyeri ki az SSL-rekordokat a bejv TCPbjtfolyambl. A verzimez jelentse magtl rtetd.
SSL-kzfogs
Az SSL nem ktelezi Alice-t s Bobot, hogy egy bizonyos szimmetrikus kulcs algorit must, egy adott publikus kulcs eljrst vagy egy konkrt MAC-kdot hasznljon. Az SSL ehelyett lehetv teszi, hogy Alice s Bob az SSL-viszony kezdetekor, a kzfogs fzisban megllapodjanak a hasznlt kriptogrfiai algoritmusokban. Ezentl a kzfogs fzisban Alice s Bob frissen generlt vletlen szmokat is kldenek egymsnak, amelyek a viszonykulcsok (E B ,M B ,E A s M A ) szmtsnl tesznek szolglatot. A valdi SSL-kz- fogs (SSL handshake) lpsei az albbiak: Az utbbi kel lps arra szolgl, hogy megvdje a kzfogsi fzist az illetktelen kzbeavatkozstl. Hogy lssuk ennek szksgt, figyeljk meg, hogy az els lpsben a kliens jellemzen felajnl egy sor algoritmust, amelyek kzl egyesek ersek, msok gyengbbek. Mivel az algoritmusokban s a kulcsokban mg nem egyeztek meg, ezt a listt nylt szvegknt kldik el. Trudy, ha kzbekeldik (woman-in-the-middle), az ersebb algoritmusokat trlheti a listrl, ezzel arra knyszerten a szervert, hogy egy gyenge algoritmust vlasszon. Ezt a fajta tmadst megakadlyozand, az 5. lpsben a kliens ssze fzi az sszes kldtt s vett kzfogszenetet, s elkldi az ezen szmtott MAC-rtket. A szerver sszevetheti ezt a MAC-rtket az ltala kldtt s vett kzfogszeneteken sz mtott MAC-kddal. Ha a szerver eltrst tapasztal, lezrja az sszekttetst. Hasonlan a szerver is elkldi az ltala ltott kzfogszeneteken szmtott MAC-kdot, gy a kliens is elvgezheti az ellenrzst.
Az sszekltets bontsa
Egy id utn vagy Alice, vagy Bob vget szeretne majd vetni az SSL-viszonynak. Ennek egyik lehetsges mdja az lenne, ha Bob egyszeren az alapul szolgl TCP bontsval fejezn be az SSL-viszonyt, azaz Bob kldene egy TCP FIN szegmenst Alice-nek. Ez a naiv megkzelts azonban alkalmas terepet teremtene a csonktsos tmadshoz (trun- cation nttack), amelynek sorn Trudy, ismt kzbekeldve, egy fennll SSL-viszonyt TCP FIN kldsvel id eltt lezrhatna. Ha Trudy ezt megtehetn, akkor Alice azt hihet- n, hogy minden adatot megkapott Bobtl, pedig valjban csak egy rsze rkezett meg. A problmra az nyjt megoldst, hogy a tpusmez jelzi, hogy a rekord az SSL-viszony lezrst jelenti-e. (Annak ellenre, hogy az SSL-tpusmezt nyltan kldik, a vev a rekord MAC-kdjnak segtsgvel hitelesti azt is.) Egy ilyen mez bevezetse nyomn, ha Alice kapna egy T CP FIN szegmenst azeltt, hogy egy zr SSL-rekord rkezett volna, tudn, hogy valaki megprblja megtrflni. Ezzel lezrjuk az SSL protokoll bemutatst. Lthattuk, hogy szmos kriptogrfiai alapelemet felhasznl a 8.2. s 8.3. alfejezetben trgyaltak kzl. Ha az Olvas mg mlyebben szeretne megismerkedni az SSL protokollal, akkor figyelmbe ajnljuk Rescorla SSL-rl szl igen olvasmnyos knyvt (Rescorla 2001].
forrscmrl, hitelesti a forrst azzal, hogy megbizonyosodik arrl, hogy az IP-datagramot valban az adott cmmel rendelkez hoszt kldte. Egy ilyen szolgltats megakadlyozza az IP-cmek hamistst. Az IPsec protokollkszlet kt alapvet protokollbl ll: a hitelest fejrszprotokoll (Authcntication Header, AH Protocol), valamint a begyazott biztonsgos adatmez (Encapsulation Security Payload, ESP Protocol) protokoll. Amikor egy forrshoszt biztonsgosan kld datagramokat egy clhosztnak, akkor azt vagy az AH, vagy az ESP protokoll segtsgvel teszi. Az AH protokoll biztostja a forrs hitelessgt s az adatok integritst, de nem biztostja a titkossgot. Az ESP protokoll egyarnt garantlja a forrshitelestst, az adatintegritst s a titkossgot. Mivel tbb szolgltatst nyjt, az ESP protokoll nyilvn bonyolultabb is, s tbb szmtst ignyel, mint az AH protokoll. Mieltt megindulna a forrs s a cl hoszt kztt a biztonsgos datagramok kldse, az AH s az ESP protokoll egyarnt lefuttat egy kzfogst, s ltrehoz egy hlzati szint logikai sszekttetst. Ez a logikai csatorna a biztonsgi sszekttets (security asso- ciation, SA). Az IPsec teht az internet sszekttets nlkli hlzati rtegt egy logikai sszekttetsekkel rendelkez rtegg alaktja t. Az SA ltal meghatrozott logikai kapcsolat szimplex sszekttets, azaz egyirny. Ha mindkt hoszt szeretne biztonsgos datagramot kldeni a msiknak, akkor kt SA-t (vagyis logikai sszekttetst) kell felptenik, mindkt irnyra egyet-egyet. Egy SA azonostsra egy 32 bites, biztonsgi paramtereket cmz index (Security Paramter Index, SPI) nev azonost szolgl. A gyakorlatban minden IPsec-datagram fejrsze tartalmaz egy SPI-mezt. Az ugyanahhoz az SA-hoz (vagyis ugyanahhoz a logikai sszekttetshez) tartoz datagramok mind ugyanazt az SPI-indexet tartalmazzk.
Kvetkezfejrsz-mQZ. Ugyanaz a szerepe, mint egy hagyomnyos datagram esetben a protokoll meznek. Azt jelzi, hogy az AH-fejrszt kvet adat egy TCPszeg- mens, vagy egy UDP-szegmens, vagy egy lCMP-szegmens stb. (Ne feledjk, hogy az IP-fcjrsz protokoll mezje most az AH-protokoll hasznlatt jelzi, gy nem azonosthatja a szlltsi rtegbeli protokollt.) Security Paramter Index (SP1) mez. Egy tetszleges 32 bites szm, amely a biztonsgi protokollt is figyelembe vve, egyrtelmen azonost egy SA-t. Sorszm mez. Ez a 32 bites mez a datagram sorszmt tartalmazza. Kezdeti rtke az SA felptsekor 0. A sorszmot az AH protokoll (az SSL-hez hasonlan lsd 8. 6. alfejezet) visszajtszsos s kzbekeldses tmadsok megakadlyozsra alkalmazza. Hitelestsiadat-mez. Egy vltoz hosszsg mez, amely a datagramra szmtott MAC-kdot tartalmazza. A MAC-kdot az eredeti IP-datagramon s az AH fejrszmezin szmtjk (kivve az IP TTL-mezjt, s az AH hitelestsiadatmezjt) a kzs titkos kulcs segtsgvel. A MAC meghatrozst az IPsec HMAC (lsd 8.3. altejezet) szerint vgzi, az SA ltal elrt hash-fggvny alkalmazsa mellett (pldul MD5 vagy SI IA-1). Amikor a cmzett hoszt egy AH-fejrsszel elltott IP-datagramot kap, meghatrozza a datagramra vonatkoz SA-t, majd a hitelestsiadat-mez alapjn ellenrzi a datagram integritst s hitelesti a forrst.
Protokoll = 51
8.30. bra. Az AH-fejrsz elhelyezkedse egy IP-datagramon bell mokat kldeni a clhosztnak. Ahogy a 8.31. brn is lthat, a biztonsgos datagram gy kszl, hogy az eredeti IP-datagram adatmezjt elltjk fejrsszel s farokrsszel, majd ez a begyazott adat kerl egy IP-datagram adatmezjbe. Az IP-datagram protokollme- zjben az 50-es rtk hivatott jelezni, hogy a datagram ESP fej- s farokrszt tartalmaz. Ha a cmzett hoszt kap egy IPdatagramot, szreveszi, hogy a protokollmez rtke 50, s az ESP protokollnak megfelelen dolgozza azt fel. Az eredeti IP-datagram adatmezje az ESPfarokrsszel egytt titkostva van, ahogy a 8.31. brn is lthat. Az ESP-fejrsz egy 32 bites SPI-mezbl s egy 32 bites sorszmmezbl ll, amelyeknek pontosan ugyanaz a szerepe, mint az AH protokoll esetben. Az ESP-farokrsz tartalmazza a kvetkez fejrszmezt, ennek szerepe ugyancsak megegyezik az AH-nl ltottal. Megjegyezzk, hogy mivel az ESP-farokrsz titkostott, egy tmad
nem kpes meghatrozni, hogy melyik szlltsi protokollt hasznljuk. A farokrszt kveten szerepel egy hitelcstsiadat-mez, amelynek jfent ugyanaz a szerepe, mint az AH protokollnl. Az ESP protokoll tovbbi rszletei megtallhatk a kt hivatkozott RFC-ben [RFC 4303; RFC 4305].
8.7.3. SA s kulcskezels
A 8.7.1. alfejezetben lttuk, hogy az AH protokoll egy titkos hitelest kulcsot alkalmaz, amelyet a forrshoszt s a clhoszt oszt meg egymssal. A 8.7.2. alfejezetben lthattuk, hogy az ESP protokoll emellett egy titkos titkost kulcsot is hasznl a szimmetrikus kulcs rejtjelezshez. Vajon a forrs- s clhoszt hogyan jut hozz ezekhez a kulcsokhoz? Ezenkvl krds, hogy a forrs- s a clhoszt hogyan egyeznek meg a kriptogrfiai algoritmusokban (a szimmetrikus kulcs titkostsra s a HMAC szmtsra szolgl algoritmusokban)? Nagy vonalakban ktfle megkzelts lehetsges: Kzi: A rendszergazda kzzel belltja a hosztokon a megfelel kriptogrfiai algoritmusokat s kulcsokat. Automatikus: Az egyes SA-k kriptogrfiai algoritmusait s kulcsait igny esetn, automatikusan, minden SA-ra kln hatrozzk meg. Ez az internetes kulcscserl (Internet Key Exchange, IKF.) protokoll segtsgvel trtnik [RFC 2409]. Ahogy mr sejthetjk, az IKE nyilvnos kulcs kriptogrfia alkalmazsval terjeszti a kulcsokat. Az IKE protokoll sokflekppen hajthat vgre, ennek pontos lersa megtallhat (Kauf- mann 1995] mvben.
Hitelestett
IP-fejrsz
ESP-fejrsz
TCP/UDP-szegmens
ESP-farokrsz
ESP-hitelests
Protokoll = 50
1-----------------------------------------------------------------Titkostott
Ezzel vgre rtnk az IPsec-rl szl sszefoglalsunknak. Az IPsec-et IPv4 s szlltsi krnyezetben trgyaltuk. Az IPsec egy alagt (tnnl) tviteli mdot is definil, amely sorn a hosztok helyett az tvlasztk ltjk el a biztonsgi funkcikat. s vgl, az IPsec az !Pv4 mellett az IPv 6 protokollra is meghatrozza a titkostsi eljrsokat.
bzislloms s a hoszt valamilyen ms mdszerrel mr megegyeztek a kulcsban. A hitelests gy zajlik, mint a 8.4. alfejezetben ltott ap4.0 protokoll esetben. Ngy lps trtnik: 1. A vezetk nlkli hoszt a hitelestst kri egy hozzfrsi ponttl. 2. A hozzfrsi pont a hitelestsi krelemre egy 128 bites nonce szmmal vlaszol. 3. A vezetk nlkli hoszt a hozzfrsi ponttal kzs szimmetrikus kulcsval titkostja a nonce szmot. 4. A hoszt ltal titkostott nonce szmot a hozzfrsi pont dekdolja. Ha a dekdolt nonce szm megegyezik a hosztnak kldtt eredeti nonce szmmal, akkor a bzislloms sikeresen hitelestette a hosztot.
A WEP adattitkostsnak algoritmust a 8.32. bra mutatja be. Felttelezzk, hogy a 40 bites Ks szimmetrikus kulcsot a hoszt s a bzislloms is ismeri. Ezenkvl a 40 bites kulcsot egy 24 bites inicializl vektorral (IV) egsztjk ki, gy megkapjuk azt a 64 bites kulcsot, amelyet egy keret titkostsakor hasznlni fogunk. A IV keretenknt ms-ms rtket vs/ fel, gy minden adatkeretet klnbz 64 bites kulccsal kdolunk. A titkos ts a kvetkezkppen trtnik. Legelszr egy 4 bjtos CRC-kdot (lsd 5.4. alfejezetet) szmtunk a keret adatmezjhez. Ezutn az adatmezt a 4 bjtos CRC-kddal egytt az RC4 kulcsfolyamatos rejtjelezvel titkostjuk. Az RC4 algoritmust nem trgyaljuk rszle teiben (bvebb lersrt lsd [Schneier 1995] s [F.dney 2003]). Szmunkra most elg any- nyit tudni, hogy az RC4 algoritmust egy kulcs inicializlja (esetnkben a n 64 bites ( Ks ,IV) kulcs), s egy k\' ,k2!' ,... yk^ kulcsfolyamotlltel,amelyetegykeretadatainaksCRC-r- tknek titkostsra hasznlunk. Az egyszersg kedvrt kpzeljk gy, hogy a mvele teket
IV
bjtonknt hajtjuk vgre. A tikosts gy trtnik, hogy az adat i-cdik bjtjt, d\-1 a (Ks ,1V) prbl generlt kulcsfolyam i-edik bjtjval, k\' -vei XOR kapcsolatba hozzuk, gy megkapjuk a rejtett szveg i-edik bjtjt, Cj-t.
c\ - dt k}
Az IV rtke keretrl keretre vltozik, s minden WEP szerint tikostott 802.11 keret nylt szvegknt tartalmazza azt fejrszben a 8.32. brn lthat mdon. A vev fogja a kldvel kzs 40 bites szimmetrikus kulcst, hozzfzi az IV-t, s a 64 bites kulcs segtsgvel (amely ugyanaz, mint amit a kld hasznlt a titkostshoz), dekdolja a keretet:
d\ =
C\
/j,v
Az RC4 titkost megfelel hasznlathoz hozz tartozik, hogy soha nem szabad ugyanazt a 64 bites kulcsot tbbszr hasznlni. Ne felejtsk, a WEP-kulcsok keretrl keretre vltoznak. Ez azt jelenti, hogy egy adott Ks kulcshoz (amely igen ritkn vagy soha nem vltozik) sszesen csupn 224 egyedi kulcsrtk tartozik. Megmutathat [Walker 2000; Edney 2003], hogy amennyiben a kulcsokat vletlenszeren vlasztjuk, mindssze 12 000 keret elkldse utn mr tbb mint 99 szzalk az eslye annak, hogy van olyan IV-rtk (s ebbl kifolylag olyan 64 bites kulcs is), amelyet tbbszr is hasznltunk. Ha az tviteli sebessg 11 Mb/s, a keretek hossza pedig 1 KB, akkor nhny msodperc elegend ahhoz, hogy 12 000 keretet elkldjnk. St, mivel az IV-t nyltan kldjk t, egy hallgatz pon tosan tudni fogja, hogy mikor hasznlunk ismtld IV-t.
genertor
(adott Kv IV rtkekre)
IV
i -d, i i + Cl
i d, I I *
k
w
*N+1
1 CRC, i 1 i C N+1
kN+4 1 -CRC, 1
1 +
i d3 i i +
c,
i N 1 1 + C N
802.1! fejrsz
156
8.
SZMTGP-HLZATOK
BIZTONSGA
Hogy lssunk legalbb egyet a tbbszr hasznlt kulcsok kvetkeztben felmerl problmk kzl, nzzk meg a kvetkez vlasztott nylt szveg tmadst, amelyet Trudy hajt vgre Alice ellen. Tegyk fel, hogy Trudy (lehet, hogy egy hamis IP-cmrl) kld egy krst Alice-nek (pldul egy HTTP- vagy Fl'Pkrst), hogy kldjn el neki egy ismert di, d2 > 3 , d,\... tartalm fjlt. Trudy megfigyeli a Cy, c2 , C 3, C 4 ... titkostott adatot. Mivel dj = Cj k/' , ha az egyenlet mindkt oldalt XOR kapcsolatba hozzuk q-vel, akkor a kvetkezt kapjuk:
dic - ki,v
Ezzel az sszefggssel Trudy a dj s c, rtkek ismeretben meghatrozhatja a k/v kulcsot. Amikor Trudy legkzelebb azt ltja, hogy jra ugyanezt az I V-t hasznljk, knnyen dekdolni tudja a titkostott zenetet, mivel ismeri a k\v, k2 , k{ ,... kulcsfolyamot. A VVEP szmos ms biztonsgi hinyossggal is rendelkezik. [Fluhrer 20011 egy olyan tmadst mutat be, amely az RC4-kdol bizonyos kulcsok (n. gyenge kulcsok) esetben jelentkez ismert gyengesgt hasznlja ki. [Stubblefield 2002] azt rszletezi, hogyan lehet hatkonyan megvalstani s felhasznlni ezt a tmadst. A WEP tovbbi hinyossga a 8.32. brn ltott CRC-rtkkel kapcsolatos, amely az IEEE 802.11 adatkeretben arra szol gl, hogy detektlja az adatmezben megvltoztatott biteket. Ennek ellenre, egy tmad, ha megvltoztatja a kdolt adatot (pldul zagyvasgra cserli), s kiszmtja a beszrt zagy vasg CRC-rtkt, s ezt a CRC-kdot is beteszi a keretbe, el tud lltani olyan 802.11 keretet, amelyet a vev elfogad. A tartalom meghamistsnak vagy kicserlsnek szlelshez olyan zenetintegritst biztost eljrsokra lenne szksg, mint amilyeneket a 8.3. alfejezetben trgyaltunk. A WEP biztonsgval kapcsolatos tovbbi rszletek megtallhatk a [Edney 2003; Walker 2000; Weatherspoon 2000; 802.11 Security 2007] mvekben s ezek hivatkozott irodalmban.
8.7. Hlzati
SZINT BIZTONSG:
IPsec
157
1. Felderts. A felderts szakaszban az AP hirdeti a jelenltt, valamint a titkostsi s hitelestsi mdszereket, amelveket a vezetk nlkli kliensnek fel tud knlni.
A kliens ezutn az zlsnek megfelel konkrt titkostsi s hitelestsi formt kri. Br a kliens s az AP mr vltanak egymssal zeneteket, sem a kliens hitelestse nem trtnik mg meg, sem a titkostshoz szksges kulcs nem ll mg rendelkezsre, gy nhny lps szksges mg ahhoz, hogy a kliens tetszleges tvoli hosztot elrhessen a vezetk nlkli csatornn keresztl. 2. Klcsns hitelests s a mesterkulcs (MK)generlsa. A hitelests a vezetk nlkli kliens s a hitelest szerver kztt trtnik. Ebben a fzisban a bzislloms lnyegben tjtszknt mkdik, a kliens s a hitelest szerver kzti zeneteket tovbbtja. A kiterjesztett hitelestsi protokoll (Extensible Authentication Protocol, EAP) (RFC 2284] a kliens s a szerver kztti egyszer krds/vlasz jelleg prbeszdknt rja el a vgpontok kztt kldtt zenetek formtumt. Amint a 8.34. bra mutatja, az EAPzenetek az EAPoL (FAP over LAN, [IEEE 802.IX]) protokoil- ba gyazdva tovbbtdnak a 802.11 vezetk nlkli csatornn keresztl. Az EAPzeneteket az AP kibontja, majd ezek jra begyazdnak, mivel a hitelest szerver fel IP/UDP felett, a RADIUS protokoll vgzi az tvitelt. Br az IEEE 802.1 li nem kveteli meg a RADIUS szerver s a hozz tartoz protokoll hasznlatt, mgis ezek az IEEE 802.1 li defacto szabvnyos komponensei. A kzeljvben a RADIUS protokollt valsznleg felvltja a nemrg szabvnyostott DIAMETER protokoll [RFC 3588]. Az EAP hasznlatval a hitelest szerver szmos hitelestsi mdszer kzl vlaszthat. Igen gyakran alkalmazzk az EAP-TLS hitelestsi eljrst [RFC 2716], br az IEEE 802.1 li nem rja el egyik konkrt protokoll hasznlatt sem. A kliens s a hitelest szerver klcsns hitelestshez, valamint a mester kulcs (MK) szrSTA: klienslloms AP: hozzfrsi pont AS: hitelest
Vezetkes hlzat
szerver
^0 ---------------------------------Az AP kzvettsvel az STA s az AS klcsnsen hitelestik egymst, egyttesen ltrehoznak egy mesterkulcsot (Master Key, MK) STA kiszmtja * C i ) " "
8.7.
Hlzati szint biztonsg: IPSEC a pronknt! mesterkulcsot (Pairwise Master Key. PMK)
Az AS kiszm, 3 u a
063
4
Az STA s az AP a PMK segtsgvel kiszmtanak egy ideiglenes kulcsot {Temporal Key,TK), amelyet titkostsra, zenetintegrits biztostsra hasznlnak
160
8.
SZMTGP-HLZATOK
BIZTONSGA
STA: klienslloms
<* p>>
Wired network
EAPTLS EAP
EAPover LAN (EAPoL) IEEE 802.11 RADIUS UDP/IP
8.34. bra. Az EAP egy vgpontok kztti protokoll. Az EAP-zenetek a kliens s a bzislloms kztt a vezetk nlkli adatkapcsolaton EAPoL-nak megfelelen ,
mg a hozzfrsi pont s a hitelest szerver kztt az IP/UDP felett mkd RADIUS protokollnak megfelelen gyazdnak be
maztatshoz az EAP-TLS azokhoz hasonl nyilvnos kulcs mdszereket hasznl (bevetve nonce titkostst s zenetpecsteket is), amelyeket a 8.3. s 8.4. alfejezet- ben tanulmnyoztunk. 3. A pronknli mesterkulcs generlsa (PMK). Az MK egy kzs titok, amelyet kizrlag a kliens s a hitelest szerver ismer, s amelyet mindketten arra hasznlnak, hogy ellltsanak egy msodik kulcsot, a pronknti mesterkulcsot (PMK). Ezutn a hitelest szerver a PMK-kulcsot elkldi az APnek. Pontosan ezt szerettk volna elrni! A kliens s a hozzfrsi pont rendelkezik egy kzs kulccsal (emlkezznk, hogy a WEP egyltaln nem foglalkozott a kulcs terjesztsnek krdsvel), tovbb klcsnsen hitelestik egymst. Mr csak egy kevs hinyzik ahhoz, hogy munkhoz lthassanak. 4. Ideiglenes kulcs (TK) generlsa. Azzal, hogy adott a PMK, az AP s a kliens mr szrmaztathatnak tovbbi kulcsokat, amelyeket a kommunikcijuk sorn hasznlhatnak. Ezek kzl emltsre mlt az ideiglenes kulcs (Temporal Key, TK), amelyet a tetszleges tvoli hosztnak a vezetk nlkli csatornn keresztl kldtt adatok adatkapcsolati szint titkostsra hasznlnak. Az IEEE 802.1 li szmos titkostsi eljrst knl fel, kztk egy AES-titkostn alapul mdszert, valamint a WEP-titkosts egy megerstett vltozatt is.
8.9.
161
szervezet hlzathoz tartoznak, s akik viszonylag korltlanul hozzfrhetnek a szervezet hlzatn belli erforrsokhoz) s a rossz fik (mindenki ms, akiknek a hlzat erforrsaihoz val hozzfrst szigoran ellenrizni kell). A kzpkori vraktl kezdve egsz a modern irodahzakig, a legtbb szervezet esetben egyetlen bejrat/kijrat adott, ahol a belpket s kilpket - akr j fik, akr rossz fik - biztonsgi ellenrzsnek vetik al. Egy vrban ez a felvonhd vgben lv kapuban trtnt; egy irodapletben pedig a biztonsgi pultnl vgzik. Egy szmtgp-hlzat esetben a bejv/kimen forgalom biztonsgi ellenrzst, naplzst, eldobst vagy tovbbtst olyan eszkzk vgzik, mint a tzfalak (Firewall), a behatolsjelz rendszerek (Intrusion Detection System, IDS) s a behatolst megelz rendszerek (Intrusion Prevention System, IPS).
8.9.1. Tzfalak
A tzfal (firewall) nem ms, mint egy olyan hardver-szoftver egyttes, amely a szervezet hlzatt elvlasztja az internettl gy, hogy egyes csomagokat tenged, mg msokat blokkol. A tzfal lehetv teszi a rendszergazda szmra, hogy a bejv s kimen forgalom felgyelsvel szablyozza a klvilg s felgyelt hlzat erforrsai kztti hozzfrst. Egy tzfalnak hrom feladata van: Minden kvlrl befel jv vagy bentrl kifel men forgalom thalad a tzfalon. A 8.35. brn lthat egy tzfal, amely - gy ahogy azt kell -, a felgyelt hlzat s az internet tbbi rsze kzti hatron foglal helyet. Br nagy szervezetek hasznlhatnak tbbszint vagy elosztott tzfalakat is ISkoudis 2006], egyszerbb teszi a felgyeletet s a biztonsgi hzirend betartatst, ha a tzfal a hlzat egyetlen, a hozzfrst biz tost pontjn helyezkedik el, a 8.35. brn lthat mdon.
Tzfal
Nyilvnos internet
162
8.
SZMTGP-HLZATOK
BIZTONSGA
Felgyelt hlzat
Kizrlag jogszer, azaz a helyi biztonsgi hzirend szerint engedlyezett forgalom mehet t. Azltal, hogy a tzfal a szervezet hlzatnak minden bejv
s kimen forgalmt ltja, kpes kizrlag a jogszer forgalomra korltozni a hozzfrs engedlyezst. Maga a tzfal ellenll a tmadsoknak. A tzfal maga is egy hlzatra kttt eszkz. Ha nem kell gonddal tervezik vagy kivitelezik a tzfalat, akkor azt kijtszhatjk, ez esetben pedig csupn hamis biztonsgrzetet ad (ami annl is rosszabb, mintha egyltaln nem hasznlnnk tzfalat!). A kt legnagyobb tzfalakat forgalmaz cg napjainkban a Cisco s a Check Point. Tzfalat (csomagszrt) knnyen kszthetnk egy Linuxot futtat gpbl is az iptables segtsgvel (amely egy nylt szoftver s legtbbszr tartalmazza a Linux). A tzfalak hrom fbb csoportra oszthatk: lteznek hagyomnyos csomagszrk, llapottart csomagszrk s alkalmazs szint tjrk. A kvetkez alfejezetekben ezeket vesszk sorra.
Hagyomnyos csomagszrk
Ahogy a 8.35. bra mutatja, egy tipikus szervezet rendelkezik egy tjrval, amely a bels hlzatot sszekapcsolja az ISP-vel (s gy a nagy, nyilvnos internethlzattal is). Minden forgalom, ami a bels hlzatba belp vagy azt elhagyja, keresztlhalad ezen a tvlasztn, s ennl az tvlasztnl trtnik a csomagszrs (packet filtering). A csomagszr minden egyes datagramot kln megvizsgl, s a rendszergazda ltal elrt szablyok alapjn eldnti, hogy az adott csomag tmehet vagy el kell azt dobni. A szrs legtbbszr a kvetkezk alapjn zajlik: IP-forrs-s-clcmek, Az IP-fejrszben szerepl protokoll tpusa: TCP, UDP, ICMP, OSPF stb., TCP s UDP forrs- s clportszmok, . TCP-jelzbitek: SYN, ACK stb., ICMP-zenet tpusa, a bejv s kimen datagramokra vonatkoz klnbz szablyok, az tvlaszt klnbz csatolira definilt klnbz szablyok. A rendszergazda a tzfalat a szervezet hzirendje szerint lltja be. A szablyzat figyelembe veheti a felhasznlk tevkenysgt s svszlessg felhasznlst, valamint a szervezet biztonsgi elvrsait is. A 8.4. tblzatban felsoroltunk nhny lehetsges hzirendet, amelyet egy szervezet alkalmazhat, valamint megadtuk ezek csomagszrvel trtn megvalstst is. Ha pldul a szervezet egyltaln nem szeretne kvlrl TCP-ssze- kttetseket fogadni, kivve azokat, amelyekkel a nyilvnos webszerverkhz szeretnnek csatlakozni, akkor a csomagszr blokkolhat minden TCP SYN szegmenst, kivve azokat, amelyek clportszma 80, cl-IP-cme pedig a webszerver IP-cme. Ha a szervezet nem szeretn, hogy a felhasznli internetes rdizssal foglaljk le a svszlessget, ak kor blokkolhatja a lnyegtelen UDP-csomagokat (mivel az internetes rdik legtbbszr UDP felett adnak). Amennyiben egy szervezet el szeretn kerlni, hogy a bels hlzatt kvlrl feltrkpezzk (nyomkvets, traceroute), akkor blokkolhat minden ICMP TTL expired zenetet, amely elhagyn a szervezet hlzatt.
hlzata
esetben,
ha
Brmely IP-cm 80 portszmra kldtt kimen csomag eldobsa Ne fogadjon bejv TCP-sszekttetseket, kivve a szervezet nyilvnos v/ebszervere fel Brmely IP-cimre rkez TCP SYN csomag eldobsa, kivve a 130.207.244.203 cm 80 portjra kldttek
Akadlyozza meg, hogy a webrdik emsszk fel a rendelkezsre ll svszlessget Akadlyozza meg, hogy a hlzatunkat a smurf (trpe) DoS-tmadsra hasznljk fel Akadlyozza meg, hogy a hlzatot feltrkpezzk
A DNS-csomagokon kvl minden UDP-csomag eldobsa Minden krzvnycmre (pldul 130.207.255.255) rkez ICMP ping csomag eldobsa
A szrsi szablyok az IP-cmekel s portszmokat egytt is figyelembe vehetik. Egy csomagszr tvlaszt pldul eldobhat minden Telnet-datagramot (23 portszmmal rendelkezt), kivve azokat, amelyek egy bizonyos listn szerepl IPcmek kzl valamelyikrl rkeznek vagy oda tartanak. Ez a szably csak a listn szerepl cmeknek engedlyez Telnet-sszekttetseket. Sajnos hamistott forrscmet tartalmaz datagramok ellen nem nyjt vdelmet egy kls cmekre hagyatkoz szablyrendszer. A szrs az alapjn is trtnhet, hogy a TCP ACK bit rtke 1 vagy 0. Ez a trkk akkor hasznlhat, ha a szervezet a bels kliensek szmra engedlyezi a kls szerverekhez val csatlakozst, de szeretn megakadlyozni, hogy kls kliensek bels szerverekre csatlakozzanak. Idzzk fel a 3.5. alfejezetbl, hogy minden TCPsszekttets els szegmensben az ACK rtke 0, mg az sszekttets minden tovbbi szegmensben 1. gy, ha a szervezet szeretn megakadlyozni, hogy kls kliensek bels szerverekkel kezdemnyezzenek sszekttetst, akkor a tzfal egyszeren kiszr minden olyan bejv szegmenst, amelynek ACK bitje 0. Ez a szably minden kintrl ered TCP-sszekttetetst elfojt, de engedlyezi a bentrl kezdemnyezett sszekttetseket. A tvlasztkban a tzfalszablyokat hozzfrs-vezrl listk valstjk meg, mgpedig gy, hogy a tvlaszt minden csatolja (interfsze) sajt listval rendelkezik. A hozzfrs-vezrl listra lthat egy plda a 8.5. tblzatban, a 222.22.0.0/16 hlzaton lv szervezet esetben. Ez a hozzfrs-vezrl lista egy olyan csatolra vonatkozik, amely a tvlasztt a szervezet kls internetszolgltatjval kti ssze. Az egyes szablyokat fent- rl lefel haladva prbljk alkalmazni minden egyes, a csatoln thalad datagramon. Az els kt szably egytt engedlyezi a bels felhasznlknak, hogy bngsszenek a We ben: az els szably minden 80 clportszmmal rendelkez TCP-csomagnak engedlyezi, hogy elhagyja a szervezet hlzatt; a msodik pedig beengedi a szervezet hlzatba a 80 forrsportszmmal s 1-es ACK bittel rkez csomagokat. Vegyk
szre, hogy ha egy kls cmrl prblnak egy bels hoszttal TCP-sszekttetst felpteni, az sszekttets blokkoldni fog, mg akkor is, ha a forrs- vagy clportszm 80. A msodik kt szably a DNS-csomagoknak engedi meg, hogy belpjenek a szervezet hlzatba vagy ppen el8.5. tblzat. Egy tvlaszt csatoljnak hozzfrs-vezrl listja
Teend Engedlyez Forrs cme 222.22.0.0./16 Cl cme Kvl a 222.22.0.0./16 tartomnyon Engedlyez Kvl a 222.22.0.0./16 tartomnyon Engedlyez 222.22.0.0716 Kvl a 222.22.0.0716 tartomnyon Engedlyez Kvl a 222.22.0.0716 tartomnyon Letilt Minden Minden Minden Minden Minden Minden 222.22.0.0716 UDP 53 >1023 UDP >1023 53 222.22.0.0./16 TCP 80 >1023 ACK Protokoll TCP Forrsport >1023 Clport 80 Jelzbit brmely
hagyjk azt. sszefoglalva, ez a meglehetsen szigor hozzfcrs-vezrl lista minden forgalmat blokkol, kivve a DNS-forgalmat s a szervezeten bellrl kezdemnyezett web- forgalmat. A (CERT Filtering 2007] ajnls azokat a port/protokoll csomagszrsi szablyokat sorolja fel, amelyek ajnlottak a ltez hlzati alkalmazsokban meglv ismert biztonsgi rsek kihasznlsnak megakadlyozsa rdekben.
Allapottart csomagszirk
Egy hagyomnyos csomagszr a szrsi szablyokat minden egyes csomagra klnk- ln alkalmazza. Az llapottart csomagszrk ezzel szemben nyomon kvetik a TCP-sz- szekttetseket, s ezen tuds birtokban hozzk meg a szrsi dntseket. Az llapottart csomagszrk megrtshez vizsgljuk meg a 8.5. tblzat hozzf rs-vezrl listjt. Br ez a hozzfrs-vezrl lista meglehetsen szigor, megengedi, hogy a kintrl 80 forrsporlszmmal s ACK=1 bittel rkez csomagok tmenjenek. Az ilyen csomagokat a tmadk fel tudjk hasznlni arra, hogy szablytalan formtum csomagokkal bels rendszereket prbljanak megzavarni, vagy hogy DoS-tmadsokat hajtsanak vgre, vagy hogy feltrkpezzk a bels hlzatot. A naiv megolds az lenne, hogy blokkoljuk a TCP ACK csomagokat is, ez a megkzelts viszont megakadlyozn, hogy a szervezeten belli felhasznlk a weben bngsszenek. Az llapottart csomagszrk ezt a problmt azzal oldjk meg, hogy minden fennll TCP-sszekttetst nyilvntartanak egy sszekttets-tblban. Ez kivitelezhet, mivel a tzfal szlelni tudja egy j TCP-sszekttets kezdett, amikor
egy hromutas kzfogst lt (SYN, SYNACK s ACK); tovbb szlelni tudja az sszekttets lezrst is, amikor az adott sszekttetsre vonatkoz FIN-csomagol lt. A tzfal (konzervatv hozzllssal) azt is felttelezheti, hogy az sszekttets vget rt, ha nem tapasztal aktivitst, mondjuk 60 msodpercen t. Pldaknt megtallhat egy tzfal sszekttetseket nyilvntart tblzata a 8. 6. tblzatban. A tblzatbl kiderl, hogy pillanatnyilag hrom TCP-ssze8. 6. tblzat. Egy llapottart csomagszr sszekttets-tblja
Forrscm 222.22.1.7 222.22.93.2 222.22.65.143 Clcm 37.96.87.123 199.1.205.23 203.77.240.43 Forrsportszm 12699 37654 48712 Clportszm 80 80 80
kttets ll fenn, s ezek kzl mindegyiket a szervezeten bellrl kezdemnyeztk. Az llapot tart csomagszr tartalmaz tovbb a vezrl tbljban egy j, sszekttets-ellenrzs oszlopot, ahogy a 8.7. tblzatban megfigyelhetjk. Vegyk szre, hogy a 8.7. tblzatban szerepl hozz frsvezrl lista azonos a 8.5. tblzatban lthatval, azzal a klnbsggel, hogy most kt szably esetben az sszekttets ellenrzse is el van rva. Nzznk meg nhny pldt, hogy lssuk, miknt mkdik egytt az sszekttets-tbla s a kibvtett hozzfrs-vezrl lista. Tegyk fel, hogy a tmad egy szablytalan formtum csomagot ksrel meg a szervezet hlzatba bejuttatni gy, hogy egy datagramot kld a 80 forrsportszmrl, 1-re lltott ACK jelzbittel. Tegyk fel tovbb, hogy ez a csomag forrscmknt a 150.23.23.155 cmet, frrsportszmknt pedig az 12543 portot tartalmazza. Amikor a tzfalhoz rkezik ez a csomag, a tzfal a 8.7. tblzatban megnzi a hozzfrs-vezrl listjt, ez pedig azt mutatja, hogy mieltt engedlyeznnk, hogy a csomag belpjen a szervezet hlzatba, az sszekttets-tblt is ellenrizni kell. A tzfal, ahogy azt kell, ellenrzi az sszekttets-tbljt, s azt tapasztalja, hogy a csomag nem rsze egyik fennll TCP-sszekttetsnek sem, ezrt eldobja a csomagot. A msodik plda kedvrt, tegyk fel, hogy egy bels felhasznl szeretne egy kls weboldalt bngszni. Miutn a felhasznl legelszr egy TCP SYN szegmenst kld, a felhasznl TCP-ssze- kttetse bekerl az sszekttetstblba. Amikor a webszerver vlaszcsomagokat kld
(termszetesen ACK = 1 bittel), a tzfal elvgzi az ellenrzst, s azt ltja, hogy mkdik egy megfelel sszekttets. A tzfal gy tengedi ezeket a csomagokat, s nem zavarja a bels felhasznl webbngszst.
engedlyezi kifel a Telnetet, a kls klienseknek pedig egyltaln nem engedi, hogy befel Telnet-sszekt- tetst ltestsenek. Egy ilyen szablyrendszer a 8.36. brn lthat mdon, egy csomag- szr tvlaszt s egy Telnethez tartoz alkalmazsi szint tjr fellltsval valsthat meg. A tvlaszt szrsi szablyai gy vannak belltva, hogy blokkoljon minden Telnet-sszekttetst, kivve azokat, amelyek az alkalmazsi szint tjr IP-cmrl erednek. Ez a szrsi szably arra knyszert minden kimen Telnet-sszekttetst, hogy keresztlhaladjon az alkalmazsi szint tjrn. Kpzeljk most, hogy egy bels felhasznl szeretne a klvilg fel egy Telnet-sszekttetst nyitni. A felhasznlnak elszr az alkalmazsi szint tjrval kell kiptenie egy Telnet-sszekttetst. Az tjrn fut al kalmazs, amely a berkez Telnet-sszekttetseket figyeli, egy azonostt s egy jelszt kr a felhasznltl. Amikor a felhasznl megadja ezeket az adatokat, az alkalmazsi szint tjr ellenrzi, hogy a felhasznl jogosult-e a klvilg fel Telnetsszekttetst nyitni. Amennyiben nem, az tjr megszaktja a felhasznlval fennll Telnet-sszekt- tetst. Ha a felhasznl jogosult, akkor az tjr (1) megkrdezi a felhasznlt, hogy mi a neve annak a kls hosztnak, amelyhez csatlakozni szeretne, (2) kipt egy Telnet-sz- szekttetst az tjr s a kls hoszt kztt, majd (3) tovbbt a kls hosztnak minden adatot, amely a felhasznltl rkezik, s tovbbt a felhasznlnak minden adatot, amely a kls hoszttl rkezik. A Telnethez tartoz alkalmazsi szint tjr teht nemcsak a felhasznl hitelestst vgzi, hanem Telnet-szerverknt s Telnet-kliensknt is mkdik, s tovbbtja a felhasznl s a tvoli Telnet-szerver kztti adatokat. Meg kell jegyeznnk, hogy a 2. lpst nem akadlyozza meg a szrs, mivel az tjr kezdemnyez Telnet-ssze kttetst a klvilg fel.
8.36. bra. Egy alkalmazsi szint tjrbl s egy csomagszrbl ll tzfal Az alkalmazsi szint tjrknak is megvannak a maguk htrnyai. Elszr is, minden egyes alkalmazshoz kln alkalmazsi szint tjr szksges. Msodszor, a teljestkpessgben is megfizetjk az rt, mivel minden adat az tjrn keresztl, kzvetve tovbbtdik. Ez a gyakorlatban akkor jelenthet gondot, ha tbb felhasznl vagy tbb alkalmazs hasznlja egyszerre ugyanazt az tjrt. Vgl pedig a kliensszoftvernek is tudnia kell, hogy a felhasznl krsre hogyan tud az tjrval kapcsolatba lpni, valamint tudnia kell, hogy miknt kzlheti az tjrval, hogy mely kls szerverhez kell csatlakoznia.
kpes megakadlyozni, hogy ezek a csomagok belpjenek a szervezet hlzatba. Vagy mivel a csomagokat csak gyansnak tartja, ez az eszkz tengedheti ket, de figyelmeztetst kld a rendszergazdnak, aki miutn alaposabban megvizsglta az adott forgalmat, mr megteheti a szksges
intzkedseket. Az olyan eszkzt, amely figyelmeztet, ha felteheten rosszindulat forgalmat tall, behatolsjelz rendszernek nevezzk (Intrusion Detection System, IDS). Az olyan eszkzt pedig, amely ki is szri a gyans forgalmat behatols-megelz rendszernek hvjuk (Intrusion Prevention System, IPS). jelen fejezetben a kt rendszert (IDS s 1PS) egytt trgyaljuk, hiszen technikailag az a legfontosabb szempont, hogyan szlelik ezek a gyans forgalmat (nem pedig az, hogy figyelmeztetst kldenek vagy eldobjk a csomagokat). A tovbbiakban ezrt IDSrendszeren az IDS- s IPS-rendszereket egyttesen rtjk. Az IDS a tmadsok szles skljnak feldertsre hasznlhat, mint amilyen tbbek kztt a hlzat letapogatsa (elindtva, pldul nmaprl), nyitott portok keresse (port scan), a TCP-verem letapogatsa, DoS jelleg svszlessg elleni tmadsok, freg- s vrusprogramok, az opercis rendszer biztonsgi rseit kihasznl tmadsok s az alkalmazsok sebezhetsgeit kihasznl tmadsok. (A hlzati tmadsok ttekintse megtallhat az 1.6. alfejezetben.) Manapsg tbb ezer szervezet alkalmaz IDS-rendszereket. Az alkalmazott rendszerek kzl sok a Cisco, a Check Point vagy ms biztonsgi eszkzket gyrt ltal forgalmazott vdett termk. Szmos nyilvnosan elrhet IDS-rendszert is hasznlnak, mint amilyen pldul a nagy npszersgnek rvend Snort IDS (amelyet hamarosan mi is trgyaluk). Egy szervezet egy vagy tbb IDS-rzkelt is elhelyezhet a hlzatban. A 8.37. brn egy hrom IDS-rzkelvel rendelkez szervezet lthat. Ha tbb rzkel is van, ezek ltalban sszehangoltan mkdnek, s a gyans forgalmakkal kapcsolatos informcikat egy kzponti IDS-feldolgoznak kldik el, amely sszegyjti s sszegzi a rendelkezsre ll adatokat, s ha indokoltnak tli, rtesti a rendszergazdt. A 8.37. brn a szervezet kt rgira osztotta a hlzatt: egy fokozott biztonsg rgira, amelyet a csomagszr s egy alkalmazsi szint tjr vd, s IDSrzkelk felgyelik, valamint egy alacsonyabb biztonsgi szint rgira demilitarizlt znra (demilitarized zone, DMZ) -, amelyet csak a csomagszr vd, de egy IDS-rzkel is felgyel. Vegyk szre, hogy a DMZ a szervezet azon szervereit - a webszervert s a hiteles DNS-szervert - tartalmazza, ame lyeknek a klvilggal kommuniklniuk kell. Felmerlhet a krds, hogy mirt j, ha tbb IDS-rzkelnk van. A 8.37. bra hlzatban mirt nem helyeznk egyetlen IDS-rzkelt kzvetlenl a csomagszr mg (vagy akr a csomagszrvel integrltan)? Nemsokra ltjuk majd, hogy az IDSrendszernek nemcsak a csomagok mlyrehat elemzst kell elvgeznie, hanem minden egyes rajta ke- resztlmen csomagot tbb tzezer szabllyal kell sszevetnie, ez pedig jelents mennyisg szmts, klnsen, ha a szervezet gigabit/s nagysgrend internetes forgalmat bonyolt le. Ha az IDS-rzkelket htrbb helyezzk, akkor mindegyik rzkel a szervezet forgalmnak csak egy rszt figyeli, gy knnyebben tudjk tartani a lpst. Mindazonltal lteznek nagy teljestmny IDS- s IPS-rendszerek is manapsg, sok szervezetnek elegen d, ha egyetlen rzkelt helyeznek el a belpsi pontknt mkd tvlaszt kzelben. Az IDS rendszerek ltalnossgban kt f csoportba sorolhatk: vagy szablyalap (sig- nature-based) rendszerek vagy anomliaalap (anomaly-based) rendszerek. A szablyalap IDS nyilvntart egy kiterjedt adatbzist a tmadsokat ler szablyokrl. Minden bejegyzs szablyok egy halmaza, amelyek valamilyen tmadsra vonatkoznak. A szably lehet egyetlen csomag tulajdonsgainak felsorolsa (pldul forrs- s clportszmok, protokolltpus, az adatelemben
elfordul konkrt bitsorozat) vagy csomagok egy soro zatra is vonatkozhat. A szablyokat ltalban felkszlt hlzatbiztonsggal foglalkoz
mrnkk ksztik, akik felkutatjk az ismert tmadsokat. Egy szervezet rendszergazdja persze testre szabhatja a szablyokat s sajt szablyokkal is bvtheti az adatbzist. Mkdst tekintve a szablyalap 1DS minden thalad csomagot lehallgat, s minden lehallgatott csomagot sszevet az adatbzisban lv szablyokkal. Ha egy csomag (vagy csomagok egy sorozata) megfelel az adatbzis valamely szablynak, az IDS figyelmeztetst kszt. Ezt a figyelmeztetst elkldheti e-malben a rendszergazdnak, vagy tovbbthatja a hlzatfelgyeleti rendszernek, vagy egyszeren naplzhatja tovbbi vizsglatok cljbl. Br a szablyalap IDS-rendszerek igen elterjedtek, szmos htrnnyal is rendelkeznek. A legfontosabb az, hogy elre ismerni kell a tmadst ahhoz, hogy a megfelel szablyokat ltre lehessen hozni. Mskppen fogalmazva, a szablyalap IDS-rendszer figyelmt teljesen elkerlik az j tmadsok, amelyeket mg nem vettek fel a szablyok kz. Egy msik htrnyuk, hogy ha egy szably illeszkedik, mg nem biztos, hogy azt valban egy tmads idzte el, gy hamis riaszts is elfordulhat. Vgl pedig, mivel minden egyes csomagot szmos szabllyal kell sszevetni, az IDSrendszert tlterhelheti a csomagok feldolgozsa, gy rosszindulat csomagok is elkerlhetik a figyelmt.
Az anomliaalap IDS a normlis mkds sorn megfigyelt forgalom alapjn felllt egy forgalomprofilt. Ezek utn keresi a statisztikailag szokatlan csomagforgalmakat, pldul az ICMP-csomagok szokottl eltr arnyt, vagy egy hirtelen exponencilis nvekedst a portletapogatsok vagy ping-krsek szmban. Az anomliaalap IDSrendszeBels hlzat
szerver
szerver
alkalmazsi
szint
tjrt
IDS-
rekben az a nagyszer, hogy nem hagyatkoznak az ismert tmadsok elzetes ismeretre, azaz kpesek lehetnek j, mg nem dokumentlt tmadsok felfedezsre is. Klnsen nehz kihvs viszont a normlis s a statisztikailag nem szokvnyos forgalmak kztt klnbsget tenni. A legtbb ma hasznlt IDS elssorban szablyalap, br kzlk nhny kiegszl egy-kt anomliaalap szolgltatssal is.
Snort
A Snort egy nyilvnosan hozzfrhet, nylt forrskd IDS, amelyet sok szzezer rendszerben hasznlnak [Snort 2007; Koziol 2003), s amely Linux-, UNIX- vagy Windows-platformon egyarnt fut. A libpcap knyvtr ltalnos csomaglehallgat interfszt alkalmazza, amelyet a Wireshark s sok ms csomagok utni szimatolsra hasznlatos program is hasznl. 100 Mb/s nagysgrend forgalommal mg knnyedn elbr, gigabit/s mrtk forgalmak esetn mr tbb Snort-rzkelre lehet szksg. Nzznk egy pldt egy Snort-szablyra, hogy mlyebb betekintst nyerjnk a mkdsbe:
alert icmp $EXTERNAL_NET any -> $HOME__NET any msg: "ICMP PING NMAP"; dsize: 0; itype: 8; )
A szably minden olyan ICMP-csomagra illeszkedik, amely a szervezet hlzatba ($HOME _ NET) kvlrl ($EXTERNAL _ NET) rkezik, a tpusa 8 (ICMP ping), s az adatmezje res (dsize = 0). Mivel az nmap (lsd. 1. 6. alfejezet) pontosan ezekkel a jellemzkkel generl ping csomagokat, a szably az nmap ping feldertst hivatott felismerni. Ha egy csomagra rillik ez a szably, a Snort figyelmeztet zenetet generl "ICPMP PING NMAP" szveggel. A Snort-rendszer legersebb oldala felteheten a rengeteg felhasznl s biztonsgi szakember egyttmkdse, amely rvn a szablyok adatbzist karbantartjk. A Snort-k- zssg egy j tmads utn ltalban nhny rn bell megrja s kzzteszi az j tmadsra illeszked szablyt, amelyet aztn a vilgszerte mkd sokszzezer Snort-rendszer letlthet. St, a Snort-szablyok szintaxist kvetve, a rendszergazdk a meglv szablyok mdostsval vagy teljesen j szablyok rsval a sajt szervezetk ignyeire szabhatjk a szablyokat.
8.10. sszefoglals
A fejezetben ttekintettk a klnbz mdszereket, amelyeket Bob s Alice, a szerelmket titkol procsknk alkalmazhat ahhoz, hogy biztonsgosan kommunikljanak egymssal. Lttuk, hogy Bob s Alice szmra fontos a titkossg (vagyis, hogy kizrlag k rthessk meg egy elkldtt zenet tartalmt), a vgponthitelests (vagyis, hogy biztosak lehessenek abban, hogy egymssal beszlnek) s az zenetintegrits (azaz, hogy meggyzdhessenek arrl, hogy az zeneteiket nem mdostottk tkzben). A biztonsgos kommunikci ignye termszetesen nemcsak eltitkolt szerelmi kapcsolatok esetben merl tel. Valban, a 8.5. alfejezettl kezdden a 8. 8. alfejezetig lthattuk, hogy biztonsgi megoldsokat a hlzati architektra szmos rtegben alkalmazhatunk, hogy vdekezznk a rossz fik ellen, akik a lehetsges tmadsok hatalmas fegyvertrval rendelkeznek.
A fejezet els rsze a biztonsgos kommunikci megvalstshoz szksges klnbz ptkveket tekintette t. A 8.2. alfejezetben az adat titkosts s dekdols kriptogrfiai mdszereit vettk sorra, belertve a szimmetrikus kulcs s a nyilvnos kulcs titkostsokat is. Megvizsgltuk a DES- s RSA-mdszereket, mint konkrt pldkat a mai hlzatokban hasznlt kriptogrfiai mdszerek kt f csoportjra. A 8.3. alfejezetben kt mdszert lttunk az zenetintegrits biztostsra: az zenet- hitelest kdokat (MAC) s a digitlis alrsokat. A kct megkzeltsnek szmos kzs vonsa van. Mindkett kriptogrfiai hash-fggvnyeket alkalmaz, tovbb mindkett alkalmas nemcsak az zenet integritsnak ellenrzsre, hanem az zenet kldjnek hitelestsre is. Lnyeges klnbsg viszont, hogy mg a digitlis alrshoz szksg van egy nyilvnos kulcs infrastruktrra, addig a MACkdok nem titkostson alapulnak. Mindkt mdszert szleskren alkalmazzk a gyakorlatban is, ahogy lttuk a 8.5.-8.8. alfejezetekben. Ezen kvl a digitlis alrsokat digitlis tanstvnyok killtsra is hasznljk, amelyeknek a nyilvnos kulcsok rvnyessgnek ellenrzsekor van fontos jelentsge. A 8.4. alfejezet sorn figyelmnket a vgpont-hitelestsre fordtottuk, s egy sor, egyre kifinomultabb hitelest protokollt dolgoztunk ki, hogy biztosthassuk, hogy a partnernk jelen van, s valban az, akinek mondja magt. Lttuk, hogy mind a szimmetrikus, mind a nyilvnos kulcs kriptogrfia nemcsak az adatok elrejtsben (titkosts/dekdols) jtszhat fontos szerepet, hanem a hitelests lebonyoltsban is. A 8.5-8. 8. alfejezetekben szmos olyan hlzatbiztonsgi protokollt vizsgltunk meg, amelyet a gyakorlatban is szles krben alkalmaznak. Lttuk, hogy a szimmetrikus kulcs kriptogrfia adja az alapjt a PGP, az SSL, az IPsec s a vezetk nlkli biztonsgi proto- kolloknak. Azt tapasztaltuk, hogy a nyilvnos kulcs kriptogrfia alapvet fontossg a PGP s az SSL esetben. Lttuk, hogy a PGP digitlis alrssal biztost zenet integritst, mg az SSL s az IPsec MAC-kdokat alkalmaz. Most, hogy megrtettk a kriptogrfia alapjait, s megvizsgltuk, hogyan alkalmazzk ezeket az alapelveket, kszen llunk, hogy sajt hlzatbiztonsgi protokollokat is tervezznk! A 8.2-8.4. alfejezetekben bemutatott mdszerekkel felfegyverkezve Bob s Alice mr biztonsgosan kommuniklhat egymssal. (Persze csak remlhetjk, hogy tanultak a hlzatokrl, s jl elsajttottk ezt az anyagrszt, s gy elkerlhetik, hogy a lgyottjaikat Trudy leleplezze!) A titkossg azonban csak egy kis mozaikkocka a hlzatbiztonsg teljes kprl. A hlzatbiztonsg figyelme egyre inkbb arra irnyul, hogy miknt lehet a hlzati infrastruktrt megvdeni a rossz fik elkpzelhet tmadsai ellen. Fejezetnk legutols rszben ezrt a tzfalakkal s IDS-rendszerekkel ismerkedtnk, amelyek tvizsgljk egy szervezet hlzatba belp s az onnan kimen csomagokat. Fejezetnk szmos terletet rintett, a modern hlzatbiztonsg legfontosabb tmaira koncentrlva. Olvasinknak, akik szeretnnek mlyebbre sni, ajnljuk a fejezetben hivatkozott irodalom ttekintst. Konkrtan: a tmadsokrl s a mkdsi biztonsgrl [Skoudis 2006], a kriptogrfirl s annak hlzatbiztonsgi alkalmazsrl [Kaufmann 1995] szmol be rszletesebben, az SSL alapos, de olvasmnyos trgyalst [Rescola 2001] adja, vgl ajnljuk (Edney 2003] mvt, amely az IEEE 802.11 biztonsgnak bvebb kifejtse, belertve a WEP s annak hinyossgainak alapos vizsglatt. Az Olvas rdekldsre tarthat szmot [Ross 2007] munkja, amely egy
Krdsek
KI. Mi a klnbsg az zenet titkossga s az zenet integritsa kztt? Ltezhet egyik a msik nlkl? Indokolja meg a vlaszt. K2. Mi a klnbsg egy aktv s egy passzv tmad kztt? K3. Mi az alapvet eltrs egy szimmetrikus kulcs s egy nyilvnos kulcs rendszer kztt? K4. Tegyk fel, hogy egy tmad hozzjut egy titkostott zenethez, s ennek nylt szveg vltozathoz is. Rejtett szveg tmadst, ismert nylt szveg tmadst, vagy vlasztott nylt szveg tmadst hajthat vgre a tmad? K5. Tegyk fel, hogy N ember a tbbi N-l ember mindegyikvel szimmetrikus kulcs titkosts segtsgvel szeretne kommuniklni. Brmely kt /, j ember kzti zeneteket az N fbl ll csoport minden tagja ltja, de a csoportbl senki ms nem szabad, hogy dekdolni tudja a kommunikcijukat. sszesen hny kulcsra van szksg a rendszerben? Tegyk fel, hogy nyilvnos kulcs titkostst alkalmaznak. Hny kulcsra van szksgk ebben az esetben? K 6. Mi a szerepe a frissen generlt vletlen szmnak (nonce) egy vgponthitelestsi protokoll esetben? K7. Mit jelent, hogy egy nonce csak egyszer az letben hasznlhat? Kinek az letben? K 8. Mi a kzbekeldses (man-in-the-middle) tmads? Szimmetrikus kulcsok alkalmazsa mellett lehetsges ez a tmads? K9. Mit jelent egy alrt dokumentum esetben, hogy ellenrizhet s nem hamisthat? K10. Milyen mdon biztost egy hash jobb zenetintegritst, mint egy olyan ellenrz sszeg, mint az internetes ellenrz sszeg? Kll. Milyen rtelemben jobb digitlis alrs egy zenet pecst nyilvnos kulcs titkostsa, mint az zenet nyilvnos kulcs titkostsa? K12. Dekdolhat egy zenet hash-rtke gy, hogy visszakapjuk az eredeti zenetet? Indokolja a vlaszt! KI3. Mi a hitelestsszolgltat (CA)? K14. Foglalja ssze melyek a fbb klnbsgek az IPsec hitelest fejrsz (AH) s a begyazott biztonsgos adatmez (ESP) protokollja ltal nyjtott szolgltatsok kztt?
Feladatok______________________________________________
FI. A 8.3. brn lthat monoalfebetikus kdol segtsgvel kdolja a kvetkez zenetet: Ez egy igen egyszer feladat. Dekdolja a myou mlldom lxk zenetet. F2. Mutassa meg, hogy Trudy ismert nylt szveg tmadsa, amely sorn ismeri ht bet (rejtett szveg, nylt szveg) megfeleljt, krlbell 109 -ed rszre cskkenti a lehetsges helyettestsek szmt. F3. Tekintsk a 8.4. brn lthat polialfabetikus rendszert. Egy vlasztott nylt szveg tmads, amelybl megkapjuk az Egy htlen vejt fln csp, dhs mexiki r Wesselnyinl mzol Quitban. zenet k-
doltjt, elegend-e ahhoz, hogy minden zenetet megfejthessnk? Ha igen, mirt, ha nem, mirt nem? F4. RSA-titkostssal kdolja a Hello. zenetet p = 3 s c\ = 11 paramterek vlasztsa mellett. Alkalmazzuk a dekdol eljrst a titkostott vltozatra, hogy visszakapjuk az eredeti nylt szveg zenetet. F5. Tekintsk az ap4.0 hitelestsi protokollt, amelynek sorn Alice hitelesti magt Bob fel, s amelyrl lttuk, hogy jl mkdik (azaz nem talltunk hibt benne). Tegyk most fel, hogy mikzben Alice hitelesti magt Bob fel, Bobnak is hite lesteni kell magt Alice fel. Mutassunk olyan forgatknyvet, amelyben Trudy, Alice szerept jtszva hitelesteni tudja magt Bob fele mint Alice. (Tipp: Gondoljunk arra, hogy az ap4.0 protokoll futsnak lpsei tetszlegesen tlapoldhatnak egy Trudy ltal kezdemnyezett s egy Bob ltal kezdemnyezett futs sorn. Figyeljnk klnsen arra, hogy Alice s Bob is hasznl nonce-t, s ha nem vigyzunk, ugyanazt a nonce-t fel lehet hasznlni rosszindulatan.) F 6. A 8.21. bra kzbekeldses tmadsa sorn Alice nem hitelestette Bobot. Ha Alice az ap5.0 protokollal hitelesten Bobot, elkerln-e a kzbekeldses tmadst? Indokolja a vlaszt. F7. Az internet BGP tvlaszt protokollja nyilvnos kulcs titkosts helyett M ACk- dot hasznl a BGP-zenetek alrsra. Mit gondol, mirt a MAC-kdra esett a vlaszts a nyilvnos kulcs titkostssal szemben? F 8. Adjunk meg egy olyan a 8. 8. brn lthat kt zenettl eltr olyan harmadik zenetet, amelynek ugyanaz az ellenrz sszege, mint a 8. 8. brn lv zeneteknek. F9. legyk fel, hogy Alice szimmetrikus kulcs kriptogrfia segtsgvel, egy Ks viszonykulcs hasznlatval szeretne Bobbal kommuniklni. A 8.2. alfejezetben megtanultuk, hogyan hasznlhat a nyilvnos kulcs titkosts arra, hogy a viszonykulcsot eljuttassuk Alice-tl Bobhoz. Ebben a feladatban pedig azt tl ljuk ki, hogyan lehet nyilvnoskulcskriptogrfianlkl,egy kulcseloszt kzpont (keydistribution center, KDC) segtsgvel clba juttatni a viszonykulcsot. A KDC egy olyan szerver, amelynek van egy egyedi, kzs titkos szimmetrikus kulcsa minden egyes regisztrlt felhasznlval. Jellje Alice s Bob ezen kulcsait K . K[K~ s Kf KDC. Tervezzen egy olyan protokollt, amely a KDC segitsgvel juttatja el a Ks viszonykulcsot Alice-nek s Bobnak. A protokoll hrom zenettel oldja meg a viszonykulcs sztosztst: egy zenet Alice-tl a KDC-nek, egy zenet a KDC-tl Alice-nek, vgl egy zenet Alice-tl Bobnak. F10. A 8.24. brn lthatk azok a mveletek, amelyeket Alice hajt vgre, hogy titkossgot, hitelessget s integritst biztostson. brzoljuk azokat a mveleteket, amelyeket Bobnak kell vgrehajtania az Alice-tl kapott csomagon. FI 1. Igaz vagy hamis? (a) Tekintsnk egy A hoszttl egy B hoszt fel IPsec alkalmazsval kldtt csomagok sorozatt. ltalban a sorozat minden egyes csomagjhoz j SA-t hoznak ltre. (b) Tegyk fel, hogy a TCP IPsec felett fut, az AH protokoll hasznlatval. Amikor a TCP jrakld egy csomagot, a kt csomagnak ugyanaz lesz az AHfejrszben lv sorszma. (c) Tegyk fel, hogy Alice s Bob egy SSL-viszonyon keresztl kommuniklnak,
legyk fel, hogy egy tmad, aki nem ismeri a kzs kulcsokat, beszr egy hamis TCP-szcgmenst a csomagok kz helyes TCP ellenrz sszeggel s sorszmmal (s helyes IP-cmekkel s portszmokkal). Az SSL a vev oldalon elfogadja a hamistott csomagot s tovbbtja azt az alkalmazs fel. (d) Tegyk fel, hogy a certifier.com killt egy tanstvnyt a foo.com szmra. Jellemzen az egsz tanstvnyt titkostja a certifier.com nyilvnos kulcsval. (e) Idzzk fel, hogy az OSPF zenetek terjesztsekor kriptogrfiai hash fggvnyt alkalmaznak, ahogy tanultuk. Ahhoz, hogy egy tvlaszt ellenrizni tudja az zenet integritst, kell hogy legyen egy kzs titkos kulcsa azzal az tvlasztval, amelyik ltrehozta az zenetet. (f) Egy hossz zenetet titkostunk a titkostott blokkok lncolsval (CBC). Ezen eljrs sorn a forrs az inicializl vektort (IV) s a titkos kulcsot nyltan kldi el a vevnek. F12. Tekintsk a kvetkez l-WEP protokollt. A kulcs 4 bites s az IV 2 bites. A kulcs vgre fzzk az IV-t a kulcsfolyam generlsakor. Tegyk fel, hogy a kzs kulcs 1010. A ngy lehetsges kulcshoz tartoz kulcsfolyamok az albbiak:
101000:0010101101010101001011010100100... 101001: 1010011011001010110100100101101...
101010: 0001101000111100010100101001111...
101011: 1111101010000000101010100010111...
Tegyk fel, hogy minden zenet 8 bit hossz. Tegyk fel, hogy az ICV (integrity check) 4 bites, s az adat els ngy bitjnek s utols ngy bitjnek XOR kapcsolata. Tegyk fel, hogy az l-WEP-csomagok hrom mezt tartalmaznak: elszr az IV-mezt, utna az zenetmezt, vgl az ICV-mezt gy, hogy ezek kzl nhny titkostva van. (a) Az m = 10100000 zenetet szeret nnk elkldeni a WEP hasznlatval, mikzben IV = 11. Mi lesz a WEP-csomag hrom mezjnek rtke? (b) Mutassa meg, hogy ha a vev dekdolja a WEP-csomagot, megkapja az zenetet s az ICV-t. (c) Tegyk fel, hogy Trudy elfog egy WEP-csomagot (nem felttlenl azt, amelyre IV = 11), s mdostani akarja, mieltt tovbbtan a vevnek. Tegyk fel, hogy Trudy mdostja az ICV els bitjt. Feltve, hogy Trudy nem ismeri egyik IV-hez tartoz kulcsfolyamot sem, mely msik bit(ek)et kell mdostania ahhoz, hogy az ICV-ellenrzsen ne bukjon meg a vett csomag? (d) Ellenrizze a vlaszt gy, hogy az (a) rsz WEP-csomagjban mdostja a biteket, dekdolja az eredmnyl kapott csomagot, s ellenrizze, hogy az integritsellenrzs sikeres. F13. Ksztse el egy llapottart csomagszr tzfal sszekttets- s szrsiszablytbljt. Legyen a lehet legszigorbb, mikzben megfelel a kvetkezknek: (a) minden bels felhasznl ltesthet kls hoszttal Telnet-sszekttetst, (b) a cg weboldalt a 222. 22. 0.12 cmen megtekinthetik kls felhasznlk, (c) ezeken kvl minden kimen s bejv forgalmat blokkol. A bels hlzat cme 222.22.0.0/16. A megolds sorn felttelezze, hogy az sszekttets-tblban ppen 3 sszekttets szerepel, amelyek kzl mindegyik bentrl kifel irnyul. Ezekhez talljon ki megfelel IP-cmeket s
portszmokat. F14. Tekintse a Wireshark (korbbi nevn Elhereal) albbi kimenett, amelyen egy SSL-viszony rszlete lthat.
(a) A 112 sorszm csomagot a kliens vagy a szerver kldte? (b) Mi a szerver IP-cme s portszma? (c) Feltve, hogy nincs csomagveszts s jraklds, mi lesz a kliens kvetkez TCP-szegmensnek a sorszma? (d) Hny SSL-rekordot tartalmaz a 112 sorszm csomag? (c) A 112 sorszm csomag mestertitkot (Master Secret), rejtjelezett mestertitkot (F.ncrypeted Master Secret), vagy egyiket sem tartalmaz? (f) Feltve, hogy a kzfogs zenet tpusmezje 1 bjtos s mindegyik hosszmez 3 bjtos, mi a mestertitok vagy a rejtjelezett mestertitok els s utols bjtja? (g) A kliens ltal titkostott kzfogszenet hny SSL-rekordot vesz figyelembe? (h) A szerver ltal titkostott kzfogszenet hny SSL-rekordot vesz figyelembe?
N a . . 1 Time Sarce
106 H.. 805705 108 21.830201
Ill 21.853520
128.238.38.162
Dftstjrwtwn
216.75.194.220
216. 75.10.220
216.75.104.220
YccoooT Jrrfc
S5tv3
SSi.v3 SS.v3
128.238.38.162
128.238.38.162 216. 7S.l*i .220
SsCv2~c1T*nt xSTTT"
Mrverwellc.
Oofta
114 21.954189
& r-r.vae 112 (2SB i/s'on wire, 253 es captured) * kt berget X2. sre: ItmjL0:60:9? (00:09:6to:i0:60:$9). Ost: All-Msnp-r out er sMoo (00:00s0c:07uc:) * Internat Protocol. Src: 228.238.38.162 (128.238.33.1). >:t: UO.75.lW.220 <216.75.104.?20> 3 Tr,myfS5loo control protocol, 5rc Pflft: 2271 (2271). 0?t Port: https (4*3). 5*q: 79, ACk: 2785, Ln: 704 a secure socket layer a S3lv3 ftecord Layers Handshake protocol: client rcey exchange content Type: Handshake (22) version: SSL 3.0 (0x0300) (jtngchi 13?
* AA*< +
123.238.38.162
# -* * A
* . i ..14
Application 0t*
Mi*.
d 5SLV3 Record nyer: Change Cipher Spec Protocol: Change Cipher spec content Typ: Change cipher spec (20) verilon: SSL 3.0 (0x0300) Length: 1 Change Cipher spec nassage B sstv3 ftecord Layer: wandsha*e protocol: encrypted nandshafce Message content Type: Handshake (22) version: SSL 3.0 (0x0300) Length: 56 K*nd*hake protocol: Encrypted Handshake Message
Length: 12fi
kc Type: c
S3iSLIS
1*
v.'.--
* Iii/jL ...[. 0 .. e 4 e 5 12 b 9 U
f6
0100 0100 16 0 dc 0 011 38 29. . a9 5* 74 03 3803 290 a9 5a 74 . . dc . . . 11 . . 8)...ZT 15 4 4f 4b OC e? do df do 5b C4 as G 50 b 50 e? df 5 bOc C4 44 j8 ea 44 7 AH. 0 PK. b9 11 f6 b3 9<i d* b7 22 M 3a 17 9a 3 ab f2 41 c7 2e ad d5 lc 5b a2 Od ab 4
b 3 9 <j tf? b?
22
M 17
9a
83
182
8.
SZMTGP-HLZATOK
BIZTONSGA
GONDOLKODTAT KRDSEK
183
Gondolkodtat krdsek
Gl. Tegyk fel, hogy egy tmad kpes DNS-zeneteket beszrni, illetve eltvoltani a hlzatrl. Mutasson hrom forgatknyvet, amelyekbl kiderl, hogy milyen problmkat okozhat egy ilyen tmad! G2. Mg senki nem igazolta formlisan, hogy a 3L)ES s az RSA biztonsgos. Ennek fnyben honnan tudhatjuk, hogy tnyleg biztonsgosak? G3. Mi a Kerberos? Hogyan mkdik? Mi kze van e fejezet F9. feladathoz? G4. Ha az IPsec a hlzati rtegben biztonsgot nyjt, mirt van szksg az IP feletti rtegekben is biztonsgi megoldsokra? G5. Ltogasson el a PGP nemzetkzi honlapjra (http://vvvvw.pgpi.org/ )! Figyelembe vve tartzkodsi helyt, a PGP mely verzijt jogosult letlteni?
184
8.
SZMTGP-HLZATOK
BIZTONSGA
Vlaszol
Steven M. Bellovin
Steven M. Bellovin a Flohram Parkban, New Yerseyben, az AT&T Lb kutatintzetben a hlzati szolgltatsok kutatsval foglalkoz laboratriumban eltlttt sok esztend utn csatlakozott a Columbia University tantestlethez. Hlzatokkal, biztonsggal s azzal a kr dssel foglalkozik, hogy ez a kett mirt zrja ki egymst. A Usenet megalkotsban szerzett rdemeirt 1995-ben a Usenet letmdjjal tntettk ki. A Usenet az els olyan vitafrum volt, amely kt vagy tbb szmtgpet kttt ssze, s lehetv tette a felhasznlknak, hogy informcikat cserljenek, valamint bekapcsoldhassanak a vitkba. Steve vlasztott tagja a National Academy of Enginee- ringnek. BA diplomjt a Columbia Universityn, a PhD cmt pedig a University of North Carolinn szerezte. Mi sztnzte arra, hogy a hlzatbiztonsgra specializldjon? Lehel, hogy szokatlanul fog hangzani, de roppant egyszer a vlasz: szrakoztatott. Rendszerprogramozssal s rendszeradminisztrcival foglalkoztam, ami viszonylag termszetes mdon vezetett a biztonsghoz. Visszagondolva az egyetemistaknt rendszerprogramozi rszmunkaids llsaimra, mindig is rdekelt a kommunikci. A biztonsggal kapcsolatos munkmat kt tovbbi tnyez motivlja - a vgy, hogy a szmtgpek hasznosak legyenek, azaz a mkdsket ne zavarhassk meg tmadk, illetve hogy a szemlyes adatokat megvdjk. Mi volt az elkpzelse a Usenetrl akkor, amikor a fejlesztsn dolgozott? s most? Eredetileg gy tekintettk, mint annak egyik mdjt, hogy az orszg klnbz pontjain is beszlhessnk a szmtstudomnyrl, programozsrl, emellett persze rengeteg helyi rdekeltsg, adminisztratv dologra is felhasznlva, mint pldul a hirdetsek stb. Valjban eredetileg gy kpzeltem, hogy 1-2 zenet lesz naponta, legfeljebb 50-100 klnbz helyrl. Az emberekkel kapcsolatos tmk azonban meghoztk az igazi nvekedst, tbbek kztt - de nem kizrlagosan - az emberek s szmtgpek viszonyra vonatkozan. Az vek sorn a kedvenc
GONDOLKODTAT KRDSEK
hrcsoportjaim olyanok voltak, mint a rec.woodworking (famunkkkal kapcsolatos hrcsoport) vagy a sci.crypt (kriptogrfival kapcsolatos hrcsoport). Bizonyos rtelemben a web felvltotta a hrcsoportokat. Ha most kezdenk a tervezsbe, biztosan teljesen mskppen nzne ki az egsz. Ennek ellenre mg mindig jl bevlt mdja annak, hogy szleskren elrjnk egy adott tma irnt rdekld kznsget anlkl, hogy egy bizonyos weboldalra kellene hagyatkoznunk. Volt valaki, aki szakmailag nagy hatssal volt nre? Ha igen, milyen mdon? Fred Brooks professzor - Chapell Hillen University of North Carolina szmtstudomnyi tanszknek alaptja s els vezetje, az IBM S/360 s OS/360 fejlesztcsapatnak ve-
185
186
8.
SZMTGP-HLZATOK
BIZTONSGA
zetje, valamint a The Mythical Man-Mouth szerzje - risi hatssal volt a karrieremre. Mindenekeltt kifinomult szemllete, s az a kiegyenslyozottsg, ahogy a problmkat a vals vilg kvetelmnyeiben szemlli (mennyivel rendetlenebb a val vilg annl, mint azt elmleti szakemberek szeretnk!), s ahogy az ellenttes rdekeket kiegyenslyozza egy megolds tervezse kzben. A legtbb szmtgpes munka mrnksg - vagyis annak a mvszete, hogy a megfelel kzputak megtallsval sok ellenttes szempontnak megfeleljnk. Hogyan kpzeli a hlzatok s a biztonsg jvjt? Eddig a biztonsg fleg az elszigetelds ltal valsult meg. Pldul egy tzfal megakadlyozza bizonyos szolgltatsokhoz s szmtgpekhez val hozzfrst. Ezzel egytt az egyre kiterjedtebb sszekttetsek idejt ljiik - egyre nehezebb elszigetelni dolgokat. s ami mg ennl is rosszabb hr, a termelrendszereinknek egyre tbb nll, de hlzattal sszekttt rszekre van szksge. Mindezt biztonsgoss tenni az egyik legnagyobb kihvs. Mit a tart a biztonsg legnagyobb eredmnyeinek? Milyen messzire kell mg eljutnunk? Kevsb tudomnyosan fogalmazva, tudjuk, hogyan kell bnni a kriptogrfival. Ez risi segtsg. A legtbb biztonsgi problmt viszont a hibs kdok okozzk, ami sokkal nehezebb krds. Valjban ez a legrgibb megoldatlan problma a szmtgpes tudomnyban, s szerintem ez gy is lesz mg egy darabig. A kihvs az, hogy kitalljuk, hogyan lehet biztonsgos rendszereket pteni, ha nem biztonsgos elemekbl kell azt sszeraknunk. A hardverhibk megbzhatsga tern ezt mr meg tudjuk tenni. Vajon kpesek vagyunk ugyanerre a biztonsg tekintetben is? Mit tancsolna a internettel s a hlzatbiztonsggal kapcsolatban a dikoknak? A mdszerek elsajttsa a knnyebbik rsz. Sokkal nehezebb megtanulni paranoisan gondolkozni. Nem szabad elfelejtennk, hogy a valsznsgi eloszlsok itt nem rvnyesek - a tmadk kpesek megtallni s kihasznlni a legvalszintlenebb krlmnyeket is! s nem utolssorban, a rszleteken mlik minden.
9.
FEJEZET
Hlzatfelgyelet
Az els nyolc fejezet ttanulmnyozsa utn tisztban vagyunk azzal, hogy egy hlzat szmos sszetett, egymssal egyttmkd hardverbl s szoftverbl ll az adatkapcsolatoktl, kapcsolktl, tvlasztktl, hosztoktl s a hlzat egyb
GONDOLKODTAT KRDSEK
fizikai rszeitl egszen a rengeteg (hardver s szoftver) protokollig, amelyek ezeket a hardvereszkzket irnytjk s sszehangoljk. Abban az esetben, amikor egy szervezet tbb szz, st tbb ezer ilyen elemet hlzatt foltoz ssze, nem csoda, hogy a komponensek esetenknt meg hibsodnak, a hlzat elemeit rosszul lltjk be, a hlzati erforrsokat tlzott mr tkben hasznljk ki, vagy a komponensek egyszeren eltrnek (pldul elvgnak egy kbelt vagy egy pohr szdt ntenek egy tvlasztra). A hlzati rendszergazdnak, akinek a feladata a hlzat stabil mkdst biztostani, kpesnek kell lennie a hasonl hibk kikszblsre (mg jobb, ha meg is tudja elzni ket). Mivel tbb ezer potencilis hlzati komponens helyezkedik el nagy trsgben, nyilvnval, hogy a hlzati mveleti kzpontban (network operations center, NOC) lv rendszergazdnak szksge van olyan eszkzkre, amelyekkel figyelheti, felgyelheti s vezrelheti a hlzatot. libben a fejezet ben megvizsgljuk a rendszergazda ltal e feladat sorn hasznlt architektrt, protokol lokat s informcis alapot.
187
9.1. Mi az a hlzatfelgyelet?
Mieltt a hlzatfelgyeletbe belemerlnnk, tekintsnk nhny illusztratv, a val vilgbl vett - nem hlzati tmj - forgatknyvet, amelyekben a rendszergazdnak egy sszetett rendszer szmos interaktv komponenst kell figyelni, felgyelni s vezrelni. Az elektromos energit elllt ermvek (legalbbis a npszer mdik, pldul a hres mozi, a Kna szindrma' szerint) egy vezrlteremmel rendelkeznek, ahol szmlapok, mreszkzk s jelzfnyek jelentik meg a tvoli szelepek, csvek, trolednyek s az erm egyb rszeinek llapott (hmrsklet, nyoms, ramls). Ezek az eszkzk teszik lehetv az opertor szmra, hogy az erm szmos rszt ellenrizze, s ezek figyelmeztethetik az opertort (a hres vrs villogssal) a kzelg bajra. Az erm kezelje ekkor lpseket tehet a klnbz komponensek vezrlsre. Ehhez hasonlan egy replgp piltaflkjnek berendezse is lehetv teszi a pilta szmra, hogy a gpet alkot egyes elemeket ellenrizhesse s vezrelhesse. A fenti kt pldban a rendszergazda ellenrzi a tvoli eszkzket, s elemzi az adataikat annak biztostsa rdekben, hogy mkd kpesek legyenek s az elrt hatrok kzlt mkdjenek (pldul az atomerm magja nem kezd olvadni, a replgpbl pedig nem fog kifogyni az zemanyag), az adatokra
Hoszt
Hoszt
Szerver
9.1.
belli
bemutatsra
bra.
Egyszer
forgatknyv
hlzatfelgyelet
hasznlatnak
A gazdagp vagy az tvlaszt hlzati krtyjnak meghibsodsa esetn a hiba feldertse. Megfelel hlzatfelgyeleti eszkzkkel egy hlzati entits (pldul
az A tvlaszt) rtestheti a hlzati rendszergazdt, hogy az egyik interfsze nem mkdik. (Hz sokkal elnysebb, mint egy olyan telefonhvs, amellyel egy dhs felhasznl rtesti az NOC-t, hogy a hlzati kapcsolat nem mkdik.) A rendszer- gazda, aki aktvan ellenrzi s elemzi a Hlzati forgalmat, vlsggal lenygzheti az esetleges dhs felhasznlt azzal, hogy id eltt szleli az interfsz hibjt, s kicserli a hlzati krtyt, mieltt az elromlana. Ezt pldul akkor lehet megtenni, ha a rendszergazda szreveszi, hogy az elromlani kszl interfsz ltal kldtt keretek ellenrz sszegben megnvekszik a hibk szma. Gazdagp ellenrzs. Ebben az esetben, a hlzati rendszergazda bizonyos idkznknt ellenrizheti, hogy minden hlzati gazdagp be van-e kapcsolva s mkd- kpes-e. A rendszergazda azzal is lenygzheti a hlzatban lv felhasznlt, hogy elretekinten reagl egy hibra (gazdagp lell), mieltt mg azt a felhasznl jelenten. Forgalom figyelse az erforrs-kioszts segtsre. A hlzati rendszergazda figyelheti a forrs-cl forgalmi mintkat, s szreveheti, ha pldul a LAN-szegmensek kztti kiszolgl tkapcsolsa esetn a tbb LAN-on thalad forgalom jelentsen cskken. Kpzeljk csak el azt az eufrit (fknt a magasabb szint adminisztrcinl), amikor nagyobb teljestmnyt tudunk elrni j eszkzbeszerzse nlkl. Hasonlan, ha a rend szergazda figyeli az adatkapcsolatok kihasznltsgt, szreveheti, hogy egy LAN-szeg- mens vagy egy kls vilg fel irnyul adatkapcsolat tlteltdik, s egy nagyobb svszlessg adatkapcsolatot kell lefoglalni (termszetesen megnvekedett kltsg gel). A rendszergazdt akkor is ajnlott rtesteni, ha egy adott adatkapcsolaton a tor lds szintje meghalad egy bizonyos kszbrtket, gy nagyobb svszlessg adatkapcsolatot lehet lefoglalni, mieltt a torlds komolly vlik. Az tvlaszttblk gyors vltozsainak szlelse. tvonal vltakozsa (oda-vissza ugrls) - az tvlaszttblk gyakori vltozsa - az tvlaszts instabilitst vagy egy rosszul belltott tvlasztt jelezhet. Termszetesen jobb, ha az tvlasztt helytelenl bellt hlzati rendszergazda maga fedezi fel a hibt, mieltt a hlzat mkdskptelenn vlik. Ellenrzs az SLA-k szmra. A szolgltatsi szerzdsek (service level agreements, SLAs) megjelensvel az ellenrzs irnti rdeklds az utbbi nhny vben jelentsen megnvekedett [Larsen 1997; Huston 1999a]. Az SLA egy olyan szerzds, amely meghatrozza a hlzati szolgltat ltal nyjtott specilis teljestmny mrtkt s a szolgltat rendelkezsre llsnak szintjt. Verizon s Sprint csupn kett a szmos hlzati szolgltat kzl, amelyek SLA-kat biztostanak az gyfeleiknek [Verizon 2007; Sprint 2007]. Ezek az SLA-k tartalmazzk tbbek kztt a szolgltats elrhetsgt (lellst), ksleltetsi idt, tvitelt s lellsjelzsi zeneteket. Nyilvnval, hogy ha a teljestmnykvetelmny a hlzati szolgltat s az gyfl kztti szolgltatsi szerzds rsze, akkor a teljestmny mrse s felgyelete nagyon fontos a hlzati rendszergazda szmra. Betrs detektlsa. A hlzati adminisztrtor szmra jelezni kell, ha a hlzati forgalom egy gyans forrstl (pldul gazdagptl vagy portszmtl) rkezik, vagy oda irnyul. Ugyangy a rendszergazdnak rdemes szlelnie (s sok esetben szrnie) bizonyos tpus forgalmakat (pldul a forrs ltal irnytott csomagokat
vagy az adott gazdagp fel irnytott nagymennyisg SYN-csomagot), amelyek a 8. fejezetben trgyalt biztonsgi tmadsokra jellemzk. A Nemzetkzi Szabvnygyi Szervezet (ISO) ltrehozott egy hlzat felgyeleti modellt, amely segtsgvel a fentebb elmeslt forgatknyvek egy jobban szervezett keretrendszerbe helyezhetek. t hlzatfelgyeleii terletet hatroztak meg:
Ebben a fejezetben csupn a hlzatfelgyelet alapismereteit mutatjuk be. A kzponti tmnk szndkosan szk - csupn a hlzatfelgyelet infrastruktrjt vizsgljuk meg - az tfog architektrt, a hlzat felgyeleti protokollokat s az informcis bzist, amelyekkel a hlzati rendszergazda a hlzatot
mkdkpess teszi. Nem mutatjuk be a hlzati adminisztrtor dntshoz folyamatait, aki a tervezst, az elemzst s a NOC-hoz eljuttatott felgyeleti informciknak megfelel vlaszlpseket elvgzi. E terlet kapcsn olyan tmk jhetnek szba, mint pldul a hibaazonosts s hibakezels [Katzela 1995; Medhi 1998; Steinder 2002], anomlia elretekint szlelse [Thottan 1998], riasztsi korrelci [Jakobson 1993) s sok ms egyb. Nem trgyaljuk tovbb a tgabb tmj szolgltatskezelst [Saydam 1996; RFC 3052; AT&T SLM 2006] sem az erforrsok biztosi-
tst, mint pldul a svszlessg, a kiszolgl kapacitsa s a vllalatok olyan szmtsi/ kommunikcis erforrsainak biztostst, amelyek a vllalatok egyb kldetsspecifi- kus szolgltatsainak a kvetelmnyei. Ebben az utbbi tmban az olyan szabvnyok, mint a TMN [Glitho 1995; Sidor 1998] s a TINA [Hamada 1997] azok a nagyobb, tfogbb (s vitathatan nehzkesebb) szabvnyok, amelyek e nagyobb krdsre vlaszt adnak. A TINA-t pldul a kvetkez mdon hatrozzk meg: kzs clok, elvek s koncepcik halmaza, amelyek lefedik a szolgltatsok, erforrsok s az osztott feldolgozsi krnyeze tek felgyelett [Hamada 1997]. Nyilvnval, hogy minden egyes tmrl kln knyvet lehetne rni, s messzebb vinne a szmtgpes hlzatok technikai nzpontjtl. Amint fentebb is emltettk, a mi jelenlegi szernyebb clunk nem ms, mint bemutatni annak az infrastruktrnak a fontosabb mozgatrugit, amelynek segtsgvel a hlzati rendszergazda a bitek zavartalan ramlst biztostja. Gyakori krds, hogy Mi az a hlzatfelgyelet?. E fenti lersunk motivlst s illusztrcit nyjtott a hlzatfelgyelet nhny felhasznlsra. A fejezetet a hlzatfelgyelet [Saydam 1996] egymondatos (habr elgg hossz) defincijval zrjuk:
hlzatfelgyelet magban foglalja a hardver-, szoftver- s emberi erforrsok teleptst, integrcijt s sszehangolst annak rdekben, hogy ellenrizze, tesztelje, lekrdezze, konfigurlja, elemezze, kirtkelje s vezrelje a hlzatot s az egyes rszek erforrsait azrt, hogy elfogadhat ron nyjtson vals idej, mkdkpes teljestmnyt, s kielgtse a szolgltats minsgi kvetelmnyeit.
A Elgg terjengs, m annl mkdkpesebb definci. A kvetkez fejezetekben valameny- nyi hst is rtesznk a hlzatfelgyelet ilyenfajta, inkbb csontokbl ll defincijra.
problma addik; az iroda vezetje, aki a vllalati ltrn prbl felfel kapasz kodni (taln a mi llsunkra plyzva), kldhet egy ltalunk nem krt zenetet is, hogy a dolgok milyen simn mennek az irodjban. A berkezett jelentseket megvizsgljuk, remlve, hogy mindentt minden rendben van, m biztosan lesz olyan problma, ami a mi beavatkozsunkat is ignyli. Kezdemnyezhetnk kln prbeszdet a problms irodkkal, gyjthetnk tbb adatot annak rdekben, hogy megrtsk a problmt, s aztn elkldhetjk a vgrehajt parancsot (Tedd meg ezt a vltoztatst!) az iroda vezetjnek.
194
Ebben a nagyon is gyakori emberi pldban benne van a szervezet irnytsra vonatkoz infrastruktra - a fnk (mi), a tvoli helyek, amelyeket irnytani kell (az gazati irodk), a tvoli gynkk (az irodk vezeti), a kommunikcis protokollok (ltalnos jelentsek s adatok kldshez s kln prbeszdekhez) s adatok (a jelentsek tartalma s a tevkenysgek, termels s kltsgvets mennyisgi mrse). Az emberi szervezeti felgyelet minden egyes komponensnek megtalljuk a megfeleljt a hlzatfelgyeletben. A hlzatfelgyeleti architektra koncepcionlisan azonos az egyszer emberi szervezet analgival. A hlzat felgyeleti terletnek megvannak a sajt terminolgii az architektra klnbz rszeire, ezrt ezeket a terminolgikat vesszk t mi is. A 9.2. brn lthat, hogy a hlzatfelgyeleti architektra hrom f alkoteleme: a felgyel entits (a fenti analgi nk szerint a fnk - mi), a felgyelt eszkzk (az irodk) s a hlzatfelgyeleti protokoll. A felgyel entits (managing entity) egy alkalmazs, amelyet ltalban ember kezel, s egy kzpontostott hlzat felgyeleti llomson fut a NOC hlzati mveleti kzpontban. A felgyel entits a hlzatfelgyeletre irnyul tevkenysg helye, feladata pedig a hlzatfelgyeleti informcik sszegyjtse, feldolgozsa, elemzse s/vagy megjelentse. Itt trtnik a hlzat viselkedsnek vezrlst clz tevkenysgek kezdemnyezse, s innen irnytja az emberi hlzati rendszergazda a hlzati eszkzket. A felgyelt kszlk (managed device) a felgyelt hlzatban tallhat hlzati berendezsek rsze (lehet akr szoftver is). Az emberi analginkban ez a kihelyezett iroda. A felgyelt kszlk lehet gazdagp, tvlaszt, hd, nyomtat vagy akr modem is. Egy
gynk Ada
gynk [Adat
Hlzat felgyeleti protokoll
Felgyelt kszlk
gynk Adat
X'
Felgyelt kszlk
Felgyelt kszlk
felgyeli eszkzn bell lehetsges szmos felgyelt objektum (managed object) is. Ezek a felgyelt objektumok a tnyleges hardverelemek a kszlken bell (pldul a hlzati krtya), s a hardver- s szoftverelemek belltsainak paramterhalmaza (pldul krzeten belli tvlasztsi protokoll, mint amilyen a RIP). Az emberi analgink szerint a felgyelt objektumok lehelnek a kihelyezett irodk klnbz osztlyai. Minden ilyen felgyelt objektum rendelkezik valamilyen Informcival, amelyeket a felgyeleti infor mcis adatbzisba (management in formt ion base, MIB) gyjtenek ssze; ltni fogjuk, hogy ezek az informcidarabok elrhetek (s sok esetben llthatak is) a felgyel en tits szmra. Az analginkban, a MIB megfelel a kihelyezeti irodk s a kzponti iroda kztti prbeszdben elhangz mrt adatoknak (mrsi adatok a tevkenysg, a termels s a kltsgek mrtkrl, valamint a kltsgvetsi mdostsok!). A MIB-bel rszletesen a 9.3. alfejezetben foglalkozunk. Vgl, szintn minden felgyelt kszlkben jelen van a hlzatfelgyel gynk (network management agent), egy, a felgyelt kszlken fut folyamat, amely a felgyel entitssal kommunikl, valamint helyi utastsokat hajt vgre a felgyelt kszlken a felgyel entits irnytsa alatt s annak parancsai alapjn. A hlzatfelgyel gynk a fenti analgiban az iroda vezetje. A hlzatfelgyeleti architektra harmadik darabja a hlzatfelgyeleti protokoll (network management protocol). A protokoll a felgyel entits s a felgyelt kszlk kztt mkdik, lehetv tve a felgyel entits szmra, hogy a felgyelt eszkzk llapott lekrje, valamint az gynkkn keresztl kzvetve utastsokat hajtson vgre. Az gynkk hasznlhatjk a hlzatfelgyeleti protokollt, hogy a felgyel entitst kivteles esemnyekrl rtestsk (pldul komponensmeghibsodsok esetn, vagy a teljestmny kszbrtkeinek megszegse esetn). Fontos megjegyeznnk, hogy a hlzatfelgyeleti protokoll nmagban nem alkalmas a hlzat kezelsre. Csupn egy eszkzt knl, ami vel a hlzati rendszergazda a hlzatot felgyelheti (ellenrizheti, tesztelheti, lekrdezheti, bellthatja, elemezheti s vezrelheti). Ez apr, m fontos klnbsg! Annak ellenre, hogy a hlzatfelgyeleli infrastruktra alapveten knnyen felfoghat, knnyen megrekedhetnk a felgyel entits, hlzatfelgyel gynk s felgyeleti informcis bzis kifejezsekhez hasonl fogalmaknl, amelyek a hlzatfelgyelet nyelvezetnek sztrba tartoznak. A hlzatfelgyelet nyelvezete szerint az egyszer gazdagp figyel felllsunknl pldul a felgyelt kszlknl tallhat hlzatfelgyel gynkt gyakran lekrdezi a felgyel entits - egyszer elkpzels, m nyelvileg bo nyolult! Kis szerencsvel a vllalati analgia s a hlzatfelgyelettel kapcsolatos nyilvn val prhuzamok segthetnek a fejezet tovbbi rszeinek megrtsben. A hlzatfelgyeleti architektrrl adit fenti lersunk elgg ltalnos, s szleskren vonatkozik az vek alatt megalkotott hlzatfelgyeleti szabvnyokra s protokollokra. A szabvnyok a 1980-as vek vgn kezdtek megjelenni, az OSI hlzatfelgyeleti protokollja, a CMISE/CMIP (Common Management Information Services Element/ Common Management Information Protocol) [Piscatello 1993; Stallings 1993; Glitho 1998] s az internet egyszer hlzatfelgyeleti protokollja (Simple Network Management Protocol, SNMP) |RFC 3410; Stallings 1999; Rose 1996] ltrejttvel, mint a kt legfontosabb
szabvnnyal [Miller 1997; Subramanian 2000]. Mindkt szabvnyt gyrt specifikus termkektl s hlzatoktl fggetlennek terveztk. Mivel az SNMP-t azok ban az idkben, amikor a hlzatfelgyeletre geten szksg volt, rvid id alatt gyorsan terveztk s valstottk meg, szles kr felhasznlsra s elfogadsra tallt. Manapsg az SNMP a legtbb helyen alkalmazott s teleptett hlzat felgyeleti keretrendszer. Az SNMP rszleteit a kvetkez alfejezetben mutatjuk be.
ly..k J gyakorlatban A SprintLink hlzati mveleti kzpontja A hlzatok sokfele alakkal s mrettel rendelkezhetnek. A legkisebb otthoni hlzattl eg szen a legnagyobb 1. szint ISP-ig, a hlzati opertor(ok) feladata annak biztostsa, hogy a hlzat zkkenmentesen mkdjn. Mi trtnik valjban a hlzati mveleti kzpontban (NOC), s mit is csinl a hlzati opertor? A fldgolyt behlz hlzat, a bolyg egyik legnagyobb 1. szint IP-hlzata, amelyet a Sprint cg mkdtet. A SprintLink nven ismert hlzat (tovbbi informcik a www.sprint . com weboldalon) tbb mint 70 helyen van jelen, s tbb mint 800 tvlasztval rendelkezik. Ez risi svszlessget jelent. A SprintLink elsdleges NOC-kzpontja Restonban (VA) van, httr NOCkzpontjai pedig Floridban, Georgiban s Kansas Cityben vannak. A Sprint az ATM-hlzata, kerettovbbt hlzata s optikai hlzatai szmra tovbbi NOC-ket tart fenn. Minden pillanatban ngy hlzati mveleti kzpont csapata figyeli s kezeli a SprintLink IP-hlzat magjban lv berendezseket. Egy msik csapat ll kszenltben, hogy az gyfe lek hibabejelentseit kezelje, cs vlaszoljon a krseikre. Az automatizls - a megfigyelsben (riaszts korrelci, hibaazonosits s szolgltats-helyrellts), a konfigurcifelgyeletben s az gyfelek hibabejelentseinl - teszi lehetv, hogy ez a kis opertori csoport ellthassa ennek a nagy s sszetett hlzatnak felgyelett. Abban az esetben, ha problma addik, a SprintLink opertorainak elsdleges feladata az gyfeleknek nyjtand szolgltatsok gyors helyrelltsa. Az NOC-opertorok egy adott problma esetn elre meghatrozott prioritsi sorrendel lltanak fel, diagnosztizlnak, s helyrelltsi lpseket tesznek. Azokat a problmkat, amelyeket nem tudnak azonnal diag nosztizlni, vagy nem tudnak helyrelltani egy bizonyos idn bell (pldul 15 perc alatt), je lentik a kvetkez szinten lv szakembereknek. Ezen a szinten a tmogatst a Sprint National Technical Assistance Center (N'TAC) nyjtja. Az XTAC-tagok felelsek a problma mlyebb gykernek felkutatsrt; mveleti eljrsokat rnak az NOC szmra, s egyttmkdnek a termkek szolgltatival (pldul tvlaszt beszlltkkal) a n n a k rdekben, hogy kiele-
Notwor* Op+rmUo<\*
Nmtworfc
Mtntpftmtnt Center
A Sprint technikusai a kpen lthathoz hasonl mveleti kzpontokban figyelik a hlzat psgt
mezzk s megoldjk a termkspecifikus hibkat. A hibk kzel 90 szzalkt kzvetlenl az NOC-technikusok s mrnkk oldjk meg. A NOC s a NTAC szemlyzete ms csapatok kal is egyttmkdik, tbbek kztt (kls s bels) partner NOC-kzpontokkal s a Sprint helysznel mveleti csapatval, amely helyszni szemet, kezet s flet szolgltat a Sprint POP-okben (jelenlti helyeken). A m i n t azt a fejezetben mr korbban is emltettk, a SprintLinknl (s ms ISP-knl is) a hlzatfelgyelet hibafelgyeletbl hatkonysgfelgyelett, majd szolgltatsfelgyelett fejldtt, egyre nvekv hangslyt helyezve az gyfelek szksgleteire. Amellett, hogy az gyfelek szksgleteire koncentrlnak, a Sprint opertorai bszkk a kiemelked zemeltetsre s arra a szerepkre, a m i t a vilg egyik legnagyobb ISP-jnek globlis hlzati infrastruktrjnak fenntartsban s rzsben betltenek.
Pldul milyen pnznem (dollr, eur?) szerepel a kltsgvetsi jelentsben? Milyen egysgekben mrik a termelst? Annak ellenre, hogy ezek a rszletek egyrtelmnek tnnek, ezekben is meg kell llapodni. Vgl pedig meg kell hatrozni azt a mdot, ahogyan az informcit a f iroda s a kihelyezett irodk kztt kicserlik (azaz a kommunikcis protokollt). Az internetszabvnyos hlzatfelgyeleti tevkenysgek a fenti krdsekre prblnak vlaszt adni. A keretrendszer ngy rszbl ll: A hlzatfelgyeleti objektumok (azaz MIB-objektumok) defincija. Az internetszabvnyos hlzatfelgyeleti tevkenysgek esetn a felgyeleti informcit a felgyelt objektumok gyjtemnyeknt brzoljk, amelyek egytt egy virtulis informcis trhzat formlnak, amelyet hlzat felgyeleti adatbzisnak (Management Information Base, MIB) neveznk. Egy MIB-objektum lehet egy szmll, pldul az IP-adatcsomag fejrsznek hibja miatt eldobott csomagok szma vagy a hibs tvitelek rzkelsnek szma az Ethetnet-interfszkrtynl; lehet ler informci, pldul a DNS-kiszolgln fut szoftver verzija; llapotinformci, pldul egy adott eszkz megfelelen mkdik-e; vagy protokollspecifikus informci, pldul adott clhoz vezet tvonal. Az MIB-objektumok teht meghatrozzk a felgyelt kszlknl fenntartott felgyeleti informcit. Az sszekapcsold MIB-objektumok MIBmodulokba szervezdnek. A vllalati analginkban a MIB a kihelyezett irodk s a kzponti iroda kztt kicserlt informcit hatrozza meg. Egy adatler nyelv, amelyet hlzatfelgyeleti adatok szerkezetnek (Structure of Management Information, SMI) neveznek. Definil adattpusokat, egy objektum- modellt s a felgyeleti informcik ltrehozsra s mdostsra vonatkoz szablyokat. Az MIB-objektumokat ezen az adatler nyelven definiljk. A szoksos analginkban az SMI a kicserlt informci pontos alakjt hatrozza meg. Egy protokoll, SNMP. A protokoll a felgyelt hlzatban a felgyel entits s az entits nevben cselekv gynk kztti informcik s parancsok tvitelre szolgl. Biztonsgi s administrcis kpessgek. Ezen kpessgekkel val kiegszts jelenti az SNMPv3 javtst az SNMPv2-vel szemben. Az internetes hlzatfelgyeleti architektra teht modulris felpts, egy protokollfg- getlen adatler nyelvvel s a MIB-bel, valamint egy MIB-fggetlen protokollal. rdekes mdon ezt a modulris szerkezetet elszr azrt vezettk be, hogy enyhtsk egy SNMP-alap hlzat fel gyeletrl trtn tlls nehzsgeit egy olyan ISO ltal fejlesztett hlzatfelgyeleti keretrendszerre, amely az SNMP els bevezetsekor annak versenytrsaknt jtt ltre - m az tlls sohasem kvetkezett be. Idvel azonban az SNMP - modulris tervezse folytn - h rom f fejldsi szakaszon ment keresztl, a fentebb megbeszlt ngy f alkotrsz fggetlen fejldsvel. A modularits nyilvnvalan helyes dnts volt, a rossz ok ellenre is! A kvetkez alfejezetben az internetszabvnyos hlzat felgyeleti tevkenysgek ngy f alkotrszt mutatjuk be rszletesen.
szksg van ahhoz, hogy a hlzatfelgyeleti adatok szintaxisnak s szemantikjnak jldefiniltsgt s egyrtelmsgt biztostani lehessen. Vegyk szre, hogy az SMI nem definilja a felgyelt hlzati entitsban lv adatok meghatrozott elfordulst, m annl inkbb meghatrozza azt a nyelvet, amellyel az ilyen informcit le lehet rni. Az SNMPv3-hoz kapcsold SMI-t (amelyet zavar mdon SMIv2-nek hvnak) ler dokumentumok az [RFC 2578; RFC 2579; RFC 2580] ajnlsok. Vizsgljuk meg az SMI-t alul rl felfel, az SMI alapvet adattpusaival kezdve. Ezutn megnzzk, hogy a felgyelt objektumokat hogyan lehet az SMI-ben lerni, majd azt is, hogy a vonatkoz felgyelt objektumok hogyan rendezdnek modulokba.
megrkezett s egy felsbb szint protokoll fel sikeresen tovbbtott IPadatcsomagok szmt. A definci utols sora az objektum nevre vonatkozik, az ezzel foglalkoz tmrl a kvetkez fejezetben szlunk. 9.1. tblzat. Alapvet SMI-adattpusok
Adattpus INTEGER Lers Az ASN.1 szerint definilt 32 bites integer, -2 5' s 2JI - 1 kztti rtkkel, vagy a lehetsges megnevezett konstans rtkek egy listjbl vlasztott rtk. Integer32 Unsiqned32 OCTET STRING 32 bites integer -23 s 231 - 1 kztti rtkkel. 32 bites inteqer 0 s 232 - 1 kztti rtkkel. ASN.1 formtum bjt karakterlnc, amely tetszleges binris vagy szveges adatot reprezentl, legfeljebb 65535 bjt hosszon. OBJECT IDENTIFIER ASN.1 formtum kzpontilag hozzrendelt (strukturlt nv), lsd 9.3.2. alfejezetet. 1 Padd ress Counter32 Counter64 Gauge32 32 bites interneteim 32 bites szmll, amely 0-tl nvekszik 23> -1-ig, majd 0-tl jra kezddik. 64 bites szmll 32 bites integer, amely nem megy 2,; - 1 fl s 0 al, amikor nvelik vagy cskkentik. TimeTicks Opaque Valamely esemnytl szmtva szzadmsodpercekben mrt id.
ipSystemStatsInDeliver s OBJECT-TYPE SYNTAX Counter32 MAXACCESS read-only STATUS current DESCRIPTION "Az IPuser- protokolloknak sikeresen tovbbtott adatcsomagok szma (belertve az ICMP-t is). Amikor az interfsz statisztikit nyomon kvetjk, annak az interfsznek a szmlljt nveljk, amely hez az adatcsomagokat cmeztk. Ez az interfsz nem felttlenl egyezik meg a bemeneti interfssz el nh ny csomag esetn. A szmll ltal mutatott rtkben folytonossgi szakads fordulhat el a felgyelet i rendszer jra indtsakor, s az ipSystemStatsDiscontinuityTime rtkkel jelzett alkalmakkor." ::= { ipSystemStatsEntry 18 }
A MODULE-IDENTITY szerkezet lehetv teszi az egymssal kapcsolatban lv ob jektumok csoportostst a modulon bell. Pldul az [RFC 4293) meghatrozza a MIB-modult, amely felgyelt objektumokat definil (belertve az ipSystemStatsIn- Delivers-t) az Internet Protokoll (IP) felgyeletnek implementcija s a hozzrendelt internet vezrlzenet protokoll (ICMP) szmra. Az [RFC 4022] a TCP szmra spe cifiklja a MIB-modult, az [RFC 4133] pedig az UDP szmra. Az [RFC 4502] az RMON tvoli ellenrzs sorn hasznlt
MIB-modult definilja. A modulban tallhat felgyelt objektum OBJECT-TYPE defincija mellett a MODULE-IDENTITY szerkezet olyan kl- zokat tartalmaz, amelyek a modul szerzjnek elrhetsgit, a legutols frissts dtumt, a klnbz verzik lerst, illetve szveges lerst tartalmaznak a modulrl. Pldaknt tekintsk az IP protokoll felgyeletre definilt modult:
ipMIB MODULE-IDENTITY LAST-UPDATED "200602020000Z" ORGANIZATION "IETF IPv6 MIB Revision Team" CONTACT-INFO "Szerkeszt: Shawn A. Routhier Interworking Labs 108 Whispering Pines Dr. Suite 235 Scotts Valley, CA 95066 USA EMail: < sar@iwl.com >" DESCRIPTION "MIB modul, amely az IP- tvonalak kivtelvel az IP s ICMP megvalstsok felgyelett vgzi. Copyright (C) The Internet Society (2006).A MIB modul ezen verzija az RFC 4293 rsze; lsd az RFC-t a teljes jogi lersrt."
REVISION "200602020000Z"
DESCRIPTION "Az IP verzi semleges fellviz sglsa, kiegsztve IPv6 objektumokkal az ND, alaprtelmezett tvlasz tk s tvlaszt hirdetmnyek szmra. A MIB modul mind az RFC 2011, mind az RFC 2465 s 2466 utdja. RFC 4293knt kerlt nyilvnossgra." REVISION "199411010000Z" DESCRIPTION "Egy klnll MIB modul (IP- MIB) IP s ICMP fel gyeleti objektumok szmra. RFC 2011-knt kerlt nyilvnossgra." REVISION "199103310000Z" DESCRIPTION "A MIB modul kezdeti fellvizsg lata az MIB-II rsze, amely RFC 1213-knt kerlt nyilvnossgra." ::= { mib-2 48}
A NOTIFICATION-TYPE szerkezet egy gynk vagy felgyel entits ltal generlt SNMPv2-Trap s In formt ion Request zenetekre vonatkoz informcik meghatrozsra szolgl; lsd a 9.3.3. alfejezetben. Ez az informci tartalmaz egy szveges DESCRIP- TION-t arrl, hogy az ilyen zeneteket mikor kell kldeni, s tartalmaz egy listt olyan rtkekrl, amelyeket az ellltott zenetben mellkelni kell; lsd [RFC 2578]. A MODU- LE-COiMPLIANCE szerkezet a modulon belli felgyelt objektumok halmazt definilja, amelyet egy gynknek implementlni kell. Az AGENT-CAPABILITIES szerkezet pedig az gynkk
tallnnk, amelyhez szmos IEEE-, ANSI- s cgspecifikus szabvny tartozik. Ezek kz tartozik az RSA (1.2.840.11359) s a Microsoft (1.2.840.113556), ami hez a klnbz Microsoft-termkre vonatkoz Micosot File Formats (1.2.840.113556.4, Microsoft fjlformtumok), pldul a Word (1.2.840.113556.4.2) is tartozik. m bennn-
ITU-T (0)
ISO(1)
Standard (0)
-ih
NATO identified (57)
US DoD (6)
Open
Software
Foundation (22) (0) Internet (1) (2) I____________________________ directory (1) management (2) MIB-2 (1) experimental (3) private (4)
security (5)
snmpv2 (6)
mail (7)
T"~\
ip (4)
udp (7)
rmon (16)
9.3. bra. ASN. 1 objektumazonost fa kel a hlzat rdekel (nem pedig a Microsoft Word fjlok), gy tekintsk az 1.3-as cmkj elgazst, a szabvnyokat, amelyeket az ISO ltal elismert testletek bocstanak ki. Ezek kz tartozik az Amerikai Egyeslt llamok Vdelmi Minisztriuma (U.S. Department of Defense, 6 ) (amely alatt az internetszabvnyok helyezkednek el), az Open Software Foundation (22), a SITA repltrsasg (69), a NATO ltal elismert testletek (57) s sok ms egyb szervezet. Az Internet ghoz (1.3.6.1) ht kategria tartozik. A privt (1.3.6.1.4) g alatt szmos nv s sok ezer olyan magnvllalati kd listjt [IANA 2007b) talljuk, amely vllalatok az Internet Assigned Numbers Authority nyilvntartsban (IANA) [IANA 2007] szerepelnek. Az objektumazonost management (1.3.6.1.2) s a MIB-2 ghoz (1.3.6.1.2.1) a szabvnyostott MIB modulok defincii tartoznak. Ejha, ez elg hossz t a mi ISO nvternkhz!
Szabvnyostott MIB-modulok
A 9.3. brn lthat fa legalacsonyabb szintje nhny fontos hardverkzpont, valamint a legfontosabb internetprotokollokhoz kapcsold MIB-modult (system s interface) mutat. Az [RFC 3700] felsorolja az sszes szabvnyostott MIB-modult. Annak ellenre, hogy a MIB-hez kapcsold RFC-k igen unalmas s szraz olvasnivalk, ajnlott (olyan mint zldsgeket enni, jt tesz neked) nhny MIB-modul defincijt ttekinteni an nak rdekben, hogy valamelyest megismerjk a modulokban lv informcik fajtit.
1.3.6.1.2.1.1.4
sysContact
OCTET STRING
1.3.6.1.2.1.1.5
sysName
OCTET STRING
A felgyelt csompont hivatalos neve. Megegyezs alapjn, ez a csompont teljes joggal elismert krzetneve." A csompont fizikai helye."
1.3.6.1.2.1.1.6 1.3.6.1.2.1.1.7
sysLocation sysServices
Egy kdolt rtk, amely a csompont szmra elrhet szolgltatsok halmazt jelzi: fizikai (pldul ismtl), adatkapcsolat/ alhlzat (pldul hd), internet (pldul IP-tjr), vgpontok kztti (pldul gazdagp), alkalmazsok.
udplnDatagrams
1.3.6.1.2.1.7.2
udpNoPorts
Counter32
Az sszes fogadott UDP-adatcsomag szma, amelyekhez nem volt alkalmazs a clport szmon"
1.3.6.1.2.1.7.3
udpInErrors
Counter32
Az sszes fogadott UDP-adatcsomag szma, amelyeket nem lehetett kzbesteni a clporthoz rendelt alkalmazs hinytl eltr ok miatt"
1.3.6.1.2.1.7.4
udpOutDatagrams
A system alatt elhelyezked felgyelt objektumok ltalnos informcikat tartalmaznak az ppen felgyelt kszlkrl; minden felgyelt kszlknek
tmogatnia kell a sys- temhez tartoz MIB objektumokat. A 9.2. tblzat az [RFC 1213) szerint meghatrozza a system-csoportbeli objektumokat. A 9.3. tblzat a felgyelt entitsoknl lv MIB-modu- lon belli felgyelt objektumokat definilja az UDP protokoll szmra.
9.3.3. SNMP-mveletek
Az egyszer hlzatmenedzsment protokoll 2. verzija (SNMPv2) [RFC 3416) a felgyel entitsok s az entitsok nevben cselekv gynkk kztti MIBinformci tvitelre szolgl. Az SNMP legltalnosabb alkalmazsa a krds-vlasz mdban (request-res- ponse mode) van, amely sorn egy SNMPv2 felgyel entits egy krst kld az SNMPv2 gynknek, amely miutn azt megkapja, vgrehajt valamilyen tevkenysget, s vlaszt kld a krsre. A krst leggyakrabban a felgyelt kszlkhez rendelt MIB-objektum rtknek begyjtsre (lekrdezsre) vagy mdostsra (belltsra) hasznljk. Az SNMP msodik leggyakoribb hasznlata a krst nem tartalmaz zenetek (ms nven csapdazenetek, trap message) kldse az gynkk ltal a felgyelt entitshoz. A csapdazenetek segtsgvel a felgyel entitst rtesteni lehet, ha egy kivteles eset sorn az MIB-objektumok rtkei megvltoznak. Korbban a 9.1. alfejezetben lttuk, hogy akkor van szksg arra, hogy a hlzati rendszergazda csapdazenetet kapjon, ha pldul egy interfsz lell, a torlds elr egy bizonyos szintet egy adatkapcsolaton, vagy ms emltsre mlt esemny trtnik. Jegyezzk meg, hogy szmos fontos kompromisszum van a lekrdezs (krsvlasz prbeszd) s a csapdzs kztt; lsd a feladatokat. Az SNMPv2 htfajta zenetet definil, ltalnos nven protokoll adategysgeket PDU-kat amelyeket a 9.4. tblzat s az albbi lers is tartalmaz. A PDU formtuma a 9.4. brn lthat. A GetRequest, GetNextRequest s GetBulkRequest PDU-kat a felgyel entits kldi az egyik gynknek azrt, hogy az gynk felgyelt kszlkrl egy vagy tbb MIB-objektum rtket lekrdezzen. A lekrdezett MIB-objektumok azonostit a PDU vltoz ktsrsze hatrozza meg. A GetRequest, GetNextRe quest s GetBulkRequest az adatlekrsek mdjnak finomsgaiban trnek el. A GetRequest korltlan MIB-rtkhalmazt krdezhet le; tbb GetNextRequest krs segtsgvel egy MIB-objektumlistn vagy tblzaton naviglhatunk keresztl; a GetBulkRequest lehetv teszi nagy adatblokk visszaadst, elkerlve ezzel a tbb GetRequest s GetNextRequest zenet kldsekor fellp tbbletterhelst. Mindhrom esetben az gynk egy Response PDUval vlaszol, amely tartalmazza az objektumazonostkat s a hozzjuk rendelt rtkeket. A SetRequest PDU-t a felgyel entits alkalmazza arra, hogy belltsa az rtkt a felgyelt kszlk egy vagy tbb MIB-objektumnak. Az gynk noKrror hiballapot Response PDU-val vlaszol annak igazolsra, hogy az rtket valban belltotta. Az InformRequest PDU segtsgvel a felgyel entits rtesteni tud egy msik entitst, amely az adott vev entitstl tvol van. A vev entits noError hiballapot Response PDU-val vlaszol annak jelzsekppen, hogy az InformRequest PDU-t megkapta.
Az SNMPv2 zenetek utols fajtja a csapdazenet. A csapdazenetek szablytalan idkznknt jnnek ltre; azaz nem egy vett krs vlaszaknt generljk ket, hanem
GetNextRequest
felgyel-gynk
SetRequest
Response
A kvetkez PDU-kra adott vlasz GetRequest/ GetNextRequest, GetBulkRequest, SetRequest vagy InformRequest
SNMPv2-Trap
gynk-felgyel
inkbb egy esemny hatsra, amelyrl a felgyel entitst rtesteni kell. Az RFC 3418 jl ismert csapda tpusokat definil, amelyek kz tartozik a kszlk hideg vagy meleg indtsa, egy adatkapcsolal lellsa s elindulsa, egy szomszd elvesztse vagy egy hitelests meghisulsa. A vett csapda zenetre a felgyel entitsnak nem kell vlaszolnia. Az SNMPv2 krs-vlasz termszete mellett meg kell jegyeznnk, hogy habr az SNMP PDU-kat sok klnbz szlltsi protokollon keresztl lehet kldeni, e PDU-k ltalban egy UDP-adatcsomag adatmezjben utaznak. Az RFC 3417 szerint az UDP az ajnlott szlltsi szolglat. Mivel az UDP nem megbzhat szlltsi protokoll, nincs semmilyen garancia arra, hogy egy krs vagy vlasz megrkezik a tervezett clhoz. A PDU-krs azonostmezje segtsgvel a felgyel entits meg tudja szmozni a krseit, amiket egy gynknek kld; az gynk vlaszban szerepl krsazonost a berkezett krsbl szrmazik. gy a krsazonost segtsgvel a felgyel entits szlelheti az elveszett krseket s vlaszokat. A felgyel entitson mlik, hogy egy krst jrakld-e, ha egy bizonyos idn bell nem rkezik megfelel vlasz. Egybknt az SNMP-szabvny eset ben nincs semmilyen kijellt eljrs az jrakldsre, vagy egyltaln arra, hogy szksg vane jrakldsre. Csupn azt rja el, hogy a felgyel entitsnak felelssgteljesen kell cselekednie az jraklds gyakorisgval s idtartamval kapcsolatban. Termszetesen elgondolkodtat lehet szmunkra, hogyan is kell viselkednie egy felelssgteljes protokollnak!
Fejrsz lekrse/belltsa
PDUtpus (0-3)
Krsazonost
Hiba-
Nv
index
rtk
Nv rtk
Id blyeg
Nv rtk
i Csapdafejrsz
II 1 I Csapdainformci
1 SNMP PDU
9.3.4.
Biztonsg s adminisztrci
Az SNMPv3 tervezi gy mondjk, hogy az SNMPv3-ra ptllagos biztonsgi s ad minisztrcis kpessgekkel kiegsztett SNMPv2-knt gondolhatunk" [RFC 3410]. Termszetesen az SNMPv3-ban az SNMPv2-hz kpest mshol is trtnt vltoztats, m a legtbb mdosts az adminisztrci s biztonsg terletn ment vgbe. Az SNMPv3-on belli biztonsg kzponti szerepe klnsen fontos, mivel a megfelel biztonsg hinya miatt az SNMP-t elsdlegesen megfigyelsre hasznltk, nem pedig vezrlsre (pldul a SetRequest ritkn hasznlt zenet az SNiVlPvl-ben). Az SNMP hrom verzin keresztl fejldtt, a funkcionalitsa megntt, ezzel egytt az SNMP-vel kapcsolatos dokumentci is. Ezt tmasztja al az is, hogy mg most is ltezik egy olyan RFC [RFC 3411], amely egy SNMP hlzatfelgyeleti keretrendszer lerst definilja! Br egy keretrendszer definilsra ksztett architektra tlete nehezen felfoghat, az RFC 3411 clja rtkelend - olyan kzs nyelv bevezetse, amellyel egy SNMPv3 gynk vagy felgyel entits funkcionalitst s tevkenysgeit lerhatjuk. Az SNMPv3 entitsnak architektrja nem tl bonyolult, egy bemutat tra megszilrdta n az SNMP-rl szerzett eddigi tudsunkat. Az gynevezett SNMP-alkalmazsok tartalmaznak egy parancsgenertort, rtestsfogadt s helyettest tovbbtt (amelyek kzl mindegyik megtallhat egy ltalnos felgyel entitsban); egy parancsmegvlaszolt s egy rtestskezdemnyezt (mindkett megtallhat egy ltalnos gynkben); s egyb lehetsges alkalmazsokat. A parancsgenertor ltrehozza a GetRequest, GetNextRequest, GetBulkRequest s SetRequest PDU-kat, amelyeket a 9.3.3. alfejezetben megvizsgltunk, s kezeli az ezekre rkezett vlaszokat. A parancsmegvlaszol az gynkben fut, s fogadja, feldolgozza a vett GetRequest, GetNextRequest, GetBulkRequest s SetRequest PDU-kat, s vlaszol rjuk (a Response zenet segtsgvel). Az gynk rtestskezdemnyez alkalmazsa Trap PDU-kat llt el; ezeket a PDU-kat vgl a felgyel entitsnl egy rtestsvev fogadja s dolgozza fel. A helyettest tovbbt alkalmazs a krseket, az rtestseket s a vlasz PDU-kat tovbbtja.
Valamely SNMP-alkalmazs ltal kldtt PDU a kvetkez lpsben az SNMP-,,motoron halad keresztl, mieltt a megfelel szlltsi protokoll fel tovbbtdik. A 9.5. bra mutatja, hogyan lp be egy parancsgenertor alkalmazs ltal ltrehozott PDU a kld modulba, ahol az SNMP-verzit megllaptjk. A PDU-t ezutn feldolgozzk az zenetfeldolgoz rendszerben, ahol a PDU-t becsomagoljk egy zenet fejrszbe, amely tartalmazza az SKMP-verziszmot, az zenet azonostjt s informcit az zenet mretrl. Abban az esetben, ha titkosts vagy hitelests szksges, a megfelel fejrszmezket is mellkelik; tovbbi rszletekrt lsd [RFC 3411]. Vgl az SNMP-zenet (az alkalmazs ltal ellltott PDU s a hozzadott fejlcinformci) a megfelel szlltsi protokollhoz kerl. Az SNMP hordozsra az ajnlott szlltsi protokoll az UDP (ami azt jelenti, hogy az SNiMP-zenetck az UDP-csomag adatmezjben vannak), az ajnlott portszm pedig a 161. A 162-es portszm a csapdazenetek szmra hasznland. Korbban lttuk, hogy az SNMP-zeneteket nem csupn megfigyelsre hasznlhatjuk, hanem a hlzati elemek vezrlsre is (pldul a SetRequest zenet sesgtsgvel). Nyilvnval, hogy abban az esetben, ha egy betr SNMPzenetcket fog el s/vagy sajt SNMP-csomagokat kld a felgyeleti infrastruktrba, nagy puszttst vgezhet a hlzatban. Ezrt ltfontossg az SNMP-zenetek biztonsgos tvitele. Meglep mdon a biztonsg csupn az SNMP legjabb verzijban kapja meg az t megillet figyelmet. Az SNMPv3-biztonsgot felhasznlalap biztonsgnak (user-based security) is nevez zk, mivel hagyomnyos felhasznli szemlletet tkrz, ahol a felhasznlt egy nvvel azonostjk, amelyhez olyan biztonsgi informcik vannak hozzrendelve, mint pldul
Parancs genertor Helyettest tovbbt
SNMPalkalmazsok
Parancs genertor
rtestskezdemnyez
PDU Biztonsg
---------V:________
Elklds zenetfeldolgoz rendszer Idbelisg, hitelests, titkosts Hozzfrs vezrls
SNMPmotor
r-----------
Biztonsgi/zenetfejlc PDU
216
9. HIZATFEUJGYELET
jelsz, kulcsrtk vagy hozzfrsi jogosultsgok. Az SNMPv3 titkostst, hitelestst s vdekezst biztost a visszajtszsi tmadsok (lsd 8.4.alfejezet) s hozz frs-vezrlsi tmadsok ellen.
mdban hasznlt adattitkost szabvnnyal (dat encryption standard, DES) lehet titkostani. Mivel a DES kzs kulcsot hasznl rendszer, a felhasznli adattitkosts titkos kulcsa ismert kell legyen a vev entits szmra, amelynek az adatot vissza kell fejteni. Hitelests. Az SNMP vegyti a 8.3. alfejezetben ltott MD5-algoritmust s a hozz hasonl hash fggvnyeket a titkoskulcs-rtkek hasznlatval annak rdekben, hogy mind hitelestst, mind pedig meghamistselleni vdelmet nyjtson. Ahashelt zenethitelest kdok (Hashed Message Authentication Codes, HMAC) [RFC 2104] nven ismert megolds felptst tekintve egyszer. Tegyk fel, hogy az ad rendelkezik egy m SNMP PDU-val, amelyet el akar kldeni a vevnek. Lehet, hogy ez a PDU mr titkostva van. Tegyk fel tovbb, hogy az ad s a vev is ismer egy K titkos kulcsot, amelynek nem felttlenl kell megegyeznie a titkostshoz hasznlt kulccsal. Az ad elkldi az ni zenetet a vevhz. Egy egyszer zenetpecst vagy AC(w) zenet in tegritsi kd (Message Intergrity Code, MIC) kldse helyett, amelyet az m-re szmolnak ki az zenet megvltoztatsa elleni vdelem rdekben, az ad a kzs titkos kulcsot hozzfzi m-hez s kiszmt egy MIC(m) MIC rtket a PDU s kulcs egyttesre. Ezutn a MIC(ni,K) rtket (a titkos kulcs nlkli) kldi el az ni zenettel egytt. A vev az m megrkezsekor hozzfzi a K titkos kulcsot, s kiszmolja M1C(mtK)-1 . Abban az esetben, ha ez a kiszmolt rtk az tkldtt MIC{m,K) rtkkel megegyezik, akkor a vev nem csupn azt tudja megllaptani, hogy az zenetet nem mdostottk, hanem azt is tudja, hogy az zenetet olyan valaki kldte, aki ismeri K rtkt, teht a msik fl megbzhat, s most mr az ad hitelestett lett. A gyakorlatban a HMAC a tnyleges hozzfzs-s-hashels mveletet ktszer vgzi el, enyhn eltr kulcsot hasznlva a kt esetben (tovbbi rszletekrt lsd [RFC 2104|). Visszajtszs elleni vdelem. Idzzk fel a 8 . fejezetet, miszerint a visszajtszsos tmadsok elleni vdekezsre egyszer hasznlatos szmokat, kitzket (nonce) hasznlhatunk. Az SNMPv3 hasonl megkzeltst alkalmaz. Annak biztostsa rdekben, hogy a megrkezett zenet ne lehessen egy korbbi zenet megismtlse, a vevnek szksge van arra, hogy az ad olyan rtkel mellkeljen minden zenethez, amely egy vevoldali szmlln alapul. Ez a kitzknt szolgl szmll a vev hlzatfelgyeleti szoftvernek legutols jraindtstl eltelt idi s az utols konfigurlsa ta trtnt sszes jraindts szmt tkrzi. Addig, amg a berkezett zenet szmllja a vev aktulis rtkhez viszonytva egy hibahatron bell van, az zenetet nem megismtelt zenetknt fogadja el, ami utn hitelesteni s/vagy visszafejteni tudja. Tovbbi rszletekrt lsd [RFC 3414). Hozzfrs-vezrls. Az SNMPv3 nzetalap hozzfrs-vezrlst [RFC 3415) biztost, amely vezrli, hogy mely hlzatfelgyeleti informcit mely felhasznl tud lekrdezni s/vagy mdostani. Az SNMP entits a hozzfrsi jogokat s szablyokai a helyi konfigurcis adattrban (Local Configuration LCD) trolja. Az LCD egyes rszei elrhetk felgyelt 9.5. Datastore, bra. Az SNMPv3-motor s SNMP-alkalmazsok
9.3. AZ
217
objektumokknt, amelyeket a nzetalap hozzfrs vezrlsi modellkonfigurci (View-based Access Control Model Configuration) MIB [RFC 3415] definil, ezrt SNMP-n keresztl tvolrl is felgyelhetk s mdost hatk.
218
9. HI.ZATFLLGYLLET
Hvek n gyaklalbln
Sok szz (st ezer) hlzatfelgyeleti termk rhet cl napjainkban, mind magban foglalja bi zonyos mrtkig a fejezetben bemutatott hlzatfelgyeleti tevkenysgek s az SNMP alapjait. Ezen termkek ttekintse tlmutat e knyv keretein, s (biztosan) az olvas rdekldsi krn is. Ezrt itt csupn nhny kiemelked termk elrhetsgt adjuk meg. A hlzat felgyelet teljes ttekintshez egy j kiindulsi pontot jelent a [Subramanian 2000] 12. fejezete. A hlzatfelgyeleti eszkzket kt rszre oszthatjuk. A hlzati eszkzk beszllti ltal kszteti eszkzk az egyes gyrtk sajt beredezseinek felgyeletre specializldnak, mg a msik csoport heterogn berendezsekbl ll hlzatok felgyelett clozza meg. A gyrtspecifikus megoldsok kzlt van a Cisco Nctwork Application Performance Analysis (NAPA) csomagja, amely a Cisco-eszkzkre pl hlzatfclgyeletet vgzi (Cisco NAPA 2007]. A Lucent s a Juniper operatv munkt tmogat informcirendszereket (operation support system, OSS) biztost a hlzati hozzfrsek s SLA/QoS szmra [Lucent 2006]. A heterogn hlzatokat felgyel npszer eszkzk kztt van a Hewlett-Packard OpenView lOpenView 2007] termke, az Aprisma Spectrum [Aprisma 2007] termke, valamint a Sun Solstice hlzatfelgyeleti rendszere [Sun 2007]. Mindhrom elosztott architektrj rendszer, amelyben tbb kiszolgl gyjti be a hlzatfelgyeleti informcikat a sajt felgyelt krze tbl. A hlzatfelgyeleti lloms ezutn ezektl a kiszolglktl tudja megszerezni az ered mnyeket, megjelenteni az informcikat s a tevkenysgeket irnytani. Mindhrom termk tmogatja az SNMP s a CMIP protokollt, s automatizlt tmogatst nyjt esemny/riaszts korrelcikhoz.
9.4. ASN.1
A knyvben a szmtgpes hlzatok szmos rdekes tmakrt emltettk. Ez az alfcje- zet azonban, amely az ASN.l-rol szl, biztosan nem lesz a tz legrdekesebb tma kztt. Ugyangy, mint a zldsgek, az ASN.l s az ennl tgabb megjelentsi szolgltatsrl szl ismeretek is csupn olyanok, amelyek hasznosak szmunkra. Az ASN.l egy, az ISO ltal ksztett szabvny, amelyet szmos internethez kapcsold protokoll tartalmaz, klnsen a hlzatfelgyelet terletn. A 9.3. alfejezetben pldul lttuk, hogy az SNMP MIB-vltozi kibogozhatatlanul ktdnek az ASN.l-hez. Annak ellenre teht, hogy a fe jezetben lv ASN.l-rl szl anyagrsz elg szraz, remljk, hogy az Olvas elhiszi ne knk, hogy igenis fontos! Azrt, hogy a lersunkat rdekesebb tegyk, kpzeljk el a kvetkez kitallt ksrletet. Tegyk fel, hogy megbzhat mdon msolhatunk adatokat az egyik szmtgp memrijbl kzvetlenl egy msik, tvoli szmtgp memrijba. Megoldan-e ez a kommunikcis problmt, ha ezt megtehetnnk? A vlasz attl fgg, hogy milyen mdon definiljuk a kommunikcis problmt. Termszetesen tkletes memri- bl-memriba msols hibtlanul vinn t a biteket s bjtokat az egyik gprl a msikra. A bitek s bjtok ilyen tkletes msolsa valban azt jelenti-e, hogy amikor a vevoldali szmtgpen fut alkalmazs hozzfr ezekhez az adatokhoz, ugyanazokat az rtkeket ltja, mint amelyek a kld szmtgp memrijban voltak trolva? A krdsre a vlasz:
9.3. AZ
219
nem szksgszeren! A problma nehzsge abban rejlik, hogy a klnbz szmt- gp-architektrk, opercis rendszerek s fordtk klnbz elveket alkalmaznak az adatok trolsra s megjelentsre. Abban az esetben, ha tbb szmtgp kztt szeret-
220
9. HIZATFEUJGYELET
ncnk adatokat tvinni s trolni (ahogyan ez minden tvkzlsi hlzatban meg is trtnik), akkor ezt a problmt nyilvnvalan meg kell oldani. Pldaknt tekintsk a kvetkez egyszer C kdrszletet. Hogyan rendezdik el ez a szerkezetet a memriban?
9.3. AZ
221
lzads oka. Tudva azt, hogy a klnbz szmtgpek eltr mdon troljk s jelentik meg az adatokat, hogyan tudnak a hlzati protokollok ezzel a problmval megkzdeni? Abban az esetben pldul, ha egy SNMP-igynk egy olyan Response
Lest.code
zest.
test.code
00000011
.est. x
00000011
222
9. HIZATFEUJGYELET
amely a vett UDP-adatcsomagok szmt jelz integer szmllt tartalmaz, milyen megjelentsi formban kldje azt el a felgyel entitsnak - nagy a vgn vagy kicsi a vgn mdon? Az gynk egyik megoldsa az lehetne, hogy a bjtokat olyan sorrendben kldi, ahogyan a felgyel entits azokat trolja. A msik lehetsges megolds pedig, hogy a sajt trolsi sorrendjben kldi el, s majd a vev entits rendezi a bjtokat a neki megfelel sorrendbe. Mindkt megolds esetben igaz, hogy az egyik flnek ismernie kell a msik integer brzolsi formtumt. Egy harmadik megolds egy szmtgp-fggetlen, OS*fggetlen, nyelvfggetlen eljrs az integer s egyb adattpusok lersra (azaz egy adatler nyelv), s olyan szablyok ltrehozsa, amelyek az adattpusok hlzati tvitelnek mdjt jellemzik. Amikor egy adott tpus adat megrkezik, akkor ismert formtumban rkezik meg, gy brmilyen szksges szmtgp-specifikus formban lehet trolni. Mind az SMI - amelyet a 9.3. alfejezetben tanulmnyoztunk mind az ASN.l ezt a harmadik megoldst alkalmazza. ISO-termi- nolgit hasznlva azt mondjuk, hogy ez kt szabvny egy megjelentsi szolgltatst (presentation service) r le az informci egyik gpspecifikus formtumrl a msikra trtn tvitelt s talaktst vgz szolgltatst. A 9.7. bra egy vals vilgbl szrmaz megjelentsi problmt mutat be; egyik vev sem rti az elmondott szveg
Nagymama
Tindzser 2007-bl
mgtti vals tartalmat - azt, hogy a beszl szeret valamit. Ahogy a 9.8. bra is mutatja, a megjelen-
-n ,..
Klassz
9.3. AZ
223
Megjelensi szolglat
Megjelensi szolglat
Megjelensi szolglat
| Klassz Remek
Nagymama
hippi
Tindzser 2007-bl
tsi szolglat megoldja a problmt azltal, hogy a tartalmat lefordtja egy mindenki ltal rthet, szemlyfggetlen nyelvre, ezt elkldi a vevnek, az pedig visszaalaktja az ltala megrthet nyelvre. A 9.5. tblzat nhny ASN.l adattpust tntet fel. Idzzk fel az INTEGER, OCTET STRING s OBJECT IDENTIFIER adattpusokat, amelyekkel korbban az SMI trgyalsnl tallkoztunk. Mivel jelenleg nem clunk (szerencsre) az ASN.l teljes lerst adni, az ASN.l adattpusok s szerkezetek - pldul a SEQUENCE s SET szerkezetek, amelyek strukturlt adattpusok definilst teszik lehetv rszletes bemutatshoz ajnljuk a szabvnyokat vagy a nyomtatott, illetve online knyveket [l.armouth 1996).
2 3
4
REL
Amellett, hogy az ASN.l egy adatler nyelvet szolgltat, alapvet kdolsi szablyokat (Basic Encoding Rules, BR) is biztost, amelyek meghatrozzk, hogy az ASN.l adatler nyelvvel definilt objektumok pldnyait hogyan kell tvinni a hlzaton. A BR az gynevezett tpus, hossz, rtk (Type, Length, Value, TLV) megkzeltst hasznlja a kdolt adat tvitelre. Minden kldeni kvnt adatelem esetn az adattpust, az adatelem hosszt s az aktulis rtkt kell elkldeni, ebben a sorrendben. Ennek az egyszer konvencinak a betartsval a vett adat alapveten sajt magt azonostja. A 9.9. bra bemutatja, hogy egy egyszer plda esetn a kt adatelemet hogyan kell elkldeni. A pldban az ad a smith karakterlncot akarja elkldeni, majd a 259 rtk decimlis szmot (amely 00000001 00000011 binris szmnak vagy egy 1 rtk s egy 3 rtk bjtnak felel meg), nagy a vgen mdot felttelezve. Az adatfolyam els elkldtt bjtjnak rtke 4, jelezve, hogy a kvetkez adatelem tpusa OCTET STRING; ez jelenti a T-t a TLV-kdolsban. A folyam msodik bjtja az OCTET STRING hosszt mutatja, esetnkben 5-t. A harmadik bjt az tvitt adatfolyamban az 5 hossz OCTET STRIN- GET kezdi meg; az s bet ASCII-reprezentcijt tartalmazza. A kvetkez adatelem T, L s V rtkei 2 (az INTEGER tpus jellsnek rtke), 2 (azaz 2 bjt hossz integer) s a 2 bjtos nagy a vgn reprezentcija a 259 rtk decimlis szmnak. Az elbbi lersunkban az ASN.l csupn egy kisebb s egyszerbb rszt
rintettk. Az ASN.l-gycl bvebben foglalkoz anyagok kz tartoznak az ASN.l szabvny dokumentumai (ISO 1987; ISO X.680 1998], az online OSI-vel foglalkoz knyv [Larmouth 1996] s az ASN.l-hez kapcsold weboldalak, az [OSS 2007) s a [Franc Telecom 2006] anyagok.
adattpusok pldnyai
1
2
2
h tvitt bjtfolyam
i
m s 5 4
9.5. Kvetkeztetsek
A hlzat felgyeleti tanulmnyaink s az egsz hlzati tmakr vgre rtnk! Ebben a hlzat felgyeletrl szl utols fejezetben elszr azzal kezdtnk foglalkozni, mirt is szksges megfelel eszkzket biztostani a hlzati rendszergazdnak - annak a szemlynek, akinek a feladata a hlzat egszsges mkdsnek biztostsa -, hogy a hlzat mkdst figyelni, tesztelni, lekrdezni, konfigurlni, elemezni, kirtkelni s vezrelni tudja. Az ermvek, replgpek s vllalatokhoz hasonl komplex rendsze rek analgija volt segtsgnkre, hogy ennek lerst rdekesebb tegyk. Lttuk, hogy a hlzatfelgyeleti architektra t kulcselem kr ptkezik: (l) egy hlzat felgyel, ( 2 ) (hlzatfelgyeltl) tvoli felgyelt kszlkek, (3) a felgyelt kszlkeknl lv hlzatfelgyeleti adatbzis (MIB), amelyek a kszlkek llapotrl s mkdsrl hordoznak adatokat, (4) tvoli gynkk, amelyek MIB-informcikat tovbbtanak, valamint a hlzat felgyel irnytsa mellett utastsokat hajtanak
tvoli
kszlkek
kztti
Ezutn melyebbre stunk az internetszabvnyos hlzat felgyeleti keretrendszerben (Internet-Standard Management Framework), klnskppen a SNMP protokoll tekintetben. Lttuk, hogyan valstja meg az SNMP a hlzatfelgyeleti architektra t kulcselemt, s tbb idt tltttnk az MIBobjektumok, az SMI adatler nyelv vizsglatval, amellyel specifiklhatok az MIBobjektumok, s maga az SNMP protokoll. Mikzben hangslyoztuk, hogy az SMI s az ASN.l kibogozhatatlanul sszefondik, s hogy az ASN.l kulcsszerepet jtszik az ISO/OSI htrteg hivatkozsi modelljnek megjelentsi rtegben, rviden tnztk az ASN.l-et. Az ASN.l rszleteinl taln fontosabb volt az a megllapts, hogy a hlzat klnbz szmtgpeinek adatformtumai kztt szk sg van fordtsra. Amg nhny hlzati architektra elfogadja ennek a szolgltatsnak a fontossgt azltal, hogy rendelkezik megjelentsi rteggel, addig az intemetprotokoll verembl ez a szolglat hinyzik. rdemes azt is megemlteni, hogy a hlzatfelgyelet szmos tmakrt nem szndkoztuk bemutatni - olyan tmkat, mint a hibaazonosts s -kezels, proaktv anomliaszlels, riasztskorrelci s a szolgltatsfelgyelet tgabb krdsei. Amellett hogy fontosak, ezek a tmk egy maguk megtltennek egy kln knyvet, gy az Olvas figyelmbe ajnljuk a 9.1. alfejezetben lert hivatkozsokat.
Krdsek_______________________________________________
9.1. al fejezet
KI. Mirt elnysek a hlzatfelgyel szmra a hlzatfelgyeleti eszkzk? Mutasson be t forgatknyvet. K 2 . Mi az ISO ltal meghatrozott t hlzatfelgyeleti terlet? K3. Mi a klnbsg a hlzatfelgyelet s a szolglat felgyelet kztt? 9.2. a 1 fejezet
K4. Definilja a kvetkez fogalmakat: felgyel entits, felgyelt kszlk, felgyel gynk, MIB, hlzatfelgyeleti protokoll. 9.3. al fejezet
K5. Mi az SMI szerepe a hlzat felgyeletben? K 6 . Mi a krs-vlasz zenet s a csapdazenet kztti fontos klnbsg az SNM P esetn? K7. Sorolja fel a ht SNMP-zenettpust! K 8 . Mit rtnk SNMP-motor alatt? 9.4. alfejezet
K9. Mi az ASN.l objektumazonost fa clja? K10. Mi az ASN.l szerepe az ISO/OSI hivatkozsi modell megjelentsi rtegben?
Kll. Rendelkezik-e az internet megjelentsi rteggel? Ha nem, hogyan kszblik ki a szmtgp-architektrk kzti klnbsget - pldul az eltr integer megjelentst a klnbz gpeken? K12. Mit rtnk TLV-kdols alatt?
Feladatok
FI. Tekintsk a felgyel entits s a felgyelt kszlk kztti kommunikci kl mdjt: krs-vlasz s csapdzs. Mik a kt md elnyei s htrnyai a (1) tbblet- terhels (overhead), a ( 2 ) kivteles esemny bekvetkezsekor fellp rtestsi id s a (3) felgyel entits s a kszlk kztt elveszett zenetek szerinti robusztussg tekintetben? F2. A 9.3. alfejezetben lttuk, hogy a SNMP tvitelre a nem megbzhat UDP ajnlott. Mit gondol, az SNMP tervezi mirt az UDP-t vlasztottk a TCP helyett az SNMP szlltsi protokoljaknt? F3. Mi az ASN.l objektumazonost az 1CMP protokoll esetn (lsd 9.3. alfejezet)? F4. Tegyk fel, hogy egy egyeslt llamokbeli vllalatnak dolgozunk, amely a sajt MIB-jt szeretn kifejleszteni termksornak felgyeletre. Hol lenne ez nyilvntartva az objektumazonost fban (9.3. alfejezet)? (Tipp: A krds megvlaszolshoz az RFC-kben kell mlyebbre sni.) F5. Emlkezznk, hogy a 9.3.2. alfejezet szerint egy magncg (vllalat) az 1.3.6.1.4.1. privt elgazs alatt hozhatja ltre a sajt MIB-vltozit. Tegyk fel, hogy a Netscape Corp. szeretn ltrehozni sajt MIB-vltozit webkszolglja szmra. Mi lesz a kvetkez OID-minst az 1.3.6.1.4.1 utn? (A krds megvlaszolshoz az [IANA 2007b] anyag tnzse szksges.) Megnzend a vveben, hogy ltezik-e ilyen M1B valamely Netscape Ser veihez. F 6 . Tekintsk a 9.9. brt. Mi lenne a {weight, 276} {lastname, Jlia"} BR kdolt vltozata? F7. Tekintsk a 9.9. brt. Mi lenne a {weight, 160} {lastname, Child"} BR kdolt vltozata?
Gondolkodtat krdsek
Gl. Az ermtl s a replgp piltaflkjtl eltekintve, milyen analgit tud mondani egy felgyelni kvnt sszetett elosztott rendszerre? G2. Tekintsk a 9.1. alfejezet motivl forgatknyvt! Mit gondol, milyen ms tevkenysgeket kell mg egy hlzati rendszergazdnak ellenriznie? Mirt? G3. Olvassa el az RFC 789 ajnlst! Hogyan lehetett volna az ARPAnet 1980-as sszeomlst elkerlni (vagy a helyrelltst egyszerbb tenni), ha az ARPAnet felgyeli rendelkeztek volna a mai hlzatfelgyeleti eszkzkkel?
Vlaszol
Jeff Case
jeli Case a SNMP Research, Inc. alapitja s vezel technikusa. A cg a hlzatfelgyelettel foglalkoz internetszabvnyok s szabvnyalap termkek vezet gyrtja, jekt BSC diplomt (ipari s villamosmrnki techno lgia) s kt MSC diplomt (ipari s villamosmrnki) szerzett a Purdue University intzmnyben. A PhD fokozatt mszaki oktatsban szerezte az University of llliois, Urbana-Champaign intzmnyben. Mirt dnttt gy, hocjy a hlzatokra szakosodik? Kisgyermek korom ta lenygz mindenfle dolgok sz- szerakosgatsa, mr akkor is tket dugdostam a konnektorokba. Ez tindzser koromra tovbbfejldtt, akkor az audioberendezsek rdekeltek olyan hangrendszereket raktam ssze rockegytteseknek, amelyek a betont is sztzztk. A fiskola mellett televzi- s rdiszerelknt dolgoztam (fleg audioberendezsekkel), a szmtgp bogara is megcspett, rdekelt minden olyan dolog, ami digitlis, legyen az akr szmtgphardver, akr -szoftver. Elkezdett rdekelni az, hogy mindenfle furcsa cuccot msfajta furcsa cuccok kai kssek ssze. Elszr perifrikat kapcsoltam processzorokhoz. Ksbb klnfle rendszereket ktttem ssze. A hlzat a legfbb csatol. Manapsg az internet a legfbb hlzat. Mi volt az els munkja a szmitgpes iparban? Mit eredmnyezett? Az els szakmai veimet a Purdue Universityn tltttem. Egyik-msik alkalommal a tanterv majdnem minden kurzust tantottam villamosmrnki s szmtgpmrnki hallgatknak. Ebbe beletartozott a mikroprocesszor hardveres s szoftveres tmihoz kapcsold j kurzusok ltrehozsa. Egy szemeszter alatt az osztlynak chipekbl meg kellett terveznie egy szmtgpet, a laboratriumi gyakorlatokon pedig meg kellett ptenie gy, hogy egyik csapat csinlta a CPU-t, egy msik a
memria alrendszert, megint egy msik az I/O alrendszer s gy tovbb. A kvetkez szemeszterben a megptett hardverhez el kellett kszteni a szoftvert. Ebben az idben kezdtem vezet szerepben dolgozni az egyetem informatikai rendszernl mint az egyetem szmtgpes felhasznli szmra nyjtott szolgltatsi rszleg vezetje. Mi a legnagyobb kihvst nyjt rcsze a munkjnak? A mszaki s az zleti vltozsok napraksz kvetse. Mszaki vezet vagyok, s egyre nehezebb napraksznek maradni a szakmnkban vgbemen mszaki fejlds mellett. A szerepem miatt az zleti terlet vltozsait is nyomon kell kvetnem, pldul a vllalategyeslseket s -felvsrlsokat is.
Milyen jvt lt a hlzatok cs az internet szmra? Mindenbl tbbet, tbbet s tbbet. Nagyobb sebessg. Nagyobb trhdts. Tbb tartalom. Nagyobb feszltsg az anarchia s a szervezettsg kztt. Tbb spam. Tbb spamel- lenessg. Tbb biztonsgi problma. Tbb biztonsgi megolds. Vgl pedig szmtanunk kell vratlan dolgokra is. Kik inspirltk szakmailag? Nhai apm, aki sikeres zletember volt; Dillbert; Dr. Vint Cerf, Dr. John Postel, Dr. Marsh Rose s Chuck Davin, akik jl ismert alakok az internetes iparban; Bili Seifert, jelenlegi VC-partnerem; Dr. Rupert Evans, a disszertcim professzora; a felesgem, aki egytt dolgozik velem az zleti letben; s vgl, de nem utols sorban, Jzus. gy olvastam, hogy rengeteg kzmondst tud. Amikor CS professzor volt, mondott ilyeneket a hallgatinak? Egy plda felr kt knyvvel (taln Gausstl). Nha rs van az elmlet s a gyakorlat kztt. Az elmlet s gyakorlat kztti elmleti rs nem olyan nagy, mint az elmlet s gyakorlat kztti gyakorlati rs. (Fogalmam sincs honnan ered ez a monds.) Mik a legnagyobb akadlyok az internetszabvnyok ltrehozsakor? Pnz. Politika. nteltsg. Vezetsgi hibk. Mi volt az SMMP eddigi legmeglepbb alkalmazsa? Mindegyik. Az internetfelgyelettel tnyleg csak a sajt tllsem miatt kerltem kapcsolatba. Szksgem volt nhny tisztessges eszkzre a cgem hlzati infrastruktrjnak felgyelethez. A szles kr felhasznls, ami abbl eredt, hogy sok ms embernek is hasonl problmkat kellett megoldania, tehetsg, szerencse s sok-sok kemny munka eredmnye.
Irodalomjegyzk
URL-ekkel kapcsolatos megjegyzs. Az albbi hivatkozsokban megadjuk a weboldalak, csak weben elrhet dokumentumok s ms olyan anyagok URL-jt, amelyeket konferenciakiadvny vagy folyirat nem kzl (termszetesen csak akkor, ha sikerlt megtudnunk az ilyen anyagok URL-jt). E knyv korbbi kiadsaival ellenttben, most nem kzljk a konferencia- s folyirat-publikcik URL-jt, mivel ezek a dokumentumok keresgpek segtsgvel rendszerint letlthetk a konferencia weblapjrl (pldul minden ACM Sigcomm konferencia s workshop dolgozata elrhet a http://www.acm.org/ sigcomm weblapon
keresztl), vagy egy digitlis knyvtri elfizetsen keresztl. Jl lehet az sszes, albb megadott URL rvnyes volt 2006. decemberben (ellenriztk!), bizonyos URL-ek megvltozhattak azta. Krjk, hogy a bibliogrfia frisstse rdekben figyelje a knyv on-line vltozatt. RFC-kke! kapcsolatos megjegyzs: Internet RFC-k msolati pldnyai sok helyrl beszerezhetk. Az Internet Society RFC szerkesztsge (az a testlet, amely tnzi az RFC-ket) fenntart egy honlapot: http://www.rfc-editor.org . Ezen a honlapon az RFC-k kereshetk cm szerint, szm szerint vagy szerz szerint, s brmely felsorolt RFC-k frisstsei is lthatk. Az Internet RFC-k frissthetk vagy rvnytelenthetk ksbbi RFC-kkel. Kedvenc honlapunk, ahonnan az RFC-ket levettk, az eredeti forrs: http:// www.rfc-editor.org .
[3Com Addressing 2007] 3Com Corp., White paper: Understanding IP addressing: Everything you ever wanted to know, http://www.3com.com/other/pdfs/infra/corpinfo/ en_US/501302.pdf [3GPP 2007] Third Generation Partnership Project homepage, http://www.3gpp.org/ [802.11 Security 2007] The Unofficial 802.11 Security Web Page, http://www.drizzle.com/~aboba/ I FEE/ [Abramson 1970] N. Abramson, The Aloha System Another Alternative for Computer Commu -
Proc. 1970 Fall Joint Computer Conference, AFIPS Conference, p. 37, 1970. [Abramson 19851 N. Abramson, Development of the Alohanet, EEE Transactions on Information Theory, Vol. IT-31, No. 3 (Mar. 1985), pp. 119-123.
nications, [Ahn I995J J. S. Ahn, P. B. Danzig, Z. Liu, Y. Yan, Experience with TCP Vegas: Emulation and Ex periment,
Proc. 1995 ACM SIGCOMM (Boston, MA, Aug. 1995), pp. 185-195.
[Akamai 2007] Akamai homepage, http://www.akamai.com . [Akella 2003] A. Akella, S. Seshan, A. Shaikh; An empirical Evaluation of Wide-area Internet
Proc. 2003 ACM Internet Measurement Conf (Miami FL, Nov. 2003). [Albitz 1993] P. Albitz, C. Liu, DNS and BIND, OReilly Sc Associates, Petaluma, CA, 1993.
Bottlenecks, [Alvestrand 1997] II. Alvestrand, Object Identifier Registry, http://www.alvestrand.no/harald/ objectid/top.html [Anderson 1995] I. B. Andersen, T. S. Rappaport, S. Yoshida, Propagation Measurements and Mo dels for Wireless Communications Channels, 42-49.
Proc. 2004
[ASO-ICANN 2007] Ihe Address Supporting Organization home page, http://www.aso.icann.org (AT&T SLM 20061 AT8cT Business, AT&T Enterprise Hosting Services Service Guide, http:// www.att.com/abs/serviceguide/docs/eh_sg.pdf [Atheros 2006] Atheros Communications Inc. Atheros AR5006 WLAN Chipset Product Bulletins, http://www.atheros.com/pt/AR5006Bulletins.htm [Ayanoglu 1995] E. Ayanoglu, S. Paul, T. F. La Porta, K. K. Sabnani, R. I). Gitlin, AIRMAIL: A LinkLayer Protocol for Wireless Networks, Feb. 1995. [Bakre 1995] A. Bakre, B. R. Badrinath, I-TCP: Indirect TCP for Mobile Hosts,"
munication Systems, Mar. 1964. Rand Corporation Technical report with the same title
(Memorandum RM-3420-PR, 1964). http://www.rand.org/publications/RM/RM3420/ [Bardwell 2007] J. Bardwcll, You Believe You Understand What You Think I Said... The Truth About 802.11 Signal And Noise Metrics: A Discussion Clarifying Often-Misused 802.11 WLAN pdf? Terminologies, format=raw [Baset 2006] S. A. Basset, H. Schulzrinne, An analysis of the Skype peer-to-peer Internet Telephony Protocol, http://madwifi.org/attachment/wiki/UserDocs/RSSI/ you_beIieve_D100201.
[BBC 20011 BBC news online A Small Slice of Design, Apr. 2001, http://news.bbc.co.uk/2/hi/ scicncc/nature/1264205.stm [BBC Multicast 2007] BB, BBC Multicast Trial http://support.bbc.co.uk/multicast/ (Bender 2000J P. Bender, P. Black, M. Grob, R. Padovani, N. Sindhushayana, A. Viterbi, CDMA/ HDR: A bandwidth-efficient high-speed wireless data service for nomadic users, Vol.38, No. 7 (July 2000) pp.70-77. (Berners-Lee 1989] T. Berners-Lec, CERN, "Information Management: A Proposal, Mar. 1989, May 1990. http://www.w3.org/History/1989/proposal.html (Berners-Lee 1994] T. Berners-Lee, R. Cailliau, A. l.uotonen, II. Frystyk Nielsen, A. Secret, The World-Wide Web,
Communications of the ACM, Vol. 37, No. 8 (Aug. 1994), pp. 76-82. Data Networks, 2nd Ed., Prentice Hall, Englewood Communications of the ACM,
[Bernstein 2007] D. Bernstein, SYN Cookies, http://cr.yp.to/svncookies.html iBertsekas 1991] D. Bertsekas, R. Gallagher, Cliffs, NJ, 1991. IBhimani 1996| A. Bhimani: Securing the Commercial Internet, Vol. 39 No. 6 (Mar. 1996), pp. 29-35. [Biddle 2003] P. Biddle, P. England, M. Peinado, B. Willman, The Darknet and the Future of Con tent Distribution,
D.C.) http://crypto.stanford.edu/DRM2002/darknet5.doc [Biersack 1992) E. W. Biersack, Performance evaluation of forward error correction in ATM net works,
Proc. 1999 ACMSIGCOMM (Baltimore, MD, Aug. 1992), pp. 248-257. IEEE Communications
[HIND 2007] Internet Software Consortium page on BIND, http://www.isc.org/bind.html [Bisdikian 2001] C. Bisdikian, An Overview of the Bluetooth Wireless Technology,
Magazine, No. 12 (Dec. 2001), pp. 86-94. [Bishop 2003] M. Bishop, Computer Security: Art and Science, Boston: Addison Wesley, Boston
MA, 2003 [BilTorrent 2007] BitTorrent.org homepage, http://www.bittorrent.org [Black 1995) U. Black, ATM, Volume II: Signaling in Broadband Networks, Prentice Hall, 1997. [Blumenthal2001] M. Blumenthal, D. Clark, Rethinking the Design of the Internet: the End-to-end Arguments vs. the Brave New World, 70-109. [Bochman 1984] G. V. Bochmann, C. A. Sunshine, Formal methods in communication protocol
ATM
Volume I: Foundation for Broadband Networks, Prentice Hall, 1995. [Black 1997] U. Black,
IEEE Transactions on Communications, Vol. 28, No. 4 (Apr. 1980), pp. 624-631. [Bolot 1994] J-C. Bolot, T. Turletti, A rate control scheme for packet video in the Internet, Proc. 1994 IEEE Infocom, pp. 1216-1223.
design, [Bolot 1996] J-C. Bolot, A. Vega-Garcia, Control Mechanisms for Packet Audio in the Internet,
Proc. 1996 IEEE Infocom, pp. 232-239. ftp://ftp-sop.inria.fr/rodeo/bolot/96.Audio_ctl.ps.gz [Bradner 1996J S. Bradner, A. Mankin, IPng: Internet Protocol Next Generation, AddisonWesley, Reading, MA, 1996. [Brakino 1995] L. Brakmo, L. Peterson, TCP Vegas: End to F.nd Congestion Avoidance on a Global Internet, Oct. 1995. [Breslau 2000| L. Breslau, E. Knightly, S. Shenkcr, 1. Stoica, H. Zhang, Endpoint Admission Cont rol: Architectural Issues and Performance,
IEEE Journal of Selected Areas in Communications, Vol. 13, No. 8, pp. 1465-1480,
2000).
IBrodnik 1997) A. Brodnik, S. Carlsson, M. Dcgemark, S. Pink, Small Forwarding Tables for Fast
Proc. 1997 ACM SIGCOMM (Cannes, France, Oct. 1997), pp. 3-15. [Bush 1945] V. Bush, As We May 'Ihink, Vie Atlantic Monthly, July 1945. http://www.theatlantic .
Routing Lookups, com/unbound/flashbks/computer/bushf.htm [Byers 1998] J. Byers, M. Luby, M. Mitzenmachcr, A Rcge, A digital fountain approach to reliab le distribution of bulk data,
Proc. 1998 ACM SIGCOMM (Vancouver, Canada, Aug. 1998), pp. 56-67.
[Cablelabs 2007] CableLabs homepage, http://www.cablelabs.com [CacheLogic 2007) CacheLogic homepage, http://www.cachelogic.com [Caesar 2005] M. Caesar, J Rexford, BGP Routing Policies in ISP Networks,
IEEE Transactions
tech_tips/packet_filtering.html [Cert SYN 1996] CERT, Advisory CA-96.21: TCP SYN Flooding and IP Spoofing Attacks." http:// www.cert.org/advisories/CA-1998-01.html [Chao 2001] H. J. Chao, C. Lam, E. Oki, Broadband Packet Switching Technologies - A Practical Guide to ATM Switches and IP Routers, John Wiley & Sons, 2001. JChen 2000] G. Chen, D. Kotz, A Survey of Context-Aware Mobile Computing Research, cs.dartmouth.edu/~dfk/papers/chen:survey-tr.pdf [Chen 2006] K.-T. Chen, C.-Y. Huang, P. Huang, C.-L. Lei, Quantifying Skype User Satisfaction,
Technical
Report TR2000-381, Dept, of Computer Science, Dartmouth College, Nov. 2000. http://www .
Proc.
1-14. http://www.cis.ohio-state.edu/~jain/papers/cong_av.htm [Christiansen 2001] M. Christiansen, K. Jeifay, D. Ott, F. D. Smith, Tuning Red for Web Traffic,
ICisco 12000 20071 Cisco Systems Inc., Cisco XR 12000 Series and Cisco 12000 Series Routers, htlp://www.cisco.com/en/US/products/hw/routers/psl67/products_data_sheet()900aecd8027c8dd . ml [Cisco 8500 2007] Cisco Systems Inc., Catalyst 8500 Campus Switch Router Architecture, http:// www.cisco.com/univercd/cc/td/doc/product/13sw/8540/rel_i2_0/w5_6f/softcnlg/lcfg8500.pdf ICisco NAT 2007] Cisco Systems Inc., How NAT Works, http://www.cisco.com/warp/public/556/ natcisco.shtml {Cisco NAPA 2007] Cisco Systems Inc., Cisco Network Application Performance Analysis (NAPA) Solution, http://www.cisco.com/en/US/products/sw/netmgtsw/index.htmI ICisco QoS 2007] Cisco Systems Inc., Advanced QoS Services for the Intelligent Internet, http:// www.cisco.com/warp/public/cc/pd/iosw/ioft/ioqo/tech/qos_wp.htm [Cisco Queue 2007] Cisco Systems Inc., Interface Queue Management, http://www.cisco.com/ wa r p/publ ic/614/16.ht m I {Cisco Security 2007] Cisco Systems Inc., Why You Need a Firewall, http://www.cisco.com/en/ US/products/sw/secursw/ps743/products_user_guide_ chapter09186a008007f303.html {Cisco Switches 2007] Cisco Systems Inc. Cisco Catalyst 1900/2820 - Affordable Switching Solu tions http://www.cisco.com/warp/public/cc/pd/si/index.shtml
(Cisco SYN 2007] Cisco Systems Inc., Defining Strategies to Protect Against TCP SYN Denial of Service Attacks, http://cio.cisco.cOm/warp/public/707/4.htniI#tcpsyn (Clark 1988J D. Clark, The Design Philosophy of the DARPA Internet Protocols, 9501 -dark.html (Clarke 2002) I. Clarke, T. W. Hong, S. G. Miller, O. Sandberg, B. Wiley, Protecting Free Expression Online with Freenet,
IEEE Internet Computing, Jan.-Feb. 2002, pp. 40-49. Proc. Fifth Data
Proc. IEEE INFOCOM, (March 2005, Miami FL). [Cormen 2001] T. H. Cormen, Introduction to Algorithms, 2nd Ed., MIT Press, Cambridge, MA,
for Peer-to-Peer Live Media Streaming,
2001.
[Crow 1997] B. Crow, I. Widjaja, J. Kim, P. Sakai, IEEE 802.11 Wireless Local Area Networks,
IEEE
IEEE Communications Magazine, Nov./ Dec. 1995, pp. 12-16. [Crowcroft 1999) J. Crowcroft, M. Handley, I. Wakeman, Internetworking Multimedia, Morgan-KaService Models, ufman, San Francisco, 1999. [Culler 2004] D. Culler, D. Estrin, M. Srivastava, Overview of Sensor Networks, Vol. 37 No. 8, pp. 41-49, Aug. 2004. [Cusumano 1998] M. A. Cusumano, D. B. Yoffie,
IEEE Computer,
Netscape and its Battle with Microsoft, Free Press, NY, NY, 1998. [Daigle 1991) J. N. Daigle, Queuing Theory for Telecommunications, Addison-Wesley, Reading,
MA, 1991. [Dalai 1978] Y. Dalai, R. Metcalfe, Reverse Path Forwarding of Broadcast Packets,
Communica-
tions of the ACM, Vol. 21, No. 12, (Dec. 1978), pp. 1040-1048. [Davie 2000] B. Davie, Y. Rekhter, MPLS: Technology and Applications, Morgan Kaufmann
Series in Networking, 2000. (Davies 2004] G. Davies, F. Kelly, Network Dimensioning, Service Costing, and Pricing in a Pac ketswitched Environment,
(DEC 19901 Digital Equipment Corporation, In Memoriam: J. C. R. Licklider 1915-1990, SRC Research Report 61, Aug. 1990. http://www.memex.org/Iicklider.pdf [DeClercq 2002J J. DeClercq, O. Paridaens, Scalability Implications of Virtual Private Networks,"
Internetworking: Research and Experience^Vol. 1, No. 1,1990, pp. 3-26. [Denning 1997] D. Denning (Editor), P. Denning (Preface), Internet Besieged: Countering Cyberspace Scolaws, Addison-Wesley, Reading, MA, 1997.
rithm, [dhc 2007) IETF Dynamic Host Configuration working group homepage, html.charters/dhc-charter.html [Diftie 1998) W. Diffie, S. Landau, http://www.ietf.org/
210 VLASZOL JEFF CASK [Diggavi 2004] S. N. Diggavi, N. Al-Dhahir, A. Stamoulis, R. Calderbank, "Great Expectations: 'Ihe
Value of Spatial Diversity in Wireless Networks, the IP Multicast Service and Architecture, maps.html [Donahoo 2001] M. Donahoo, K. Calvert,
2004. [Diot 2000] C. Diot, B. N. Levine, B. Lyles, H. Kassem, D. Balensiefen, Deployment Issues for
Systems (IPTPS 02) (Cambridge, MA, Mar. 2002). [Droms 1999] R. Droms, T. Lemon, Ihe DHCP Handbook, Macmillan Technical Publishing, Indianapolis, IN, 1999. |DSL 2007] DSL Forum homepage, http://www.dslforum.org/ (F.dney 2003] J. Edney, W. A. Arbaugh,
IEEE Communica-
[Feamster 2004] N. Feamster, J. W r inick, J. Rexford, A Model for BGP Routing for Network Engi -
[Feldmeier 1988] D. Feldmeier, Improving Gateway Performance with a Routing Table Cache,
IEEE/
[Floyd 2001) S. Floyd, A Report on Some Recent Developments in TCP Congestion Control,
211
[Floyd
9. HLZATFELGYELET
TCP 1994J S. Floyd, TCP and Explicit Congestion Notification, ACMSIGCOMM Computer Communications Review, Vol. 24, No. 5, pp. 10-23, Oct. 1994.
[Fluhrer 2001] S. Fluhrer, I. Mantin, A. Shamir, Weaknesses in the Key Scheduling Algorithm of RC4,
2002). [Fortz 2000) B. Fortz, M. Thorup, Internet Traffic Engineering by Optimizing OSPP Weights,
[Foster 2002] I. Foster, The Grid: A New Infrastructure for 21st Century Science, 55(2):42-47, 2002.
[Fraleigh 2003] C. Fraleigh, T. Tobagi, C. Diot, Provisioning IP backbone Networks to Support Latency Sensitive Traffic,
[France Telecom 2006] Object Identifier (OID) repository, http://asnl.elibel.tm.fr/oid/ [Fraleigh 2003J C. Fraleigh, F. Tobagi, C. Diot, "Provisioning IP Backbone Networks to Support Latency Sensitive Traffic,
Proc. 2003 IEEE Infocom (San Francisco, CA, Mar. 2003). Proc.
(NGC2003), (Munich, Sept. 2003) http://cis.poly.edu/~ross/papers/TOPLUS.pdf [Gartner 2003J F. C. Gartner, A Survey of Self-Stabilizing Spanning-Trce Construction Algo rithms, Technical Report IC/2003/38, Swiss Federal Institute of Technology (EPFL), School of Computer and Communication
Sciences, June 10,2003. http://ic2.epil.ch/publications/documents/ IC_TECH_REPORT_200338.pdf. IGauthier 1999] L. Gauthier, C. Diot, J. Kurose, End-to-end Transmission Control Mechanisms for Multiparty Interactive Applications on the Internet, 1999). [Giacopclli 1990] J. Giacopelli. M. Littlewood.W. D. Sincoskie Sunshine: A high performance self-
1990 International Switching Symposium. An extended version of this paper appeared in IEEE J. Selected. Areas in Communications, Vol. 9,
routing broadband packet switch architecture, No. 8 (Oct. 1991), pp. 1289-1298. fGill 2005| V. Gill, Abstract: Design Decisions and Architecture Analysis of a Global 10G Backbo ne,
NANOG 34, http://www.nanog.org/mtg-0505/gill.html [Girard 1990] A. Girard, Routing and Dimensioning in Circuit-Switched Networks, AddisonWes- ley, Reading, MA, 1990. [Glitho 1995] R. Glitho, S. Hayes (eds.), special issue on Telecommunications Management Net work,
Journal of
Network and Systems Management, Vol. 6, No. 2 (June 1998), pp. 113-131.
[Gnutella 2007) The Gnutella Protocol Specification, v0.4 http://www9.limewire.com/developer/ gnutella_protocol_0.4.pdf [Goodman 1997] David j. Goodman, 1997.
Frame Relay for High-Speed Networks, John Wiley, New York, 1999. [Goralski 2001] W. Goralski, Optical Networking and WI)M, Osborne/McGraw-Hill,
2001.
[Griffin 2002] T. Griffin, Interdomain Routing Links, http://www.research.att.com/~griffin/interdomain.html
[Guha 2006] S. Guha, N. Daswani, R. Jain, An Experimental Study of the Skype Peer-to-Peer VoIP System, eds,
Proc. Fifth Int. Workshop on P2P Systems, (Santa Barbara, CA, 2006).
[Gupta 1998j P. Gupta, S. Lin, N. McKeown. Routing lookups in hardware at memory access spe -
Proc. 1998 IEEE Infocom (San Francisco, CA, Apr. 1998), pp. 1241-1248. [Gupta 2001] P. Gupta, N. McKeown, Algorithms lor Packet Classification, IEEE Network Magazine, Vol. 15, No. 2 (Mar./Apr. 2001), pp. 24-32. [Main 2005] T. Hain, A Pragmatic Report on IPv4 Address Space Consumption," Internet Protocol Journal, Vol. 8, No. 3. IHalabi 2000] S. Halabi, Internet Routing Architectures, 2nd Ed., Cisco Press, 2000.
[Hamada 1997] T. I latnada, H. Kamata, S. Hogg, An Overview of the TINA Management Archi tecture,
Journal of Network and Systems Management, Vol. 5. No. 4 (Dec. 1997). pp. 411IEEE/ACM Transactions on Networking, Vol. 5, No. 5 (Oct.
435. [Heidemann 1997] J. Heidemann, K. Obraczka, J. Touch, Modeling the Performance of HTTP over Several Transport Protocols, 1997), pp. 616-630. [Held 2001] G. Held, McGraw-Hill, 2001. [Hersent 2000] O. Hersent, D. Gurle, J-P. Petit,
Data Over Wireless Networks: Bluetooth, WAP, and Wireless LANs, IP Telephony: Packet-Based Multimedia
Proc. 2001 ACM Int. Conference of Mobile Computing and Networking (Mobi-
IPv6: 'The New Internet Protocol, 2nd Ed., Prentice Hall, The Internet Pro-
iana.org/assignments/enterprise-numbers (ICANN 2007] The Internet Corporation for Assigned Names and Numbers homepage, http:// www.icann.org [IEC Optical 2007J 1EC Online Education, Optical Access, http://www.iec.org/online/tutorials/ opt_acc/ [IEEE 802 2007] IEEE 802 LAN/MAN Standards Committee homepage, http://www.ieee802.org/ [IEEE 802.11 1999] IEEE 802.11, 1999 Edition (ISO/IEC 8802-11: 1999) IEEE Standards for In formation Technology - Telecommunications and Information Exchange Between Systems - Local and Metropolitan Area Network - Specific Requirements - Part 11: Wireless LAN Medium Ac cess Control (MAC) and Physical Layer (PHY) Specification, http://standards.iece.org/geticec802/ download/802.1 l-1999.pdf [IEEE 802.1 In) IEEE, IEEE P802.11 - Task Group N - Meeting Update: Status of 802.1 In http:// grouper.ieee.org/groups/802/1 l/Reports/tgn_update.htm [IEEE 802.15 2007) IEEE 802.15 Working Group for WPAN homepage, http://grouper.ieee.org/ groups/802/15/. [IEEE 802.16d 2004) IEEE, IEEE Standard for Local and metropolitan area networks. Part 16: Air Interface for Fixed Broadband Wireless Access Systems, http://standards.ieee.org/getieee802/ download/802, l6-2004.pdf [IEEE 802.16e 2005) IEEE, IEEE Standard for Local and metropolitan area networks, Part 16: Air Interface for Fixed and Mobile Broadband Wireless Access Systems, Amendment 2: Physical and Medium Access Control Layers for Combined Fixed and Mobile Operation in Licensed Bands and Corrigendum 1, http://standards.ieee.org/getieee802/download/ 802.16e-2005.pdf [IEF.F. 802.1X| IEEE Std 802.1 X-2001 Port-Based Network Access Control, http://standards.ieee . org/rcading/iecc/std_public/description/lanman/802.1x-2001_desc.html [IEEE 802.3 20071 IEEE, IEEE 802.3 CSMA/CD (Ethernet), http://grouper.ieee.org/gro- ups/802/3/ [IEEE 802.5 2007] IEEE, IEEE 802.5 homepage, http://www.ieee802.Org/5/www8025org/ [IETF 2007] Internet Engineering Task Force homepage, http://www.ietf.org [IMAP 2007] The IMAP Connection, http://www.imap.org/ [Intel 2006] Intel Corp, PCI/PCI-X Family of Gigabit Ethernet Controllers Software Developers Manual, http://download.intel.com/design/nctwork/manuals/ 8254x_GBe_SDM.pdf [Intel WiMax 2007] Intel Corp., WiMax Broadband Wireless Technology Access, http://www . i ntel.com/netcom ms/tech nologies/wimax/ [Interlinknetworks 2004] Internlinknetworks, Introduction to 802.Ix for Wireless Local Area Networks, http://www.interlinknetworks.com/resource/wp5-I-l.htm [Internet Home Alliance 2007| Internet Home Alliance Research Council homepage, http://www . caba.org/iha/ llnternet2 Multicast 2007] Internet2 Multicast Working Group homepage, http://raulticastinternet2.edu/ [ISC 2007] Internet Systems Consortium homepage, http://www.isc.org [ISI 1979] Information Sciences Institute, DoD Standard Internet Protocol, Internet Engineering Note 123, Dec. 1979. http://www.isi.edu/in-notes/icn/icnl23.txt
214
IRODALOMJEGYZP.K
[ISO 1987) International Organization for Standardization, Information processing sys tems - Open Systems Interconnection , International Standard 8824 (Dec. 1987). http://asnl . elibcl.tm.fr/en/standards/index.htm [ISO 20071 International Organization for Standardization homepage, International Organization for Standardization, http:// www.iso.org/ [ISO X.680 1998J International Organization for Standardization, X.680: ITU-T Recommenda tion X.680 (1997) | ISO/IEC 8824-1:1998, Information Technology Abstract Syntax Notation One (ASN.l): Specification of Basic Notation. http://asnl.elibel.tm.fr/en/standards/index.htm [ITU 2005] International Telecommunication Union, 7 he homepage, http://www.itu.int/ [ITU Statistics 2007] International Telecommunications Union, ICT Statistics," http://www.itu . int/rrU-D/icteye/ Reports, aspx [ITU-T Q.2931 1994] ITU-T, Broadband Integrated Service Digital Network (B-ISDN) Digital Subscriber Signaling System no.2 (DSS2) User Network Interface layer 3 Specification for Basic Call/Connection Control, cation Union, 1994. [Iyer 2002] S. Iyer, R. Zhang, N. McKeown, Routers with a Single Stage of Buffering,
Addi- son-Wesley, Reading, MA, 1994. [Jain 1996J R. Jain. S. Kalyanaraman, S. Fahmy, R. Goyal, S. Kim, Tutorial Paper on ABR Sour ce Behavior, htm [Jaiswal 2003J S. Jaiswal, G. Iannaccone, C. Diot, J. Kurose, D. Towsley, Measurement and Classi -
Proc. 2003 IEEE Infocom. [Jakobson 1993] G. Jacobson, M. Weissman, Alarm Correlation, IEEE Network Magazine, 1993,
fication of Out-of-Sequence Packets in a Tier-1 IP backbone, pp. 52-59. |Ji 2003] P. Ji, Z. Ge, J. Kurose, D. Towsley, A Comparison of Hard-state and Soft-state Signaling Protocols,
Proc. 2003 ACM SIGCOMM (Karlsruhe, Germany, Aug. 2003). NOSSDAVOl (Port Jefferson, NY, June 2001).
[Jiang 2001]W. Jiang, J. Lennox, H. Schulzrinne, K. Singh, Towards Junking the PBX: Deploying IP Telephony, [Jimenez 1997] D. Jimenez, Outside Hackers Infiltrate MIT Network, Compromise Security," 7 he
Tech, Vol. 117, No. 49 (Oct. 1997), p. 1. http://www-tech.mit.edu/V117/N49/hackers.49n.html [Jin 2004J C. Jin, D. X. We, S. Low, FAST TCP: Motivation, architecture, algorithms, performan ce, Proc. 2004 IEEE Infocom, (Hong Kong, March 2004). [Kaaranen 2001] H. Kaaranen, S. Naghian, I.. Laitinen, A. Ahtiainen, V. Niemi, Networks: Architecture, Mobility and Services, New York: John Wiley & Sons, 2001. [Kahn 1967] D. Kahn, The Codebreakers: ''the Story of Secret Writing, The Macmillan
Company, 1967. [Kahn 1978] R. E. Kahn, S. Gronemeyer, J. Burchfiel, R. Kunzelman, Advances in Packet Radio Technology,
Proc. of the IEEE, 66, 11 (Nov. 1978). Bell Labs Technical Journal, Summer 1997, pp. 118-133. [Kangasharju
[Kamerman 1997] A Kamcrman, L. Monteban, WaveLAN-II: A High -Performance Wireless LAN for the Unlicensed Band,
1RODALOM JHGYZK
215
2000] J. Kangasharju, K. W. Ross, J. W. Roberts, Performance Evaluation of Redi rection Schemes in Content Distribution Networks, (Lisbon, Portugal, iVlay 2000). [Kar 2000] K. Kar, M. Kodialam, T. V. Lakshman, Minimum Interference Routing of Bandwidth Guaranteed Tunnels with MPl.S Traffic Engineering Applications,
CommunicationsDec. 2000.
[Karol 1987] M. Karol, M. Hluchyj, A. Morgan, "Input Versus Output Queuing on a Space- Di vision Packet Switch, 1356. [Katabi 2002] D. Katabi, M. Handley, C. Rohrs, Internet Congestion Control for Future High Bandwidth-Delay Product Environments, works,
IEEE Transactions on Communications, Vol. 35, No. 12, (Dec. 1987), pp. 1347-
[Katzela 1995] I. Katzela, M. Schwartz. Schemes for Fault Identification in Communication Net -
IEEE/ACM Transactions on Networking, Vol. 3, No. 6 (Dec. 1995), pp. 753-764. [Kaufman 1995] C. Kaufman, R. Perlman, M. Speciner, Network Security, Private Communication in a Public World, Prentice Hall, Englewood Cliffs, NJ, 1995.
[Kelly 2003| T. Kelly, Scalable TCP: improving performance in high speed wide area networks,"
ACM SIGCOMM Computer Communications Review, Volume 33, No. 2 (Apr. 2003), pp 83-91. [Kcshav 1998] S. Keshav, R. Sharma, Issues and Trends in Router Design, IEEE Communications Magazine, Vol. 36, No. 5 (May 1998), pp. 144-151.
IKeslassy 2003) I. Keslassy, S. Chuang, K. Yu, D. Miller, M. Horowitz, O. Solgaard, McKeown, Scaling
Proc. 2003 ACM SIGCOMM (Karlsruhe, Germany, Aug. 2003). [Kilkki 1999] K. Kilkki, Differentiated Services for the Internet , Macmillan Technical Publishing,
Internet Routers Using Optics, Indianapolis, IN, 1999. [Kim 2005] H. Kim, S. Rixner, V. Pai, Network Interface Data Caching,"
IEEE Transactions on
Delay, McGraw-Hill, NY, NY, 1964. [Kleinrock 1975] L. Kleinrock, Queuing Systems, Vol. I, John Wiley, New York, 1975.
JKleinrock 1975b] L. Kleinrock, F. A. Tobagi, Packet Switching in Radio Channels: Part I - Car rier Sense Multiple-Access Modes and Their Throughput-Delay Characteristics,
IEEE Transactions on
Communications, Vol. 23, No. 12 (Dec. 1975), pp. 1400-1416. [Kleinrock 1976] L. Kleinrock, Queuing Systems, Vol. 2, John Wiley, New York, 1976.
(Kleinrock 2004] L. Klcinrock, The Birth of the Internet, http://www.lk.cs.ucla.edu/LK/Inet/ birth.html [Kohler 2006] E. Kohler, M. Handley, S. Floyd, DDCP: Designing DCCP: Congestion Control Without
Proc. 2006 ACM SIGCOMM (Pisa, Italy, Sept. 2006). [Korhonen 2003] J. Korhonen, Introduction to 3G Mobile Communications , 2nd ed., Artech I
Reliability, louse, 2003.
Intrusion Detection with Snort, Sams Publishing, 2003. [Krishnamurthy 2001] B. Krishnamurthy, J. Rexford, Web Protocols and Practice: HTTPU. I, Networking Protocols, and Traffic Measurement, Addison-Wesley, Boston, MA, 2001.
[Koziol 2003] J. Koziol, [Kulkarni 2005] S. Kulkarni, C. Rosenberg, Opportunistic Scheduling: Generalizations to Inc lude Multiple Constraints, Multiple Interfaces, and Short Term Fairness, 569, 2005. (Kumar 2006] R. Kumar, K.W. Ross, Optimal Peer-Assisted File Distribution: Single and Mul ti-Class Problems
IEEE Workshop on Hot Topics in Web Systems and Technologies, Boston, 2006.
216
courseware/intro.html
1 RODAl.OM JEGYZK
Proc. 1997
IEEE Communications Surveys, Vol. 2, No. 3 (Third Quarter 1999), pp. 2-14.
[Lacage 2004) M. Lacage, M.H. Manshaei, T. Turletti, IEEE 802.11 Rate Adaptation: A Practical
ACM Int. Symposium on Modeling, Analysis, and Simulation of Wireless and Mobile Systems (MSWiM) (Oct. 2004, Venice, Italy).
Approach, [Lakshman 1997] T. V. Lakshman, U. Madhow, The Performance of TCP/IP for Networks with Fligh Bandwidth-Delay Products and Random Loss, No. 3 (1997). pp. 336-350. [Lam 19801 S. Lam, A Carrier Sense Multiple Access Protocol for Local Networks,
nications of the ACM, Vol. 24, No. 11 (Nov. 1981), pp. 770-772. [Larmouth 1996] J. Larmouth, Understanding OSI, International Thomson Computer Press 1996.
Chapter 8 of this book deals with ASN.l and is available on-line at http://www.salford.ac.uk/iti/ books/osi/a 11. h t m l#head8 [Larsen 1997] A. Larsen, Guaranteed Service: Monitoring Tools, 1997, pp. 85-94. ILawton 2001] G. Lawton, Is IPv6 Finally Gaining Ground? 2001), pp. 11-15. [Leiner 19981 B. Leiner, V. Cerf, D. Clark, R. Kahn, L. Kleinrock, D. Lynch, J. Postel, L. Roberts, S. Woolf, A Brief History of the Internet, http://www.isoc.org/internet/history/brief.html [Li 2004] L. Li, D. Aldcrson,YV. Willinger, J. Doyle, A First-Principles Approach to Understanding the Internets Router-Level Topology,
Data Communications,June
Proc. 2006 IEEE hifocom 2006 (Barcelona, Spain, April 2006). [Lin 2001JY. Lin, 1. Chlamtac, Wireless and Mobile Network Architectures, John Wiley and
Systems, Sons, New York, NY, 2001. [Liu 2002] B. Liu, D. Goeckel, D. Towsley, TCP-Cognizant Adaptive Forward Error Correction in Wireless Networks,
[Loh 2006] V. Loh, Real-World Interoperability Tests of Five 802.11 n Routers, http://www.extremetech .com/a rt icle2/0,1697,2013303,00.asp [Lucent 2006] Lucent Technologies, OSS Software for Lucent Technologies and Juniper Networks Unified Solutions, http://www.lucent.com/solutions/juniper_oss.html [Lui 2004] J. Lui, V. Misra, I). Rubenstein, On the Robustness of Soft State Protocols,
Proc. IEEE
Int. Conference on Network Protocols (ICNP 04), pp. 50-60. [Luolonen 1998] A. Luotonen, Web Proxy Servers, Prentice Hall, Englewood CliiTs, New Jersey,
1998. (Lynch 1993] D. Lynch, M. Rose, Internet,
1993. [iYlacedonia 1994] M. Macedonia, D. Brutzman, MBone Provides Audio and Video Across the
IEEE Computer Magazine, Vol. 27, No. 4 (Apr. 1994), pp. 30-36.
[Mahdavi 1997] J. Mahdavi, S. Floyd, TCP-Friendly Unicast Rate-Based Flow Control, unpublis hed note, Jan. 1997. (Malware 2006] Computer Economics, 2005 Malware Report: The Impact of Malicious Code At tacks, >> http://www.computereconom ics.com [manet 2007] IETF Mobile Ad-hoc Networks (manet) Working Group, http://www.ietf.org/html .
1RODALOM JHGYZK
charters/manet-charter.html
217
[Maymounkov 2002] P. Maymounkov, D. Mazieres. Kademlia: A Peer-to-Peer Information Sys tem Based on the XOR Metric/
(McKeown 1997b] X. McKeown, A Fast Switched Backplane for a Gigabit Switched Router,
IEEE Transactions on Communications, Vol. 28, No. 5 (May 1980), pp. 711-719.
[Medhi 1997] D. Medhi, D. Tipper (eds.), Special Issue: Fault Management in Communication Net works,
Journal of Network and Systems Management, Vol. 5. No. 2 (June 1997). Computer
[Meng 20051 X. Meng, IPv4 Address Allocation and the BGP Routing Table Evolution,
No. 7, (July 1976), pp. 395-404. (MFA Forum 2007) MFA Forum homepage, http://www.mfaforum.org/ ^Microsoft Player Media 2007] Microsoft Windows Media homepage, http://www.microsoft.com/ windows/wi ndowsmed ia/ [Miller 1997] M.A. Miller, 1997. [Mirkovic 2005] I. Mirkovic, S. Dietrich, D. Dittrich. P. Reiher,
Managing Internetworks with SNMP, 2nd ed., M & T Books,New York, Internet Denial of Service: Attack
Proc. 2002 ACM Hotnets. IEEE Journal on Selected Areas in Communications, Proc.
(Molle 1987| M. L. Mollc, K. Sohraby, A. N. Venetsanopoulos, Space-Time Models of Asynchro nous CSMA Protocols for Local Area Networks, Vol. 5, No. 6, (1987) pp. 956-968. (Moore 2001] D. Moore, G. Voelker, S. Savage, Inferring Internet Denial of Service Activity,
[Moore 2003] D. Moore, V. Paxson, S. Savage, C. Shannon, S. Stamford, N. Weaver, Inside the Slammer Worm, on the Web,"
[Moshchuck 2006] A. Moshchuk, T. Bragin, S. Gribble, H. Levy, A Crawler-based Study of Spy- ware
Proc. 13th Annual Network and Distributed Systems Security Symposium (NDSS 2006), (San Diego, CA, Feb. 2006). [Mouly 1992] M. Mouly, M. Pautet, Vie GSM System for Mobile Communications , Cell andSys,
Pa- laiseau, France, 1992. [Moy 1998] J. Moy, MA, 1998. [Mukherjec 1997] B. Mukherjee,
[Murphy 2003] S. Murphy, BGP Security Vulnerabilities Analysis, draft-ietf-idr-bgp- vuln-00. txt, June 2003, ftp://flp.rfc-editor.org/in-notes/internet-drafts/draft-ietf-idrbgpvuln-00.txt [Nahum 2002] E. Nahum, T. Barzilai, D. Kandlur, Performance Issues in WWW Servers,
hop on Peer-to-Peer Information Management, (Hong Kong, May 2006), [Neumann 1997] R. Neumann, Internet Routing Black Hole, he Risks Digest: Forum on Risks to the Public in Computers and Related Systems, Vol. 19, No. 12 (May 1997).
http://catless.ncl.ac.uk/ Risks/19.12.html#subj 1.1 [Nicholson 2006] A Nicholson,Y. Chawathe, M. Chen, B. Noble, D. Wetherall, Improved Access Point Selection,
Proc. 2006 ACM Mobisys Conference, (Uppsala Sweden, 2006). W3C Document, 1997 (also appears
[Nielsen 1997] H. F. Nielsen, J. Gettys, A. Baird-Smith, E. Prud'hommeaux, H. W. Lie, C. Lilley, Network Performance Effects of HTTP/1.1, CSS1, and PNG, in
[NIST 2001] National Institute of sStandards and Technology, Advanced Encryption Standard (AES), Federal Information Processing Standards 197, Nov. 2001, http://csrc.nist.gov/publications/ fips/fipsl97/fips- 197.pdf [Nmap 2004] Nmap homepage, http://www.insecure.com/nmap [Nonnenmacher 1998] J. Nonnenmacher, E. Biersak, D. Towsley, Parity-Based Loss Recovery for Reliable Multicast Transmission, 1998), pp. 349-361. [NTIA19981 XationalTelecommunicationsand Information Administration (NT1 A), USDepartmcnt of Commerce, Management of Internet names and addresses, Docket Number: 980212036-8146-02. http://www.ntia.doc.gov/ntiahome/domainname/6_5_98dns.htm [Odlyzko 2003] A. Odlyzko, Internet Traffic Growth: Sources and Implications, A. M. Optical Transmission Systems and Equipment for WDM Networking II,
http://www.dtc.umn.edu/~odlyzko/doc/itcom.internet.growth.pdf . [OpenView2007] HP OpenView homepage, http://www.openview.hp.com/ [OSI 2007] International Organization for Standardization homepage, http://www.iso.org/iso/en/ ISOOnline.frontpage [OSS 2007] OSS Nokalva, ASN.l Resources, http://www.oss.com/asnl/ [Padhye 2000] J. Padhye, V. Firoiu, D. Towsley, J. Kurose, ModelingTCP Reno Performance: A Simple Model and its Empirical Validation, 2000), pp. 133-145. [Padhye 2001] J. Padhye, S. Floyd, On Inferring TCP Behavior, Diego, CA, Aug. 2001). [Pan 1997] P. Pan, H. Schulzrinne, Staged Refresh Timers for RSVP,
IEEE/ACM Transactions on Networking, Vol. 8 No. 2 (Apr. Proc. 2001 ACM SIGCOMM, (San Proc. 2nd Global Internet
IROAI.OMJKGYZEK
72!
IEEE/ACM Transactions on Networking,
(Parekh 1993] A. Parekh, R. Gallagher, A generalized processor sharing approach to flow control in integrated services networks: the single-node case , Vol. 1, No. 3 (June 1993), pp. 344-357. [Partridge 1992] C. Partridge, S. Pink, An Implementation of the Revised Internet Stream Proto col
Journal of Internetworking: Research and Experience , Vol. 3, No. I (Mar. 1992). [Partridge 1998] C. Partridge, et al. A Fifty Gigabit per second IP Router, IEEE/ACM Transactions on Networking, Vol. 6, No. 3 (Jun. 1998), pp. 237-248. [Paxson 19971 V. Paxson, End-to-end Internet packet dynamics, Proc. 997 ACM SIGCOMM
(ST-2), (Cannes, France, Sept 1997). [Perkins 1994] A. Perkins, Networking with Bob Metcalfe, 1994. [Perkins 1998] C. Perkins, O. Hodson, V. Hardman, A Survey of Packet Loss Recovery Techniques
IEEE Network Magazine, Sept./Oct. 1998, pp. 40-47. [Perkins 1998b] C. Perkins, Mobile IP: Design Principles and Practice, Addison-Wesley, Reading,
for Streaming Audio, MA, 1998.
Ad Hoc Networking, Addison-Wesley, Reading, MA, 2000. [Perlman 1999] R. Perlman, Interconnections: Bridges, Routers, Switches, and Internetworking Protocols, 2nd cd., Addison-Wesley Professional Computing Series, Reading, MA,
[Perkins 2000] C. Perkins, 1999. [PGP1 2007] The International PGP Home Page, http://www.pgpi.org [Phifer 2000] L. Phifer, Ihe Trouble with NAT,
2000), http://www.cisco.com/warp/public/759/ipj_3-4/ipi_3-4_nat.html [Pickholtz 1982] R. Pickholtz, D. Schilling, L. Milstein, Theory of Spread Spectrum Communica tion a Tutorial.
IEEE Transactions on Communications, Vol. 30, No. 5 (May 1982), pp. 855-884. Open Systems Networking, Addison-Wesley,
[pingplotter 2007] pingplotter homepage, http://www.pingplotter.com [Piscatello 1993] D. Piscatello, A. Lyman Chapin, Reading, MA, 1993. [Point Topic 2006] Point Topic Ltd., com [PPLive 20071 PPI.ive homepage, http://www.pplive.com [Primctrica 2007] PriMetrica Inc, Global Internet Geography 2006, http://www.tclegeography . com [QuickTime 2007] QuickTime homepage, http://www.apple.com/quicktime [Quittner 1998] J. Quittner, M. Slatalla,
[Raman 2007J B. Raman, K. Chebrolu, Experiences in using WiFi for Rural Internet in India, Emerging Economies, Jan 2007. [Ramaswami 1998] R. Ramaswami, K. Sivarajan, Morgan Kaufman Publishers, 1998.
Communications Magazine, Special Issue on New Directions in Networking Technologies in Optical Networks: A Practical Perspective,
243
IRODALOMJKGYZF.K
[Ramjee 1994] R. Ramjee, J. Kurosc, D. Towsley, H. Schulzrinne, Adaptive Playout Mechanisms for
Proc. 1994 IEEE Infocom. JRao 1996] K. R. Rao, J. J. Hwang, Techniques and Standards for Image, Video and Audio Coding, Prenticc Hall, Englewood Clifls, NJ, 1996.
Packetized Audio Applications in Wide-Area Networks [RAT 2007] Robust Audio Tool, http://www-mice.cs.ucl.ac.uk/multimedia/software/rat/ [Ratnasamy 2001] S. Ratnasamy, P. Francis, M. Handley, R. Karp, S. Shenker, A Scalable Content-Addressable Network,
Proc. 2001 ACM SIGCOMM, (San Diego, CA, Aug. 2001). [RealNetworks 20071 Proc. 2006 IEEE ICDCS (Lisboa,
RealNetworks homepage, http://www.realnetworks.com [Ren 2006] S. Ren, 1.. Guo, X. Zhang, ASAP: an AS-aware peer-relay protocol for high quality VoIP, Portugal. July 2006). [Rescorla200l] E. Rescorla, Wesley, Boston, 2001. [RFC 001] S. Crocker, Host Software, RFC 001 (the
SSL and I LS: Designing and Building Secure Systems, Addisonvery first RFC!).
[RFC 768] J. Postel, User Datagram Protocol," RFC 768, Aug. 1980. [RFC 7891 E. Rosen, Vulnerabilities of Network Control Protocols, RFC 789. [RFC 791] J. Postel, Internet Protocol: DARPA Internet Program Protocol Specification," RFC 791, Sept. 1981. [RFC 792] J. Postel, Internet Control Message Protocol, RFC 792, Sept. 1981. [RFC 793] J. Postel, Transmission Control Protocol, RFC 793, Sept. 1981. [RFC 801] J. Postel, NCP/TCP Transition Plan, RFC 801 Nov. 1981. [RFC 826] D. C. Plummer, An Ethernet Address Resolution Protocol - or - Converting Network Protocol Addresses to 48 bit Ethernet Address for Transmission on Ethernet Hardware, RFC 826, Nov. 1982. [RFC 829) V. Cerf, Packet Satellite Technology Reference Sources, RFC 829, Nov. 1982. [RFC 854] J. Postel, J. Reynolds, TELNET Protocol Specification, RFC 854. May 1993. [RFC 950] J. Mogul, J. Postel, Internet Standard Subnetting Procedure, RFC 950, Aug. 1985. [RFC 9591 J- Postel. I. Reynolds, File Transfer Protocol (FTP), RFC 959, Oct. 1985. [RFC 977] B. Kantor, P. Lapsley, Network News Transfer Protocol, RFC 977, Feb. 1986. [RFC 1028] J. Davin. J.D. Case, M. Fedor, M. Schofistall, A Simple Gateway Monitoring Protocol, RFC 1028, Nov. 1987. [RFC 1034] P. V. Mockapetris, Domain Names - Concepts and Facilities, RFC 1034, Nov. 1987. [RFC 1035] P. Mockapetris, Domain Names - Implementation and Specification, RFC 1035, Nov. 1987. [RFC 1058] C. L. Hendrick, Routing Information Protocol, RFC 1058, June 1988. 808 [RFC 1071] R. Braden, D. Borman, C. Partridge, ComputingThe Internet Checksum RFC 1071, Sept. 1988. [RFC 1075] D. Waitzman, C. Partridge, S. Deering, Distance Vector Multicast Routing Protocol, RFC 1075, Nov. 1988. [RFC 11121 S. Deering, Host Extension for IP Multicasting, RFC 1112, Aug. 1989. [RFC 1122] R. Braden, Requirements for Internet Hosts - Communication Layers, RFC 1122, Oct. 1989. [RFC 1123] R. Braden, ed., Requirements for Internet Hosts -Application and Support RFC-1123, Oct. 1989. [RFC 1142] D. Oran, OSI IS-IS Intra-domain Routing Protocol, RFC 1142, Feb. 1990. [RFC 1190] C. Topolcic, Experimental Internet Stream Protocol: Version 2 (ST-II), RFC 1190, Oct. 1990. [RFC 1191J J. Mogul, S. Deering, Path MTU Discovery, RFC 1191, Nov. 1990.
IRODALOMJEGYZK
TCP/IP-based internets: MIB-II, RFC 1213, Mar. 1991. [RFC 1256] S. Deering, ICMP Router Discovery Messages, RFC 1256, Sept. 1991. [RFC 1320| R. Rivest, The MD4 Message-Digest Algorithm, RFC 1320, Apr. 1992. [RFC 1321] R. Rivest, 'lhe MD5 Message-Digest Algorithm, RFC 1321, Apr. 1992.
221
[RFC 1213] K. McCloghrie, M. T. Rose, Management Information Base for Network Management of
[RFC 1323] V. Jacobson, S. Braden, D. Borman, TCP Extensions for High Performance, RFC 1323, May 1992. [RFC 1422] S. Kent, Privacy Enhancement for Internet Electronic Mail: Part II: Certificate-Based Key Management, RFC 1422. [RFC 1547] D. Perkins, Requirements for an Internet Standard Point-to-Point Protocol, RFC 1547, Dec. 1993. [RFC 1584] J. Moy, Multicast Extensions to OSPF, RFC 1584, Mar. 1994. [RFC 1633] R. Braden, D. Clark, S. Shenker, integrated Services in the Internet Architecture: an Overview, RFC 1633, June 1994. [RFC 1636] R. Braden, D. Clark, S. Crocker, C. Huitema, Report of 1AB Workshop on Security in the Internet Architecture, RFC 1636, Nov. 1994. [RFC 1661]W. Simpson (ed.), The Point-to-Point Protocol (PPP), RFC 1661, July 1994. [RFC 1662] W. Simpson (ed.), PPP in HDLC-like framing, RFC 1662, July 1994. [RFC 1700] J. Reynolds, J. Postel, Assigned Numbers, RFC 1700, Oct. 1994. [RFC 1752] S. Bradner, A. Mankin, The Recommendations for the IP Next Generation Protocol, RFC 1752, Jan. 1995. [RFC 1760] N. Haller. The S/KEY One-Time Password System, RFC 1760, Feb. 1995. [RFC 1772JY. Rekhter, P. Gross, "Application of the Border Gateway Protocol in the Internet, RFC 1772, Mar. 1995. [RFC 1773] P. Trana, Experience with the BGP-4 protocol, RFC 1773, Mar. 1995. [RFC 1918] Y. Rekhter, B. Moskowitz, D. Karrenberg, G. J. de Groot, E. Lear, Address Allocation for Private Internets, RFC 1918, Feb. 1996. [RFC 1930] J. Hawkinson, T. Bates, Guidelines for Creation, Selection, and Registration of an Au tonomous System (AS), RFC 1930, Mar. 1996. [RFC 1938] N. 11 a Her, C. Metz, A One-Time Password System, RFC 1938, May 1996. [RFC 1939] J. Myers, M. Rose, Post Office Protocol - Version 3, RFC 1939, May 1996. [RFC 1945] T. Berners-Lee, R. Fielding, H. Frystyk, Hypertext Transfer Protocol HTTP/1.0, RFC 1945, May 1996. [RFC 2003] C. Perkins, IP Encapsulation within IP, RFC 2003, Oct. 1996. [RFC 2004] C. Perkins, "Minimal Encapsulation within IP, RFC 2004, Oct. 1996. [RFC 2018] M. Mathis, J. Mahdavi, S. Floyd, A. Romanow, TCP Selective Acknowledgment Options, RFC 2018, Oct. 1996. [RFC 2045] N. Freed, N. Borenstein, Multipurpose Internet Mail Extensions (MIME) Part One: Format of Internet Message Bodies, RFC 2045, Nov. 1996. [RFC 2050] K. Hubbard, M. Kosters, D. Conrad. D. Karrenberg, J. Postel, "Internet Registry IP Allocation Guidelines, RFC 2050, Nov. 1996. (RFC 2104] H. Krawczyk, M. Bcllare, R. Canetti, HMAC: Keyed-Hashing for Message Authentication, RFC 2104, Feb. 1997. 1RFC 2131] R. Droms, Dynamic Host Configuration Protocol, RFC 2131, Mar. 1997. [RFC 21361 P. Vixie, S. Thomson,Y. Rekhter, J. Bound, Dynamic Updates in the Domain Name System, RFC 2136, Apr. 1997. [RFC 2153JW. Simpson, PPP Vendor Extensions, RFC 2153, May 1997.
222
IRODALOMJEGYZEK
[RFC 2205] R. Braden, Ed., L. Zhang, S. Bcrson, S. Herzog, S. Jamin, Resource ReSerVation Proto col (RSVP) - Version 1 Functional Specification, RFC 2205, Sept. 1997. [RFC 2210] J. Wroclawski, The Use of RSVP with IETF Integrated Services, RFC 2210, Sept. 1997. [RFC 2211] ]. Wroclawski, Specification of the Controlled-Load Network Element Service, RFC 2211, Sept. 1997. [RFC 2215] S. Shenker, J. Wroclawski, General Characterization Parameters for Integrated Service Network Elements, RFC 2215, Sept. 1997. [RFC 2225] M Laubach, J. Halpern, Classical UP and ARP over ATM, RFC 2225, Apr. 1998. [RFC 2246] T. Dicrks, C. Allen, The TLS Protocol, RFC 2246, Jan. 1998. [RFC 2253] M. Wahl, S. Kille, T. Howes, Lightweight Directory Access Protocol (v3), RFC 2253, Dec. 1997. [RFC 2284] L. Blunk, J. Vollbrecht, PPP Extensible Authentication Protocol (F.AP)RFC 2284, Mar. 1998. [RFC 2326] H. Schulzrinne, A. Rao, R. I.anphier, Real Time Streaming Protocol (RTSP), RFC 2326, Apr. 1998. (RFC 2328| J. Moy, "OSPF Version 2, RFC 2328, Apr. 1998. (RFC 2409] D. Harkins, D. Carrel,The Internet Key Exchange (IKE), RFC 2409, Nov. 1998. http:// www.rfc-editor.org/rfc/rfc2409.txt [RFC 2420] H. Kummert, The PPP Triple-DES Encryption Protocol (3DESE), RFC 2420, Sept. 1998. [RFC 2437] B. Kaliski, J. Staddon, PKCS #1: RSA Cryptography Specifications, Version 2, RFC 2437, Oct. 1998. [RFC 2448] M. Civanlar, G. Cash, B. Haskell, AT&Ts Error Resilient Video Transmission Tech nique, 1 "Nov. 1998. [RFC 2453] G. Malkin, RIP Version 2, RFC 2453, Nov. 1998. [RFC 2460] S. Deering, R. Hinden, Internet Protocol, Version 6 (IPv6) Specification, RFC 2460, Dec. 1998. (RFC 2475] S. Blake, D. Black, M. Carlson, E. Davies, Z. Wang.W. Weiss, An Architecture for Dif ferentiated Services, RFC 2475, Dec. 1998. (RFC 2578] K. McCloghrie, I). Perkins, J. Schoenwaelder, Structure of Management Information Version 2 (SMIv2), RFC 2578, Apr. 1999. [RFC 2579] K. McCloghrie, D. Perkins, J. Schoenwaelder, Textual Conventions for SMIv2, RFC 2579, Apr. 1999. (RFC 2580] K. McCloghrie, D. Perkins, J. Schoenwaelder, Conformance Statements for SMIv2, RFC 2580, Apr. 1999. [RFC 2581] M. Allman, V. Paxson,W. Stevens, TCP Congestion Control, RFC 2581, Apr. 1999. [RFC 2597] J. Heinanen, F. Baker,W. Weiss, J. Wroclawski, Assured Forwarding PHB Group, RFC 2597, June 1999. [RFC 2616] R. Fielding, J. Gettys, J. Mogul, H. Frystyk, L. Masinter, P. I.each, T. Berners-Lee, R. Fielding, Hypertext Transfer Protocol - HTTP/1.1, RFC 2616, June 1999. (RFC 2663] P. Srisuresh, M. Holdrege, IP Network Address Translator (NAT) Terminology and Considerations, RFC 2663. [RFC 2702] D. Awduche, J. Malcolm, J. Agogbua, M. ODell, J. McManus, Requirements for Traffic Engineering Over MPLS, Sept. 1999. (RFC 2716] B. Aboba, D. Simon, "PPP EAP TLS Authentication Protocol, RFC 2716, Oct. 1999. [RFC 2733) |. Rosenberg, H. Schulzrinne, An RTP Payload Format for Generic Forward Error Correction," RFC 2733, Dec. 1999. [RFC 2821] J. Klensin, ed., Simple Mail Transfer Protocol, RFC 2821, Apr. 2001.
IRODALOMJEGYZEK
223
[RFC 2827) P. Ferguson, D. Senie, Network Ingress Filtering: Defeating Denial of Service Attacks which Employ IP Source Address Spoofing," RFC 2827, May 2000. [RFC 2865] C. Rigney, S. Willens, A. Rubens,W. Simpson, Remote Authentication Dial In User Service (RADIUS)," RFC 2865, June 2000. RFC 2960] R. Stewart, Q. Xie, K. Morneault, C. Sharp, H. Schwarzbauer, T. Taylor, I. Rytina, M. Kalla, L. Zhang, V. Paxson, Stream Control Transmission Protocol, RFC 2960, Oct. 2000. [RFC 2961] L. Berger, D. Gan, G. Swallow, P. Pan, F. Tommasi, S. Molendini, RSVP Refresh Over head Reduction Extensions, RFC 2961, Apr. 2001. [RFC 2988] V. Paxson, M. Allman, Computing TCP's Retransmission Timer, RFC 2988, Nov.
2000 .
[RFC 3007] B. Wellington, Secure Domain Name System (DNS) Dynamic Update, RFC 3007, Nov. 2000. [RFC 3022] P. Srisuresh, K. Egevang, Traditional IP Network Address Translator (Traditional NAT)"RFC3022, Jan. 2001. [RFC 3031] E. Rosen, A. Viswanathan, R. Callon, Multiprotocol Label Switching Architecture, RFC 3031, Jan. 2001. [RFC 3032] E. Rosen, D. Tappan, G. Fedorkow,Y. Rekhter, D. Farinacci, T. Li. A. Conta, MPLS La bel Stack Encoding, RFC 3032, Jan. 2001. [RFC 3052] M. Edcr, S. Nag, Service Management Architectures Issues and Review, RFC 3052, Jan. 2001. [RFC 3139] L. Sanchez, K. McCloghrie, J. Saperia, Requirements for Configuration Management of IP-Based Networks RFC 3139, June 2001. [RFC 3168] K. Ramakrishnan, S. Floyd, D. Black, The Addition of Explicit Congestion Notifica tion (ECN) to IP, RFC 3168, Sept. 2001. [RFC 3209] D. Awduche, L. Berger, D. Gan, T. Li, V. Srinivasan, G. Swallow, RSVP-TE: Extensions to RSVP for LSP Tunnels, RFC 3209, Dec. 2001. [RFC 3221] G. Huston, Commentary on Inter-Domain Routing in the Internet, RFC 3221, Dec. 2001. [RFC 3232) ]. Reynolds, Assigned Numbers: RFC 1700 is Replaced by an On-line Database, RFC' 3232, Jan. 2002. [RFC 3246] B. Davie, A. Charny, J.C.R. Bennet, K. Benson, J.Y. Le Boudec,W. Courtney, S. Dava- ri, V. Firoiu, D. Stiliadis, "An Expedited Forwarding PIIB (Per-Ilop Behavior), RFC 3246, Mar.
2002.
[RFC 3260] D. Grossman, New Terminology and Clarifications for Diffserv, RFC 3260, Apr.
2002.
[RFC 3261] J. Rosenberg, H. Schulzrinne, G. Carmarillo, A. Johnston, J. Peterson, R. Sparks, M. Handley, E. Schooler,SIP: Session Initiation Protocol, RFC 3261, July 2002. [RFC 3272] J. Boyle, V. Gill, A. Hannan, D. Cooper, D. Awduche, B. Christian,W.S. Lai, Overview and Principles of Internet Traffic Engineering, RFC 3272, May 2002. [RFC 3286] L. Ong, J. Yoakum, An Introduction to the Stream Control Transmission Protocol (SCTP)," RFC 3286, May 2002. [RFC 3344] C. Perkins, ed., IP Mobility Support for IPv4," RFC 3344, Oct. 2002. [RFC 3346] J. Boyle, V. Gill, A. Hannan, D. Cooper, D. Awduche, B. Christian,W. S. Lai, Applica bility Statement for Traffic Engineering with MPLS," RFC 3346, Aug. 2002. (RFC 3376) B. Cain, S. Deering, I. Kouvelas, B. Fenner, A. Tliyagarajan, "Internet Group Manage ment Protocol, Version 3 RFC 3376, Oct. 2002. [RFC 3390) M. Allman, S. Floyd, C. Partridge, Increasing TCPs Initial Window, RFC 3390, Oct.
2002.
[RFC 3410] J. Case, R. Mundy, D. Partain, Introduction and Applicability Statements for Internet Standard Management Framework," RFC 3410, Dec. 2002. [RFC 3411] I). Harrington, R. Presuhn, B. Wijnen, An Architecture for Describing Simple Net work
224
Management Protocol (SNMP) Management Frameworks, RFC 3411, Dec. 2002.
1R0DA1.0MJEGYZEK
[RFC 3414] U. Blumenthal, User-based Security Model (USM) for version 3 of the Simple Network Management Protocol (SNMPv3), RFC 3414, Dec. 2002. [RFC 3415] B. Wijnen, R. Presuhn, K. McCloghrie, View-based Access Control Model (VACM) for the Simple Network Management Protocol (SNMP), RFC 3415, Dec. 2002. [RFC 3416] R. Presuhn, J. Case, K. McCloghrie, M. Rose, S. Waldbusser, Version 2 of the Protocol Operations for the Simple Network Management Protocol (SNMP), Dec. 2002. [RFC 3417J R. Presuhn, Transport Mappings for the Simple Network Management Protocol, (SNMP), RFC 3417, Dec. 2002. [RFC 3439] R. Bush, D. Meyer, Some internet architectural guidelines and philosophy, RFC 3439, Dec. 2003. [RFC 3468) L. Andersson, G. Swallow, The Multiprotocol Label Switching (MPLS) Working Gro up Decision on MPLS Signaling Protocols, RFC 3468, Feb. 2003. [RFC 3469] V. Sharma, Ed., F. Hellstrand, Ed, Framework for Multi-Protocol Label Switching (MPLS)based Recovery, RFC 3469, Feb. 2003. ftp://ftp.rfc-editor.org/in-notes/rfc3469.txt [RFC 3501] M. Crispin, Internet Message Access Protocol - Version 4revl, RFC 3501, Mar. 2003. [RFC 3513] R. Hinden, S. Deering, Internet Protocol Version 6 (IPv6) Addressing Architecture, RFC 3513, Apr. 2003. [RFC 3550J H. Schulzrinne, S. Casner, R. Frederick, V. Jacobson, RTP: A Transport Protocol for RealTime Applications, RFC 3550, July 2003. [RFC 3569J S. Bhattacharyya (ed.), An Overview of Source-Specific Multicast (SSM), RFC 3569, July 2003. [RFC 35881 P. Calhoun, J. Loughney, I. Guttman, G. Zorn, 1. Arkko, Diameter Base Protocol, RFC 3588, Sept. 2003. [RFC 3618] B. Fenner, D. Meyer, Ed., Multicast Source Discovery Protocol (MSDP)RFC 3618, Oct. 2003. [RFC 36491 S. Floyd, High Speed TCP for Large Congestion Windows, RFC 3649, Dec. 2003. [RFC 3700] J. Reynolds, S. Ginoza, Ed, Internet Official Protocol Standards, RFC 3700, July 2004. [RFC 3782] S. Floyd, T. Henderson, A. Gurtov, The NewReno Modification to TCPs Fast Recovery Algorithm, RFC 3782, Apr. 2004. [RFC 3973] A. Adams, J. Nicholas,W. Siadak, Protocol Independent Multicast - Dense Mode (PIMDM): Protocol Specification (Revised), RFC 3973, Jan. 2005. [RFC 4022] R. Raghunarayan, Ed., Management Information Base for the Transmission Control Protocol (TCP)," RFC 4022, Mar. 2005. [RFC 4113] B. Fenner, J. Flick, Management Information Base for the User Datagram Protocol (UDP), RFC 4113, June 2005. [RFC 4213] E. Nordmark, R. Gilligan, Basic Transition Mechanisms for IPv6 Hosts and Routers, RFC 4213, Oct. 2005.
225
IRODALOMJHGYZLK
[RFC 4271] Y. Rckhtcr,T. Li, S. Hares, Ed., A Border Gateway Protocol 4 (BGP-4), RFC 4271, Jan. 2006. [RFC 42911 R. 1 linden, S. Peering, 'TP Version 6 Addressing Architecture, RFC 4291, February 2006. (RFC 4293) S. Routhier, Fid. Management Information Base for the Internet Protocol (IP), RFC 4293, Apr. 2006. (RFC 4301] S. Kent, K. Seo, Security Architecture for the Internet Protocol, RFC 4301, December 2005. (RFC 4302] S. Kent, TP Authentication Header, RFC 4302, December 2005. [RFC 4303] S. Kent, IP Encapsulating Security Payload (ESP), RFC 4303, December 2005. [RFC 4305] D. F.astlake, Cryptographic Algorithm Implementation Requirements for Encapsula ting Security Payload (ESP) and Authentication Header (AH), RFC 4305, December 2005. [RFC 4340] E. Kohler, M. Handley, S. Floyd, Datagram Congestion Control Protocol (DCCP), RFC 4340, Mar. 2006. [RFC4443] A. Conta, S. Deering, M. Gupta, Ed.,Internet Control Message Protocol (ICMPv6) for the Internet Protocol Version 6 (IPv6) Specification, RFC4443, Mar. 2006. (RFC 4346] T. Dierks, E. Rescorla, The Transport Layer Security (TI.S) Protocol Version 1.1, RFC 4346, April 2006. [RFC 4502] S. YValdbusser, Remote Network Monitoring Management Information Base Version 2, RFC 4502, May 2006. [RFC 4601] B. Fenner, M. Handley, H. Holbrook, I. Kouvelas, Protocol Independent Multi cast Sparse Mode (PIM-SM): Protocol Specification (Revised), RFC 4601, Aug. 2006. [RFC 4607] H. Holbrook, B. Cain, Source-Specific Multicast for IP, RFC 4607, Aug. 2006. [RFC 4611] M. McBride, J. Meylor, D. Meyer, Multicast Source Discovery Protocol (MSDP) Dep loyment Scenarios, RFC 4611, Aug. 2006. [RFC 4632] V. Fuller, T. Li, Classless Inter-domain Routing (CIDR): The Internet Address Assign ment and Aggregation Plan, RFC 4632, Aug. 2006. [Rhee 1998] I. Rhee, Error Control Techniques for Interactive l.ow-bit Rate Video Transmission over the Internet,
The Simple Book: An Introduction to Internet Management, RevisedSecond Edition, Prentice Hall, Englewood Cliffs, NJ, 1996.
[Rose 1996] M. Rose, [Rosenberg 2000] J. Rosenberg, L. Qiu, H. Schulzrinne, Integrating Packet FEC into Adaptive Pla-
Proc. 2000 IEEE Infocom (Tel Aviv, Israel, Apr. 2000). [Ross 1995] K. W. Ross, Multiservice Loss Models for Broadband Telecommunication Networks, Springer, Berlin, 1995.
yout Buffer Algorithms on the Internet, [Ross 2007] K. W. Ross, PowerPoint slides on network Security, http://cis.poly.edu/~ross [Rowston 2001] A. Rowston, P. Druschel, Pastry: Scalable, Distributed Object Location and Rou ting for LargeScale Peer-to-Peer Systems, in key Cryptosystems,
[RSA 1978] R. Rivest, A. Shamir, L. Adelman, A Method for Obtaining Digital Signatures and Public-
Communications of the ACM, Vol. 21, No. 2, pp. 120-126, Feb. 1978. [RSA
FAQ 2004] RSA Inc., RSA Laboratories Frequently Asked Questions About Todays Cryptography, Version 4.1, htlp://\v\vw.rsasecurity.com/rsalabs/faq [RSA Fast 2007] RSA Laboratories, Mow fast is RSA? http://www.rsasecurity.com/rsalabs/ faq/3-l-
1RODALOMJEGYZK
226
2.html [RSA Key 2007] RSA Laboratories, How large a key should be used in the RSA Crypto system? http://www.rsasecurity.com/rsalabs/faq/3-l-5.html [Rubenstein 1998] D. Rubenstein, J. Kurose, D. Towsley, Real-Time Reliable Multicast Using Pro -
Proceedings of NOSSDAV '98 (Cambridge, UK, July 1998). [Rubin 2001] A. Rubin, White-Hat Security Arsenal: Tackling the Threats , Addison-Wesley,
active Forward Error Correction, 2001. [Ruiz-Sanchez 2001] M. Ruiz-Snchez, E. Bicrsack.YV. Dabbous, Survey and Taxonomy of IP
IEEE Network Magazine, Vol. 15, No. 2, pp. 8-23, Mar./Apr. 2001 [Saltzer 1984] J. Saltzer, D. Reed, D. Clark, End-to-End Arguments in System Design, ACM Transactions on Computer Systems (TOCS), Vol. 2, No. 4 (Nov. 1984).
Address Lookup Algorithms, [Saydam 1996] T. Savdam. T. Magcdanz, From Networks and Network Management into Service and Service Management, 1996), pp. 345-348. [Schiller 2003] J. Schiller,
Mobile Communications 2nd edition, Addison Wesley, 2003. [Schneier 1995] B. Schneier, Applied Cryptography: Protocols, Algorithms, and Source Code in C, John Wiley and Sons, 1995.
[Schulzrinne 1997] H. Schulzrinne, A Comprehensive Multimedia Control Architecture for the Internet,
NOSSDAV97 (Network and Operating System Support for Digital Audio and
Computer-Communication Network Design and Analysis, Information, Transmission, Modulation, and Noise, McGraw-Hill, IEEE
Transactions on Communications, Vol. 30, No. 1, (Jan. 1982), pp. 172-18'L JSchwicbert 2001] L. ACM Mobicotn 2001, 2001, pp. 151-165.
[Scourias 2007] J. Scourias, Overview of the Global System for Mobile Communications: GSM. htt p://w w w.pr ivatel i ne.com/ PCS/GSM0. h t m I [Segaller 1998] S. Segallcr,
Nerds 2.0.1, A Brief History of the Internet, TV Books, New York, Proc. 1990 IEEE Infocom (San Francisco, CA, Apr. 1990), pp.
1998. [Shachani 1990] N. Shacham, P. McKenney, Packet Recovery in High-Speed Networks Using Coding and Buffer Management, 124-131. [Sharma 2003] P. Sharma, E, Perry, R. Malpani, IP Multicast Operational Network management: Design, Challenges, and Experiences,
[Sidor 1998] D. Sidor, TMN Standards: Satisfying Todays Needs While Preparing for Tomorrow,"
IEEE Communications Magazine, Vol. 36, No. 3 (Mar. 1998), pp. 54-64.
1RODALOMJEGYZK
227
739
I RODALOMJUGYZK
The Code Book: The Evolution of Secrecy from Mary, Queen of Scotsto Quantum Cryptography, Doubleday Press, 1999.
{Singh 1999J S. Singh, (SIP Software 2007] H. Schulzrinne Software Package site, http://www.cs.columbia.edu/IRT/softwarc
Malware: Fighting Malicious Code, Prentice Hall, 2004. (Skoudis 2006] E. Skoudis, T. Liston, Counter Hack Reloaded: A Step-by-Step Guide to Computer Attacks and Effective Defenses (2nd Edition), Prentice Hall, 2006.
(Skoudis 2004] E. Skoudis, L. Zeltser, (Skype 2007] Skype homepage, www.skype.com (SMIL 2007] W3C Synchronized Multimedia homepage, http://www.w3.org/AudioVideo (Snort 2007] Sourcefire Inc., Snort homepage, http:// http://www.snort.org/
Digital Video and Audio Compression, McGraw Hill, NY, NY, 1997. [Solensky 1996] F. Solensky, IPv4 Address Lifetime Expectations, in I Png: Internet Protocol Next Generation (S. Bradner, A. Mankin, ed.), Addison-Wesley, Reading, MA, 1996. (Spragins 19911 J. D. Spragins, Telecommunications Protocols and Design, Addison-Wesley,
[Solari 1997] S. j. Solari, Reading, MA, 1991. [Sprint 2007] Sprint Corp., Dedicated Internet Access Service Level Agreements, http://www . sprint.com/business/resources/dedicated_internet_access.pdf [Srinivasan 1999] V. Srinivasan, G. Varghesc, Fast Address Lookup Using Controlled Prefix Ex pansion, ACM
Transactions ComputerSys., Vol. 17, No. 1 (Feb 1999), pp. 1-40. Proc. 4th ACM SIGCOMM Internet Measurement Conference, SNMP, SNMP v2, and CMIP The Practical Guide to Network
[Sripanidkulchai 2004] K. Sripanidkulchai, B. Maggs, H. Zhang, An analysis of live streaming workloads on the Internet, [Stallings 1993] W. Stallings, (Taormina, Sicily, Italy), pp. 41-54, 2004.
Management Standards, Addison-Wesley, Reading, MA, 1993. [Stallings 1999] W. Stallings, SNMP, SNMPv2, SNMPv3, and RMONI and2, Addison-Wesley, Reading, MA, 1999. [Steinder 2002] M. Steinder, A. Sethi, Increasing robustness of fault localization through analysis of
Proc. 2002 IEEE Infocom. [Stevens 1990]W. R. Stevens, Unix Network Programming, Prentice-Hall, Englewood Cliffs, NJ. (Stevens 1994]W. R. Stevens, TCP/IP Illustrated, Vol. I: The Protocols, Addison-Wesley, Reading,
lost, spurious, and positive symptoms, MA, 1994. (Stevens 1997] W.R. Stevens,
Sockets and XT1, 2nd edition, Prentice-Hall, Englewood (Tiffs, NJ, 1997. (Stewart 1999] J. Stewart, BGP4: Interdomain Routing in the Internet, Addison-Wesley, 1999.
[Stoica 2001] 1. Stoica, R. Morris, D. Karger, M.F. Kaashock, H. Balakrishnan, Chord: A Scalable Peer-to-Peer Lookup Service for Internet Applications, CA, Aug. 2001). (Stone 1998] J. Stone, M. Greenwald, C. Partridge, J. Hughes, Performance of Checksums and CRCs
IEEE/ACM Transactions on Networking, Vol. 6, No. 5 (Oct. 1998), pp. 529-543. (Stone 2000] J. Stone, C. Partridge, When Reality and the Checksum Disagree, Proc. 2000 ACM SIGCOMM (Stockholm, Sweden, Aug. 2000). (St rayer 1992] W. T. St rayer, B. Dempsey, A. Weaver, XTP: The Xpress Transfer Protocol, AddiOver Real Data, son-Wesley, Reading, MA, 1992. (Stubblefield 2002] A. Stubblefield, J. Ioannidis, A. Rubin, Using the Fluhrer, Mantin, and Shamir Attack to Break WEP,
(Subramanian 2002] L. Subramanian, S. Agarwal, J. Rexford, R. Katz, Characterizing the Internet I lierarchy from Multiple Vantage Points, Point Selection, 2006). [Suh 2006] K. Suh, D.R. Figueiredo, J. Kurose, D. Towsley, Characterizing and detecting relayed tralTic: A case study using Skype, tice/sem/index. [Sunshine 1978| C. Sunshine,Y. Dalai, Connection Management in Transport Protocols,"
[Sundaresan 2006] K.Sundaresan, K. Papagiannaki, The Need for Cross-layer Information in Access
Computer
IEEE Journal on
Selected Areas in Communications, Vol. 15, No. 3, (Apr. 1997), pp. 291-303.
[Think 2007] Technical I listory of Network Protocols, "Cyclades, http://www.cs.utexas.edu/users/ chris/think/Cyclades/index.shtml
/
['Ihottan 1998] M. Thottan, C. Ji, Proactive Anomaly Detection Using Distributed Intelligent Agents,
IEEE Network Magazine, Vol. 12, No. 5 (Sept./Oct. 1998), pp. 21-28.
[Tobagi 1990] P. Tobagi, Fast Packet Switch Architectures for Broadband Integrated Networks,
Proc. of the IEEE, Vol. 78, No. 1 (Jan. 1990), pp. 133-167.
(Turner 1988] J. S. Turner Design of a Broadcast packet switching network,
IEEE Transactions
2001.
[Villamizar 1994] C. Villamizar, C. Song. High performance tcp in ansnet,
ACM SIGCOMM
Computer Communications Review, Vol. 24, No. 5 (1994), pp. 45-60. (Viterbi 19951 A- Viterbi, CDMA: Principles of Spread Spectrum Communication, AddisonWesley, Reading, MA, 1995. [von I.ohmann 2003] F. von Lohmann, Peer-to-Peer File Sharing and Copyright Law: A Primer for Developers, CA, 2003). [Voydock 1983J V.L. Voydock,S.T. Kent, Security Mechanisms in High-Level Network Protocols,
ACM Computing Surveys, Vol. 15, No. 2 (June 1983), pp. 135-171.
IROAIOMJRCYZK
741
I RODALOMJEGYZ K
(W3C 1995J The World Wide Web Consortium, A Little History of the World Wide Web, 1995. http://www.w3.org/History.html [Wakeinan 1992] I. Wakeman, J. Crowcroft,Z. Wang, D. Sirovica, Layering Considered Harmful,
Proc. 1997ACM
Mechanisms for Broadcast and Selective Broadcast, Ph.D. thesis, Stanford University, June
1980. (Wang 2004] B. Wang, J. Kurose, P. Shenoy, D. Towsley, Multimedia Streaming via TCP: An Analytic Performance Study,
Proc. ACM Multimedia Conf, (NY, NY, Oct. 2004). Intel Technology
IEEE/ACM Transactions on Networking, to appear 2007. [ Weiser 1991J M. Weiser, The Computer for the Twenty-First Century, Scientific American (Sept.
Performance, 1991) : 94-10. http://www.ubiq.com/hypertext/weiser/SciAmDrafl3.html [Wigle.net 2007J Wireless Geographic Logging Engine, http://www.wigle.net [Williams 1993] R. Williams, A Painless Guide to CRC Error Detection Algorithms, http://www . ross.net/crc/crcpaper.html [WiMax Forum 2007]WiMax Forum, http://www.wimaxforum.org/tech [Wischik 2005] D. Wischik, N. McKeown, Part I: Buffer Sizes for Core Routers,
ACM SIGCOMM
[Wood 2007] L. Wood, Lloyds Satellites Constellations, http://www.ee.surrey.ac.Uk/Personal/L . Wood/constellations/iridium.html [Xanadu 2007] Xanadu Project homepage, http://www.xanadu.com/ [Xiao 2000] X. Xiao, A. Hannan, B. Bailey, L. Ni, Traffic Engineering with MPLS in the Internet,
IEEE Network Magazine, Nov./Dec. 2005. Proc. Mobile 94 Workshop on Mobile Computing Systems and Applications,
[Yavatkar 1994] R. Yavatkar, N. Bhagwat, Improving End-to-Hnd Performance of TCP over Mo bile Internetworks, Dec. 1994. [Youtube 2007]Youtube homage, www.youtube.com [Yu 2006] H. Yu, M. Kaminsky, P. B. Gibbons, A. Flaxman, SybilGuard: Defending Against Sybil Attacks via Social Networks,
IROAIOMJRCYZK
IROAIOMJRCYZK
See also http://www.cc.gatech.edu/projects/gtim for a software package that generates networks with a transit-stub structure. (Zhang 1993] L. Zhang, S. Deering, D. Estrin, S. Shenker, D. Zappala, RSVP: A New Resource Re servation Protocol,
IEEE Network Magazine,Vol. 7, No. 9 (Sept. 1993), pp. 8-18. IEEE Journal on Selected Areas in Com-
[Zhao 2004] B. Y. Zhao, L. Huang, J. Stribling, S. C. Rhea, A. D. Joseph, J. Kubiatowicz, Tapestry: A Resilient Global-scale Overlay for Service Deployment,"
A ablakmret (GBN protokoll) 209-213 ACK (nyugta) ACK bit 222 adatkapcsolati szint 484 DHCP nyugtazenet 320 dupliklt 201 kumulld 211,223 szelektv 235 ACK bit, TCP-szegmens 222 ad hoc hlzatok 470, 471, 481 adsjogtvteli protokollok 411, 420 lekrdez 420 tokentadsos 420 adskrs 487 adsra ksz 487 adattvitel bithibkat tartalmaz csatornn 197 bithibkat tartalmaz csomagveszt csatornn 202 csvezetkes megbzhat adattviteli protokoll 205-208 egyirny 196 ktirny 196 megbzhat 228-235 megbzhat csatornn 196 vltakoz bit protokoll 205 visszaszmll idzt 204 adatbzis, hlzatfelgyeleti (MIB) 700-703 MIB-modulok 696, 700 adatcsomagbegyazsi protokoll hazai gynknl 510 adatcsomag-kibontsi protokoll idegen gynknl 510 adatcsomagok (dupliklt) 204 adatfolyam 150 adatfolyam-letltst megvalst szerver 547 adatkapcsolati szint csomag temezs 585 szint nyugtzs 484 adatkapcsolati rteg cmzs 422-427 duplex tvitel 401 Ethernet 428-439 flduplex tvitel 401 forgalomszablyozs 400 hlzat mint ~ 447-454
Trgymutat
hibajelzs s -javts 403-409 kapcsolk 438-443 keretezs 49, 399-400 kzegelrs 400 megbzhat adattvitel 400 megvalstsa 401-403 PPP (ktpontos protokoll) 444-447 szolgltatsok 399-401 tbbszrs hozzfrsi protokollok 409-422 adatkapcsolati rtegbeli kapcsolk 2, 285 adatmez 49, 489 adatok szerkezete, hlzat felgyeleti (SMI) 696-700 adatszrsos tvlaszts adatszrsi sorszm 371 adatszrsi vihar 371 algoritmusok 374-375 fesztfs adatszrs 372 fordtott irny tovbbts 372 forrsnl vs. hlzaton belli duplikls 370 N-utas egynekadsos 370 sorszmmal szablyozott elraszts 370 szablyozatlan elraszts 371 adattovbbts 658 additv nvels, multiplikatv cskkents (AIMD) 256 ajnlat zenet 319 aktv psztzs 482 aktv sorkezels (AQM) 303 alagt tpus tvitel 332 alap szolgltatscsoport (BSS) 479 alapvet kdolsi szablyok (BR) 711 alhlzat 313 alhlzati maszk 313 alkalmazs szint tjrk 670, 674
232
IRODALOMJEGYZK
alkalmazsi rcteg API 80 architektrk 76-79 DNS 121-134 elvi alapok 75-76 folyamatok 79-81 FTP 106-108 HTTP 89-105 infrastruktra-ignyes szolgltats 78 P2P-alkalmazsok 134-148 protokollok 87-88 SMTP 111-114 TCP-szoketprogramozs 148-157 UDP-szoketprogramozs 158-165 zenetek 79 alkalmazsi zenet 48 alkalmazsok elosztott 5, 11 multimdia-hlzatok 536-544 P2P 11 rugalmas 83 svszlessgrzkeny 82 SNMP 705 szlltsi szolgltatsok 81-83 vesztesgtr 82 alkalmazsprogramozi interfsz (API) 6,80 lland bitsebessg ATM-hlzati szolgltats (CBR) 288 lland cm 507 lland sszekttetsek, HTTP 93-94 llapotsor 96 llapottart csomagszrk 670, 672 ALOHA 413-417 API (alkalmazsprogramozi interfsz) 6 , 80 AQM (aktv sor menedzment) ASN.l 708 tbocstkpessg tlagos 39 pillanatnyi 39 szk keresztmetszet adatkapcsolat 40 tbocstkpessg, sszekttetsenknt i 246 tjr mobiltelefon kapcsolkzpont 518 tjtszk 147 tlapol hlzat 142 ATM (aszinkron tviteli md) 245 ATM-hlzatok 448 adaptcis rtege (AAL) 449 adatok tpusa mez 450 ATM frum 448 cellavesztsi priorits (CLP) 450 fejlc hibavdelme mez 450 fizikai rteg 450 IP az - felett 451 jellegzetessgei 448-449 protokoll adategysg (PDU) 449 -rteg 449 virtuliscsatorna-azonost (VCI) mez 450
tvihet legnagyobb adategysg (MTU) 309 tviteli ksleltets 33, 34 tviteli sebessg 2 audio elrse webszerveren 545-547 l audio folyamszer letltse 537 hibs audio alkalmazs (plda) 583585 Mb/s audio alkalmazs 548-543 srlt hangfolyam vevalap javtsa 560-561 trolt audio folyamszer letltse 543-544 tmrts 542-543 vals idej 538 automatikus hardverfelismer s konfigurl protokoll 318 automatikus ismtlskrs (ARQ) 198 autonm rendszerek 351 autonm rendszerek kztti tvlaszts 362-368 autonm rendszeren belli tvlaszts OSPF protokol 359-362 RIPprotokol 355-358 B bjtbeszrs 446-447 barangolszm, mobil lloms 518 brkinek szl cm (anyeast) 328 bzislloms 469,479 begyazs 48, 509, 510 begyazott biztonsgos adatmez 661 behatolsjelz rendszerek 668,675-678 anomliaalap 676 szablyalap 676 behatolsmegelz rendszerek 676 bels tjr protokoll (IGP) 355 bels hlzatok 5 bemeneti portok 297-299 bemen adatfolyam 150 betrcsz modem 13 betrs detektlsa 689 BGP lsd hatrtjr protokoll bithiba feltratlan 404 valsznsge 473 bitszint hibajelzs 403 BitTorrent protokoll 134-135, 138-140 biztonsg adminisztrci 705 llapot tart csomagszr 670, 672 dekdols 618 digitlis alrs 636-642 hitelestsi protokoll 642 hitelestsszolgltat (CA) 640 IPsec 660-664 nyilvnos kulcs tanstvny 639 titkosts 618 titkosts elvi alapjai 620-632 tzfalak 669-675 mkdsi biztonsg 618, 668-678 PGP 653
SYN elrasztsi tmads 243 szlltsi rteg biztonsga 655 TCPsszekttetsek 655-660 zenetintegrits 618, 632 vgponthitelests 618,642-648 biztonsgi sszekttets 661 biztonsgi paramtereket cmz index (SPI) 661 biztonsgos szkt rteg (SSL) 85, 655 mkdse 656 blokkrejtjelezk 624 Bluetooth 494-495 bngsz 90
c, cs
Caesar-kdols 622 CDMA, kdosztsos tbbszrs hozzfrs 412 CDN-szerver 562 vals idej interaktv audio/vide letltse 538 clportszm 222 clportszm mez 184 ciklikus redundancia-ellenrzs (CRC) 407 CRC mez 489 cmbrleti id 320 cmblokkok kiosztsa 317 cmfelold protokoll (ARP) 424 cmfordt tbla 323 cmmez 1EEE802.11 vezetk nlkli LAN 444, 489-491 PPP-keretezs 445 cmzs alhlzat 313 lland 507 brkinek szl cm 328 cl-IP-cm 185 cmblokkok 317 cmfelold protokoll (ARP) 424 cmsszevons 316 cmtartomny osztlyok szerinti szervezse 315 Ethernet 48 felgyeleti 507 fizikai 422 folyamatok 87 hosz te rnek kiosztsa 318 idegen 507 internetes szlltsi protokollok 86-87 IP 87, 121,312-320,574 LAN 422 MAC 422 NAT 87,320-323 osztlyok nlkli krzetek kztti forgalomirnyts (CIDR) 314 pontozott decimlis jells 312 prefix 315 tartalom szerint cmezhet memrik (CAM) 298 CMISE/CMIP 693 CRC-el lenrzs 731 csapdazenetek (krst nem tartalmaz) 703 csatorna bithibkat tartalmaz csatorna 197 bithibkat tartalmaz csomagveszt csatorna 202 kihasznltsga 205
megbzhat csatorna 196 terjedsi ksleltets 419 csatornaosztsos protokoll 410,412 CSMA (vivrzkelses tbbszrs hozzfrs) 417 tkzsjelzses 418 csomag 2, 25, 48-50 adatmez 49 llapottart csomagszr 672-674 thalads 28-29 definci 2, 25 dupliklt 200, 204 dupliklt adatcsomag 204 eldobs irnyelve 586 eldobott ~ 37 fejrszmez 49, 568-569 feldolgozs 443 kapcsol 2, 27 kapcsolgp 302 keretezs, PPP kvetelmnyek 444 ksleltets 539, 553-554 lehallgats 52-53 RTP 567 sorrendhelyes kzbests 287 sorszm 200 szrs 670,674 tpusai 571-572 temez 303 veszts 26,35-37,301,558-559 csomagkapcsolk 2, 25, 285 csomagkapcsolt hlzat 25-29 ksleltets 31-42 kifejlesztse 55-57 kimeneti puffer 26 sorbanllsi ksleltets 26 trol-s-tovbbt tpus tvitel 25 tovbbttbla 28 zenetek 25 volnl kapcsols vs. 21-22, 27-28 csomagksleltets ingadozsa 54 csomagszrk alkalmazs szint tjrk 670, 674 llapottart 670, 672 hagyomnyos 670 csomagtartalom-vizsglat 675 csomagtovbbts biztos 596 kvlrl megfigyelhet viselkeds 593 sorrendhelyes 287 srgs 596 csomagveszts 33, 35-37, 301, 553 hatsnak kikszblse 558 csvezetkes megbzhat adattviteli protokoll 205-208 csvezetkezs 207 csszablakos protkoll 209 D datagram 46 hlzati 49
234
IRODALOMJEGYZK
datagramalap hlzatok 289, 292-295 dekdol algoritmus 621 demilitarizlt zna 676 DHCP (dinamikus hosztkonfigurl protokoll) ajnlatzenet 319 feldertszenet 319320 nyugtazenet 320 diffserv (megklnbztetett szolgltats) 592597 forgalomkondicionls 594 forgalomosztlyozs 594 kvlrl megfigyelhet viselkeds 593 digitlis alrs 636-642 digitlis elfizeti vonal lsd DSL dinamikus hosztkonfigurl protkoll lsd DHCP 318 DNS (krzetnvkezel rendszer) 121-134 bejegyzsek beszrsa 132 egyetlen hibahely 124 forgalom nagysga 124 gyorsttrazs 129 gykr-DNSszerverek helyi DNS-szerver 125 hiteles DNS-szerverek 125 hoszt-lnevek 123 hoszt nv 121 IP-cm 121 karbantarts 124
235
T RGYMUTAT
IRODALOMJEGYZHK
nyilvntart 132 rekordok 129 rekurzv lekrdezs 128 szerverek 122 szolgltatsa 122-123 tvoli, kzpontostott adatbzis 124 TLD (legfels szint krzetek) 125 zenetek 130 DSL (digitlis elfizeti vonal) 13 duplex szolgltats, TCP-sszekttets 220 dupliklt ACK (nyugta) 201 dupliklt adatcsomagok 200,204 E EAPol 667 egyedi hlzatok sszekapcsolsa 57-58 egyirny adattvitel 196 hezs 547 l 143 ellenrz sszeg, eljrsok 406-407 elosztott szolgltatsmegtagads (DDoS) 52, 243 elre irnyul hibajavts 405,558, 559-560 e-mail 108-121 ttekintse 108-109 biztonsga 648-655 felhasznli gynk 108 fogadott zenetek 115 Hotmail esettanulmny 110 IMAP 120 internet legfontosabb terlete 108 levelezszerverek 108 levl-hozzfrsi protokoll 117-123 MIM zenetformtum 114-116 POP3 protokoll 118-120 postafik 109 SMTP 108, 111-114 zenetformtumok 114116 zenetsor 110 webalap 121 erforrs-kezel cellk 253 erforrslefoglals 598 erforrs-lefoglal protokoll (RSVP) 602 esemnyalap programozs 213 ESP protokoll 662 Ethernet 428-437 adatkapcsolati rteg 428-436 cmek 48 eloszt (hub) 429 gigabites 436 hatkonysga 435 hozzfrsi technika 15-16 ismtlk 436 kapcsolsi technika 15-16 keretszerkezete 429-433 Manchesterkdols 432 megbzhatatlan szolgltats 432 sszekttets nlkli szolgltats 431-432 puffereit eloszt 437 tervezse 428-429 tbbszrs hozzfrsi protokoll (CSMA/CD) 433-
435 vltozatok 435-437 exponencilis slyozott mozg tlag (EVVMA) 227 exponencilis visszalps 434 F tej lcsor 94, 96 fejrsz, RTP 567 felajnlott terhels 247 feldertszenet 319-320 feldolgozsi ksleltets 32 felhasznlalap biztonsg 706 feltol protokoll 113 felgyeleti cam 507 felgyeleti informcis adatbzis 693 felgyel entits 692 felgyelt kszlk 692 felgyelt objektum 693 fnyvezet szl 19 frgek 51 fesztfa 373 kzpontalap 373 minimlis 373 FIFO 586 FIN bit, TCP-szegmens 222 fizikai tviteli kzegek 18-20 vezetkes 28 vezetk nlkli 18 forgalmi profil 594
236
1 KODAI.OMJEGYZU K
forgalom figyelse 689 forgalomintenzits 36 forgalomszablyozs, TCP 235 forrs hitelessge 661 forrsportszm 222 forrsportszm mez 184 fldi sugrzs rdicsatornk 20 frekvenciaosztsos szrt spektrum 495 FTP adattviteli sszekttets 106 llapotinformcik 107 alkalmazsi rteg 106-108 parancsok 107-108 svon bell 106 svon kvl 106 vlaszok 107-108 vezrlssszekttets 106 G gazdagp ellenrzs 689 gazdagp vagy tvlaszt hlzati krtyjnak meghibsodsa 689 genertor 407 geoszinkron mhold 20 gerinchlzati tvlaszt 360 gyors helyrellts 260 gyors jraklds, TCP 234 H hagyomnyos csomagszrk 670 hlzat magja 21-31 hlzat szle 9-20 hlzatfelgyelet 687-712 ~i adatbzis (MIB) 700-703 adatok szerkezete (SMI) 696-700 ASN.l 708 biztonsg s adminisztrci 705 biztonsgfelgyelet 690 CM I SE/CM IP 693 felhasznlalap biztonsg 706 hatkonysgfelgyelet 690 hibafelgyelet 690 infrastrutra 691-695 internetszabvnyos keretrendszer 695 konfigurcifelgyelet 690 protokoll 693 SNMP 693 tmaszm felgyelet 690 hlzatfelgyeleti protokoll 693 hlzatfelgyel gynk 693 hlzat i cm fordts (NAT) 320-324 cmfordt tbla 323 kapcsolatvisszafordts 324 NAT-thidals 324 hlzati rteg lland bitsebessg ATM-hlzati szolgltats (CBR) 288 biztonsg 660-664 datagramalap hlzatok 289, 292-
295 hlzati szolglati modellek 286 IP (Internet Protcol) 305-335 legjobbra trekv szolgltats 287 sszekttets ltestse 286 rendelkezsre ll bitsebessg ATM-hlzati szolgltats (ABR) 288 tovbbts 281 tovbbttbla 284 tvlaszts 281 tvlaszt algoritmus 284 virtulisramkr-alap hlzatok (VC) 288-292, 294-295 hlzati szolglati modellek 286 hlzati topolgia 565 hlzatok lsd mg hlzati rteg 1980-1990 58-59 adatkapcsolati rteg, mint 447-455 ad hoc 470,481 tlapol 142 biztonsg 50-55 csonka 367 egyedi hlzatok sszekapcsolsa (1972-1980) 57 internet 2-4 legjabb fejlesztsek 60-61 tbbszrsen kapcsold csonka 367 hromszgeit tvlasztsi problma 511 hromutas kzfogs 92, 150, 190,220, 239, 240, 243,286, 291,672 hatrtjr protokoll (BGP) AS-szm 364 ttekints 363 bels BGP-viszony 363 importszr 366 kls BGP-viszony 363 route-ok 364-366 trsak 363 tattribtumok 364-366 tvlasztsi szablyok 367-368 vlasztsi mechanizmus 366-367 viszony 363 hazai hlzat 518 hazai helyregiszter 518 hazai nyilvnos fldi mobiltelefonhlzat 517 hibafelderts ciklikus redundanciaellenrzs 407 ellenrz sszeget hasznl eljrsok 406-407 paritsellenrzs 404-406 hibrid fnyvezetszlas koaxilis kbel 13 hitelestsi protokoll 642-648 hitelest fejrszprotokoll (AH) 661662 hitelest kulcs 635 hitelest tanstvny 641 hitelestszolgltat 640 hvsengedlyezs 599 hvsfelptsi protokoll 600 hvsok
tirnytsa mobil elfizethz 518 horgony-M SC 521 horgonygynk 512 hoszt 2 hosztcmek kiosztsa 318 Hotmail esettanulmny 110 hozzfrsi pont 469, 479 hozzfrsi hlzatok 11-17 internet 2-4 otthoni 13-14 vllalati 15-16 vezetk nlk I i 16-17 HTTP 89105 lland sszekttetsekkel 93-94 ttekints 89-91 feltteles GET 104-105 idleges sszekttetsekkel 91-93 krszenet 94-96 krbejrsi id 92 stik 98-100 zenetformtumok 94-98 vlaszzenet 96-97 webes gyorsttrazs 100-103 HTTP vs. SMTP 113-114 I idegen cm 507 idegen gynk-hazai gynk kztti regisztrcis protokoll 510 ideiglenes IP-cm 318 idblyeg 555 idleges sszekttetsek, HTTP 91-93 idtartammez 491 IEEE 802.11 ad hoc hlzat 470, 471, 481 architektra 479483 keretszerkezete 486 MAC protokoll 483-487 vezetk nlkli LAN 477-494 WiFi protokoll 17,401 impulzuskdmodulci 542 indtsi problma 144 infrastruktra, hlzatfelgyeleti 691695 interfsz 312 internet alkotelemei 2-5 API (alkalmazsprogramozi interfsz) 6 elosztott alkalmazsok 6 elterjedse 59-60 e-mail 108-121 fizikai tviteli kzegek 18-20 gerinchlzatok 29-30 hozzfrs 2-5 hozzfrsi hlzatok 11-17 internetszolgltatk (ISP) 4 protokollok 4,6-8 routing 355368 szabvnyok 5 szolgltatsok 5-6 internet-gerinchlzatok 29--30 internet-hozzfrs mobiltelefonhlzatbl 498-5004 internetszabvnyos keretrendszer, hlzatfelgyeleti 695
internetszolgltatk (ISP) 4, 29-31 1. szint 29 internettelefon 538 Intserv 601 IP (Internet Protcol) 4, 305-335 alagt tpus tvitel 332 alhlzat 313 alhlzat, mobilits 491-493 biztonsga 334-335 cmzs 311324 datagramformtumok 306-308 datagramok darabolsa 309-311 ICMP protokoll 325-326 UPnP protokoll 324IPsec protokoll 660-664 IP-trkkzs 54 IPv4-cmzs 311-324 !Pv 6 protokoll 327-334 ismert nylt szveg tmads 623
J
jelenlti pont 31 jelgyengls 475 jelterjedsi ksleltets 33, 34 jel-zaj viszony (SNR) 473 jelzsprotokoll 292 jelzszenet 292 jelzfnykeret 481 jelzmez, TCP szegmens 222 K kbelmodem 14 kapcsol 429 adatkapcsolati szint 438-443 csomagfeldolgozs 443 csompontok 438 elregedsi id 440 kapcsoltbla 438 nll tanuls 440 plug-and-play 440 tulajdonsgai 441 szrs 438 tovbbts 438 tvlasztk vs. 442-443 kapcsolgp definci 299 sebessge 302 krtkony programok 51 kemny garancia 540 krds-vlasz md 703 krssor 94 krst nem tartalmaz csapdazenetek 703 keretek 47, 48-50 adatkapcsolati 49 keret kzi id elosztott 484 rvid 484 ksleltets alkalmazkod lejtszsi 556 lland lejtszsi 555 tviteli 33, 34 csatorna terjedsi 419 feldolgozsi 32 forgalom intenzits 36 jelterjedsi 33, 34 sorba nllsi 33 teljes csomponti 35 tpusai 32-35 Traceroute program 38 vgponti 37-38 vgpontok kztti 554 ksleltetsi
238
1 KODAI.OMJEGYZU K
ingadozs 554 eltvoltsa 555 ktirny adattvitel 196 ktpontos sszekttets 220, 487 kzfogs 656, 659 kifejezett elremen torldsjelz bit (EFCI) 254 kimeneti portok 301 kimen adatfolyam 150 kiterjesztett hitelestsi protokoll (HAP) 667 kvlrl megfigyelhet viselkeds 593 kliensfolyamatok 79-80 kliensprogramok 11 klienspuffer 547 kliens-szerver architektra 76 koaxilis kbel 19 kdolsi szablyok, a lavet (BR) 711 kdosztsos tbbszrs hozzfrs (CDMA) CDMA-2000 502-503 IS95 502 vezetk nlkli hlzatok 475-477 kommunikcis adatkapcsolatok 2 kommunikl folyamatok alkalmazsi rteg 79-81 API (alkalmazsprogramozi interfsz) 80 interfsz folyamatok s internet kztt 80-81 kliensfolyamatok 79-80 szerverfolyamatok 79-80 krbejrsi id (RTT) 92, 226, 252,256, 262-262, 266, 302, 326, 564 krbejrsos sorba llts 588 krzvnycm 423 krzethatri tvlaszt 360 krzetnvkezel rendszer lsd DNS kzbekeldses tmads 54, 55, 133, 648, 649, 658,662 kzismert portszmok 184 kzti ad hoc hlzat (VANET) 471 kriptogrfiai hash fggvnyek 633-634 kulcs 621 kulcsfolyamatos rejtjelezk 624 kulcsszrmaztats 657 kumulld nyugta 211,223 kld puffer 220 kvantls 542 L LAN cmzs 422-423 fnyvezetszlasz osztott adatinterfsz (FDDI) 421 vllalati hozzfrs 15-16 vezetk nlkli 477483 infrastruktrn alapul 479 trsuls 481 lass indulsi fzis (SS)
257 ltogati helyregiszter 518 lefojt csomag 252 legjobbra trekv szolgltats 181, 287, 539, 552-566 csomagveszts 553 korltai 553-555 tervezsi krdsei 565-566 legnagyobb tvihet adatmennyisg (MTU) 220 legnagyobb szegmensmret (MSS) 220 legrvidebb-utat-elre protokoll (OSPF-) 355 lehz protokoll 113 lekrdezs-elraszts 142-145 korltozott kiterjeds 143 logikai kommunikci 177 lyukas vdr ellenrzs 590, 591 M MAC protokoll, IEEE 802.11 483-487 MAC-cmek 422-424 Manchesterkdols 432 megalkuv temezs 496 megll-s-vr protokoll 207 megbzhat adattvitel 228-235 megbzhat adattviteli protokoll 195 megbzhat adatszllits 182 elve 194-218 megbzhat bjtfolyam-szolgltats 150 megjelentsi szolgltats 710 megklnbztetett szolgltats lsd diTserv mobil ad hoc hlzat (MANET) 471 mobil lloms barangolszma 518 mobil csompont-idegen gynk kztti protokoll 510 510 mobil felhasznlk helyzett meghatroz protokoll 512 mobilhlzatok lsd mg vezetk nlkli hlzatok adatcsomag-begyazsi protokoll hazai gynknl 510 adatcsomagkibontsi protokoll idegen gynknl 510 cmzs 506-507 hazai hlzat 506 hazai gynk 506 helyvltoztats kvetse 504-513 idegen (tvoli) hlzat 506 idegen gynk 506 idegen gynk-hazai gynk kztti regisztrcis protokoll 510 internet-hozzfrs 498-504 kzvetett tvlaszts 508 kzvetlen tvlaszts 511 mobilits kezelse 516-522 mobil csompont-idegen gynk kztti protokoll 510 510
partner 506 partnerg ynk 511 tvlaszt s 57-513 mobil-IP 513-516 mobilits kezelse 516-522 mobiltele fonhlzat szabvny ok 2G 501 2,5G 502 3G 503 4G 503 ltalnos csomagkapcsolt rdis szolgltats (GPRS) 502 CDMA-2000 1. fzis 502 globlis mobilkommunikc is rendszer (GSM) 501 megnvelt sebessgek a globlis evolcirt (EDGE) 502 mobiltelefonhlzat architektra 498500 hazai nyilvnos fldi 517
/
hvsok tirnytsa mobil elfizethz 518 internethozzfrs 498504 mobil lloms barangolszma 518 mobilits kezelse 516-522
rdis interfsz 500 szabvnyok 501-504 mobiltelefonos kapcsolkzpont 499 monoalfabetikus kdols 622 MPEG tmrts 543 MSS (legnagyobb szegmensmret) 220 MTU (legnagyobb tvihet adatmenynyisg) 220 multimdia kldse adatfolyamletltst megvalst szerver 547 hezs 547 klienspuer 547 multimdia sztosztsa 561 tartalomsztosz t hlzatok 561565 multimdiahlzatok adatkzpont 562 akadlyoz tnyezk 539 alkalmazsok 536544 ttekints 535-536 CDNszerver 562 csomagksle ltets ingadozsa 539 diffserv (megklnb ztetett szolgltats) 592-597 ellenrzs 590-592 garancia 540 hangtmrt s 542
240
1 KODAI.OMJEGYZU K
internettelef on 538 Intserv 601 kptmrts 543 legjobbra trekv szolgltats 539, 552-566 szolgltatsmin sgi garancik 597-603 szolgltatsok 580-597 trolt audio/vide folyamszer letltse 536-537, 544-552 vals idej interaktv alkalmazsok protokolljai 566580 vals idej adatfolyamletltst tmogat protokoll (RTSP) 549-552 tartalomsztoszt hlzatok 561-565 temezsi eljrsok 586-589 viszonykezdemny ez protokoll (SP) 573-578 munkamenet RTP 568 munkatakarkos krbejrsos sorba llts 588 mhold alacsony rpplys 20 geoszinkron 20 mholdas rdicsatornk 20 mkdsi biztonsg 668-678 behatolsjelz rendszerek 668 tzfalak 668,669675
N, NY negatv nyugtzs 198 nincsnvekeds (NI) bit 254 N-nel trtn visszalpses (GBN) protokoll 207,209-213 nonce 647 nyalbbonts 181,183 sszekttetsalap 185 sszekttets nlkli 185 nyalbols frekvenciaosztso s (FDM) 23,412 idosztsos (TDM) 23,412 sszekttet s-alap 185 sszekttets nlkli 185 statisztikus 28 szlltsi rtegbeli 181, 183 vonalkapcsolt hlzatokban 23-24 nylt szveg 620 nyilvnos kulcs 628 nyilvnos kulcs rejtjelezs 627-632 nyilvnos kulcs rendszerek 621 nyilvnos kulcs tanstvny 639 nyugtaszmm ez 222 nyugtazenet 320
0,0 opcik mez TCPszegmens szerkezet e 222 OSImodell 47-48 osztly nlkli krzetek kztti forgalomirnyts (CIDR) 314 nllan tanul kapcsol 440 n idzt 256 nsklzhatsg 79 sszefsls 560 sszekttets llapot in formci 291 sszekttetsek adattviteli 106 -alap szllts (TCP) 219-244 lland 91, 93-94 betrcsz modem 13 bontsa 660 DSL 13-15 elrasztso s tmads 52 HFC 13 idleges 91-92 kbelmode m 14 ktpontos
220
ltestse, hlzati rteg 286 nyalbols/ nyalbbont s 186-188 oszt eljrs 524 sszekt tetsenknti tbocstkpe
ssg 246 PPPtervezs kvetelmn yei 444 szkt 150 TCP 219221 VDSL (nagy sebessg DSL) 14 vgponto k kztti 23 vezrlsi 106 visszafordts 324 sszekttetsszoket 150 P P2Palk al ma z so k 13 414 8 arc ht ekt r a 78 architektrk sklzhatsga 135-138 BitTorrent protokoll 134*135, 138-140 fjlcserls 134140 hierarchikus tlapolstervezs 145-146 informcikeress 140-146
ingyenutazs 140 kzpontostott index 141 lekrdezselraszts 142145 sztosztsi id 135 nsklzhatsg 79 P2Parchitektra 78 paritsbit 404 paritsellenrzs, hiba felderts 404-406 partnergynk 511 passzv psztzs 482 pecst 637 PGP 653 nyilvnos PGPkulcsszerverek 655 pikohlzat 495 polalfabetikus kdols 623 polinomilis kd 407 pontozott decimlis jells 312 port bemeneti 297299 kimeneti 301 pozitv nyugtzs 198 PPP (ktpontos protokoll) 444-447 adatkapcsolati rteg 444 adatkeretezs 445-446 bjtbeszrs 446447 IETFkvetclmnyek 444-445 keretek 445-446 prefix 315 hlzat 293 prioritsos sorba llts 587 privt hlzatok 321 protokoll fggetlen
tbbeskldses tvlasztsi protokoll (PIM) 380 protokollkszlet 45 protokollok llapot nlkli 91 autonm rendszeren belli tvlaszt 351 automatikus hardverfelismer s konfigurl (plug-and-play) 318 automatikus ismtlskrs (ARQ) 198 csszablakos 209 emberi hasonlat 7-8 feltol- 113 hlzati - 8-9 internet- 7-8 jelzs- 292 lehz- 113 megll-s-vr 199 vltakoz bit protokoll 205-206 protokoll rtegek 42-50 adatkapcsolati rteg 47 alkalmazsi rteg 46 fizikai rteg 47 hlzati rteg 46 OSI-modell 47-48 rtegzett architektra 4248 szlltsi rteg 46 szolglati modell 44-45 vzszintes rtegezs, plda 43-44 PSH bit, TCPszegmens 222
e v p o n t 3 7 3 regisztrci hazai gyknl, mobil-IP 515-516 regisztrcis protokoll, idegen gynk- hazai gynk kztt 510 rejtett lloms problma 747 rejtett llomsok problmja 486487 rejtett szveg 621 rejtett szveg tmads 623 rejtjelez algoritmus 620 rendelkezsre ll adatsebessg (ABR) 245 RFC 5 RIP-hirdets 356 RIP-vlaszzenet 356 RSA algoritmus 629 RST bit, TCPszegmens 222 RTP-vezrl protokoll (RTCP) 571 S SA s kulcskezels 663 svon kvli protokoll 549 svszlessg 23 elraszts 52 rzkeny alkalmazsok 82 -gl val ellts 565 lefoglals
242
1 KODAI.OMJEGYZU K
tbbeskldses fkban 602 sklzsa (RTCP) 572 srlt hangfolyam vevalap javtsa 560 sikeres idrs 414 SMTP 108,111-114 HTTP vs. 113-114 SNMP 693 alkalmazsok 705 mveletek 703-704 Snort 678 sodrott rpr 18 rnykols nlkli (UTP) 18 sorba lltsi technikk aktv sorkezels (AQM) 303 kimeneti port 301 sorbanllsi ksleltets 33 csomagveszts, s 35-37 soreleji blokkols (HOL) 305 sorszm 200, 555 sorszmmez 222, 491 SSLrekord 659 slyozott egyenl esly sorba llts 588,591 srgssgi adat mutat mez 222 stik 98-100,243 SYNACK szegmens 239 SYN bit, TCPszegmens 222 SYN elrasztsi tmads 243 SYNsti 243 SZ szablyalap szabvnyos bemenet 151 szabvnyos kimenet 151 szlltsi rteg biztonsga 655
megbzhat adatszllts 182 nyalbols 181, 182-188 nyalbbonts 181 torldskczels 182 szlltsi szolgltatsok alkalmazsokna k 81-83 internet ltal nem biztostott 86 internetes 83-87 szavatolt minsg szolgltatsok (QoS) 303 szegmens 46,48-50 definci 178 legnagyobb szegmensmret (MSS) 220 legnagyobb tvihet adategysg (MTU)
UDP 158-165 szolgltatscsopor t-azonost (SSID) 480 szolgltatsi szerzdsek (SLA) 689 szolgltatsmegta gads (DoS) 52, 239, 243 szolgltatsmins gi garancik, multimdiahlzatok 597-603 szk keresztmetszet adatkapcsolat 40 T tmadsok biztonsg 5055 csomaglehallg ats 53 csonktsos 660 DDoS (elosztott szolgltatsm egtagads) 55 DNS sebezhetsge 133 DoS (szolgltatsm egtagads) 55 llnc 648 frgek 51 IP-trkkzs 54 ismert nylt szveg 623 krtkony programok 51 kzbekeldses 54-55, 133,648,649, 658,662 rejtett szveg 623 sebezhetsg 52 SYN elrasztsos 243 tvolrl irnytott fertztt
220
sorszmok 222 szlltsi 48 TCP-szegmens szerkezete 221225 szelektiv ismtls (SR) protokoll 207, 213-218 szelektiv nyugtzs 235 szerverfarm 78 szerverfolyamatok 79-80 szerverproframok 11 szimmetrikus kulcs rendszerek 621 szkt 183 szoketprogra mozs kliensszerver alkalmazsfejleszt s Javban 151157 TCP 148-157
hlzat 51 Trjai fal 51 vlasztott nylt szveg 623 visszajtszsos 645 trsuls, IEEE802.il LAN WiFi 481 tartalom szerint cmezhet memria (CAM) 298 tartalomsztoszt hlzatok 561-565 tvolrl irnytott fertztt hlzat 51 tvolsg vektor-alap tbbeskldses tvlasztsi protokoll (DVMRP) 380 TCP 4, 219244 llapotok 240 biztonsga 655660 biztonsgos szkt rteg (SSL) 655 duplex szolgltats 220 ellenrz sszeg
222
fejrszhosszmez
222
forgalomszablyoz s 235 hromutas kzfogs 221 sszekttets 84 sszekttetsalap szllts 219-244 szlltsi rteg biztonsga 655 szegmens szerkezete 221225 szoketprogramoz s 148-157 szolgltatsok 84 Telnet esettanulmny 224-226 lorldskezels 236 vteli ablak
237 webszerverek, s 188-189 TCP Reno 260 TCP Tahoe 260 TCP/IP 4 T DMkeretszer kezet 496 teljes csompo nti ksleltet s 35 Telnet 224-226 tpus, hossz, rtk mdszer (TLV) 711 titkos kulcs 628 titkosts blokkrejtjelezk 624 Caesarkdols 622 dekdol algoritmus 621 digitlis alrs 636 hitelest kulcs 635 hitelestszol gltat 640 ismert nylt szveg tmads 623 kulcs 621 kulcsfolyamatos rejtjelezk 624 monoalfabetikus kdols 622 nylt szveg 620 nyilvnos kulcs 628 nyilvnos kulcs rejtjelezs 627-632 nyilvnos kulcs rendszerek 621 nyilvnos kulcs tanstvny 639 polialfabetikus
kdols 623 rejtett szveg 621 rejlett szveg tmads 623 rejtjelez algoritmus 620 RSA algoritmus 629 szimmetrikus kulcs rendszerek 621 titkostott blokkok lncolsa 626 titkos kulcs 628 zenethitelest kd 634 vlasztott nylt szveg tmads 623 viszonykulcsok 630 titkostott blokkok lncolsa 626 torldselkerls 257 torldsi ablak 255 torldsjelz (Cl) bit 254 torldskezels 182 AIMD (additv nvels/multiplika tv cskkents) 256 ATM ABR algoritmus plda 252-254 algoritmus 256 elkerlse 257 elvi alapjai 245254 hlzat ltal tmogatott 252254 idtllpsi esemnyek, reagls 258-260 kifejezett elremen torldsjelz bit (EFCI) 254 kifejezett sebessg mez (1R) 254 lass induls (SS) 257 lefojt csomag
252 nincsnvekeds (NI) bit 254 okai/kvetkezmn yei 245-250 TCP 84, 182, 236, 254265 torldsi ablak 255 torldsjelz bit (Cl) 254 vgpontok kztti 251 tovbbts hlzati rteg 281 tovbbttbla 28, 284 tbbeskldses tlapol hlzat 541 tbbeskldses fkban svszlessg lefoglals 602 tbbeskldses tvlaszts algoritmusok 378380 cm alapjn trtn kzvetett tovbbts 376 ford tott irny 381 forr sala p fval 379 forr sspe cifik us (SSM ) 381 IGMP 376378 inter net
380381 kz sen hasz nlt fval 379 mets zs 380 tbbeskldses csoport 376 tbbeskldses forrsfeldertsi protokoll (MSDP) 381 tbbszrs cmkekapcsols 453-455 tbbszrs hozzfrsi protokollok, adatkapcsolati rteg 409-422 tbbutas terjeds 472 tredksebessg 475 trzs 96 T r a c e r o u t e 2 9 , 3 9 T r j a
244
1 KODAI.OMJEGYZU K
i f a l 5 1 t z f a l a k 6 6 8 , 6 6 9 6 7 5 U, UDP ellenrz sszeg 193-194 szlltsi rtegszolg ltatsai 181 szegmens szerkezete 192-193 szkt programoz s 158-165 szolgltat sok 85 URG bit, TCP szegmens
222 tvlaszts adatszrs os 369-375 interneten 355-368 hlzati rteg 281 hatrtjr protokoll (BGP) 362-368 tbbeskldses 375-382 tvlaszt 2, 285 a l a p r t e l m e z e t t 3 3 5 c l 3 3 5 cmkekap csolt 453 forrs 335 gerinchlz ati 360 hlzat szln 11 krzethatri 360
tvlaszt algoritmus 284, 335354 tjr 352 autonm rendszeren belli tvlaszt protokoll 351, 353 decentralizlt 337 Dijkstra338 dinamikus 338 forr krumpli 353 globlis 337 hierarchikus 351-354 kapcsolatlla pot-alap (LS) 337, 338-342,349350 legrvidebb t 337 minimlis kltsg 337 Prim- 338 statikus 337 szomszd csompont 336 tvolsgvektoralap (DV) 342349,350 terhelsrzkeny 338 terhelsrzketlen 338 vonalkapcsols 351 tvlaszt protokoll (RIP) 355 tvlaszt tbla 356 tvlaszttblk figyelse 689 tvonal 4 tvonali gyengls
472 tvonalsszests 316 tvonalsszevon s 316 gynkfelderts 514 gynkhir dets 514 gynk lekrdez s 515 temezsi eljrsok adatkapcs olattemezs 586 multimdi ahlzatok 586-592 tkzsr zkels 417 zenet 25, 46, 48-50, 79 alkamazs i 48 zenetcsa tol processzo rok 56 zenethite lest kd 634 zenet integrits 632 V vlasztott nylt szveg tmads 623 vals idej adatfolyamletltst tmogat protokoll (RTSP)
549-552 vals idej interaktv alkalmazsok protokolljai, multimdiahlzatok 566-580 vals idej protokoll (RTP) 567-570 vltakoz bit protokoll 205 vges llapot automata 196 vgponthitelests 618, 642-648 hitelestsi protokoll 642-648 vgponti ksleltets 37-38 vgpontok kztti ksleltets 554 vgpontok kztti rendszer tervezsi elv 194 vgrendszerek 2 vletlen hozzfrsi protokollok 410, 413-419 vletlenszer korai szlels (RED) 303 vteli ablak TCP 237 TCPszegmen s szerkezet e 222 vezrls tads 470 vezrls tads, GSM-
hlzat 520 vezrlssszektt ets, FTP 106 vezrlm ez 491 vezetk nlkli hlzatok lsd mg mobilhlzatok ad hoc hlzat 470, 471,481 alap szolgltatscsopor t (BSS) 479 tjtszlloms 469 bzislloms 469, 479 egy adatkapcsolatos (single hop)~ 471 hlzati infrastruktra 471 hlzati jellemzk 472-477 hatsa magasabb szint protokollokra 523525 hozzfrsi pont 469, 479 infrastruktra md 470 jelgyengls 475 jel-zaj viszony (SNR) 473 jelzfnykeret 481 kdosztsos tbbszrs hozzfrs (CDMA) 475-477 kommunikcis adatkapcsolat 468 kzti ad hoc (VANET) 471 LAN 477-494 m k e f T v w v A
T C P s z e r v e r a l k a l m a z s n a k v a n e g y v e v s z k e tj e , a m e l y
246
1 KODAI.OMJEGYZU K
i k a 6 7 8 9 e s p o rt s z m o n v rj a a T C P k li e n s e k s s z e k tt e t s f
e l p t si k r e l m e it (l s d 2 . 2 9 . b r a ).
A TC Pklie ns az al bbi sor ral ge ner lja a ss zek tt et sfel p tsi kr elm et
A ss zek tt et sfel p tsi kr ele m ne m tb b mi nt egy 67 89es por tsz m TC Psze gme ns, am ely nek a TC Pfejr sz be n egy spe cil is ss zek tt
et sfel p tsi bit be van ille szt ve (r szl ete sen ls d 3.5 . alf eje zet ). Eze nk vl a sze gm ens egy forr sp ortsz mo t is tart alm az, am ely et a klie ns vl asz tott . A
248
1 KODAI.OMJEGYZU K
A l k a l m a z s i s z i n t e n j o b b a n s z a b l y o z h a t
, h o g y m il y e n a d a t o k a t s m i k o r k l d .
U D P al k al m a z s a k o r, a m i n t
a z al k al m a z si f ol y a m a t t a d ja a z a d a t o k a t a z U D P n e k, a z U D P e g y U
D P s z e g m e n s b e c s o m a g ol ja a z a d a t o k a t, s a z o n n al t a d ja a s z e g m
250
1 KODAI.OMJEGYZU K
e n s t a h l z a ti r t e g n e k. E z z el s z e m b e n a T C P n e k v a n e g y t o rl d
s k e z el si m e c h a n iz m u s a , a m i h a a f o rr s s a c l h o s z t o k k z tt e g y
v a g y t b b a d a t k a p c s ol a t t lz o tt a n z s f ol tt v l ik , la s s tj a a s z l l t
si r t e g b el i T C P k l d t. E m el le tt a T C P a d d i g f ol y t a tj a a s z e g m e n s e
252
1 KODAI.OMJEGYZU K
k jr a k l d s t, a m g a c m z e tt n e m n y u g t z z a a s z e g m e n s t v t el
t, t e ki n t e t n l k l a rr a , h o g y a m e g b z h a t k z b e s t s m e n n yi i d t
v e s z i g n y b e . M iv el a v al s i d ej al k al m a z s o k s z m r a g y a k r a n s z
k s g e s e g y m i n i m l is k l d si s e b e s s g , n e m a k a rj k t ls g o s a
254
1 KODAI.OMJEGYZU K
n k sl el t e t n i a s z e g m e n s t vi t el t, s k p e s e k el vi s el n i v al a m e n n yi a
d a t v e s z t s t, a T C P s z ol g l a ti m o d el lj e n e m i g a z n f el el m e g e z e n al k al
m a z s o k i g n y ei n e k. A h o g y a z al b b ia k b a n l t n i f o g j u k, e z e k a z al k
al m a z s o k U D P -t h a s z n lh a t n a k, s a z U D P e x tr a s z ol g l t a t s o k a t
256
1 KODAI.OMJEGYZU K
n e m n y jt s z e g m e n s k z b e s t si s z ol g l t a t s n t l, a z al k al m a z
s r s z e k n t b r m il y e n t o v b b i ki e g s z t f u n k ci t is m e g v al s t h
a t n a k.
N i n c s s s z e k t t e t s f e l p t s .
A h o g y a n a z t k s b b
t r g y al n i f o g j u k, a T C P a z a d a t o k t vi t el n e k m e g k e z d s e el tt
258
1 KODAI.OMJEGYZU K
r o m u t a s k z f o g s t ( t h r e e w a y h a n d s h a k e )
h a s z n l . A z U D P m i
n d e n f o r m l is b e v e z e t n l k l e g y s z e r e n c s a k b el e v g . g y a z U
D P n e m a d
1. Hvskezdemnyezs Fi zi k ai
1 Inic iali zl s 2 N1 = {u} 3 az ss zes v cso m pon tra 4 ha v szo ms zd ja unak 5 ak kor D(v ) = c(u ,v) 6 kl nb en D(v ) = oo
7
Cik lus 8 veg yk azt a min im lis D(w )-j w-t, am ely ne m ele me Nnek 9 ad ju k ho zz wt Nh z 11 w mi nd en ol ya n v sz o m sz d jr a, a m el y ne m el e m e
260 N' ne k: 12 D( v) = mi n(
D(v ),
1 KODAI.OMJEGYZU K e ve ze t t k lts g e */ 15 a m g N* =
N
fe nn ne m ll 2 min den y e N cl cso mp ont ra: 3 Dx( y) =c (x/ y) /* ha y ne m szo msz d, c(x ,y) = oc */ 4 min den w szo msz dr a: 5 D w ( y ) = i . y
e N cl cso mp ont ra 6 min den w szo msz dr a: 7 kl dj kel wnek a Dx = (D x (y) : y e N] tv ols gv ekt ort
s g e .
L tt u k , h o g y a z L S a l g o ri t m u s e s e t b e n m i n d e n c s o m p
A z z e n e t e k s s z e t e t t
262
1 KODAI.OMJEGYZU K
o n t n a k is m e r n i e k e ll a h l z a t s s z e s a d a t k a p c s o l a t n a k k
lt s g t. E h h e z 0 (| N | | E |) s z m z e n e t e l k l d s r e v a n s z k s
g . E z e n t l m e n e n t j k o z t a t n i k e ll a z s s z e s A
B i z t o n s g .
A z O S P F t v l a s z t k e g y m s n a k k l d tt z e n e t e i ( p l d u l k
264
1 KODAI.OMJEGYZU K
a p c s o l a t ll a p o ta k t u a li z l s o k ) h it e l e s t h e t k . A h it e l e s t
s n e k k s z n h e t e n a z A S e n b e l l k iz r l a g m e g b z h a t t v
l a s z t k v e h e t n e k r s z t a z O S P F p r o t o k o ll b a n . E z z e l m e g e l z
h e t , h o g y r o s s z s z n d k b e h a t o l k ( v a g y a z j o n n a n s z e r z
266
1 KODAI.OMJEGYZU K
e tt t u d s u k a t k i l v e z n i a k a r d i k o k ) h e l y t e l e n a d a t o k a t r
j a n a k b e a z t v l a s z t k t b l i b a . A l a p rt e l m e z s A r o u t e o
k a tt ri b t u m ai k z t a rt o zi k e g y lo k l is p r e f e r e n ci a m r c e is ; e z t a z
t v la s z t k m a g u k is b e l l t h a tj k, v a g y t v e h e ti k e g y a s aj t A S -
268
1 KODAI.OMJEGYZU K
k h z t a rt o z m si k t v l a s z t t l . A p r e f e r e n ci a m r c r e v o n a
t k o z d n t s e k e t a z A S h l z a t z e m el t e t j e h o z z a m e g . ( A B G P
v el k a p c s ol a t o s s tr a t g ia i d n t s e k k el h a m a r o s a n r s zl e t e s e
b b e n is f o g la lk o z u n k m aj d .) A z t v l a s z t k ki v l a s z tj k a le g n a g y o b
270
1 KODAI.OMJEGYZU K
b lo k l is p r e f e r e n ci a m r c v el r e n d el k e z r o u t e o k a t. A BG P a fen nm ara
d (az ono s lok lis pre fer enc ia m rc vel ren del kez ) rou teok kz l azt vl asz tja, am ely nek az AS_ PAT H attr ib tu ma a leg rvi deb b. Ha a rou tevl asz -
V e z e t k n l k li h o s z t o k .
A v e z e t k e s h l z a t o k h o z h a s o n l
a n a h o s z t o k al k al m a z s o k a t f u tt a t v g r e d s z e r c k. E g y v e z e t
272
1 KODAI.OMJEGYZU K
k n l k li h o s z t ( w ir el e s s h o s t) le h e t e g y la p t o p , e g y p al m t o p , e g y P
D A , e g y t el e f o n v a g y e g y a s z t al i s z m t g p . M a g u k a h o s z t o k n
e m f el t tl e n l h o r d o z h a t k.
bz isllo m sho z egy vez et k nl kli ko mm uni kc is ada tka pcs olat on (wir ele ss co mm unic atio n link ) ker esz tl kap cso ld nak . A kl nb z vez et k nl kli ada
274
1 KODAI.OMJEGYZU K
tka pcs olat oknak kl nb z tvi teli seb ess ge ik van nak , s kl nb z tv ols go kat kp ese k th idal ni. A 6.2 . br n lt hat juk a leg np sze rb b vez et k nl kli sza
bv nyo k kl f jell em zj t (a lefe det t kr zet m ret t s az ada tt vite li seb ess ge t). (Az br r l csa k nag yvo nal ada tok olv ash at k le. Pl du l nh ny
me gol ds m g csa k mo st terj ed el, illet ve nh ny ada tt vite li seb ess g a tv ols g, a csa tor na lla pot a s a csa tor nn os ztoz hos zto k sz m nak fg
gv ny ben elt rhe t az br n lt hat tl .) Eze kke l a sza bv nyo kka l a feje zet els fel nek vg e fel fog unk fogl alk ozn i, illet ve a vez et k nl kli ada tka pcs olat ok m
276
1 KODAI.OMJEGYZU K
s tul ajd ons ga it is tr gya ljuk (mi nt pl du l hib aar ny uka t s a bit hib k oka il) a 6.2 . alfe jez etb en. A 6.1 . br n a vez et k nl kli ada tka pcs olat ok a hl
za t sz ln tal lha t vez et k nlkli hos zto kat kap cso ljk egy kite rje dte bb hl za tho z. Gy ors an hoz z kell azo nba n ten nn k, hog y vez et k nl kli ada tka pcs olat
oka t a hl za ton
bel l
is has zn lha tun k 1. A m e n n yi b e n a z l lo m s s z a b a d n a k r z k el i a c s a
t o r n t, e g y r vi d i d , a z el o s z t o tt k e r e t k zi i d ( D is tr i b u t e d I n t
278
1 KODAI.OMJEGYZU K
e rfr ai n e S p a c e , D IF S ) le t el t e u t n t o v b b t ja k e r e t t (l s d 6 . 1 0 .
b r a ). 2. E g y b k n t a z l lo m s v l e tl e n s z e r e n v l a s z t e g y vi s s z al
p si rt k e t (r a n d o m b a c k o ff v al u e ), a m el y e t a k k o r k e z d el c s k k e
n t e n i, a m ik o r a c s a t o r n t s z a b a d n a k r z k el i. A m g a c s a t o r n
280
1 KODAI.OMJEGYZU K
t f o g la lt n a k r z k el j k, a s z m l l rt k e n e m v l t o zi k. A 2 . c m m e z
a k e r e t e t t o v b b t ll o m s M A C c m e . A m i k o r t e h t e g y v e z
e t k n l k li ll o m s t o v b b t j a a k e r e t e t, a z ll o m s M A C c m e k
e r l a 2 . c m m e z b e . H a s o n l a n , h a e g y h o z z f r s i p o n t t o v
282
1 KODAI.OMJEGYZU K
b b t j a a k e r e t e t, a k k o r a h o z z f r s i p o n t M A C c m e s z e r e p e
vez et k nl kl i ll om s tov b btj a a ker ete t, az 1. c m me z a c mz ett hoz zf r si po nt MA Cc m t tar tal ma zza , s has onl k p pe n, am
iko r eg y hoz zf r si po nt tov bbtj a a ker ete t, az 1. c m me zb en a c mz ett vez et k nl kl i ll om s MA Cc me sz erep el.
............i
ii >
............... ^
TT--------------------------------
n--------------------------------1
284
1 KODAI.OMJEGYZU K
M i n d e n tt e l r h e t i n t e r n e th o z z f r s t s z e r e t n n k , a
z a z a k r o tt h o n r l, a z ir o d b l, a z a u t b l, e g y k v z b l v a g y
seb ess g nk fg gv ny be n mi ndi g a leh et leg na gyo bb seb ess g gel sze ret n nk hoz zf rn i az int ern eth ez. Pl d ul ha egy oly an utc asa rko n llu nk, aho l
286
1 KODAI.OMJEGYZU K
egy 11 Mb/ s seb ess g IEE E 80 2.1 1b, egy 54 Mb/ s seb ess g IEE E 80 2.1 lg, ille tve egy 38 4 kb/ s seb ess g 3Ghoz zf r s is leh ets ge s, akk or sze
z t l y o k k l n b z t e lj e s tm n y b e n r s z e s l n e k ( e z t j e l e n ti
a k l n b z k v lr l m e g fi g y e l h e t t o v b b t si v is e l k e d s ). A
288
1 KODAI.OMJEGYZU K
m g a PH B kl n bz telj est m nye ket (vis elk ed st) hat ro z me g az osz tl yok kz tt, ne m jel l ki egy etl en kon kr t elj rs t se m en nek me gva ls ts ra
. Ad dig , am g a kv lr l me gfi gye lhe t telj est m nyk ve tel m nye k telj es lne k, br mil yen me gva lst si elj rs s br mel y puf fer/ sv sz les sg lef ogl al
si hz ire nd has zn lha t. A PH B pl d ul ne m kt i ki, ho gy me lyik cso ma gso rba lli tsi feg yel em (p ld ul pri orit so s sor ba ll ts , WF Q vag y FCF S tp
us sor ba ll ts ) has zn lha t az ado tt vis elk ed s el rs re . A PH B a cl, am ely nek el rs he z az er forr slef ogl al s me gva ls t elj rs ok az esz kz k.
290
1 KODAI.OMJEGYZU K
A telj est m nyb eli kl n bs gek nek me gfi gye lhe te kne k s gy m rhe tk nek kell len ni k. 1. A kl ie n s el k l di a z l ta la t m o g at ot t
kr ip to gr f ia i al g or it m u s o k li st j t e g y fr is s e n g e n er l t v l et le n sz m m al e g y t t.
2.
A s z e r v e r e rr l a li st r l v l a s zt e g y s zi m m e tr ik u s k ul c s el j r st ( p l d ul
a z A E S t) , e g y n yi lv n o s k ul c s al g o ri t m u st ( m o n dj u k a z R S A t, e g y a d
292
1 KODAI.OMJEGYZU K
o tt k ul c s h o s s z al ) s e g y M A C k d o t. A v l a s zt s t vi s s z a k l di a kl ie n s
n e k a t a n s t v n y v al s a s aj t v l e tl e n s z m v al e g y tt . 3. A kl ie n s el le
n r zi a t a n s t v n y t, a b b l m e g s z e r zi a s z e r v e r n yi lv n o s k u lc s t, g
e n e r l e g y m e s t e rt it k o t ( M a s t e r S e c r e t) , a z M S ti t k o t ti t k o s tj a a
294
1 KODAI.OMJEGYZU K
s z e r v e r n yi lv n o s k u lc s v al , m aj d a ti t k o si t o tt M S -t el k l d i a s z e r v e
r n e k. 4. U g y a n a z t a k u lc s s z r m a z t a t f g g v n y t ( a m el y e t a z S S L
s z a b v n y r g z t) al k al m a z v a a kl ie n s s a s z e r v e r e g y m s t l f g g e
tl e n l ki s z m t j k a ti t k o s t s M A C k u lc s o k a t a z M S s a v l e tl e n s z
296
1 KODAI.OMJEGYZU K
m o k s e g t s g v el . E tt l k e z d v e a kl ie n s s a s z e r v e r k z tt k l d tt
m i n d e n z e n e t ti t k o s t o tt s M A C k d d al h it el e s t e tt . 5. A kl ie n s el k l di
a k zf o g si f zi s s s z e s z e n e t n s z m t o tt M A C k d o t. 6. A s z e r v e r
el k l di a k zf o g si f zi s s s z e s z e n e t n s z m t o tt M A C k d o t.