6 книг по протоколам TCPIP


Оглавление (нажмите, чтобы открыть):

TCP/IP Архитектура, протоколы, реализация (включая IP версии 6 и IP Security)

Второе издание популярного справочника полностью переработано и расширено с целью предоставить читателю наиболее полное описание средств разработки, конфигурирования, использования и обслуживания сетей TCP/IP и соответствующих служб.

Книга написана увлекательно и доступно. Она содержит дополнительные материалы о нескольких протоколах Интернета, используемых серверами и браузерами WWW, а также рассматривает все последние изменения в этой области. В книгу включены главы о новом стандарте безопасности IP и протоколе IP следующего поколения, известном как IPng или IPv6. Рисунки и таблицы наглядно показывают влияние средств безопасности IP и IPng на существующие сетевые среды.

Издание содержит следующие дополнительные разделы:

• Безопасность IP и IPv6

• Описание средств WWW, новостей Интернета и приложений для работы с gopher

• Подробное описание серверов имен доменов (DNS), маски подсети и бесклассовой маршрутизации в Интернете

• Таблицы и протоколы маршрутизации

• Руководство по реализации средств безопасности для каждого из протоколов и приложений

• Примеры диалогов с новыми графическими инструментами

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

6 книг по протоколам TCP/IP

Размер шрифта:
14 | 16 | 18 | 20 | 22 | 24

Цвет текста:
Установить
Цвет фона:
Установить

Предисловие к русскому изданию

I.2 Приложения TCP/IP

I.4 Реализации с использованием оборудования различных производителей

I.6 Дополнительная литература

Глава 1
TCP/IP: что это такое и откуда взялось

1.2 Принятие новых протоколов

1.3 Характеристики TCP/IP

1.6 IAB, IETF и IESG

1.7 Requests For Comments

1.8 Другие информационные ресурсы

1.9 Open System Interconnection

Глава 2
Обзор служб набора протоколов TCP/IP

2.2 Коммуникации между приложениями

2.3 Основные службы

2.4 Дополнительные службы

Глава 3
Архитектура TCP/IP

3.2 Деление на уровни

3.3 Обзор протоколов

3.4 Маршрутизаторы и топология сети

3.5 Маршрутизация в IP

3.6 Архитектура TCP

3.7 Архитектура UDP

3.8 Концепция безопасности

Глава 4
Технологии физического уровня и уровня связи данных

4.2 Функции физического уровня, управление доступом к физическому носителю и уровень связи данных

4.3 Сетевые технологии

4.4. Извлечение данных из пакетов

4.5 Протоколы связей «точка-точка»

4.7 Протокол PPP

4.8 Дополнительный возможности PPP

4.9 Протокол SLIP

4.10 Локальные сети

4.11 DIX Ethernet

4.12 Сети по спецификации 802

4.13 Заголовок LLC для 802.2

4.14 Уровни в сетях 802

4.15 Другие технологии локальных сетей

4.16 Использование концентраторов

4.18 Широковещательные и многоадресные рассылки

4.19 Сети с коммутацией пакетов

4.21 Frame Relay

4.24 Максимальное число пересылаемых элементов

4.25 Создание туннелей

4.26 Совместное использование сетевого интерфейса

4.27 Замечания об уровне связи данных

4.28 Завершающая часть кадра

4.29 Рекомендуемая литература

Глава 5
Именование и адресация

5.2 Примеры имен Интернета

5.3 Иерархическая структура имен

5.4 Администрирование имен

5.5 Формальная структура имен

5.6 Всемирное дерево имен

5.7 Конфигурирование имен систем

5.9 Форматы адресов

5.10 Классы адресов


5.11 Адреса не подключенных к Интернету систем

5.12 Примеры адресации

5.13 Трансляция имен в адреса

5.14 Псевдонимы имен

5.15 Неэффективность классов адресов

5.16 Сети и подсети TCP/IP

5.17 Маска подсети

5.18 Специальные зарезервированные адреса

5.19 Суперсети и CIDR

5.20 Необходимость следующего поколения протокола IP

5.21 IP-адреса, интерфейсы и множественное пребывание

5.22 Конфигурирование адресов и масок подсети

5.23 Взаимосвязь имен и адресов

5.24 Протокол ARP

5.25 Множество адресов для одного интерфейса

5.27 Многоадресные рассылки

5.28 Дополнительная литература

Глава 6
Протокол интернета

6.2 Датаграммы IP

6.3 Основные функции IP

6.4 Использование маски подсети

6.5 Хост в таблице маршрутизации IP

6.6 Маршрутизация по следующему попаданию

6.7 Еще один пример таблицы маршрутизации хоста

6.8 Правило просмотра таблицы маршрутизации

6.9 Таблицы маршрутизатора

6.10 Таблица маршрутизации филиала компании

6.11 Операции глобальной маршрутизации

6.12 Возможности IP

6.13 Механизмы протокола IP

6.15 Просмотр статистики IP

6.17 Пример заголовка IP

6.18 Сценарий обработки датаграммы

6.19 Средства защиты и безопасность

6.20 Замечания о производительности IP

6.21 Дополнительные сведения о многоадресных рассылках

6.22 Рекомендуемая литература

Глава 7
Протокол ICMP

7.2 Сообщения об ошибках ICMP

7.3 Когда не нужно посылать сообщение ICMP

7.4 Формат сообщения ICMP

7.5 Исследование MTU по пути

7.6 Сообщения запросов ICMP

7.7 Просмотр действий в ICMP

7.8 Обнаружение маршрутов

7.9 Дополнительная литература

Глава 8
Маршрутизация в IP

8.2 Автономные системы

8.3 Маршрутизация в IP

8.4 Метрики маршрутизации

8.5 Таблицы маршрутизации

8.6 Таблица маршрутизации по протоколу RIP

