Windows 8

Модель стека протоколов tcp ip и протоколы.

Модель стека протоколов tcp ip и протоколы.

Лекция №3

Стек протоколов TCP / IP

План лекции

Стек TCP/IP.

История создания стека TCP/IP.

Модель OSI.

Структура TCP/IP.

Документы RFC.

Обзор основных протоколов.

Утилиты диагностики TCP/IP.

Контрольные вопросы.

Стек TCP/IP

Стек TCP/IP – это набор иерархически упорядоченных сетевых протоколов. Название стек получил по двум важнейшим протоколам – TCP (Transmission Control Protocol) и IP (Internet Protocol). Помимо них в стек входят ещё несколько десятков различных протоколов. В настоящее время протоколы TCP/IP являются основными для Интернета, а также для большинства корпоративных и локальных сетей.

4. Транспортный уровень (transport layer) решает задачу надежной передачи сообщений в составной сети с помощью подтверждения доставки и повторной отправки пакетов. Этот уровень и все следующие реализуются программно.

5. Сеансовый уровень (session layer) позволяет запоминать информацию о текущем состоянии сеанса связи и в случае разрыва соединения возобновлять сеанс с этого состояния.

6. Уровень представления (presentation layer) обеспечивает преобразование передаваемой информации из одной кодировки в другую (например, из ASCII в EBCDIC).

7. Прикладной уровень (application layer) реализует интерфейс между остальными уровнями модели и пользовательскими приложениями.

Структура TCP / IP

В основе структуры TCP/IP лежит не модель OSI, а собственная модель, называемая DARPA (Defense ARPA – новое название Агентства по перспективным исследовательским проектам) или DoD (Department of Defense – Министерство обороны США). В этой модели всего четыре уровня. Соответствие модели OSI модели DARPA, а также основным протоколам стека TCP/IP показано на рис. 2.2.

DIV_ADBLOCK187">

3) черновой стандарт (Draft Standard) – документ становится черновым стандартом, если не менее двух независимых разработчиков реализовали и успешно применили предлагаемые спецификации. На этом этапе ещё допускаются незначительные исправления и усовершенствования;

4) стандарт Интернета (Internet Standard) – наивысший этап утверждения стандарта, спецификации документа получили широкое распространение и хорошо зарекомендовали себя на практике. Список стандартов Интернета приведен в RFC 3700. Из тысяч RFC только несколько десятков являются документами в статусе «стандарт Интернета».

Кроме стандартов документами RFC могут быть также описания новых сетевых концепций и идей, руководства, результаты экспериментальных исследований, представленных для информации и т. д. Таким документам RFC может быть присвоен один из следующих статусов:

экспериментальный (Experimental) – документ, содержащий сведения о научных исследованиях и разработках, которые могут заинтересовать членов ISOC;

информационный (Informational) – документ, опубликованный для предоставления информации и не требующий одобрения сообщества ISOC;

лучший современный опыт (Best Current Practice) – документ, предназначенный для передачи опыта конкретных разработок, например реализаций протоколов.

Статус указывается в заголовке документа RFC после слова Category (Категория). Для документов в статусе стандартов (Proposed Standard, Draft Standard, Internet Standard) указывается название Standards Track , так как уровень готовности может меняться.

Номера RFC присваиваются последовательно и никогда не выдаются повторно. Первоначальный вариант RFC никогда не обновляется. Обновленная версия публикуется под новым номером. Устаревший и замененный документ RFC получает статус исторический (Historic).

Все существующие на сегодня документы RFC можно посмотреть, например, на сайте www. rfc-editor. org . В августе 2007 года их насчитывалось более 5000. Документы RFC, упоминаемые в этом курсе, приведены в Приложении I.

Обзор основных протоколов

Протокол IP (Internet Protocol) – это основной протокол сетевого уровня, отвечающий за адресацию в составных сетях и передачу пакета между сетями. Протокол IP является дейтаграммным протоколом, т. е. не гарантирует доставку пакетов до узла назначения. Обеспечением гарантий занимается протокол транспортного уровня TCP.

Протоколы RIP (Routing Information Protocol – протокол маршрутной информации) и OSPF (Open Shortest Path First – « первыми открываются кратчайшие маршруты») – протоколы маршрутизации в IP-сетях.

Протокол ICMP (Internet Control Message Protocol – протокол управляющих сообщений в составных сетях) предназначен для обмена информацией об ошибках между маршрутизаторами сети и узлом-источником пакета. С помощью специальных пакетов сообщает о невозможности доставки пакета, о продолжительности сборки пакета из фрагментов, об аномальных величинах параметров, об изменении маршрута пересылки и типа обслуживания, о состоянии системы и т. п.

Протокол ARP (Address Resolution Protocol – протокол преобразования адресов) преобразует IP-адреса в аппаратные адреса локальных сетей. Обратное преобразование осуществляется с помощью протокола RAPR (Reverse ARP).

TCP (Transmission Control Protocol – протокол управления передачей) обеспечивает надежную передачу сообщений между удаленными узлами сети за счет образования логических соединений. TCP позволяет без ошибок доставить сформированный на одном из компьютеров поток байт на любой другой компьютер, входящий в составную сеть. TCP делит поток байт на части – сегменты и передает их сетевому уровню. После того как эти сегменты будут доставлены в пункт назначения, протокол TCP снова соберет их в непрерывный поток байт.

UDP (User Datagram Protocol – протокол дейтаграмм пользователя) обеспечивает передачу данных дейтаграммным способом.

HTTP (HyperText Transfer Protocol – протокол передачи гипертекста) – протокол доставки web-документов, основной протокол службы WWW.

FTP (File Transfer Protocol – протокол передачи файлов) – протокол для пересылки информации, хранящейся в файлах.

POP3 (Post Office Protocol version 3 – протокол почтового офиса) и SMTP (Simple Mail Transfer Protocol – простой протокол пересылки почты) – протоколы для доставки входящей электронной почты (POP3) и отправки исходящей (SMTP).

Telnet – протокол эмуляции терминала1, позволяющий пользователю подключаться к другим удалённым станциям и работать с ними со своей машины, как если бы она была их удалённым терминалом.

SNMP (Simple Network Management Protocol – простой протокол управления сетью) предназначен для диагностики работоспособности различных устройств сети.

1 Терминал – это сочетание устройства ввода и устройства вывода, например клавиатура и дисплей.

Утилиты диагностики TCP / IP

В состав операционной системы Windows Server 2003 входит ряд утилит (небольших программ), предназначенных для диагностики функционирования стека TCP/IP. Каждый системный администратор должен знать эти утилиты и уметь применять их на практике.

Информацию о любой утилите можно вывести, набрав в командной строке имя утилиты с ключом «/?», например: IPconfig /?

IPconfig

Утилита предназначена, во-первых, для вывода информации о конфигурации стека TCP/IP, во-вторых, для выполнения некоторых действий по настройке стека.

При вводе названия утилиты в командной строке без параметров на экране отобразится информация об основных настройках TCP/IP (эти настройки рассматриваются в следующих лекциях):

– суффикс DNS (Connection-specific DNS Suffix);

– IP-адрес (IP Address);

– маска подсети (Subnet Mask);

– шлюз по умолчанию (Default Gateway).

Приведем основные ключи утилиты:

