локальными пользователями этой машины. Как программа FTP, так и пакет telnet первоначально создавались как прикладное
программное обеспечение в соответствии с классификацией, приведенной в разделе 3.2. Однако сегодня они стали частью
инфраструктуры операционных систем большинства персональных компьютеров. Действительно, эти элементы системного
программного обеспечения используются как абстрактные механизмы для конструирования более крупных приложений,
подобных Web-броузерам. В этом смысле они превратились теперь в типичные программы класса утилит.
Транспортный уровень программного обеспечения Internet рассматривает прикладной уровень как источник отправляе-
мых сообщений. Это означает, что прикладной уровень передает сообщения, которые нужно отправить, транспортному
уровню аналогично тому, как посылку сдают в компанию грузоперевозок. И так же, как в обязанности отправителя посылки
входит написание адреса получателя в форме, соответствующей требованиям компании грузоперевозок, обязанностью при-
кладного уровня является предоставление адреса доставки в формате, отвечающем требованиям транспортного уровня.
Именно для решения этой задачи прикладной уровень нуждается в услугах серверов имен Internet, к которым он обращается
в целях перевода мнемонических адресов, понятных людям, в двоичные адреса, совместимые с программным обеспечением
сети.
Задача транспортного уровня машины-отправителя сообщения – проследить за тем, чтобы сообщение было успешно
доставлено транспортному уровню компьютера-получателя, где оно будет вновь преобразовано в форму, соответствующую
прикладному уровню. Таким образом, обязанности транспортного уровня состоят в выполнении тех действий, которые
должны производиться в месте отправления сообщения и в месте его получения, без учета возможных промежуточных оста-
новок по пути следования. В частности, в задачу транспортного уровня входит разбиение длинных сообщений на сегменты,
размеры которых совместимы с требованиями лежащего ниже сетевого уровня. Отдельные сегменты последовательно нуме-
руются, что позволяет машине-получателю воссоздать первоначальное сообщение после пересылки. Затем транспортный
уровень присоединяет к каждому сегменту адрес места назначения и передает сформированные блоки данных, называемые
пакетами, на сетевой уровень.
Как видите, сообщения путешествуют по Internet в виде небольших пакетов, каждый из которых содержит фрагмент ис-
ходного сообщения и дополнительную "упаковку", содержащую информацию, необходимую для передачи сообщения. Не-
редко бывает так, что размеры упаковки пакета превышают размеры находящегося внутри элемента сообщения. Достаточно
часто встречаются элементы сообщений, состоящие из одного байта, в то время как каждый пакет содержит более 50 байтов
упаковки. Хотя это и кажется неэффективным, тем не менее, вся система работает достаточно хорошо.
В обязанности сетевого уровня входит наблюдение за тем, чтобы полученные им пакеты надлежащим образом переда-
вались от одной сети в составе Internet к другой, пока они не достигнут места назначения. Таким образом, в отличие от
транспортного уровня, имеющего дело только с исходным и конечным пунктами пересылки сообщения, сетевой уровень
контролирует промежуточные этапы прохождения пакетов через Internet. Он решает эту задачу посредством прикрепления к
каждому пакету адреса промежуточного пункта назначения. Адрес промежуточного пункта назначения определяется сле-
дующим образом. Если конечное место назначения находится в данной сети, то прикрепляемый адрес будет простым повто-
рением адреса пункта конечного назначения. В противном случае это будет адрес маршрутизатора, установленного в данной
сети. Таким образом, пакет, предназначенный машине внутри данной сети, будет послан непосредственно этой машине, а
пакет, предназначенный машине за пределами сети, будет отправлен маршрутизатору, через который он попадет в смежную
сеть. Для достижения указанной цели сетевой уровень снабжает пакеты, полученные от транспортного уровня, дополни-
тельной упаковкой, содержащей, как правило, промежуточный адрес, а не конечный. Эти расширенные пакеты передаются
на канальный уровень.
В обязанности канального уровня входит учет всех деталей установки соединений, присущих той сети, где находится
данная машина. Каждая отдельная сеть в составе Internet имеет собственную систему адресации, независимую от общей сис-
темы адресации в Internet. Поэтому канальный уровень должен перевести Internet-адреса, указанные во внешней оболочке
пакета, в адреса, соответствующие локальной адресной системе (6-битовые MAC-адреса (Media Access Control) сетевого
адаптера, который назначается производителями оборудования и является уникальными адресами), после чего добавить их к
пакетам в виде дополнительного слоя упаковки.
Каждый уровень в иерархии программного обеспечения Internet играет определенную роль и в процессе получения со-
общений, которая в общих чертах противоположна задаче, выполняемой на данном уровне при отправке сообщения. Так,
канальный уровень получает пакеты из сетевых линий связи, удаляет внешнюю упаковку (адрес данной машины в форме, со-
вместимой с этой локальной сетью), в которую поместил данный пакет канальный уровень той машины, откуда этот пакет посту-
пил, а затем передает обработанный пакет своему сетевому уровню.
Каждый раз, когда сетевой уровень получает пакет от своего канального уровня, он удаляет из него промежуточный
Internet-адрес, прикрепленный сетевым уровнем последней машины-отправителя, и изучает адрес конечного места назначе-
ния пакета, находящийся под ним. Если это собственный адрес данной машины, сетевой уровень передает обработанный
пакет своему транспортному уровню. В противном случае сетевой уровень решает, что пакет должен быть передан по Inter-
net дальше. Для этого он должен снова "упаковать" пакет, снабдив его новым промежуточным адресом, и вернуть его на
свой канальный уровень для дальнейшей передачи. Таким способом пакеты "перепрыгивают" с машины на машину, пока не
достигнут конечного места назначения. На каждом промежуточном этапе именно сетевой уровень определяет место назна-
чения следующего прыжка.
Чтобы упростить процесс переадресации, сетевой уровень поддерживает таблицу маршрутизации, содержащую конеч-
ные адреса, с которыми ему приходилось сталкиваться в недавнем прошлом, и промежуточные адреса, куда он направил
каждый из этих пакетов. Сетевые уровни различных машин в Internet постоянно обмениваются данными из своих таблиц
маршрутизации, в результате чего информация об адресах пересылки распространяется по Internet. Сетевой уровень каждой
машины хранит только ту информацию, которая, по его мнению, может ему пригодиться, и постоянно удаляет устаревшие
сведения из своей таблицы маршрутизации; в результате таблицы не разрастаются до недопустимо больших размеров. Сле-
довательно, содержание таблиц маршрутизации в Internet является динамическим, и вполне возможно, что пакеты, представ-
ляющие разные части одного и того же сообщения, пройдут через Internet различными путями.