TCP-IP крупным планом

         
Введение
Ethernet и IEEE 802 инкапсуляция
Инкапсуляция IEEE 802.2/802.3
Инкапсуляция завершителей
SLIP: IP по последовательной линии
SLIP с компрессией (CSLIP)
PPP: протокол точка-точка (Point-to-Point)

Интерфейс Loopback
Обработка IP датаграмм интерфейсом loopback.
MTU
Типичные значения максимальных блоков передачи (MTU).
Транспортный MTU
Вычисление загруженности последовательной линии
Краткие выводы
Упражнения

TCP-IP крупным планом

Введение

IP заголовок
Рекомендованные значения поля типа сервиса (TOS).
IP маршрутизация
Примеры
Доставка IP датаграммы от bsdi к sun.
Путь датаграммы от bsdi к ftp.uu.net (192.48.96.9).
Адресация подсетей
Разделение на подсети адреса класса B.
Настройки большинства подсетей noao.edu 140.252.
Маска подсети

Пример масок подсетей для двух различных подсетей класса B.
Пример
Сравнение двух подсетей класса
Специальные IP адреса
Специальные IP адреса.
Пример подсети
Настройки хостов и сетей в описываемой подсети.
Использование подсетей переменной длины.
IP адреса описываемой подсети.
Команда ifconfig

Команда netstat
Будущее IP
Краткие выводы
Упражнения

TCP-IP крупным планом

Введение
Протоколы определения адреса: ARP и RARP.
Пример
Реакция ARP на ввод пользователя: ftp hostname.
ARP Кэш

Формат пакета ARP
Формат ARP запроса или отклика при работе с Ethernet.
Примеры ARP
Типичный пример
ARP запрос и ARP отклик, сгенерированные
ARP запрос на несуществующий хост
ARP запрос на несуществующий хост.
Тайм-аут ARP кэша
Уполномоченный агент ARP
Пример уполномоченного ARP.

"Беспричинный" ARP
Пример "беспричинного" ARP.
Команда arp
Краткие выводы
Упражнения Вернемся к команде

TCP-IP крупным планом

Введение
Формат пакета RARP
Примеры RARP
Запрос и отклик RARP.

RARP запрос при отсутствии в сети RARP сервера.
Реализация RARP сервера
RARP серверы как пользовательские процессы
Несколько RARP серверов в сети
Краткие выводы
Упражнения

TCP-IP крупным планом

Введение
Инкапсуляция ICMP сообщений в IP датаграммы.
ICMP сообщение.

Типы сообщений ICMP
Типы сообщений ICMP.
ICMP запрос и отклик маски адреса
ICMP запрос и отклик маски адреса.
ICMP запрос маски адреса, отправленный
ICMP запрос и отклик временной марки
ICMP запрос и отклик временной марки.
Примеры
Взаимосвязь между значениями
Другие возможные варианты

ICMP ошибка недоступности порта
Генерация ICMP ошибки о недоступности
ICMP сообщение, вернувшееся в
Сообщение о недоступности ICMP.
Временная диаграмма работы команды tcpdump
Временная диаграмма запроса TFTP на неверный порт.
Обработка ICMP сообщений в 4.4BSD
Обработка ICMP сообщений в 4.4BSD.
Краткие выводы
Упражнения

TCP-IP крупным планом

Введение
Программа Ping
Формат ICMP сообщения для эхо запроса и эхо отклика.
Работа программы в локальных сетях
Вывод ping при работе в локальной сети.
Работа программы в глобальных сетях
Выделенные SLIP каналы
SLIP каналы с дозвоном (Dialup)
Опция записи IP маршрута

Общий формат опции маршрута в IP заголовке.
Обычный пример
Программа ping с опцией записи маршрутизации.
Вывод программы tcpdump c записью опций маршрутизации.
Ненормальный вывод
Работа программы ping с записью
IP опция временной марки
Общий формат опции временной марки в IP заголовке.
Значение флагов в опции временной марки.
Краткие выводы

TCP-IP крупным планом

Введение
Функционирование программы Traceroute
Работа в локальной сети
Вывод tcpdump для примера traceroute от svr4 к slip.
ICMP сообщение об истечении времени
Идентификация интерфейсов программой traceroute.
Вывод при работе в глобальных сетях
Traceroute от sun к nic.ddn.mil.
Traceroute от хоста sun.tuc.noao.edu к хосту aw.com.

