Установка в сети протоколов TCP/IP



В отличие от многих других сетей, в TCP/IP практически на каждой машине следует иметь массу информации, необходимой для ее настройки, которая по сети не передается. В этом есть как свои преимущества, так и свои недостатки.

Недостатки сводятся к довольно большой ручной работе по настройке каждой машины и даже каждого ее сетевого интерфейса. При этом предварительно должна быть продумана топология сети, ее физическая и логическая схемы, определено оборудование. Обязательным условием для организации TCP/IP сети является получение блока IP-адресов для всего множества сетевых интерфейсов. Данную процедуру принято называть "получение сетки". Блок IP-адресов выделяется провайдером, через которого локальная сеть подключается к Интернету. При организации локальной сети, которая не будет подключена к Интернету, можно официально никакой сетки не получать, а ее номер придумать, но если позже возникнет необходимость подключения к Интернету, получить адреса все равно придется, но при этом придется также производить изменения во всех машинах локальной сети, меняя настройки сетевых интерфейсов.

Подключение локальной сети TCP/IP к Интернету осуществляется через местного провайдера. Обычно это та же организация, у которой был получен блок адресов для локальной сети. 

После того, как физическая сеть собрана, администратор должен собственноручно назначить каждой машине IP-адреc. Причиной, заставляющей жестко назначать адреса компьютерам сети, является необходимость организации информационных сервисов на серверах сети. TCP/IP не имеет механизма оповещения рабочих мест о месте нахождения сервиса. Широковещание вообще не очень распространено в сетях TCP/IP, в отличии от сетей Novell или Microsoft. Каждый узел знает о наличии того или иного сервиса либо из файла своей настройки (например, указываются шлюз в другие сети или сервер доменных имен), либо из файлов настроек прикладного программного обеспечения. Так, например, сервер WWW не посылает никакого широковещательного сообщения о том, что он установлен на данном компьютере в данной сети.

Преимущество такого подхода заключается в низком трафике, порождаемом сетью TCP/IP. Этот трафик иногда очень значительно отличается от трафика Novell, например. Кроме того, практически любое оборудование позволяет фильтровать трафик TCP/IP, что сильно облегчает сегментацию сети и делает ее легко структурируемой. Сеть TCP/IP обладает практически теми же базовыми сервисами, что и другие локальные сетевые технологии. Система позволяет работать в режиме удаленного терминала, организовывать распределенную файловую систему, сетевую печать и т.п.

Администратор локальной сети должен определить, какая машина локальной сети будет выполнять функции шлюза и (или) маршрутизатора. В качестве шлюза используются программы, которые умеют распознавать массу различных протоколов и способны правильно направлять пакеты информации из одной сети в другую. Если подключаемая сеть большая и требуется мощное устройство для обслуживания ее внешнего трафика, то приобретение маршрутизатора оправдано, если же сеть небольшая, то можно обойтись персональным компьютером, на который следует установить соответствующее программное обеспечение. 

В рамках организации сети TCP/IP в последнее время все больше внимание уделяется организации удаленных рабочих мест. Особенно это характерно для организаций, которые используют труд надомников. Здесь имеются в виду программисты и другие сотрудники, которые используют модемную связь для оперативного обмена информацией, доступа к информационным ресурсам или обмена электронной почтой. Развитие средств коммуникации и наличие специального набора протоколов и программного обеспечения, их реализующего, позволяет организовать такие рабочие места в рамках сетей TCP/IP без особых проблем. 

Задача подключения локальной сети довольно простая, если только это не сеть, распределенная в пространстве, т.е. не Wide Area Network (WAN). Здесь проблема подключения к Интернету приобретает как бы два направления:

¨ собственно подключение различных сегментов к Интернету;

¨ организация сети компании средствами Интернета.

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

Организация распределенной структуры может быть выполнена либо путем использования своих собственных возможностей (аренда физической сети передачи данных), либо за счет использования существующей сети Интернет-провайдеров. При выборе того или иного решения, как правило, во внимание принимается множество факторов, главными из которых могут быть факторы, не связанные с техническими решениями.

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

Обычно все книги и руководства по управлению сетями TCP/IP сводятся к четырем вещам: настройка сетевых интерфейсов, маршрутизация, служба доменных имен и электронная почта. Таким образом, лишний раз подчеркивается важность этого средства коммуникации. Существование электронной почты в Интернете имеет свою историю, которая очень сильно влияет на принципы администрирования этого информационного ресурса. На заре становления сети электронная почта пересылалась между машинами по протоколу UUCP. В эту пору использовалась совсем другая форма адреса электронной почты, нежели та, которая используется в настоящее время. После того, как скорость передачи данных по сети резко увеличилась и стало возможным передавать почту с той же скоростью, что и сообщения режима on-line, в Интернете был принят другой стандарт протокола обмена электронной почтой - SMTP (Simple Mail Transfer Protocol). Кроме этого, была введена новая форма почтового адреса абонента электронной почты, основанная на доменном имени. 

В настоящее время в стране доступ по протоколам TCP/IP через телефонную сеть в качестве транспорта использует протоколы SLIP и PPP.

Семейство протоколов TCP/IP

Структура протоколов TCP/IP

Термином TCP/IP называется целое семейство протоколов различного уровня. Сначала перечислим протоколы семейства.

¨ IP (Internet Protocol) – межсетевой протокол, давший название всему семейству;

¨ TCP (Transmission Control Protocol) - базовый транспортный протокол,

¨ UDP (User Datagram Protocol) - второй транспортный протокол, отличающийся от TCP;

¨ ARP (Address Resolution Protocol) - используется для определения соответствия IP-адресов и Ethernet-адресов;

¨ SLIP (Serial Line Internet Protocol) - протокол передачи данных по телефонным линиям;

¨ PPP (Point to Point Protocol) - протокол обмена данными "от точки к точке";

¨ FTP (File Transfer Protocol) - протокол обмена файлами;

¨ TELNET - протокол эмуляции виртуального терминала;

¨ RPC (Remote Process Control) - протокол управления удаленными процессами;

¨ TFTP (Trivial File Transfer Protocol) - тривиальный протокол передачи файлов;

¨ DNS (Domain Name System) - система доменных имен;

¨ RIP (Routing Information Protocol) - протокол маршрутизации;

¨ NFS (Network File System) - распределенная файловая система и система сетевой печати;

¨ SNMP (Simple Network ManagementProtocol) - простой протокол управления сетью.

К канальному уровню относятся стандарты SLIP и PPP. К сетевому (межсетевому) уровню относятся протоколы IP, ARP, ICMP. Транспортный уровень представлен протоколами TCP и UDP. Протоколы сервисов Интернета (FTP, TELNET, HTTP, GOPHER и т.п.) относятся к высшему, прикладному уровню.

В терминологии TCP/IP кадром называется блок данных, который принимается или отправляется сетевым адаптером. IP-пакетом называется блок данных, которым обменивается IP-модуль с сетевым интерфейсом. UDP-датаграмма – это блок данных, которым обменивается IP-модуль с UDP-модулем, TCP-сегмент – это блок данных, которым обменивается IP-модуль с TCP-модулем. Наконец, прикладное сообщение – это блок данных, которым обмениваются программы сетевых приложений с протоколами транспортного уровня.

Инкапсуляциией называется способ упаковки сообщения в формате одного протокола в сообщение в формате другого протокола более низкого уровня (например, упаковка IP-пакета в кадр Ethernet или упаковка TCP-сегмента в IP-пакет). В рамках межсетевого обмена понятие инкапсуляции имеет расширенный смысл. Если в случае инкапсуляции IP-пакета речь идет действительно об упаковке IP-пакета внутри кадра Ethernet, то при передаче данных по коммутируемым каналам происходит дальнейшая разбиение пакетов на SLIP-пакеты или фреймы PPP.

Пусть прикладная программа сформировала сообщение, которое предназначено для отправки на другой компьютер. Это сообщение передается на вход одного из сетевых модулей. Сетевой модуль обрабатывает сообщение, если надо, разделяет его на пакеты, присоединяет заголовки и, в зависимости от результатов обработки, передает полученные пакеты тому или иному модулю. Следующий модуль проделывает аналогичную процедуру и т.д. Заканчивается процесс тогда, когда очередной пакет поступает на вход модуля сетевой системы (например, модуля ENET системы Ethernet).

NFS-модуль
Пакеты всегда передаются от модуля высшего уровня к модулю низшего уровня. Модуль выполняет операцию одного из уровней и использует при этом определенный протокол. В результате можно изобразить структуру модулей (и соответственно, структуру протоколов) в форме схемы, изображенной на рис 2.

При работе с некоторыми программами прикладного уровня (такими, как FTP или telnet) используется модуль TCP. При работе с другими прикладными программами (NFS) используется модуль UDP. При получении сообщения от прикладной программы модули TCP и UDP работают как демультиплексоры, т.е. перенаправляют данные с нескольких выходов на один вход. Хотя технология Интернета поддерживает много различных сред передачи данных, здесь мы будем предполагать использование Ethernet, так как именно эта среда чаще всего служит физической основой для IP-сети.

Машина, принявшая пакет, осуществляет мультиплексирование в соответствии с этими отметками. Пусть сообщение пришло на сетевой интерфейс компьютера. Когда Ethernet-кадр попадает в драйвер сетевого интерфейса Ethernet, он может быть направлен либо в ARP-модуль, либо в IP-модуль. На то, куда должен быть направлен Ethernet-кадр, указывает значение поля типа в заголовке кадра. Если IP-пакет попадает в модуль IP, то содержащиеся в нем данные могут быть переданы либо модулю TCP, либо UDP, что определяется полем “протокол” в заголовке IP-пакета. Если UDP-датаграмма попадает в модуль UDP, то на основании значения поля “порт” в заголовке датаграммы определяется прикладная программа, которой должно быть передано прикладное сообщение. Если TCP-сообщение попадает в модуль TCP, то выбор прикладной программы, которой должно быть передано сообщение, осуществляется на основе значения поля “порт” в заголовке TCP-пакета.

Машина может быть подключена одновременно к нескольким средам передачи данных. Для машин с несколькими сетевыми интерфейсами при отправлении пакета IP-модуль выполняет функции мультиплексора, так как он должен сделать выбор между несколькими сетевыми интерфейсами. Таким образом, он осуществляет мультиплексирование входных и выходных данных в обоих направлениях. Данные могут поступать через любой сетевой интерфейс и быть переданы через любой другой сетевой интерфейс.

Процесс получения пакета и немедленной передачи его в другую сеть называется ретрансляцией IP-пакета. Ретранслируемый пакет не передается модулям TCP или UDP. Некоторые шлюзы вообще могут не иметь модулей TCP и UDP.

