Какие протоколы образуют модель tcp ip

Набор многоуровневых протоколов, или как называют стек TCP/IP (табл. 2.1), предназначен для использования в различных вариантах сетевого окружения. Стек TCP/IP с точки зрения системной архитектуры соответствует эталонной модели OSI (Open Systems Interconnection – взаимодействие открытых систем) и позволяет обмениваться данными по сети приложениям и службам, работающим практически на любой платформе, включая Unix, Windows, Macintosh и другие.

Таблица 2.1. Семейство протоколов TCP/IP

Название протокола

Описание протокола

Сетевой программный интерфейс

Связь с приложениями ОС Windows

Интерфейс транспортного драйвера (Transport Driver Interface) позволяет создавать компоненты сеансового уровня.

Протокол управления передачей (Transmission Control Protocol)

Протокол пользовательских дейтаграмм (User Datagram Protocol)

Протокол разрешения адресов (Address Resolution Protocol)

Протокол обратного разрешения адресов (Reverse Address Resolution Protocol)

Протокол Internet(Internet Protocol)

Протокол управляющих сообщений Internet (Internet Control Message Protocol)

Протокол управления группами Интернета (Internet Group Management Protocol),

Интерфейс взаимодействия между драйверами транспортных протоколов

Протокол пересылки файлов (File Transfer Protocol)

Простой протокол пересылки файлов (Trivial File Transfer Protocol)

Реализация TCP/IP фирмы Microsoft соответствует четырехуровневой модели вместо семиуровневой модели, как показано на рис. 2.2. Модель TCP/IP включает большее число функций на один уровень, что приводит к уменьшению числа уровней. В модели используются следующие уровни:

Уровень Приложения модели TCP/IP соответствует уровням Приложения, Представления и Сеанса модели OSI;

Уровень Транспорта модели TCP/IP соответствует аналогичному уровню Транспорта модели OSI;

Рис. 2.2. Соответствие семиуровневой модели OSI и четырехуровневой модели TCP/IP

Межсетевой уровень модели TCP/IP выполняет те же функции, что и уровень Сети модели OSI;

Уровень сетевого интерфейса модели TCP/IP соответствует Канальному и Физическому уровням модели OSI.

Уровень Приложения

Через уровень Приложения модели TCP/IP приложения и службы получают доступ к сети. Доступ к протоколам TCP/IP осуществляется посредством двух программных интерфейсов (API – Application Programming Interface):

Сокеты Windows;

Интерфейс сокетов Windows, или как его называют WinSock, является сетевым программным интерфейсом, предназначенным для облегчения взаимодействия между различными TCP/IP – приложениями и семействами протоколов.

Интерфейс NetBIOS используется для связи между процессами (IPC – Interposes Communications) служб и приложений ОС Windows. NetBIOS выполняет три основных функции: определение имен NetBIOS; служба дейтаграмм NetBIOS; служба сеанса NetBIOS.

Уровень транспорта

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

Подтверждение получения информации;

Управление потоком данных;

Упорядочение и ретрансляция пакетов.

В зависимости от типа службы могут быть использованы два протокола:

TCP (Transmission Control Protocol – протокол управления передачей);

UDP (User Datagram Protocol – пользовательский протокол дейтаграмм).

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

Протокол управления передачей (TCP)

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

Надежность протокола TCP заключается в следующем:

– он диагностирует ошибки,

– при необходимости посылает данные повторно,

– если не может самостоятельно исправить ошибку, сообщает о ней на другие уровни.

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

Установление соединения происходит в три шага:

1. Клиент, запрашивающий соединение, отправляет серверу пакет, указывающий номер порта, который клиент желает использовать, а также код (определенное число) ISN (Initial Sequence number).

2. Сервер отвечает пакетом, содержащий ISN сервера, а также ISN клиента, увеличенный на 1.

3. Клиент должен подтвердить установление соединения, вернув ISN сервера, увеличенный на 1.

Принцип работы TCP:

Берет из приложения большие блоки информации, разбивает их на сегменты,

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

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

После отправки сегментов TCP ждет подтверждения от целевого TCP о получении каждого из них;

Заново отправляет те сегменты, получение которых не было подтверждено.

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

Пользовательский протокол дейтаграмм (UDP)

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

Принцип работы UDP:

Получает с верхних уровней блоки информации, разбивает их на сегменты;

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

Отправляет сегменты и «забывает» о них;

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

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

Межсетевой уровень

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

