TCP/IP

Содержание

1. Введение

2. Основы TCP/IP

2.1. Модуль IP создает единую логическую сеть

2.2. Структура связей протокольных модулей

2.3. Терминология

2.4. Потоки данных

2.5. Работа с несколькими сетевыми интерфейсами

3. Ethernet

3.1. Аналогия с разговором

4. Протокол ARP

4.1. ARP-таблица для преобразования адресов

4.2. Порядок преобразования адресов

4.4. Продолжение преобразования адресов

5. Межсетевой протокол IP

5.1. Прямая маршрутизация

5.2. Косвенная маршрутизация

5.3. Правила маршрутизации в модуле IP

5.4. IP-адрес

5.5. Выбор адреса

5.6. Подсети

5.7. Как назначать номера сетей и подсетей

5.8. Имена

5.9. IP-таблица маршрутов

5.10. Подробности прямой маршрутизации

5.11. Порядок прямой маршрутизации

5.12. Подробности косвенной маршрутизации

5.13. Порядок косвенной маршрутизации

6. Установка маршрутов

6.1. Фиксированные маршруты

6.2. Перенаправление маршрутов

7. Протокол UDP

7.1. Порты

7.2. Контрольное суммирование

8. Протокол TCP

9.1. Протокол TELNET

9.2. Протокол FTP

9.3. Протокол SMTP

9.4. r-команды

9.5. NFS

9.6. Протокол SNMP

9.7. X-Window

10. Взаимозависимость протоколов семейства TCP/IP

1. Введение

Семейство протоколов TCP/IP широко применяется во всем мире для объединения компьютеров в сеть Internet. Единая сеть Internet состоит из множества сетей различной физической природы, от локальных сетей типа Ethernet и Token Ring, до глобальных сетей типа NSFNET. Основное внимание в книге уделяется принципам организации межсетевого взаимодействия. Многие технические детали, исторические вопросы опущены. Более подробную информацию о протоколах TCP/IP можно найти в RFC (Requests For Comments) специальных документах, выпускаемых Сетевым Информационным Центром (Network Information Center - NIC). Приложение 1 содержит путеводитель по RFC, а приложение 2 отражает положение дел в области стандартизации протоколов семейства TCP/IP на начало 1991 года

В книге приводятся примеры, основанные на реализации TCP/IP в ОС UNIX. Однако основные положения применимы ко всем реализациям TCP/IP

Надеюсь, что эта книга будет полезна тем, кто профессионально работает или собирается начать работать в среде TCP/IP: системным администраторам, системным программистам и менеджерам сети

2. Основы TCP/IP

Термин “TCP/IP” обычно обозначает все, что связано с протоколами TCP и IP. Он охватывает целое семейство протоколов, прикладные программы и даже саму сеть. В состав семейства входят протоколы UDP, ARP, ICMP, TELNET, FTP и многие другие. TCP/IP это технология межсетевого взаимодействия, технология internet. Сеть, которая использует технологию internet, называется “internet”. Если речь идет о глобальной сети, объединяющей множество сетей с технологией internet, то ее называют Internet

2.1. Модуль IP создает единую логическую сеть

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

Когда необходимо передать пакет между машинами, подключенными к разным подсетям, то машина-отправитель посылает пакет в соответствующий шлюз (шлюз подключен к подсети также как обычный узел). Оттуда пакет направляется по определенному маршруту через систему шлюзов и подсетей, пока не достигнет шлюза, подключенного к той же подсети, что и машина-получатель; там пакет направляется к получателю. Объединенная сеть обеспечивает датаграммный сервис

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

2.2. Структура связей протокольных модулей

Логическая структура сетевого программного обеспечения, реализующего протоколы семейства TCP/IP в каждом узле сети internet, изображена на рис 1. Прямоугольники обозначают обработку данных, а линии, соединяющие прямоугольники, - пути передачи данных. Горизонтальная линия внизу рисунка обозначает кабель сети Ethernet, которая используется в качестве примера физической среды; “о” - это трансивер. Знак “*” - обозначает IP-адрес, а “@” - адрес узла в сети Ethernet (Ethernet-адрес). Понимание этой логической структуры является основой для понимания всей технологии internet. В дальнейшем мы будем часто ссылаться на эту схему

------------------------------

| прикладные процессы |

| . \ | / . \ | / . |

| ------- ------- |

| | TCP | | UDP | |

| ------- ------- |

| \ / |

| ------ |

| ------- | IP | |

| | ARP | -*---- |

| ------- | |

| \ | |

| -------- |

| | ENET | |

| ---@---- |

| | |

------------|-----------------

------------о--------кабель Ethernet

Рис.1. Структура протокольных модулей в узле сети TCP/IP

2.3. Терминология

Введем ряд базовых терминов, которые мы будем использовать в дальнейшем

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

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

Эти определения, конечно, несовершенны и неполны. К тому же они меняются от публикации к публикации. Более подробные определения можно найти в RFC-1122, раздел 1.3.3

2.4. Потоки данных

Рассмотрим потоки данных, проходящие через стек протоколов, изображенный на рис 1. В случае использования протокола TCP (Transmission Control Protocol - протокол управления передачей), данные передаются между прикладным процессом и модулем TCP. Типичным прикладным процессом, использующим протокол TCP, является модуль FTP (File Transfer Protocol - протокол передачи файлов). Стек протоколов в этом случае будет FTP/TCP/IP/ENET. При использовании протокола UDP (User Datagram Protocol протокол пользовательских датаграмм), данные передаются между прикладным процессом и модулем UDP. Например, SNMP (Simple Network Management Protocol - простой протокол управления сетью) пользуется транспортными услугами UDP. Его стек протоколов выглядит так: SNMP/UDP/IP/ENET


Страница: