   3. Ismertebb socket-ek s az alkalmazsi rteg
   
   
   Az eddigiekben azt vettk  sorra,  hogy  egy zenet hogyan daraboldik szt,
   hogyan jut el egy gptl egy msikig,  majd  ott  hogyan  ll  ismt  ssze.
   Mindez  mg  kevs ahhoz, hogy hasznos dolgot lehessen vgezni.  Szksg van
   valamilyen  mdszerre,   amelynek   segtsgvel   egy  msik  szmtgppel
   kapcsolatba lehet lpni, oda be lehet jelentkezni, kzlni lehet vele,  hogy
   milyen  adatokra  van  szksgnk,  illetve  amellyel  az  adatok  tvitelt
   szablyozni  tudjuk.  (Ms alkalmazs, pl. elektronikus levelezs, esetn is
   ezzel analg protokollra van szksg.)  Ezt a feladatot az alkalmazsi rteg
   protokolljai vgzik el,  amelyek  a  TCP/IP  tetejn tallhatak.  Ez annyit
   jelent, hogy zenet kldsekor azt a TCP-nek tovbbtjk, amely  gondoskodik
   rla,  hogy  eljusson  a  clllomshoz.   Mivel  a  TCP  s az IP kezelik a
   hlzati  vonatkozsokat,  ezrt  az  alkalmazsi  protokollok  a  hlzatot
   egyszer  byte-folyamnak   tekintik,   mint   pldul   egy  terminl-  vagy
   telefonvonalat.
   
   Mieltt  az  alkalmazi  programokkal   kapcsolatban   tovbbi   rszletekbe
   bocstkoznnk,  meg  kell  vizsglnunk,  hogy  hogyan  lehet egy alkalmazst
   megtallni.  Tegyk fel, hogy  egy  llomnyt szeretnnk kldeni a hlzaton
   keresztl a 124.6.4.7 IP cm gpnek.  A folyamat elindtshoz  azonban  az
   Internet   cmnl   tbbre  lesz  szksg.   A  cllloms  oldaln  az  FTP
   kiszolglval  fel  kell  venni   a  kapcsolatot.   A  hlzati  programokat
   ltalban kln feladatok elvgzsre programozzk.  A klnbz feladatokat
   (llomnytvitel, bejelentkezs  tvoli  terminlrl,  levelezs  stb...)  a
   legtbb  rendszerben  ms-ms  programok  vgzik.  Amikor a fenti pldban a
   124.6.4.7  cm  gppel  kapcsolatot  ptnk  ki,  akkor  azt  is  meg kell
   mondanunk, hogy az ottani FTP kiszolglval szeretnnk kommuniklni.   Ennek
   megvalstsra  minden  kiszolgl  jl  ismert  socket-ekkel  (foglalatok,
   szolglatelrsi  pontok)  rendelkezik.  Ennek magyarzatakppen tekintsk a
   kvetkezket.  Emlkezznk  vissza,  hogy  a  TCP  a klnbz kommunikcik
   kzben tartsra  klnbz  portokat  hasznl.   A  felhasznli  programok
   tbb-kevsb  vletlenszeren  vlasztanak  portot,  de  egyes portok eleve
   olyan programoknak  felelnek  meg,  amelyek  valamilyen krs kiszolglsra
   vrnak (ezek lennnek a kiszolglk).  llomnytvitel  esetn  pldul  egy
   "ftp"  nev  programot  indtunk el, amely a kapcsolat felptshez a sajt
   oldaln vletlenszeren kijell egy portot, mondjuk az 1234-t.  A cloldalon
   viszont a  21-es  portot  jelli  meg,  amely  az  FTP  kiszolgl hivatalos
   portjnak felel meg.  Vegyk szre, hogy itt kt  klnbz  programrl  van
   sz.   Az egyik az "ftp", amelyet a kld oldalon indtottunk el, s amely a
   terminlrl kapott parancsokat tovbbtja  a  msik oldalhoz; a clllomson
   lv gpen viszont az FTP kiszolglhoz beszlnk.  Ezt  arra  talltk  ki,
   hogy  a  hlzatrl  parancsokat  fogadjon,  nem  gy  mint  egy  interaktv
   terminl.   Semmi  szksg  arra, hogy az "ftp" program jl ismert socket-et
   hasznljon.  A kiszolglkkal teljesen ms az eset, hiszen a  kapcsolatokban
   parancsokat  kell tudniuk fogadni.  A hivatalos portok s a hozzjuk rendelt
   szmok az RFC 997-tl  kezdve  az  "Internet  Numbers" (Internet Szmok) RFC
   dokumentumban olvashatk (az rs pillanatban a legutbbi az RFC 1162).  Ez
   a  dokumentum  rgebben  az  "Assigned  Numbers"  (Kiosztott  Szmok)  nevet
   viselte.
   
   A fentiek utn nyilvnval, hogy egy  kapcsolatot ngy szm jellemez:  a kt
                                      -13-                                    
                                                                              
   Internet cm, s a kt  TCP  port  szma.   Ez  a  ngy  szm  minden  egyes
   datagrammban megtallhat.  (Az Internet cmek az IP fejlcben, a TCP portok
   szma pedig a TCP fejlcben van.)  Az egyedisg megkvetelse miatt semelyik
   kt  kapcsolat  esetn sem lehet ugyanaz mind a ngy szm.  Ugyanakkor elg,
   ha csak egy szm tr el a msik ngytl.  Semmi nem tiltja pldul azt, hogy
   ugyanazon a gpen  lv  kt  klnbz  felhasznl  llomnyokat vigyen t
   ugyanarra a tvoli gpre.  Ennek a megvalstsa  az  albbi  paramterekkel
   lehetsges:
   
   
                               Internet cm            TCP port szma
   
           1. kapcsolat    128.6.4.194, 128.6.4.7          1234, 21
           2. kapcsolat    128.6.4.194, 128.6.4.7          1235, 21
   
   
   Mivel  ugyanazokrl  a  gpekrl  van  sz,  az  Internet  cmek  ugyanazok.
   Tovbb,  mivel  mind a kt kapcsolatban llomnytvitelrl van sz, ezrt a
   kapcsolatok egyik vgn a  jl  ismert  FTP  port  szma (21) tallhat.  Az
   egyetlen dolog, ami klnbzik, az a felhasznlk ltal futtatott  programok
   portszma.   Ez  tkletesen  elegend.   A  kapcsolatok felptsben az az
   ltalnos gyakorlat,  hogy  legalbb  az  egyik  oldal  utastja  a hlzati
   szoftvert arra, hogy szmra egyedi port-ot allokljon.  A  legtbb  esetben
   ezt a felhasznl felli oldal teszi meg, mivel a kiszolglnak egy mindenki
   ltal jl ismert szmot kell hasznlnia.
   
   Most,  hogy mr tudjuk hogyan kell kapcsolatot felpteni, menjnk vissza az
   alkalmazi  programokhoz.   Ahogy  mr  fentebb  emltettk:   miutn  a TCP
   megnyitott egy kapcsolatot, rendelkezsnkre ll egy  vonal,  ami  akr  egy
   egyszer  drt  is lehetne.  A feladat rzs rszeit a TCP s az IP kezelik.
   Ez persze mg nem  elg,  ugyanis  tudnunk  kell,  hogy  mit kldhetnk t a
   vonalon.   Valjban  ez  nem  ms  mint  a  kldhet  parancsok   s   azok
   formtumnak  lersa.   Az  tkldtt  rsz  lnyegben adatok s parancsok
   egyvelege, amiket a  szvegkrnyezet  klnbztet  meg egymstl.  Pldul a
   levelezst megvalst protokoll mkdse az albbi:  a  felhasznli  oldal
   levelez  programja  kapcsolatot pt fel a cllloms levelezst kiszolgl
   programjval.  A kld program megadja a forrsgp nevt, a kld cmt s a
   cmzetteket.  Ezek utn egy parancsot  kld, amelyben arrl tjkoztat, hogy
   az zenet szvege kvetkezik.  Ettl a ponttl a kiszolgl az adatokat  nem
   parancsokknt,  hanem zenetknt rtelmezi mindaddig, amg egy specilis, az
   zenet vgt  jelent  jellel  (egy  egyedl  ll  pont  a  sor elejn) nem
   tallkozik.  Ez utn a  kt  oldal  ismt  parancsokkal  kommunikl.   Ez  a
   legegyszerbb  mdja  az zenetek kldsnek, s a legtbb alkalmazs gy is
   mkdik.
   
   Az llomnyok tvitele  ennl  valamivel  bonyolultabb.   tvitel esetn kt
   klnbz  kapcsolat  pl  fel.   Az  elejn  minden  gy   megy   mint   a
   levelezskor.    A   felhasznl  programja  olyan  parancsokat  kld,  mint
   "jelentkeztess be ilyen s ilyen felhasznlknt", "ez a jelszm", "kldd el
   ezt s  ezt  az  llomnyt".   Miutn  az  adatkrsre  a  parancs elment, a
   tnyleges adatok tvitelre egy msodik kapcsolat pl fel.  Persze ezt  meg
   lehetne  oldani ugyanazon az egy kapcsolaton keresztl is, ahogy a levelezs
   teszi.   Az  ok,  hogy  ez  mgsem  gy  trtnik,  abban  rejlik,  hogy  az
                                      -14-                                    
                                                                              
   llomnytvitel ltalban hossz ideig  tarthat.  A tervezskor gy reztk,
   hogy  jobb  a  felhasznlnak  meghagyni  a  menet   kzbeni   parancskiads
   lehetsgt  (pldul  megszaktshoz  stb...   Lehetsges  az  is, hogy kt
   klnbz gphez nyissunk meg  kapcsolatot,  s  egy llomnyt az egyiktl a
   msikhoz  kldjnk.   Ebben  az  esetben  az  adatok  nem  keveredhetnek   a
   parancsokkal.)
   
   A  tvoli  terminlhvsok  egy  harmadik  mdszert  hasznlnak.   A  tvoli
   bejelentkezskor  csupn egy kapcsolat pl fel.  Normlis esetben ezen csak
   adatok  mennek  keresztl.   Amennyiben  parancsot  akarunk  kiadni  (pl.  a
   terminl  tpusnak  a  belltsra, vagy valamilyen zemmd tlltsra),
   akkor egy specilis karaktert  kell  kldeni,  amely jelzi, hogy a kvetkez
   karakter parancs.  Ha ezt a specilis karaktert  adatknt  akarjuk  kldeni,
   akkor kettt kell egyms utn kldeni.
   
   Ebben az ismertetben az alkalmazsi protokollokrl rszletesen nem szlunk.
   Ehelyett  javasoljuk  a  megfelel  RFC  dokumentumok  tanulmnyozst.   Az
   alkalmazsok  viszont  egy sor olyan konvencin alapulnak, amelyeket rdemes
   rszletesen rinteni.  Az  els  ilyen  a  kzs  hlzati reprezentci:  a
   TCP/IP-t  gy  terveztk,  hogy  minden  szmtgpen  alkalmazhat  legyen.
   Sajnos nem minden szmtgp trolja ugyangy  az  adatokat.   A  karakterek
   (ASCII  vs.   EBCDIC), a sorvg-jelek kdolsban (kocsi-vissza, soremels),
   s abban, hogy a terminlok a karaktereket egyenknt vagy soronknt kldjk,
   mind  klnbsgek  mutatkoznak.    A   klnbzkppen  mkd  szmtgpek
   kommunikcijnak  elsegtse  miatt  minden  egyes  alkalmazi   protokoll
   szabvnyos  reprezentcikat definil.  A TCP s az IP azonban nem trdik a
   reprezentcival:   a  TCP  egyszeren  csak  okteteket  kld.   Az  oktetek
   rtelmezst  persze  mind  a  kt  oldalnak  ugyangy  kell  vgeznie.   Az
   alkalmazsokat  ler  RFC  dokumentumok   minden  egyes  esetben  az  adott
   alkalmazs  szabvnyos  reprezentcijt  definiljk.   Ez  a   legtbbszr
   "tiszta   ASCII"   formtumnak  felel  meg:   ASCII  karakterek  hasznlata,
   sorvg-jelknt  kocsi-vissza  utni  soremelssel.   A  tvoli bejelentkezs
   definil egy "szabvnyos terminlt" is,  amely  egy  visszhangos,  flduplex
   mkds  terminl.   A legtbb alkalmazsban azonban arra is lehetsg van,
   hogy kt szmtgp  szmukra  megfelelbb  reprezentciban llapodjon meg.
   Pldul a PDP-10 szmtgpekben egy sz 36 bites.   Kt  ilyen  gp  kztt
   lehetsges 36 bites binris llomnyok tvitele.  Hasonlan, ha kt rendszer
   inkbb  teljes  duplex  kommunikcit  preferl,  akkor megegyezhetnek annak
   hasznlatban.  Azonban mindezektl  fggetlenl  minden egyes alkalmazsnak
   van egy szabvnyos reprezentcija, amelyet minden gpnek tmogatnia kell.
   
   
   
   3.1 Egy plda az alkalmazsokra: SMTP
   
   
   Az alkalmazi protokollok szerkezetnek jobb tltsa vgett lljon  itt  az
   SMTP (Simple Mail Transfer Protocol -- egyszer levltovbbtsi protokoll),
   azaz  a  levelezst  megvalst  protokoll egy pldja.  Tegyk fel, hogy a
   TOPAZ.RUTGERS.EDU nev szmtgp szeretn az albbi zenetet elkldeni.
   
       Date: Sat, 27 Jun 87 13:26:31 EDT
       From: hedrick@topaz.rutgers.edu
       To: levy@red.rutgers.edu
       Subject: meeting
   
       Let's get together Monday at 1pm.

                                      -15-                                    
                                                                              
   Az zenet formtumt egy Internet szabvny (RFC 822) rja le.  A szabvnyban
   megfogalmazdik, hogy az zenetet ASCII karakterekknt kell tovbbtani.  Az
   zenet szerkezetnek az albbiak szerint kell kinznie:  fejlc sorok, aztn
   egy  res  sor,  majd  az  zenet  szvege kvetkezik.  Vgl a fejlc sorok
   szintaxist definilja rszletesen: ltalban egy kulcssz, majd egy rtk.
   
   A fenti zenet cmzettje LEVY@RED.RUTGERS.EDU.   Kezdetben ez gy nzett ki,
   hogy csak a cmzett nevt s a gpet  rtk  bele:   "szemly  s  gp".   A
   szabvnyok  fejldse  azonban  ezt  sokkal  rugalmasabb tette.  Ma mr ms
   rendszerek zeneteinek a kezelsre is vannak elrsok (ami persze "magtl
   rtetd").  Ezzel lehetv vlik az Internetbe be nem kapcsolt gpek miatti
   automatikus tirnyts (forwarding):  pldul  az zenetek egy sor rendszer
   szmra  egy  kzponti  (mail  server)  gphez  kerlnek.   Egyltaln   nem
   szksges  teht,  hogy ltezzen a RED.RUTGERS.EDU nvvel jellt szmtgp.
   A nvkiszolglkat gy  is  be  lehet  lltani,  hogy az zenetek cmzettet
   jelent mezjbe tanszkeket runk, s minden egyes  tanszk  zeneteit  egy
   megfelel  szmtgphez  irnytjuk.  Az is lehetsges, hogy a @ jel eltti
   rszbe ne  egy  felhasznlnak  a  nevt  rjuk,  hanem  valami mst.  Egyes
   programokat fel lehet kszteni az zenetek  feldolgozsra.   A  levelezsi
   listk,  illetve az olyan ltalnos nevek, mint "postmaster" vagy "operator"
   kezelsre is felkszlt a rendszer.
   
   Az zenet kldsnek mdjt az  RFC  821  s 974 dokumentumok trgyaljk.  A
   kldst vgz program prszor lekrdezi a nvkiszolglt, hogy  meghatrozza
   a  clllomst.   Az els lekrdezs alkalmval arrl tjkozdik, hogy mely
   gpek kezelik a RED.RUTGERS.EDU gpnek  szl leveleket.  Ebben az esetben a
   kiszolgl vlasza, hogy a RED.RUTGERS.EDU sajt maga kezeli  az  zeneteit.
   Ez utn a program a RED.RUTGERS.EDU cmt kri le, ami 128.6.4.2.  Ezek utn
   a  levelez  program  egy  TCP  kapcsolatot  nyit  meg a 128.6.4.2 gp 25-s
   portjra.  A 25-s port a leveleket  fogad foglalatnak felel meg.  Miutn a
   kapcsolat ltrejtt, a levelez program megkezdi a parancsok  kldst.   Az
   albbiakban lljon itt egy tipikus kommunikci.  A sorok eltt az szerepel,
   hogy  az  a  TOPAZ  vagy  a  RED  nev gptl szrmazik-e.  A pldban TOPAZ
   kezdemnyezte a kapcsolatot:
   
       RED     220 RED.RUTGERS.EDU SMTP Service at 29 Jun 87 05:17:18 EDT
       TOPAZ   HELO topaz.rutgers.edu
       RED     250 RED.RUTGERS.EDU - Hello, TOPAZ.RUTGERS.EDU
       TOPAZ   MAIL From: <hedrick@topaz.rutgers.edu>
       RED     250 MAIL accepted
       TOPAZ   RCPT To: <levy@red.rutgers.edu>
       RED     250 Recipient accepted
       TOPAZ   DATA
       RED     354 Start mail input; end with <CRLF>.<CRLF>
       TOPAZ   Date: Sat, 27 Jun 87 13:26:31 EDT
       TOPAZ   From: hedrick@topaz.rutgers.edu
       TOPAZ   To: levy@red.rutgers.edu
       TOPAZ   Subject: meeting
       TOPAZ
       TOPAZ   Let's get together Monday at 1pm.
       TOPAZ   .
       RED     250 OK
       TOPAZ   QUIT
       RED     221 RED.RUTGERS.EDU Service closing transmission channel
   
                                      -16-                                    
                                                                              
   A  parancsokban  mindentt   norml   szveg   szerepel:    ez  az  Internet
   szabvnyokra tipikusan jellemz.  A protokollok  tbbsge  szabvnyos  ASCII
   parancsokat  hasznl, ami arra is j, hogy kvethessk ppen mi trtnik, s
   a problmkat diagnosztizlni lehessen.   A  levelez program pldul minden
   ilyen beszlgetst egy llomnyban naplz.  Ha valami nem a megfelel  mdon
   trtnik,  akkor az llomnyt elkldhetjk a postmaster-nak.  Mivel ez ASCII
   fomtum,  ezrt  ltni,  hogy  mi  trtnt.   A  dolog  arra  is  j,  hogy
   kzvetlenl a  levelezst  kiszolgl  gppel  lpjnk kapcsolatba tesztels
   cljbl.  (Nhny jabb protokoll annyira sszetett, hogy ez nem praktikus.
   A parancsoknak olyan  szintaxis  felelne  meg,  amely  szintaktikus  elemzt
   ignyelne.   Ez  azt jelenti, hogy az jabb protokoll esetben a tendencia a
   binris formtumok fel mutat.  ltalban  olyan struktrkrl van sz, mint
   a C vagy a Pascal nyelvek rekordja.)  Msodik szrevtelknt emltjk,  hogy
   a  vlaszok  mindegyike  szmmal  kezddik:   ez  is az Internet protokollok
   jellemz vonsa.  A  megengedett  vlaszokat  a  protokollok definiljk.  A
   szmok segtsgvel a felhasznli programok egyrtelmen  kommuniklhatnak.
   A vlaszok maradk rsze szveg, ami a knnyebb olvashatsg miatt szerepel,
   s  nincs  semmifle  kihatsa a programok mkdsre.  (Habr van egy pont,
   ahol a protokoll a vlasz  szvegnek  egy rszt is felhasznlja.)  Maguk a
   parancsok arra  hasznlatosak,  hogy  a  levelez  program  a  kiszolglval
   kzlje  azokat  az  informcikat,  amelyek  az  zenet  tovbbtsa  miatt
   szksgesek.    A   fenti   kiszolgl   az   informcit  az  zenetbl  is
   kiolvashatja.  Bonyolultabb  esetekben  azonban  ez  nem  lenne biztonsgos.
   Minden  kommunikci  a  HELO  paranccsal  kezddik,  amit   a   kapcsolatot
   kezdemnyez  rendszer  nevnek kell kvetnie.  Ezek utn kovetkezik a kld
   s a cmzett meghatrozsa.  (Lehet  tbb  RCPT parancsot is kiadni, ha tbb
   cmzett van.)  Vgl maga az zenet jn.  A szveget olyan  sorral  fejezzk
   be,  amiben  csak egy pont szerepel.  (Ha a szvegben is szerepel ilyen sor,
   akkor a pont megduplzdik.)  Miutn  az  zenet fogadsa megrtnt, a kld
   msik zenetet kldhet, vagy befejezheti a kommunikcit, mint ahogy a fenti
   pldban is trtnt.
   
   A  vlaszokat  jell  szmokat  egy  minta  szerint  kpezzk.  A protokoll
   definilja  azokat  a  vlaszokat,  amelyek  egy  adott  parancsra adhatak.
   Amennyiben nem rdekes a vlaszok rszletes elemzse,  akkor  elg  csak  az
   els   szmjegyet  figyelembe  venni.   A  2-vel  kezdd  vlaszok  sikeres
   parancsot jellnek.  A  3-mal  kezddek  esetn  tovbbi  parancsokat vr a
   kiszolgl (ld. fent is).  A 4  ideiglenes  hibt  jelez  (pl.  lemezterlet
   megtelt).   Az  zenetet  ilyenkor  el  kell  menteni,  s  ksbb jra kell
   prblkozni.  Az  5  lland  jelleg  hibra  utal,  pldul  nem ltezik a
   cmzett.  Az zenetet egy  hibazenet  ksretben  vissza  kell  kldeni  a
   feladnak.
   
   (A  fejezetben  emltett  protokollokkal  kapcsolatban  tovbbi  informcit
   szolgltat az RFC 821/822 a levelezsrl, az RFC 959 az  llomnytvitelrl,
   s az RFC 854/855 a tvoli bejelentkezsrl.)
                                      -17-                                    
                                                                              
   4. Nem TCP protokollok: UDP s ICMP
   
   
   Eddig csak olyan kapcsolatokkal  foglalkoztunk,  amelyek  TCP-t  hasznlnak.
   Emlkezznk  vissza,  hogy  a TCP az zenetek datagrammokra darabolsrt s
   helyes sorrendben trtn  visszalltsrt  felels.  Sok alkalmazs sorn
   talljuk  magunkat  szembe  olyan  zenetekkel,  amelyek  elfrnek  egyetlen
   datagrammban is.  Egy plda erre a nevek kikeresse.  Amikor egy felhasznl
   egy msik rendszerrel kapcsolatba  akar  lpni,  akkor  ltalban  az  adott
   rendszer  nevt  fogja  megadni,  s  nem  az  IP  cmt.  Mieltt brmit is
   kezdhetne vele, a felhasznl rendszernek ezt a nevet le kell fordtania IP
   cmre.  Az erre a  clra  szolgl  adatbzissal viszont nem minden rendszer
   rendelkezik, ezrt a felhasznl rendszere az adatbzissal brt kri meg  a
   fordtsra.    A   krs   annyira   rvid,  hogy  biztosan  elfr  egyetlen
   datagrammban.  Ugyanez mondhat el  a  vlaszrl  is.  gy ltszik, hogy nem
   rdemes a TCP-t hasznlni.  Persze a TCP az zenetek darabolsn  kvl  mg
   mst   is   csinl.   Biztostja,  hogy  az  zenetek  megrkezzenek:   ahol
   szksges, ott a datagrammokat jraadja.   Viszont az olyan krdshez, amely
   egyetlen datagrammban elfr, nincs szksg a TCP teljes bonyolultsgra.  Ha
   egy pr msodpercen bell nem kapunk vlaszt, akkor egyszeren megismteljk
   a krdst.  Az ilyen alkalmazsokra a TCP mellett ltezik ms alternatva.
   
   A  legszlesebb  krben  hasznlt  ilyen  protokoll  az  UDP  (user datagram
   protocol -- felhasznli datagrammprotokoll), amelyet olyan  alkalmazsokhoz
   talltak   ki,   ahol   nincs   szksg   datagramok  sorozatba  lltsra.
   Hasonlkppen illeszkedik a rendszerbe, mint  a TCP.  A hlzati szoftver az
   adatok elejre rilleszti az UDP  fejlcet  ugyangy,  ahogy  a  TCP  fejlc
   esetben  teszi.   Az  UDP  ezek utn az IP-nek tovbbtja az adatot.  Az IP
   hozzteszi a sajt  fejlct,  amibe  a  TCP  helyett az UDP protokollszmt
   helyezi el a Protokoll mezben (lsd IP fejlc).  Az  UDP  nem  vgez  annyi
   feladatot,  mint  a  TCP:   nem  trdeli szt az zenetet datagrammokra, nem
   figyeli a mr elkldtt adatokat,  hogy majd esetleg jraadja ket.  Az UDP
   csak portszmokat biztost, hogy egyszerre tbb program  is  hasznlhassa  a
   protokollt.    Az   UDP   portszmok  ugyangy  hasznlatosak,  mint  a  TCP
   portszmok.   Az  UDP-t  hasznl  kiszolglkhoz  is  lteznek  jl  ismert
   portszmok.  Megjegyezzk mg, hogy  az  UDP  fejlc sokkal rvidebb, mint a
   TCP fejlce.  Ebben is szerepel a forrs- s a clport szma,  valamint  egy
   ellenrz  sszeg,  de  ennyi  az  egsz.   Nincs  benne sorszm, mert nincs
   szksg r.  Az UDP fejlc gy nz ki:
   
   
       <<--------------------------- 32 bit -------------------------->>
   
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |           Forrsport          |           Clport             |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
       |           Hossz               |       Ellenrzsszeg         |
       +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   
   
   Az UDP-t a nevek kikeresst vgz (lsd  az  IEN  116, az RFC 882 s az RFC
   883  dokumentumokat),  illetve  az  ezekhez  hasonlan  mkd   protokollok
   hasznljk.
                                      -18-                                    
                                                                              
   Egy msik alternatv protokoll az ICMP (Internet control message protocol --
   internet vezrlzenet protokoll) nevet viseli.  Az ICMP-t a hibazenetek s
   a  TCP/IP-t  megvalst  szoftvernek  sznt zenetek kezelsre hasznljk.
   Kapcsolat  krsekor  a  kezdemnyez  rendszer  kaphat  pldul  olyan ICMP
   zenetet, hogy "host unreachable" (elrhetetlen gp).  Az ICMP-t  hasznljk
   mg  arra  is,  hogy  magrl  a  hlzatrl  informcikat  gyjtsenek.   A
   protokollt  az  RFC 792 dokumentum rja le teljes rszletessgben.  Az ICMP
   abban hasonlt az UDP-hez,  hogy  mindketten olyan zenetekkel foglalkoznak,
   amelyek  egyetlen  datagrammban  elfrnek.   Az  ICMP   azonban   annl   is
   egyszerbb.  Mg csak portszmok sincsenek a fejlcben.  Mivel minden egyes
   ICMP  zenetet  maga a hlzati szoftver rtelmez, ezrt nincs szksg olyan
   portszmokra, amelyek megmondjk, hogy egy adott ICMP zenet hova menjen.
   
   
   
   5. Nv- s informciszervezs: a tartomny (domain) rendszer
   
   
   Ahogyan  mr korbban jeleztk, a hlzati szoftvernek egy 32 bites Internet
   cmre van szksge  ahhoz,  hogy  egy  kapcsolatot  felpthessen, vagy hogy
   datagrammokat kldhessen.  A  felhasznlk  viszont  inkbb  a  szmtgpek
   neveivel   mintsem   szmokkal   szeretnnek  hivatkozni  rjuk  (a  neveket
   knnyebben meg lehet  jegyezni).   Ezrt  ltezik  egy adatbzis, amelybl a
   hlzati szoftver kikeresheti a nvnek megfelel cmet, s fordtva.  Amikor
   az Internet mg nem  volt  ilyen  kiterjedt,  akkor  ez  viszonylag  knnyen
   megolddott:  minden gpnek volt egy adatllomnya, amelyben az sszes tbbi
   rendszer nevt s cmt felsoroltk.  Ma mr tl sok rendszer ltezik ahhoz,
   hogy  az ilyen megkzelts praktikus legyen.  Emiatt ezeket az llomnyokat
   olyan nvkiszolglk vltottk fel,  amelyek  a  gpek neveit s a megfelel
   cmeket  tartjk  nyilvn.   (A  sokfajta  informci  kzl  ez  csak  egy.
   Valjban ezek a kiszolglk sokkal ltalnosabb feladatot  ltnak  el.)   A
   valsgban  egyetlen  kzponti  gp  helyett  az ilyen kiszolglk egymssal
   sszekapcsolt  halmaza  hasznlatos.   Manapsg   mr  olyan  sok  klnbz
   intzmny kapcsoldik az Internethez,  hogy  nem  lenne  praktikus,  ha  egy
   kzponti  hatsgot  kellene  rtestenik  minden olyan esetben, amikor egy
   gpet a hlzatba be- vagy  abbl  kikapcsolnak.  ppen ezrt a nvadsra az
   egyes intzmnyek a rendszerkn  bell  sajt  maguk  jogosultak.   Az  gy
   kialaktott  nvkiszolglk  kzsen  egy  fa  struktrt alkotnak, amely az
   intzmnyek hlzati szerkezetnek felel meg.   Ezt a szerkezetet a nevek is
   tkrzik.   Tipikus  plda  erre  a  BORAX.LCS.MIT.EDU  nv,  amely  a   MIT
   szmtstechnikai  laboratriumnak  (LCS)  egy  szmtgpt  jelli (ilyen
   plda   lehetne   mg:     maxi.inf.elte.hu,    ami    az   ELTE   ltalnos
   Szmtstudomnyi tanszknek maxi nev gpt adja).  A gp Internet cmnek
   meghatrozshoz 4 potencilis kiszolglt kellene megkrdezni.  Elszr egy
   kzponti  kiszolgltl  (root  -  gykr,  ld.  a  fa  struktrt)  kellene
   megtudakolni, hogy hol tallhat az EDU kiszolgl, amely nem  ms,  mint  a
   hlzatba   kapcsolt  oktatsi  intzmnyek  nyilvntartsa.   A  gykrknt
   szerepl kiszolgl tbb EDU  kiszolgl  nevt  s Internet cmt adn meg.
   (Minden  szinten  tbb  ilyen   nvkiszolgl   van,   hogy   az   esetleges
                                      -19-                                    
                                                                              
   meghibsodsok  ne okozzanak fennakadst.)  A kvetkez feladat lenne az EDU
   kiszolgl lekrdezse a  MIT  nvkiszolgljrl.   Itt  is tbb kiszolgl
   nevt s Internet cmt kapnnk meg.  Ezek  kzl  ltalban  nem  mindegyik
   tallhat  az intzmny terletn (egy esetleges ramsznet fellpte miatt).
   Ez utn  a  MIT-tl  krdeznnk  le  a  szmtstechnikai laboratrium (LCS)
   nvkiszolgljnak adatait, majd vgl a laboratriumi nvkiszolglk egyike
   adn a BORAX adatait.  A vgs eredmny  a  BORAX.LCS.MIT.EDU  gp  Internet
   cme  lenne.   A  fenti szintek mindegyike egy tartomnyt (domain) jell.  A
   teljes  BORAX.LCS.MIT.EDU  nv   pedig   egy   tartomnynv  (domain  name).
   (Ugyangy a  felsbb  tartomnyok  nevei  is  tartomnynevek:   LCS.MIT.EDU,
   MIT.EDU s EDU.)
   
   Az esetek nagy tbbsgben szerencsre  nem kell a fenti lpsek mindegyikt
   vgrehajtani.   A  legfels  kiszolgl  (gykr)  ugyanis egyben a legfels
   szinten lv tartomnyok (pl.  EDU) nvkiszolgljaknt is szerepel.   Teht
   a    gykr    kiszolgl   fel   irnyul   egyetlen   krdssel   a   MIT
   nvkiszolgljhoz  lehet  eljutni.   Az   alkalmazott  szoftverek  pedig  a
   mr feltett krdsekre kapott vlaszokra emlkeznek.  Ez azt jelenti, hogy a
   LCS.MIT.EDU   kiszolgl   lekrdezse   utn  tudja,  hogy  hol  keresse  a
   LCS.MIT.EDU,  a  MIT.EDU   s   az   EDU   tartomnybeli  kiszolglkat.   A
   BORAX.LCS.MIT.EDU   fordtsra  szintn  emlkszik.   Persze  minden  ilyen
   informcinak van egy megfelel lettartama,  ami tipikusan pr napnak felel
   meg.  Az lettartam lejrta utn az informcikat fel kell  frissteni.   Az
   intzmnyek ilyen mdon vltoztathatnak, ha akarnak.
   
   A  tartomnyrendszer feladata nem merl ki az Internet cmek megtallsban.
   Minden  egyes  tartomnynv  csompontknt  szerepel  egy  adatbzisban.   A
   csompontnak klnbz tulajdonsgokat jellemz rekordjai  lehetnek.   Ilyen
   az  Internet  cm,  a  szmtgp  tpusa, s a szmtgp ltal biztostott
   szolgltatsok    felsorolsa.     Egy    program    egy    adott     nvvel
   kapcsolatban  krheti  ezen  informcik  valamelyikt,  vagy  az  sszeset.
   Megoldhat  az  is,  hogy  egy  adatbzisbeli  csompont egy msik csompont
   lneveknt   (alias)    szerepeljen.     Az    is    lehetsges,    hogy   a
   tartomnyrendszerben  felhasznlkrl,  levelezsi   listkrl,   vagy   ms
   objektumokrl troljunk adatokat.
   
   A  fenti  adatbzisok  mkdst,  illetve  az azok lekrdezst megvalst
   protokollokat is Internet szabvny  rja  le.  Minden hlzati alkalmazsnak
   meg kell tudnia valstani ezeket a lekrdezseket,  mivel  hivatalosan  gy
   trtnik   a  hosztnevek  kirtkelse.   Az  alkalmazsok  ltalban  sajt
   rendszerkn  (tartomnyukon)  bell  keresnek  egy  nvkiszolglt.   Ez  a
   kiszolgl aztn a felsbb  szinten  (az   tartomnyn) lv kiszolglkkal
   veszi fel a kapcsolatot.  Ezzel a mdszerrel  az  alkalmazsokban  lv  kd
   mennyisgt lehet lecskkenteni.
   
   A  tartomnyrendszer  fontos  szerepet tlt be az elektronikus levelezsben.
   Az adatbzisokban szerepelhetnek olyan bejegyzsek, amelyek megmondjk, hogy
   melyik gp kezeli  egy  adott  nv  leveleit,  egy  felhasznl levelei hov
   rkezzenek, illetve levelezsi listkat is definilhatnak.
   
   (A tartomnyrendszerrl az RFC 1034, 1035 s 1101 dokumentumok rnak.   Ezek
   rgebbi   verzii:    RFC   882,   883   s   973.    Az  RFC  974  pedig  a
   tartomnyrendszernek  az  elektronikus   levelezsben  betlttt  szereprl
   szl.)
   
                                      -20-                                    
                                                                              
   6. tvonal-vlaszts
   
   
   A fentiekben emltettk, hogy  az  IP implementciknak gondoskodniuk kell a
   datagramm clcm ltal jelzett cmre val eljuttatsrl.  Azt  azonban  nem
   rtuk  le,  hogy  ez hogyan is trtnik.  Egy datagramm rendeltetsi helyre
   juttatsnak mikntjt az  tvonal-vlaszts  (routing) kifejezs jelli.  A
   rszletek nagymrtkben fggenek az adott implementcitl, viszont  egy-kt
   dolgot ltalnossgban el lehet mondani.
   
   Elszr  is  az  szksges,  hogy  az  IP-t  megvalst  modellel tisztban
   legynk.  Az IP alapllapotban  azzal  a  feltevssel  l, hogy a rendszerek
   valamilyen loklis hlzatra kapcsoldnak.  Feltesszk, hogy  a  rendszer  a
   sajt  hlzatn  keresztl datagrammokat tud kldeni egy msik rendszernek.
   (Ethernet alap hlzat esetn  egyszeren  a cllloms Ethernet cmt kell
   megkeresnie, majd a datagrammot ki kell  adnia  a  hlzatra.)   A  problma
   akkor  jelentkezik, amikor egy msik hlzaton lv rendszerhez kell kldeni
   datagrammot.  Itt lpnek  be  az  tjrk  (gateway).   Az  tjr egy olyan
   hlzati eszkz, amely egy hlzatot kt vagy tbb msikkal kt ssze.  Ez a
   gyakorlatban  legtbbszr  egy  olyan  szmtgpet  jelent,  amelynek  tbb
   hlzati interfsze van.  A Rugers University-nl pldul van egy Unix alap
   gp, amelynek kt klnbz Ethernet interfsze van. gy  az  kapcsoldik  a
   128.6.4,  s  a  128.6.3  hlzathoz.   Ez a szmtgp a kt hlzat kztt
   tjrknt zemelhet.  A  hlzati  szoftvert  gy  kell belltani, hogy az
   tjr a kt hlzat kztt datagrammokat tudjon  kldeni.   Ha  egy  gp  a
   128.6.4  hlzatrl  olyan  datagrammot kld az tjr fel, amely a 128.6.3
   hlzaton lv  gpek  egyiknek  szl,  akkor  azt  az  tjr tovbbtja a
   cllloms  fel.   A  fbb  kommunikcis  kzpontokban  tbb   tjr   is
   tallhat,   amelyek  klnbz  hlzatokat  ktnek  ssze  egymssal.   (A
   legtbbszr specilisan erre  a  feladatra  ksztett tjrkat alkalmaznak,
   amelyek megbzhatbban, s sokkal hatsosabban mkdnek  az  ltalnos  cl
   tjrknl.  Sok cg knl ilyen rendszereket.)
   
   Az  IP  szerinti  tvonal-vlaszts  teljes  mrtkben a cllloms hlzati
   szmn alapszik.  A hlzatba kttt minden egyes szmtgp rendelkezik egy
   tblzattal, amelyben a  hlzati  szmokat troljk.  Minden hlzatszmhoz
   tartozik egy tjr, amelyen keresztl az adott hlzathoz eljuthatunk.  Azt
   szre kell venni, hogy az tjr nincs felttlenl arra a  hlzatra  ktve:
   egyszeren  csak  az  a legjobb t, amelyen keresztl az adott hlzathoz el
   lehet jutni.  Pldul a Rutgers Egyetem NSFnet kapcsolata a John von Neumann
   Supercomputer Center-en  (JvNC)  keresztl  valsul  meg.   A  JvNC-vel val
   sszekttetst egy  nagysebessg  soros  vonali  kapcsolat  adja,  amely  a
   128.6.3.12  cm tjrhoz van ktve.  A 128.6.3 hlzaton lv rendszerek a
   legtbb egyetemen kvli hlzat fel a 128.6.3.12 tjrt fogjk hasznlni.
   A 128.6.4 hlzaton lv  rendszerek  viszont a 128.6.4.1 tjrt hasznljk
   ugyanazon hlzatok fel.  A 128.6.4.1 a  128.6.4  s  a  128.6.3  hlzatok
   kztt  mkdik  tjrknt,  teht a JvNC-vel els lpsknt ezen keresztl
   lehet kapcsolatba lpni (a 128.6.4 hlzatrl).
   
                                      -21-                                    
                                                                              
   Amikor egy szmtgp datagrammot akar kldeni egy msiknak,  akkor  elszr
   azt ellenrzi, hogy a fogad nincs-e a sajt hlzatn.  Ha ott van, akkor a
   datagrammot  kzvetlenl  neki  kldi  el.   Ha  nincs ott, akkor a rendszer
   keresni kezdi a tblzatban a  cllloms  hlzati szmt, s a datagrammot
   annak a hlzatnak az tjrja fel kldi.  A hlzati szmokat s tjrkat
   felsorol tblzat  esetenknt  igen  nagy  terjedelemre  tehet  szert.   Az
   Internet  pldul tbb szz hlzatot foglal magba.  Klnbz stratgikat
   dolgoztak ki annak rdekben,  hogy  az  tvonal-vlasztsi tblk mrett a
   lehet  legkissebb   rtken   tartsk.    Az   egyik   ilyen   mdszer   az
   alaprtelmezett  tvonalak  hasznlata.  Gyakran fellp az az eset, hogy egy
   hlzatbl csak egyetlen tjrn keresztl  lehet kijutni.  Egy ilyen tjr
   pldul egy Ethernet alap  loklis  hlzat  s  egy  gerinchlzat  kztt
   ltesthet  kapcsolatot.   Ilyenkor  persze  nincs  szksg  arra,  hogy  az
   tvonal-vlasztsi tblban az sszes kls hlzat szerepeljen.  Az tjrt
   egyszeren  alaprtelmezettnek  definiljuk,  s gy a vlasztott tvonallal
   nem  rendelkez  datagrammok  egyenesen  az  tjrhoz  kerlnek.   Egy  gy
   belltott tjr akkor is  hasznlhat,  ha  egy  hlzaton tbb is mkdik
   belle.  Az tjrkat gy terveztk, hogy a "Nem  ez  a  legjobb  tjr  --
   hasznld  inkbb  ezt  s  ezt." zenetet generlni tudjk.  (Az zenetet az
   ICMP-n keresztl adjk  le.   Lsd  az  RFC  792-t.)   A hlzati szoftverek
   tbbsge  ezt  az  zenetet  hasznlja  arra,  hogy  az   tvonal-vlasztsi
   tbljba bejegyzseket helyezzen el.  Tegyk fel, hogy a 128.6.4 hlzatnak
   kt  tjrja  van:   a  128.6.4.1 s a 128.6.4.59.  Az els a Rutgers bels
   hlzataival, a msodik  pedig  kzvetetten  az NSFnet-tel tart kapcsolatot.
   Tegyk  fel  tovbb,  hogy  alaprtelmezett   tjrknt   a   128.6.4.59-t
   lltottuk  be,  s  az tvonal-vlasztsi tblban nincs ms bejegyzs.  Mi
   trtnik, ha a MIT hlzatra  akarunk  datagrammot kldeni?  A MIT hlzati
   szma 18.  Mivel ilyen bejegyzs nincs  a  tblzatban,  ezrt  a  datagramm
   egyenesen  a  belltott  gphez, a 128.6.4.59-hez kerl.  Ez persze a rossz
   tjr.  A datagrammunkat a 128.6.4.1-hez fogja tovbbtani.  Ezen kvl egy
   hibazenetet  is  kld  neknk  "a  18-as  hlzathoz  hasznld  a 128.6.4.1
   tjrt" szveggel.  A hlzati  szoftvernk  pedig  bejegyzi  az  adatot  a
   tblzatba.   Ennek eredmnyekppen a MIT fel irnyul jvbeli datagrammok
   egyenesen a 128.6.4.1 tjr fel  mennek.  (A hibazenet kldshez az ICMP
   hasznlatos.  Ezt a  fajta  zenetet  ICMP  tirnytsnak  (ICMP  redirect)
   hvjk.)
   
   Az IP szakrtk tbbsge azon a vlemnyen van, hogy a hlzati szmtgpek
   ne prbljk meg az egsz hlzat forgalmt nyomon  kvetni.   Ehelyett  azt
   ajnljk,    hogy   alaprtelmezett   tjrkat   hasznljanak,   s   rjuk
   tmaszkodjanak az  tvonalak  megllaptsnl,  ahogy  azt  a fentiekben is
   lertuk.  Arrl nem volt sz, hogy  az  tjrk  hogyan  hatrozzk  meg  az
   tvonalakat.   Az  esetkben  a  fenti  stratgia nem hasznlhat, hiszen az
   tvonal-vlasztsi tblzatuknak megfelelen  teljesnek  kell lennie.  Ezrt
   valamifle tvonal-vlasztsi protokoll jelenlte szksges, amely azt  rja
   le,  hogy  az tjrk hogyan tallhatjk meg egymst, s hogyan frissthetik
   az adatbzisukat a klnbz hlzatokhoz vezet (legjobb) tvonalakrl.  Az
   tjrk  tervezsrl  s  az  tvonalak  megvlasztsrl  az  RFC  1009 ad
   ttekintst.  Az tvonal-vlaszts legutbbi lerst az  RFC  1716  s  RFC
   1812 adja. A rip.doc (RFC  1058)  dokumentum  valsznleg  jobb  bevezetst
   nyjt a tmba. Tartalmazza egy kissebb bevezet oktats anyagt, valamint a
   leggyakrabban hasznlt tvonal-vlasztsi protokoll rszletes lerst is.
   
                                      -22-                                    
                                                                              
   7. Bvebben az Internet cmekrl: alhlzatok s zenetszrs
   
   
   Az eddigiekbl mr  kiderlt,  hogy  az  Internet  cmek  32  bites  szmok,
   amelyeket  ngy  (decimlis)  oktet  formjban  runk  le, pl.:  128.6.4.7.
   Tnylegesen hromfajta cm ltezik.   A  problma  abban gykeredzik, hogy a
   cmnek a hlzatot is, s a hlzati gpet is jellnie kell.  Kezdetben  gy
   tartottk,  hogy  rengeteg hlzat fog ltrejnni.  Ezek kzl sok lesz majd
   kismret, de valsznleg  24  bit  kell  az  IP  cmek  lersra.  Azt is
   felvetettk, hogy nhny nagymret hlzatnak 24 bit kell majd a  gpei  IP
   cmnek  a lersra. gy ltszott, hogy 48 bites cmeket kell bevezetni.  A
   tervezk azonban 32 bites  cmeket  akartak  hasznlni.   A megolds a kett
   kztt fekszik.  Feltteleztk,  hogy  a  legtbb  hlzat  kismret  lesz.
   Hromfajta  cmtartomnyt vettek fel.  Az 1 s 126 kztti szmokkal kezdd
   cmek a ngybl csak az  els  oktetet hasznljk a hlzat megcmzsre.  A
   maradk hrom oktet, azaz 24 bit, jellheti a gpeket.   Az  gy  konstrult
   cmeket  nagymret hlzatok hasznljk.  A cmzs ezekbl viszont csak 126
   darabot  enged  meg.   Ilyen  hlzat  az   Arpanet  s  mg  egy  pr  nagy
   kereskedelmi hlzat.  A csatlakoz intzmnyek kzl kevesen  kapnak  ilyen
   "A  osztly"  IP  cmet.   A  hlzaton  a leggyakoribb a "B osztly" cm,
   amikor a ngy oktetbl  az  els  kett  a hlzat (128.1-tl 191.254-ig), a
   maradk kett (teht 16 bit) pedig a gpek megcmzsre szolgl.  (A hlzat
   cmben a 0 s a 255 nem hasznlhat a lejjebb  olvashatak  miatt.   A  127
   szintn  tiltott,  mert  ez  specilis  clokra  van  fenntartva.)   Az  gy
   kialaktott  cmzs  egy  hlzaton  bell  teht  64516  gpet  engedlyez.
   (Lehetsg  van  tbb  B  osztly  cm  felvtelre is, ha ez kevs lenne.)
   Vgl pedig a "C osztly" cmek azok, amelyekben az els hrom oktet jelli
   a hlzatot  (192.1.1-tl  223.254.254-ig).   Az  ilyen hlzatokhoz maximum
   csak 254 gp csatlakozhat, de  ezekbl  sok  ilyen  lehetsges.   A  223-nl
   nagyobb   szmokkal   kezdd   cmeket  "D"  s  "E"  osztlyknt  jvbeli
   hasznlatra   tartalkoljk.     (A    D    osztly   cmeket   gynevezett
   csoportcmzsre  (multicasting)  hasznljk;  ezek   cmzse   224.0.0.0-tl
   239.255.255.255-ig tart.)
   
   Sok hlzat szmra hasznos, ha a hlzati cmt felosztja alhlzatokra.  A
   Rutgers  egyetem  pldul  a  B  osztly 128.6 cmen rhet el.  A harmadik
   oktetet  arra   hasznlja,   hogy   a   helyi   Ehternet  alap  hlzatokat
   megklnbztesse  egymstl.   Ennek  a  felosztsnak  ez  egyetemen   kvl
   semmilyen jelentsge nincs.  A tbbi intzmny ebbl semmit sem vesz szre.
   A  cmzskor  nem  nzik  a  harmadik  oktetet.   A  Rutgers-en kvli gpek
   tovbbra is ugyanazon az ton fogjk kldeni a datagrammokat mind a 128.6.4,
   mind a 128.6.5 hlzatra.  Az  egyetemen  bell azonban ez nem igaz.  Minden
   egyes egyetemi tjrnak kln bejegyzse van az egyetemen tallhat  sszes
   alhlzatrl,  mg  az  egyetemen  kvli  tjrknak  csak  a 128.6-rl van
   bejegyzsk.  A fenti elosztst gy is  meg lehetett volna valstani, ha az
   egyetem az alhlzataira C osztly cmeket kapott volna.  Ezzel  persze  az
   egyetemen  kvli  vilg  szmra  lett  volna komplikltabb a dolog, hiszen
   minden  tjrnak  az  sszes  ilyen  cmet  be  kellett  volna  jegyeznie a
   tblzatba.  Ez pedig az tvonalak nyomonkvetst nehezebb  tette  volna.
   A  B osztly cm felosztsval mintegy elrejthet a bels felpts, s gy
   sok veszdsgtl  kmlnk  meg  msokat.   Az  alhlzatok ilyen felosztsa
                                      -23-                                    
                                                                              
   specilis ignyeket tmaszt a hlzati szoftver fel.
   
   Az IP cmekben a 0 s a 255 specilis jelentssel br.  A 0 az  olyan  gpek
   szmra  van  fenntartva,  amelyek  nem tudjk a hlzati cmket.  Bizonyos
   helyzetekben lehetsges, hogy  egy  szmtgp  nem  tudja, melyik hlzatra
   csatlakoztattk.   A  0.0.0.23  pldul  egy olyan szmtgp cme, amelynek
   hosztszma 23, de nem tudni, hogy melyik hlzaton.
   
   A 255-t zenetszrsra  (broadcast)  hasznljk.  Az zenetszrs lnyegben
   egy  olyan  zenet,  amelyet  az  adott  hlzaton  minden  szmtgp  lt.
   Olyankor hasznlatos, amikor a "cmzett ismeretlen".   Tegyk  fel  pldul,
   hogy  egy,  a  hlzatra  kapcsolt szmtgp nevre van szksgnk, mert az
   Internet   cmt   szeretnnk   tudni.    Mondjuk,   hogy   a   legkzelebbi
   nvszolgltatnak nem  tudjuk  a  cmt.   Ilyenkor  segt  az zenetszrs.
   Elfordulhat az is, hogy egy informcit  tbb  rendszerrel  meg  szeretnnk
   osztani.    Ilyenkor   hatsosabb   az   zenetszrs,  mintha  az  rdekelt
   rendszerekhez    kln    kldennk    datagrammokat.     Az    zenetszrs
   megvalstshoz egy olyan  IP  cmet  kell  formlni,  amelyben a hlzatot
   jell rszbe a kld hlzat cmt, a gpet jell rszbe pedig csupa egyes
   bitet  (azaz  255-t)  runk.   A  128.6.4  hlzaton  ez   gy   nzne   ki:
   128.6.4.255.   Az  zenetszrs  tnyleges  megvalstsa  az adott kzegtl
   fgg.  Az Arpanet-en s kt  gp kztti hlzatokon nem lehet zenetszrst
   alkalmazni, ellenttben az Ethernet alap hlzatokkal, ahol a  csupa  egyes
   bitbl  ll  Ethernet  cm  zenetet  az  azon  a  hlzaton  lv  minden
   szmtgp veszi.
   
   Annak  ellenre,  hogy  a 128.6.4 hlzaton az zenetszrs hivatalos alakja
   128.6.4.255, egyes megvalstsokban ltezik  erre  ms  cm is.  A szabvny
   megengedi a 255.255.255.255 hasznlatt is, amely az adott  loklis  hlzat
   sszes  gpnek  szl  zenetet  jelenti.   Sokszor  egyszerbb ezt a cmet
   hasznlni, mint a  loklis  hlzat  cmvel  a  fenti  mdon megformlni az
   zenetet.  Ezekhez jn hozz az a tny, hogy egyes korai megvalstsokban a
   255 helyett a 0-t hasznltk zenetszrsra, azaz a fenti pldban 128.6.4.0
   lenne az zenetszr  cm.   (Nevezetesen  a  Berkeley  Unix  egyik  kezdeti
   vltozatnak   TCP/IP   kdjrl  van  sz.   A  hibt  azta  termszetesen
   kijavtottk, de a  "flrerts"  az  abbl szrmaztatott egyes kereskedelmi
   rendszerekben tovbb  l  --  a  fordt.)   Vgl  lteznek  olyan  rgebbi
   rendszerek, amelyek egyltaln nem ismerik az alhlzat fogalmt, szmukra a
   fenti  hlzatot  a  128.6,  s  gy az zenetszrst a 128.6.255.255 vagy a
   128.6.0.0 cm jelenti.   Addig,  amg  az  zenetszrs  krli kavalkd nem
   tisztul, igen veszlyes dologg is vlhat (szerintem ez ma mr kevsb igaz;
   a rendszerek 99%-a a 255-t hasznlja -- a fordt).
   
   Mivel a 0 s a 255 specilis clokra hasznlatos,  ezrt  a  hlzati  gpek
   cmeiben ennek a kt szmnak  nem  szabad  szerepelnie.   Az  IP  cmek  nem
   kezddhetnek  se 0-val, se 127-tel, se 223-nl nagyobb szmmal.  Az ezeket a
   szablyokat megszeg cmekre Marslakkknt hivatkoznak, mert elterjedt, hogy
   a Mars Kzpont Egyeteme a 225-s hlzatot hasznlja.
   
                                      -24-                                    
                                                                              
   8. Datagrammok fragmentlsa s sszeraksa
   
   
   A TCP/IP-t gy terveztk, hogy klnbz hlzatokon is hasznlhat  legyen.
   Sajnos  a hlzati tervezk nem igazn rtenek egyet abban, hogy maximlisan
   mekkora lehet egy csomag  mrete.   Az  Ethernet hlzatoknl ez 1500 oktet.
   Az Arpanet maximum 1000 oktet  krli  csomagokkal  dolgozik.   Egyes  gyors
   hlzatoknl  a  csomagmret  ennl  jval nagyobb lehet.  Az els tlet az,
   hogy az IP  egyszeren  a  lehet  legkissebb  csomagmrettel dolgozzon.  Ez
   azonban a hatsfokot jelentsen rontan.   Nagy  llomnyok  esetn  ugyanis
   sokkal  eredmnyesebb  a  nagyobb  csomagmret.   Ezrt  a lehet legnagyobb
   mretet akarjuk  elrni,  de  gy,  hogy  a  csak  kissebb  mreteket kezel
   hlzatok is rszt vehessenek az adatforgalomban.  A kvetkez  kt mdszer
   szerint  jrnak  el.   A TCP-t gy terveztk, hogy kpes a datagramm mretet
   egyeztetni (negotiate).  Ez azt jelenti,  hogy a TCP kapcsolat felptsekor
   mindkt oldal kzli a msikkal az ltala kezelhet maximlis mretet, majd a
   tovbbiakban a kissebbiket hasznljk. gy a nagyobb  datagrammokat  kezelni
   kpes   megvalstsok   azokat   hasznljk,   de   ugyanakkor   a  kissebb
   datagrammokat ismer  implementcikkal  is  szt  rtenek.   A problma mg
   korntsem megoldott.  Ugyanis a kt oldal nem  felttlenl  tudja,  hogy  mi
   trtnik  a  datagrammokkal  tkzben.   Pldul  a  Rutgers  s  a Berkeley
   egyetemek kztti adatforgalom  esetn  valszn, hogy mindkett szmtgp
   Ethernet alap hlzaton helyezkedik el.  Ezrt mindketten megrtik az  1500
   oktetes   datagrammokat.   tkzben   az   adatok  az  Arpanet-en  keresztl
   tovbbtdnak.  Ez a  hlzat  nem  tud  1500 oktetes datagrammokat kezelni,
   ezrt azokat fragmentlnia, trdelni kell.  Az IP fejlc mezi jelzik, ha  a
   datagramm fragmentlt, s az sszeraksra vonakozan is elegend informcit
   tartalmaznak.   Ha  egy  tjr  egy  Ethernet  alap hlzatot kt ssze az
   Arpanet-tel, akkor annak kpesnek kell lennie 1500 oktetes Ethernet csomagok
   fogadsra  s  azok   Arpanet   mretv   trdelsre.   A  TCP/IP  minden
   megvalstsnak kpesnek kell lennie a darabok  fogadsra  s  az  eredeti
   datagramm sszeraksra (reassembly).
   
   A   TCP/IP   implementcik  klnbznek  egymstl  a  datagramm  mretnek
   megvlasztsban, azonban a  szabvny  szerint  legalbb  576 oktet nagysg
   datagrammokat vlasztanak, ha nem biztosak abban,  hogy  a  nagyobb  mretet
   tkzben  mindenhol  megrtik.   Ez az elgg konzervatv megkzelts abbl
   fakad, hogy az sszerakst  megvalst  kdok  sokszor hibsak.  A tervezk
   kerlni igyekeznek a fragmentlst.  Mindegyikk msknt gondolkodik  arrl,
   hogy  mikor  biztonsgos a nagyobb mret.  Nhnyan csak a loklis hlzatra
   esksznek, de vannak olyanok  is,  akik  az egsz hlzatra kiengednek ilyen
   datagrammokat.   Az  576  oktet  elgg  biztonsgos  ahhoz,  hogy  mindenki
   tmogassa.
   
   
   
   9. Az Ethernet s az ARP
   
   
   A korbbiakban rviden kitrtnk arra, hogy az  Ethernet  alap  hlzatokon
   hogyan  nz  ki  egy  IP  fejlc.   Sz  volt  az  Ethernet  fejlcrl s az
   elenrzsszegrl is.  Azt azonban  nem  tudtuk  meg,  hogy egy adott IP cm
   esetn milyen Ethernet cmet hasznljunk.  Erre a krdsre egy protokoll, az
   ARP (address resolution protocol --  cmlekpezsi  protokoll)  adja  meg  a
   vlaszt.   (Vigyzat:  az ARP nem IP-beli protokoll.  Az ARP datagrammok nem
                                      -25-                                    
                                                                              
   kapnak IP fejlcet.)  Tegyk fel, hogy a 128.6.4.194 rendszerrl a 128.6.4.7
   rendszerrel szeretnnk  kapcsolatba  lpni.   A  kezdemnyez  rendszer els
   lpsknt azt tallja, hogy a  128.6.4.7  is  ugyanazon  az  Ethernet  alap
   hlzaton   tallhat.    Msodik  lpsknt  a  128.6.4.194  megnzi,  hogy
   szerepel-e a sajt ARP tblzatban a 128.6.4.7 cmen bejegyzs (a 128.6.4.7
   Ethernet cme).  Ha igen, akkor a datagrammhoz egy Ethernet fejlcet csatol,
   s  elkldi.   Tegyk  fel  azonban,  hogy  nincs  ilyen  bejegyzs  az  ARP
   tblzatban. gy  a  csomagot  nem  lehet  elkldeni,  hiszen  nincs  meg az
   Ethernet cm.  Itt jn be az ARP.   A  128.6.4.169  rendszer  egy  "Krem  a
   128.6.4.7  Ethernet  cmt" tartalm ARP krst ad ki az Ethernet hlzatra.
   Az adott  hlzaton  minden  rendszer  figyeli  az  ARP  krseket.   Ha egy
   rendszer olyan ARP krst fog, amely r vonatkozik, akkor vlaszolnia  kell.
   A fenti pldban teht a 128.6.4.7 hallja a krst, s egy ARP zenetet kld
   a   128.6.4.169-nek,   amelynek   tartalma:    "A  128.6.4.7  Ethernet  cme
   8:0:20:1:56:34".  (Emlkeztetl:   az  Ethernet  cmek  48  bitesek.   Ez 6
   oktetet  jelent.   Megegyezs  szerint  hexadecimlis   alakban,   a   fenti
   kzpontozssal rjuk a cmeket.)  A krst ad rendszer a kapott informcit
   bejegyzi  az  ARP  tblzatba.  Az esetek nagy rszben az ARP tblzatokat
   gyorsttrknt (cache)  hasznljk:   a  rgta  nem hasznlt bejegyzseket
   kitrlik.
   
   A  fentiekbl  valszn  kiderlt,  hogy  az  ARP  krseket   zenetszrs
   formjban kell a hlzatra kiadni.  Nem lehet azokat kzvetlenl a keresett
   rendszerhez  kldeni,  hiszen  a  lnyeg  ppen  a  cm  keresse.   A krs
   megfogalmazshoz a csupa egyes bitbl ll ff:ff:ff:ff:ff:ff Ethernet cmet
   hasznljk.  Megllapods szerint  az  Ethernet  alap hlzatok minden gpe
   figyeli az ilyen cmre kldtt csomagokat.  Ez  azt  jelenti,  hogy  az  ARP
   krst  is  ltja  mindegyikk.  Minden egyes gp ellenrzi, hogy a krs r
   vonatkozik-e.  Ha igen, akkor  vlaszt  kld.   Ha nem, akkor egyszeren nem
   veszi figyelembe.  (Nhny gp az ARP tblzatnak frisstsre is hasznlja
   az ilyen krseket, mg akkor is, ha az nem r vonatkozik.)  Az  zenetszr
   IP  csomagokat (pl.  255.255.255.255 vagy 128.6.4.255) is csupa egyes bitbl
   ll Ethernet cmre kell kldeni.
   
   
   
   10. Tovbbi informci
   
   
   Az  albbiakban  a  fbb  protokollokat  jellemz  dokumentumok  felsorolsa
   kvetkezik.  Mivel  tbbszz  ilyen  ltezik,  ezrt  csak a legfontosabbnak
   tnk  szerepelnek  a  felsorolsban.   Az  Internet  szabvnyokat  RFC-knek
   hvjk, ami a Request For Comments (esetleg Megjegyzst Ignyl Krs?; erre
   vrom   a   javaslatokat)   kifejezs   rvidtse.    Ha   megszletik  egy
   szabvnytervezet, akkor azt elszr ajnlsknt teszik kzz, s kap egy RFC
   szmot.  Ha vgl az ajnlst elfogadjk, akkor Hivatalos Internet Protokoll
   (Official Internet Protocols) vlik belle, de tovbbra is  az  RFC  szmmal
   hivatkoznak  r.   A  felsorolsba  kt  IEN  (Internet Engineering Notes --
   Internet Mszaki Jegyzet) is bekerlt.  (Az IEN a hivatalos dokumentumok egy
   msik osztlyozsa volt.  Ezt ma  mr  nem hasznljk -- az sszes hivatalos
   Internet dokumentumot RFC-knt szmozzk.  A hivatalos rsokra ltezik  egy
   levelezsi  lista  is.)   Megllapods  szerint minden RFC j szmot kap, ha
   tdolgozzk.   Kt  fontos  RFC,  az  "Internet  Szmok"  (RFC  1166)  s  a
                                      -26-                                    
                                                                              
   "Hivatalos Internet Protokollok" (RFC 1011)  a tartalma miatt nagyon gyakran
   vltozik.  A legutbbi verzi szma az rfc-index.txt-ben tallhat  meg.   A
   TCP/IP  irnt  rdekldknek  javasolt az IP-t ler RFC 791 tanulmnyozsa.
   Az RFC 1812, 1716 s  1009  szintn  hasznos lehet.  Ezekben az NSFnet ltal
   hasznlt tjrk specifikcija,  valamint  az  tvonal-vlaszts  szerepel.
   Mint  ilyen,  rengeteg,  TCP/IP  technolgival kapcsolatos rszt tartalmaz.
   rdemes ttanulmnyozni legalbb egy  alkalmazi  protokollt, hogy rezzk a
   dolog gyakorlati rszt is.  Erre taln a legjobb a levelezs  lersa  (RFC
   821/822).   A  TCP (RFC 793) persze alapmnek szmt.  A specifikci elgg
   sszetett, gy ennek  tanumnyozsa  csak  akkor  javasolt,  ha  elg id s
   trelem  ll  rendelkezsnkre  a  figyelmes  olvasshoz.   Szerencsre  Jon
   Postel, a fbb RFC-k szerzje, nagyon jl r.  A TCP RFC-t  sokkal  knnyebb
   olvasni, mint ahogy azt a tartalma alapjn gondolnnk.  Idvel a tbbi RFC-t
   is btran nzegessk.
   
   Kvetkezzen teht a felsorols:
   
       rfc-index.txt   az sszes RFC listja
   
       rfc1122/3       Kvetelmnyek az Internet hosztok  fel.  Tbb protokoll
                       ttekintse.  A protokollok  gyenginek, a gyrtk ltal
                       elfogadott   konvenciknak,   a   gyakorlatban   fellp
                       problmknak, a problmk megoldsainak a listja.   Egy
                       adott protokoll  tanulmnyozsa  sorn  ne felejtsk el
                       figyelmesen tnzni, mert a  protokollokat  ler  rfc-k
                       ezeket   az  informcikat  nem  tartalmazzk.   Ugyanez
                       vonatkozik az rfc1009-re is.
   
       rfc1012         az RFC-k teljesebb listja
   
       rfc1011         Hivatalos Protokollok.  Hasznos az tbngszse,  hiszen
                       itt  olvashat, hogy milyen feladatot ltnak el az egyes
                       protokollok.   Lerja  tovbb,  hogy  melyik  RFC  vlt
                       szabvnny.
   
       rfc1010         Kiosztott  Szmok.   Az  Internet-tel  dolgozva  gyakran
                       lehet  erre  referenciaknt  szksg.  Olvasni nem olyan
                       izgalmas.  A  hivatalosan  definilt jl-ismert szmokat
                       s  egyebeket  listzza.    A   legutbbi  vltozata  az
                       rfc1700 Internet Szmok nevet viseli.
   
       rfc1009         Kvetelmnyek az Internet tjrk fel. Jl  hasznlhat
                       bevezetst   nyjt  az  IP  tvonal-vlasztshoz  s  az
                       tjrkhoz. (Lsd mg: rfc1716, rfc1812.)
   
       rfc1001/2       netBIOS: hlzattervezs PC-vel
   
       rfc973          tartomnyok  aktualizlsa.   Ezen  a   tren   sok   j
                       informci  jelent  meg.   Az  rfc1034  s rfc1035 jabb
                       verzit   jellnek.   Ezek   aktualizlsa  az  rfc1101,
                       rfc1876 s az rfc1348, rfc1637, rfc1706.
   
       rfc959          FTP (llomnytvitel)
                                      -27-                                    
                                                                              
   
       rfc950          alhlzatok
   
       rfc937          POP2: levelek olvassa PC-n
   
       rfc894          IP tovbbtsa Ethernet-en, lsd az rfc826-t is
   
       rfc882/3        tartomnyok  ('hosztnv  <-->  IP  cm'   megfeleltets,
                       UUCP). Lsd mg: rfc973.
   
       rfc854/5        telnet -- a tvoli bejelentkezs protokollja
   
       rfc826          ARP -- Ethernet cmek lekpezsi protokollja (IP cmre)
   
       rfc821/2        levelezs -- ennek legutbbi  verzija az rfc1495. (Lsd
                       mg:  rfc987, rfc1148, rfc1327 s rfc1026, rfc1138.)
   
       rfc814          nevek s port-ok -- ltalban az ismertebb port-okrl
   
       rfc793          TCP
   
       rfc792          ICMP
   
       rfc791          IP
   
       rfc768          UDP
   
       rip.doc         a  legjobban  elterjedt   tvonal-vlasztsi   protokoll
                       rszletei (--> RFC 1058)
   
       ien-116         rgebbi nvkiszolgl (pr rendszer mg hasznlja)
   
       ien-48          Catenet  modell,  a  TCP/IP  mgtti filozfia ltalnos
                       ismertetse
   
   A kvetkez dokumentumok egy-egy szkebb terletre specializldtak:
   
       rfc813          TCP ablak, s nyugtzsi stratgik
   
       rfc815          datagramm sszeraksi technikk
   
       rfc816          hibakizrsi s -feloldsi mdszerek
   
       rfc817          modularits s hatkonysg az implementcikban
   
       rfc879          a TCP maximlis szegmensmret opcija
   
       rfc896          torldsszablyozs
   
       rfc827,888,904,975,985
                       EGP  (Exterior  Gateway  Protocol)  s azzal kapcsolatos
                       tmk
   
                                      -28-                                    
                                                                              
       rfc968          A 'Twas the Night Before Start-up cm szellemes verset
                       olvashatjuk, melyben a szerz a hlzatok teleptsekor
                       felbukkan problmkat ecseteli.


   A legfontosabb RFC-k hrom ktetes gyjtemnye a DDN Protocol Handbook  (DDN
   Protokoll Kziknyv, 1985; ~12 cm vastag), amely a DDN  Network  Information
   Center, SRI International, 333 Ravenswood  Avenue,  Menlo  Park,  California
   94025 (telefon: ++1-800-235-3155) cmen rendelhet. Az RFC-k  anonim FTP-vel
   is elrhetk a NIC.DDN.MIL cmen. A dokumentumok nevei:
   
       RFC:
           /rfc/rfc-index.txt
           /rfc/rfcN.txt, ahol N a krt RFC szma
   
   Ajnlott mg az InterNIC Directory and  Database  Services,  ds.internic.net
   kiszolgl   anonim   FTP   elrse.    A   keresett   RFC  dokumentumok  az
   rfc/rfc####.txt vagy rfc/rfc###.ps nevek  alatt  tallhatak,  ahol a #### a
   krt RFC szma (kezd  nullk  nincsenek  benne).   Ugyanezen  kiszolgltl
   levlben  is  krhet  a  szolgltats.  A mailserv@ds.internic.net cmre az
   albbi zenetet kell kldeni:
   
       document-by-name rfcNNNN
   
   Itt az NNNN a  krt  rfc  szma.   Amennyiban  postscript formtumban kell a
   szveg, akkor a
   
       document-by-name rfcNNNN.ps
   
   zenetet kell kldeni.  Tbb RFC esetn azokat vesszvel vlasszuk el,  vagy
   minden krst j sorba rjunk. Pl.:
   
       document-by-name rfc1791, rfc1792
   
   vagy
   
       document-by-name rfc1791
       document-by-name rfc1792
   
   A rip.doc anonim FTP-vel letlthet az src.doc.ic.ac.uk cmrl  /rfc/rip.doc
   nven.  Ajnlatos az  ftp://src.doc.ic.ac.uk/rfc/ cmen rendesen krlnzni,
   mert rengeteg, hlzattal kapcsolatos dokumentci tallhat itt.  Vigyzat:
   a knyvtr listja nagyon hossz !

   Magyarorszgon az ftp://sunserv.kfki.hu/pub/documents/rfc/  cmen rhetk el
   a klnbz rfc dokumentumok.
   
                                      -29-                                    