8.7 Таблица маршрутизации IGRP/BGP

8.8 Протоколы обслуживания таблиц маршрутизации

8.9 Протокол RIP

8.10 Протокол RIP версии 2

8.11 Переход на более интеллектуальные протоколы

8.12 Протоколы IGRP и EIGRP

8.13 Протокол OSPF

8.14 Маршрутизация в OSI

8.15 Протоколы EGP

8.17 Протокол BGP

8.18 Дополнительная литература

Глава 9
Протокол UDP

9.2 Порты приложений

9.3 Адреса socket

9.4 Механизмы протокола UDP

9.5 Нагрузки в UDP

9.6 Дополнительная литература


Глава 10
Протокол TCP

10.2 Концепции TCP

10.3 Механизм обеспечения надежности TCP

10.4 Установка соединения

10.5 Пересылка данных

10.6 Закрытие соединения

10.7 Управление потоком

10.8 Заголовок TCP

10.9 Пример сегмента TCP

10.10 Поддержка работы сеанса

10.11 Завершение сеанса

10.13 Алгоритмы повышения производительности

10.14 Соответствие требованиям разработчика

10.15 Барьеры для производительности

10.16 Функции TCP

10.17 Состояния TCP

10.18 Замечания о реализациях

10.19 Дополнительная литература

Глава 11
Конфигурация с помощью BOOTP и DHCP

11.2 Требования протокола BOOTP

11.3 Возможности BOOTP

11.4 Необходимость DHCP

11.5 Первая версия BOOTP

11.6 Эволюция BOOTP

11.7 Протокол BOOTP

11.8 Возможности DHCP

11.9 Механизмы DHCP

11.10 Совместимость и различия

11.11 Параметры загрузки

11.12 Другие методы автоматизации конфигурирования

11.13 Дополнительная литература

12.2 Назначение DNS

12.3 Программное обеспечение BIND

12.5 Просмотр адресов хостов

12.6 Авторитетные ответы и ответы из кеша

12.7 Трансляция адресов в имена

12.8 Локальные и глобальные серверы имен доменов

12.10 Соединение серверов имен с Интернетом

12.11 Разработка базы данных сервера имен

12.12 Данные DNS

12.13 Элементы описании в DNS

12.14 Пример файла трансляции имен в адреса

12.15 Трансляция адресов в имена

12.16 Формат сообщений DNS

12.17 Используемый транспорт

12.19 Дополнительные типы записей

12.20 Недостатки DNS

12.21 Дополнительная литература

Глава 13
Telnet

13.2 Использование telnet для удаленной регистрации

13.3 Обращение по telnet к заданному порту

13.4 Модель эмуляции терминала в Telnet

13.5 Наиболее распространенные типы терминалов

13.7 Управление текстовым клиентом telnet

13.8 Возможности NVT

13.9 Команды telnet

13.10 Применение telnet

13.11 Замечания о безопасности

13.12 Замечания о производительности

13.14 Дополнительная литература

Глава 14
Протокол FTP

14.2 Общедоступный и личный доступ FTP

14.4 Команды FTP

14.5 Типы данных, структуры файлов и методы пересылки

14.6 Протокол FTP

14.8 Замечания о производительности

14.9 Trivial File Transfer Protocol

14.10 Дополнительная литература

Глава 15
RPC и NFS

15.3 Программы и процедуры RPC


15.4 Типичная программа RPC

15.5 Работа с дубликатами запросов RPC

15.6 Portmapper в RPC

15.7 Программа rpcbind

15.8 Сообщения RPC

15.9 Аутентификация в RPC

15.10 Пример сообщении RPC версии 2

15.12 Программные интерфейсы RPC и XDR

15.13 Введение в NFS

15.14 Модель файлов NFS

15.15 Протокол монтирования

15.16 Особенности NFS

15.17 Протокол NFS

15.18 Дополнительная литература

Глава 16
Электронная почта

16.2 Почтовые протоколы Интернета

16.3 Модель пересылки почтового сообщения

16.4 Пересылка почтового сообщения

16.5 Идентификация получателя и обмен сообщениями

16.6 Протокол SMTP

16.7 Временная метка и идентификатор сообщения

16.8 Отброшенная почта

16.9 Команды SMTP

16.10 Коды ответов

16.11 Формат сообщений Интернета

16.12 Почтовые расширения файлов и MIME

16.13 Формат сообщений MIME

16.14 Протокол POP

16.15 Другие почтовые приложения

16.18 Обмен сообщениями через X.400

16.19 Каталоги ISO/ITU-T

16.20 Дополнительная литература

Глава 17
Сетевые новости

17.2 Иерархия групп новостей Интернета

17.3 Агенты новостей

17.4 Модель новостей

17.5 Сценарий NNTP

17.6 Применение агентов новостей для настольных систем

17.7 Протокол NNTP

17.8 Различия между новостями и рассылочным списком

17.9 Дополнительная литература

Глава 18
Службы Gopher и WAIS

18.2 Применение Gopher

18.3 Типы информации в gopher

18.4 Иерархия меню Gopher

18.5 Архитектура gopher

18.6 Отличия gopher от FТР

18.7 Протокол gopher

18.9 Служба WAIS

18.10 Дополнительная литература

19.2 История WWW

19.3 Браузеры WWW

19.5 Обобщенный формат URL

19.6 Введение в HTML

19.7 Архитектура HTTP

19.8 Протокол HTTP

19.9 Продолжение совершенствования

19.10 Дополнительная литература

20.2 Модель SNMP

20.3 Назначение диспетчера и агента

20.4 Сущность управляющей информации

20.5 Структура управляющей информации

20.6 Имена идентификаторов объектов

20.7 Наиболее важные модули MIB

20.8 Протокол сообщений SNMP

20.9 Форматы сообщений SNMP

20.10 Документы MIB

20.11 Что дальше?

20.12 Дополнительная литература


Глава 21
Программный интерфейс socket

21.2 Службы socket

21.3 Блокированные и неблокированные вызовы

21.4 Вызовы socket

21.5 Программирование работы TCP socket

21.6 Серверная программа TCP

21.7 Клиентская программа TCP

21.8 Более простой сервер

21.9 Интерфейс программирования socket для UDP

21.10 Программа сервера UDP

21.11 Клиентская программа UDP

21.12 Дополнительная литература

Глава 22
IP версии 6

22.4 Адреса IPv6

22.5 Специальные адреса

22.6 Формат заголовка IPv6

22.7 Дополнительные заголовки IPv6

22.8 Автоконфигурация в версии 6

22.9 Конфигурирование через DHCPv6

22.10 Переход на IPv6

22.12 Дополнительная литература

Глава 23
ICMPv6 и исследование соседей

23.2 Базовые сообщения ICMPv6

23.3 Исследование соседей

23.4 Дополнительная литература

Глава 24
Безопасность в IP

24.3 Стратегия безопасности

24.4 Сценарии обеспечения безопасности

24.5 Элементы протокола безопасности

24.6 Дополнительная литература

Приложение А
Сокращения и аббревиатуры

Приложение B
RFC и другие документы по TCP/IP

B.1 Возможность получения документов RFC

B.2 Assigned numbers

B.3 Регистрационные формы

B.4 Система именования доменов

B.5 Стандарты RFC

Приложение C
Центры сетевой информации и другие службы

C.2 Поиск других MIC

C.3 Поиск администраторов через WHOIS

C.4 Идентификаторы регистрации IPv6

C.5 Функции безопасности CERT

Приложение D
Маски подсети переменной длины

5. Стек протоколов 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, доступны любому желающему.

В 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 – 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).

Мастер Йода рекомендует:  Больше JS, чем React как фреймворк использует возможности языка

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

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

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

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

Глава 10 Протокол TCP

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

Похожие главы из других книг

Протокол IPX/SPX

Протокол IPX/SPX Протоколы IPX и SPX – представители стека протоколов, разработанных компанией Novell, которая в свое время являлась прямым конкурентом компании Microsoft. Конкуренция велась в области сетевых операционных систем: с одной стороны стояла операционная система Novell Netware,

Протокол TCP/IP

Протокол TCP/IP TCP/IP – самый распространенный протокол транспортного уровня и в локальных, и в глобальных сетях, разработанный Министерством обороны США более 20 лет назад.Протокол TCP/IP имеет открытый интерфейс. Это означает, что вся информация об этом протоколе открыта и

Протокол

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

5.24 Протокол ARP

5.24 Протокол ARP Перед тем как датаграмма будет передана с одной системы локальной сети на другую, она будет обрамлена заголовком и завершающей частью кадра. Кадр доставляется на сетевой адаптер, физический адрес которого совпадает с физическим адресом назначения из

Глава 6 Протокол интернета

Глава 6 Протокол интернета 6.1 Введение Вспомним, что интернет — это набор сетей, соединенных маршрутизаторами (во многих ранних документах RFC использовался термин «шлюз» вместо «маршрутизатор»), a IP — это протокол сетевого уровня, обеспечивающий маршрутизацию данных в

Глава 7 Протокол ICMP

Глава 7 Протокол ICMP 7.1 Введение Протокол IP имеет ясную и элегантную структуру. В нормальных ситуациях IP очень эффективно использует для пересылки память и ресурсы. Однако что произойдет в нестандартной ситуации? Что может прервать бесцельное блуждание датаграммы до

8.9 Протокол RIP

8.9 Протокол RIP Наиболее широко используемым протоколом IGP является RIP, заимствованный из протокола маршрутизации сетевой системы компании Xerox (Xerox Network System — XNS). Популярность RIP основана на его простоте и доступности.RIP был первоначально реализован в TCP/IP операционной

8.17 Протокол BGP

8.17 Протокол BGP В Интернете широко используется протокол граничного шлюза (Border Gateway Protocol — BGP). Текущей версией протокола является BGP-4.В современном Интернете существует множество провайдеров, объединенных между собой на манер сети межсоединений. При движении к точке

Глава 10 Протокол TCP

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

Глава 14 Протокол FTP

Глава 14 Протокол FTP 14.1 Введение В сетевой среде естественным является желание копировать файлы между компьютерными системами. Почему же эту операцию не всегда легко реализовать? Разработчики компьютеров уже создали сотни различных файловых систем, значительно или не

14.6 Протокол FTP

14.6 Протокол FTP С протоколом FTP связаны следующие понятия:? Команды и их параметры, пересылаемые по управляющему соединению? Числовые коды, возвращенные в ответ на команду? Формат пересылаемых данныхНиже рассмотрен набор команд FTP. Они передаются по управляющему

16.14 Протокол POP

16.14 Протокол POP Протокол почтового офиса (Post Office Protocol — POP) применяется для пересылки сообщений с почтового сервера на настольную или переносную компьютерную систему.Спецификация POP определяет множество различных функций, например возможность просмотра списка

2.1.6. Протокол TCP

2.1.6. Протокол TCP Протокол TCP (Transmission Control Protocol — протокол управления передачей) является надежным потоковым протоколом с соединением, т. е. полной противоположностью UDP. Единственное, что у этих протоколов общее, — это способ адресации: в TCР каждому сокету также

Глава 19 Передача почты: протокол SMTP

5.3. Протокол SSH

5.3. Протокол SSH Мы уже говорили о том, что протокол Telnet не очень хорошо подходит для удаленного управления сервером, потому что далеко не безопасен. А желание и потребность в этом есть. В больших сетях, как правило, используются несколько серверов, и бегать от одного

29.2. Протокол cgi