/ all – отображение полной информации о настройке стека TCP/IP на данном компьютере. Следует отметить, что при наличии нескольких сетевых адаптеров выводятся данные по каждому адаптеру отдельно. Наиболее важные сведения кроме представленных выше – физический адрес (МАС-адрес) сетевого адаптера (Physical Address) и наличие разрешения DHCP (DHCP Enabled).

/ release – освобождение IP-адреса (имеет смысл, если DHCP разрешен).

/ renew – обновление конфигурации TCP/IP (обычно выполняется, если DHCP разрешен).

/ displaydns – вывод на экран кэша имен DNS.

/ flushdns – очистка кэша имен DNS.

/ registerdns – обновление аренды DHCP и перерегистрация доменного имени в базе данных службы DNS.

Основная цель этой популярной утилиты – выяснение возможности установления соединения с удаленным узлом. Кроме того, утилита может обратиться к удаленному компьютеру по доменному имени, чтобы проверить способность преобразования символьного доменного имени в IP-адрес.

Принцип работы: утилита отправляет на удаленный узел несколько пакетов (число пакетов определяется ключом n , по умолчанию четыре) по протоколу ICMP. Такие пакеты называются эхо-пакетами, т. е. требуют

ответа. Если удаленный узел доступен, он отвечает на каждый эхо-пакет своим пакетом, а утилита измеряет интервал между отправкой эхо-пакета и приходом ответа.

Нужно отметить, что отсутствие ответа может быть связано не с физической недоступностью удаленного компьютера, а с тем, что на нем установлено программное обеспечение, запрещающее отправку ответов на эхо-пакеты (брандмауэр – firewall).

Основные ключи:

t – пакеты отправляются до тех пор, пока пользователь не нажмет комбинацию CTRL+C.

a – определение доменного имени по IP-адресу.

l <размер> – максимальный размер пакета (по умолчанию 32 байта).

w <таймаут> – задание времени ожидания ответа в миллисекундах (по умолчанию 1000 миллисекунд = 1 секунда).

Название утилиты произошло от Trace Route – отслеживание маршрута. Утилита позволяет решить следующие задачи:

– проследить путь прохождения пакета от данного компьютера до удаленного узла (отображаются промежуточные узлы-маршрутизаторы);

– выявить участки задержки пакетов;

– выявить места потери пакетов.

Принцип работы: утилита отправляет эхо-пакеты на заданный удаленный узел. Отличие между эхо-пакетами заключается в параметре, который называется «время жизни» (TTL – Time To Live). Этот параметр обозначает количество маршрутизаторов (процесс перехода пакета через маршрутизатор называется hop – прыжок), которое может пройти пакет, прежде чем попадет на заданный узел. Каждый маршрутизатор уменьшает время жизни на единицу. Если на каком-то маршрутизаторе TTL станет равным нулю, тот отбрасывает пакет и отправляет служебное сообщение на узел-источник.

Первый эхо-пакет посылается с временем жизни, равным единице. Первый маршрутизатор отбрасывает эхо-пакет и отправляет служебное сообщение, в котором содержится информации об имени и адресе маршрутизатора. Следующий эхо-пакет имеет TTL = 2 и отбрасывается уже на втором маршрутизаторе. Таким образом, эхо-пакеты отправляются с увеличением времени жизни на единицу, пока не придет ответ от заданного удаленного узла или время ожидания не будет превышено.

Основные ключи:

/ h < maximum_ hops> – максимальное число хопов (маршрутизаторов) при поиске узла.

/ w <таймаут> – задание времени ожидания ответа в миллисекундах.

Утилита отображает статистическую информацию по протоколам IP, TCP, UDP и ICMP, а также позволяет отслеживать сетевые соединения. Основные ключи:

/ a – список всех подключений и прослушивающихся портов.

/e – статистика для Ethernet.

/ n – список всех подключений и портов в числовом формате.

/ s – статистика для перечисленных четырех протоколов.

< interval> – интервал в секундах, через который утилита выводит требуемую информацию (для прекращения вывода – CTRL+C).

Эта утилита работает с протоколами преобразования IP-адресов в МАС-адреса и обратно ARP и RARP. С её помощью можно выводить на экран таблицу соответствия IP-адресов и МАС-адресов (ARP-кэш), добавлять и удалять записи в ней.

Основные ключи:

/ a – отображение таблицы ARP или, если указан IP-адрес, запись только для этого адреса.

/ s – добавление записи в таблицу.

/ d – удаление записи из таблицы.

Hostname

Это самая простая утилита – она выводит на экран имя компьютера.

Резюме

Стек протоколов TCP/IP – это самый распространенный на сегодняшний день набор иерархически упорядоченных протоколов, применяемый как в локальных, так и в глобальных сетях. Важнейшие протоколы стека – IP, TCP и UDP – появились в начале 80-х годов в рамках проекта ARPANET, который являлся предшественником Интернета. В 90-е годы по мере развития Интернета роль стека TCP/IP сильно возросла.

Стек TCP/IP был разработан на основе модели сетевого взаимодействия DARPA, хотя между уровнями модели DARPA, международной семиуровневой моделью OSI и стеком TCP/IP может быть установлено соответствие. Стандарты протоколов TCP/IP отражены в свободно доступных документах RFC.

Основными протоколами стека являются IP, TCP, UDP, ICMP, ARP, протоколы маршрутизации RIP и OSPF, протоколы прикладного уровня HTTP, FTP, POP3, SMTP, telnet, SNMP.

Для диагностики и управления стеком TCP/IP в операционной системе Microsoft Windows Server 2003 существуют специальные утилиты – IPconfig, ping, tracert, netstat, arp, hostname и др.

Контрольные вопросы

1. Объясните, что означают свойства «платформонезависимость» и «открытость» применительно к стеку протоколов TCP/IP.

2. Что такое ARPANET?

3. Поясните, для чего предназначена модель OSI? Где она применяется?

4. Назовите функции канального, сетевого и транспортного уровней модели OSI.

5. Чем отличается модель DARPA (DoD) от модели OSI? Как вы думаете, почему?

6. Что такое RFC? В файлах какого формата издаются RFC?

7. Для чего используется протокол ICMP? Протокол ARP?

8. Поясните принцип работы утилиты ping.

9. Поясните принцип работы утилиты tracert.

Протокол TCP/IP (Transmission Control Protocol/Internet Protocol ) представляет собой стек сетевых протоколов, повсеместно используемый для Интернета и других подобных сетей (например, данный протокол используется и в ЛВС). Название TCP/IP произошло от двух наиболее важных протоколов:

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

Основные характеристики TCP/IP:

  • Стандартизованные протоколы высокого уровня, используемые для хорошо известных пользовательских сервисов.
  • Используются открытые стандарты протоколов, что дает возможность разрабатывать и дорабатывать стандарты независимо от программного и аппаратного обеспечения;
  • Система уникальной адресации;
  • Независимость от используемого физического канала связи;

Принцип работы стека протоколов TCP/IP такой же как и в модели OSI, данные верхних уровней инкапсулируются в пакеты нижних уровней.

Если пакет продвигается по уровню сверху вниз - на каждом уровне добавляется к пакету служебная информация в виде заголовка и возможно трейлера (информации помещенной в конец сообщения). Этот процесс называется . Служебная информация предназначается для объекта того же уровня на удаленном компьютере. Ее формат и интерпретация определяются протоколами данного уровня.