Сначала попробуем разобраться, как устроены протоколы передачи данных. Удобнее вначале рассмотреть, как работает сетевой модуль при приеме сообщения. Уже было сказано ранее, что для этого модуля сообщение представляет собой информативную начальную часть – заголовок, содержательную среднюю часть, которая была инкапсулирована в данное сообщение и для данного модуля представляет собой черный ящик, и, быть может, информативную конечную часть – хвост сообщения. Работа модуля заключается в анализе заголовка и хвоста сообщения. Для этого прежде всего необходимо уметь выделять заголовок и хвост.

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

Проиллюстрируем сказанное на примере структуры IP-адреса, которая является частью протокола IP. Напомним, что IP-адрес узла идентифицирует сетевой адаптер, а не всю машину. IP-адрес имеет фиксированную длину, равную 4 байтам (32 битам). Старшие биты IP-адреса определяют номер IP-сети. Оставшаяся часть IP-адреса изображает внутренний номер узла в сети (хост-номер). Существуют 5 классов IP-адресов, отличающиеся количеством бит в сетевом номере и хост-номере. Класс адреса определяется значением старших битов первого байта . В таблице.1 приведены классы адресов и указано количество возможных IP-адресов каждого класса.

Класс 1-й байт   Значения первого байта 2-й байт 3-й байт 4-й байт Возможное кол-во сетей Возможное кол-во узлов
А 0 + номер сети 1 – 126

Узел

126 16777214
B 10 + начало номера сети 128 – 191 Сеть

Узел

16382 65534
C 110 + начало номера сети 192 – 223

Сеть

Узел 2097150 254
D 1110 + начало номера группы 224 – 239

Группа

- 218
E 11100 240 – 247

Зарезервировано

   

Табл.1. Характеристики классов IP-адресов

Например, для машины с IP-адресом 221.137.10.34 сетевой номер равен 221.137.10, а хост-номер равен 34. Число 221 – это содержимое первого байта. Оно попадает в диапазон 192-223, поэтому данный IP-адрес относится к классу C. Числа 137 и 10 – соответственно содержимое второго и третьего байтов IP-адреса.

Адреса класса A предназначены для использования в больших сетях общего пользования. Они допускают большое количество номеров узлов. Адреса класса B используются в сетях среднего размера, например, сетях университетов и крупных компаний. Адреса класса C используются в сетях с небольшим числом компьютеров. Адреса класса D используются при обращениях к группам машин, а адреса класса E зарезервированы на будущее.

Ethernet-кадр

Ethernet-кадр в заголовке содержит Ethernet-адрес назначения, Ethernet-адрес источника, поле типа пакета и еще некоторые данные. Важной особенностью Ethernet является то, что каждая сетевая карта имеет свой уникальный номер. Каждому производителю сетевых карт выделен свой диапазон номеров, в пределах которого он может нумеровать свои карты. Этот номер рассчитан на шесть байтов. Ethernet-адрес обычно записывается в виде шести групп шестнадцатиричных цифр по две в каждой (например, 2B:17:9A:23:DF:B7). Первые три байта называются префиксом, и именно они закреплены за производителем. Каждый префикс определяет диапазон из почти 17-ти млн. номеров.

При получении кадра сетевым драйвером считываются Ethernet-адреса источника и места назначения, указанные в заголовке кадра. Кроме того, считывается тип пакета. Работающий сетевой адаптер знает свой Ethernet-адрес. Если адрес назначения совпадает с собственным адресом, драйвер начинает принимать Ethernet-кадр.

Пусть тип кадра говорит о том, что его содержимое является IP-пакетом. Кроме Ethernet-адреса, сетевой адаптер имеет также четырехбайтный IP-адрес, который уникален в пределах всей сети Internet. Этот адрес обозначает точку доступа к сети IP-модуля (для сетевого драйвера). Работающий компьютер всегда знает также и свой IP-адрес.

При отправке IP-пакета необходимо по IP-адресу места назначения определить Ethernet-адрес с тем, чтобы записать это значение в поле адреса назначения Ethernet-кадра. Если все это происходит в пределах локальной сети, то для поиска используется специальная таблица соответствия IP-адресов Ethernet-адресам. Структура этой таблицы описывается протоколом ARP (Address Resolution Protocol).

Упрощенно, ARP-таблица состоит из двух столбцов:

IP-адрес      Ethernet-адрес

 223.1.2.1     08:00:39:00:2F:C3

 223.1.2.3     08:00:5A:21:A7:22

 223.1.2.4     08:00:10:99:AC:54

Если меняются IP-адреса, то ARP-таблица должна быть изменена.

Если компьютер соединен с несколькими сетями, т.е. является шлюзом, то в таблицу ARP вносятся строки, которые описывают как одну, так и другую IP-сети. При использовании Ethernet и IP каждый сетевой интерфейс имеет как минимум один адрес Ethernet и один IP-адрес. Если компьютер имеет несколько интерфейсов, то это автоматически означает, что каждому интерфейсу будет назначен свой Ethernet-адрес. IP-адрес назначается для каждого драйвера сетевого интерфейса. Грубо говоря, каждой сетевой карте Ethernet соответствуют один Ethernet-адрес и один IP-адрес. IP-адрес уникален в рамках всей сети Интернет.

