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



         

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

Семейство протоколов TCP/IP работает на любых моделях компьютеров, произведенных различными производителями компьютерной техники и работающих под управлением различных операционных систем. С помощью протоколов TCP/IP можно объединить практически любые компьютеры. И что самое удивительное, сегодняшние реализации протокола TCP/IP очень далеки от того, как он задумывался исходно. В конце 60-х годов начался исследовательский проект, финансируемый правительством США, по разработке сети пакетной коммутации, а в 90-х годах результаты этих исследований превратились в наиболее широко используемую форму сетевого взаимодействия между компьютерами. В настоящее время это действительно открытая система, а именно, семейство протоколов и большое количество бесплатных реализаций (либо достаточно дешевых). Они составляют основу того, что в настоящее время называется словом Internet.

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

Уровни TCP/IP
Адресация Internet
Система имен доменов (Domain Name System)
Инкапсуляция
Демультиплексирование (Demultiplexing)
Модель Клиент-Сервер
Номера портов
Зарезервированные порты
Процесс стандартизации
RFC

Ethernet и IEEE 802 инкапсуляция
В этой главе мы подробно рассмотрим канальный уровень Ethernet, два специализированных канальных уровня для последовательных интерфейсов (SLIP и PPP) и драйвер loopback, который присутствует практически во всех реализациях. Ethernet и SLIP это канальные уровни, используемые для большинства примеров в данной книге.

Инкапсуляция IEEE 802.2/802.3
Инкапсуляция завершителей
SLIP: IP по последовательной линии
SLIP с компрессией (CSLIP)
PPP: протокол точка-точка (Point-to-Point)
Интерфейс Loopback
Обработка IP датаграмм - loopback.
MTU
Типичные значения максимальных (MTU).
Транспортный MTU

IP заголовок
IP это рабочая лошадь семейства протоколов TCP/IP. TCP, UDP, ICMP и IGMP передают свои данные как IP датаграммы. Один факт часто удивляет новичков TCP/IP, особенно тех кто работал с X.25 или SNA, этот факт заключается в том, что IP ненадежный протокол, предоставляющий сервис доставки датаграмм без соединения.

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

Протоколы определения адреса: ARP и RARP
Проблема, которую мы будем обсуждать в этой главе, заключается в том, что IP адреса имеют какое-либо значение только в семействе протоколов TCP/IP. Канальные уровни, такие как Ethernet или Token ring, имеют собственную схему адресации (в основном 48-битные адреса); сетевые уровни, в свою очередь, используют эти канальные уровни.

Реакция ARP на ввод пользователя: ftp hostname.
ARP Кэш
Формат пакета ARP
Формат ARP запроса при работе с Ethernet.
Примеры ARP
Типичный пример
ARP запрос и ARP отклик, сгенерированные
ARP запрос на несуществующий хост
ARP запрос на несуществующий хост - 2
Тайм-аут ARP кэша

Формат пакета RARP
Когда загружается система с локальным диском, она обычно получает свой IP адрес из конфигурационного файла, который считывается с диска. Однако для систем, не имеющих диска, таких как X терминалы или бездисковые рабочие станции, требуются другой способ определения собственного IP адреса.

Формат пакета RARP
Примеры RARP
Запрос и отклик RARP.
RARP запрос при отсутствии в RARP сервера.
Реализация RARP сервера
RARP серверы как пользовательские процессы
Несколько RARP серверов в сети
Краткие выводы

Инкапсуляция ICMP сообщений в IP датаграммы
Обычно считается, что ICMP это часть IP уровня. С его помощью передаются сообщения об ошибках и сообщения о возникновении условий и ситуаций, которые требуют к себе особого внимания. ICMP сообщения обрабатываются IP уровнем или более высокими уровнями (TCP или UDP). При появлении некоторых ICMP сообщений генерируются сообщения об ошибках, которые передаются пользовательским процессам

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

Программа Ping
Обычно, если Вы не можете послать Ping на хост, то не сможете получить доступ к этому хосту, используя Telnet или FTP. С другой стороны, если Вы не можете зайти на хост с помощью Telnet, Ping, как правило, начальная точка, с которой начинается идентификация проблемы. Помимо этого, с помощью Ping можно оценить время возврата пакета от хоста, что дает представление о том, "насколько далеко" находится хост.

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

Функционирование программы Traceroute
Программа Traceroute, написанная Van Jacobson, - отладочное средство, которое позволяет лучше понять устройство протоколов TCP/IP. Обычно две последовательные датаграммы отправленные от одного и того же источника к одному и тому же пункту назначения проходят по одному и тому же маршруту, однако гарантировать этого невозможно.

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

Действия, выполняемые IP уровнем
Маршрутизация - это одна из наиболее важных функций IP. На рисунке 9.1 показана упрощенная модель того, что реализуется на IP уровене. Датаграммы, которые должны быть смаршрутизированы, могут генерироваться как локальным хостом, так и каким-либо удаленным хостом. В последнем случае наш хост должен быть сконфигурирован как маршрутизатор, иначе датаграммы, получаемые через сетевые интерфейсы и не предназначенные нашему хосту, будут молча удалены

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

Динамическая маршрутизация
Все о чем мы говорили в предыдущей главе, имело отношение к статической маршрутизации. Записи в таблице маршрутизации создавались при конфигурации интерфейса (для интерфейсов подключенных напрямую), добавлялись командой route (обычно из системных загрузочных файлов) или создавались с помощью ICMP перенаправления (при использовании неверных маршрутов).

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

UDP инкапсуляция
UDP простой, ориентированный на передачу датаграмм, протокол транспортного уровня: за один раз процесс выдает одну UDP датаграмму, в результате чего передается одна IP датаграмма. Это отличается от поток-ориентированных протоколов, таких как TCP, где количество данных, которое выдается приложением, практически не имеет отношения к количеству отправленных IP датаграмм.

UDP заголовок
UDP заголовок.
Контрольная сумма UDP
Поля для расчета контрольной суммы UDP.
Вывод команды tcpdump
Вывод tcpdump
Немного статистики
Статистика поврежденных пакетов
Простой пример
Вывод команды tcpdump

Широковещательные запросы
Широковещательные и групповые запросы применимы только к UDP, подобные типы запросов позволяют приложению послать одно сообщение нескольким получателям. TCP - протокол, ориентированный на соединение, с его помощью устанавливается соединение между двумя хостами (по указанному IP адресу) с использованием одного процесса на каждом хосте (который идентифицируется по номеру порта).

Ограниченный широковещательный запрос
Широковещательный запрос в сеть
Широковещательный запрос в подсеть
Широковещательный запрос во все подсети
Примеры широковещательных запросов
Рассылка групповых сообщений
Адреса групп
Формат IP адреса класса D.
Преобразование групповых адресов в Ethernet
Соответствие между IP адресами

Инкапсуляция IGMP сообщения в IP датаграмму
В этой главе мы рассмотрим протокол управления группами Internet (IGMP - Internet Group Management Protocol), который используется хостами и маршрутизаторами, для того чтобы поддерживать групповую рассылку сообщений. Он позволяет всем системам физической сети знать, какие хосты в настоящее время объединены в группы и к каким группам они принадлежат. Эта информация необходима для групповых маршрутизаторов, именно так они узнают, какие групповые датаграммы необходимо перенаправлять и на какие интерфейсы.

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

Основы DNS
Система имен доменов (DNS - Domain Name System) это распределенная база данных, которая используется приложениями TCP/IP, для установления соответствия между именами хостов и IP адресами. DNS также используется для маршрутизации электронной почты. Мы используем термин распределенная, потому что на одном узле Internet не хранится вся необходимая информация.

Иерархическая организация DNS.
Символьные общие домены.
Формат сообщения DNS
Общий формат DNS запроса и ответа.
Поле флагов (flags) в заголовке DNS.
Раздел вопросов в DNS запросе
Формат раздела вопроса в запросе DNS.
Представление имени домена gemini.tuc.noao.edu.
Значения type и query type для DNS вопросов
Часть записи ресурса в отклике DNS

Протокол
TFTP - это простой протокол передачи файлов. Он, как правило, используется при загрузке бездисковых систем (рабочие станции или X терминалы). В отличие от протокола передачи файлов (FTP - File Transfer Protocol), который использует TCP, TFTP использует UDP. Это сделано для того, чтобы протокол был как можно проще и меньше.

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

Формат пакета BOOTP
При использовании RARP возникает две проблемы: единственное, что можно узнать, это IP адрес, и так как RARP использует широковещательный запрос на канальном уровне, запросы RARP не перенаправляются маршрутизаторами (поэтому RARP сервер должен находиться в каждой физической сети). В этой главе мы опишем альтернативный метод загрузки бездисковых систем, который называется протоколом загрузки (BOOTP - Bootstrap Protocol).

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

TCP сервисы
Несмотря на то, что TCP и UDP используют один и тот же сетевой уровень (IP), TCP предоставляет приложениям абсолютно другие сервисы, нежели UDP. TCP предоставляет основанный на соединении надежный сервис потока байтов.

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

Установление и разрыв соединения
TCP это протокол, ориентированный на соединение. Перед тем как какая-либо сторона может послать данные другой, между ними должно быть установлено соединение. В этой главе мы подробно рассмотрим, как устанавливается TCP соединение и как оно разрывается.

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

Интерактивный ввод
Если проанализировать TCP траффик, как, например, это сделано в [Caceres et al. 1991], можно обнаружить, что примерно половина всех TCP сегментов составляет неинтерактивные данные (FTP, электронная почта, новости Usenet), а другая половина принадлежит интерактивным или диалоговым приложениям (Telnet и Rlogin, например). По количеству байт, примерно 90% составляют неинтерактивные данные, а 10% диалоговые данные.

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

Обычный поток данных
В этой главе мы увидим, что TCP использует другую форму управления потоком данных, которая называется протоколом с изменяющимся окном (sliding window) . Это позволяет отправителю передать несколько пакетов, перед тем как он остановится и будет ждать подтверждения. При этом данные передаются быстрее, так как отправитель не должен останавливаться и ждать подтверждения каждый раз после отправки пакета.

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

Пакетный фильтр BSD
В современных реализациях ядра BSD существует пакетный фильтр BSD (BPF - BSD Packet Filter), именно его использует tcpdump, чтобы отлавливать и фильтровать пакеты из сетевой платы (которая помещена в смешанный режим). BPF также работает с каналами точка-точка, такими как SLIP (при этом не требуется специальных настроек), и с интерфейсом loopback.

Пакетный фильтр BSD.
Краник в сетевом интерфейсе SunOS
Краник в сетевом интерфейсе SunOS - 2
Поставщик интерфейса канального уровня в SVR4
Вывод tcpdump
Вывод команды tcpdump для рисунка 4.4.
Соглашения о безопасности
Опция отладки сокета
Компьютерные часы
Передача прервана!

Семейство протоколов TCPIP

Более подробную информацию по протоколам семейства TCP/IP и способам организации сетей internet можно найти в RFC - документах, распространяемых DDN Network Information Center. Полный каталог RFC, а также сами документы можно получить по электронной почте, обратившись по адресу service@nic.ddn.mil. Поле "Subject:" в вашем запросе должно содержать название желаемого документа. Например, для получения RFC 822 вы должны указать Subject: RFC 822 Для получения дополнительной информации пошлите письмо, указав Subject: HELP Каталог RFC содержит полный список документов, упорядоченный в обратном хронологическом порядке. Его можно получить, послав запрос Subject: RFC INDEX

Подробнее

Введение в IP сети

Трафик в сети складывается случайным образом, однако в нем отражены и некоторые закономерности. Как правило, некоторые пользователи, работающие над общей задачей, (например, сотрудники одного отдела) чаще всего обращаются с запросами либо друг к другу, либо к общему серверу, и только иногда они испытывают необходимость доступа к ресурсам компьютеров другого отдела. Желательно, чтобы структура сети соответствовала структуре информационных потоков. В зависимости от сетевого трафика компьютеры в сети могут быть разделены на группы (сегменты сети). Компьютеры объединяются в группу, если большая часть порождаемых ими сообщений, адресована компьютерам этой же группы.
Для разделения сети на сегменты используются мосты и коммутаторы. Они экранируют локальный трафик внутри сегмента, не передавая за его пределы никаких кадров, кроме тех, которые адресованы компьютерам, находящимся в других сегментах. Тем самым, сеть распадается на отдельные подсети. Это позволяет более рационально выбирать пропускную способность имеющихся линий связи, учитывая интенсивность трафика внутри каждой группы, а также активность обмена данными между группами.

Продолжение

Средства удаленной загрузки

Средства удаленной загрузки (Remote Programm Loading, Remote Booting, Remote Reset) позволяют загружать операционную систему - DOS, Windows 3.x, Windows for Workgroups и даже Windows 95 - из образа, хранящегося на файл-сервере локальной сети. Основное назначение этих средств - удешевление рабочих станций за счет изъятия из них накопителей на жестких и даже гибких дисках и обеспечение безопасности (в смысле конфиденциальности и антивирусной защиты) хранения данных, а также возможность централизованного управления операционной средой многочисленных однотипных пользователей (например, в учебных классах).
Три класса сетей: NetWare, TCP/IP и сети, использующие протокол RPL (Microsoft LAN Manager, IBM LAN Server и Banyan VINES) имеют существенно отличающиеся процедуры удаленной загрузки. Наиболее популярна удаленная загрузка DOS по протоколу Novell Remote Programm Loader в локальных сетях NetWare с архитектурой Ethernet.

Продолжение

Описание протоколов TCP-IP

Архитектура протоколов TCP/IP предназначена для объединенной сети, состоящей из соединенных друг с другом шлюзами отдельных разнородных пакетных подсетей, к которым подключаются разнородные машины. Каждая из подсетей работает в соответствии со своими специфическими требованиями и имеет свою природу средств связи. Однако предполагается, что каждая подсеть может принять пакет информации (данные с соответствующим сетевым заголовком) и доставить его по указанному адресу в этой конкретной подсети. Не требуется, чтобы подсеть гарантировала обязательную доставку пакетов и имела надежный сквозной протокол. Таким образом, две машины, подключенные к одной подсети могут обмениваться пакетами

Продолжение


Алгоритм шифрования RSA - описание и общие вопросы
Введение в Unix
Операционная система QNX 4.Архитектура системы
Алешина Светлана - Тень На Плетень
Андреев Леонид - Молчание
Графика в пакете PageMaker
Амнуэль Песах - И Затонула Лодка
Ассемблер для Windows
Андерсон Пол - Нам, Пожалуй, Пора Идти
Architecture Net
Антипова Елена - Охотники За Мумиями
Основы цвета
Интернет через Ethernet
Самоучитель по Animation For Internet
Учебник по Corel Draw 10
Трюки с Photoshop
Photoshop в примерах и задачах
Отладка приложений
Справка по Adobe Premiere Pro 7.0
Аквариум