Если пакет продвигается по уровню снизу вверх - он разделяется на заголовок и данные. Анализируется заголовок пакета, выделяется служебная информация и в соответствии с ней данные перенаправляются к одному из объектов вышестоящего уровня. Вышестоящий уровень, в свою очередь, анализирует эти данные и также их разделяет их на заголовок и данные, далее анализируется заголовок и выделяется служебная информация и данные для вышестоящего уровня. Процедура повторяется заново пока пользовательские данные, освобожденные от всей служебной информации, не дойдут до прикладного уровня.

Не исключено, что пакет так и не дойдет до прикладного уровня. В частности, если компьютер работает в роли промежуточной станции на пути между отправителем и получателем, тогда объект, на соответствующем уровне, при анализе служебной информации определит, что пакет на этом уровня адресован не ему, в следствии чего, объект проведет необходимые мероприятия для перенаправления пакета к пункту назначения или возврата отправителю с сообщением об ошибке. Но так или иначе не будет осуществлять продвижение данных на верхний уровень.

Пример инкапсуляции можно представить следующим образом:

Рассмотрим каждые функции уровней

Прикладной уровень

Приложения, работающие со стеком TCP/IP, могут также выполнять функции представительного уровня и частично сеансового уровня модели OSI.

Распространенными примерами приложений являются программы:

  • Telnet
  • HTTP
  • Протоколы электронной почты (SMTP, POP3)

Для пересылки данных другому приложению, приложение обращается к тому или иному модулю транспортного модуля.

Транспортный уровень

Протоколы транспортного уровня обеспечивают прозрачную доставку данных меду двумя прикладными процессами. Процесс, получающий или отправляющий данные, с помощью транспортного уровня идентифицируется на этом уровне номером, который называется номером порта.

Таким образом, роль адреса отправителя и получателя на транспортном уровне выполняется номером порта. Анализируя заголовок своего пакета, полученного от межсетевого уровня, транспортный модуль определяет по номеру порта получателя по какому из прикладных процессов направленны данные и передает эти данные к соответствующему прикладному процессу.

Номер порта получателя и отправителя записывается в заголовок транспортным модулем отправляющим данные. Заголовок транспортного уровня содержит также и некоторую другую служебную информацию, и формат заголовка зависит от используемого транспортного протокола.

Средства транспортного уровня представляют собой функциональную надстройку над сетевым уровнем и решают две основных задачи:

  • обеспечение доставки данных между конкретными программами, функционирующими, в общем случае, на разных узлах сети;
  • обеспечение гарантированной доставки массивов данных произвольного размера.

В настоящее время в Интернет используются два транспортных протокола – UDP , обеспечивающий негарантированную доставку данных между программами, и TCP , обеспечивающий гарантированную доставку с установлением виртуального соединения.

Сетевой (межсетевой) уровень

Основным протоколом этого уровня является протокол IP, который доставляет блоки данных (дейтаграммы) от одного IP-адреса к другому. IP-адрес является уникальным 32-х битным идентификатором компьютера, точнее его сетевого интерфейса. Данные для дейтаграммы передаются IP модулю транспортным уровнем. IP модуль добавляет к этим данным заголовок, содержащий IP-адрес отправителя и получателя, и другую служебную информацию.

Таким образом, сформированная дейтаграмма передается на уровень доступа к среде передачи, для отправки по каналу передачи данных.

Не все компьютеры могут непосредственно связаться друг с другом, часто чтобы передать дейтаграмму по назначению требуется направить ее через один или несколько промежуточных компьютеров по тому или ному маршруту. Задача определения маршрута для каждой дейтаграммы решается протоколом IP.

Когда модуль IP получает дейтаграмму с нижнего уровня, он проверяет IP адрес назначения, если дейтаграмма адресована данному компьютеру, то данные из нее передаются на обработку модулю вышестоящего уровня, если же адрес назначения дейтаграммы чужой, то модуль IP может принять два решения:

  • Уничтожит дейтаграмму;
  • Отправить ее дальше к месту назначения, определив маршрут следования, так поступают промежуточные станции – маршрутизаторы .

Также может потребоваться на границе сетей, с различными характеристиками, разбить дейтаграмму на фрагменты, а потом собрать их в единое целое на компьютере получателя. Это также задача протокола IP.

Также протокол IP может отправлять сообщения – уведомления с помощью протокола ICMP , например, в случае уничтожения дейтаграммы. Более никаких средств контроля корректности данных, подтверждения или доставки, предварительного соединения в протоколе нет, эти задачи возложены на транспортный уровень.

Уровень доступа к среде

Функции этого уровня следующие:

  • Отображение IP-адресов в физические адреса сети. Эту функцию выполняет протокол ARP ;
  • Инкапсуляция IP-дейтаграмм в кадры для передачи по физическому каналу и извлечение дейтаграмм из кадров, при этом не требуется какого-либо контроля безошибочной передачи, поскольку в стеке TCP/IP такой контроль возложен на транспортный уровень или на само приложение. В заголовке кадров указывается точка доступа к сервису SAP, это поле содержащее код протокола;
  • Определение метода доступа к среде передачи, т.е. способа, с помощью которого компьютеры устанавливает свое право на передачу данных;
  • Определение представления данных в физической среде;
  • Пересылка и прием кадра.

Рассмотрим инкапсуляцию на примере перехвата пакета протокола HTTP с помощью сниффера wireshark, который работает на прикладном уровне протокола TCP/IP:


Помимо самого перехваченного протокола HTTP, на основании стека TCP/IP сниффер описывает каждый нижележащий уровень. HTTP инкапсулируется в TCP, протокол TCP в IPv4, IPv4 в Ethernet II.

Транспортный уровень (Transport Layer - TL) определяет правила транспортировки пакетов по сети. Транспортный уровень наблюдает за доставкой из конца в конец индивидуальных пакетов, он не учитывает никаких зависимостей между этими пакетами (даже принадлежащими к одному сообщению). Он обрабатывает каждый пакет как если бы каждая часть принадлежала отдельному сообщению, независимо от того, так это на самом деле или нет. Протоколы транспортного уровня гарантируют, что все сообщения прибывают в конечный пункт неповрежденными и пакеты располагаются в первоначальном порядке. На транспортном уровне осуществляется контроль нарушения информации и контроль ошибок, а также управление потоком по всему тракту "источник - пункт назначения".

