Порт TCP и модель OSI

Я чего-то не понимаю в стеке TCP/IP: порты. Существует IP-адрес для идентификации машины и порта для определенного процесса на этой машине. Для меня порты связаны с прикладным уровнем; есть несколько портов для какого-то процесса (80 для HTTP, 25 для SMTP и т. д.). Порты не имеют ничего общего с уровнем TCP (транспортом). Порты должны быть реализованы на более высоком уровне (уровень приложений). Так почему вы говорите «порт TCP», а не «порт приложения»?

Спасибо


person AntonBoarf    schedule 12.10.2018    source источник
comment
Поскольку FTP, SSH, POP, SMTP, HTTP не являются «приложениями».   -  person Kahn Kah    schedule 12.10.2018
comment
Да, есть не приложения, а протоколы, которые являются частью прикладного уровня. Таким образом, порты должны быть частью этого прикладного уровня, а не уровня ниже (транспортный уровень, такой как TCP, UDP).   -  person AntonBoarf    schedule 12.10.2018
comment
Модель OSI не применяется к TCP/IP, у которого есть собственная предыдущая модель. Модель OSI применяется только к несуществующему набору протоколов OSI.   -  person user207421    schedule 08.02.2019
comment
@AntonBoarf Вы ошибаетесь. Порты — неотъемлемая часть TCP и UDP. Остальная часть вашего комментария — полная непоследовательность. Оба являются протоколами транспортного уровня. Тот факт, что протоколы приложений используют их, ничего не меняет.   -  person user207421    schedule 13.04.2020


Ответы (1)


Порты TCP или UDP определяются либо на уровне 4 модели OSI, либо на уровне 3 модели TCP/IP, оба определяются как «транспортный уровень».

Уровень 5 OSI «сеансовый уровень» использует порты, определенные на уровне 4, для создания сокетов и сеансов между взаимодействующими устройствами/программами/и т. д.

Напоминание о модели OSI:

Это концептуальная модель. Это означает, что он описывает идеализированную абстрактную теоретическую группу сетевых функций. Он не описывает ничего, что кто-то действительно построил (по крайней мере, ничего из того, что используется сегодня).

Это не единственная модель. Существуют и другие модели, прежде всего набор протоколов TCP/IP (RFC-1122 и RFC-1123), которые намного ближе к используемым в настоящее время.

Самое важное, что нужно понять о модели OSI (или любой другой модели):

  • Мы можем разделить протоколы на уровни
  • Слои обеспечивают инкапсуляцию
  • Слои обеспечивают абстракцию
  • Слои отделяют функции от других

Разделение протоколов на уровни позволяет нам говорить об их различных аспектах отдельно. Это упрощает понимание протоколов и устранение неполадок. Мы можем легко изолировать определенные функции и сгруппировать их с аналогичными функциями других протоколов.

Каждая «функция» (в широком смысле) инкапсулирует слой (слои) над ней. Сетевой уровень инкапсулирует слои над ним. Канальный уровень инкапсулирует сетевой уровень и так далее.

Слои абстрагируют слои под ним. Вашему веб-браузеру не нужно знать, используете ли вы TCP/IP или что-то еще на сетевом уровне (как если бы было что-то еще). Для вашего браузера нижние уровни просто предоставляют поток данных. То, как этот поток появляется, скрыто от браузера. TCP/IP не знает (или не заботится), используете ли вы Ethernet, кабельный модем, линию T1 или спутник. Он просто обрабатывает пакеты. Представьте, как сложно было бы разработать приложение, которое должно было бы иметь дело со всем этим. Уровни абстрагируют нижние уровни, поэтому разработка программного обеспечения и работа с ним становятся намного проще.

person Kahn Kah    schedule 12.10.2018
comment
На самом деле модель OSI была специально разработана только для описания несуществующего набора протоколов OSI. Он никогда не предназначался для моделирования всего мира сетей, и очень жаль, что сектор высшего образования так и не прижился ни с этим, ни с его довольно быстрой кончиной. - person user207421; 13.04.2020