29.2. Протокол cgi Аббревиатура cgi обозначает спецификацию, которая задает для получающих информацию сценариев способ обмена данными с сервером. Подобные сценарии (или сценарии cgi) могут быть созданы с помощью любого языка написания сценариев. Наиболее популярным является

Синди Фейт: TCP/IP. Архитектура, протоколы, реализация (включая IPv6 и IP Security)

TCP/IP: Architecture, protocols, and implementation with IPv6 and IP security

Аннотация к книге «TCP/IP. Архитектура, протоколы, реализация (включая IPv6 и IP Security)»

Второе издание популярного справочника полностью переработано и расширено с целью предоставить читателю наиболее полное описание средств разработки, конфигурирования, использования и обслуживания сетей TCP/IP и соответствующих служб. Книга написана увлекательно и доступно. Она содержит дополнительные материалы о нескольких протоколах Интернета, используемых серверами и браузерами WWW, а также рассматривает все последние изменения в этой области. В книгу включены главы о новом стандарте безопасности IP следующего поколения, известном как IPng или IPv6. Рисунки и таблицы наглядно показывают влияние средств безопасности IP и IPng на существующие сетевые среды. Издание содержит следующие дополнительные разделы: Безопасность IP и IPv6; описание средств WWW, новостей Интернета и приложений для работы с gopher; подробное описание серверов имен доменов (DNS), маски подсети и бесклассовой маршрутизации в Интернете; таблицы и протоколы маршрутизации; руководство по реализации средств.

Второе издание популярного справочника полностью переработано и расширено с целью предоставить читателю наиболее полное описание средств разработки, конфигурирования, использования и обслуживания сетей TCP/IP и соответствующих служб. Книга написана увлекательно и доступно. Она содержит дополнительные материалы о нескольких протоколах Интернета, используемых серверами и браузерами WWW, а также рассматривает все последние изменения в этой области. В книгу включены главы о новом стандарте безопасности IP следующего поколения, известном как IPng или IPv6. Рисунки и таблицы наглядно показывают влияние средств безопасности IP и IPng на существующие сетевые среды. Издание содержит следующие дополнительные разделы: Безопасность IP и IPv6; описание средств WWW, новостей Интернета и приложений для работы с gopher; подробное описание серверов имен доменов (DNS), маски подсети и бесклассовой маршрутизации в Интернете; таблицы и протоколы маршрутизации; руководство по реализации средств безопасности для каждого из протоколов и приложений; примеры диалогов с новыми графическими инструментами. Новое издание бестселлера по TCP/IP станет неизменным помощником для разработчиков сетей и приложений, для сетевых администраторов и конечных пользователей.
2-е изд.

Руководство по TCP/IP для начинающих

Большинство из нас знает TCP/IP как «клей», связующий Internet. Но не многие способны дать убедительное описание того, что этот протокол представляет собой и как работает. Итак, что же такое TCP/IP в действительности?

TCP/IP — это средство для обмена информацией между компьютерами, объединенными в сеть. Не имеет значения, составляют ли они часть одной и той же сети или подключены к отдельным сетям. Не играет роли и то, что один из них может быть компьютером Cray, а другой Macintosh. TCP/IP — это не зависящий от платформы стандарт, который перекидывает мосты через пропасть, лежащую между разнородными компьютерами, операционными системами и сетями. Это протокол, который глобально управляет Internet, и в значительной мере благодаря сети TCP/IP завоевал свою популярность.

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

Основы TCP/IP

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

Программное обеспечение для TCP/IP, на вашем компьютере, представляет собой специфичную для данной платформы реализацию TCP, IP и других членов семейства TCP/IP. Обычно в нем также имеются такие высокоуровневые прикладные программы, как FTP (File Transfer Protocol, Протокол передачи файлов), которые дают возможность через командную строку управлять обменом файлами по Сети.

TCP/IP — зародился в результате исследований, профинансированных Управлением перспективных научно-исследовательских разработок (Advanced Research Project Agency, ARPA) правительства США в 1970-х годах. Этот протокол был разработан с тем, чтобы вычислительные сети исследовательских центров во всем мире могли быть объединены в форме виртуальной «сети сетей» (internetwork). Первоначальная Internet была создана в результате преобразования существующего конгломерата вычислительных сетей, носивших название ARPAnet, с помощью TCP/IP.


Причина, по которой TCP/IP столь важен сегодня, заключается в том, что он позволяет самостоятельным сетям подключаться к Internet или объединяться для создания частных интрасетей. Вычислительные сети, составляющие интрасеть, физически подключаются через устройства, называемые маршрутизаторами или IP-маршрутизаторами. Маршрутизатор — это компьютер, который передает пакеты данных из одной сети в другую. В интрасети, работающей на основе TCP/IP, информация передается в виде дискретных блоков, называемых IP-пакетами (IP packets) или IP-дейтаграммами (IP datagrams). Благодаря программному обеспечению TCP/IP все компьютеры, подключенные к вычислительной сети, становятся «близкими родственниками». По существу оно скрывает маршрутизаторы и базовую архитектуру сетей и делает так, что все это выглядит как одна большая сеть. Точно так же, как подключения к сети Ethernet распознаются по 48-разрядным идентификаторам Ethernet, подключения к интрасети идентифицируются 32-разрядными IP-адресами, которые мы выражаем в форме десятичных чисел, разделенных точками (например, 128.10.2.3). Взяв IP-адрес удаленного компьютера, компьютер в интрасети или в Internet может отправить данные на него, как будто они составляют часть одной и той же физической сети.

TCP/IP дает решение проблемы данными между двумя компьютерами, подключенными к одной и той же интрасети, но принадлежащими различным физическим сетям. Решение состоит из нескольких частей, причем каждый член семейства протоколов TCP/IP вносит свою лепту в общее дело. IP — самый фундаментальный протокол из комплекта TCP/IP — передает IP-дейтаграммы по интрасети и выполняет важную функцию, называемую маршрутизацией, по сути дела это выбор маршрута, по которому дейтаграмма будет следовать из пункта А в пункт B, и использование маршрутизаторов для «прыжков» между сетями.

