В каждом руководстве, которое я читал, говорится о том, как слои «общаются» друг с другом, но нигде не упоминается, какое аппаратное/программное обеспечение получает, добавляет и отправляет каждый слой управляющих данных.
Какое аппаратное и программное обеспечение получает/инкапсулирует/отправляет данные, относящиеся к каждому уровню IP/TCP?
Например, на каком уровне работает мой маршрутизатор? Какое программное обеспечение преобразует текстовый файл в SMTP? Какое/где в моем компьютере находится программное обеспечение для управления потоком/транспортировки?
решение1
Layer 1 - Physical - Signaling
Layer 2 - Data Link - Switching (Ethernet frames)
Layer 3 - Network - Routing (IP packets)
Layer 4 - Transport - Multiplexing (TCP segments)
Layer 5 - Session
Layer 6 - Presentation
Layer 7 - Application
Причина, по которой не упоминаются конкретные программные/аппаратные реализации, заключается в том, что в этом и заключается весь смысл разработки стандарта. Каждому слою все равно, как слой выше и ниже выполняет свою функцию, пока данные представлены в соответствии со стандартом. Это может быть программное обеспечение, оборудование, встроенное ПО, посредством механического неэлектронного устройства или даже вручную людьми (погуглите "TCP через голубя" для несерьезного примера).
Конкретное программное обеспечение и оборудование, задействованные в реальном мире, также сильно различаются. Вполне возможно выполнить все функции в программном обеспечении (дешево, но медленно). Также вполне возможно выполнить все из них в оборудовании (быстро, но дорого). Выделенные сетевые устройства, такие как маршрутизаторы Cisco и т. д., будут выполнять больше функций в оборудовании, чем, скажем, ПК под управлением Linux, настроенный как маршрутизатор.
Обычно уровень 1 и в основном уровень 2 гарантированно выполняются аппаратно. Уровень 3 в основном выполняется аппаратно на маршрутизаторе корпоративного уровня, например, от Cisco. Многие сетевые карты поставляются с функцией под названием «TCP Offload Engine», которая может ускорить большую часть уровней 3 и 4 с помощью аппаратного обеспечения на сетевой карте. Ваши маршрутизаторы потребительского уровня от Wal-mart обычно выполняют функцию маршрутизации полностью программно. Уровни 5, 6 и 7 обычно не выполняются аппаратно, а если выполняются, то устройства, которые это делают, называются «ускорителями».
решение2
Какое аппаратное и программное обеспечение получает/инкапсулирует/отправляет данные, относящиеся к каждому уровню IP/TCP?
Аппаратное обеспечение Ethernet обычно используется только на самых нижних уровнях, физическом и канальном. На основе своего MAC-адреса оборудование будет принимать только соответствующие одноадресные кадры. Драйвер устройства Ethernet обычно отвечает за предоставление программного интерфейса этому устройству. Устройство обычно может считывать и записывать полные кадры Ethernet из буферов и в буферы, расположенные в связанном (кольцевом) кольце, а драйвер либо обслуживает прерывания, либо опрашивает статус для любого изменения статуса кольца буфера (т. е. завершение операции чтения или записи кадра).
Программное обеспечение известно под общим названиемстек протоколов. Это набор процедур и функций, встроенных в ядро. Они вызываются так же, как и любая иерархия программного обеспечения. Когда пользовательская программа делает системный вызов сокета R/W, вызывается прикладная процедура верхнего уровня. Эта иерархия подпрограмм/процедур похожа на любое другое хорошо сконструированное программное обеспечение, которое обеспечивает модульность, слабую связанность и высокую сплоченность.
Каждый уровень в протоколе выполняется одним или несколькими (вложенными) вызовами процедур, пока пакет данных не будет сохранен в буфере кадра, готовый к выводу аппаратным обеспечением. При успешном завершении записи статус возвращается вызову пользователя.
Например, на каком уровне работает мой маршрутизатор?
Интернет описываетсяМодель TCP/IP:
- Уровень приложений
- Транспортный уровень
- Интернет-слой
- Связующий слой
- Физический слой
Ваш маршрутизатор направляет пакеты на основе IP-адреса, что является уровнем Интернета. Но маршрутизатор имеет свой собственный стек протоколов для выполнения других услуг, таких как его веб-утилита конфигурации. Каждый хост в сети, вероятно, будет иметь полный стек протоколов; уровни не распределены между сетевыми хостами/устройствами.
Какая программа переводит текстовый файл в SMTP?
Ваша почтовая программа взаимодействует с прикладным уровнем.
Где/какое программное обеспечение на моем компьютере используется для управления потоками/транспортировкой?
Вероятно, это транспортный уровень, на котором работает TCP.