Протокол Интернета IP

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

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

Адресация в IP-сетях

Каждый компьютер в сетях TCP/IP имеет адреса трех уровней: физический (MAC-адрес), сетевой (IP-адрес) и символьный (DNS-имя) .

Физический, или локальный адрес узла, определяемый технологией, с помощью которой построена сеть, в которую входит узел. Для узлов, входящих в локальные сети – это МАС-адрес сетевого адаптера или порта маршрутизатора, например, 11-А0-17-3D-BC-01. Эти адреса назначаются производителями оборудования и являются уникальными адресами, так как управляются централизовано. Для всех существующих технологий локальных сетей МАС-адрес имеет формат 6 байтов: старшие 3 байта - идентификатор фирмы производителя, а младшие 3 байта назначаются уникальным образом самим производителем.

Сетевой, или IP-адрес, состоящий из 4 байт, например, 109.26.17.100. Этот адрес используется на сетевом уровне. Он назначается администратором во время конфигурирования компьютеров и маршрутизаторов. IP-адрес состоит из двух частей: номера сети и номера узла. Номер сети может быть выбран администратором произвольно, либо назначен по рекомендации специального подразделения Internet (Network Information Center, NIC), если сеть должна работать как составная часть Internet. Обычно провайдеры услуг Internet получают диапазоны адресов у подразделений NIC, а затем распределяют их между своими абонентами. Номер узла в протоколе IP назначается независимо от локального адреса узла. Деление IP-адреса на поле номера сети и номера узла гибкое, и граница между этими полями может устанавливаться произвольно. Узел может входить в несколько IP-сетей. В этом случае узел должен иметь несколько IP-адресов, по числу сетевых связей. IP-адрес характеризует не отдельный компьютер или маршрутизатор, а одно сетевое соединение.

При разработке протокола IP на основе размера сетей были выделены их классы (табл. 2.2):

· Класс а – немногочисленные сети с очень большим количеством узлов; номер сети занимает один байт, остальные 3 байта интерпретируются как номер узла в сети.

· Класс В – сети средних размеров; под адрес сети и под адрес узла отводится по 16 битов (по 2 байта).

· Класс С – сети с малым числом узлов; под адрес сети отводится 24 бита (3 байта), а под адрес узла – 8 битов (1 байт).

Таблица 2.2. Классы сетей

Диапазон адресов

Максимальное количество сетей

Максимальное количество узлов в одной сети

0Сеть.узел.узел.узел

0.0.0.0 ‑ 0.255.255.255

зарезервировано

1.0.0.0 ‑ 126.255.255.255

127.0.0.0 – 127.255.255.255

зарезервировано

10Сеть.сеть.узел.узел

128.XXX.0.0 – 191.XXX.255.255

110Сеть.сеть.сеть.узел

192.XXX.XXX.0 ‑ 223.XXX.255.255

1110Группа.группа. группа.группа

224.0.0.0 – 239.255.255.255

1111Резерв.резерв. резерв.резерв

240.0.0.0 – 255.255.255.255

зарезервировано

· Адреса класса D – особые, групповые адреса – multicast; могут использоваться для рассылки сообщений определенной группе узлов. Если в пакете указан адрес назначения, принадлежащий классу D, то такой пакет должны получить все узлы, которым присвоен данный адрес.

· Адреса класса Е зарезервированы для будущих применений.

Помимо вышеописанных адресов существуют зарезервированные адреса, которые используются особым образом.

Если в поле номера сети стоят 0

0 0 0 0...................................0 Номер узла,

то по умолчанию считается, что этот узел принадлежит той же самой сети, что и узел, который отправил пакет: если адрес компьютера 128.187.0.0, то указанный в сообщении адрес 0.0.25.31 неявно преобразуется в адрес 128.187.25.31;

Адрес 127.0.0.Х зарезервирован для организации обратной связи при тестировании работы программного обеспечения узла без реальной отправки пакета по сети. Этот адрес имеет название loopback или localhost. Если программа отправит пакет с таким адресом, то этот пакет, не выйдя за пределы компьютера, пройдется по всем уровням сетевой подсистемы и вернется к этой программе. Позволяет разрабатывать и тестировать сетевое программное обеспечение на локальном компьютере, в т. ч. и вообще не имеющем сетевого адаптера.

Если все двоичные разряды IP-адреса равны 1

1 1 1 1...................................1 1,