Опция IP маршрутизации от источника
Общий формат опции маршрутизации
Пример IP маршрутизации от источника.
Примеры traceroute с использованием
Traceroute на nic.ddn.mil со свободной
Примеры traceroute при использовании
Traceroute с жесткой маршрутизацией
Вывод tcpdump для traceroute с
Время возврата traceroute при
Пример traceroute, показывающий несимметричные маршруты.

Краткие выводы

TCP-IP крупным планом

Введение
Действия, выполняемые IP уровнем.
Принципы маршрутизации
Простая таблица маршрутизации
Инициализация таблицы маршрутизации
Более сложные таблицы маршрутизации
Нет маршрута к пункту назначения
ICMP ошибки о недоступности хоста и сети

Сообщение ICMP о недоступности хоста в ответ на ping.
Перенаправлять или не перенаправлять
ICMP ошибки перенаправления
Пример ICMP перенаправления.
Пример
Более подробно
ICMP сообщение о перенаправлении.
Различные значения code для ICMP перенаправления.
ICMP сообщения поиска маршрутизатора
Формат ICMP сообщения запроса маршрутизатора.

Функционирование маршрутизатора
Функционирование хоста
Реализация
Краткие выводы
Упражнения

TCP-IP крупным планом

Введение
Динамическая маршрутизация
Демоны маршрутизации в Unix
Протоколы маршрутизации, поддерживаемые routed и gated.

RIP: протокол обмена информацией о маршрутизации
Формат сообщения
Инкапсуляция RIP сообщения в UDP датаграмму.
Формат RIP сообщения.
Обычное функционирование
Показатели (metrics)
Пример маршрутизаторов и сетей.
Проблемы
Пример
Два маршрутизатора netb и gateway

Вывод команды tcpdump при запуске программы ripquery.
Еще один пример
Сети noao.edu 140.252.
RIP широковещательные сообщения
RIP ответ от gateway.
RIP Version 2
Формат сообщения RIP2.
OSPF: "открыть первым наикратчайший
BGP: протокол граничных маршрутизаторов
CIDR: бесклассовая маршрутизация

Краткие выводы

TCP-IP крупным планом

Введение
UDP инкапсуляция.
UDP заголовок
UDP заголовок.
Контрольная сумма UDP
Поля, используемые для расчета контрольной суммы UDP.
Вывод команды tcpdump
Вывод tcpdump, с помощью которого

Немного статистики
Статистика поврежденных пакетов
Простой пример
Вывод команды tcpdump для случая
Фрагментация IP
Наблюдения за фрагментацией UDP датаграмм.
Пример UDP фрагментации.
ICMP ошибки о недоступности (требуется фрагментация)
ICMP ошибка о недоступности, когда
Пример

Системы, которые были использованы
Вывод программы tcpdump от ping
Обмен пакетами для данного примера.
Определение транспортного MTU с использованием Traceroute
Мировой Internet
Определение транспортного MTU при использовании UDP
Пример
Системы, использованные для определения
Определение транспортного MTU с использованием UDP.
Первая датаграмма, прибывшая на хост slip от solaris.

Определение транспортного MTU с использованием UDP.
Взаимодействие между UDP и ARP
Обмен пакетами при отправке по
Максимальный размер UDP датаграммы
Усечение датаграмм
ICMP ошибка подавления источника
ICMP ошибка подавления источника.
ICMP подавление источника от маршрутизатора sun.
Сервер UDP
IP адрес клиента и номер порта

IP адрес назначения
Входная очередь UDP
Вывод tcpdump для UDP датаграмм, посланных двумя клиентами.
Ограничение локального IP адреса
Отказ обработки UDP датаграммы
Ограничение внешних IP адресов
Указание локального и удаленного
Множественный прием на порт
Краткие выводы

TCP-IP крупным планом


Введение
Фильтрация, которая осуществляется
Широковещательные запросы
Ограниченный широковещательный запрос
Широковещательный запрос в сеть
Широковещательный запрос в подсеть
Широковещательный запрос, направленный во все подсети
Примеры широковещательных запросов
Рассылка групповых сообщений
Адреса групп

