|
|
|
|
||
|
|
||||
|
|
||||
|
|
||||
|
Network Working Group Request for Comments: 1180
|
T. Socolofsky
C. Kale
Spider Systems Limited
January 1991
|
|||
|
|
||||
|
Учебник по TCP/IP Статус документа
Данный документ представляет собой учебное пособие по стеку протоколов TCP/IP, включающее в себя вопросы пересылки дейтаграмм IP между отправителем и получателем через цепочку маршрутизаторов. Документ не является стандартом Internet. Разрешается свободное распространение документа.
Оглавление
Учебник по TCP/IP 1
Статус документа 1
1. Введение 2
2. Обзор TCP/IP 2
2.1 Базовая структура 2
2.2 Терминология 2
2.3 Поток данных 2
2.4 Два сетевых интерфейса 3
2.5 IP создает одну логическу сеть 4
2.6 Независимость от физического интерфейса 4
2.7 Интероперабельность 4
2.8 Что дальше? 4
3. Ethernet 4
3.1 Аналогия 5
4. ARP 5
4.1 Таблица ARP для преобразования адресов 5
4.2 Типичный вариант преобразования адресов 5
4.3 Пара ARP Request/Response (запрос - отклик) 5
4.4 Продолжение трансляции адресов 6
5. Протокол IP 6
5.1 Прямая маршрутизация 6
5.2 Непрямая маршрутизация 7
5.3 Правила маршрутизации модуля IP 8
5.4 IP-адрес 8
5.5 Имена 8
5.6 Таблица IP-маршрутизации 9
5.7 Детали прямой маршрутизации 9
5.8 Сценарий прямой маршрутизации 9
5.9 Детали непрямой маршрутизации 9
5.10 Сценарий непрямой маршрутизации 10
5.11 Маршрутизация в больших сетях 10
5.12 Управление маршрутами 10
6. Протокол UDP 11
6.1 Порты 11
6.2 Контрольная сумма 11
7. Протокол TCP 11
8. Сетевые приложения 12
Зачем нужны два протокола TCP и UDP? 12
Какие сетевые приложения доступны? 12
8.1 TELNET 12
8.2 FTP 12
8.3 rsh 12
8.4 NFS 12
8.5 SNMP 12
8.6 X-Window 13
9. Дополнительная информация 13
10. Литература 13
11. Связи с другими RFC 13
12. Вопросы безопасности 13
13. Адреса авторов 13
|
||||
|
|
||||
|
|
||||
|
|
Перевод RFC 1180
|
|||
|
|
||||
|
1. Введение
документе описаны основные аспекты стека протоколов TCP/IP. Здесь не рассматривается история разработки и развития протоколов, не приводится примеров практического использования и не дается сравнений с протоколами ISO/OSI. Опущено также множество технических деталей, связанных с рассматриваемыми протоколами. То, что приведено в документе, составляет лишь минимум информации, требующийся каждому профессионалу, работающему в среде TCP/IP. К числу таких профессионалов относятся системные администраторы, системные программисты и администраторы сетей.
документе используются примеры для среды UNIX TCP/IP, однако основное внимание обращено на вопросы, не зависящие от реализации TCP/IP.
Этот документ не содержит определений новых протоколов, он предназначен для обучения. При возникновении вопросов по тем или иным спецификациям протоколов, обращайтесь к соответствующим RFC.
следующем параграфе приведен обзор TCP/IP, за которым следует детальное описание отдельных компонент.
2. Обзор TCP/IP
Термином TCP/IP зачастую обозначают все, что относится к сетевым протоколам TCP и IP - другие протоколы, приложения и даже сетевые среды. Примерами протоколов могут служить UDP, ARP и ICMP; примерами приложений - TELNET, FTP и rep. Более точным является термин "технология internet”. Сеть, использующая технологию internet также может обозначаться термином internet.
2.1 Базовая структура
Для понимания технологии нужно сначала разобраться с приведенной ниже логической структурой.
network applications ... \ I / .. \ I / •••
I TCP| |UDP|
|
||||
|
|
||||
|
\
|
/
|
|||
|
|
||||
|
|
||||
|
|
||||
|
I IP I
___________ __ л_____________
IARP| |
I \ I
IENET| -----------@ —
-------------------------------------|----------------------------------------------------------------
----------------------о---------
Кабель Ethernet
Рисунок 1. Узел сети TCP/IP Показанная на рисунке схема описывает логическую структуру многоуровневых протоколов в компьютере, подключенном к сети. се компьютеры, поддерживающие подобную структуру, могут обмениваться информацией, используя сетевые протоколы. Приведенная на рисунке структура определяет поведение компьютера в сети. Каждый из прямоугольников на схеме показывает процесс обработки данных в компьютере, а линии обозначают потоки данных. Горизонтальная линия в нижней части рисунка представляет кабель Ethernet; "о" показывает трансивер (приемопередатчик, сетевой адаптер). Символ "*" представляет IP-адрес компьютера, а "@" - адрес Ethernet (MAC-адрес). Эта структура важна для понимания сетевых технологий, поэтому мы будем неоднократно ссылаться в документе на приведенную здесь схему.
2.2 Терминология
Название элементов данных, принимаемых из сети, зависит от уровня в стеке протоколов:
для Ethernet модули данных называют кадрами (Ethernet frame)
данные между драйвером адаптера Ethernet и модулем IP передаются в пакетах (IP packet);
данные между модулями IP и UDP передаются с помощью дейтаграмм (UDP datagram);
модули данных, передаваемые между IP и TCP, называют сегментами (TCP segment) или транспортными сообщениями
данные на уровне сетевых приложений передаются с помощью сообщений.
Эти определения не являются общепринятыми и в публикациях вы можете встретить множество иных терминов или толкований приведенных здесь терминов. Основные определения терминов можно найти в RFC 1122 (параграф 1.3.3).
Драйвер представляет собой программу, взаимодействующую на аппаратном уровне с сетевым интерфейсом. Модулем мы будем называть программу, взаимодействующую с драйвером, прикладной программой или другим модулем.
Термины драйвер, модуль, кадр Ethernet, пакет IP, дейтаграмма UDP, сегмент TCP, сообщение прикладной программы будут постоянно встречаться вам на протяжении документа.
2.3 Поток данных
Рассмотрим поток данных, проходящий вниз через стек протоколов на рис. 1. Для приложений, использующих протокол TCP (Transmission Control Protocol - протокол управления передачей), данные передаются между приложением и модулем TCP. Для приложений, использующих протокол UDP (User Datagram Protocol - протокол пользовательских дейтаграмм), обмен данными идет между приложением и модулем UDP. FTP (File Transfer Protocol - протокол передачи файлов) является типичным примером http://rfc.com.ru 2 http://rfc.com.ru
|
||||
|
|
||||
|
|
||||||||||||||
|
еревод RFC 1180
|
|
|||||||||||||
|
|
||||||||||||||
|
использования протокола TCP. В данном случае стек протоколов будет иметь вид FTP/TCP/IP/ENET. Приложения SNMP (Simple Network Management Protocol - простой протокол сетевого управления) используют протокол UDP стек будет иметь вид SNMP/UDP/IP/ENET.
В модулях TCP, UDP драйвере Ethernet выполняется мультиплексирование "п х 1” (мультиплексор имеет один выход множество входов). Существует также обратная операция - демультиплексирование “1 х п" (демультиплексор имеет один вход множество выходов). Схематическое представление мультиплексоров демультиплексоров приведено на рисунке 2.
|
||||||||||||||
|
|
||||||||||||||
|
1 2 3 ... п \ I /
\ I I /
multiplexer
|
flow
of data
|
1 2 3 ... п
\ I I / \ I I /
de-multiplexer
1
|
|
|||||||||||
|
flow
of data
|
||||||||||||||
|
1
|
V
|
|||||||||||||
|
|
||||||||||||||
|
Рисунок 2. Мультиплексор и демультиплексор
сли кадр Ethernet попадает в драйвер Ethernet из сети, этот кадр передается модулю преобразования адресов ARP (Address Resolution Protocol) или модулю IP (Internet Protocol). Выбор одного из этих модулей (ARP или IP) определяется полем типа в заголовке кадра Ethernet.
Если пакет попадает в модуль IP, после этого он передается модулю TCP или UDP в соответстви со значением поля протокола в заголовке IP.
Дейтаграммы UDP, приходящие в одноименный модуль, преобразуются в сообщения прикладного уровня передаются программам, выбор которых определяется номером порта в заголовке UDP. Сегменты TCP в одноименном модуле преобразуются в сообщения прикладного уровня передаются пользовательским программам в соответстви с номером порта в заголовке TCP.
Мультиплексирование исходящего потока является очень простой задачей, поскольку на каждом уровне существует только один путь передачи информаци; каждый протокол просто добавляет в пакет свой заголовок, обеспечивающий демультиплексирование данных на приемной стороне.
|
||||||||||||||
|
|
||||||||||||||
|
Данные передаются от прикладных программ через TCP или использованием драйвера сетевой платы на самом нижнем уровне.
|
UDP, преобразуются модулем IP
|
передаются в сеть с
|
||||||||||||
|
|
||||||||||||||
|
Хотя в сетях может использоваться множество различных технологий, все примеры здесь построены на основе технологи Ethernet, которая на сегодняшний день является самой распространенной для передачи ГР-трафика. Компьютер на рис. 1 имеет одно соединение Ethernet. Шестибайтовый адрес Ethernet является уникальным для каждого адаптера Ethernet задается на аппаратном уровне.
Компьютер также имеет 4-байтовый адрес IP. Этот адрес используется на интерфейсе нижнего уровня в модуле IP. Этот адрес должен быть уникальным в масштабах сети.
Работающий компьютер всегда знает свои адреса IP Ethernet.
2.4 Два сетевых интерфейса
На рисунке 3 схематически изображен компьютер с двумя сетевыми интерфейсами.
|
||||||||||||||
|
|
||||||||||||||
|
--------------------------------------------------
network applications |
|
||||||||||||||
|
|
||||||||||||||
|
... \ I /
|
\ I / • • • I
|
|||||||||||||
|
|
||||||||||||||
|
|
|
|||||||||||||
|
|
||||||||||||||
|
TCP
|
UDP
|
|||||||||||||
|
|
||||||||||||||
|
|
|
|||||||||||||
|
|
||||||||||||||
|
\
|
/
|
|||||||||||||
|
|
||||||||||||||
|
|
||||||||||||||
|
|
||||||||||||||
|
IP
|
||||||||||||||
|
|
||||||||||||||
|
|
_______
|
|
||||||||||||
|
|
||||||||||||||
|
I ARP
|
ARP
|
|||||||||||||
|
|
||||||||||||||
|
|
|
|
|
|
||||||||||
|
|
||||||||||||||
|
\
|
/
|
|||||||||||||
|
|
||||||||||||||
|
|
|
|||||||||||||
|
|
||||||||||||||
|
IENET| |ENET| ------@— ------@ —
----------------------|----------------|--------------------
|
||||||||||||||
|
|
||||||||||||||
|
---о---------------------------
Ethernet Cable 2
---------------о----------
Ethernet Cable 1
Рисунок 3. Узел сети TCP/IP с двумя адаптерами Ethernet
Отметим, что компьютер с двумя интерфейсами Ethernet использует 2 или более адресов IP.
Из приведенной схемы очевидно, что в компьютерах с несколькими физическими интерфейсами модуль IP работает как мультиплексор-демультиплексор m х п.
|
||||||||||||||
|
|
||||||||||||||
|
3
|
||||||||||||||
|
|
||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
Перевод RFC 1180
|
||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||
|
1 2 3 ... n
\ I I /
\ I I /
|
flow
of data
|
|||||||||||||||||||||||||||||||||||||||||||||||||
|
de-multiplexer
|
|||||||||||||||||||||||||||||||||||||||||||||||||||
|
/II \
/II \
1 2 3 ... m
|
|||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||
|
Рисунок 4. Мультиплексор и демультиплексор nxm
Мультиплексирование выполняется при передаче данных в обоих направлениях. Модуль IP с несколькими физическими интерфейсами на самом деле более сложен, чем показано на рисунке 4, поскольку такой модуль может обеспечивать пересылку данных в другие сети (данные, принятые через один интерфейс, передаются через другой).
|
|||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||
|
TCP \
|
UDP /
|
||||||||||||||||||||||||||||||||||||||||||||||||||
|
/
|
|||||||||||||||||||||||||||||||||||||||||||||||||||
|
\
|
|||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||
|
IP
|
|||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||
|
Рисунок 5. Пример пересылки пакета IP (IP Forwarding)
Процесс отправки пакета IP в другую сеть называется пересылкой (forwarding) пакетов IP. Компьютер, принимающий решение о пересылке пакетов IP, обычно называют машрутизатором (IP-router).
Как можно видеть на приведенном рисунке, в процессе пересылки пакетов IP модули TCP и UDP на маршрутизаторе IP участия не принимают. Некоторые из реализаций IP-маршрутизаторов просто не включают модулей TCP и UDP.
2.5 IP создает одну логическую сеть
Модуль IP является краеугольным камнем технологии Internet. Каждый модуль или драйвер добавляет свой заголовок к пакету по мере прохождения информации от верхнего уровня к нижнему через стек протоколов. На приемной стороне каждый модуль или драйвер извлекает из пакета соответствующий заголовок. Заголовок IP содержит IP-адрес, позволяющий построить одну логическую сеть на базе множества физических сетей. Такое соединение множества сетей между собой и послужило основой для создания термина Internet. Множество соединенных между собой физический сетей, объединенное общими пространством уникальных адресов IP, называется internet.
2.6 Независимость от физического интерфейса
IP "прячет" сетевое оборудование нижележащих уровней от сетевых приложений. Если вы создали новую физическую сеть, ее можно соединить с другими сетями (internet), используя соответствующие драйверы и модули IP. Таким образом, сетевые приложения становятся независимыми от физических интерфейсов и не подвержены влиянию в результате замены сетевых устройств или подключения новой технологии.
2.7 Интероперабельность
Если два компьютера могут обмениваться данными через сеть, мы говорим, что они "интероперабельны.” Если технология internet реализована на хорошем уровне, эта технология должна обеспечивать интероперабельность. Пользователи обычных (general-purpose - общего назначения) компьютеров могут воспользоваться преимуществами internet за счет обеспечения интероперабельности с компьютерами других типов. В общем случае купленный вами компьютер может оказаться неинтероперабелыгым, т. е. он не сможет взаимодействовать с другими компьютерами по причине использования в нем экзотических узлов и протоколов.
2.8 Что дальше?
После рассмотрения первооснов мы ответим на следующие вопросы:
Как определяется Ethernet-адрес получателя при отправке пакетов IP?
Как протокол IP узнает об используемом на физическом уровне интерфейсе при передаче пакетов IP?
Как клиентская программа на одном компьютере связывается с программой-сервером на другом?
Почему используются оба протокола TCP и UDP, а не выбран какой-либо один?
Какие сетевые приложения доступны? Ответы на все эти вопросы будут приведены ниже, после краткого рассмотрения технологии Ethernet.
|
|||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||
|
3. Ethernet
В этом параграфе приведено краткое описание технологии Ethernet.
Кадры Ethernet содержат адреса получателя (destination) и отправителя (source), поле типа и данные.
|
|||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||
|
4
|
|||||||||||||||||||||||||||||||||||||||||||||||||||
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||