то пакет с таким адресом назначения должен рассылаться всем узлам, находящимся в той же сети, что и отправитель. Такая рассылка называется ограниченным широковещательным сообщением (limited broadcast);

Если в поле адреса узла назначения стоят сплошные 1

Адрес сети 1111................11,

то пакет, имеющий такой адрес, рассылается всем узлам сети с заданным адресом. Такая рассылка называется широковещательным сообщением (broadcast);

Адреса класса D ‑ форма группового IP-адреса – multicast. Пакет должен быть доставлен сразу нескольким узлам, которые образуют группу с номером, указанным в поле адреса. Узлы сами идентифицируют себя, то есть определяют, к какой из групп они относятся. Один и тот же узел может входить в несколько групп. Такие сообщения, в отличие от широковещательных, называются мультивещательными. Групповой адрес не делится на поля номера сети и узла и обрабатывается маршрутизатором особым образом.

Символьный адрес, или DNS-имя, например, SERV1.IBM.COM. Этот адрес назначается администратором и состоит из нескольких частей, например, имени машины, имени организации, имени домена. Такой адрес используется на прикладном уровне, например, в протоколах FTP или telnet.

Числовая адресация удобна для машинной обработки таблиц маршрутов. Для использования человеком она представляет определенные трудности. Для облегчения взаимодействия вначале применялись таблицы соответствия числовых адресов именам машин. Например, в ОС UNIX в каталоге /etc находится файл с именем hosts, который может иметь следующий вид:

IP-адрес Имя машины

127.0.0.1 localhost

144.206.160.32 Polyn

144.206.160.40 Apollo

По мере роста сети была разработана система доменных имен – DNS (Domain Name System), которая позволяет присваивать компьютерам легко запоминаемые имена, например yahoo.com, и отвечает за перевод этих имен обратно в IP-адреса. DNS строится по иерархическому принципу, однако эта иерархия не является строгой. Фактически нет единого корня всех доменов Internet.

Компьютерное имя имеет по меньшей мере два уровня доменов, отделяемых друг от друга точкой (.). Идущие после доменов верхнего уровня домены обычно определяют либо регионы (msk), либо организации (ulstu). Следующие уровни иерархии могут быть закреплены за небольшими организациями, либо за подразделениями больших организаций или частными лицами (например, alvinsoft.h11.ru).

Все, что находится слева, является поддоменом для общего домена. Таким образом, в имени somesite.uln.ru, somesite является поддоменом uln, который в свою очередь является поддоменом ru.

Наиболее популярной программой поддержки DNS является BIND, или Berkeley Internet Name Domain, – сервер доменных имен, который широко применяется в Internet. Он обеспечивает поиск доменных имен и IP-адресов для любого узла сети. BIND обеспечивает также рассылку сообщений электронной почты через узлы Internet.

BIND реализован по схеме «клиент-сервер». Различают четыре вида серверов:

· primary master-сервер поддерживает свою базу данных имен и обслуживает местный домен;

· secondary master-сервер обслуживает свой домен, но данные об адресах части своих машин получает по сети с другого сервера;

· caching-сервер не имеет своего домена. Он получает данные либо с одного из master-серверов, либо из буфера;

· удаленный сервер обычный master-сервер, установленный на удаленной машине, к которому обращаются программы по сети.

Primary или secondary master-серверы устанавливаются обычно на машинах, которые являются шлюзами для локальных сетей.

Шлюз (Gateway) – система, выполняющая преобразование из одного формата в другой.

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

Протоколы сопоставления адреса ARP и RARP

Для определения локального адреса по IP-адресу используется протокол разрешения адреса Address Resolution Protocol (ARP) . ARP работает различным образом в зависимости от того, какой протокол канального уровня работает в данной сети – протокол локальной сети (Ethernet, Token Ring, FDDI) с возможностью широковещательного доступа одновременно ко всем узлам сети, или же протокол глобальной сети (X.25, frame relay), как правило, не поддерживающий широковещательный доступ. Существует также протокол, решающий обратную задачу – нахождение IP-адреса по известному локальному адресу. Он называется реверсивный ARP – RARP (Reverse Address Resolution Protocol) и используется при старте бездисковых станций, не знающих в начальный момент своего IP-адреса, но знающих адрес своего сетевого адаптера.

В локальных сетях ARP использует широковещательные кадры протокола канального уровня для поиска в сети узла с заданным
IP-адресом.

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

Протокол ICMP

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

