Тема 1.               Основные понятия.

Сети часто условно делят на глобальные сети  и локальные сети.

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

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

Механизмы передачи данных в локальных и глобальных сетях до последнего времени существенно отличались. Глобальные сети ориентированы на соединение – до начала передачи данных между абонентами устанавливается соединение. В локальных сетях используются методы, не требующие предварительной установки соединения – пакет с данными посылается  без подтверждения готовности получателя к обмену, поскольку считается, что соединение уже было установлено заранее.

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

Основная задача сети состоит в передаче информации между различными приложениями, используемыми в организации. Под приложением понимается программное обеспечение, которое непосредственно нужно пользователям, например база данных, электронная почта.

Соединения и каналы.

Состояние, когда абоненты связаны друг с другом, называется установленным соединением. Физическое соединение при этом не обязательно, возможно так называемое виртуальное соединение, при котором программное обеспечение на узлах по всему маршруту от источника до получателя готово к передаче данных (известные все характеристики связи).

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

Полоса пропускания – максимальная скорость обмена данными. Говорят «полоса пропускания в 10 Мб», когда сеть позволяет передавать информацию со скоростью 10.000.000 бит в секунду.

Локальные сети обеспечивают передачу данных со скоростями от 10 Мб, глобальные – до 1 Мб.

Каналы связи подразделяются на аналоговые и цифровые.

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

Поясним способ преобразования цифровых данных в аналоговые. Цифровые данные - это последовательность 0 и 1. В аналоговом сигнале единичке соответствует некоторый заданный диапазон амплитуды сигнала.

Возможные методы оцифровки данных: амплитудная модуляция, частотная модуляция, фазовая модуляция. При этом важно, что в сети идет некий базовый сигнал, называемый несущей, а его преобразование зависит от передаваемых цифровых данных. Важное понятие при модуляции – битовый интервал. Это время, в течение которого передается один бит информации.

При амплитудной модуляции несущая может иметь два различных уровня амплитуды. Один уровень амплитуды сигнала в течение битового интервала понимается как 1, второй – как 0. Аналогично при частотной модуляции возможны две частоты, при фазовой – две фазы.

Во всех способах модуляции возникает необходимость быстрой смены одной характеристики сигнала на другую. Для физических сигналов это – невыполнимое требование. Поэтому возникают переходные процессы, о которых здесь говорят как о «дрожании сигнала». Кроме того, точное удержание заданной характеристики тоже невозможно, поэтому часто существует некоторый диапазон «правильных значений».

 

 


                                                                    полоса, соответствующая 1

 

 

 


Из-за достаточно больших помех в аналоговых каналах существует вероятность искажения или потери при передаче. По этой причине такая связь в настоящее время ограничена скоростью 33.6 Кбит/сек (причем только на аналоговых каналах с высоким качеством). Вспомним, что для передачи речи в основном используется диапазон частот от 300 до 3.1 Кгц. До последнего времени скорость передачи данных  33.6 Кбит/сек была максимальной, так как вплотную приближалась к барьеру в 35 Кбит/сек, установленному законом Шеннона для стандартных телефонных каналов шириной 3.1 Кгц. Сейчас четыре компании (Rockwell Semiconductor System, Lucent Technologies, U.S. Robotics, Motorola) объявили, что сумели преодолеть эти ограничения и достигли скорости передачи данных в 56 Кбит/сек, правда только в одном направлении (от АТС к абоненту).

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

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

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

Цифровые каналы связи (Dataphone Digital Service DDS) не требуют преобразования цифровых сигналов в аналоговые. Оконечное оборудование таких каналов ориентировано на работу только с цифровыми сигналами. Цифровые каналы строятся на принципах плезиосинхронной цифровой иерархии (PHD) и синхронной цифровой иерархии (SDH).