Формат IP адреса класса D.
Преобразование групповых адресов в адреса Ethernet
Соответствие между IP адресами
Широковещательные запросы в сетях FDDI и Token Ring
Краткие выводы
Упражнения

TCP-IP крупным планом

Введение
Инкапсуляция IGMP сообщения в IP датаграмму.
IGMP сообщение

Формат полей IGMP сообщения.
IGMP запросы и отчеты
IGMP отчеты и запросы.
Детали реализации
Поле времени жизни
Группа всех хостов (All-Hosts)
Пример
Вывод команды tcpdump при вступлении хоста в группу.
Пример работы группового маршрутизатора
Вывод команды tcpdump за время работы демона маршрутизации.

Краткие выводы
Упражнения

TCP-IP крупным планом

Введение
Основы DNS
Иерархическая организация DNS.
Символьные общие домены.
Формат сообщения DNS
Общий формат DNS запроса и ответа.
Поле флагов (flags) в заголовке DNS.

Раздел вопросов в DNS запросе
Формат раздела вопроса (question) в запросе DNS.
Представление имени домена gemini.tuc.noao.edu.
Значения type и query type для DNS вопросов и ответов.
Часть записи ресурса в отклике DNS
Формат записи ресурса DNS.
Простой пример
Системы, используемые в примере работы DNS.
Вывод команды tcpdump для запроса
Формат DNS отклика, соответствующий

Запросы указателя
Пример
Вывод tcpdump для запроса указателя.
Проверка неправильного имени хоста
Вызов функции разборщика, которая
Записи ресурсов
Кэширование
Вывод tcpdump для: host ftp.uu.net.
Вывод tcpdump для: host ftp.ee.lbl.gov.
UDP или TCP

Еще один пример
Обмен пакетами при старте Rlogin клиента и сервера.
Краткие выводы
Упражнения

TCP-IP крупным планом

Введение
Протокол
Формат пяти TFTP сообщений.
Пример
Обмен пакетами в случае TFTP.

Безопасность
Краткие выводы
Упражнения

TCP-IP крупным планом

Введение
Формат пакета BOOTP
Инкапсуляция запросов и откликов BOOTP в UDP датаграмму.
Формат BOOTP запроса и отклика.
Номера портов
Пример

Пример использования BOOTP при загрузке X терминала.
Сервер BOOTP
BOOTP через маршрутизаторы
Информация производителя
Формат некоторых пунктов в области производителя.
Краткие выводы
Упражнения

TCP-IP крупным планом

Введение
TCP сервисы

Заголовок TCP
Инкапсуляция TCP данных в IP датаграмму.
TCP заголовок.
Краткие выводы
Упражнения

TCP-IP крупным планом

Введение
Установление и разрыв соединения
Вывод tcpdump
Вывод tcpdump для установления и разрыва TCP соединения.

Символы флагов, выведенные командой
Временные диаграммы
Протокол установления соединения
Временная диаграмма установления и разрыва соединения.
Протокол разрыва соединения
Обычный обмен сегментами при закрытии соединения.
Обычный вывод tcpdump
Обычный вывод команды tcpdump
Тайм-аут при установлении соединения
Вывод команды tcpdump для установления

Первый тайм-аут
Миллисекундный таймер TCP.
Поле типа сервиса
Максимальный размер сегмента
TCP соединение от sun к slip и значения MSS.
Вывод tcpdump для установления соединения от sun к slip.
Наполовину закрытый TCP
TCP в полузакрытом режиме.
Команда: rsh bsdi sort datafile.
Диаграмма состояний передачи TCP

Диаграмма изменений состояния TCP.
Состояния TCP, соответствующие
Состояние ожидания 2MSL
Концепция тихого времени
Состояние ОЖИДАНИЕ_И_ПОДТВЕРЖДЕНИЕ_FIN (FIN_WAIT_2)
Сегменты сброса (Reset)
Запрос о соединении на несуществующий порт
Генерация сброса при попытке открыть
Разрыв соединения
Разрыв соединения с использованием сброса (RST) вместо FIN.