Сетевой адаптер контролирует обмен информацией, происходящий в сети, и принимает адресованные ему Ethernet-кадры, а также Ethernet-кадры с адресом "FF:FF:FF:FF:FF:FF" (в 16-ричной системе), который обозначает "всем", и используется при широковещательной передаче. Ethernet реализует метод доступа, называемый методом множественного доступа с контролем несущей и обнаружением столкновений. Этот метод предполагает, что все устройства взаимодействуют в одной среде, в каждый момент времени может передавать только одно устройство, а принимать могут все одновременно. Если два устройства пытаются передавать одновременно, то происходит столкновение передач, и оба устройства после случайного (краткого) периода ожидания пытаются вновь выполнить передачу. Понятно, что чем больше компьютеров подключено в сегменте Ethernet, тем больше столкновений будет зафиксировано и тем медленнее будет работать сеть. Кроме того, если в сети стоит сервер, к которому часто обращаются, то это также снизит общую производительность сети.

Протокол SLIP

Протоколы SLIP (Serial Line Internet Protocol) или PPP (Point to Point Protocol) обеспечивают передачу пакетов TCP/IP по последовательным каналам, в частности, телефонным линиям, между двумя компьютерами. На обоих компьютерах работают программы, использующие протоколы TCP/IP. Индивидуальные пользователи получают возможность устанавливать прямое соединение с Internet со своего компьютера, имея модем и телефонную линию.

Технология TCP/IP позволяет организовать межсетевое взаимодействие, используя различные физические и канальные протоколы обмена данными. Однако, без обмена данными по телефонным линиям связи с использованием обычных модемов популярность Internet была бы значительно ниже. Большинство пользователей Сети используют свой домашний телефон в качестве окна в мир компьютерных сетей, подключая компьютер через модем к модемному пулу компании, предоставляющей IP-услуги или к своему рабочему компьютеру. Наиболее простым способом, обеспечивающим полный IP-сервис, является подключение через последовательный порт персонального компьютера по протоколу SLIP.

В отличии от Ethernet, SLIP не "заворачивает" IP-пакет в свою обертку, а "нарезает" его на "кусочки". При этом делает это довольно примитивно. SLIP-пакет начинается символом ESC (восьмеричное 333 или десятичное 219) и кончается символом END (восьмеричное 300 или десятичное 192). Если внутри пакета встречаются эти символы, то они заменяются двухбайтовыми последовательностями ESC-END (333 334) и ESC-ESC (333 335). Стандарт не определяет размер SLIP-пакета. SLIP-модуль не анализирует поток данных и не выделяет какую-либо информацию в этом потоке. Он просто "нарезает" ее на "кусочки", каждый из которых начинается символом ESC, а кончается символом END. Из приведенного выше описания понятно, что SLIP не позволяет выполнять какие-либо действия, связанные с адресами, т.к. в структуре пакета не предусмотрено поле адреса и его специальная обработка. Компьютеры, взаимодействующие по SLIP, обязаны знать свои IP-адреса заранее. SLIP не позволяет различать пакеты по типу протокола, например. Вообще-то, при работе по SLIP предполагается использование только IP (что отражено в названии), но простота пакета может быть соблазнительной и для других протоколов. В SLIP нет информации, позволяющей корректировать ошибки линии связи. Коррекция ошибок возлагается на модули транспортного уровня - TCP, UDP.

SLIP/PPP действительно способ прямого соединения с Интернетом, поскольку:

¨ компьютер подсоединен к Интернету;

¨ компьютер использует сетевое обеспечение для общения с другими компьютерами по протоколу TCP/IP;

¨ компьютер имеет уникальный IP-адрес.

Подключаясь посредством SLIP/PPP, можно запускать программы-клиенты WWW, электронной почты и т.п. непосредственно на своем компьютере. В чем же различие между SLIP/PPP-соединением и режимом удаленного терминала? Для установления как SLIP/PPP-соединения, так и режима удаленного терминала необходимо дозвониться к другому компьютеру, непосредственно соединенному с Интернетом (провайдеру) и зарегистрироваться на нем. Ключевое отличие состоит в том, что при SLIP/PPP-соединении Ваш компьютер получает уникальный IP-адрес и напрямую общается с другими компьютерами по протоколу TCP/IP. В режиме же удаленного терминала Ваш компьютер является всего лишь устройством отображения результатов работы программы, запущенной на компьютере провайдера.

В протоколе SLIP нет определения понятия "SLIP-сервер", но реальная жизнь вносит коррективы в стандарты. В контексте нашего изложения "SLIP-клиент" - это компьютер, инициирующий физическое соединение, а "SLIP-сервер" - это машина, постоянно включенная в IP-сеть.

Протокол PPP

Соединения типа "точка-точка" - протокол PPP (Point to Point Protocol). PPP - это более молодой протокол, нежели SLIP. Однако, назначение у него то же самое - управление передачей данных по выделенным или коммутируемым линиям связи. PPP обеспечивает стандартный метод взаимодействия двух узлов сети. Предполагается, что обеспечивается двунаправленная одновременная передача данных. Как и в SLIP, данные "нарезаются" на фрагменты, которые называются PPP-пакетами. Пакеты передаются от узла к узлу упорядоченно. В отличие от SLIP, PPP позволяет одновременно передавать по линии связи PPP-пакеты, содержащие внутри пакеты различных протоколов. Кроме того, PPP предполагает процесс автоконфигурации обоих взаимодействующих сторон. Собственно говоря, PPP состоит из трех частей: механизма инкапсуляции (encapsulation), протокола управления соединением (link control protocol) и семейства протоколов управления сетью (network control protocols).

