26. telnet un rlogin

Pēdējais mainījis Administrator 2011-06-06 17:16

26. telnet un rlogin

26.01 Ievads

#term("Attālinātais logins", "remote_login") ir viens no populārākajiem Interneta lietojumiem. Tai vietā, lai ikvienam hostam būtu terminālis pie kura fiziski jānokļūst, mēs varam ielogoties jebkurā hostā un tad attālināti ielogoties jebkurā citā hostā, ja vien, protams, mums ir #term("lietotāja konts", "account") uz tā.

Divas populāras aplikācijas nodrošina attālināto loginu visa veida TCP/IP internetos.

  1. telnet ir standartaplikācija, ko piedāvā gandrīz ikviena TCP/IP implementācija. Tā strādā starp hostiem arī ja tie lieto dažādas operētājsistēmas. telnet izmanto opciju vienošanos starp klientu un serveri, lai noskaidrotu, kādas iespējas katrs komunikāciju gals var nodrošināt.
  2. rlogin ir no Bērlija UNIX'a un tika veidots, lai darbotos tikai UNIX sistēmās, bet tagad tas ir noportēts arī uz citām operētājsistēmām.
Šajā nodaļā aplūkosim gan telnet, gan rlogin. Vispirms aplūkosim rlogin, jo tas ir vienkāršāks. telnet ir viena no senākajām Interneta lietojumprogrammām, kas pastāv kopš 1969.gada ARPANET'ā. Tās vārds ir saīsinājums, kas nozīmē "telekomunikāciju tīkla protokols" (telecommunications network protocol).

Attālinātais logins izmanto klienta-servera paradigmu. 26.1.attēls parāda tipisku telnet klienta un servera izkārtojumu. (Par rlogin klientu un serveri varētu uzzīmēt līdzīgu attēlu):

#pic("f_26_1.gif", "300")
26.1.attēls: Telnet klienta-servera darbības pārskats

Par šo attēlu jāpiebilst vairākas lietas:

  1. telnet klients mijiedarbojas gan ar lietotāju pie termināļa, gan ar TCP/IP protokoliem. Parasti viss, ko mēs ievadām terminālī tiek nosūtīts pa TCP savienojumu, un viss, ko konekcija atgriež, tiek parādīts uz termināļa.
  2. telnet serveris bieži strādā ar t.s. #term("pseidotermināļa", "pseudo_terminal") ierīci, vismaz UNIX'a sistēmās. Tas rada šķitumu logina #term("čaulā", "shell") un programmās kuras darbojas logina čaulā, ka viss, kas tiek darīts uz servera, ka faktiski komunicēšana notiek ar pašu #term("termināļa iekārtu", "terminal_device"). Dažu aplikāciju, piemēram, pilnekrāna redaktoru pieņēmums, ka viņi runā ar termināli, ir viens no grūtākajiem programmēšanas aspktiem, programmējot attālinātā logina serveri.
  3. Tiek izmantota tikai viena vienīga TCP konekcija. Ņemot vērā telnet klienta un servera savstarpējo "sarunāšanos", ir jānosaka veids, kā atšķirt telnet infrastruktūrai vajadzīgās komandas no lietotāja saturiskajiem datiem. Mēs redzēsim kā telnet un rlogin risina šīs lietas.
  4. #picref("f_26_1.gif", "26.1.attēlā") parādītas iesvītrotas kastītes, lai apzīmētu to, ka termināļu un pseidotermināļu draiveri līdz ar TCP/IP implementāciju parasti ir operētājsistēmas kodola sastāvdaļa. Savukārt telneta klients un serveris bieži vien ir lietotāju aplikācijas.
  5. Uz servera hosta ir attēlota logina čaula, lai uzsvērtu to, ka mums jāpielogojas serverim. Mums jābūt lietotāja kontam uz servera sistēmas - gan lietojot telnet, gan rlogin
Ir interesanti salīdzināt telnet un rlogin sarežģītību, apskatot izejas teksta rindiņu skaitu, kas nepieciešamas klienta un servera realizācijai. 26.2.attēls parāda šo rindiņu skaitu standarta telnet un rlogin klientam un serverim, atkarībā no Bērklija distribūcijas (#picref("f_1_10.gif", "1.10.attēls")).

#pic("f_26_2.gif", "300")
26.2.attēls: Salīdzinājums starp telnet/rlogin klientu un serveri pēc izejas teksta rindiņu skaita.

Jaunu opciju nemitīgā pievienošana liek telnet implementācijai augt lielākai, kamēr rlogin paliek salīdzinoši vienkāršs un stabils.

Attālinātais logins nav liela apjoma datu pārsūtīšanas aplikācija. Kā jau minējām, abas galu sistēmas parasti apmainās ar daudzām mazām paketēm. [Paxson 1993] konstatē, ka attiecība starp baitiem, ko sūta klients (t.i. lietotājs, kurš ievada informāciju terminālī) pret tiem baitiem, ko serveris sūta atpakaļ ir aptuveni 1:20. Tam iemesls ir tāds, ka mēs ievadām īsas komandas, kuras bieži ģenerē lielu izvadi.

Tagi:
Izveidojis Kalvis Apsītis 2008-03-22 10:07
    
This wiki is licensed under a Creative Commons 2.0 license
XWiki Enterprise 6.4 - Documentation