Для передачи оцифрованного сигнала может использоваться цифровой канал со скоростью 64 Кбит/сек, называемый DS0 (Digital Signal 0- цифровой сигнал, нулевой уровень).  На основе этого базового канала формируются другие каналы, с более высокими скоростями передачи. Путем объединения (уплотнения) 24 каналов DS0 получается канал DS1 со скоростью передачи 1,544 Мбит/с. Это число получается следующим образом: в состав каждого кадра канала DS0 входит дополнительная служебная информация (так называемые биты обрамления) для отсчета времени синхронизации, так что суммарная скорость передачи данных может быть определена следующим образом: 24 * 64000 + 8000=1,5444. Канал DS3 получается при уплотнении 28 каналов DS1, его скорость составляет 44,736 Мбит/с.

Основным недостатком связи по выделенной линии является ограниченная коммутируемость. Например, если необходимо связать  друг с другом пять удаленных офисов, на это потребуется 10=4+3+2+1 выделенных линий связи. При этом динамическое выделение полосы пропускания может достигаться только при использовании мультиплексирования, а изменение настроек системы мультиплексирования может занять от нескольких минут до нескольких часов. Но поскольку оборудование для выделенных  линий достаточно широко распространено, выигрыш от их использования не стоит недооценивать.

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

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

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

Типы связи

Симплексная связь предполагает, что соединение одностороннее, то есть передача данных возможна только в одну сторону. Пример: передача посланий потомкам.

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

Равноправная двусторонняя связь называется дуплексной. Пример: почта.

Еще одно важное понятие: надежность передач. Один из самых распространенных способов обеспечения надежности – квитанции. При этом, получив правильные данные, получатель отправляет источнику специальное сообщение – квитанцию о получении.

Протоколы и службы.

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

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

Пример1.

Вы хотите пообщаться с кем-то. И у вас и у вашего собеседника есть секретарь. Прямое общение между вами затруднено, например, по языковой причине. Вы можете обратиться к услугам своих секретарей. На каком языке будут общаться ваши секретари, при помощи каких средств связи (телефон, почта) вас совершенно не интересует. Здесь служба – это секретари. А протокол – способ общения секретарей.

Пример 2.

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

Тема 2.               Модель OSI (Open  System Interconnection). Стек протоколов TCP\IP.

Уровни модели OSI

С целью стандартизации уровней общения сетевых устройств международной организацией ISO (international organization of standard) была разработана модель OSI (Open System Interconnection), которая описывает, как, по каким правилам высокоуровневое сообщение преобразуется в конечном итоге в электрические сигналы, передающиеся по сетевому кабелю или телефонной сети, а затем восстанавливаются вновь у получателя.

1.     Прикладной.

Обеспечивает связь человека и компьютера или любого другого сетевого устройства. Определяет правила интерфейса с пользователем.

2.     Представления

Обеспечивает подготовку данных к передаче по сети, например, кодирование, упаковка.

3.     Сеансовый

Обеспечивает установление логического или физического соединения.

4.     Транспортный

Обеспечивает надежную передачу пакетов данных.

5.     Сетевой

Обеспечивает распределение пакетов по многоуровневой сети (с подсетями). Решаются вопросы адресации, выбора маршрута.

6.     Канальный

Обеспечивает прохождение пакета по каналу связи. Стандарты на сетевые технологии.

7.     Физический

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

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

Пусть исходный текст, который мы хотим передать по сети: «Данные». Тогда этот текст разобьется на некоторые фрагменты, размер которых соответствует размеру минимального буфера (минимум по источнику, получателю и промежуточным узлам). Каждый фрагмент снабжается заголовком. Такая конструкция называется пакетом. Заголовок пакета (адрес отправителя и адрес получателя + служебная информация).

 

 

Да

 

 

нн

 

 

ые

- текст, упакованный в пакеты

Разделение каналов. Мультиплексирование.

Выделенные каналы, как вы уже поняли, это дорого. На практике применяется так называемое разделение каналов или мультиплексирование, при котором канал связи поступает в распоряжение того или иного абонента по некоторым правилам.

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

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