В заголовке PPP-пакета, иногда называемого фреймом, в поле "протокол" указывается тип инкапсулированной содержательной части. Существуют специальные правила кодирования протоколов в этом поле. Далее в поле "информация" записывается собственно пакет данных, а в поле "хвост" добавляется "пустышка" для выравнивания на 32-битовую границу. По умолчанию для пакета PPP используется 1500 байтов. В это число не входит поле "протокол".

Протокол управления соединением предназначен для установки соглашения между узлами сети о параметрах инкапсуляции (размер фрейма, например). Кроме этого, протокол позволяет проводить идентификацию узлов. Первой фазой установки соединения является проверка готовности физического уровня передачи данных. При этом, такая проверка может осуществляться периодически, позволяя реализовать механизм автоматического восстановления физического соединения как это бывает при работе через модем по коммутируемой линии. Если физическое соединение установлено, то узлы начинают обмен пакетами протокола управления соединением, настраивая параметры сессии. Любой пакет, отличный от пакета протокола управления соединением, не обрабатывается во время этого обмена. После установки параметров соединения возможен переход к идентификации. Идентификация не является обязательной. После всех этих действий происходит настройка параметров работы с протоколами межсетевого обмена (IP, IPX и т.п.). Для каждого из них используется свой протокол управления. Для завершения работы по протоколу PPP по сети передается пакет завершения работы протокола управления соединением.

Процедура конфигурации сетевых модулей операционной системы для работы по протоколу PPP более сложное занятие, чем аналогичная процедура для протокола SLIP. Однако, возможности PPP соединения гораздо более широкие. Так например, при работе через модем модуль PPP, обычно, сам восстанавливает соединение при потере несущей частоты. Кроме того, модуль PPP сам определяет параметры своих фреймов, в то время как при SLIP их надо подбирать вручную. Правда, если настраивать оба конца, то многие проблемы не возникают из-за того, что параметры соединения известны заранее. Более подробно с протоколом PPP можно познакомиться в RFC-1661 и RFC-1548.

Межсетевой протокол IP

Модуль IP является базовым элементом технологии Интернета. При отправке данных этот модуль инкапсулирует переданное ему сообщение в IP-пакет, добавляя в заголовок поля, из которых основными являются IP-адрес источника, IP-адрес места назначения и поле «протокол». В поле «протокол» указывается тот модуль, которому должно быть передано инкапсулированное внутри IP-пакета сообщение. Центральной частью IP-модуля является его таблица маршрутов. Модуль IP использует эту таблицу при принятии всех решений о маршрутизации IP-пакетов. Содержание таблицы маршрутов определяется администратором сети. Ошибки при установке маршрутов могут заблокировать передачу данных.

Если прикладная программа пытается послать данные по IP-адресу, который не принадлежит сети, то модуль IP не сможет найти соответствующую запись в таблице маршрутов. В этом случае модуль IP отбрасывает IP-пакет. Некоторые реализации протокола возвращают сообщение об ошибке "Сеть не доступна".

Адресное пространство сети TCP/IP может быть разделено на непересекающиеся подпространства - "подсети", с каждой из которых можно работать как с обычной сетью TCP/IP. Таким образом, единая IP-сеть организации может строиться как объединение подсетей. Как правило, подсеть соответствует одной физической сети, например, одной сети Ethernet. В некоторых случаях имеет смысл назначать одной физической сети несколько подсетевых номеров, (например, если сеть охватывает три здания)

Следует также выбрать "маску подсети". Она используется сетевым программным обеспечением для выделения номера подсети из IP-адресов. Биты IP-адреса, определяющие номер IP-сети, в маске подсети должны быть равны 1, а биты, определяющие номер узла, в маске подсети должны быть равны 0. Стандарты TCP/IP определяют количество байтов, задающих номер сети. Часто в IP-адресах класса B третий байт используется для задания номера подсети. Это позволяет иметь 256 подсетей, в каждой из которых может быть до 254 узлов. Маска подсети в такой системе равна 255.255.255.0. Но, если в вашей сети должно быть больше подсетей, а в каждой подсети не будет при этом более 60 узлов, то можно использовать маску 255.255.255.192. Это позволяет иметь 1024 подсети и до 62 узлов в каждой. (Напомним, что номера узлов 0 и "все единицы" используются особым образом). Обычно маска подсети указывается в файле стартовой конфигурации сетевого программного обеспечения. Протоколы TCP/IP позволяют также запрашивать эту информацию по сети.

Протокол UDP

Взаимодействие между прикладными процессами и модулем UDP осуществляется через UDP-порты. Порты нумеруются, начиная с нуля. Прикладной процесс, предоставляющий некоторые услуги другим прикладным процессам (сервер), ожидает поступления сообщений в порт, специально выделенный для этих услуг. Сообщения должны содержать запросы на предоставление услуг. Они отправляются процессами-клиентами. Например, сервер SNMP всегда ожидает поступлений сообщений в порт 161. Если клиент SNMP желает получить услугу, он посылает запрос в UDP-порт 161 на машину, где работает сервер. В каждом узле может быть только один сервер SNMP, так как существует только один UDP-порт 161. Данный номер порта является общеизвестным, то есть фиксированным номером, официально выделенным для услуг SNMP. Общеизвестные номера определяются стандартами Интернета. Данные, отправляемые прикладным процессом через модуль UDP, достигают места назначения как единое целое. Например, если процесс-отправитель производит 5 записей в UDP-порт, то процесс-получатель должен будет сделать 5 чтений. Размер каждого записанного сообщения будет совпадать с размером каждого прочитанного. Протокол UDP сохраняет границы сообщений, определяемые прикладным процессом. Он никогда не объединяет несколько сообщений в одно и не делит одно сообщение на части.

