Серия «стек протоколов TCP/IP» — сетевой уровень

На очереди у нас сетевой уровень стека TCP/IP. Но в качестве вступления небольшой пример. Представьте, что вы только что написали письмо старому другу, живущему в другой части страны, и пишите письмо знакомому, который живет в другом конце города. Вы отправляете оба письма. Отличается ли процесс отправки для таких двух писем? Нет. Вы просто пишите разные адреса на конвертах, поскольку письма предназначены разным адресатам в разных местах. Вы наклеиваете марки на оба письма и просто опускаете конверты в почтовый ящик. Что делать с такими письмами дальше — это уже не ваша проблема, а задача почтовой службы. Почта должна правильно доставить каждое письмо в нужное место либо в городе, либо в стране.

Когда почта доставляет письмо, оно просто пересылается на один почтамт (например, центральный городской), потом на другой (например, в город получателя письма) и т.д., пока не достигнет получателя. Если письмо передается в одном и том же городе, оно может быть доставлено сразу напрямую без пересылки между почтовыми отделениями или переслано на почтамт нужного района.

И какое отношение имеет почта к сетевым технологиям, спросите вы? Интернет-протокол (Internet ProtocolIP), протокол сетевого уровня стека TCP/IP, работает по тому же самому принципу, что и почта. Протокол IP определяет адреса для каждого компьютера или узла в сети, причем каждый узел должен иметь свой собственный уникальный IP-адрес, точно так же, как и в обычной почте у каждого корреспондента должен быть свой адрес (город, улица, дом, квартира). На сетевом уровне происходит выбор наилучшего маршрута и пересылка пакета, которую выполняют специализированные устройства — маршрутизаторы. Точно так же, как в почтовой службе есть специализированная инфраструктура, состоящая из почтовых отделений, сортировочных машин, грузовиков, самолетов и обученного персонала, данный уровень стека определяет, какая именно инфраструктура нужна, как она должна быть построена и как сеть может доставить данные нужным компьютерам в ней.

Чтобы нам лучше понять основы, которые составляют сетевой уровень TCP/IP, опять обратимся к нашему примеру, когда компьютер пользователя запрашивает страницу у сервера. Теперь мы добавим к нашей вымышленной схеме еще и информацию протокола IP. На данном этапе особенности кабельной системы локальной сети нас не интересуют, поэтому обе сети на рисунке условно показаны прямыми линиями. Когда компьютер пересылает данные, он передает в сеть IP-пакет, в котором есть IP-заголовок, заголовок транспортного уровня (TCP в нашем примере) и заголовок уровня приложений (в нашем примере HTTP). В IP-заголовке есть поля для IP-адресов получателя и отправителя, в которых указан IP-адрес сервера (1.1.1.1), в качестве адреса получателя и компьютера (2.2.2.2) в качестве отправителя.

Компьютер пересылает пакет маршрутизатору R2. Этот маршрутизатор обнаруживает IP-адрес получателя (1.1.1.1) в заголовке пакета и принимает решение об отправке пакета маршрутизатору R1. Поскольку маршрутизатор R2 знает достаточно о сетевой топологии, т.е. знает о том, что сервер находится за маршрутизатором R1, он пересылает пакет в нужный интерфейс. Аналогично, когда маршрутизатор R1 Получает пакет, он пересылает его через Ethernet-интерфейс уже непосредственно серверу. Если же канал между маршрутизаторами R1 и R2 пропадает, протокол IP позволит маршрутизатору R2 обнаружить альтернативный маршрут к узлу с адресом 1.1.1.1 через маршрутизатор R3.

Протокол IP (сетевой уровень) использует логические адреса, называемые IP-адресами. Они позволяют каждому из  устройств в сети, где используется стек tcp ip (называемых просто IP-узлами) взаимодействовать. Протокол IP также использует маршрутизацию, или процесс, который позволяет определить маршрутизатору, каким образом перенаправлять, или маршрутизировать, пакеты данных.



Comments

  1. Ответить

  2. Ответить

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>