Здравствуйте! У меня возник вопрос, скорей это не совсем вопрос. Мне просто не с кем посоветоваться. Я имею небольшое представление о том что такое сети и протоколы, но не уверен, правильно ли я это понимаю..
Что вообще такое протоколы?? У меня это ассоциируется с SQL сервером.
Например: MS SQL или MySQL сервер. Который по сети принимает текст,
интерпретирует его по правилам SQL, и в зависимости от команды, делает какие-то действия.
Так вот.. Как я понимаю язык и есть протокол для SQL сервера, это как набор правил, которым следует интерпретатор?
На сервере так же установлен интерпретатор, который знает много "языков" типа http, ftp, smpt...
И когда на сервер приходит текст сначала он должен определить по каким правилам ему интерпретировать приходящий текст, какой используется протокол указывается в первом заголовке, затем сервер по правилам протокола интерпретирует приходящий текст.
Подскажите, все ли верно я понимаю??
Можете подкинуть пару ссылок если все правильно, и еще как называется этот самый интерпретатор который принимает текст?
Протокол это некоторая договорённость относительно формата передаваемых данных. Набор правил, по которому пакет формируется на передающей стороне и парсится на принимающей. Протокол определяет порядок, размер и назначение полей в пакете данных. Например, в протоколе UDP фиксировано расположение и размер ячеек номера порта, контрольной суммы, размера данных в пакете, допустимые значения размера пакета, и т.д.
В принципе понимание правильное. Почитайте ещё про многоуровневую модель OSI: https://ru.m.wikipedia.org/wiki/Сетевая_модель_OSI
Есть общий протокол работы с протоколами на низком уровне - ASN.1: https://ru.m.wikipedia.org/wiki/ASN.1
Для просмотра http-протокола используйте fiddler (www.telerik.com/fiddler) . Он показывает всю изнанку HTTP(S).
Ну а логику работы по протоколу каждый производитель обеспечивает сам. Протокол только описывает как должен производиться обмен, но как это реализовывать каждой стороне протокол не регламентирует. Поэтому реализация протокола остаётся на совести производителя ПО или оборудования.
Все верно. Только вы говорите о текстовых протоколах.
В общем случае протокол - это договоренность двух систем об интерпретации запросов и передаче результатов выполнения запросов (и их интерпретации на запрашивающей стороне).
SQL - это только половина протокола. Но есть еще ответы от SQL-сервера.
Это тоже часть протокола. Т.о. сам по себе SQL-не определяет способ взаимодействия с SQL-сервером. Но помогает стандартизировать способ генерации запросов для него.
В случае бинарных протоколов все тоже самое, только взаимодействие система организовано таким образом, что человек не в состоянии без спец средств интерпретировать (расшифровать) протокол.
По сути для машины не важно, текстовый протокол, или нет. Для неё это все - двоичные последовательности.
Текстовые протоколы хороши для отладки человеком.
Бинарные для полной утилизации полосы пропускания физического канала.
Как вы сами сказали - протокол это набор правил, по которым происходит обработка информации.
Отдельные названия (http протокол, SMB протокол), описывают набор правил обработки данных, передаваемых определенным приложением (передача и прием данных по сети).