TCP — это протокол более высокого уровня, который позволяет прикладным программам, запущенным на различных главных компьютерах сети, обмениваться потоками данных. TCP делит потоки данных на цепочки, которые называются TCP-сегментами, и передает их с помощью IP. В большинстве случаев каждый TCP-сегмент пересылается в одной IP-дейтаграмме. Однако при необходимости TCP будет расщеплять сегменты на несколько IP-дейтаграмм, вмещающихся в физические кадры данных, которые используют для передачи информации между компьютерами в сети. Поскольку IP не гарантирует, что дейтаграммы будут получены в той же самой последовательности, в которой они были посланы, TCP осуществляет повторную «сборку» TCP-сегментов на другом конце маршрута, чтобы образовать непрерывный поток данных. FTP и telnet — это два примера популярных прикладных программ TCP/IP, которые опираются на использование TCP.

Мастер Йода рекомендует:  Как с помощью принципа единственной ответственности писать гибкий и модульный код

Другой важный член комплекта TCP/IP — User Datagram Protocol (UDP, протокол пользовательских дейтаграмм), который похож на TCP, но более примитивен. TCP — «надежный» протокол, потому что он обеспечивает проверку на наличие ошибок и обмен подтверждающими сообщениями чтобы данные достигали своего места назначения заведомо без искажений. UDP — «ненадежный» протокол, ибо не гарантирует, что дейтаграммы будут приходить в том порядке, в котором были посланы, и даже того, что они придут вообще. Если надежность — желательное условие, для его реализации потребуется программное обеспечение. Но UDP по-прежнему занимает свое место в мире TCP/IP, и испльзуется во многих программах. Прикладная программа SNMP (Simple Network Management Protocol, простой протокол управления сетями), реализуемый во многих воплощениях TCP/IP, — это один из примеров программ UDP.

Другие TCP/IP протоколы играют менее заметные, но в равной степени важные роли в работе сетей TCP/IP. Например, протокол определения адресов (Address Resolution Protocol, ARP) ппреобразует IP-адреса в физические сетевые адреса, такие, как идентификаторы Ethernet. Родственный протокол — протокол обратного преобразования адресов (Reverse Address Resolution Protocol, RARP) — выполняет обеспечивает обратное действие, преобразуя физические сетевые адреса в IP-адреса. Протокол управления сообщениями Internet (Internet Control Message Protocol, ICMP) представляет собой протокол сопровождения, который использует IP для обмена управляющей информацией и контроля над ошибками, относящимися к передаче пакетов IP. Например, если маршрутизатор не может передать IP-дейтаграмму, он использует ICMP, с тем чтобы информировать отправителя, что возникла проблема. Краткое описание некоторых других протоколов, которые «прячутся под зонтиком» TCP/IP, приведено во врезке.

Краткое описание протоколов семейства TCP/IP с расшифровкой аббревиатур
ARP (Address Resolution Protocol, протокол определения адресов): конвертирует 32-разрядные IP-адреса в физические адреса вычислительной сети, например, в 48-разрядные адреса Ethernet.

FTP (File Transfer Protocol, протокол передачи файлов): позволяет передавать файлы с одного компьютера на другой с использованием TCP-соединений. В родственном ему, но менее распространенном протоколе передачи файлов — Trivial File Transfer Protocol (TFTP) — для пересылки файлов применяется UDP, а не TCP.

ICMP (Internet Control Message Protocol, протокол управляющих сообщений Internet): позволяет IP-маршрутизаторам посылать сообщения об ошибках и управляющую информацию другим IP-маршрутизаторам и главным компьютерам сети. ICMP-сообщения «путешествуют» в виде полей данных IP-дейтаграмм и обязательно должны реализовываться во всех вариантах IP.

IGMP (Internet Group Management Protocol, протокол управления группами Internet): позволяет IP-дейтаграммам распространяться в циркулярном режиме (multicast) среди компьютеров, которые принадлежат к соответствующим группам.

IP (Internet Protocol, протокол Internet): низкоуровневый протокол, который направляет пакеты данных по отдельным сетям, связанным вместе с помощью маршрутизаторов для формирования Internet или интрасети. Данные «путешествуют» в форме пакетов, называемых IP-дейтаграммами.

RARP (Reverse Address Resolution Protocol, протокол обратного преобразования адресов): преобразует физические сетевые адреса в IP-адреса.

SMTP (Simple Mail Transfer Protocol, простой протокол обмена электронной почтой): определяет формат сообщений, которые SMTP-клиент, работающий на одном компьютере, может использовать для пересылки электронной почты на SMTP-сервер, запущенный на другом компьютере.

TCP (Transmission Control Protocol, протокол управления передачей): протокол ориентирован на работу с подключениями и передает данные в виде потоков байтов. Данные пересылаются пакетами — TCP-сегментами, — которые состоят из заголовков TCP и данных. TCP — «надежный» протокол, потому что в нем используются контрольные суммы для проверки целостности данных и отправка подтверждений, чтобы гарантировать, что переданные данные приняты без искажений.

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

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

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

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

Уровни сетей и протоколы TCP/IP

В левой части этой диаграммы показаны уровни модели ISO/OSI. Правая часть диаграммы иллюстрирует корреляцию TCP/IP с этой моделью.