Определение полуоткрытого соединения
Сброс в ответ на приход сегмента
Одновременное открытие
Обмен сегментами в процессе одновременного открытия.
Пример
Обмен сегментами при одновременном открытии.
Одновременное закрытие
Обмен сегментами в процессе одновременного закрытия.
Опции TCP
TCP опции.

Реализация TCP сервера
Номера портов сервера TCP
Ограничение локальных IP адресов
Ограничение запросов на соединения
Ограничение удаленного IP адреса
Указание локального и удаленного
Входящая очередь запросов на соединение
Максимальное количество принимаемых
Вывод программы tcpdump для примера использования backlog.
Краткие выводы

TCP-IP крупным планом

Введение
Интерактивный ввод
Один из возможных способов осуществить
Сегменты, генерируемые при вводе date в Rlogin соединение.
Задержанные подтверждения
Временная диаграмма потока данных
Алгоритм Нагла
Поток данных с использованием
Отключение алгоритма Нагла

Пример
Работа алгоритма Нагла при вводе
Временная диаграмма для рисунка
Отключение алгоритма Нагла в течении Rlogin сессии.
Временная диаграмма для рисунка
Объявления размера окна
Краткие выводы

TCP-IP крупным планом

Введение
Обычный поток данных

Передача 8192 байт от svr4 к bsdi.
Еще одна передача 8192 байт от svr4 к bsdi.
Быстрый отправитель, медленный получатель
Отправка 8192 байт от быстрого
Изменение размера окна
Иллюстрация изменения окна TCP.
Перемещение границ окна.
Пример
Протокол изменения размера окна для рисунка 20.1.
Размер окна

Пример
Передача данных, при которой получатель
Флаг PUSH
Примеры
Медленный старт
Пример
Пропускная способность для неинтерактивных данных
Пример медленного старта.
Моменты времени 0-15, иллюстрирующие
Емкость канала в зависимости от

Моменты времени 16-31 для примера
Удвоение RTT удваивает емкость канала.
Удвоение полосы передачи удваивает емкость канала.
Переполнение
Переполнение, вызванное разными скоростями каналов.
Режим срочности (Urgent Mode)
Пример
Вывод tcpdump для режима срочности TCP.
Пример того, как приложение пишет
Краткие выводы

Упражнения

TCP-IP крупным планом

Приложение A Программа tcpdump
Пакетный фильтр BSD
А.1 Пакетный фильтр BSD.
Краник в сетевом интерфейсе SunOS
А.2 Краник в сетевом интерфейсе SunOS.
Поставщик интерфейса канального уровня в SVR4
Вывод tcpdump
А.3 Вывод команды tcpdump для рисунка 4.4.

Соглашения о безопасности
Опция отладки сокета
Приложение B Компьютерные часы
Передача прервана!
В.1 Распределение времени
В.2 Время, необходимое
Приложение C Программа sock
С.1 Функционирование программы
Приложение D Решения и ответы на упражнения
D.1 Количество сетей в сети NSFNET.

Приложение E Конфигурируемые опции
BSD/386 Version 1.0
Е.1 Интерпретация переменной ядра subnetsarelocal.
SunOS 4.1.3
System V Release 4
Solaris 2.2
/Dev/ip ip_cksum_choice (Отладочная)
BSD
Приложение F Где можно взять исходные тексты
RFC (глава 1, раздел "RFC")

BSD Net/2 Source Code (глава 1
SLIP (глава 2, раздел "SLIP
Программа icmpaddrmask (глава
Программа icmptime (глава 6, раздел
Программа ping (глава 7)
Программа traceroute (глава 8)
Демон обнаружения маршрутизаторов
Демон gated (глава 10, раздел
Программа traceroute.pmtu (глава
Программное обеспечение групповой рассылки IP (глава 13)

Сервер имен BIND (глава 14)
Программа host (глава 14)
Программы dig и doc (глава 14)
Сервер BOOTP (глава 16)
Высокоскоростные расширения TCP (глава 24)
ISODE SNMP менеджер и агент (глава 25)
Программы и примеры MIME (глава
Sun RPC (глава 29, раздел "Вызов
Sun NFS (глава 29)
Программа tcpdump (приложение A)

Пакетный фильтр BSD (приложение
Программа sock (приложение C)
Программа ttcp
Программы, написанные автором
Приложение G Библиография