Пусть теперь узлы достаточно часто передают данные по сети, следовательно, требуется как-то упорядочить их работу. Рассмотрим канал с временным (ударение на последнем слоге слова!) разделением. При этом за каждым абонентом закрепляются промежутки времени,  в которые абонент момент передавать данные. Если абоненту нечего передавать, то в течение выделенного ему времени сеть простаивает. Вторая проблема этого протокола состоит в необходимости синхронизации узлов. В курсе «Надежность информационных систем» мы рассмотрим способы синхронизации. А сейчас главное – осознавать, что в случае неверно идущих часов у одного из узлов снова появляются коллизии (наложение и порча пакетов).

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

В следующих алгоритмах сделаем попытку отойти от выделенных каналов еще дальше.

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

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

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

Стек протоколов TCP/IP.  История и перспективы стека TCP/IP

Transmission Control Protocol/Internet Protocol (TCP/IP) - это промышленный стандарт стека протоколов, разработанный для глобальных сетей.

Стандарты TCP/IP опубликованы в серии документов, названных Request for Comment (RFC). Документы RFC описывают внутреннюю работу сети Internet. Некоторые RFC описывают сетевые сервисы или протоколы и их реализацию, в то время как другие обобщают условия применения. Стандарты TCP/IP всегда публикуются в виде документов RFC, но не все RFC определяют стандарты.

Стек был разработан по инициативе Министерства обороны США (Department of Defence, DoD) в конце 70-х годов прошлого столетия для связи экспериментальной сети ARPAnet с другими подчиненными сетями. Стек представляет собой набор общих протоколов для разнородной вычислительной среды. Сеть ARPA поддерживала разработчиков и исследователей в военных областях. В сети ARPA связь между двумя компьютерами осуществлялась с использованием протокола Internet Protocol (IP), который и по сей день является одним из основных в стеке TCP/IP и фигурирует в названии стека.

Большой вклад в развитие стека TCP/IP внес университет Беркли, реализовав протоколы стека в своей версии ОС UNIX. Широкое распространение ОС UNIX привело и к широкому распространению протокола IP и других протоколов стека. В основном на этом же стеке работает всемирная информационная сеть Internet, чье подразделение Internet Engineering Task Force (IETF) вносит основной вклад в совершенствование стандартов стека, публикуемых в форме спецификаций RFC.

Итак, лидирующая роль стека TCP/IP объясняется следующими его свойствами:

·         Это наиболее завершенный стандартный и в то же время популярный стек сетевых протоколов, имеющий многолетнюю историю.

·         Почти все большие сети передают основную часть своего трафика с помощью протокола TCP/IP.

·         Это - метод получения доступа к сети Internet.

·         Этот стек служит основой для создания intranet- корпоративной сети, использующей транспортные услуги Internet и гипертекстовую технологию WWW, разработанную в Internet для организации локальной сети.

·         Все современные операционные системы поддерживают стек TCP/IP.

·         Это гибкая технология для соединения разнородных систем, как на уровне транспортных подсистем, так и на уровне прикладных сервисов.

·         Это устойчивая масштабируемая межплатформенная среда для приложений клиент-сервер.

Структура стека TCP/IP. Краткая характеристика протоколов

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

Структура протоколов TCP/IP и его соотношение с моделью OSI приведены ниже.

Таблица 2.1 - Стек TCP/IP

OSI

Протоколы

TCP/IP

7

WWW, SNMP, FTP, telnet, SMTP, TFTP

Указанные протоколы используют TCP/IP в качестве транспортного протокола.

6

5

Основной уровень

TCP, UDP

 

TCP/IP

4

3

Уровень межсетевого взаимодействия

IP, ICMP, RIP, OSPF, ARP, RARP

2

Ethernet, Token Ring, FDDI, CDII, X.25

TCP/IP обеспечивает работу этих протоколов канального уровня

1

 

