- •1. Введение
- •2. Основы tcp/ip
- •2.1. Модуль ip создает единую логическую сеть
- •2.2. Структура связей протокольных модулей
- •2.3. Терминология
- •2.4. Потоки данных
- •2.5. Работа с несколькими сетевыми интерфейсами
- •3. Ethernet
- •3.1. Аналогия с разговором
- •4. Протокол arp
- •4.3. Запросы и ответы протокола arp
- •4.4. Продолжение преобразования адресов
- •5. Межсетевой протокол ip
- •5.1. Прямая маршрутизация
- •5.2. Косвенная маршрутизация
- •5.3. Правила маршрутизации в модуле ip
- •5.5. Выбор адреса
- •5.6. Подсети
- •5.7. Как назначать номера сетей и подсетей
- •5.8. Имена
- •223.1.2 Development
- •223.1.3 Accounting
- •223.1.4 Factory
- •223.1.2.4 Devnetrouter delta
- •223.1.3.1 Accnetrouter
- •223.1.4.1 Facnetrouter
- •5.10. Подробности прямой маршрутизации
- •5.11. Порядок прямой маршрутизации
- •5.12. Подробности о косвенной маршрутизации
- •5.13. Порядок косвенной маршрутизации
- •6. Установка маршрутов
- •6.1. Фиксированные маршруты
- •Ifconfig ie0 128.6.4.4 netmask 255.255.255.0
- •Ifconfig ie1 128.6.5.35 netmask 255.255.255.0
- •6.2. Перенаправление маршрутов
- •6.3. Слежение за маршрутизацией
- •6.4. Протокол arp с представителем
- •7. Протокол udp
- •7.1. Порты
- •7.2. Контрольное суммирование
- •8. Протокол tcp
- •9. Протоколы прикладного уровня
- •9.1. Протокол telnet
- •9.2. Протокол ftp
- •9.3. Протокол smtp
- •9.4. Протокол snmp
- •10. Взаимозависимость протоколов семейства tcp/ip
- •11. Список использованной литературы
2.2. Структура связей протокольных модулей
Логическая структура сетевого программного обеспечения, реализующего протоколы семейства TCP/IP в каждом узле сети internet, изображена на рис.1. Прямоугольники обозначают обработку данных, а линии, соединяющие прямоугольники, - пути передачи данных. Горизонтальная линия внизу рисунка обозначает кабель сети Ethernet, которая используется в качестве примера физической среды; "o" - это трансивер. Знак "*" – обозначает IP-адрес, а "@" - адрес узла в сети Ethernet (Ethernet-адрес). Понимание этой логической структуры является основой для понимания всей технологии internet. В дальнейшем мы будем часто ссылаться на эту схему.
Рисунок 1
2.3. Терминология
Введем ряд базовых терминов, которые мы будем использовать в дальнейшем.
Драйвер - это программа, непосредственно взаимодействующая с сетевым адаптером.
Модуль - это программа, взаимодействующая с драйвером, сетевыми прикладными программами или другими модулями.
Драйвер сетевого адаптера и, возможно, другие модули, специфичные для физической сети передачи данных, предоставляют сетевой интерфейс для протокольных модулей семейства TCP/IP.
Название блока данных, передаваемого по сети, зависит от того, на каком уровне стека протоколов он находится. Блок данных, с которым имеет дело сетевой интерфейс, называется кадром; если блок данных находится между сетевым интерфейсом и модулем IP, то он называется IP-пакетом; если он между модулем IP и модулем UDP, то - UDP-датаграммой; если между модулем IP и модулем TCP, то - TCP-сегментом (или транспортным сообщением); наконец, если блок данных находится на уровне сетевых прикладных процессов, то он называется прикладным сообщением.
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.
Модули TCP, UDP и драйвер Ethernet являются мультиплексорами . Действуя как мультиплексоры, они переключают несколько входов на один выход. Они также являются демультиплексорами . Как демультиплексоры, они переключают один вход на один из многих выходов в соответствии с полем типа в заголовке протокольного блока данных (рис.2).
Когда Ethernet-кадр попадает в драйвер сетевого интерфейса Ethernet, он может быть направлен либо в модуль ARP (Address Resolution Protocol - адресный протокол), либо в модуль IP (Internet Protocol - межсетевой протокол). На то, куда должен быть направлен Ethernet-кадр, указывает значение поля типа в заголовке кадра.
Если IP-пакет попадает в модуль IP, то содержащиеся в нем данные могут быть переданы либо модулю TCP, либо UDP, что определяется полем "протокол" в заголовке IP-пакета.
Если UDP-датаграмма попадает в модуль UDP, то на основании значения поля "порт" в заголовке датаграммы определяется прикладная программа, которой должно быть передано прикладное сообщение. Если TCP-сообщение попадает в модуль TCP, то выбор прикладной программы, которой должно быть передано сообщение, осуществляется на основе значения поля "порт" в заголовке TCP-сообщения.
Мультиплексирование данных в обратную сторону осуществляется довольно просто, так как из каждого модуля существует только один путь вниз. Каждый протокольный модуль добавляет к пакету свой заголовок, на основании которого машина, принявшая пакет, выполняет демультиплексирование.
Рисунок 2
Данные от прикладного процесса проходят через модули TCP или UDP, после чего попадают в модуль IP и оттуда - на уровень сетевого интерфейса.
Хотя технология internet поддерживает много различных сред передачи данных, здесь мы будем предполагать использование Ethernet, так как именно эта среда чаще всего служит физической основой для IP-сети. Машина на рис.1 имеет одну точку соединения с Ethernet. Шестибайтный Ethernet-адрес является уникальным для каждого сетевого адаптера и распознается драйвером.
Машина имеет также четырехбайтный IP-адрес. Этот адрес обозначает точку доступа к сети на интерфейсе модуля IP с драйвером. IP-адрес должен быть уникальным в пределах всей сети Internet.
Работающая машина всегда знает свой IP-адрес и Ethernet-адрес.