Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Тема 14 Протокольный стек TCPIP.doc
Скачиваний:
4
Добавлен:
04.05.2019
Размер:
211.46 Кб
Скачать

Тема: Протокольный стек TCPIP

Протоколы (protocols) — это набор правил и процедур, регулирующих порядок осуществления некоторой связи. Протоколы — это правила и технические процедуры, позволяющие нескольким компьютерам при объединении в сеть общаться друг с другом.

Три основных момента:

Существует множество протоколов. И хотя все они участвуют в реализации связи, каждый протокол имеет различные цели, выполняет различные задачи, обладает своими преимуществами и ограничениями.

Протоколы работают на разных уровнях модели OSI. Функции протокола определяются уровнем, на котором он работает. Если, например, какой-то протокол работает на Физическом уровне, то это означает, что он обеспечивает прохождение пакетов через плату сетевого адаптера и их поступление в сетевой кабель.

Несколько протоколов могут работать совместно. Это так называемый стек, или набор, протоколов. Как сетевые функции распределены по всем уровням модели OSI, так и протоколы совместно работают на различных уровнях стека протоколов.

Компьютер-отправитель в соответствии с протоколом выполняет следующие действия:

  • разбивает данные на небольшие блоки, называемые пакетами, с которыми может работать протокол;

  • добавляет к пакетам адресную информацию, чтобы компьютер-получатель мог определить, что эти данные предназначены именно ему;

  • подготавливает данные к передаче через плату сетевого адаптера и далее — по сетевому кабелю.

Компьютер-получатель в соответствии с протоколом выполняет те же действия, но

  • только в обратном порядке:

  • принимает пакеты данных из сетевого кабеля;

  • через плату сетевого адаптера передает пакеты в компьютер;

  • удаляет из пакета всю служебную информацию, добавленную компьютером-отправителем;

  • копирует данные из пакетов в буфер — для их объединения в исходный блок данных;

  • передает приложению этот блок данных в том формате, который оно использует.

Данные, передаваемые из одной локальной сети в другую по одному из возможных маршрутов, называются маршрутизированными. Протоколы, которые поддерживают передачу данных между сетями по нескольким маршрутам, называются маршрутизируемыми (reutable) протоколами. Так как маршрутизируемые протоколы могут использоваться для объединения нескольких локальных сетей в глобальную сеть, их роль постоянно возрастает.

Стеки протоколов

Стек протоколов (protocol stack) — это комбинация протоколов. Каждый уровень определяет различные протоколы для управления функциями связи или ее подсистемами. Каждому уровню присущ свой набор правил.

Рисунок 1 - Модель OSI и уровни протоколов

Так же как и уровни в модели OSI, нижние уровни стека описывают правиле взаимодействия оборудования, изготовленного разными производителями. А верхние уровни описывают правила для проведения сеансов связи и интерпретации приложений. Чем выше уровень, тем сложнее становятся решаемые им задачи и связанные с этими задачами протоколы.

Протоколы TCP/IP

Transmission Control Protocol/Internet Protocol (TCP/IP) — промышленный стандартный набор протоколов, которые обеспечивают связь в гетерогенной (неоднородной) среде, т.е. обеспечивают совместимость между компьютерами разных типов. Совместимость — одно из основных преимуществ TCP/IP, поэтому большинство ЛВС поддерживает его. Кроме того, TCP/IP предоставляет доступ к ресурсам Интернета, а также маршрутизируемый протокол для сетей масштаба предприятия. Поскольку TCP/IP поддерживает маршрутизацию, он обычно используется в качестве межсетевого протокола. Благодаря своей популярности TCP/IP стал стандартом де-факто для межсетевого взаимодействия.

К другим специально созданным для набора TCP/IP протоколам относятся:

SMTP (Simple Mail Transfer Protocol) — электронная почта;

FTP (File Transfer Protocol) — обмен файлами между компьютерами, поддерживающими TCP/IP;

SNMP (Simple Network Management Protocol) — управление сетью.

TCP/IP имеет два главных недостатка: размер и недостаточная скорость работы. TCP/IP — относительно большой стек протоколов, который может вызвать проблемы у MS-DOS-клиентов. Однако для таких операционных систем, как Windows NT или Windows 95, размер не является проблемой, а скорость работы сравнима со скоростью протокола IPX.

Протоколы стека TCP/IP

Стек TCP/IP охватывает верхние уровни модели OSI, начиная с третьего. Перечислим основные из них:

