Wiki source code of 26. telnet un rlogin

Last modified by Valdis Vītoliņš on 2018/01/15 21:44

Show last authors
1 = 26. telnet un rlogin =
2
3 == 26.01 Ievads ==
4
5 //Attālinātais logins// 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 //lietotāja konts// uz tā.
6
7 Divas populāras aplikācijas nodrošina attālināto loginu visa veida TCP/IP internetos.
8
9 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.
10 1. ##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.
11
12 Š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//).
13
14 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):
15
16 {{velocity filter="none"}}
17 {{html clean="false" wiki="true"}}
18 #pic("f_26_1.gif", "300")
19 //26.1.attēls: Telnet klienta-servera darbības pārskats//
20 <p/>
21 Par šo attēlu jāpiebilst vairākas lietas:
22
23 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.
24 1. ##telnet## serveris bieži strādā ar t.s. //pseidotermināļa// ierīci, vismaz UNIX'a sistēmās. Tas rada šķitumu logina //čaulā// un programmās kuras darbojas logina čaulā, ka viss, kas tiek darīts uz servera, ka faktiski komunicēšana notiek ar pašu //termināļa iekārtu//. 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.
25 1. 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.
26 1. #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.
27 1. 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##
28 <p/>
29 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")).
30 <p/>
31 #pic("f_26_2.gif", "300")
32 //26.2.attēls: Salīdzinājums starp ##telnet/rlogin## klientu un serveri pēc izejas teksta rindiņu skaita.//
33 {{/html}}
34 {{/velocity}}
35
36 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.
37
38 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.