Транспортный уровень выполняет следующие задачи:

  • Адресация точки сервиса . Компьютеры часто выполняют несколько программ в одно и то же время. По этой причине доставка "источник - пункт назначения" означает доставку не только от одного компьютера до следующего, но также и от заданного процесса (функционирующей программы) на одном компьютере к заданному процессу (функционирующей программе) на другом. Поэтому заголовок транспортного уровня должен включать тип адреса, называемый адрес сервисной точки (или адрес порта). Сетевой уровень доставляет каждый пакет на корректный адрес компьютера; транспортный уровень доставляет полное сообщение к корректному процессу на этом компьютере.
  • Сегментация и повторная сборка . Сообщение разделено на транспортируемые сегменты, каждый сегмент содержит порядковый номер. Эти номера дают возможность транспортному уровню после достижения пункта назначения правильно повторно собрать сообщение и заменять пакеты, которые были потеряны в передаче.
  • Управление подключением . Транспортный уровень может быть ориентирован на работу без установления соединения ( connectionless transfer) или ориентирован на подключение ( connection-oriented transfer) - дейтаграммный режим. Транспортный уровень без установления соединения (по предварительно установленному виртуальному соединению) обрабатывает каждый сегмент как независимый пакет и поставляет его транспортному уровню в машине пункта назначения. Ориентированный на подключение транспортный уровень сначала перед поставкой пакетов устанавливает соединение с транспортным уровнем в компьютере пункта назначения. После того как все данные переданы, подключение заканчивается.

    В режиме, не ориентированном на соединение, транспортный уровень используется для передачи одиночных дейтаграмм, не гарантируя их надежную доставку. Режим, ориентированный на соединение, применяется для надежной доставки данных.

  • Управление потоком . Подобно уровню звена передачи данных, транспортный уровень несет ответственность за управление потоком. Однако управление потоком на этом уровне выполняется от "конца концу".
  • Контроль ошибок . Подобно уровню звена передачи данных, транспортный уровень несет ответственность за контроль ошибок. Транспортный уровень передачи удостоверяется, что полное сообщение достигло транспортного уровня приема без ошибки (повреждения, потери или дублирования). Исправление ошибки обычно происходит с помощью повторной передачи.

Уровень сеанса (Session Layer SL) - сетевой контроллер диалога. Он устанавливает, поддерживает и синхронизирует взаимодействие между связывающимися системами.

При помощи сеансового уровня ( Session Layer ) организуется диалог между сторонами, фиксируется, какая из сторон является инициатором, какая из сторон активна и каким образом завершается диалог.

Задачи сеансового уровня следующие:

  • Управление диалогом . Сеансовый уровень дает возможность двум системам вступать в диалог. Он позволяет обмен сообщениями между двумя процессами. При этом возможны режимы: либо полудуплексный (один путь одновременно), либо дуплексный (два пути одновременно). Например, диалог между терминалом и универсальной ЭВМ может быть полудуплексным.
  • Синхронизация . Сеансовый уровень позволяет процессу добавлять контрольные точки (точки синхронизации) в поток данных. Например, если система посылает файл из 2 000 страниц, желательно вставить контрольные точки после каждых 100 страниц, чтобы гарантировать, что каждый модуль со 100 страницами получен и опознается независимо. В этом случае, если случается нарушение в течение передачи страницы 523, единственная страница, которую требуется и которая будет снова послана после системного восстановления - страница 501 (первая страница пятой сотни)

Уровень представления (Presentation Layer) занимается формой предоставления информации нижележащим уровням, например, перекодировкой или шифрованием информации.

Задачи уровня представления следующие:

  • Перекодировка информации . Процессы (функционирующие программы) в двух системах обычно меняют информацию в форме символьных строк, чисел и так далее. Информация, прежде чем быть переданной, должна быть изменена на потоки бит. Поскольку различные компьютеры используют различные системы кодирования, уровень представления несет ответственность за способность к взаимодействию между этими различными методами кодирования. Уровень представления в передатчике изменяет информацию от формы, зависящей от передатчика, в общую форму. Уровень представления в компьютере приема заменяет общий формат в формат его приемника.
  • Шифрование . Чтобы доставлять конфиденциальную информацию, система должна обеспечить секретность. Шифрование означает, что передатчик преобразовывает первоначальную информацию к другой форме и посылает результирующее сообщение по сети. Расшифровка должна быть полностью противоположна первоначальному процессу, чтобы преобразовать сообщение назад к его первоначальной форме.
  • Сжатие . Сжатие данных уменьшает число битов, содержавшихся в информации. Сжатие данных становится особенно важным в передаче мультимедиа, таких как текст, аудио и видео.

Прикладной уровень (Application Layer - AL) - это набор протоколов, которыми обмениваются удаленные узлы, реализующие одну и ту же задачу (программу). Прикладной уровень дает возможность пользователю (человеку либо программному обеспечению) обращаться к сети. Он обеспечивает интерфейсы пользователя и поддержку услуг - электронной почты, удаленного доступа и перевода средств, общедоступного управления базы данных и других типов распределенных информационных служб.

Примеры услуг, оказываемых прикладным уровнем:

  • Сетевой виртуальный терминал . Сетевой виртуальный терминал - программная версия физического терминала, он позволяет пользователю войти в удаленный хост. Чтобы сделать это, приложение создает программную имитацию терминала в удаленном хосте. Компьютер пользователя общается с программным терминалом, который, в свою очередь, общается с хостом, и наоборот. Удаленный хост определяет эту связь как связь с одним из его собственных терминалов и позволяет вход.
  • Передача файлов, доступ и управление . Это приложение позволяет пользователю обращаться к файлам в удаленном хосте, чтобы изменять или читать данные, извлекать файлы из удаленного компьютера для использования в местном компьютере и администрировать или управлять файлами на удаленном компьютере.
  • Услуги почты . Это приложение обеспечивает базу для передачи и хранения электронной почты.
  • Услуги каталога . Это приложение обеспечивает распределенные источники базы данных и доступ к глобальной информации о различных объектах и услугах.

Стек протоколов Интернета

Стек протоколов сети Интернет2 был разработан до модели OSI . Поэтому уровни в стеке протоколов Интернета не соответствуют аналогичным уровням в модели OSI . Стек протоколов Интернета состоит из пяти уровней: физического, звена передачи данных, сети, транспортного и прикладного. Первые четыре уровня обеспечивают физические стандарты, сетевой интерфейс , межсетевое взаимодействие и транспортные функции, которые соответствуют первым четырем уровням модели OSI . Три самых верхних уровня в модели OSI представлены в стеке протоколов Интернета единственным уровнем, называемым прикладным уровнем рис. 1.3.


Рис. 1.3.

ARP Address Resolution Protocol Протокол нахождения адреса
ATM Asynchronous Transfer Mode Режим асинхронной передачи
BGP Border Gateway Protocol Протокол пограничной маршрутизации
DNS Domain Name System Система доменных имен
Ethernet Ethernet Network Сеть Ethernet
FDDI Fiber Distributed Data Interface Волоконно-оптический распределенный интерфейс данных
HTTP Hyper Text Transfer Protocol Протокол передачи гипертекста
FTP File transfer Protocol Протокол передачи файлов
ICMP Internet Control Message Protocol Протокол управляющих сообщений
IGMP Internet Group Management Protocol Протокол управления группами (пользователей) в Интернете
IP Internet Protocol Межсетевой протокол
NFS Network File System Протокол сетевого доступа к файловым системам
OSPF Open Shortest Path First Открытый протокол предпочтения кратчайшего канала
PDH Plesiochronous Digital Hierarchy Плезиохронная цифровая иерархия
PPP Point-to- Point Protocol Протокол связи "точка-точка"

В этой статье будут рассказаны основы модели TCP/IP. Для лучшего понимания описаны основные протоколы и службы. Главное - не торопиться и стараться понимать каждую вещь поэтапно. Все они взаимосвязаны и без понимания одной, трудно будет понять другую. Здесь скомпонована весьма поверхностная информация, так что эту статью смело можно назвать «стеком протоколов TCP/IP для чайников». Однако, многие вещи здесь не так трудны для понимания, как может показаться на первый взгляд.

