Сетевое взаимодействие на основе протоколов семейства TCP/IP Протоколы IP и TCP разработаны при построении исследовательской сети ARPANET (1969 г.). ARPANET была построена управлением перспективного планирования научно исследовательских работ DARPA (Defense Advanced Research Project Agency) финансируемым министерством обороны США. В 70-х годах сеть в основном использовалась для пересылки электронной почты, организации новостных групп и досок объявлений. В 1973 году к сети были первые иностранные организации из Великобритании и Норвегии. C 1983 г. IP стал единственным официальным протоколом ARPANET (до этого также использовался протокол NCP). В 1984 году разработана система доменных имён. TCP/IP – Transmission Control Protocol/Internet Protocol.
В 70-х годах, Национальный научный фонд США (NFS) на базе ARPANET профинансировал создание сети NSFNET (National Science Foundation) объединявшей сети крупнейших университетов США. Причина создания сети – контроль ARPANET министерством обороны США. В 1989 г. британский учёный Тим Бернерс-Ли разработал концепцию WWW, он же разработал первые спецификации протокола HTTP и языка HTML. В 1990 г. сеть ARPANET перестала существовать став частью NSFNet. В 1993 г. появился первый веб-браузер NCSA Mosaic. В 1997 г. к Интернет подключено ~ компьютеров. Рунет В 1990 г. научная сеть Института атомной энергии им. И. В. Курчатова и ИПК Минавтопрома подсоединена к сетью Интернет. В 1990 г. в InterNIC зарегистрирован домен первого уровня su. В 1994 г. в InterNIC зарегистрирован российский домен ru.
Модель стека протоколов TCP/IP Прикладной Транспортный Межсетевой Прикладной Транспортный Межсетевой Уровень сетевых интерфейсов
Уровень сетевых интерфейсов обеспечивает объединение в составную сеть сетей, построенных на локальных технологиях. Основная функция этого уровня: упаковка IP-пакетов в кадры технологий локальных и глобальных сетей. Уровень сетевых интерфейсов
Межсетевой уровень отвечает за выбор маршрута продвижения пакетов и передачу пакетов без установления соединения (дейтаграммным способом). Виды протоколов: 1. Основной протокол IP – обеспечивает передачу пакетов между узлами составной сети дейтаграммным способом; 2. Протоколы маршрутизации – предназначены для обмена маршрутизаторами информацией о конфигурации сети. Примеры: BGP, EIGRP, OSPF, IS-IS, RIP; 3. Межсетевой протокол управления группами IGMP; 4. Межсетевой протокол передачи управляющих сообщений ICMP; Межсетевой уровень (Интернет- уровень)
В настоящее время наиболее распространенным протоколом для организации межсетевого взаимодействия является IP (Internet Protocol) протокол версии 4 (IPv4). Постепенно внедряется IP протокол версии 6 (IPv6)
Транспортный (основной) уровень Транспортный уровень предназначен для передачи данных между прикладными процессами. В зависимости от требований предъявляемых к качеству передачи, протоколы транспортного уровня могут обеспечивать доставку данных или дейтаграммным способом или с использованием механизмов надежной доставки. Протоколы: 1. Протокол управления передачей TCP (Transmission Control Protocol) – обеспечивает надежную передачу сообщений между удаленными прикладными процессами. Для реализации надежной доставки используются логические соединения, контроль целостности передаваемых данных, контроль доставки данных и управление потоком передаваемых данных (RFC 793); 2. Протокол пользовательских дейтаграмм UDP (User Datagram Protocol) – обеспечивает передачу данных дейтаграммным способом, выполняет функции связующего звена между сетевым уровнем и прикладными процессами.
Прикладной уровень предоставляет приложениям высокоуровневые протоколы обеспечивающие преобразование форматов передаваемых данных, поддержку сессий взаимодействия прикладных процессов, доступ к стандартным сетевым службам и.т.д. Сетевые службы строятся на основе архитектуры клиент-сервер. Примеры протоколов: : DNS, FTP, HTTP, IMAP, POP3, SNMP, SMTP, SSH, Telnet, LDAP. Прикладной уровень
Стандарты Интернет Семейство протоколов TCP/IP и сеть Интернет контролируются Обществом Интернет (Internet Society, ISOC). Официально ISOC является некоммерческой образовательной организацией, занимающейся развитием и обеспечением доступности сети Интернет. ISOC официально владеет правами на все документы RFC. Технические вопросами Интернет занимаются подразделения ISOC: Совет по архитектуре Интернет (Internet Architecture Board, IAB) - контроль разработки новых стандартов, редактирование и публикация документов RFC; консультации руководства ISOC по техническим, архитектурным вопросам. Группа по проблемам проектирования Интернет (Internet Engineering Task Force, IETF) - анализ проблем и разработка технических решений, разработка стандартов по общим архитектурным принципам Интернет.
Принятие стандартов контролирует группа по выработке инженерного регламента (Internet Engineering Steering Group, IESG) IETF. Исследованием проблем Интернет занимается группа по проблемам исследования Интернет (Internet Research Task Force, IRTF).
Технические спецификации и стандарты Интернет описываются в документах называемых Запрос на обсуждение (Request For Comments, RFC). Жизненный цикл RFC: 1.Черновик (Internet Draft) – представленный на всеобщее рассмотрение черновик стандарта. Черновики не имеют официального статуса, и удаляются из базы через шесть месяцев после последнего изменения. 2.Предложенный стандарт (Proposed Standard) - этот статус получают черновики заслужившие внимания сообщества. Предложенным стандартам присваивается номер RFC. Наличие программной реализации стандарта желательно, но не обязательно.
3.Черновой стандарт (Draft Standard) - предложенный стандарт принят сообществом и существуют две независимые реализации разных команд разработчиков. Черновые стандарты рекомендуются для реализации. В черновой стандарт могут вноситься небольшие правки. 4.Стандарт Интернета (Internet Standard) - спецификация с успешным опытом применения и зрелой формулировкой. Список стандартов имеется в документе RFC 5000.
Кроме стандартов RFC имеются следующие виды RFC: Экспериментальные (Experimental) - содержат информацию об экспериментальных исследованиях. Информационные (Informational) - предназначены для ознакомления общественности не являются стандартами и не являются результатом консенсуса или рекомендациями (черновики, не получившие статуса). Лучший современный опыт (Best Current Practice) - содержат рекомендации по реализации стандартов, и внутренние документы о структуре и процедурах стандартизации. RFC публикуются в репозитариях InterNIC и RIPE. Ссылки: База данных RFC: Cтатус стандартизации RFC:
IP-протокол Основная функция IP-протокола – передача пакетов между узлами составной сети дейтаграммным способом. Протокол обеспечивает доставку пакетов между узлами сети без установления соединения, контроля доставки, контроля целостности данных и управления потоком пакетов (протокол не гарантирует надежную доставку пакета). Единицей передачи данных в IP-протоколе является IP-пакет. IP- пакет состоит из заголовка и поля данных. Заголовок может иметь размер от 20 до 60 байт и содержит служебную информацию IP- протокола. Поле данных содержит передаваемые данные.
Формат заголовка IP-пакета Версия (4 бит) Длина (4 бит) Диф. обслуживание (8 бит) Длина пакета (16 бит) Идентификатор пакета (16 бит) Флаги (3 бита) Смещение фрагмента (13 бит) Время жизни (8 бит) Протокол (8 бит) Контрольная сумма заголовка (16 бит) IP-адрес источника (32 бита) IP-адрес получателя (32 бита) Опции (переменная длина) Заполнение (переменная длина)
Версия (4 бита) - указатель версии IP–протокола. В настоящее время наибольшее распространение получил протокол IP версии 4 (IPv4). Длина (4 бита) - длина заголовка пакета, измеренная в 32 битных словах. Обычно заголовок имеет длину 20 байт, но может быть увеличен до 60 байт. Дифференцированное обслуживание(8 бит) – поле предназначено для указания приоритета пакета и критерия выбора маршрута. В соответствии с RFC 791 до 1998 г. это поле называлось Тип сервиса, в RFC 2474 было принято новое название Дифференцированное обслуживание.
В соответствии с RFC 791, первые три бита поля Тип сервиса предназначены для указания приоритета (срочности) пакета (значение 0 - низкий приоритет, 7 - высокий приоритет). Следующие три бита используются для указания критерия выбора маршрута. Варианты интерпретации значений 4,5 и 6 битов: минимизация задержки пакета; максимизация пропускной способности; максимизация надежности доставки. В соответствии с RFC 2474, интерпретация первых шести битов поля Дифференцированное обслуживание зависит от значений четвертого, пятого и шестого битов (последние два бита зарезервированы). Если четвертый, пятый и шестой биты равны 0, первые три бита интерпретируются также, как биты приоритета поля Тип сервиса. Если пятый и шестой биты не равны 0, первые шесть бит определяют различные классы трафика.
Длина пакета (2 байта) - общая длина пакета => длина пакета ограничена байтами. В большинстве сетей используются пакеты длиной 1500 байт (максимальный размер поля данных кадра Ethernet). Идентификатор пакета (2 байта) - используется для указания IP- пакетов, являющихся фрагментами некоторого исходного IP-пакета. Все фрагменты одного пакета имеют одинаковое значение этого поля. Флаги - используется для указания признаков фрагментации пакета. Длина поля 3 бита Смещение фрагмента (13 бит)- используется для указания смещения поля данных пакета, являющегося фрагментом другого пакета. Смещение указывается от начала поля данных исходного пакета.
Время жизни (8 бит) - в этом поле указывается максимальное время перемещения пакета по сети. Время жизни измеряется в секундах и определяется источником пакета. Протокол (8 бит) - указатель на протокол верхнего уровня, которому должны быть переданы данные из поля данных пакета. Контрольная сумма заголовка (16 бит) - значение контрольной суммы заголовка пакета, контрольная сумма пересчитывается каждым маршрутизатором. IP адрес источника (32 бита) - адрес узла, отправившего пакет.
IP адрес получателя (32 бита) - адрес узла, которому предназначен пакет. Опции - это поле предназначено для указания дополнительных параметров передачи пакета или для записи информации об маршруте прохождения пакета. Поле является необязательным и используется, обычно, только при отладке сети. Выравнивание - используется для выравнивания заголовка пакета по 32-битной границе (поле заполняется нулями).