Самый нижний  уровень соответствует физическому и канальному уровням модели OSI. Этот уровень в протоколах TCP/IP не регламентируется, но поддерживает все популярные стандарты физического и канального уровня: для локальных сетей это – Ethernet, Token Ring, FDDI, Fast Ethernet, 100VG-AnyLAN, для глобальных сетей - протоколы соединений "точка-точка" SLIP и PPP, протоколы территориальных сетей с коммутацией пакетов X.25, frame relay. Разработана также специальная спецификация, определяющая использование технологии ATM в качестве транспорта канального уровня. Обычно при появлении новой технологии локальных или глобальных сетей она быстро включается в стек TCP/IP за счет разработки соответствующего RFC, определяющего метод инкапсуляции пакетов IP в ее кадры.

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

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

К уровню межсетевого взаимодействия относятся и все протоколы, связанные с составлением и модификацией таблиц маршрутизации, такие как протоколы сбора маршрутной информации RIP (Routing Internet Protocol) и OSPF (Open Shortest Path First), а также протокол межсетевых управляющих сообщений ICMP (Internet Control Message Protocol). Последний протокол предназначен для обмена информацией об ошибках между маршрутизаторами сети и узлом - источником пакета. С помощью специальных пакетов ICMP сообщается о невозможности доставки пакета, о превышении времени жизни или продолжительности сборки пакета из фрагментов, об аномальных величинах параметров, об изменении маршрута пересылки и типа обслуживания, о состоянии системы и т.п.  О маршрутизаторах подробно будет рассказано позже.

Следующий уровень называется основным. На этом уровне функционируют протокол управления передачей TCP (Transmission Control Protocol) и протокол дейтаграмм пользователя UDP (User Datagram Protocol). Протокол TCP обеспечивает надежную передачу сообщений между удаленными прикладными процессами за счет образования виртуальных соединений. Протокол UDP обеспечивает передачу прикладных пакетов дейтаграммным способом, как и IP, и выполняет только функции связующего звена между сетевым протоколом и многочисленными прикладными процессами. В стеке протоколов TCP/IP протокол TCP (Transmission Control Protocol) работает так же, как и протокол UDP, на транспортном уровне. Он обеспечивает надежную транспортировку данных между прикладными процессами путем установления логического соединения.

Наконец, на самом верху мы видим прикладные протоколы, базирующиеся на TCP/IP, о которых будет рассказано позже.

Тема 3.               Каким образом TCP обеспечивает надежную и быструю доставку.

Сегменты TCP

Единицей данных протокола TCP является сегмент. Информация, поступающая к протоколу TCP в рамках логического соединения от протоколов более высокого уровня, рассматривается протоколом TCP как неструктурированный поток байт. Поступающие данные буферизуются средствами TCP. Для передачи на сетевой уровень из буфера "вырезается" некоторая непрерывная часть данных, называемая сегментом.

В протоколе TCP предусмотрен случай, когда приложение обращается с запросом о срочной передаче данных (бит PSH в запросе установлен в 1). В этом случае протокол TCP, не ожидая заполнения буфера до уровня размера сегмента, немедленно передает указанные данные в сеть. О таких данных говорят, что они передаются вне потока - out of band.

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

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

Несложная формула помогает понять, что при таком подходе достигается наилучшее соотношение между полезными данными и служебной информацией, то есть достигается минимальный уровень накладных расходов на передачу. Пусть требуется передать полезную информацию объема V байтов, размер TCP пакета равен V_TCP, размер IP пакета равен V_IP,  длина TCP заголовка равна Z_TCP, а длина заголовка IP пакета равна Z_IP. Тогда суммарный объем передаваемых данных составит V+Z_TCP*(V/V_TCP)+Z_IP*((V+Z_TCP*(V/V_TCP))/V_IP) байтов. То есть потребуется передать V байтов полезных данных, V/V_TCP заголовков уровня TCP, каждый из которых занимает Z_TCP байтов. Затем, поскольку IP протоколу необходимо передать все TCP пакеты, то есть V+Z_TCP*(V/V_TCP) байтов, то он сформирует (V+Z_TCP*(V/V_TCP))/V_IP пакетов длиной Z_IP байтов. Минимальный объем служебных данных получается, если на один TCP заголовок приходится ровно один IP заголовок. В противном случае, либо формируются лишние TCP заголовки (если размер TCP пакета меньше размера области данных IP пакета), либо формируются лишние IP заголовки (если TCP  пакет не укладывается в IP пакет и его надо посылать при помощи двух и более IP пакетов).