TCP/IP

Стек TCP/IP - сетевая модель передачи данных в сети, она определяет порядок взаимодействия устройств. Данные поступают на канальный уровень и обрабатываются поочередно каждым уровнем выше. Стек представлен в виде абстракции, которая объясняет принципы обработки и приема данных.

Стек протоколов сети TCP/IP имеет 4 уровня:

  1. Канальный (Link).
  2. Сетевой (Internet).
  3. Транспортный (Transport).
  4. Прикладной (Application).

Прикладной уровень

Прикладной уровень обеспечивает возможность взаимодействия между приложением и другими уровнями стека протоколов, анализирует и преобразовывает поступающую информацию в формат, подходящий для программного обеспечения. Является ближайшим к пользователю и взаимодействует с ним напрямую.

  • HTTP;
  • SMTP;

Каждый протокол определяет собственный порядок и принципы работы с данными.

HTTP (HyperText Transfer Protocol) предназначен для передачи данных. По нему отправляются, например, документы в формате HTML, которые служат основой веб-страницы. Упрощенно схема работы представляется как «клиент - сервер». Клиент отправляет запрос, сервер его принимает, должным образом обрабатывает и возвращает конечный результат.

Служит стандартом передачи файлов в сети. Клиент посылает запрос на некий файл, сервер ищет этот файл в своей базе и при успешном обнаружении отправляет его как ответ.

Используется для передачи электронной почты. SMTP-операция включает в себя три последовательных шага:

  1. Определение адреса отправителя. Это необходимо для возвращения писем.
  2. Определение получателя. Этот шаг может повторяться некоторое количество раз при указании нескольких адресатов.
  3. Определение содержимого сообщения и отправка. В качестве служебной информации передаются данные о типе сообщения. Если сервер подтверждает готовность принять пакет, то совершается сама транзакция.

Заголовок (Header)

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

Например, заголовок, вложенный на транспортном уровне, на другой стороне может быть обработан только транспортным уровнем. Другие просто его проигнорируют.

Транспортный уровень

На транспортном уровне полученная информация обрабатывается как единый блок, вне зависимости от содержимого. Полученные сообщения делятся на сегменты, к ним добавляется заголовок, и все это отправляется ниже.

Протоколы передачи данных:

Самый распространенный протокол. Он отвечает за гарантированную передачу данных. При отправке пакетов контролируется их контрольная сумма, процесс транзакции. Это значит, что информация дойдет «в целости и сохранности» независимо от условий.

UDP (User Datagram Protocol) - второй по популярности протокол. Он также отвечает за передачу данных. Отличительное свойство кроется в его простоте. Пакеты просто отправляются, не создавая особенной связи.

TCP или UDP?

У каждого из этих протоколов есть своя область применения. Она логически обусловлена особенностями работы.

Основное преимущество UDP заключается в скорости передачи. TCP является сложным протоколом с множеством проверок, в то время как UDP представляется более упрощенным, а значит, и более быстрым.

Недостаток кроется в простоте. Ввиду отсутствия проверок не гарантируется целостность данных. Таким образом, информация просто отправляется, а все проверки и подобные манипуляции остаются за приложением.

UDP используется, например, для просмотра видео. Для видеофайла не критична потеря небольшого количества сегментов, в то время как скорость загрузки - важнейший фактор.

Однако если необходимо отправить пароли или реквизиты банковской карты, то необходимость использования TCP очевидна. Потеря даже самой мизерной части данных может повлечь за собой катастрофические последствия. Скорость в этом случае не так важна, как безопасность.

Сетевой уровень

Сетевой уровень из полученной информации образует пакеты и добавляет заголовок. Наиболее важной частью данных являются IP и MAC-адреса отправителей и получателей.

IP-адрес (Internet Protocol address) - логический адрес устройства. Содержит информацию о местоположении устройства в сети. Пример записи: .

MAC-адрес (Media Access Control address) - физический адрес устройства. Используется для идентификации. Присваивается сетевому оборудованию на этапе изготовления. Представлен как шестибайтный номер. Например: .

Сетевой уровень отвечает за:

  • Определение маршрутов доставки.
  • Передачу пакетов между сетями.
  • Присвоение уникальных адресов.

Маршрутизаторы - устройства сетевого уровня. Они прокладывают путь между компьютером и сервером на основе полученных данных.

Самый популярный протокол этого уровня - IP.

IP (Internet Protocol) - интернет-протокол, предназначенный для адресации в сети. Используется для построения маршрутов, по которым происходит обмен пакетами. Не обладает никакими средствами проверки и подтверждения целостности. Для обеспечения гарантий доставки используется TCP, который использует IP в качестве транспортного протокола. Понимание принципов этой транзакции во многом объясняет основу того, как работает стек протоколов TCP/IP.

Виды IP-адресов

В сетях используются два вида IP-адресов:

  1. Публичные.
  2. Приватные.

Публичные (Public) используются в Интернете. Главное правило - абсолютная уникальность. Пример их использования - маршрутизаторы, каждый из которых имеет свой IP-адрес для взаимодействия с сетью Интернет. Такой адрес называется публичным.

Приватные (Private) не используются в Интернете. В глобальной сети такие адреса не являются уникальными. Пример - локальная сеть. Каждому устройству присваивается уникальный в пределах данной сети IP-адрес.

Взаимодействие с сетью Интернет ведется через маршрутизатор, который, как уже было сказано выше, имеет свой публичный IP-адрес. Таким образом, все компьютеры, подключенные к маршрутизатору, представляются в сети Интернет от имени одного публичного IP-адреса.

IPv4

Самая распространенная версия интернет-протокола. Предшествует IPv6. Формат записи - четыре восьмибитных числа, разделенные точками. Через знак дроби указывается маска подсети. Длина адреса - 32 бита. В подавляющем большинстве случаев, когда речь идет об IP-адресе, имеется в виду именно IPv4.

Формат записи: .

IPv6

Эта версия предназначается для решения проблем предыдущей версией. Длина адреса - 128 бит.

Основная проблема, которую решает IPv6 - это исчерпание адресов IPv4. Предпосылки начали проявляться уже в начале 80-х годов. Несмотря на то, что эта проблема вступила в острую стадию уже в 2007-2009 годах, внедрение IPv6 очень медленно «набирает обороты».

Главное преимущество IPv6 - более быстрое интернет-соединение. Это происходит из-за того, что для этой версии протокола не требуется трансляции адресов. Выполняется простая маршрутизация. Это является менее затратным и, следовательно, доступ к интернет-ресурсам предоставляется быстрее, чем в IPv4.

Пример записи: .

Существует три типа IPv6-адресов:

  1. Unicast.
  2. Anycast.
  3. Multicast.

Unicast - тип одноадресных IPv6. При отправке пакет достигает только интерфейса, расположенного на соответствующем адресе.

Anycast относится к групповым IPv6-адресам. Отправленный пакет попадет в ближайший сетевой интерфейс. Используется только маршрутизаторами.

Multicast являются многоадресными. Это значит, что отправленный пакет достигнет всех интерфейсов, находящихся группе мультивещания. В отличие от broadcast, который является «вещанием для всех», multicast вещает лишь определенной группе.

Маска подсети

Маска подсети выявляет из IP-адреса подсеть и номер хоста.

