Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Компьютерные сети_лекции.docx
Скачиваний:
10
Добавлен:
23.09.2019
Размер:
5.97 Mб
Скачать

IV Уровень сетевых интерфейсов

Идеологическим отличием архитектуры TCP/IP от многоуровневой организации других стеков является интерпретация функций самого нижнего уровня – уровня сетевых интерфейсов. Сеть TCP/IP должна иметь средства включения в себя любой другой сети, какую бы внутреннюю технологию передачи данных эта сеть не использовала. Т.о. этот уровень нельзя определить раз и навсегда. Для каждой технологии подсети, включаемой в составную сеть, должны быть разработаны собственные интерфейсные средства. К таким интерфейсным средствам относятся протоколы инкапсуляции. Инкапсуляция – способ упаковки данных в формате одного протокола в формат другого. Например, к таким интерфейсным средствам относятся протоколы инкапсуляции IP-пакетов уровня межсетевого взаимодействия в кадры локальных сетевых технологий. Уровень сетевых интерфейсов протоколов TCP/IP не регламентируется, но он поддерживает все популярные стандарты физического и канального уровней: для локальных сетей это Ethernet, TokenRing, FDDI и т.п.; для глобальных сетей, это протоколы соединения SLIP (Serial Line Internet Protocol – протокол работы с IP по линиям последовательного доступа; этот протокол выполняет одну функцию – позволяет потоки бит, которые поступают по выделенному или коммутируемому (например, телефонному) распознать начало и конец IP-пакета; Помимо IP, другие протоколы сетевого уровня SLIP не поддерживают) и PPP (Point-to-Point Protocol – протокол канала связи с непосредственным соединением; разработан для передачи кадров информации по последовательным глобальным каналам связи в замен устаревшего SLIP). Протокол PPP стал фактическим стандартом для глобальных линий связи при соединении удаленных клиентов с серверами и для образования соединений между маршрутизаторами в корпоративных сетях. Приведем схему модулей протоколов, реализующих протоколы стека TCP/IP в узле сети базируясь на уровнях модели OSI.

На представленной схеме через ENET обозначен драйвер, непосредственно взаимодействующий с сетевой картой узла сети технологии Ethernet

Механизм гнезд и мультиплексирование соединений

Для установления соединения между двумя процессами на различных компьютерах сети требуется знать не только IP-адрес сетевого интерфейса компьютера, но и номер TCP-порта (сокет приложения, например, 80 для http), который процесс использует на данном компьютере. В соответствии с IP-адресом соединения порты образуют систему гнезд (sockets). Поэтому, гнездо всегда представляет из себя пару «IP-адрес соединения+порт». Пара гнезд (сокетов) уникально идентифицирует соединение или поток данных в IP-сетях, а порт обеспечивает независимость каждого TCP-канала на данном компьютере. Несколько процессов могут использовать один и тот же TCP-порт, но с точки зрения процесса между ними не будет разницы. Данные передаются между прикладным процессом и модулем TCP. Типичным прикладным процессом, использующим TCP является FTP. Стек взаимосвязанных протоколов в этом случае можно представить схемой: FTP / TCP / IP / ENET. При использовании протокола UDP данные передаются между прикладным процессом и модулем UDP. Например SNMP пользуется транспортными услугами UDP. Его стек протоколов выглядит так: SNMP / UDP / IP / ENET. Одно гнездо на компьютере может быть задействовано в соединениях с несколькими гнездами на уделенных компьютерах. Кроме того, одно гнездо может передавать поток данных в обоих направлениях. Т.о. механизм гнезд позволяет на одном компьютере одновременно работать нескольким приложениям и уникально идентифицировать каждый поток данных сети. Это и называется мультиплексированием соединений. Модули (протоколы) TCP, UDP и драйвер ENET являются мультиплексорами типа n*1. Действуя как мультиплексоры, они переключают несколько входов на один выход. Они также являются демультиплексорами типа 1*n, переключая один вход на один из многих выходов в соответствии со значением поля «тип» в заголовке протокольного блока данных, когда, например, Ethernet-кадр попадает в драйвер сетевого интерфейса Ethernet, он может быть направлен либо в модуль ARP, либо в модуль IP. В этом случае, значение поля «тип» в заголовке кадра как раз и укажет, куда должен быть направлен Ethernet-кадр. Если IP-пакет попадает в модуль IP, то содержащиеся в нем данные могут быть переданы либо модулю TCP, либо модулю UDP, что определяется полем «протокол» в заголовке IP-пакета. Если TCP-сообщение попадает в модуль TCP, то выбор прикладной программы, которой должно быть передано сообщение, осуществляется на основе значения поля «порт» в заголовке TCP-сообщения. Представим схемой инкапсуляцию протоколов верхнего уровня в протоколы стека TCP/IP.

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

Назначение портов приложением на каждом компьютере происходит независимо друг от друга. Протокол TCP может самостоятельно выбирать порт, с которым будет работать приложение или приложение укажет, с каким портом на данном компьютере оно будет работать. Как правило, часто используемые приложения – сервисы, используют одни и те же номера портов, которые стали общеизвестны, например, такие протоколы прикладного уровня (уровня приложений) как HTTP, FTP и др. В этом случае, чтобы обратиться к данному процессу, необходимо указывать только адрес машины. Например, для веб-браузера это порт №80. Это наиболее распространенный порт.