Протокол ICMP для своих целей использует сообщения, два из которых называются эхо-запрос ICMP и эхо-ответ ICMP:

· Эхо-запрос подразумевает, что компьютер, которому он был отправлен, должен ответить на этот пакет.

· Эхо-ответ – это тип ICMP-сообщения, которое используется для ответа на такой запрос.

Эти сообщения отправляются и принимаются с помощью команды ping (Packet Internet Groper).

С помощью специальных пакетов ICMP можно получить информацию:

· о невозможности доставки пакета,

· о превышении времени жизни пакета,

· о превышении продолжительности сборки пакета из фрагментов,

· об аномальных величинах параметров,

· об изменении маршрута пересылки и типа обслуживания,

· о состоянии системы и т. п.

Протокол IGMP

Узлы локальной сети используютпротокол управления группами Интернета (IGMP – Internet Group Management Protocol), чтобы зарегистрировать себя в группе. Информация о группах содержится на маршрутизаторах локальной сети. Маршрутизаторы используют эту информацию для передачи групповых сообщений.

Групповое сообщение, как и широковещательное, используется для отправки данных сразу нескольким узлам.

Network Device Interface Specification (NDIS) – спецификация интерфейса сетевого устройства, программный интерфейс, обеспечивающий взаимодействие между драйверами транспортных протоколов, и соответствующими драйверами сетевых интерфейсов. Позволяет использовать несколько протоколов, даже если установлена только одна сетевая карта.

Уровень сетевого интерфейса

Этот уровень модели TCP/IP отвечает за распределение IP-дейтаграмм. Он работает с ARP для определения информации, которая должна быть помещена в заголовок каждого кадра. Затем на этом уровне создается кадр, подходящий для используемого типа сети, такого как Ethernet, Token Ring или ATM, затем IP-дейтаграмма помещается в область данных этого кадра, и он отправляется в сеть.

В этой статье будут рассказаны основы модели 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 – это альфа и омега Интернета, и нужно не только знать, но также понимать модель и принцип работы стека.

Мы разобрались с классификацией, стандартами сетей и моделью OSI. Теперь поговорим о стеке, на базе которого построена всемирная система объединенных компьютерных сетей Интернет.

Модель TCP/IP

Изначально данный стек создавался для объединения больших компьютеров в университетах по телефонным линиям связи соединения «точка-точка». Но когда появились новые технологии, широковещательные (Ethernet) и спутниковые, возникла необходимость адаптировать TCP/IP, что оказалось непростой задачей. Именно поэтому наряду с OSI появилась модель TCP/IP.

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

В таблице представлено сравнение моделей OSI и TCP/IP. Последняя включает в себя 4 уровня:

  1. Самый нижний, уровень сетевых интерфейсов , обеспечивает взаимодействие с сетевыми технологиями (Ethernet, Wi-Fi и т. д.). Это объединение функций канального и физического уровней OSI.
  2. Уровень интернет стоит выше, и по задачам перекликается с сетевым уровнем модели OSI. Он обеспечивает поиск оптимального маршрута, включая выявление неполадок в сети. Именно на этом уровне работает маршрутизатор.
  3. Транспортный отвечает за связь между процессами на разных компьютерах, а также за доставку переданной информации без дублирования, потерь и ошибок, в необходимой последовательности.
  4. Прикладной объединил в себе 3 уровня модели OSI: сеансовый, представления и прикладной. То есть он выполняет такие функции, как поддержка сеанса связи, преобразование протоколов и информации, а также взаимодействие пользователя и сети.

Иногда специалисты пытаются объединить обе модели в нечто общее. Например, ниже приведено пятиуровневое представление симбиоза от авторов «Компьютерные сети» Э. Таненбаума и Д. Уэзеролла:

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

Не путайте их:

  • TCP/IP – это стек протоколов, представляющий собой основу Интернета.
  • Модель OSI (Базовая Эталонная Модель Взаимодействия Открытых Систем) подходит для описания самых разных сетей.

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

Рассмотрим каждый уровень более подробно.

Нижний уровень сетевых интерфейсов включает в себя Ethernet, Wi-Fi и DSL (модем). Данные сетевые технологии формально не входят в состав стека, но крайне важны в работе интернета в целом.

Основной протокол сетевого уровня – IP (Internet Protocol). Это маршрутизированный протокол, частью которого является адресация сети (IP-адрес). Здесь также работают такие дополнительные протоколы, как ICMP, ARRP и DHCP. Они обеспечивают работу сетей.

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