Например, IP-адрес имеет маску . В таком случае формат записи будет выглядеть так . Число «24» - это количество бит в маске. Восемь бит равняется одному октету, который также может называться байтом.

Если подробнее, то маску подсети можно представить в двоичной системе счисления таким образом: . В ней имеется четыре октета, и запись состоит из «1» и «0». Если сложить количество единиц, то получим в сумме «24». К счастью, считать по единице не обязательно, ведь в одном октете - 8 значений. Видим, что три из них заполнены единицами, складываем и получаем «24».

Если говорить именно о маске подсети, то в двоичном представлении она имеет в одном октете либо единицы, либо нули. При этом последовательность такова, что сначала идут байты с единицами, а только потом с нулями.

Рассмотрим небольшой пример. Есть IP-адрес и маска подсети . Считаем и записываем: . Теперь сопоставляем маску с IP-адресом. Те октеты маски, в которых все значения равны единице (255) оставляют соответствующие им октеты в IP-адресе без изменения. Если же в значении нули (0), то октеты в IP-адресе также становятся нулями. Таким образом, в значении адреса подсети получаем .

Подсеть и хост

Подсеть отвечает за логическое разделение. По сути, это устройства, использующие одну локальную сеть. Определяется диапазоном IP-адресов.

Хост - это адрес сетевого интерфейса (сетевой карты). Определяется из IP-адреса с помощью маски. Например: . Так как первые три октета - подсеть, то остается . Это и есть номер хоста.

Диапазон адресов хоста - от 0 до 255. Хост под номером «0» является, собственно, адресом самой подсети. А хост под номером «255» является широковещательным.

Адресация

Для адресации в стеке протоколов TCP/IP используются три типа адресов:

  1. Локальные.
  2. Сетевые.
  3. Доменные имена.

Локальными называются MAC-адреса. Они используются для адресации в таких технологиях локальной сети как, например, Ethernet. В контексте TCP/IP слово «локальные» означает, что они действуют лишь в пределах подсети.

Сетевым адресом в стеке протоколов TCP/IP является IP-адрес. При отправке файла из его заголовка считывается адрес получателя. С его помощью маршрутизатор узнает номер хоста и подсеть и, основываясь на этой информации, прокладывает маршрут к конечному узлу.

Доменные имена - это удобочитаемые адреса веб-сайтов в Интернете. Веб-сервера в сети Интернет доступны по публичному IP-адресу. Он успешно обрабатывается компьютерами, однако для людей представляется слишком неудобным. Для того чтобы избежать подобных сложностей, используются доменные имена, которые состоят из областей, называемых «доменами». Они располагаются в порядке строгой иерархии, от верхнего уровня к нижнему.

Домен первого уровня представляет конкретную информацию. Общие (.org, .net) не ограничены какими-либо строгими границами. Обратная ситуация - с локальными (.us, .ru). Они, как правило, привязаны территориально.

Домены низших уровней - это все остальное. Он может быть любого размера и содержать любое количество значений.

Например, "www.test.quiz.sg" - корректное доменное имя, где «sg» - локальный домен первого (верхнего) уровня, «quiz.sg» - домен второго уровня, «test.quiz.sg» - домен третьего уровня. Доменные имена также могут называться DNS-именами.

DNS (Domain Name System) устанавливает соответствие между доменными именами и публичным IP-адресом. При наборе доменного имени в строке браузера DNS обнаружит соответствующий IP-адрес и сообщит устройству. Устройство обработает этот и вернет его в виде веб-страницы.

Канальный уровень

На канальном уровне определяется взаимосвязь между устройством и физической средой передачи, добавляется заголовок. Отвечает за кодировку данных и подготовку фреймов для передачи по физической среде. На этом уровне работают сетевые коммутаторы.

Самые распространенные протоколы:

  1. Ethernet.
  2. WLAN.

Ethernet - наиболее распространенная технология проводных локальных сетей.

WLAN - локальная сеть на основе беспроводных технологий. Взаимодействие устройств происходит без физических кабельных соединений. Пример самого распространенного метода - Wi-Fi.

Настройка TCP/IP для использования статического IPv4-адреса

Статический IPv4-адрес назначается напрямую в настройках устройства или автоматически при подключении к сети и является постоянным.

Для настройки стека протоколов TCP/IP на использование постоянного IPv4-адреса необходимо ввести в консоль команду ipconfig/all и найти следующие данные.

Настройка TCP/IP для использования динамического IPv4-адреса

Динамический IPv4-адрес используется какое-то время, сдается в аренду, после чего меняется. Присваивается устройству автоматически при подключении к сети.

Чтобы настроить стек протоколов TCP/IP на использование непостоянного IP-адреса необходимо зайти в свойства нужного соединения, открыть свойства IPv4 и поставить отметки так, как указано.

Способы передачи данных

Данные передаются через физическую среду тремя способами:

  • Simplex.
  • Half-duplex.
  • Full Duplex.

Simplex - это односторонняя связь. Передача ведется только одним устройством, в то время как другое только принимает сигнал. Можно сказать, что информация транслируется только в одном направлении.

Примеры симплексной связи:

  • Телевещание.
  • Сигнал от спутников GPS.

Half-duplex - это двусторонняя связь. Однако только один узел может передавать сигнал в определенный момент времени. При такой связи два устройства не могут одновременно использовать один канал. Полноценная двусторонняя связь может быть невозможна физически или приводить к коллизиям. Говорится, что они конфликтуют за среду передачи. Этот режим применяется при использовании коаксиального кабеля.

Пример полудуплексной связи - общение по рации на одной частоте.

Full Duplex - полноценная двусторонняя связь. Устройства могут одновременно транслировать сигнал и производить прием. Они не конфликтуют за среду передачи. Этот режим применяется при использовании технологии Fast Ethernet и соединении с помощью витой пары.

Пример - общение по телефону через мобильную сеть.

TCP/IP vs OSI

Модель OSI определяет принципы передачи данных. Уровни стека протоколов TCP/IP прямо соответствуют этой модели. В отличие от четырехуровневого TCP/IP имеет 7 уровней:

  1. Физический (Physical).
  2. Канальный (Data Link).
  3. Сетевой (Network).
  4. Транспортный (Transport).
  5. Сеансовый (Session).
  6. Представительский (Presentation).
  7. Прикладной (Application).

В данный момент не стоит сильно углубляться в эту модель, но необходимо хотя бы поверхностное понимание.

Прикладной уровень в модели TCP/IP соответствует трем верхним уровням OSI. Все они работают с приложениями, поэтому можно отчетливо проследить логику такого объединения. Такая обобщенная структура стека протоколов TCP/IP способствует облегченному пониманию абстракции.

Транспортный уровень остается без изменений. Выполняет одинаковые функции.

Сетевой уровень также не изменен. Выполняет ровно те же задачи.

Канальный уровень в TCP/IP соответствует двум последним уровням OSI. Канальный уровень устанавливает протоколы передачи данных через физическую среду.

Физический представляет собой собственно физическую связь - электрические сигналы, коннекторы и т.п. В стеке протоколов TCP/IP было решено объединить эти два уровня в один, так как они оба работают с физической средой.

В современном мире информация распространяется за считанные секунды. Вот только что появилась новость, а через секунду она уже доступна на каком-либо сайте в сети интернет. Интернет считается одной из самых полезных разработок человеческого разума. Чтобы пользоваться всеми благами, которые предоставляет интернет, необходимо подключиться к этой сети.