Организация клиент-серверной связи

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

Клиент – это инициатор связи, тот, кто формирует запрос на соединение и передает его в сеть. Очевидно, что в пакете должен быть указан адрес (имя) компьютера, которому необходимо передать пакет. Кроме того, в пакете должно быть некоторое имя (адрес) серверного приложения.

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

В качестве адреса компьютера используется IP-адрес, а в качестве адреса приложения используется номер порта.

Порты и установление TCP-соединений

В протоколах TCP и  UDP для связи с прикладными процессами используются порты.

Важно! В данном случае имеются в виду логические, а не физические порты!

Номера портам присваиваются следующим образом: имеются стандартные, зарезервированные номера (например, номер 21 закреплен за сервисом FTP, 23 - за telnet), а менее известные приложения пользуются произвольно выбранными локальными номерами.

Получается, что серверное приложение заранее объявляет о номере порта, по которому оно ожидает пакеты. Клиенты должны указывать этот номер порта сервера. Таким образом реализуется связь протоколом UDP.

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

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

 

 

 

 

Одна оконечная точка может участвовать в нескольких соединениях, то есть один сервер может одновременно обслуживать нескольких клиентов.

Установление соединения выполняется в следующей последовательности:

Концепция квитирования

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

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

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

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

Рис. 6.1. Метод подтверждения корректности передачи кадров с простоем источника

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

Рис. 6.2. Метод "окна" - непрерывная отправка пакетов

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

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

Реализация скользящего окна в протоколе TCP

В протоколе TCP реализована разновидность алгоритма квитирования с использованием окна.

Только положительные квитанции

Квитанция посылается только в случае правильного приема данных, отрицательные квитанции не посылаются. Таким образом, отсутствие квитанции означает либо прием искаженного сегмента, либо потерю сегмента, либо потерю квитанции.  Цель – экономия сетевого трафика.

Нумерация байт, а не сегментов

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

Цель – экономия сетевого трафика, так как может быть отправлена одна положительная квитанция на несколько полученных пакетов.

Выбор тайм-аута

Выбор времени ожидания (тайм-аута) очередной квитанции является важной задачей, результат решения которой влияет на производительность протокола TCP.

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

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

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

Реакция на перегрузку сети

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

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

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

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

Формат сообщений TCP (для ознакомительного чтения)

Сообщения протокола TCP называются сегментами и состоят из заголовка и блока данных. Заголовок сегмента имеет следующие поля:

 

Тема 4.               Адресация в IP-сетях.

Типы адресов: физический (MAC-адрес), сетевой (IP-адрес) и символьный (DNS-имя).

Каждый компьютер в сети TCP/IP имеет адреса трех уровней:

§  Локальный адрес узла, определяемый технологией, с помощью которой построена отдельная сеть, в которую входит данный узел. Для узлов, входящих в локальные сети - это МАС-адрес сетевого адаптера или порта маршрутизатора, например, 11-А0-17-3D-BC-01. Эти адреса назначаются производителями оборудования и являются уникальными адресами, так как управляются централизовано. Для всех существующих технологий локальных сетей МАС-адрес имеет формат 6 байтов: старшие 3 байта - идентификатор фирмы производителя, а младшие 3 байта назначаются уникальным образом самим производителем.

Для узлов, входящих в глобальные сети, такие как Х.25 или frame relay, локальный адрес назначается администратором глобальной сети.

