Службы Internet сетевого уровня
Программисты, разрабатывающие приложения с использованием протоколов TCP/IP, имеют совершенно другие представления о сети по сравнению с пользователями, которые только запускают прикладные программы типа почтового клиента. На сетевом уровне в семействе протоколов TCP/IP предусмотрено два обширных класса служб, которые используются во всех приложениях. И хотя на данном этапе мы не будем вдаваться в подробности их функционирования, ни одно описание протоколов TCP/IP без них не обходится.
- Служба доставки пакетов, не требующая установки соединения (Connectionless Packet Delivery Service). Эта служба лежит в основе всех остальных сетевых служб (ее подробное описание будет приведено в следующих разделах). Она относится к абстрактным типам служб и реализована практически во всех сетях с коммутацией пакетов. В основе работы сети TCP/IP лежит принцип пересылки небольших сообщений (пакетов) от одного компьютера к другому, выполняющийся с учетом маршрутной информации, которая находится в самом сообщении. Поскольку служба, не требующая установки соединения, пересылает каждый пакет независимо друг от друга, она не может гарантировать их надежную доставку, а также доставку в заданном порядке. Однако, так как эта служба обычно тесно привязана к сетевому аппаратному обеспечению, эффективность ее работы чрезвычайно высока. И что самое важное, поскольку служба доставки пакетов, не требующая установки соединения, лежит в основе всех сетевых служб, это позволяет адаптировать семейство протоколов TCP/IP практически к любому типу сетевого оборудования.
- Надежная потоковая транспортная служба (Reliable Stream Transport Service). Для работы большинства приложений недостаточно только одной службы, не гарантирующей доставку пакетов. Причина в том, что прикладные программы часто требуют от сетевого программного обеспечения автоматического восстановления данных при возникновении ошибок при передаче, потери пакетов или отказов одного из звеньев сети между отправителем и получателем. Надежная потоковая транспортная служба как раз занимается решением этих проблем. Она позволяет приложению, запущенному на одном компьютере, установить “соединение” с приложением, запущенным на другом компьютере, а затем переслать большой объем данных, как если бы эти два компьютера имели постоянный прямой канал связи между собой. Естественно, что при этом сетевые протоколы нижнего уровня разбивают поток данных на небольшие сообщения и передают их последовательно друг за другом, ожидая от получателя подтверждения успешного приема.
Службы, аналогичные описанным выше, реализованы практически во всех типах сетей, поэтому интересно рассмотреть, чем же отличаются службы сети TCP/IP. Ниже перечислены только основные отличия.
- Независимость от сетевой технологии. Несмотря на то что в семействе протоколов TCP/IP используется традиционная технология коммутации пакетов, она не зависит от применяемого сетевого оборудования. В глобальной сети Internet используется множество сетевых технологий, причем не все из них изначально были ориентированы для работы на больших расстояниях. В семействе протоколов TCP/IP определяется единица передачи информации, которая называется дейтаграммой (datagram), и оговариваются методы передачи дейтаграмм по отдельным сетям.
- Всеобщность подключения. Сеть TCP/IP позволяет обмениваться информацией любым двум подключенным к ней компьютерам. Каждому компьютеру назначается адрес, который интерпретируется по одним и тем же правилам во всей сети. В любой дейтаграмме присутствует как адрес отправителя, так и адрес получателя пакета. Адрес получателя используется промежуточными звеньями сети для правильной маршрутизации этой дейтаграммы.
- Подтверждение получения пакетов. В сетях на основе протокола TCP/IP оговаривается процедура подтверждения получения пакетов. Конечный получатель посылает уведомление отправителю даже в том случае, если они не подключены к одной физической сети. При этом промежуточные звенья сети, через которые проходят пакеты, уведомления о получении отправителю не шлют.
- Стандарты протоколов прикладных программ. Кроме основных служб транспортного уровня, рассмотренных выше, в семейство протоколов TCP/IP включены стандарты для широко распространенных прикладных служб, таких как электронная почта, пересылка файлов и удаленный вход в систему. Поэтому, разрабатывая прикладные программы с использованием протоколов TCP/IP, программисты часто обнаруживают, что нужные им сетевые компоненты уже созданы.
В следующих разделах будут описаны службы, предназначенные для использования сетевыми программистами, а также стандарты протоколов уровня приложений.