Мало кто знает, что простой процесс посещения веб-страничек подразумевает незаметную для пользователя, сложную систему действий. Каждый переход по ссылке активирует сотни различных вычислительных операций в сердце компьютера. В их числе передачи запросов, прием ответов и многое другое. За каждое действие в сети отвечают так называемые протоколы TCP/IP. Что они собой представляют?

Любой протокол интернета TCP/IP работает на своем уровне. Иными словами, каждый занимается своим делом. Все семейство TCP/IP протоколов одновременно выполняет колоссальную работу. А пользователь в это время видит только яркие картинки и длинные строки текста.

Понятие стека протоколов

Стек протоколов TCP/IP - это организованный набор основных сетевых протоколов, который иерархическим способом разделен на четыре уровня и представляет собой систему транспортного распределения пакетов по компьютерной сети.

TCP/IP - это наиболее известный стек сетевых протоколов, который используется на данный момент. Принципы стека TCP/IP применяются как в локальных, так и в глобальных сетях.

Принципы использования адресов в стеке протоколов

Стек сетевых протоколов TCP/IP описывает пути и направления отправки пакетов. Это основная задача всего стека, выполняющаяся на четырех уровнях, которые взаимодействуют между собой протоколированным алгоритмом. Для правильной отправки пакета и его доставки ровно в ту точку, которая его запросила, была введена и стандартизирована адресация IP. Этому послужило наличие следующих задач:

  • Адреса различного типа, должны быть согласованы. Например преобразование домена сайта в IP адрес сервера и обратно, или преобразование имени узла в адрес и обратно. Таки образом становится возможен доступ к точке не только с помощью IP адреса, но и по интуитивному названию.
  • Адреса должны быть уникальны. Это вызвано тем, что в некоторых частных случаях пакет должен попасть только в одну конкретную точку.
  • Необходимость конфигурирования локальных вычислительных сетей.

В малых сетях, где используется несколько десятков узлов, все эти задачи выполняются элементарно, с помощью простейших решений: составление таблицы с описанием принадлежности машины и соответствующего ей IP адреса, или можно вручную раздать всем сетевым адаптерам IP адреса. Однако для крупных сетей на тысячу или две тысячи машин задача ручной выдачи адресов не кажется такой выполнимой.

Именно поэтому для сетей TCP/IP был изобретен специальный подход, который и стал отличительной чертой стека протоколов. Было введено понятие - масштабируемость.

Уровни стека протоколов TCP/IP

Здесь существует определенная иерархия. Стек протоколов TCP/IP предусматривает четыре уровня, каждый из которых обрабатывает свой набор протоколов:

Прикладной уровень : создан для обеспечения работы пользователя с сетью На этом уровне обрабатывается все то, что видит и делает пользователь. Уровень позволяет пользователю получить доступ к различным сетевым службам, например: доступ к базам данных, возможность прочитать список файлов и открыть их, отправить электронное сообщение или открыть веб-страницу. Вместе с пользовательскими данными и действиям, на этом уровне передается служебная информация.

Транспортный уровень: это механизм передачи пакетов в чистом виде. На этом уровне совершенно не имеет значения ни содержимое пакета, ни его принадлежность к какому бы то ни было действию. На этом уровне имеет значение только адрес узла отправки пакета и адрес узла, на который пакет должен быть доставлен. Как правило, размер фрагментов, передаваемых с использованием разных протоколов, может изменяться, потому на этом уровне блоки информации могут дробиться на выходе и собираться в единое целое в точке назначения. Этим обусловлена возможная потеря данных, если в момент передачи очередного фрагмента произойдет кратковременный разрыв соединения.

Транспортный уровень включает в себя много протоколов, которые делятся на классы, от простейших, которые просто передают данные, до сложных, которые оснащены функционалом подтверждения приема, или повторного запроса недополученного блока данных.

Данный уровень, предоставляет вышестоящему (прикладному) два типа сервиса:

  • Осуществляет гарантированную доставку, с помощью протокола ТСР.
  • Осуществляет доставку по возможности по протоколу UDP.

Чтобы обеспечить гарантированную доставку, согласно протоколу TCP устанавливается соединение, которое позволяет выставлять на пакетах нумерацию на выходе и подтверждать их прием на входе. Нумерация пакетов и подтверждение приема - это так называемая служебная информация. Этот протокол поддерживает передачу в режиме "Дуплекс". Кроме того, благодаря продуманному регламенту протокола, он считается очень надежным.

Протокол UDP предназначен для моментов, когда невозможно настроить передачу по протоколу TCP, либо приходится экономить на сегменте сетевой передачи данных. Также протокол UDP может взаимодействовать с протоколами более высокого уровня, для повышения надежности передачи пакетов.

Сетевой уровень или "уровень интернета": базовый уровень для всей модели TCP/IP. Основной функционал этого уровня идентичен одноименному уровню модели OSI и описывает перемещение пакетов в составной сети, состоящей из нескольких, более мелких подсетей. Он связывает соседние уровни протокола TCP/IP.

Сетевой уровень является связующим между вышестоящим транспортным уровнем и нижестоящим уровнем сетевых интерфейсов. Сетевой уровень использует протоколы, которые получают запрос от транспортного уровня, и посредством регламентированной адресации передают обработанный запрос на протокол сетевых интерфейсов, указывая, по какому адресу направить данные.

На этом уровне используются следующие сетевые протоколы TCP/IP: ICMP, IP, RIP, OSPF. Основным, и наиболее популярным на сетевом уровне, конечно же является протокол IP (Internet Protocol). Основной его задачей является передача пакетов от одного роутера к другому до тех пор, пока единица данных не попадет на сетевой интерфейс узла назначения. Протокол IP разворачивается не только на хостах, но и на сетевом оборудовании: маршрутизаторах и управляемых коммутаторах. Протокол IP работает по принципу негарантированной доставки с максимальными усилиями. Т. е., для отправки пакета нет необходимости заранее устанавливать соединение. Такой вариант приводит к экономии трафика и времени на движении лишних служебных пакетов. Пакет направляется в сторону назначения, и вполне возможно, что узел останется недоступным. В таком случае возвращается сообщение об ошибке.

Уровень сетевых интерфейсов: отвечает за то, чтобы подсети с разными технологиями могли взаимодействовать друг с другом и передавать информацию в том же режиме. Реализовано это двумя простыми шагами:

  • Кодирование пакета в единицу данных промежуточной сети.
  • Преобразование информации о месте назначения в стандарты необходимой подсети и отправка единицы данных.

Этот подход позволяет постоянно расширять количество поддерживаемых технологий построения сетей. Как только появляется новая технология, она сразу попадает в стек проколов TCP/IP и позволяет сетям со старыми технологиями передавать данные в сети, построенные с применением более современных стандартов и способов.

Единицы передаваемых данных

За время существования такого явления, как протоколы TCP/IP, установились стандартные термины по части единиц передаваемых данных. Данные при передаче могут дробиться по-разному, в зависимости от технологий, используемых сетью назначения.

