====== Протоколы прикладного уровня ====== Почему существуют два транспортных протокола TCP и UDP, а не один из них? Дело в том, что они предоставляют разные услуги прикладным процес- сам. Большинство прикладных программ пользуются только одним из них. Вы, как программист, выбираете тот протокол, который наилучшим образом соответствует вашим потребностям. Если вам нужна надежная доставка, то лучшим может быть TCP. Если вам нужна доставка датаграмм, то лучше может быть UDP. Если вам нужна эффективная доставка по длинному и ненадежному каналу передачи данных, то лучше может подойти протокол TCP. Если нужна эффективность на быстрых сетях с короткими соединениями, то лучшим может быть протокол UDP. Если ваши потребности не попадают ни в одну из этих категорий, то выбор транспортного протокола не ясен. Однако прикладные программы могут устранять недостатки выбранного протокола. Например, если вы выбрали UDP, а вам необходима надежность, то прикладная программа должна обеспечить надежность. Если вы выбрали TCP, а вам нужно переда- вать записи, то прикладная программа должна вставлять маркеры в поток байтов так, чтобы можно было различить записи. Какие же прикладные программы доступны в сетях с TCP/IP? Общее их количество велико и продолжает постоянно увеличиваться. Некоторые приложения существуют с самого начала развития internet. Нап- ример, TELNET и FTP. Другие появились недавно: X-Window, SNMP. Протоколы прикладного уровня ориентированы на конкретные прикладные задачи. Они определяют как процедуры по организации взаимодействия опре- деленного типа между прикладными процессами, так и форму представления информации при таком взаимодействии. В этом разделе мы коротко опишем некоторые из прикладных протоколов. === Протокол TELNET === Протокол TELNET позволяет обслуживающей машине рассматривать все удаленные терминалы как стандартные "сетевые виртуальные терминалы" строчного типа, работающие в коде ASCII, а также обеспечивает возможность согласования более сложных функций (например, локальный или удаленный эхо-контроль, страничный режим, высота и ширина экрана и т.д.) TELNET работает на базе протокола TCP. На прикладном уровне над TELNET нахо- дится либо программа поддержки реального терминала (на стороне пользова- теля), либо прикладной процесс в обсуживающей машине, к которому осу- ществляется доступ с терминала. Работа с TELNET походит на набор телефонного номера. Пользователь набирает на клавиатуре что-то вроде telnet delta и получает на экране приглашение на вход в машину delta. Протокол TELNET существует уже давно. Он хорошо опробован и широко распространен. Создано множество реализаций для самых разных операцион- ных систем. Вполне допустимо, чтобы процесс-клиент работал, скажем, под управлением ОС VAX/VMS, а процесс-сервер под ОС UNIX System V. === Протокол FTP === Протокол FTP (File Transfer Protocol - протокол передачи файлов) распространен также широко как TELNET. Он является одним из старейших протоколов семейства TCP/IP. Также как TELNET он пользуется транспорт- ными услугами TCP. Существует множество реализаций для различных опера- ционных систем, которые хорошо взаимодействуют между собой. Пользователь FTP может вызывать несколько команд, которые позволяют ему посмотреть каталог удаленной машины, перейти из одного каталога в другой, а также скопировать один или несколько файлов. === Протокол SMTP === Протокол SMTP (Simple Mail Transfer Protocol - простой протокол передачи почты) поддерживает передачу сообщений (электронной почты) между произвольными узлами сети internet. Имея механизмы промежуточного хране- ния почты и механизмы повышения надежности доставки, протокол SMTP допус- кает использование различных транспотных служб. Он может работать даже в сетях, не использующих протоколы семейства TCP/IP. Протокол SMTP обеспе- чивает как группирование сообщений в адрес одного получателя, так и разм- ножение нескольких копий сообщения для передачи в разные адреса. Над модулем SMTP располагается почтовая служба конкретных вычислительных сис- тем. === r-команды === Существует целая серия "r-команд" (от remote - удаленный), которые впервые появились в ОС UNIX. Они являются аналогами обычных команд UNIX, но предназначены для работы с удаленными машинами. Например, команда rcp является аналогом команды cp и предназначена для копирования файлов между машинами. Для передачи файла на узел delta достаточно ввести rcp file.c delta: Для выполнения команды "cc file.c" на машине delta можно использовать комаду rsh: rsh delta cc file.c Для организации входа в удаленную систему предназначена команда rlogin: rlogin delta Команды r-серии используются главным образом в системах, работающих под управлением ОС UNIX. Существуют также реализации для MS-DOS. Команды избавляют пользователя от необходимости набирать пароли при входе в удаленную систему и существенно облегчают работу. === NFS === Сетевая файловая система NFS (Network File System) впервые была раз- работана компанией Sun Microsystems Inc. NFS использует транспортные услуги UDP и позволяет монтировать в единое целое файловые системы нес- кольких машин с ОС UNIX. Бездисковые рабочие станции получают доступ к дискам файл-сервера так, как-будто это их локальные диски. NFS значительно увеличивает нагрузку на сеть. Если в сети использу- ются медленные линии связи, то от NFS мало толку. Однако, если пропуск- ная способность сети позволяет NFS нормально работать, то пользователи получают большие преимущества. Поскольку сервер и клиент NFS реализуются в ядре ОС, все обычные несетевые программы получают возможность работать с удаленными файлами, расположенными на подмонтированных NFS-дисках, точно также как с локальными файлами. === Протокол SNMP === Протокол SNMP (Simple Network Management Protocol - простой протокол управления сетью) работает на базе UDP и предназначен для использования сетевыми управляющими станциями. Он позволяет управляющим станциям соби- рать информацию о положении дел в сети internet. Протокол определяет формат данных, их обработка и интерпретация остаются на усмотрение управ- ляющих станций или менеджера сети. === X-Window === Система X-Window использует протокол X-Window, который работает на базе TCP, для многооконного отображения графики и текста на растровых дисплеях рабочих станций. X-Window - это гораздо больше, чем просто ути- лита для рисования окон; это целая философия человеко-машинного взаимо- действия. ====== Взаимозависимость протоколов семейства TCP/IP ====== Ниже на рисунке предсавлена схема взаимосвязей между протоколами семейства TCP/IP. == Рис.13. Структура взаимосвязей протоколов семейства TCP/IP ==
Прикладной    FTP  TELNET  SMTP  TFTP  DNS  Сужба времени  Эхо
уровень        |      |     |      |    |         |         |
	       --------------      --------------------------
		      |                             |
Транспортный         TCP      GGP  HMP  EGP        UDP
уровень               |        |    |    |          |
		      -------------------------------
				    |
Межсетевой                       IP/ICMP
уровень                             |
		  --------------------------------------
		  |            |          |            |
Сетевой       Локальные     ARPANET     SATNET      Пакетная
уровень         сети                                радиосеть
Подробное описание протоколов можно найти в RFC, тематический ката- лог которых приведен в Приложении.