Слайд 2Стек протоколов TCP/IP
Подробная информацию о протоколах TCP/IP содержится в RFC
(Requests For Comments) - специальных документах, выпускаемых Сетевым Информационным Центром
(Network Information Center - NIC).
Слайд 3Архитектура протоколов TCP/IP предназначена для объединенной сети, состоящей из соединенных
друг с другом шлюзами отдельных разнородных пакетных подсетей, к которым
подключаются разнородные машины. Каждая из подсетей работает в соответствии со своими специфическими требованиями и имеет свою природу средств связи. Однако предполагается, что каждая подсеть может принять пакет информации (данные с соответствующим сетевым заголовком) и доставить его по указанному адресу в этой конкретной подсети.
Не требуется, чтобы подсеть гарантировала обязательную доставку пакетов и имела надежный сквозной протокол. Таким образом, две машины, подключенные к одной подсети могут обмениваться пакетами.
Слайд 4Когда необходимо передать пакет между машинами, подключенными к разным подсетям,
то машина-отправитель посылает пакет в соответствующий шлюз (шлюз подключен к
подсети также как обычный узел). Оттуда пакет направляется по определенному маршруту через систему шлюзов и подсетей, пока не достигнет шлюза, подключенного к той же подсети, что и машина-получатель; там пакет направляется к получателю. Объединенная сеть обеспечивает датаграммный сервис.
Проблема доставки пакетов в такой системе решается путем реализации во всех узлах и шлюзах межсетевого протокола IP. Межсетевой уровень является по существу базовым элементом во всей архитектуре протоколов, обеспечивая возможность стандартизации протоколов верхних уровней.
Слайд 5Структура связей протокольных модулей в узле TCP/IP
Слайд 6Потоки данных
Драйвер - это программа, непосредственно взаимодействующая с сетевым
адаптером.
Модуль - это программа, взаимодействующая с драйвером, сетевыми прикладными
программами или другими модулями. Драйвер сетевого адаптера и, возможно, другие модули, специфичные для физической сети передачи данных, предоставляют сетевой интерфейс для протокольных модулей семейства TCP/IP.
Слайд 7Название блока данных, передаваемого по сети, зависит от того, на
каком уровне стека протоколов он находится.
Блок данных, с которым
имеет дело сетевой интерфейс, называется кадром; если блок данных находится между сетевым интерфейсом и модулем IP, то он называется IP-пакетом; если он - между модулем IP и модулем UDP, то - UDP-датаграммой; если между модулем IP и модулем TCP, то - TCP-сегментом (или транспортным сообщением); наконец, если блок данных находится на уровне сетевых прикладных процессов, то он называется прикладным сообщением.
Слайд 8В случае использования протокола 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.
Слайд 9Модули TCP, UDP и драйвер Ethernet являются мультиплексорами n x
1. Действуя как мультиплексоры, они переключают несколько входов на один
выход. Они также являются демультиплексорами 1 x n. Как демультиплексоры, они переключают один вход на один из многих выходов в соответствии с полем типа в заголовке протокольного блока данных.
Слайд 10Когда Ethernet-кадр попадает в драйвер сетевого интерфейса Ethernet, он может
быть направлен либо в модуль ARP (Address Resolution Protocol -
адресный протокол), либо в модуль IP (Internet Protocol - межсетевой протокол). На то, куда должен быть направлен Ethernet-кадр, указывает значение поля типа в заголовке кадра.
Слайд 11Если IP-пакет попадает в модуль IP, то содержащиеся в нем
данные могут быть переданы либо модулю TCP, либо UDP, что
определяется полем "протокол" в заголовке IP-пакета.
Слайд 12Если UDP-датаграмма попадает в модуль UDP, то на основании значения
поля "порт" в заголовке датаграммы определяется прикладная программа, которой должно
быть передано прикладное сообщение.
Если TCP-сообщение попадает в модуль TCP, то выбор прикладной программы, которой должно быть передано сообщение, осуществляется на основе значения поля "порт" в заголовке TCP-сообщения.
Слайд 13Мультиплексирование данных в обратную сторону осуществляется просто, так как из
каждого модуля существует только один путь вниз. Каждый протокольный модуль
добавляет к пакету свой заголовок, на основании которого машина, принявшая пакет, выполняет демультиплексирование.
Слайд 15Данные от прикладного процесса проходят через модули TCP или UDP,
после чего попадают в модуль IP и оттуда - на
уровень сетевого интерфейса.
Хотя технология internet поддерживает много различных сред передачи данных, здесь будет предполагаться использование Ethernet, так как именно эта среда чаще всего служит физической основой для IP-сети. Машина на рисунке 4.1 имеет одну точку соединения с Ethernet. Шестибайтный Ethernet-адрес является уникальным для каждого сетевого адаптера и распознается драйвером.
Машина имеет также четырехбайтный IP-адрес. Этот адрес обозначает точку доступа к сети на интерфейсе модуля IP с драйвером. IP-адрес должен быть уникальным в пределах всей сети Internet.
Работающая машина всегда знает свой IP-адрес и Ethernet-адрес.
Слайд 16Работа с несколькими сетевыми интерфейсами Машина может быть подключена одновременно
к нескольким средам передачи данных.
Слайд 17Из представленной схемы видно, что для машин с несколькими сетевыми
интерфейсами модуль IP выполняет функции мультиплексора n x m и
демультиплексора m x n.
Слайд 18Таким образом, он осуществляет мультиплексирование входных и выходных данных в
обоих направлениях. Модуль IP в данном случае сложнее, чем в
первом примере, так как может передавать данные между сетями. Данные могут поступать через любой сетевой интерфейс и быть ретранслированы через любой другой сетевой интерфейс.
Процесс передачи пакета в другую сеть называется ретрансляцией IP-пакета. Машина, выполняющая ретрансляцию, называется шлюзом. В документации по TCP/IP термины шлюз (gateway) и IP-маршрутизатор (IP-router) часто используются как синонимы.
Слайд 19Протокол ARP
ARP-таблица для преобразования адресов
Для отображения IP-адресов в
Ethernet-адреса используется протокол ARP (Address Resolution Protocol - адресный протокол).
Отображение выполняется только для отправляемых IP-пакетов, так как только в момент отправки создаются заголовки IP и Ethernet.
Преобразование адресов выполняется путем поиска в таблице. Эта таблица, называемая ARP-таблицей, хранится в памяти и содержит строки для каждого узла сети. В двух столбцах содержатся IP- и Ethernet-адреса. Если требуется преобразовать IP-адрес в Ethernet-адрес, то ищется запись с соответствующим IP-адресом. Ниже приведен пример упрощенной ARP-таблицы.
Слайд 21Порядок преобразования адресов
ARP-таблица заполняется автоматически модулем ARP, по мере
необходимости. Когда с помощью существующей ARP-таблицы не удается преобразовать IP-адрес,
то происходит следующее:
По сети передается широковещательный ARP-запрос.
Исходящий IP-пакет ставится в очередь.
Каждый сетевой адаптер принимает широковещательные передачи. Все драйверы Ethernet проверяют поле типа в принятом Ethernet-кадре и передают ARP-пакеты модулю ARP. ARP-запрос можно интерпретировать так: "Если ваш IP-адрес совпадает с указанным, то сообщите мне ваш Ethernet-адрес".
Слайд 23Каждый модуль ARP проверяет поле искомого IP-адреса в полученном ARP-пакете
и, если адрес совпадает с его собственным IP-адресом, то посылает
ответ прямо по Ethernet-адресу отправителя запроса. ARP-ответ можно интерпретировать так: "Да, это мой IP-адрес, ему соответствует такой-то Ethernet-адрес". Пакет с ARP-ответом выглядит примерно так:
Слайд 25Этот ответ получает машина, сделавшая ARP-запрос. Драйвер этой машины проверяет
поле типа в Ethernet-кадре и передает ARP-пакет модулю ARP. Модуль
ARP анализирует ARP-пакет и добавляет запись в свою ARP-таблицу.
Обновленная таблица выглядит следующим образом:
Слайд 26ARP-таблица после обработки ответа
Слайд 27Полностью порядок преобразования адресов выглядит так:
По сети передается широковещательный
ARP-запрос.
Исходящий IP-пакет ставится в очередь.
Возвращается ARP-ответ, содержащий информацию
о соответствии IP- и Ethernet-адресов. Эта информация заносится в ARP-таблицу.
Для преобразования IP-адреса в Ethernet-адрес у IP-пакета, постав ленного в очередь, используется ARP-таблица.
Ethernet-кадр передается по сети Ethernet.
Слайд 28Если в сети нет машины с искомым IP-адресом, то ARP-ответа
не будет и не будет записи в ARP-таблице. Протокол IP
будет уничтожать IP-пакеты, направляемые по этому адресу. Протоколы верхнего уровня не могут отличить случай повреждения сети Ethernet от случая отсутствия машины с искомым IP-адресом.