Функционирование сети TCP/IP
Чтобы лучше понять, как работают некоторые протоколы из набора TCP/IP, рассмотрим работу небольшой сети, состоящей из двух компьютеров, на которых запущено несколько сетевых приложений.
Итак, на одном компьютере работает Саша, на другом - Коля. Их компьютеры видны в сети под теми же именами. Саша запустил приложение, каждые 10 секунд отправляющее сообщения, которые появляются на экране Коли. На Сашином компьютере также работает приложение для отправки Коле электронных денег. И, наконец, Саша использует Web-обозреватель для доступа к Web-серверу, работающему на Колином компьютере.
Приложение Саши, отправляющее сообщения, не использует подтверждения о доставке, т.к. в любом случае через 10 секунд отправится очередное сообщение, и необязательно знать, получил пользователь последнее сообщение или нет. Для передачи важных сведений, а также электронных денег используется функция подтверждения. Приложение для сообщений использует протокол UDP, а для отправки денег - TCP, т.к. UDP, в отличие от TCP, не использует подтверждения.
Однако эти приложения не заработают, пока не будут произведены некоторые подготовительные действия. Например, в Ethernet-кадрах, которые идут от Саши к Коле, должна быть информация, которой Саша пока не располагает, - IP-адрес получателя и его MAC-адрес.
Саша знает имя своего компьютера, IP- и MAC-адрес, т.к. все эти параметры прописаны в конфигурации его компьютера. Остается узнать только IP- и MAC-адрес компьютера Коли. Для этого Саша должен воспользоваться системой доменных имен (DNS) и протоколом разрешения адресов (ARP). Саша знает IP-адрес DNS, т.к. он прописан в конфигурации Сашиной машины. Далее Саша отправляет DNS-запрос системе DNS, спрашивая у нее IP-адрес Колиной машины. DNS отвечает адресом 10.1.1.2. Но Саше все еще нужен адрес Ethernet MAC, использующий адрес 10.1.1.2, поэтому он выполняет широковещательный ARP-зарос. Такой запрос отправляется по широковещательному Ethernet-адресу, чтобы все компьютеры, находящиеся в сети, его получили. Поскольку компьютер Коли подключен к сети, он получает этот запрос. А так как адрес его компьютера 10.1.1.2, а ARP-запрос ищет MAC-адрес, связанный с адресом 10.1.1.2, Коля сообщает свой MAC-адрес. На рис.1 схематически показан весь этот процесс.
Рис. 1. Работа служб DNS и протокола ARP
Теперь Саша знает адреса IP и Ethernet MAC, которые необходимы для отправки данных Коле. Весь этот процесс проходит автоматически, невидимо для пользователя, но важно знать, как это все происходит, чтобы уметь решать возникающие проблемы.
Что делать, если после всех этих приготовлений приложения все равно не работают? Любой сетевой администратор скажет вам, что дело в приложениях. Если же вы обратитесь в службу поддержки приложений, они наверняка скажут вам, что проблема в сети. Что же делать? В этом случае Саше следует проверить наличие связи с компьютером Коли по сети с помощью команды ping. Команда ping (Packet Internet Groper) использует протокол ICMP (Internet Control Message Protocol - протокол контроля сообщений в сети Интернет) для отправки сообщения по определенному IP-адресу, которое называется эхо-запрос ICMP. Компьютер с таким IP-адресом должен ответить эхо-ответом ICMP. Если так и произошло, значит, IP-сеть успешно протестирована, и проблема, скорее всего, кроется в приложении. Протокол ICMP не зависит ни от какого приложения и проверяет только наличие связи в IP-сети, т.е. работает на уровнях 1, 2 и 3 модели OSI.
Нам осталось рассмотреть еще один важный момент. В нашем примере задействованы все три приложения - передача сообщений, отправка денег и использование Web-обозревателя. Коля получает от Саши пакеты для всех этих приложений.
Коле, соответственно, необходимо знать, какому приложению какие данные предназначаются, но все три пакета приходят от одного IP- и MAC-адреса. Можно было бы, конечно, распределять пришедшие пакеты по использованному при передаче протоколу UDP или TCP, но в нашем случае два из трех приложений используют протокол TCP. К счастью, разработчики протоколов UDP и TCP позаботились о распределении пакетов по приложениям и вставили в передаваемые пакеты специальное поле, которое называется номером порта. Процесс разбиения данных по номерам портов называется мультиплексированием, т.е. определение приложения, которое получает данные из пакета. Каждое приложение Саши использует разные номера портов, поэтому Коля знает, какому приложению предназначаются данные.
Итак, мы рассмотрели, как работает элементарная сеть с несколькими приложениями. Давайте теперь познакомимся с использованными в данном примере протоколами немного поближе.
Дата добавления: 2015-05-13; просмотров: 901;