Когда модуль UDP получает датаграмму от модуля IP, он проверяет контрольную сумму, содержащуюся в ее заголовке. Если контрольная сумма равна нулю, то это означает, что отправитель датаграммы ее не подсчитывал, и, следовательно, ее нужно игнорировать. Если два модуля UDP взаимодействуют только через одну сеть Ethernet, то от контрольного суммирования можно отказаться, так как средства Ethernet обеспечивают достаточную степень надежности обнаружения ошибок передачи. Это снижает накладные расходы, связанные с работой UDP. Однако рекомендуется всегда выполнять контрольное суммирование, так как возможно в какой-то момент изменения в таблице маршрутов приведут к тому, что датаграммы будут посылаться через менее надежную среду. Если контрольная сумма правильная (или равна нулю), то проверяется порт назначения, указанный в заголовке датаграммы. Если к этому порту подключен прикладной процесс, то прикладное сообщение, содержащееся в датаграмме, становится в очередь для прочтения. В остальных случаях датаграмма отбрасывается. Если датаграммы поступают быстрее, чем их успевает обрабатывать прикладной процесс, то при переполнении очереди сообщений поступающие датаграммы отбрасываются модулем UDP.

Протокол TCP

Протокол TCP предоставляет транспортные услуги, отличающиеся от услуг UDP. Вместо ненадежной доставки датаграмм без установления соединений, он обеспечивает гарантированную доставку с установлением соединений в виде байтовых потоков. Протокол TCP используется в тех случаях, когда требуется надежная доставка сообщений. Он освобождает прикладные процессы от необходимости использовать таймауты и повторные передачи для обеспечения надежности. Наиболее типичными прикладными процессами, использующими TCP, являются FTP-передача файлов и telnet – удаленный доступ. Большие возможности TCP даются не бесплатно. Реализация TCP требует большой производительности процессора и большой пропускной способности сети.

Внутренняя структура модуля TCP гораздо сложнее структуры модуля UDP. Прикладные процессы взаимодействуют с модулем TCP также через порты. Для отдельных приложений выделяются общеизвестные номера портов. Например, сервер telnet использует порт номер 23. Клиент telnet может получать услуги от сервера, если установит соединение с TCP-портом 23 на его машине. Когда прикладной процесс начинает использовать TCP, то модуль TCP на машине клиента и модуль TCP на машине сервера начинают общаться. Эти два оконечных модуля TCP поддерживают информацию о состоянии соединения, называемого виртуальным каналом. Этот виртуальный канал потребляет ресурсы обоих оконечных модулей TCP. Канал является дуплексным: данные могут одновременно передаваться в обоих направлениях. Один прикладной процесс пишет данные в TCP-порт, они проходят по сети, и другой прикладной процесс читает их из своего TCP-порта.

Протокол TCP разбивает поток байт на пакеты вне зависимости от его содержания и не сохраняет границ между записями. Например, если один прикладной процесс делает 5 записей в TCP-порт, то прикладной процесс на другом конце виртуального канала может выполнить 10 чтений для того, чтобы получить все данные. Но этот же процесс может получить все данные сразу, сделав только одну операцию чтения. Не существует зависимости между числом и размером записываемых сообщений с одной стороны и числом и размером считываемых сообщений с другой стороны. Протокол TCP требует, чтобы все отправленные данные были подтверждены принявшей их стороной. Он использует таймауты и повторные передачи для обеспечения надежной доставки.

Отправителю разрешается передавать некоторое количество данных, не дожидаясь подтверждения приема ранее отправленных данных. Таким образом, между отправленными и подтвержденными данными существует окно уже отправленных, но еще не подтвержденных данных. Количество байт, которые можно передавать без подтверждения, называется размером окна. Как правило, размер окна устанавливается в стартовых файлах сетевого программного обеспечения.

Так как TCP-канал является дуплексным, то подтверждения для данных, идущих в одном направлении, могут передаваться вместе с данными, идущими в противоположном направлении. Приемники на обеих сторонах виртуального канала выполняют управление потоком передаваемых данных для того, чтобы не допускать переполнения буферов.

Почему существуют два транспортных протокола TCP и UDP, а не один из них? Дело в том, что они предоставляют разные услуги прикладным процессам. Большинство прикладных программ пользуются только одним из них. Вы, как программист, выбираете тот протокол, который наилучшим образом соответствует вашим потребностям. Если вам нужна надежная доставка, то лучшим может быть TCP. Если вам нужна доставка датаграмм, то лучше может быть UDP. Если вам нужна эффективная доставка по длинному и ненадежному каналу передачи данных, то лучше может подойти протокол TCP. Если нужна эффективность на быстрых сетях с короткими соединениями, то лучшим может быть протокол UDP.

Прикладные программы могут устранять недостатки выбранного протокола. Например, если вы выбрали UDP, а вам необходима надежность, то прикладная программа должна обеспечить надежность сама. Если вы выбрали TCP, а вам нужно передавать записи, то прикладная программа должна вставлять маркеры в поток байтов так, чтобы можно было различить записи.

