Занятие 2. Протокол TCP/IP
(Продолжительность занятия 25 минут)
Сетевые протоколы предназначены для соединения клиентских компьютеров с сервером. По сути, это язык для обмена данными между компьютерами; он необходим и в Интернете, и в интрасети. В основе Интернета лежит протокол управления передачей/межсетевой протокол (Transmission Control Protocol/Internet Protocol, TCP/IP). Его можно применять и в интрасети, хотя для LAN лучше подойдут специально разработанные протоколы, например NetBEUI. Это занятие посвящено протоколу TCP/IP, его настройке и устранению неисправностей. Кроме того, Вы познакомитесь с применением протокола FTP для передачи файлов через глобальную сеть.
Уровни TCP/IP
При описании сетей традиционно применяется многоуровневая эталонная модель взаимодействия открытых систем (Open Systems Interconnection Reference Model, OSI), позволяющая отделить друг от друга назначение и функции различных компонентов сетевой среды. TCP/IP — набор различных протоколов, работающих на нескольких уровнях модели OSI. Попросту говоря, это последовательность уровней, которые проходит пакет данных, следуя от одного компьютера к другому (рис. 2.1).
Рис. 2.1 Уровни протокола TCP/IP
Для интерпретации сообщений (или пакетов), передаваемых между уровнями, применяются соответствующие API или соглашения. Приложения, разработанные для Windows, не обмениваются сообщениями непосредственно с протоколами семейства TCP/IP — они обращаются к соответствующим функциям интерфейса Windows Sockets (см. рис. 2.1). API Windows Sockets управляет всеми уровнями ниже прикладного, включая передачу пакета через IP и сетевую карту на физическом уровне. Windows Sockets позволяет разрабатывать приложения для различных реализаций TCP/IP.
А теперь запустите видеоролик Chap02.exe с прилагаемого к книге компакт-диска — он познакомит Вас с передачей данных по многоуровневой структуре TCP/IP.
Прикладной уровень
Приложение в данном контексте — это отдельный протокол, созданный на прикладном уровне стека TCP/IP. Существуют десятки стандартных протоколов прикладного уровня; более того, никто не запрещает Вам создавать свои собственные. Ниже перечислены несколько популярных протоколов прикладного уровня TCP/IP.
Протокол |
Название |
Описание |
DNS |
Domain Name System (Система имен доменов) |
Распределенная база данных, которая позволяет приложениям узнавать IP-адреса компьютеров сети по их именам |
FTP |
File Transfer Protocol (Протокол передачи файлов) |
Позволяет копировать файлы с одного подключенного к Интернету компьютера на другой |
Telnet |
Telecommunications Network Protocol (Протокол сетевых телекоммуникаций) |
Средства удаленной регистрации на компьютерах под управлением различных операционных систем |
HTTP |
Hypertext Transfer Protocol (Протокол передачи гипертекстовой информации) |
Протокол для поиска и загрузки распределенных гипертекстовых документов и перемещения между ними. На основе этого протокола функционирует WWW |
NNTP |
Network News Transport Protocol (Протокол передачи новостей) |
Протокол для доступа к серверам новостей в Интернете |
SMTP |
Simple Mail Transfer Protocol (Упрощенный протокол передачи почты) |
Протокол обмена электронной почтой через Интернет |
Транспортный уровень
Транспортный уровень регулирует поток данных между компьютерами сети IP. Набор TCP/IP включает два протокола транспортного уровня: TCP и протокол пользовательских дейтаграмм (User Datagram Protocol, UDP). TCP ориентирован на соединение и гарантированную передачу данных между двумя компьютерами по каналам, не отличающимся особой надежностью. TCP разбивает пользовательское сообщение на блоки не больше 64 кб и передает их сетевому уровню для маршрутизации и доставки. Надежная доставка данных обеспечивается с помощью уведомлений, нумерации пакетов, средств обработки тайм-аутов и контрольных сумм. Поскольку TCP берет всю эту работу на себя, прикладной уровень просто предполагает, что данные, переданные им другому компьютеру, доставлены без искажений. Именно благодаря этим свойствам TCP столь популярен.
Канальный и физический уровни
При разработке сетевых приложений можно считать, что забота об этих уровнях возлагается на операционную систему. Все, что должно сделать приложение, — выбрать протокол и установить соединение, например, средствами интерфейса типа Microsoft Win32 Internet (WinInet) API. После этого приложение может сосредоточиться на передаче и приеме данных, доверив всю заботу о двух нижних уровнях Windows и сетевому драйверу.
Выбор протокола прикладного уровня
При разработке приложения, ориентированного на сеть TCP/IP, нужно решить, может ли оно полагаться на существующий сетевой протокол прикладного уровня или Вам придется создавать свой собственный. Выбор зависит от сервера, клиентом которого будет Ваше приложение. Например, если приложение должно поддерживать просмотр Web, стоит воспользоваться протоколом HTTP. Однако, если Ваше приложение — клиент-серверное, причем его компоненты обмениваются данными только между собой, вероятно, лучше разработать свой протокол.
Настройка TCP/IP
Для настройки TCP/IP на компьютере-клиенте под управлением Windows 95 необходима следующая информация (рис. 2.2).
Параметр | Описание |
IP-адрес | IP-адрес — это 32-разрядный логический адрес (разделенный на четыре октета), используемый для идентификации TCP/IР-хоста* . Каждый IP-адрес состоит из двух частей: идентификатора сети и идентификатора хоста. Первый одинаков для всех хостов, расположенных в одной физической сети, а второй определяет конкретный хост в сети. Каждому компьютеру, подключенному к сети TCP/IP, необходим уникальный IP-адрес |
Маска подсети |
Маска подсети предназначена для разделения IP-адреса на идентификатор сети и идентификатора хоста. При попытке соединения между TCP/IP-хостами с помощью маски подсети выясняется, где находится адресат — в локальной сети или за ее пределами |
Шлюз по умолчанию |
Для соединения с хостом за пределами локальной сети нужно задать IP-адрес шлюза по умолчанию. Шлюзу по умолчанию TCP/IP пересылает пакеты, адресованные сетям, маршрут к которым не известен локальному хосту. Если шлюз по умолчанию не указан, возможности соединения ограничены локальной сетью и сетями, маршрут к которым указан в локальной таблице маршрутизации |
Маска подсети |
Маска подсети предназначена для разделения IP-адреса на идентификатор сети и идентификатора хоста. При попытке соединения между TCP/IP-хостами с помощью маски подсети выясняется, где находится адресат — в локальной сети или за ее пределами |
Шлюз по умолчанию |
Для соединения с хостом за пределами локальной сети нужно задать IP-адрес шлюза по умолчанию. Шлюзу по умолчанию TCP/IP пересылает пакеты, адресованные сетям, маршрут к которым не известен локальному хосту. Если шлюз по умолчанию не указан, возможности соединения ограничены локальной сетью и сетями, маршрут к которым указан в локальной таблице маршрутизации |
Рис.2.2 Диалоговое окно свойств TCP/IP в Windows NT
Конфигурирование TCP/IP часто сопряжено с проблемами, особенно при настройке большого числа компьютеров локальной сети. Разумная альтернатива, заметно упрощающая администрирование, — протокол динамической конфигурации хоста (Dynamic Host Configuration Protocol, DHCP). Он обеспечивает автоматическую настройку и управление пулом динамических IP-адресов.
Использование FTP
В этом упражнении Вы познакомитесь с приложением-клиентом протокола FTP, которое устанавливается вместе с другими утилитами TCP/IP. Это приложение командной строки; у независимых разработчиков можно приобрести аналогичные программы с поддержкой графического интерфейса. Сервер FTP устанавливается, в частности, вместе с Microsoft Personal Web Server, однако имейте в виду, что автоматический запуск сервиса FTP по умолчанию не предусмотрен — это нужно делать вручную.
> Запуск сервиса FTP
> Подключение к серверу FTP
ftp localhost
anonymous
help
Устранение неисправностей TCP/IP
На случай проблем с сетью вместе с TCP/IP устанавливаются средства проверки клиентского компьютера, помогающие устранить неисправности: утилиты WINIPCFG, PING и TRACERT.
WINIPCFG
Эта утилита предназначена для проверки параметров конфигурации TCP/IP, включая IP-адрес, маску подсети и шлюз по умолчанию. Она поможет выяснить, прошла ли инициализация и не дублируются ли IP-адреса. > Запуск WINIPCFG
PING
Проверив конфигурацию при помощи WINIPCFG, воспользуйтесь утилитой PING (это сокращение от английского названия Packet Internet Groper, которое переводится как «пакетный исследователь сетей») для проверки соединения. Это диагностическое средство предназначено для тестирования TCP/IР-соединений и выявления неисправностей. Средствами PING можно также проверить доступность и работоспособность конкретного TCP/IP-хоста.
> Применение PING
Если все прошло гладко, Вы увидите примерно такое сообщение:
Pinging 1Р_адрес with 32 bytes of data:
Reply from 1Р_адрес: bytes= x time<10ms TTL= x
Reply from 1Р_адрес: bytes= x time<10ms TTL= x
Reply from 1Р_адрес: bytes= x time<10ms TTL= x
Reply from 1Р_адрес: bytes= x time<10ms TTL= x
> Проверка конфигурации компьютера средствами WINIPCFG и PING
Теперь Вы узнаете, как проверить конфигурацию компьютера и соединений средствами утилит WINIPCFG и PING:
Рис.2.3 Проверка конфигурации компьютера средствами WINIPCFG и PING
Winipcfg
и щелкните кнопку ОК.
Ping 127.0.0.1
Ping IР-адрес_локального_хоста
Ping IР-адрес_шлюза_по_умолчанию
Ping IР-адрес_удаленного_хоста
TRACERT
Утилита TRACERT предназначена для получения детальной информации о маршруте к удаленному компьютеру. Если утилита PING предоставляет информацию о связи с хостом (в локальной или удаленной сети) и о скорости обмена (показывая в миллисекундах время, которое пакет затрачивает на путешествие между хостами), TRACERT показывает весь путь пакета до удаленного компьютера. Когда Вам не удается соединиться с компьютером назначения, TRACERT поможет выяснить, где именно разорвана связь.
> Применение TRACERT
tracert имя_удаленного_компьютера
Резюме
В основе Интернета лежит протокол TCP/IP. Фактически он объединяет различные протоколы, занимающие несколько уровней модели OSI. Выбор протокола прикладного уровня зависит от сервера, клиентом которого будет Ваше приложение. В состав TCP/IP входит несколько утилит для поиска и устранения неисправностей в работе сети.