Для иллюстрации роли, которую TCP/IP играет в вычислительных сетях в реальном мире, рассмотрим, что происходит, когда Web-браузер использует HTTP (HyperText Transfer Protocol, протокол передачи гипертекста) для извлечения страницы HTML-данных из Web-сервера, подключенного к Internet. Для формирования виртуального подключения к серверу браузер использует абстракцию программного обеспечения высокого уровня, называемую гнездом (socket). А чтобы извлечь страницу Web, он посылает на сервер команду GET HTTP, записывая ее в гнездо. Программное обеспечение гнезда, в свою очередь, применяет TCP для пересылки битов и байтов, составляющих команду GET на Web-сервер. TCP сегментирует данные и передает отдельные сегменты модулю IP, который пересылает сегменты в дейтаграммах на Web-сервер.

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

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

Краткое заключение

О TCP/IP можно было бы рассказать много больше, но есть три ключевых момента:

* TCP/IP — это набор протоколов, которые позволяют физическим сетям объединяться вместе для образования Internet. TCP/IP соединяет индивидуальные сети для образования виртуальной вычислительной сети, в которой отдельные главные компьютеры идентифицируются не физическими адресами сетей, а IP-адресами.
* В TCP/IP используется многоуровневая архитектура, которая четко описывает, за что отвечает каждый протокол. TCP и UDP обеспечивают высокоуровневые служебные функции передачи данных для сетевых программ, и оба опираются на IP при передаче пакетов данных. IP отвечает за маршрутизацию пакетов до их пункта назначения.
* Данные, перемещающиеся между двумя прикладными программами, работающими на главных компьютерах Internet, «путешествуют» вверх и вниз по стекам TCP/IP на этих компьютерах. Информация, добавленная модулями TCP/IP на стороне отправителя, «разрезается» соответствующими TCP/IP-модулями на принимающем конце и используется для воссоздания исходных данных.

5. Стек протоколов 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, доступны любому желающему.

В 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 – 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.

Утвержденные официальные стандарты Интернета и 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 протокол управляющих сообщений в составных сетях) предназначен для обмена информацией об ошибках между маршрутизаторами сети и узлом-источником пакета. С помощью специальных пакетов сообщает о невозможности доставки пакета, о продолжительности сборки пакета из фрагментов, об аномальных величинах параметров, об изменении маршрута пересылки и типа обслуживания, о состоянии системы и т. п.

Мастер Йода рекомендует:  10 новых jQuery-плагинов для форм Javascript

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

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

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

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

6 книг по протоколам TCP/IP

Еще одна серия, Internet Engineering Notes (IEN — Заметки по технологии Интернета), содержит набор дискуссионных материалов, написанных еще в первые годы разработки протоколов Интернета.

1.8 Другие информационные ресурсы

В Интернете существует множество WWW-серверов и общедоступных файловых систем, которые размещаются в университетах, исследовательских центрах и коммерческих организациях. В этих системах предлагается различная информация о сетях, например: копии RFC, заметки об обсуждении новых алгоритмов, отчеты о тестировании производительности, исходные коды инструментов мониторинга работы сетевых протоколов, бесплатное программное обеспечение и сведения о программных продуктах. Каждый пользователь Интернета, способный передавать файлы или работать в браузере WWW, может скопировать любой из этих документов или исходных кодов.

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

1.9 Open System Interconnection

Взаимодействие открытых систем (Open System Interconnection — OSI) стало результатом международных усилий по созданию компьютерных коммуникационных стандартов и базовых прикладных служб. Формально OSI разработана в рамках Международной организации по стандартизации (International Organization for Standardization — ISO), созданной для поддержки обмена и кооперации в сфере научных исследований и технологий. Стандарты ISO публикуются как документы этой организации.

Модель OSI (OSI model) стала обязательной частью любого курса обучения сетевым технологиям. Эта модель отражает базовые понятия, касающиеся идентификации места каждого протокола в общей схеме коммуникации.

Протоколы OSI используются только на небольшом числе европейских сайтов, но IETF опубликовала несколько RFC, относящихся к взаимодействию окружений TCP/IP и OSI.

Глава 2 Обзор служб набора протоколов TCP/IP

2.1 Введение

Почему семейство протоколов TCP/IP получило столь широкое распространение? Прежде всего, благодаря способности к взаимному объединению гетерогенных локальных и глобальных сетей. Не менее важной является способность создавать основы для коммуникаций «равный с равным» (peer-to-peer), а также базовых служб поверх такого взаимодействия. Кроме того, с самого начала протоколы TCP/IP ориентировались на поддержку взаимодействия типа клиент/сервер.

2.2 Коммуникации между приложениями

Существует два основных типа взаимодействия между приложениями. Первый тип — связи, ориентированные на создание соединения (connection-oriented), — применяется при работе приложения с потоком данных. Второй вариант — связи без создания соединения (connectionless) — предполагает обмен независимыми сообщениями и подходит для случайных взаимодействий между приложениями при небольшом объеме пересылаемых данных.

2.2.1 Коммуникации с созданием соединений (TCP)

Протокол TCP (Transmission Control Protocol) отвечает в TCP/IP за надежные коммуникации с созданием соединения по принципу «равный с равным». Сеанс регистрации с терминала и пересылка файлов выполняются с помощью TCP.

2.2.2 Коммуникации без создания соединений (UDP)

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

2.2.3 Интерфейс программирования socket

Реализации TCP/IP обычно предоставляют для разработчиков коммуникационный программный интерфейс. Многие из таких интерфейсов основаны на программном интерфейсе socket (дословно — «штепсельная розетка», «гнездо»), который первоначально был разработан для операционной системы Unix университета Беркли.

К программному интерфейсу socket относятся:

■ Простые подпрограммы для создания, пересылки и приема независимых сообщений, используемых при коммуникациях без создания соединения по протоколу UDP

■ Программы для создания соединения TCP, передачи и приема данных, а также для закрытия созданного соединения

2.2.4 Программный интерфейс RPC

Хотя и не так широко распространенный, как socket, программный интерфейс вызова удаленных процедур (Remote Procedure Call — RPC) для соединений типа клиент/сервер достаточно часто используется в различных системах. Первоначально он был реализован в компьютерах компании Sun Microsystems, а затем перемещен на многие другие платформы.

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

Например, описанное в п. 2.2.2 приложение для просмотра телефонных номеров может быть реализовано через программы RPC.

2.3 Основные службы

Реализация TCP/IP предполагает доступность, по крайней мере, трех прикладных служб: пересылки файлов, удаленной регистрации и электронной почты. Многие продукты имеют клиентские и серверные службы для WWW, а также функции для печати на удаленных принтерах.

2.3.1 Пересылка файлов

Пересылка файлов (file transfer) является старейшей службой TCP/IP. Протокол пересылки файлов (File Transfer Protocol — FTP) разрешает пользователю пофайловое копирование с одной системы на другую. FTP имеет дело с простыми типами файлов, такими как текстовые файлы в коде для обмена информацией Американского национального института стандартов (American National Standard Code for Information Interchange — ASCII) или неструктурированные двоичные файлы. FTP обеспечивает пользователю доступ к удаленной файловой системе для

Эффективное программирование TCP/IP — Библиотека программиста — Снейдер Йон.

Название: Эффективное программирование TCP/IP — Библиотека программиста.

Автор: Снейдер Йон.

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

Здесь изложены подтвержденные практикой советы, технические приемы и эвристические правила программирования TCP/IP для достижения максимальной производительности; показано, как избежать многих типичных ошибок. Каркас кода и библиотека функций дают возможность создавать приложения, не думая о низкоуровневых деталях. Основные идеи и концепции иллюстрируются многочисленными примерами. Вы станете лучше понимать внутреннее устройство TCP/IP и получите необходимые практические навыки работы с этим семейством протоколов.

В результате взрывного развития Internet, беспроводных видов связи и сетей соразмерно увеличилось число программистов и инженеров, занимающихся разработкой сетевых приложений. Программирование TCP/IP может показаться обманчиво простым. Интерфейс прикладного программирования (API) несложен. Даже новичок может взять шаблон клиента или сервера и создать на его основе работающее приложение.
К сожалению, нередко после весьма продуктивного начала неофиты начинают понимать, что все не так очевидно, а созданная ими программа оказывается и медленной, и нестабильной. В сетевом программировании есть множество «темных уголков» и трудно понимаемых деталей. Цель этой книги — ответить на возникающие вопросы и помочь разобраться с тонкостями программирования TCP/IP.

Содержание
Предисловие. 11
Глава 1. Введение.15
Некоторые термины. 15
Путеводитель по книге. 16
Архитектура клиент-сервер. 18
Элементы API сокетов. 20
Резюме. 28
Глава 2. Основы. 29
Совет 1. О необходимости различать протоколы, требующие и не требующие установления логического соединения. 29
Резюме. 35
Совет 2. О том, что такое подсети и CIDR. 35
Классы адресов. 36
Подсети. 40
Ограниченное вещание.43
Вещание на сеть. 44
Вещание на подсеть. 44
Вещание на все подсети. 44
Бесклассовая междоменная маршрутизация — CIDR. 45
Текущее состояние организации подсетей и CIDR. 47
Резюме. 47
Совет 3. О том, что такое частные адреса и NAT. 48
Резюме. 50
Совет 4. О разработке и применении каркасов приложений. 50
Каркас TCP-сервера. 52
Каркас TCP-клиента. 57
Каркас UDP-сервера. 59
Каркас UDP-клиента. 61
Резюме. 63
Совет 5. О том, почему интерфейс сокетов лучше интерфейса. 63
Резюме. 65
Совет 6. О том, что TCP- потоковый протокол. 65
Резюме. 73
Совет 7. О важности правильной оценки производительности TCP. 73
Источники приемник на базе UDP. 75
Источник и приемник на базе TCP. 77
Резюме. 84
Совет 8. О том, что не надо заново изобретать TCP. 84
Резюме. 87
Совет 9. О том, что при всей надежности у TCP есть и недостатки. 87
Что такое надежность. 87
Потенциальные ошибки. 89
Сбой в сети. 90
Отказ приложения. 90
Крах хоста на другом конце соединения. 95
Резюме. 96
Совет 10. О том, что TCP не выполняет опрос соединения. 96
Механизм контролеров. 97
Пульсация. 99
Еще один пример пульсации. 104
Резюме. 110
Совет 11. О некорректном поведении партнера. 111
Проверка завершения работы клиента. 112
Проверка корректности входной информации. 114
Резюме. 118
Совет 12. О работе программы в локальной и глобальной сетях. 118
Недостаточная производительность. 119
Скрытая ошибка. 120
Резюме. 124
Совет 13. О функционировании протоколов. 124
Резюме. 125
Совет 14. О семиуровневой эталонной модели OSI. 126
Модель OSI. 126
Модель TCP/IP. 128
Резюме. 130
Глава 3. Создание эффективных и устойчивых сетевых программ. 131
Совет 15. Об операции записи в TCP. 131
Операция записи с точки зрения приложения. 131
Операция записи с точки зрения TCP. 132
Резюме. 136
Совет 16. О важности аккуратного размыкания ТСР-соединений. 137
Вызов shutdown. 137
Аккуратное размыкание соединений. 139
Резюме. 144
Совет 17. О запуске приложения через inetd. 144
TCP-серверы. 145
UDP-серверы. 149
Резюме. 154
Совет 18. О назначении серверу номера порта с помощью tcpmux. 154
Резюме. 163
Совет 19. Об использовании двух ТСР-соединений. 163
Архитектура с одним соединением. 164
Архитектура с двумя соединениями. 165
Резюме. 170
Совет 20. О том, как сделать приложение событийно-управляемым (1). 170
Резюме. 179
Совет 21.0 том, как сделать приложение событийно-управляемым (2). 179
Резюме. 187
Совет 22. О том, что не надо прерывать состояние TIME-WAIT для закрытия соединения. 187
Что это такое. 188
Зачем нужно состояние TIME-WAIT. 189
Принудительная отмена состояния TIME-WAIT. 190
Резюме. 192
Совет 23. Об установке опции SO_REUSEADDR. 192
Резюме. 197
Совет 24. О написании одного большого блока вместо нескольких маленьких. 197
Отключение алгоритма Нейгла. 200
Запись со сбором. 201
Резюме. 204
Совет 25. Об организации тайм-аута для вызова connect. 204
Использование вызова alarm. 205
Использование select. 207
Резюме. 210
Совет 26. О вреде копирования данных. 210
Буферы в разделяемой памяти. 212
Система буферов в разделяемой памяти. 213
Реализация в UNIX. 216
Реализация в Windows. 220
Резюме. 224
Совет 27. Об обнулении структуры sockaddrjn. 225
Совет 28. О важности порядка байтов. 225
Резюме. 228
Совет 29. О том, что не стоит «зашивать» IP-адреса и номера портов в код. 229
Резюме. 234
Совет 30. О подсоединенном UDP-сокете. 234
Резюме. 238
Совет 31.О том, что С — не единственный язык программирования. 238
Резюме. 243
Совет 32. О значимости размеров буферов. 243
Резюме. 247
Глава 4. Инструменты и ресурсы. 248
Совет 33. Об использовании утилиты ping. 248
Резюме. 251
Совет 34. Об использовании программы tcpdump или аналогичного средства. 251
Как работает tcpdump. 251
Использование tcpdump. 255
Выходная информация, формируемая tcpdump. 256
Резюме. 261
Совет 35. О применении программы traceroute. 261
Как работает traceroute. 262
Программа tracert в системе Windows. 266
Резюме. 267
Совет 36. О преимуществах программы ttcp. 267
Резюме. 271
Совет 37. О работе с программой Isof. 271
Резюме. 273
Совет 38. Об использовании программы netstat. 273
Активные сокеты. 273
Интерфейсы. 275
Маршрутная таблица. 276
Статистика протоколов. 279
Программа netstat в Windows. 281
Резюме. 281
Совет 39. О средствах трассировки системных вызовов. 281
Преждевременное завершение. 282
Низкая производительность ttcp. 286
Резюме. 287
Совет 40. О создании и применении программы для анализа ICMP-сообщений. 287
Чтение ICMP-сообщений. 288
Печать ICMP-сообщений. 289
Резюме. 295
Совет 41. О пользе книг Стивенса. 295
«TCP/IP Illustrated». 295
«UNIX Network Programming». 297
Совет 42. О чтении текстов программ. 297
Резюме. 299
Совет 43. Отом, что надо знать RFC. 299
Тексты RFC. 300
Совет 44. Об участии в конференциях Usenet. 300
Другие ресурсы, относящиеся к конференциям. 301
Приложение 1. 303
Вспомогательный код для UNIX. 303
Заголовочный файл etcp.h. 303
Функция daemon. 304
Функция signal. 305
Приложение 2. 307
Вспомогательный коддля Windows. 307
Заголовочный файл skel.h. 307
Функции совместимости с Windows. 307
Литература. 310
Предметный указатель. 314