Сетевой уровень

IP (Internet Protocol) обеспечивает негарантированную доставку пакета от узла к узлу, в работе с нижними уровнями использует ARP и RARP.

ARP (Address Resolution Protocol) динамически преобразует IP-адрес в физический (MAC).

RARP (Reverse Address Resolution Protocol), обратный к ARP, преобразует физический адрес в IP-адрес.

ICMP (Internet Control Message Protocol) управляет передачей управляющих и диагностических сообщений между шлюзами, маршрутизаторами и узлами, определяет доступность и способность к ответу абонентов-адресатов, назначение пакетов, работоспособность маршрутизаторов и т. д. ICMP взаимодействует с вышестоящими протоколами TCP/IP. Сообщения передаются с помощью IP-дейтаграмм.

IGMP (Internet Group Management Protocol) позволяет формировать в маршрутизаторах списки групп многоадресного вещания.

Транспортный уровень

UDP (User Datagram Protocol) обеспечивает негарантированную доставку пользовательских дейтаграмм без установления соединения между заданными процессами передающего и принимающего узлов. Взаимодействующие процессы идентифицируются протокольными портами (protocol ports) — целочисленными значениями в диапазоне 1-65535. Порты 1-255 закреплены за широко известными приложениями (well-known port assignments), остальные назначаются динамически перед посылкой дейтаграммы. UDP-дейтаграмма имеет заголовок, включающий номера порта источника (для возможности корректного ответа), порта назначения и поле данных. Длина поля данных UDP-дейтаграммы произвольна, протокол обеспечивает ее инкапсуляцию (помещение в поле данных) в одну или несколько IP-дейтаграмм и обратную сборку на приемной стороне. UDP позволяет множеству клиентов использовать совпадающие порты: дейтаграмма доставляется клиенту (процессу) с заданным IP-адресом и номером порта. Если клиент не находится, то дейтаграмма отправляется по адресу 0.0.0.0 (обычно это «черная дыра»).

TCP (Transmission Control Protocol) обеспечивает гарантированный поток данных между клиентами, установившими виртуальное соединение. Поток представляет собой неструктурированную последовательность байт, их интерпретация согласуется передающей и приемной сторонами предварительно. Для идентификации используются порты, аналогично UDP-портам. Активная сторона (инициатор обмена) обычно использует произвольный порт, пассивная — известный порт, соответствующий используемому протоколу верхнего уровня. Комбинация IP-адреса и номера порта называется гнездом TCP (TCP Socket). TCP буферизует входящий поток, ожидая перед посылкой заполнения большой дейтаграммы. Поток сегментируется, каждому сегменту назначается последовательный номер. Передающая сторона ожидает подтверждения приема каждого сегмента, при его длительном отсутствии делает повторную передачу сегмента. Процесс, использующий TCP, получает уведомление о нормальном завершении передачи только после успешной сборки потока приемником. Протокол обеспечивает полный дуплекс, это означает, что потоки данных могут идти одновременно во встречных направлениях.

Уровень представления данных и прикладной уровень

TelNet — обеспечение удаленного терминала (символьного и графического) UNIX-машины.

FTP (File Transfer Protocol) — протокол передачи файлов на основе TCP.

II 77-ТР (Trivial File Transfer Protocol) — простейший протокол передачи файлов на основе UDP.

SMTP (Simple Mail Transfer Protocol) — протокол передачи электронной почты, определяющий правила взаимодействия и форматы управляющих сообщений.

RIP (Routing Information Protocol) — протокол обмена трассировочной информацией между маршрутизаторами, обеспечивающий динамическую маршрутизацию. Использует классы как признак определения префикса адреса.

OSPF(Open Shortest Path First) — протокол распространения маршрутной информации между маршрутизаторами в автономной системе.

DNS (Domain Name System) — система обеспечения преобразования символических имен и псевдонимов сетей и узлов в IP-адреса и обратно.

SNMP (Simple Network Management Protocol) — простой протокол управления сетевыми ресурсами.

RPC (Remote Procedure Call) — протокол вызова удаленных процедур (запуска процессов на удаленном компьютере).

NFS (Network File System) — открытая спецификация сетевой файловой системы, введенная Sun Microsystems.

Кроме перечисленных, в стек входят и другие протоколы, их состав постоянно расширяется.

Протоколы прикладного уровня

Почему существуют два транспортных протокола 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-дисках, точно также как с локальными файлами.