Что такое протокол TCP IP

2.4. Архитектура стека протоколов Microsoft TCP/IP

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

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

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

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

1

2

WinSock

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

NetBIOS

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

TDI

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

TCP

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

UDP

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

ARP

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

RARP

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

IP

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

ICMP

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

IGMP

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

NDIS

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

FTP

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

TFTP

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

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

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

1

2

WinSock

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

NetBIOS

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

TDI

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

TCP

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

UDP

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

ARP

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

Адрес в Интернете состоит из 4 байт. При записи байты отделяются друг от друга точками: 123.45.67.89 или 3.33.33.3. В действительности адрес состоит из нескольких частей. Так как Интернет есть сеть сетей, начало адреса говорит узлам Интернета, частью какой из сетей является адрес. Правый конец адреса говорит этой сети, какой компьютер или хост должен получить пакет. Каждый компьютер в Интернете имеет в этой схеме уникальный адрес.

Числовой адрес компьютера в Интернете аналогичен почтовому индексу отделения связи. Существует несколько типов адресов Интернета (типы: А, В, С, D, Е), которые по-разному делят адрес на поля номера сети и номера узла, от типа такого деления зависит количество возможных сетей и машин в таких сетях.

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

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

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

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

Если удобно представьте передаче пакетов данных в сети, как отправку письма по почте.

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

Протокол IP

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

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

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

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

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


Архитектура TCP/IP

Проектировщики вычислительных сетей часто используют семиуровневую модель
ISO/OSI (International Standards Organization/Open Systems Interconnect,
Международная организация по стандартизации/ Взаимодействие открытых систем),
которая описывает архитектуру сетей. Каждый уровень в этой модели соответствует
одному уровню функциональных возможностей сети. В самом основании располагается
физический уровень, представляющий физическую среду, по которой "путешествуют"
данные, - другими словами, кабельную систему вычислительной сети. Над ним
имеется канальный уровень, или уровень звена данных, функционирование которого
обеспечивается сетевыми интерфейсными платами. На самом верху размещается
уровень прикладных программ, где работают программы, использующие служебные
функции сетей.

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

TCP — это протокол с установлением соединения и с гарантированной доставкой пакетов. Сначала производится обмен специальными пакетами для установления соединения, происходит что-то вроде рукопожатия (-Привет. -Привет. -Поболтаем? -Давай.). Далее по этому соединению туда и обратно посылаются пакеты (идет беседа), причем с проверкой, дошел ли пакет до получателя. Если пакет не дошел, то он посылается повторно («повтори, не расслышал»).

UDP — это протокол без установления соединения и с негарантированной доставкой пакетов. (Типа: крикнул что-нибудь, а услышат тебя или нет — неважно).


Над транспортным уровнем находится прикладной уровень. На этом уровне работают такие протоколы, как httpftp и пр. Например HTTP и FTP — используют надежный протокол TCP, а DNS-сервер работает через ненадежный протокол UDP.


Как посмотреть текущие соединения?

6.2.2. Подавление источника

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

В ранних UNIX-реализациях протоколов TCP/IP ICMP-пакеты этого типа игнорировались.
В TCP-реализациях, поддерживающих алгоритм медленного старта, в ответ на
это сообщение уменьшается размер "окна перегруженности". UDP-модули
игнорируют это сообщение, информируя при этом обслуживаемую прикладную
программу о требовании приемника уменьшить интенсивность и/или размер дэйтаграмм.

6.2.3. Перенаправление

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

6.2.4. Эхо

Для реализации эха IP-модуль на узле A отправляет узлу B ICMP-пакет
типа "запрос эха", содержащий в своем теле вместо IP-заголовка
тестовые данные произвольной длины. Узел B, получив такой запрос, возвращает
узлу A ICMP-пакет типа "ответ на запрос эха", содержащий те же
данные, что и в запросе. Эхо-посылки используются для проверки достижимости
удаленных узлов сети и измерения времени прохождения данных.

6.2.5. Исчерпано время жизни

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

1) исчерпано время жизни IP-сегмента;

2) исчерпано допустимое время на сборку фрагментированного IP-сегмента.

6.2.6. Неверный параметр

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

7. Протоколы сетевого уровня

Содержание

7.1. Ethernet

7.2. Протокол SLIP

7.2. Протокол SLIP

Ниже кратко описывается реализвция стека протоколов TCP/IP на базе ряда
протоколов сетевого уровня.

7.1. Ethernet