Чтобы иметь представление о том, что и в какой момент времени происходит с данными, нужно было придумать следующую терминологию:

  • Поток данных - данные, которые поступают на транспортный уровень от протоколов вышестоящего прикладного уровня.
  • Сегмент - фрагмент данных, на которые дробится поток по стандартам протокола TCP.
  • Датаграмма (особо безграмотные произносят как "Дейтаграмма") - единицы данных, которые получаются путем дробления потока с помощью протоколов, работающих без установления соединения (UDP).
  • Пакет - единица данных, производимая посредством протокола IP.
  • Протоколы TCP/IP упаковывают IP-пакеты в передаваемые по составным сетям блоки данных, которые называются кадрами или фреймами .

Типы адресов стека протоколов TCP/IP

Любой протокол передачи данных TCP/IP для идентификации узлов использует один из следующих типов адресов:

  • Локальные (аппаратные) адреса.
  • Сетевые адреса (IP адреса).
  • Доменные имена.

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

Сетевые адреса (IP-адреса). В технологии TCP/IP предусмотрена собственная глобальная адресация узлов, для решения простой задачи - объединения сетей с разной технологией в одну большую структуру передачи данных. IP-адресация совершенно не зависит от технологии, которая используется в локальной сети, однако IP адрес позволяет сетевому интерфейсу представлять машину в составной сети.

В итоге была разработана система, при которой узлам назначается IP адрес и маска подсети. Маска подсети показывает, какое количество бит отводится под номер сети, а какое количество под номер узла. IP адрес состоит из 32 бит, разделенных на блоки по 8 бит.

При передаче пакета ему назначается информация о номере сети и номере узла, в который пакет должен быть направлен. Сначала маршрутизатор направляет пакет в нужную подсеть, а потом выбирается узел, который его ждет. Этот процесс осуществляется протоколом разрешения адресов (ARP).

Доменные адреса в сетях TCP/IP управляются специально разработанной системой доменных имен (DNS). Для этого существуют серверы, которые сопоставляют доменное имя, представленное в виде строки текста, с IP адресом, и отправляет пакет уже в соответствии с глобальной адресацией. Между именем компьютера и IP адресом не предусмотрено соответствий, поэтому, чтобы преобразовать доменное имя в IP адрес, передающему устройству необходимо обратиться к таблице маршрутизации, которая создается на DNS сервере. Например, мы пишем в браузере адрес сайта, DNS сервер сопоставляет его с IP адресом сервера, на котором сайт расположен, и браузер считывает информацию, получая ответ.

Кроме сети интернет, есть возможность выдавать компьютерам доменные имена. Таким образом, упрощается процесс работы в локальной сети. Пропадает необходимость запоминать все IP-адреса. Вместо них можно придумать каждому компьютеру любое имя и использовать его.

IP-адрес. Формат. Составляющие. Маска подсети

IP адрес - 32-битное число, которое в традиционном представлении записывается в виде чисел, от 1 до 255, разделенных между собой точками.

Вид IP адреса в различных форматах записи:

  • Десятичный вид IP адреса: 192.168.0.10.
  • Двоичный вид того же IP адреса: 11000000.10101000.00000000.00001010.
  • Запись адреса в шестнадцатеричной системе счисления: C0.A8.00.0A.

Между ID сети и номером точки в записи нет разделительного знака, но компьютер способен их разделять. Для этого существует три способа:

  1. Фиксированная граница. При этом способе весь адрес условно делится на две части фиксированной длины побайтно. Таким образом, если под номер сети отдать один байт, тогда мы получим 2 8 сетей по 2 24 узлов. Если границу сдвинуть еще на байт вправо, тогда сетей станет больше - 2 16 , а узлов станет меньше - 2 16 . На сегодняшний день подход считается устаревшим и не используется.
  2. Маска подсети. Маска идет в паре с IP адресом. Маска имеет последовательность значений "1" в тех разрядах, которые отведены под номер сети, и определенное количество нулей в тех местах IP адреса, которые отведены на номер узла. Граница между единицами и нулями в маске - это граница между идентификатором сети и ID узла в IP-адресе.
  3. Метод классов адресов. Компромиссный метод. При его использовании размеры сетей не могут быть выбраны пользователем, однако есть пять классов - А, В, С, D, Е. Три класса - А, В и С - предназначены для различных сетей, а D и Е - зарезервированы для сетей специального назначения. В классовой системе каждый класс имеет свою границу номера сети и ID узла.

Классы IP адресов

К классу А относятся сети, в которых сеть идентифицируется по первому байту, а три оставшихся являются номером узла. Все IP адреса, которые имеют в своем диапазоне значение первого байта от 1 до 126 - это сети класса А. Количественно сетей класса А получается совсем мало, зато в каждой из них может быть до 2 24 точек.

Класс В - сети, в которых два высших бита равны 10. В них под номер сети и идентификатор точки отводится по 16 бит. В результате получается, что количество сетей класса В в большую сторону отличается от количества сетей класса А количественно, но они имеют меньшее количество узлов - до 65 536 (2 16) шт.

В сетях класса С - совсем мало узлов - 2 8 в каждой, но количество сетей огромно, благодаря тому, что идентификатор сети в таких структурах занимает целых три байта.

Сети класса D - уже относятся к особым сетям. Он начинается с последовательности 1110 и называется групповым адресом (Multicast adress). Интерфейсы, имеющие адреса класса А, В и С, могут входить в группу и получать вдобавок к индивидуальному еще и групповой адрес.

Адреса класса Е - в резерве на будущее. Такие адреса начинаются с последовательности 11110. Скорее всего, эти адреса будут применяться в качестве групповых, когда наступит нехватка IP адресов в глобальной сети.

Настройка протокола TCP/IP

Настройка протокола TCP/IP доступна на всех операционных системах. Это - Linux, CentOS, Mac OS X, Free BSD, Windows 7. Протокол TCP/IP требует только наличия сетевого адаптера. Разумеется, серверные операционные системы способны на большее. Очень широко, с помощью серверных служб, настраивается протокол TCP/IP. IP адреса в в обычных настольных компьютерах задаются в настройках сетевых подключений. Там настраивается сетевой адрес, шлюз - IP адрес точки, имеющий выход в глобальную сеть, и адреса точек, на которых располагается DNS сервер.

Протокол интернета TCP/IP может настраиваться в ручном режиме. Хотя не всегда в этом есть необходимость. Можно получать параметры протокола TCP/IP с динамически-раздающего адреса сервера в автоматическом режиме. Такой способ используют в больших корпоративных сетях. На DHCP сервер можно сопоставить локальный адрес к сетевому, и как только в сети появится машина с заданным IP адресом, сервер сразу даст ему заранее подготовленный IP адрес. Этот процесс называется резервирование.

TCP/IP Протокол разрешения адресов

Единственный способ установить связь между MAC-адресом и IP адресом - ведение таблицы. При наличии таблицы маршрутизации каждый сетевой интерфейс осведомлен о своих адресах (локальном и сетевом), однако встает вопрос, как правильно организовать обмен пакетами между узлами, применяя протокол TCP/IP 4.

Для чего был придуман протокол разрешения адресов (ARP)? Для того, чтобы связывать семейство TCP/IP протоколов и других систем адресации. На каждом узле создается таблица соответствия ARP, которая заполняется путем опроса всей сети. Происходит это после каждого выключения компьютера.

ARP таблица

Так выглядит пример составленной ARP таблицы.