Прикладной уровень – это HTTP (для web), SMTP (передача почты), DNS (назначение IP-адресам понятных доменных имен), FTP (передача файлов). Протоколов на прикладном уровне стека TCP/IP больше, но приведенные можно назвать самыми значимыми для рассмотрения.

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

Протокол 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.

Стек TCP / IP .

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

В операционной системе Microsoft Windows Server 2003 стек TCP/IP выбран в качестве основного, хотя поддерживаются и другие протоколы (например, стек IPX/SPX, протокол NetBIOS).

Стек протоколов TCP/IP обладает двумя важными свойствами:

    платформонезависимостью, т. е. возможна его реализация на самых разных операционных системах и процессорах;

    открытостью, т. е. стандарты, по которым строится стек TCP/IP, доступны любому желающему.

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

В 1967 году Агентство по перспективным исследовательским проектам министерства обороны США (ARPA – Advanced Research Projects Agency) инициировало разработку компьютерной сети, которая должна была связать ряд университетов и научно-исследовательских центров, выполнявших заказы Агентства. Проект получил название ARPANET. К 1972 году сеть соединяла 30 узлов.

В рамках проекта ARPANET были разработаны и в 1980–1981 годах опубликованы основные протоколы стека TCP/IP – IP, TCP и UDP. Важным фактором распространения TCP/IP стала реализация этого стека в операционной системе UNIX 4.2 BSD (1983).

К концу 80-х годов значительно расширившаяся сеть ARPANET стала называться Интернет (Interconnected networks – связанные сети) и объединяла университеты и научные центры США, Канады и Европы.

В 1992 году появился новый сервис Интернет – WWW (World Wide Web – всемирная паутина), основанный на протоколе HTTP. Во многом благодаря WWW Интернет, а с ним и протоколы TCP/IP, получил в 90-е годы бурное развитие.

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

Модель OSI .

Модель взаимодействия открытых систем (OSI – Open Systems Interconnection) была разработана Международной организацией по стандартизации (ISO – International Organization for Standardization) для единообразного подхода к построению и объединению сетей. Разработка модели OSI началась в 1977 году и закончилась в 1984 году утверждением стандарта. С тех пор модель является эталонной для разработки, описания и сравнения различных стеков протоколов.

Рассмотрим кратко функции каждого уровня.


Модель OSI включает семь уровней: физический, канальный, сетевой, транспортный, сеансовый, представления и прикладной.

    Физический уровень (physical layer) описывает принципы передачи сигналов, скорость передачи, спецификации каналов связи. Уровень реализуется аппаратными средствами (сетевой адаптер, порт концентратора, сетевой кабель).

    Канальный уровень (data link layer) решает две основные задачи – проверяет доступность среды передачи (среда передачи чаще всего оказывается разделена между несколькими сетевыми узлами), а также обнаруживает и исправляет ошибки, возникающие в процессе передачи. Реализация уровня является программно-аппаратной (например, сетевой адаптер и его драйвер).

    Сетевой уровень (network layer) обеспечивает объединение сетей, работающих по разным протоколам канального и физического уровней, в составную сеть. При этом каждая из сетей, входящих в единую сеть, называется подсетью (subnet). На сетевом уровне приходится решать две основные задачи – маршрутизации (routing, выбор оптимального пути передачи сообщения) и адресации (addressing, каждый узел в составной сети должен иметь уникальное имя). Обычно функции сетевого уровня реализует специальное устройство – маршрутизатор (router) и его программное обеспечение.

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

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

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

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

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

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

Все протоколы, входящие в стек TCP/IP, стандартизованы в документах RFC.

Документы RFC .

Утвержденные официальные стандарты Интернета и TCP/IP публикуются в виде документов RFC (Request for Comments – рабочее предложение). Стандарты разрабатываются всем сообществом ISOC (Internet Society – Сообщество Интернет, международная общественная организация). Любой член ISOC может представить на рассмотрение документ для его публикации в RFC. Далее документ рассматривается техническими экспертами, группами разработчиков и редактором RFC и проходит в соответствии с RFC 2026 следующие этапы, называемые уровнями готовности (maturity levels):

    черновик (Internet Draft) – на этом этапе с документом знакомятся эксперты, вносятся дополнения и изменения;

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

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

    стандарт Интернета (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 – протокол передачи файлов) – протокол для пересылки информации, хранящейся в файлах.

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

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

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