Передача данных в компьютерных сетях
ые компании. Кроме
того, многие организации использовали TCP/IP для создания своих
корпоративных сетей, которые не являются компонентами большой Internet. В
наши же дни Internet проникает буквально во все сферы человеческой жизни, и
сейчас уже всерьез говорят о влиянии мировой сети на наше мировоззрение и
мировосприятие.
Основы технологии internet.
Итак, создатели технологии internet исходили из двух основополагающих
соображений:
. невозможно создать единую физическую сеть, которая позволит удовлетворить
потребности всех пользователей;
. пользователям нужен универсальный способ для установления соединений друг
с другом.
В пределах каждой физической сети, подсоединенные к ней компьютеры,
используют ту или иную технологию (Ethernet, Token Ring, FDDI, ISDN,
соединение типа "точка-точка", а в последнее время к этому списку
добавились сеть АТМ и даже беспроводные технологии). Между механизмами
коммуникаций, зависящими от данных физических сетей, и прикладными
системами встраивается новое программное обеспечение, которое обеспечивает
соединение различных физических сетей друг с другом. При этом детали этого
соединения "скрыты" от пользователей и им предоставляется возможность
работать как бы в одной большой физической сети. Такой способ соединения в
единое целое множества физических сетей и получила название internet. Для
соединения двух и более сетей в internet используются маршрутизаторы
(routers) - компьютеры, которые физически соединяют сети друг с другом и с
помощью специального программного обеспечения передают пакеты из одной сети
в другую.
Технология internet не навязывает какой-то определенной топологии
межсетевых соединений. Добавление новой сети к internet не влечет за собой
ее подсоединения к некоторой центральной точке коммутации или установки
непосредственных физических соединений со всеми уже входящими в internet
сетями. Маршрутизатор "знает" топологию internet за пределами тех
физических сетей, которые он соединяет, и, основываясь на адресе сети
назначения, передает пакет по тому или иному маршруту. В internet
используются универсальные идентификаторы подсоединенных к ней компьютеров
(адреса), поэтому любые две машины имеют возможность взаимодействовать друг
с другом. В internet также должен быть реализован принцип независимости
пользовательского интерфейса от физической сети, то есть должно
существовать множество способов установления соединений и передачи данных,
одинаковых для всех физических сетевых технологий.
Фундаментальным принципом internet является равнозначность всех
объединенных с ее помощью физических сетей: любая система коммуникаций
рассматривается как компонент internet, независимо от ее физических
параметров, размеров передаваемых пакетов данных и географического
масштаба.
Рис. 1.
Внутренняя структура сети internet - физические сети соединены с помощью
маршрутизаторов.
Семейство протоколов ТСР/IP позволяет построить универсальную сеть,
реализующую принципы, которые рассмотрены в предыдущем разделе, и включает
в себя протоколы 4-х уровней коммуникаций.
Рис. 2.
Четыре уровня стека протоколов TCP/IP.
. Уровень сетевого интерфейса отвечает за установление сетевого
соединения в конкретной физической сети - компоненте internet, к
которой подсоединен компьютер. На этом уровне работают драйвер
устройства в операционной системе и соответствующая сетевая плата
компьютера.
. Сетевой уровень - основа ТСР/IP. Именно на этом уровне реализуется
принцип межсетевого соединения, в частности маршрутизация пакетов
по internet. На сетевом уровне протокол реализует ненадежную службу
доставки пакетов по сети от системы к системе без установления
соединения (connectionless packet delivery service). Это означает,
что будет выполнено все необходимое для доставки пакетов, однако
эта доставка не гарантируется. Пакеты могут быть потеряны, переданы
в неправильном порядке, продублированы и т.д. Служба, работающая
без установления соединения, обрабатывает пакеты независимо друг от
друга. Но главное, что именно на этом уровне принимается решение о
маршрутизации пакета по межсетевым соединениям.
. Надежную передачу данных реализует следующий уровень, транспортный,
на котором два основных протокола, TCP и UDP, осуществляют связь
между машиной - отправителем пакетов и машиной-адресатом.
. Наконец, прикладной уровень - это приложения типа клиент-сервер,
базирующиеся на протоколах нижних уровней. В отличие от протоколов
остальных трех уровней, протоколы прикладного уровня занимаются
деталями конкретного приложения и "не интересуются" способами
передачи данных по сети. Среди основных приложений ТСР/IP,
имеющихся практически в каждой его реализации, - протокол эмуляции
терминала Telnet, протокол передачи файлов FTP, протокол
электронной почты SMTP, протокол управления сетью SNMP,
используемый в системе World Wide Web протокол передачи гипертекста
НТТР и др.
На рисунке 3 показано, как осуществляется соединение двух сетей "с
точки зрения" TCP/IP. Программное обеспечение IP-протокола с помощью
маршрутизатора передает пакеты из сети Ethernet в сеть Token Ring.
Протоколы верхних уровней, прикладного и транспортного, осуществляют
соединения между хост-компьютерами, клиентом и сервером приложения, в то
время как IP обеспечивает связь между конечной и промежуточной системами.
Рис. 3.
Две сети, соединенные с помощью маршрутизатора, "с точки зрения" TCP/IP.
Поскольку в internet детали физических соединений скрыты от
приложений, прикладной уровень совершенно "не заботится" о том, что клиент
приложения работает в Ethernet, а сервер подключен к сети Token Ring. Между
конечными системами может быть несколько десятков маршрутизаторов и
множество промежуточных физических сетей различных типов, но приложение
будет воспринимать этот конгломерат как единую физическую сеть. Это и
обуславливает основную силу и привлекательность технологии internet.
Семейство протоколов TCP/IP.
Хотя рассматриваемый стек протоколов и называется TCP/IP, сами
протоколы TCP и IP являются важнейшими, но не единственными представителями
этого семейства. Каждый уровень коммуникаций обслуживается несколькими
протоколами. Рассмотрим их более подробно.
TCP и UDP - протоколы транспортного уровня, организующие поток данных
между конечными системами для приложений верхнего уровня. Эти протоколы
значительно отличаются друг от друга.
TCP (Transmission Control Protocol) обеспечивает надежную передачу
данных между двумя хостами. Он позволяет клиенту и серверу приложения
устанавливать между собой логическое соединение и затем использовать его
для передачи больших массивов данных, как если бы между ними существовало
прямое физическое соединение. Протокол позволяет осуществлять дробление
потока данных, подтверждать получение пакетов данных, задавать таймауты
(которые позволяют подтвердить получение информации), организовывать
повторную передачу в случае потери данных и т.д. Поскольку этот
транспортный протокол реализует гарантированную доставку информации,
использующие его приложения получают возможность игнорировать все детали
такой передачи.
Протокол UDP (User Datagram Protocol) реализует гораздо более простой
сервис передачи, обеспечивая подобно протоколам сетевого уровня, ненадежную
доставку данных без установления логического соединения, но, в отличие от
IP, - для прикладных систем на хост-компьютерах. Он просто посылает пакеты
данных, дейтаграммы (datagrams), с одной машины на другую, но не
предоставляет никаких гарантий их доставки. Все функции надежной передачи
должны встраиваться в прикладную систему, использующую UDP. Протокол UDP
имеет и некоторые преимущества перед TCP. Для установления логических
соединений нужно время, и они требуют дополнительных системных ресурсов для
поддержки на компьютере информации о состоянии соединения. UDP занимает
системные ресурсы только в момент отправки или получения данных. Поэтому
если распределенная система осуществляет непрерывный обмен данными между
клиентом и сервером, связь с помощью транспортного уровня TCP окажется для
нее более эффективной. Если же коммуникации между хост-компьютерами
осуществляются редко, предпочтительней использовать протокол UDP.
Почему же существуют два транспортных протокола TCP и UDP, а не один
из них? Дело в том, что они предоставляют разные услуги прикладным
процессам. Большинство прикладных программ пользуются только одним из них.
Программист выбирает тот протокол, который наилучшим образом соответствует
его потребностям. Если нужна надежная доставка, то лучшим может быть TCP,
если же нужна доставка датаграмм, то лучше может быть UDP. Если нужна
эффективная доставка по длинному и ненадежному каналу передачи данных, то
лучше может подойти протокол TCP, если же нужна эффективность на быстрых
сетях с короткими соединениями, то лучшим может быть протокол UDP.
| | скачать работу |
Передача данных в компьютерных сетях |