§  IP-адрес, состоящий из 4 байт, например, 109.26.17.100. Этот адрес используется на сетевом уровне. Он назначается администратором во время конфигурирования компьютеров и маршрутизаторов. IP-адрес состоит из двух частей: номера сети и номера узла. Номер сети может быть выбран администратором произвольно, либо назначен по рекомендации специального подразделения Internet (Network Information Center, NIC), если сеть должна работать как составная часть Internet. Обычно провайдеры услуг Internet получают диапазоны адресов у подразделений NIC, а затем распределяют их между своими абонентами.

Номер узла в протоколе IP назначается независимо от локального адреса узла. Деление IP-адреса на поле номера сети и номера узла - гибкое, и граница между этими полями может устанавливаться весьма произвольно.

Узел может входить в несколько IP-сетей. В этом случае узел должен иметь несколько IP-адресов, по числу сетевых связей. Таким образом, IP-адрес характеризует не отдельный компьютер или маршрутизатор, а одно сетевое соединение.

§  Символьный идентификатор-имя, например, SERV1.IBM.COM. Этот адрес назначается администратором и состоит из нескольких частей, например, имени машины, имени организации, имени домена. Такой адрес, называемый также DNS-именем, используется на прикладном уровне, например, в протоколах FTP или telnet.

Три основных класса IP-адресов. Дополнительные классы.

IP-адрес имеет длину 4 байта и обычно записывается в виде четырех чисел, представляющих значения каждого байта в десятичной форме, и разделенных точками, например:

128.10.2.30 - традиционная десятичная форма представления адреса,

10000000 00001010 00000010 00011110 - двоичная форма представления этого же адреса.

На рисунке 3.1 показана структура IP-адреса.

Класс А

0

N сети

N узла

Класс В

1

0

N сети

N узла

Класс С

1

1

0

N сети

N узла

Класс D

1

1

1

0

адрес группы multicast

Класс Е

1

1

1

1

0

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

Рис. 3.1. Структура IР-адреса

Адрес состоит из двух логических частей - номера сети и номера узла в сети. Какая часть адреса относится к номеру сети, а какая к номеру узла, определяется значениями первых битов адреса:

На рисунках изображены зеленым цветом – адрес сети, розовым – адрес узла.

§  Если адрес начинается с 0, то сеть относят к классу А, и номер сети занимает один байт, остальные 3 байта интерпретируются как номер узла в сети. Сети класса А имеют номера в диапазоне от 1 до 126. (Номер 0 не используется, а номер 127 зарезервирован для специальных целей, о чем будет сказано ниже.)

 

 

 

 

§  Если первые два бита адреса равны 10, то сеть относится к классу В и является сетью средних размеров. В сетях класса В под адрес сети и под адрес узла отводится по 16 битов, то есть по 2 байта.

 

 

 

 

§  Если адрес начинается с последовательности 110, то это сеть класса С. Под адрес сети отводится 24 бита, а под адрес узла - 8 битов.

 

 

 

 

§  Если адрес начинается с последовательности 1110, то он является адресом класса D и обозначает особый, групповой адрес - multicast. Если в пакете в качестве адреса назначения указан адрес класса D, то такой пакет должны получить все узлы, которым присвоен данный адрес.

§  Если адрес начинается с последовательности 11110, то это адрес класса Е, он зарезервирован для будущих применений.

 

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

Класс

Наименьший адрес

Наибольший адрес

A

01.0.0

126.0.0.0

B

128.0.0.0

191.255.0.0

C

192.0.1.0.

223.255.255.0

D

224.0.0.0

239.255.255.255

E

240.0.0.0

247.255.255.255

Соглашения о специальных адресах: broadcast, multicast, loopback

В протоколе IP существует несколько соглашений об особой интерпретации IP-адресов:

если IР-адрес состоит только из двоичных нулей,

0 0 0 0 ................................... 0 0 0 0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

то он обозначает адрес того узла, который сгенерировал этот пакет;

если в поле номера сети стоят 0,

0 0 0 0 .......0

Номер узла