Какие же прикладные программы доступны в сетях с TCP/IP? Общее их количество велико и продолжает постоянно увеличиваться. Некоторые приложения существуют с самого начала развития Интернета (например, telnet и FTP). Другие появились позднее: X-Window, SNMP. Протоколы прикладного уровня ориентированы на конкретные прикладные задачи. Они определяют как процедуры по организации взаимодействия определенного типа между прикладными процессами, так и форму представления информации при таком взаимодействии.

Другие протоколы.

Протокол Telnet позволяет обслуживающей машине рассматривать удаленные терминалы как стандартные "сетевые виртуальные терминалы" строчного типа, работающие в коде ASCII, а также обеспечивает возможность согласования более сложных функций (например, локальный или удаленный эхо-контроль, страничный режим, высота и ширина экрана и т.д.). Telnet работает на базе протокола TCP. На прикладном уровне над Telnet находится либо программа поддержки реального терминала (на стороне пользователя), либо прикладной процесс в обсуживающей машине, к которому осуществляется доступ с терминала. Работа с Telnet походит на набор телефонного номера. Пользователь набирает на клавиатуре что-то вроде «telnet А» и получает на экране приглашение на вход в машину А. Протокол Telnet существует уже давно. Он хорошо опробован и широко распространен. Создано множество реализаций для самых разных операционных систем. Вполне допустимо, чтобы процесс-клиент работал, скажем, под управлением одной операционной системой, а процесс-сервер - под управлением другой.

Протокол FTP (File Transfer Protocol – протокол передачи файлов) распространен так же широко и пользуется транспортными услугами TCP. Существует множество реализаций для различных операционных систем, которые хорошо взаимодействуют между собой. Пользователь FTP может вызывать несколько команд, которые позволяют ему посмотреть каталог удаленной машины, перейти из одного каталога в другой, а также скопировать один или несколько файлов.

Протокол SMTP (Simple Mail Transfer Protocol - простой протокол передачи почты) поддерживает передачу сообщений (электронной почты) между произвольными узлами сети Интернет. Имея механизмы промежуточного хранения почты и механизмы повышения надежности доставки, протокол SMTP допускает использование различных транспортных служб. Он может работать даже в сетях, не использующих протоколы семейства TCP/IP. Протокол SMTP обеспечивает как группирование сообщений в адрес одного получателя, так и размножение нескольких копий сообщения для передачи в разные адреса. Над модулем SMTP располагается почтовая служба конкретных вычислительных систем.

Сетевая файловая система NFS (Network File System) впервые была разработана компанией Sun Microsystems Inc. NFS использует транспортные услуги UDP и позволяет монтировать в единое целое файловые системы нескольких машин с ОС UNIX. Бездисковые рабочие станции получают доступ к дискам файл-сервера так, как будто это их локальные диски. NFS значительно увеличивает нагрузку на сеть. Если в сети используются медленные линии связи, то от NFS мало толку. Однако, если пропускная способность сети позволяет NFS нормально работать, то пользователи получают большие преимущества. Поскольку сервер и клиент NFS реализуются в ядре ОС, все обычные несетевые программы получают возможность работать с удаленными файлами, расположенными на подмонтированных NFS-дисках, точно так же, как с локальными файлами.

Протокол SNMP (Simple Network Management Protocol - простой протокол управления сетью) работает на базе UDP и предназначен для использования сетевыми управляющими станциями. Он позволяет управляющим станциям собирать информацию о положении дел в Интернете. Протокол определяет формат данных, их обработка и интерпретация остаются на усмотрение управляющих станций или менеджера сети.

Система X-Window использует протокол X-Window, который работает на базе TCP, для многооконного отображения графики и текста на растровых дисплеях рабочих станций. X-Window - это гораздо больше, чем просто утилита для рисования окон - это целая философия человеко-машинного взаимодействия.

Протокол HTTP (Hyper text transfer protocol – протокол передачи гипертекста) применяется для обмена информацией между серверами WWW (World Wide Web – всемирная паутина) и программами просмотра гипертекстовых страниц – броузерами WWW. Допускает передачу широкого спектра разнообразной информации – текстовой, графической, аудио и видео.

POP3 (Post Office Protocol – протокол почтового узла, 3 версия), позволяет программам-клиентам электронной почты принимать и передавать сообщения с / на почтовые серверы. Обладает достаточно гибкими возможностями по управлению содержимым почтовых ящиков, расположенных на почтовом узле. В типичных программах-клиентах в основном применяется для приема входящих сообщений.

NNTP (Network News Transfer Protocol – протокол передачи сетевых новостей ) позволяет общаться серверам новостей и клиентским программам – распространять, запрашивать, извлекать и передавать сообщения в группы новостей. Новые сообщения хранятся в централизованной базе данных, которая позволяет пользователю выбирать интересующие его сообщения. Также обеспечивается индексирование, организация ссылок и удаление устаревших сообщений.

Язык Java.

Язык программирования Java - интерпретируемый язык программирования с синтаксисом C++, специально рассчитанный на работу в открытой сетевой среде. Особенностью Java является использование программ в сети. Программа на Java не компилируется, а переводится в промежуточную форму (так назывемый бинарный псевдокод). Такие передаваемые по сети частично откомпилированные программы называются Java-аплетами. Программы-навигаторы на клиентском компьютере должны включать Java-интерпретатор для выполнения этиx апплетов. При этом доступ к ресурсам машины, на которой апплет работает, для Java-программы может быть ограничен с целью обеспечения безопасности. С серверов Интернета могут вызываться не только программы, но и описания объектов или форматов данных.