Протокол Ethernet был разработан в начале 1970-х годов совместно фирмами
Xerox,DEC и Intel. На его базе в 1982 г. был принят
международный стандарт IEEE 802.3 .

Использование протокола сетевого уровня Ethernet совместно с протоколами
TCP/IP регламентируется RFC 894.

Основными характеристиками протокола Ethernet являются следующие:

  • шинная логическая топология сети;
  • скорость передачи данных 10 мегабит в секунду;
  • используется для построения локальных вычислительных сетей;
  • обмен данными между узлами сети осуществляется кадрами;
  • для разделения шины между многими узлами используется механизм CSMA/CD;
  • обеспечивает широковещательную (broadcast) и многопунктовую (multicast)
    рассылку данных.

В качестве физической среды передачи данных Ethernet использует:

  • "толстый" коаксиальный кабель (так называемый 10base5 Ethernet);
  • "тонкий" коаксиальный кабель (10base2);
  • оптоволоконный кабель;
  • витая пара (10baseT).

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

Примечание. Существуют современные версии Ethernet, обеспечивающие
скорость передачи в 100 мегабит в секунду.

Примечание. Ethernet позволяет объединить в локальную сеть
узлы, расположенные друг от друга на расстоянии от нескольких десятков
метров (10baseT) до нескольких километров (сегменты 10base5, связанные
повторителями).

Механизм CSMA/CD (Carrier Sense Multiple Acces with Collision
Detection - Множественный Доступ с Контролем Носителя и Обнаружением Столкновений)
подразумевает следующий алгоритм получения узлом сети доступа к шине:

  1. прослушивание шины (sense carrier) на предмет наличия в ней сигналов
    передачи данных другими узлами;
  2. если шина занята, то отложить передачу, если свободна - начать передачу
    данных;
  3. в течение первых 47 микросекунд передачи кадра данных вести проверку
    столкновений (collisions) в шине, связанных с возможным одновременным началом
    передачи данных и другими узлами сети;
  4. при обнаружении столкновения прекратить передачу данных и перейти в
    состояние ожидания на период времени случайной длины, а потом возобновить
    попытки передачи кадра.

Обмен данными по протоколу Ethernet всегда реализуется программно-аппаратно
с помощью двух компонентов:

  • сетевого контроллера (чаще всего имеющего вид печатной платы, вставляемой
    в корпус ЭВМ), подключаемого к шине (коаксиальному кабелю, оптоволокну
    или витой паре медных проводов);
  • драйвера сетевого контроллера, обеспечивающего интерфейс сетевого программного
    обеспечения (например, IP-модуля) с контроллером.

Примечание. В ОС UNIX сетевой контроллер и его драйвер принято
называть "сетевым интерфейсом".

7.1.1. Формат кадра данных
Ethernet

На рис. 7.1 представлен формат кадра данных протокола Ethernet. Для
иллюстративных целей показана вложенность в кадр IP-сегмента (содержащего,
в свою очередь, TCP-пакет).

Преамбула

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

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

Адрес приемника и адрес источника

    48-битовые поля, содержащие Ethernet-адреса принимающего и передающего
    кадр узлов сети.

    Каждый Ethernet-контроллер в мире имеет уникальный 6-байтовый адрес.
    Ethernet-адрес принято записывать в виде последовательности шести разделенных
    символом "двоеточие" двузначных шестнадцатиричных чисел, где
    каждое число представляет собой значение одного байта адреса, напрмер,
    f1:e2:d3:c4:b5:a6.

    Примечание. Как правило, Ethernet-адрес жестко "зашит"
    в контроллере, однако существуют контроллеры, допускающие его изменение
    программным путем.

48-битовые поля, содержащие Ethernet-адреса принимающего и передающего
кадр узлов сети.

Каждый Ethernet-контроллер в мире имеет уникальный 6-байтовый адрес.
Ethernet-адрес принято записывать в виде последовательности шести разделенных
символом "двоеточие" двузначных шестнадцатиричных чисел, где
каждое число представляет собой значение одного байта адреса, напрмер,
f1:e2:d3:c4:b5:a6.

Примечание



  • Эталонная модель OSI относится не только к TCP/IP. Она была разработана ISO в конце 70-х годов в качестве основы для описания функций, необходимых для взаимодействия открытых систем и сетей. Она является утвержденной и широко используемой в области коммуникаций эталонной моделью и приведена здесь только для сравнения.

Наверх