то по умолчанию считается, что этот узел принадлежит той же самой сети, что и узел, который отправил пакет;

если все двоичные разряды IP-адреса равны 1,

1 1 1 1 .........................................1 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

то пакет с таким адресом назначения должен рассылаться всем узлам, находящимся в той же сети, что и источник этого пакета. Такая рассылка называется ограниченным широковещательным сообщением (limited broadcast);

если в поле адреса узла назначения стоят сплошные 1,

Номер сети

1111................11

то пакет, имеющий такой адрес рассылается всем узлам сети с заданным номером. Такая рассылка называется широковещательным сообщением (broadcast);

адрес 127.0.0.1 зарезервирован для организации обратной связи при тестировании работы программного обеспечения узла без реальной отправки пакета по сети. Этот адрес имеет название loopback.

Из таблицы видно, что адреса со всеми 0 или 1 используют для широковещательной, групповой передачи данных и т.п. Номер 127 введен для проверки взаимодействия между процессами на одной машине. Когда приложение использует этот адрес, стек протоколов TCP/IP возвращает эти данные приложению, ничего не посылая в сеть.

Также из таблицы видно, что в протоколе IP различают два типа широковещания: направленное и ограниченное.

 

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

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

Рассмотрим пример. Пусть А-Е - станции, М1 и М2 - маршрутизаторы, а п1-п4 - порты маршрутизаторов. 128.1, 128.2, 128.3 - адреса подсетей. Тогда, если станция А посылает пакет с адресом:

255.255.255.255           - пакет передается станции Б и порту п1 маршрутизатора М1

128.1.255.255               - то же самое

128.2.255.255               - станциям В и Г, порт п2 (М1) и порт п3 (М2)

128.3.255.255               - станциям Д и Е, порт п4 (М2)

Выбор адреса

Прежде чем вы начнете использовать сеть с TCP/IP, вы должны получить один или несколько официальных сетевых номеров. Выделением номеров (как и многими другими вопросами) занимается DDN Network Information Center (NIC)

SRI International, Room EJ210, 333 Ravenswood Avenue, Menlo Park, California 94025, USA. Тел. 1-800-235-3155. E-mail: NIC@NIC.DDN.MIL

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

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

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

IP-адреса для сетей, которые никогда не будут подсоединены непосредственно к Internet

Предположим, вы знаете, что ваша внутренняя частная сеть никогда не будет подсо­единена непосредственно к Internet. Это становится все более распространенным явлением по мере того, как организации переходят к защите всей своей сети прокси-серверами и брандмауэрами. Стоит ли использовать после этого старую нумерацию для адресов? Конечно же, нет. Существует специальный набор сетевых адресов, за­резервированный как раз для такого использования. Эти адреса определены в RFC 1918; используя такие адреса, вы можете использовать существенно большее адрес­ное пространство, чем при каком-либо другом способе.

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

Имеются следующие адреса для локальных сетей:

•    От 10.0.0.0 до 10.255.255.255 (сеть класса А)

•    От 172.16.0.0 до 172.31.255.255 (16 последовательных сетей класса В)

•    От 192.168.0.0 до 192.168.255.255 (256 последовательных сетей класса С)

Например, если вам нужно создать тестовую сеть, или у вас есть иная причина предполагать, что вы никогда не будете подсоединяться к Internet, но вам нужно использовать TCP/IP для вашего сетевого протокола, то вам следует использовать адреса из этого специального набора адресов. Вам следует также использовать эти адреса для вашей внутренней сети, если вы используете для подсоединения к Internet прокси-сервер или брандмауэр, который защищает от просмотра ваш фактический IP-адрес. Таким прокси-сервером является Microsoft Proxy Server2. Если вы исполь­зуете брандмауэр или прокси-сервер, то вам требуются «реальные» IP-адреса только для машин, которые находятся вне вашего брандмауэра, то есть видны в Internet целиком, а это позволяет экономить пространство IP-адресов.                                                                                                                                        

 

Hosted by uCoz