Java позволяет решить самые глубокие проблемы WWW: отсутствие интерактивности, ограниченный контроль вида документа, ограниченный набор форматов встроенной графики и других объектов мультимедиа. Если Вы создаете документ в Интернете и используете Java, то, включив в документ картинку в придуманном Вами формате, Вы можете также указать ссылку на программу, которая умеет читать Ваш формат и рисовать картинку. Если Вас не устраивают существующие протоколы передачи данных в Интернете, то Вы можете определить свой протокол и передавать данные по нему, предварительно указав ссылку, откуда брать программу для его поддержки. WWW-навигатор, поддерживающий Java, неограниченно расширяем и позволяет реализовать все, что угодно. При этом замечательна та особенность, что с точки зрения пользователя все предельно просто - он пользуется стандартным интерфейсом, не замечая никаких сложностей с форматами, протоколами и т. д.

Сегодня Java чаще всего применяется для передачи через Интернет аплетов, реализующих простые вещи для украшения WWW-страниц. Через Интернет можно передавать не просто данные, но приложения. Новая технология сделала документы объектами, вместе с которыми стали передаваться и методы их обработки. Это предоставляет возможность построения средствами Java больших программных продуктов, полностью использующих возможности современных корпоративных информационных сред, построенных на базе высокоскоростных сетей и мощных серверов баз данных в архитектуре клиент-сервер. Используя такую технологию, можно построить практически идеальную корпоративную информационную систему, где данные хранятся на одном сервере, обрабатываются на другом, а отображаются на Java-терминалах. Такая схема экономична и практична:

¨ пользовательские рабочие места дешевы, поскольку их ресурсы и архитектура специализированы и адекватны возлагаемым на них задачам;

¨ сеть минимально загружена, поскольку по сети передаются методы отображения объектов и данные, а значит трафик гораздо ниже;

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

¨ данные также централизованы и проще управляются, резервируются и надежней защищены.

Основной проблемой Java является поддержка безопасности: защита локального компьютера от вирусов, возможно содержащихся в аплетах, защита передаваемых по сети данных и т.д. Беда в том, что для любого алгоритма существует вероятность появления способа его взлома. Это вопрос очень тонкий и мы не будем обсуждать его здесь, но общий принцип подтверждается: что один человек построил, то другой всегда может сломать, вопрос только в том, сколько понадобится сил и времени. Кроме теоретических проблем математических алгоритмов шифрования, существуют еще, к сожалению, вопросы практической их реализации. Поскольку программ без ошибок не бывает, то уязвимым может оказаться программное воплощение самой лучшей теории.

Язык VRML

Аббревиатура VRML расшифровывается как "язык описания виртуальной реальности". Это язык описания трехмерных сцен и объектов. Через World Wide Web пользователь может получить файл в формате VRML, и, если программа-клиент обладает такой возможностью, просматривать сцену с разных точек зрения. При этом картинка на экране остается плоской, но, перемещая точку обзора, пользователь может наблюдать вид трехмерного объекта с разных сторон.

Основная проблема этой технологии заключается в том, что обработка VRML-файлов происходит на компьютере пользователя и требует значительных вычислительных и графических ресурсов. Поэтому, с одной стороны, программ-клиентов, поддерживающих VRML, не так уж много, и до сих пор нет стандартной программы для этого, доступной на различных платформах. С другой стороны, использование значительных ресурсов компьютера пользователя противоречит идеологии развития технологии по пути дешевых и легких Интернет-терминалов, способных только отображать информацию, полученную по сети. С третьей стороны, индустрия движется по законам рынка - существует огромное количество персональных компьютеров, в которые вложены большие деньги, и они, вероятно, будут развиваться в этом направлении и дальше. А коль это так, VRML - хорошее средство утилизации ресурсов ПК, по мощности переросших понятие "персональный".

Проблемы Интернета

У Интернета есть, конечно же, свои трудности. Вот описание некоторых из них.

На известной юмористической картинке изображена собака, сидящая за компьютером, и говорящая другой: "В Интернете никто не знает, что ты - собака." Действительно, сегодня нет адекватных средств идентификации удаленных пользователей. Это, например, приводит к возникновению проблем с доступом к информации, открытой публично, но к которой "детям до 16 вход воспрещен". Проблема так называемого киберпорно сегодня бурно обсуждается и пока далека от решения.

Другой ряд проблем - сложность реализации законов об экспорте и авторских правах. Весьма проблематично ограничить доступ через Интернет к криптографическому программному обеспечению, запрещенному к вывозу из США и приравненному в этом плане к стратегическим вооружениям. Непонятно, что в Интернете защищается авторским правом, а что нет. Распространение электронной книги гораздо сложнее контролировать, нежели печатной, а значит и труднее продавать.

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

Сегодня в Интернете используется протокол IP, использующий для адреса компьютера 32 бита. Однако, учитывая все ускоряющийся рост сети, адресное пространство может просто закончиться, причем это событие прогнозируется в пределах ближайших десяти лет. Для решения этой проблемы разрабатывается протокол IP нового поколения - IPng, в котором для адреса будет использоваться 128 бит, что позволяет адресовать астрономическое количество объектов. Переход на новый протокол предполагается планомерно осуществить в оставшиеся до коллапса годы, но кто знает, сколь болезненным он окажется - ведь такие изменения требуют практически полной смены существующего программного обеспечения и активного сетевого оборудования.

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


Дата добавления: 2018-10-26; просмотров: 427; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!