Бесплатно скачать электронную книгу в удобном формате, смотреть и читать:
Скачать книгу Эффективное программирование TCP/IP — Библиотека программиста — Снейдер Йон. — fileskachat.com, быстрое и бесплатное скачивание.

Скачать djvu
Ниже можно купить эту книгу по лучшей цене со скидкой с доставкой по всей России. Купить эту книгу

6 книг по протоколам TCP/IP. #[email protected] #[email protected] #[email protected]

Мы подготовили для вас подборку из 6 книг по стеку протоколов TCP/IP. Эти пособия погрузят вас в мир сети Интернет и ее устройство.

6 книг по протоколам сети TCP/IP | Библиотека программиста

Подборка книг по стеку протоколов TCP/IP. Прочтение этих книг поможет вам углубить знания проколов. Вы ознакомитесь с новыми стандартами и протоколами сети.

Комментарии (13)

Олег Воробьев

Удивительно, почему в подобных подборках упускают из вида труд У. Р. Стивенса — Разработка сетевых приложений для Unix.

Семён Корнилов

Старая же (Хоть я и ищу её прямо сейчас)

Олег Воробьев

Semyon, материал актуальный, тем не менее. Единственная трабла, с которой я столкнулся — маршрутизирующие сокеты описаны для FreeBSD, в текущей версии лялиха вместо них используется Netlink (http://www.programmersclub.ru/%D0%A0%D0%B0%D0%B1%D0%BE%D1%82%D0%B0-%D1%81-netlink-%D0%B2-linux-%D0%A7%D0%B0%D1%81%D1%82%D1%8C-1/)

Семён Корнилов

Спасибо. Я купил книгу того же Стивенса, кстати: «UNIX: Профессиональное программирование». А до этого прочел Beej’s Guide to Network Programming. Надеюсь, то, чем я занялся, будет востребовано на рынке труда, а то вещь до жути интересная, а вакансии найти не могу.

Олег Воробьев

Semyon, тоже отличная книга. Имеется в домашней библиотеке 🙂

Семён Корнилов

Я пока еще не совсем понял, достаточно ли в ней внимания уделено программированию сетей.

Олег Воробьев

Semyon, ну она не про сети, поэтому — нет)

Семён Корнилов

Однако, сервера прикладного уровня — это не только сети, это ещё и работа с файлами/паролями/etc.

Олег Воробьев

Semyon, если Вы отождествляете значеня выражений «программирование сетей» и «сервера прикладного уровня» — то ок.

Семён Корнилов

Вы имеете ввиду программирование на более низких уровнях сети?

Добавить комментарий