Стек TCP/IP предназначен для использования в различных вариантах сетевого окружения и позволяет обмениваться данными по сети приложениям и службам, работающим практически на любой платформе, включая Unix, Windows, Macintosh и другие.
Уровень сетевого интерфейса.
Уровень сетевого доступа (физический уровень) обеспечивает передачу кадра данных между любыми узлами в сетях с типовой топологией или между двумя соседними узлами в сетях со смешанной топологией. Для идентификации узла назначения используется локальный (аппаратный) адрес компьютера (00:E0:29:78:96:FF). К физическому уровню относятся протоколы Ethernet, Token Ring, FDDI, SLIP, PPP, ATM, Frame Relay и другие. Уровень сетевого интерфейса модели TCP/IP соответствует Канальному и Физическому уровням модели OSI.
Межсетевой уровень. На этом уровне определяются правила передачи пакетов данных между сетями. Для идентификации узла назначения используется числовой составной IP-адрес (194.85.160.050), состоящий из двух частей: номера сети и номера узла в этой сети. Основным протоколом этого уровня является протокол IP (Internet Protocol - межсетевой протокол), который определяет формат адресов и маршрут передачи. М ежсетевой уровень модели TCP/IP выполняет те же функции, что и уровень Сети модели OSI.
Транспортный уровень. Этот уровень обеспечивает передачу данных между любыми узлами сети с требуемым уровнем надежности. Для этого на транспортном уровне имеются средства установления соединения, нумерации, буферизации и упорядочивания пакетов. Основной протокол данного уровня TCP (Transmission Control Protocol - протокол управления передачей). Уровень Транспорта модели TCP/IP соответствует аналогичному уровню Транспорта модели OSI;
Уровень приложений. На этом уровне определяются правила построения сетевых приложений (служб). Сетевое приложение — это программа, которая состоит из нескольких частей и обеспечивает доступ к определенному типу ресурсов. В стеке TCP/IP к уровню приложений относятся протоколы HTTP, FTP, SMTP, POP, Telnet. Уровень Приложения модели TCP/IP соответствует уровням Приложения, Представления и Сеанса модели OSI.
|
Понятия «Порт» и «сокет».
Порт — это целое число, определяющее прикладной процесс запущенный на компьютере.
Сокет - совокупность IP-адресов и портов клиента и сервера, идентифицирующий TCP-соединение.
Процесс преобразования данных во время передачи пакетов.
T - Заголовок TCP; I – Заголовок
УРОВЕНЬ ПРИЛОЖЕНИЯ МОДЕЛИ TCP/IP
Через уровень Приложения модели TCP/IP приложения и службы получают доступ к сети. Доступ к протоколам TCP/IP осуществляется посредством двух программных интерфейсов (API – Application Programming Interface):
Сокеты Windows;
NetBIOS.
Интерфейс сокетов Windows, или как его называют WinSock, является сетевым программным интерфейсом, предназначенным для облегчения взаимодействия между различными TCP/IP – приложениями и семействами протоколов.
Интерфейс NetBIOS используется для связи между процессами (IPC – Interposes Communications) служб и приложений ОС Windows. NetBIOS выполняет три основных функции:
• определение имен NetBIOS;
• служба дейтаграмм NetBIOS;
• служба сеанса NetBIOS.
МЕЖСЕТЕВОЙ УРОВЕНЬ МОДЕЛИ TCP/IP
Межсетевой уровень отвечает за маршрутизацию данных внутри сети и между различными сетями. На этом уровне работают маршрутизаторы, которые зависят от используемого протокола и используются для отправки пакетов из одной сети (или ее сегмента) в другую (или другой сегмент сети). В стеке TCP/IP на этом уровне используется протокол IP.
|
УРОВЕНЬ СЕТЕВОГО ИНТЕРФЕЙСА МОДЕЛИ TCP/IP.
Этот уровень модели TCP/IP отвечает за распределение IP-дейтаграмм.
Он работает с ARP для определения информации, которая должна быть помещена в заголовок каждого кадра. Затем на этом уровне создается кадр, подходящий для используемого типа сети, такого как Ethernet, Token Ring или ATM, затем IP-дейтаграмма помещается в область данных этого кадра, и он отправляется в сеть.
ТРАНСПОРТНЫЙ УРОВЕНЬ МОДЕЛИ TCP/IP
Уровень транспорта TCP/IP отвечает за установления и поддержания соединения между двумя узлами.
Основные функции уровня:
• подтверждение получения информации;
• управление потоком данных;
• упорядочение и ретрансляция пакетов.
В зависимости от типа службы могут быть использованы два протокола:
• TCP (Transmission Control Protocol – протокол управления передачей);
• UDP (User Datagram Protocol – пользовательский протокол дейтаграмм).
ПРОТОКОЛЫТРАНСПОРТНОГО УРОВНЯ TCP и UDP
Главная задача транспортного уровня заключается в передаче данных между прикладными процессами: протокол управления передачей TCP (RFC 793) и протокол пользовательских дейтаграмм UDP (RFC 768).
Протоколы TCP и UDP: обеспечивают интерфейс с вышележащим прикладным уровнем, передавая данные, поступающие на входной интерфейс хоста, соответствующему приложению.
При этом оба протокола используют концепции «порт» и «сокет».
Поддерживают интерфейс с нижележащим сетевым уровнем IP, упаковывая свои PDU в IP-пакеты.
|
Протокольные сущности TCP и UDP устанавливаются только на конечных узлах.
Сравнительная характеристика TCP и UDP:
Надежность | Скорость | |
Протокол | TCP | UDP |
Соединения | Есть | Нет |
Последовательность пакетов | Есть | Нет |
Используется | Почта, передача файлов | Потоковое видео и аудио |
На транспортном уровне осуществляется процесс Мультиплексирования и демультиплексирования потоков данных во время передачи
ПРОТОКОЛ TCP
Характеристика TCP:
• ориентирован на установку соединений
• управляет процессом передачи пакетов
• маркирует передаваемые пакеты
• уведомляет о доставке пакетов
• поддерживает обнаружение ошибок передачи
• повторно передаёт утерянные / испорченные пакеты
1. Информация, поступающая к протоколу TCP от протоколов более высокого уровня, рассматривается протоколом TCP как неструктурированный поток байтов.
2. Поступающие данные буферизуются средствами TCP.
3. Для передачи на сетевой уровень из буфера «вырезается» некоторая непрерывная часть данных, которая называется сегментом 1 и снабжается заголовком.
Формат ТСР-сегмента:
· Порт источника (sourc port) занимает 2 байта и идентифицирует процесс-отправитель.
· Порт приемника (destination port) занимает 2 байта и идентифицирует процесс-получатель.
· Последовательный номер (sequence number) занимает 4 байта и представляет собой номер байта, который определяет смещение сегмента относительно потока отправляемых данных (другими словами, номер первого байта данных в сегменте).
· Подтвержденный номер (acknowledgement number) занимает 4 байта и содержит максимальный номер байта в полученном сегменте, увеличенный на единицу. Именно это значение используется в качестве квитанции. Если установлен контрольный бит АСК, то это поле содержит следующий номер очереди, который отправитель данного сегмента желает получить в обратном направлении.
· Длина заголовка (hlen) занимает 4 бита и представляет собой длину заголовка TCP-сегмента, измеренную в 32-битовых словах. Длина заголовка не фиксирована и может изменяться в зависимости от значений, устанавливаемых в поле параметров.
· Резерв (reserved) занимает 6 бит.
Основным отличием TCP от UDP является то, что на протокол TCP возложена дополнительная задача — обеспечить надежную доставку сообщений, используя в качестве основы ненадежный дейтаграммный протокол IP.
Установленные на конечных узлах протокольные модули TCP решают задачу обеспечения надежного обмена данными путем установления между собой логических соединений.
Благодаря логическому соединению TCP следит, чтобы передаваемые сегменты не были потеряны, не были продублированы и пришли к получателю в том порядке, в котором были отправлены.
ПРОЦЕСС УСТАНОВКИ СОЕДИНЕНИЙ
Установление соединения происходит в три шага:
- Клиент, запрашивающий соединение, отправляет серверу пакет, указывающий номер порта, который клиент желает использовать, а также код (определенное число) ISN (Initial Sequence number).
- Сервер отвечает пакетом, содержащий ISN сервера, а также ISN клиента, увеличенный на 1.
- Клиент должен подтвердить установление соединения, вернув ISN сервера, увеличенный на 1.
«Тройное рукопожатие»
Уведомления о доставке
Итоги по протоколу TCP
• Используя TCP, как протокол транспортного уровня, приложения могут передавать данные. Соединение устанавливается однократно и далее поддерживается в процессе передачи данных.
• Контроль передачи позволяет избегать проблем с переполнением буфера получателя.
• TCP поддерживает нумерацию пакетов и уведомления. Когда очередной пакет доставлен, получатель уведомляет об этом отправителя и начинается передача следующих пакетов.
• Размер TCP-«окна» определяет число пакетов, которые можно передавать без подтверждения.
ПРОТОКОЛ UDP (USER DATAGRAM PROTOCOL)
Характеристика UDP:
• не устанавливает соединения
• пакеты (дейтаграммы) не связаны друг с другом
• доставка пакетов (дейтаграмм) не проверяется и не гарантируется
• утерянные пакеты (дейтаграммы) не восстанавливаются
Протокол UDP - дейтаграммный протокол, реализует сервис по возможности, то есть не гарантирует доставку своих сообщений, а, следовательно, никоим образом не компенсирует ненадежность дейтаграммного протокола IP.
Единица данных протокола UDP называется UDP-дейтаграммой, или пользовательской дейтаграммой.
Каждая дейтаграмма переносит отдельное пользовательское сообщение.
Это приводит к естественному ограничению -длина дейтаграммы UDP не может превышать длины поля данных протокола IP, которое, в свою очередь, ограничено размером кадра технологии нижнего уровня.
Поэтому если UDP-буфер переполняется, то данные приложения отбрасываются.
Заголовок UDP, состоящий из четырех 2-байтовых полей, содержит номера портов отправителя и получателя, контрольную сумму и длину дейтаграммы.
Формирование дейтаграммы протокола UDP
Пример заголовка UDP с заполненными полями:
• Source Port = 0x0035
• Destination Port = 0x0411
• Total length = 132 (0x84) bytes
• Checksum = 0x5333
В этой UDP-дейтаграмме в поле данных, длина которого, как следует из заголовка, равна (132 - 8) байт, помещено сообщение DNS-сервера.
Это можно видеть по номеру порта источника (Source Port = 0x0035), что в 16-ном формате равно стандартному номеру DNS-сервера — 53.
Формат UDP -сегмента
Протоколы TCP и UDP ведут для каждого приложения две очереди: очередь пакетов, поступающих к данному приложению из сети, и очередь пакетов, отправляемых данным приложением в сеть.
Пакеты, поступающие на транспортный уровень, организуются операционной системой в виде множества очередей к точкам входа различных прикладных процессов.
В терминологии TCP/IP такие системные очереди называются портами, причем входная и выходная очереди одного приложения рассматриваются как один порт.
Для однозначной идентификации портов им присваивают номера. Номера портов используются для адресации приложений.
Если процессы представляют собой популярные общедоступные службы, такие как FTP, telnet, HTTP, TFTP, DNS и т. п., то за ними закрепляются стандартные, назначенные номера, также называемые хорошо известными (well-known) номерами портов.
Эти номера закрепляются и публикуются в стандартах Интернета (RFC 1700, RFC 3232).
ПРОТОКОЛ ИНТЕРНЕТА IP
Протокол IP семейства TCP/IP, который был разработан в 80-х годах. Протокол IP обеспечивает обмен дейтаграммами между узлами сети и является протоколом, не устанавливающим соединения и использующим дейтаграммы для отправки данных из одной сети в другую.
Данный протокол не ожидает получение подтверждения (AСK, Acknowledgment) отправленных пакетов от узла адресата. Подтверждения, а также повторные отправки пакетов осуществляется протоколами и процессами, работающими на верхних уровнях модели.
Функции IP протокола:
• фрагментация дейтаграмм;
• межсетевая адресация.
Протокол IP предоставляет управляющую информацию для сборки фрагментированных дейтаграмм. Главной функцией протокола является межсетевая и глобальная адресация. В зависимости от размера сети, по которой будет маршрутизироваться дейтаграмма или пакет, применяется одна из трех схем адресации.
Протокол IP работает с блоком информации, который принято называть IP-пакет. Формат пакета:
Адресация в IP-сетях
Каждый компьютер (хост) в сетях TCP/IP имеет адреса трех уровней:
• физический (MAC-адрес),
• сетевой (IP-адрес),
• символьный (DNS-имя).
Физический, или локальный адрес узла, определяемый технологией, с помощью которой построена сеть, в которую входит узел.
Для узлов, входящих в локальные сети — это МАС –адрес сетевого адаптера или порта маршрутизатора, например,
1-А0-17-3D-BC-01.
Эти адреса назначаются производителями оборудования и являются уникальными адресами, так как управляются централизовано.
Для всех существующих технологий локальных сетей МАС – адрес имеет формат 6 байтов:
старшие 3 байта - идентификатор фирмы производителя, а младшие 3 байта назначаются уникальным образом самим производителем.
Сетевой, или IP-адрес, состоящий из 4 байт,
109.26.17.100.
Этот адрес используется на сетевом уровне.
Он назначается администратором во время конфигурирования компьютеров и маршрутизаторов.
IP-адрес состоит из двух частей:
• номера сети
• номера узла.
Номер сети может быть выбран администратором произвольно, либо назначен по рекомендации специального подразделения Internet (Network Information Center, NIC)
Версии IP:
• IPv4. Использует 32-битные адреса, которые записываются в формате четырёх десятичных чисел (от 0 до 255), разделённых точками.
192.168.0.4.
Каждое число, разделенное точками, называют октетом. Это самая популярная версия на сегодняшний день.
• IPv6. Использует 128-битные адреса, которые записываются в формате восьми четырехзначных шестнадцатеричных чисел (от 0 до F).
2001:0db8:11a3:09d7:1f34:8a2e:07a0:765d.
Каждое число, разделенное точками, называют хекстетом. На заре всеобщей компьютеризации появилась проблема. Стали заканчиваться IP-адреса и нужен был новый протокол, который смог бы обеспечить больше адресов. Так и появился в 1996 году протокол IPv6. Но благодаря технологии NAT, которая будет рассмотрена позже, была частична решена проблема нехватки адресов, и, в связи с этим, внедрение IPv6 затянулось по сегодняшний день.
Символьный адрес, или DNS-имя,
SERV1.IBM.COM.
Этот адрес назначается администратором и состоит из нескольких частей, например, имени машины, имени организации, имени домена.
Такой адрес используется на прикладном уровне, например, в протоколах FTP или telnet.