Является ли Windows API (WinSock) технически частью уровня представления в модели OSI?

282
Variable Solutions

Из "Windows API" в Википедии: https://en.wikipedia.org/wiki/Windows_API

[Windows] API может использоваться любым компилятором или ассемблером языка программирования, способным обрабатывать (четко определенные) низкоуровневые структуры данных вместе с предписанными соглашениями о вызовах для вызовов и обратных вызовов.

Из «Уровня презентации» в Википедии: https://en.wikipedia.org/wiki/Presentation_layer

Уровень представления - это самый нижний уровень, на котором прикладные программисты рассматривают структуру данных и представление, а не просто отправляют данные в виде дейтаграмм или пакетов между хостами. Идея состоит в том, что прикладной уровень должен иметь возможность указывать на перемещаемые данные и уровень представления будет иметь дело с остальным.

Является ли Windows API (в частности, компонент WinSock) технически частью уровня представления в модели OSI или уровень представления ниже, чем Windows API? Спасибо за любого, кто может прояснить это для меня.

-2
Определения, которые вы цитируете, настолько широки, что вы можете поместить в них что угодно Так что, да, технически одно сверхширокое определение может пересекаться с другим. harrymc 5 лет назад 0

2 ответа на вопрос

1
Tonny

Не существует такого понятия, как «Windows API», поэтому невозможно напрямую ответить на ваш вопрос.

То, что обычно называют «API Windows», представляет собой сумму всех API, предоставляемых Microsoft, представленных в данной версии Windows.
Некоторые из этих API являются очень общими и существуют почти в каждой версии Windows, другие существуют только в определенных версиях.
Поэтому, что именно представляет собой «Windows API», не совсем понятно. Это очень расплывчатый термин.

Чтобы больше сосредоточиться на вашем вопросе относительно взаимодействия с моделью OSI. Сеть Windows в основном ориентирована на модель TCP / IP и (примерно) следует упрощенной модели OSI (4 уровня).
Слои 7-уровневой модели не могут быть четко изолированы в среде Windows, а различные подсистемы Windows и API во многих местах пересекают границы между уровнями OSI.
Например, в Windows есть API-интерфейсы для взаимодействия с драйверами NIC на уровне отдельных пакетов Ethernet. Это не означает, что все Windows API работают на сетевом уровне.

Это действительно так для большинства современных операционных систем. Строгое соблюдение уровней OSI ОЧЕНЬ сложно осуществить в реальной ОС, особенно если вы хотите одновременно добиться хорошей сетевой производительности.

Как уже упоминали другие в комментариях: Ваш вопрос в широком смысле. Если вас интересует конкретный API для Windows, на это, вероятно, можно ответить.

0
Variable Solutions

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

В модели Международной организации по стандартизации открытых систем (ISO / OSI) Winsock работает на уровне сеансового интерфейса с транспортным уровнем. Winsock является интерфейсом между приложениями и транспортным протоколом и работает как канал ввода / вывода данных. На следующем рисунке показан Winsock по отношению к другим протоколам связи Windows CE в контексте модели ISO / OSI. 1

https://msdn.microsoft.com/en-us/library/ms882974.aspx