Протокол управления передачей (TCP)
Стек OSI
Следует различать стек протоколов OSI и модель OSI рис.3.1. Стек OSI – это набор вполне конкретных спецификаций протоколов, образующих согласованный стек протоколов. Этот стек протоколов поддерживает правительство США в своей программе GOSIP. Стек OSI в отличие от других стандартных стеков полностью соответствует модели взаимодействия OSI и включает спецификации для всех семи уровней модели взаимодействия открытых систем
Рис. 3.1 Стек OSI
На физическом и канальном уровнях стек OSI поддерживает спецификации Ethernet, Token Ring, FDDI, а также протоколы LLC, X.25 и ISDN.
На сетевом уровне реализованы протоколы, как без установления соединений, так и с установлением соединений.
Транспортный протокол стека OSI скрывает различия между сетевыми сервисами с установлением соединения и без установления соединения, так что пользователи получают нужное качество обслуживания независимо от нижележащего сетевого уровня. Чтобы обеспечить это, транспортный уровень требует, чтобы пользователь задал нужное качество обслуживания. Определены 5 классов транспортного сервиса, от низшего класса 0 до высшего класса 4, которые отличаются степенью устойчивости к ошибкам и требованиями к восстановлению данных после ошибок.
Сервисы прикладного уровня включают передачу файлов, эмуляцию терминала, службу каталогов и почту. Из них наиболее перспективными являются служба каталогов (стандарт Х.500), электронная почта (Х.400), протокол виртуального терминала (VT), протокол передачи, доступа и управления файлами (FTAM), протокол пересылки и управления работами (JTM). В последнее время ISO сконцентрировала свои усилия именно на сервисах верхнего уровня.
Архитектура стека протоколов Microsoft TCP/IP
Набор многоуровневых протоколов, или как называют стек TCP/IP, предназначен для использования в различных вариантах сетевого окружения. Стек TCP/IP с точки зрения системной архитектуры соответствует эталонной модели OSI (Open Systems Interconnection – взаимодействие открытых систем) и позволяет обмениваться данными по сети приложениям и службам, работающим практически на любой платформе, включая Unix, Windows, Macintosh и другие.
Рис. 3.1 Соответствие семиуровневой модели OSI и четырехуровневой модели TCP/IP
Реализация TCP/IP фирмы Microsoft [1] соответствует четырехуровневой модели вместо семиуровневой модели, как показано на рис. 3.2. Модель TCP/IP включает большее число функций на один уровень, что приводит к уменьшению числа уровней. В модели используются следующие уровни:
- уровень Приложения модели TCP/IP соответствует уровням Приложения, Представления и Сеанса модели OSI;
- уровень Транспорта модели TCP/IP соответствует аналогичному уровню Транспорта модели OSI;
- межсетевой уровень модели TCP/IP выполняет те же функции, что и уровень Сети модели OSI;
- уровень сетевого интерфейса модели TCP/IP соответствует Канальному и Физическому уровням модели OSI.
Уровень Приложения
Через уровень Приложения модели TCP/IP приложения и службы получают доступ к сети. Доступ к протоколам TCP/IP осуществляется посредством двух программных интерфейсов (API – Application Programming Interface):
- Сокеты Windows;
- NetBIOS.
Интерфейс сокетов Windows, или как его называют WinSock, является сетевым программным интерфейсом, предназначенным для облегчения взаимодействия между различными TCP/IP – приложениями и семействами протоколов.
Интерфейс NetBIOS используется для связи между процессами (IPC – Interposes Communications) служб и приложений ОС Windows. NetBIOS выполняет три основных функции:
- определение имен NetBIOS;
- служба дейтаграмм NetBIOS;
- служба сеанса NetBIOS.
В таблице 3.1 приведено семейство протоколов TCP/IP.
Таблица 3.1
Название протокола | Описание протокола |
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) |
Уровень транспорта
Уровень транспорта TCP/IP отвечает за установления и поддержания соединения между двумя узлами. Основные функции уровня:
- подтверждение получения информации4
- управление потоком данных;
- упорядочение и ретрансляция пакетов.
В зависимости от типа службы могут быть использованы два протокола:
- TCP (Transmission Control Protocol – протокол управления передачей);
- UDP (User Datagram Protocol – пользовательский протокол дейтаграмм).
TCP обычно используют в тех случаях, когда приложению требуется передать большой объем информации и убедиться, что данные своевременно получены адресатом. Приложения и службы, отправляющие небольшие объемы данных и не нуждающиеся в получении подтверждения, используют протокол UDP, который является протоколом без установления соединения.
Протокол управления передачей (TCP)
Протокол TCP отвечает за надежную передачу данных от одного узла сети к другому. Он создает сеанс с установлением соединения, иначе говоря виртуальный канал между машинами. Установление соединения происходит в три шага:
1. Клиент, запрашивающий соединение, отправляет серверу пакет, указывающий номер порта, который клиент желает использовать, а также код (определенное число) ISN (Initial Sequence number).
2. Сервер отвечает пакетом, содержащий ISN сервера, а также ISN клиента, увеличенный на 1.
3. Клиент должен подтвердить установление соединения, вернув ISN сервера, увеличенный на 1.
Трехступенчатое открытие соединения устанавливает номер порта, а также ISN клиента и сервера. Каждый, отправляемый TCP – пакет содержит номера TCP – портов отправителя и получателя, номер фрагмента для сообщений, разбитых на меньшие части, а также контрольную сумму, позволяющую убедиться, что при передачи не произошло ошибок.