Cho đến nay, tôi đã xem xét những cách chắc chắn, chậm rãi để truyền thông với người khác và các máy tính khác. Nhưng xem đấy, thư vẫn là thư
Trang 1Làm hài lòng tức thời.
Trong phần này
Cho đến nay, tôi đã xem xét những cách chắc chắn, chậm rãi để truyền thông với người khác và các máy tính khác Nhưng xem đấy, thư vẫn là thư Đi xuống xem hộp thư vẫn thú vị đấy thôi? Trong phần này, bạn bắt đầu dùng Internet để truyền thông trong-khi-chờ-đợi Nếu bạn muốn hài lòng tức thời (thời buổi này ai chẳng muốn?), hãy đọc tiếp
Điều tốt kế tiếp cho việc ở tại đó
Trong chương này
Làm thế nào để có thể cùng lúc ở hai nơi
Cho đến nay, các dịch vụ Internet tương tác được dùng rộng rãi nhất là các hình thức login từ xa Những dịch vụ này làm việc gì?, đơn giản là: bạn login vào một máy chủ ở xa (đối với máy tính gọi là telnet) như thể là trạm cuối của bạn (trạm làm việc hoặc PC hoặc gì đi nữa) được nối trực tiếp vào máy chủ đó Bởi vì tất cả các máy chủ trên Internet một cách chính thức là tương đương nhau, bạn có thể login vào một máy chủ ở phía bên kia của thế giới cũng dễ như là login vào cái
ở dưới nhà, khác biệt duy nhất là login vào một máy chủ ở xa có thể lâu hơn một tí
Mặc dù telnet, chương trình login từ xa thường dùng nhất, về nguyên tắc thì
tự nó là đơn giản, vì các máy tính thường bao gồm sự đơn giản, không giống như trước kia Để chạy telnet, bạn gõ vào telnet theo sau là tên của máy chủ mà bạn muốn login vào Nếu mọi việc tốt đẹp, khi đó bạn sẽ nối được vào máy chủ đó
Trong ví dụ sau đây, tôi telnet từ máy tính ở nhà tôi, với tên tôi (Nhưng xin lỗi là tôi không thể nói cho bạn biết mật khẩu của tôi được Sorry)
% telnet iecc.com
Trying 140.186.81.1 Connected to iecc.com
1
Trang 2Escape character is '^]'.
System V UNIX (iecc)
login: johnl
Password:
Terminal type (default VT100):
Chú ý vài điểm như sau:
mà nó nối tới Nếu bản của bạn cũng vậy, hãy lưu ý con số đó đề phòng trường hợp
có gì phiền toái sau này trong việc nối mạng
chìa khoá bí mật để cứu bạn ra khỏi máy chủ ở xa nếu nó trở nên ngoan cố và không làm điều gì hữu ích nữa
UNIX, là ^], có nghĩa là bạn bấm và giữ phím Ctrl và bấm phím ] (ký tự đóng ngoặc vuông trên bàn phím)
ký tự thoát cho mục đích riêng của nó, bạn có thể chọn một ký tự thoát khác Xem phần bên lề "Đưa telnet vào dòng" trong phần sau của chương này
Sau khi bạn login vào, bạn có thể làm việc khá tốt như thể bạn được nối trực tiếp vào máy chủ đó Khác biệt duy nhất là các ký tự mất một lúc lâu hơn để hiện
ra trên màn hình - khoảng 1 giây hoặc hơn Trong đa số trường hợp, bạn cứ việc gõ tiếp dù các ký tự gõ vào vẫn chưa xuất hiện trên màn hình: rồi máy chủ từ xa cũng nhận hết thôi
Điên vì các loại trạm cuối
Nếu bạn dùng một chương trình toàn màn hình, như trình soạn thảo văn bản
emacs và vi trên UNIX hoặc các chương trình thư tín như elm và pine, bạn cần
định ra loại trạm cuối Có thể lần đầu không gặp vấn đề này Nhưng nếu nó xảy ra, bạn phải đối phó
2
Trang 3Vấn đề là ở chỗ có khoảng chừng một tá qui ước khác nhau trong việc kiểm soát màn hình chẳng hạn như xoá màn hình, di chuyển đến vị trí (x,y) v.v Chương trình trên máy chủ từ xa phải dùng cùng một loại qui ước như trên trạm cuối của bạn (nếu bạn dùng một trạm cuối) hoặc như chương trình trên trạm cuối địa phương (nếu bạn dùng một PC hoặc trạm làm việc)
Nếu các qui ước không giống nhau, bạn sẽ nhận rác (các ký tự hình thù đáng sợ) trên màn hình khi bạn thử sử dụng một chương trình toàn màn hình Trong đa
số trường hợp, hệ thống từ xa hỏi bạn dùng trạm cuối gì Mẹo là phải biết câu trả lời đúng
chương trình trạm cuối PC dùng các qui ước trạm cuối ANSI (ANSI viết tắt cho American National Standard Institute - Viện tiêu chuẩn quốc gia Mỹ Một trong hàng ngàn các tiêu chuẩn của nó định ra một bộ các qui ước kiểm soát trạm cuối
mà các PC dùng MS-DOS - nếu chúng không dùng các qui ước này thì chắc cũng không biết thêm một chuẩn nào khác - dùng theo nhiều kiểu khác nhau
câu trả lời đa số là VT-100, một trạm cuối phổ biến từ những năm 70 và nay trở thành một chuẩn thật sự
3101, một trạm cuối lúc đầu của IBM mà cũng khá phổ biến
Các qui ước ANSI và VT-100 cũng không khác nhau lắm, thành ra nếu bạn dùng hệ này mà thấy màn hình không chỉnh lắm thì thử hệ kia xem
Nhiều hơn những gì bạn muốn biết về loại trạm cuối
Trở về những ngày tốt đẹp trước kia - khoảng năm 1968 - chỉ có một loại trạm cuối được dùng: một loại máy đánh máy từ xa mang nhãn hiệu Teletype Các máy Teletype, hậu duệ trực tiếp của các máy gõ tin từ xa (giống như trong các bộ phim cũ về việc làm báo), thật là đơn giản Có nghĩa là chúng đơn giản về mặt ý niệm - về mặt vật lý, chúng có những cơ phận chuyển động nhiều không thể tưởng
3
Trang 4Những việc duy nhất những máy này làm ngoài việc đơn thuần gõ chữ vào là di chuyển xuống dòng và reng chuông
Sau đó người ta nhận thấy rằng có thể kết hợp một bàn phím với một màn hình có thay đổi tí chút để có một trạm đầu cuối dùng màn hình Hàng tá các nhà chế tạo xuất hiện, đa số hiện nay đã bị lãng quên, tất cả đều thuyết phục rằng bạn
có thể làm tốt hơn nhiều với một trạm cuối dùng màn hình thay cho một máy Teletype Ví dụ, bạn có thể xoá màn hình, đặt chữ vào những chỗ riêng biệt, di chuyển chữ lên xuống - tất cả những việc vặt vãnh Lúc đó mỗi nhà chế tạo đều dùng những ký tự còn để ngỏ làm các ký tự điều khiển để làm các chức năng đặc biệt này Tự nhiên là không có 2 trạm cuối nào dùng chung một phép gán
Trong lúc đó, trên một hành tinh nhỏ ở rất xa, xa , oop, xin lỗi, sách viết nhầm Trong lúc đó, ở Berkeley, California vào cuối những năm 70, hình thành những gì bây giờ gọi là hệ thống UNIX Berkeley Những người ở Berkeley đã sưu tầm vừa nhiều vừa linh tinh những trạm cuối không tương thích UNIX Berkeley nên hỗ trợ trạm cuối nào? Đây chính là chỗ lắt léo: Những trạm cuối thì phải mua
từ bên ngoài và tốn tiền thật sự, trong khi phần mềm thì do sinh viên viết và không tốn tiền Một cách tự nhiên là họ hỗ trợ tất cả các loại trạm cuối có trong khuôn viên trường, sử dụng các cơ sở dữ liệu lớn chứa hàng trăm loại trạm cuối với các chuỗi điều khiển riêng biệt cho mỗi loại
Đầu những năm 80, rõ ràng những trạm cuối thống trị trong thị trường không-phải-IBM là loại DEC VT-100 Nhiều trạm cuối nhái kiểu bắt đầu xuất hiện
và hiểu chính xác cùng chuỗi ký tự điều khiển như VT-100, thành ra chúng hoạt động được ở nơi nào có VT-100 hoạt động ANSI, tổ chức chịu trách nhiệm về chuẩn kỹ thuật ở Mỹ, đã coi chuỗi điều khiển gần như đồng nhất với chuỗi của
VT-100 là chuẩn chính thức
4
Trang 5Bây giờ thì bạn có thể giả sử tất cả các trạm cuối là 1 VT-100 đúng không? Vâng không phải vậy Thứ nhất là nhiều trạm cuối cũ đã không chịu chết Lý do nữa là các nhà chế tạo trạm cuối đã đi xa hơn VT-100, thêm vào những đặc tính như màu và đồ hoạ mà VT-100 không có Vì thế phần lớn các trạm cuối bây giờ chỉ tương thích với ANSI không ít thì nhiều, và có những thiếu sót riêng của chúng Thế giới bị mắc kẹt trong tình trạng nhiều loại trạm cuối trong một tương lai sắp đến Nhưng lúc này, nếu bạn không biết loại trạm cuối của bạn, tốt nhất là đoán xem hoặc VT-100 hoặc ANSI
Về một cố gắng thất bại khác để chuẩn hoá các trạm cuối, xem phần bên lề Các Trạm Cuối ảo Trên Mạng ở phần sau của chương này
Tùy theo phiên bản telnet chỗ bạn thực hiện tốt như thế nào, nó có thể bảo cho hệ thống ở xa biết về loại trạm cuối bạn đang dùng Nếu may mắn thì bạn
không cần phải định ra trạm cuối, hoặc chỉ cần bấm y khi nó hỏi Terminal type VT100 OK?
Giúp tôi với! Tôi đã Telnet và không thể thoát ra được!
Cách bình thường để rời khỏi telnet là logout khỏi máy chủ từ xa Khi bạn logout, máy chủ từ xa đóng đầu nối với telnet, do đó báo cho chương trình telnet biết là xong rồi Bình thường thì dễ thôi Nhưng thỉnh thoảng đầu kia bị kẹt và không chú ý đến những gì bạn gõ vào Hoặc giả nó không kẹt thường trực luôn, nhưng máy chủ trả lời cho bạn quá chậm đến nỗi bạn không muốn đợi nữa (Điều này đôi khi xảy ra do nghẽn đường mạng giữa máy bạn và máy chủ)
Một vài phiên bản của phần mềm máy chủ, tôi không nêu tên vì những lý do giấu-nghề, tự làm nó chậm hơn hẳn do tắt đường gây ra Nên bạn phải biết làm thế nào để thoát ra khỏi telnet Lúc này phải cần đến ký tự thoát ma quái
sau vài giây không có gì xảy ra, cũng thử bấm Enter xem.) Telnet có thể quay trở lại với 1 dấu nhắc cho biết là có nó đó
5
Trang 6sẽ thấy như sau:
^]
telnet> quit
Connection closed
Bạn có thể dùng đến hàng tá lệnh telnet khác (bấm ? để xem chúng) nhưng không có lệnh nào trong số đó gần gũi và hữu dụng như là lệnh quit
Các trạm cuối được phục vụ ở đây
Có một loại máy chủ chuyên dụng trên Internet gọi là terminal server (máy phục vụ cho trạm cuối) Về cơ bản, terminal server là một máy tính nhỏ có một số thiết bị truyền modem hoặc các cổng có nối dây, và đời nó chỉ là để telnet với các máy chủ khác Điều này chỉ có ý nghĩa nếu bạn có nhiều trạm cuối trong văn phòng, hoặc có nhiều người gọi đến qua điện thoại, bởi vì nó cho phép nhiều trạm cuối nối vào một mạng với giá rẻ (Các terminal server được hoàn chỉnh đến mức dùng một máy có sức tính của 1 PC năm 1985 cũng có thể xử lý được đến 30 liên kết với thiết bị modem với tốc độ mỗi cái 14,000 bps)
Dùng một terminal server cũng giống như login vào một máy tính suy nghĩ đơn giản (thật sự nó là như vậy) Bạn quay số vào và phải nhập vào một mật khẩu
để tránh trường hợp một hacker 12-tuổi login vào một cách ngẫu nhiên (về vấn đề này thì hacker ở độ tuổi nào cũng như nhau) Sau đó bạn gõ vào tên của máy chủ
mà bạn muốn nối tới, và coi như telnet rồi Sau đây là một phiên làm việc trên một terminal server Cisco điển hình:
User Access Verification Password: *****
TS>iecc.com
Translating "IECC" domain server (155.189.247.101) [OK]
Trying IECC.COM (140.186.81.1) Open System V UNIX (iecc)
login:
regular telnet session deleted here
[Connection to IECC.COM closed by foreign host]
TS>
6
Trang 7Các terminal server có các ký tự thoát giống như các chương trình telnet bình thường, mặc dù chúng khó đoán hơn Ký tự thoát cho một máy server Cisco bình thường luôn có 2 ký tự, Ctrl - ^ (thường gõ vào là Ctrl-Shift-6), theo sau là một chữ x viết thường Các terminal server có nhãn khác thì có ký tự thoát cũng khác; hỏi ở chỗ bạn xem phải dùng ký tự nào
Phần lớn các terminal server có một bộ lệnh nhỏ để hiểu cách làm việc quen thuộc hoá của bạn Bấm ? thay cho một tên máy chủ để xem nó nói gì
Các PC để một mình thì không đủ tốt
Nếu bạn dùng một Macintosh, một PC chạy Microsoft Windows, hoặc một
hệ window nào khác, bạn khởi đầu telnet hơi khác so với hệ UNIX Bạn bắt đầu telnet từ một biểu tượng, và window sẽ hiện lên một thực đơn chọn lựa phía trên Một trong các chọn lựa thường là Connect (hoặc tương tự như vậy) Nháy vào chọn lựa đó, gõ tên máy chủ hoặc chọn trong 1 danh sách, rồi cứ thế mà đi
Hình 14-1 chỉ ra cùng một buổi làm việc như đã trình bày ở phần trước trong chương này, nhưng lần này là từ một máy với Windows Hệ window thì không có
ký tự thoát vì bạn thoát các kiểu đều thực hiện từ thực đơn của chương trình Ví dụ
để thoát khỏi một máy chủ ngoan cố ở xa, nháy vào một mục trên thực đơn là Disconnect (hoặc tương tự)
Hình 14-1: Telnet từ Microsoft Windows (Copy/Scan)
Đưa telnet vào dòng
Bạn có thể bảo telnet thay đổi cách làm việc của nó theo một số cách Hai cách đáng chú ý nhất là bật tắt chế độ local echo và chế độ dòng Local echo có nghĩa là các ký tự bạn gõ vào được máy chủ ở địa phương (là máy chạy telnet) gởi đến màn hình của bạn thay vì cái máy mà bạn telnet tới đó Nếu máy chủ ở xa đưa chữ ra màn hình chậm hoặc không đưa ra tí nào (ví dụ một vài máy chủ IBM chẳng hạn), bạn thử bật local echo lên xem Thường là bấm Ctrl-E để bật tắt local echo
Gần như tất cả các máy chủ trên Internet đều muốn xử lý các ký tự bạn gõ vào mỗi lần một ký tự Một vài kiểu cổ xưa thì xử lý từng dòng một Bạn có thể
7
Trang 8nhận ra chúng dễ dàng vì các ký tự xoá lùi không được chúng xử lý Để tránh vấn
đề đó, gõ ký tự thoát telnet, rồi gõ vào:
telnet>mode line
Dòng này bảo cho máy chủ địa phương của bạn cất các ký tự và gởi cho đi mỗi lần một dòng, xử lý các ký tự xoá lùi trước khi gởi đi Số các máy chủ xử lý theo dòng ngày càng ít Nếu bạn tìm ra một máy chủ cần đến nó, hỏi xung quanh xem bạn có xem nhầm hay không Nếu máy chủ gởi văn bản mỗi lần một màn hình, và dùng các chữ tắt như VM hay MVS (hai hệ điều hành IBM thường gặp nhất), có lẽ bạn đang chạy với một máy chủ IBM và thay vào đó, nên dùng tn3270 Xem phần "Chúng tôi đến từ IBM" sắp tới trong chương này
Không đếm xỉa tới phần thảo luận này
về các trạm cuối ảo trên mạng
Trở về năm 1983 khi telnet được xác định, những người làm việc với nó đều
ý thức rõ các chủng loại trạm cuối khác nhau Giải pháp của họ cho sự bùng nổ các trạm cuối không tương thích là định nghĩa một Trạm Cuối ảo Trên Mạng (Network Virtual Terminal - NVT) Kế hoạch là một khách hàng của telnet (tức là chương trình mà bạn chạy) sẽ đổi những ký tự điều khiển địa phương sang các mã NVT chuẩn; máy phục vụ telnet - telnet server (chương trình ở đầu kia mà làm cho bạn nối vào và làm việc như một trạm cuối trên đó) sẽ đổi mã NVT thành các qui ước địa phương ở đó Một khi mà mỗi hệ thống được cấu hình theo đúng các trạm cuối được nối một cách vật lý với nó, NVT sẽ lo mọi chuyện
Việc này không làm được Chuyện gì xảy ra? Vấn đề là telnet đến hơi sớm hơn quá, và loại trạm cuối mà họ lo là các trạm cuối in-mỗi-lần-một-dòng, đặc biệt
là các trạm cuối IBM 4 số như 2741 và 1050 Cái 2741 thì cũng chỉ hơn máy đánh chữ Selectric một tí với 1 giao diện máy tính, nhưng không hơn nhiều để có thể làm việc với tốc độ của máy tính thay vì là một người đánh máy 30 ký tự mỗi phút Tôi
đã từng làm việc trong một phòng trạm cuối trong nhiều năm có hàng tá cái 2741,
8
Trang 9và tôi không thể nhớ được chúng có làm việc cùng nhau một cách có trật tự lần nào không
NVT giải quyết đáng kể tính không tương thích giữa các máy 2741, Teletypes, Flexowriters, và nhiều trạm cuối có chức năng in khác Không may là các trạm cuối video chỉ mới phổ biến gần đây thôi, và NVT không tính đến chúng một tí nào Thành ra các người sử dụng Internet vẫn mắc kẹt với tình trạng nhiều loại trạm cuối trên tất cả các máy chủ
(Thật sự là điều đó cũng không hoàn toàn đúng Những nhà chế tạo lớn như Digital Equipment Corporation (DEC) có xu hướng chỉ hỗ trợ loại trạm cuối của
họ, thành ra nếu bạn telnet vào một hệ DEC VMS mà không dùng trạm cuối DEC hay nhái kiểu, bạn coi như thua May mắn là các VT-100 ở đâu cũng có là do DEC làm ra)
Bất kỳ cổng nào trong một cơn bão
Khi bạn telnet vào một máy chủ ở xa, bạn phải chọn không chỉ máy chủ mà còn một cổng trên máy chủ đó Cổng là một con số nhỏ chỉ ra bạn muốn dùng dịch
vụ nào Cổng thường dùng cho telnet (vì những lý do lịch sử mờ ám) là số 23, được coi có nghĩa là bạn muốn login vào máy chủ đó Bạn chọn một cổng khác bằng cách đặt tên cổng sau tên máy chủ như sau:
telnet ntw.org 13
Cổng 13 là cổng giờ trong ngày Nó nói cho bạn ý kiến của máy chủ về giờ trong ngày rồi thoát ra Đây không phải là có ích ghê gớm lắm nhưng đôi khi bạn cũng muốn biết giờ địa phương chỗ máy chủ đó
Một vài máy chủ được định sẵn để telnet bình thường vào cổng 23 sẽ hiện ra dấu nhắc cho người sử dụng bình thường của hệ thống, trong khi telnet vào cổng khác sẽ dẫn vào một hệ thống đặc biệt, có thể dùng một cách công cộng Một vài
hệ thống trong số này được đề cập đến ở chương 15
Chúng tôi đến từ IBM và chúng tôi biết cái gì tốt cho bạn
9
Trang 10Tất cả các loại trạm cuối đã đề cập đến do telnet xử lý đều là các Teletypes
đã tăng tốc, với dữ liệu truyền từng ký tự một giữa máy chủ và trạm cuối Loại tương tác trạm cuối này được gọi là loại Teletype
IBM đã phát triển một hệ thống khác hoàn toàn cho loạt trạm cuối 3270 của
nó Nguyên tắc là cho máy tính chịu trách nhiệm Mô hình này hoạt động hơi giống như điền vào đơn từ Máy tính vẽ ra những gì nó muốn trên màn hình, đánh dấu những phần nào người sử dụng có thể gõ vào, và mở khoá bàn phím để người sử dụng có thể điền vào chỗ trống nào mà họ thích Khi người sử dụng bấm Enter, trạm cuối sẽ khóa bàn phím, chuyển phần màn hình thay đổi về cho máy tính, và đợi những chỉ thị mới từ trung ương
Công bằng mà nói, đây là cách hoàn hảo hợp lý cho các trạm cuối chỉ đơn thuần phục vụ việc nhập dữ liệu và truy xuất cho các chương trình ứng dụng Trạm cuối để bàn ở các Ngân hàng, công ty điện lực, có thể là loại 3270, hoặc bây giờ thường là các máy 3270 mô phỏng PC rẻ tiền Giao thức truyền thông của trạm cuối 3270 làm việc tốt hơn nhiều trên đường dây điện thoại so với các máy Teletype, thành ra thường là cho tất cả các trạm 3270 trong một văn phòng dùng chung một đường dây điện thoại, với một mức hoạt động hợp lý
Internet thì lớn, và có nhiều máy lớn IBM chạy các chương trình ứng dụng trên nó Một vài trong số đó thì rất hữu ích Ví dụ như phần lớn các danh mục thư viện đều nói tiếng 3270 Thông thường, nếu bạn telnet vào một hệ thống dùng
3270, nó chuyển tiếng Teletype của telnet thành tiếng 3270 để rồi bạn cũng dùng
nó được Nhưng một vài hệ 3270 chỉ nói được tiếng 3270, và nếu bạn telnet vào đó, hoặc nó sẽ nối hoặc không chứ không có chuyện nửa chừng
Một biến thể của telnet nói tiếng 3270 gọi là tn3270 Nếu bạn thấy một hệ thống cứ bị không nối được, hoặc nếu bạn thấy những hình toàn màn hình như ở hình 14-2, thử đánh lệnh tn3270 xem
Hình 14-2: Dùng tn3270 để login vào danh mục thư viện trường Hardvard.
Login từ xa: Điều tốt kế tiếp để đến đó
10