Я хочу точно знать, что такое сетевой протокол?
Почти все определения в Интернете говорят «это набор правил»
Но я хочу знать, как и где существуют эти правила? это кусок кода в программном обеспечении? это встроенная служба в операционной системе? это софт? это аппаратное обеспечение?
на некоторых веб-сайтах говорится, что это не программное и не аппаратное обеспечение.
Но все в компьютере должно быть либо аппаратным (жесткая часть), либо программным (строки кода)
Если это набор правил, то не должны ли эти правила быть неким написанным кодом?
Как я понял, они отвечают за некоторые операции, например DHCP для назначения динамических IP клиентам или TCP отвечает за деление сообщений на более мелкие пакеты, если так то не должны ли они рассматриваться как программное обеспечение?
Сетевой протокол — это набор правил для связи в сети. Некоторые сетевые протоколы могут быть реализованы аппаратно (например, часть физического уровня Ethernet обрабатывается аппаратным обеспечением NIC), некоторые могут быть реализованы в драйверах (например, программная часть Ethernet), некоторые могут быть процессами ОС (например, IP, UDP, TCP). и т. д.), в то время как другие могут быть частью приложения (например, HTTP).
Но я хочу знать, как и где существуют эти правила? это кусок кода в программном обеспечении? это встроенная служба в операционной системе? это софт? это аппаратное обеспечение?
В основном это ПО/прошивки, но не только. Особенно, если вы считаете стандарты L1 (уровень-1) протоколами. Например, стандарт Ethernet бросает вызов всему, от формы и размера различных разъемов до того, как мосты (то есть коммутаторы) должны управлять своими таблицами переадресации. Это все часть «Протокола Ethernet». Вообще говоря, чем выше вы поднимаетесь по стеку протоколов, тем больше программного обеспечения вы встречаете. Чем ниже вы идете, тем больше оборудования/прошивок вы видите.
Насколько я понял, они отвечают за некоторые операции, например, DHCP для назначения динамических IP-адресов клиентам или TCP отвечает за разделение сообщений на более мелкие пакеты, если так, то не следует ли их рассматривать как программное обеспечение?
Вообще говоря, да. DHCP и TCP являются программными. Я не знаю о каких-либо аппаратных реализациях DHCP и сомневаюсь, что они существуют. Но есть аппаратные компоненты, которые реализуют такие функции, как вычисление контрольной суммы или синтаксический анализ заголовков из соображений производительности.
Сетевой протокол — это набор правил на сетевом уровне. Поскольку он находится на сетевом уровне, он будет иметь номер протокола, который определяет эти правила. Этот номер содержится в соответствующем IP-пакете в поле протокола (см. https://en.wikipedia.org/wiki/IPv4#Заголовок ). Правила обычно определяются в черновиках RFC или в Интернете. Чтобы найти эти правила, см. https://www.iana.org/assignments/protocol-numbers/protocol-numbers.xhtml#protocol-numbers-1.
«Протокол» (сетевой или другой) — это формат, используемый для связи между двумя (или более) сторонами. Это может быть все, о чем договорились эти стороны. Вы даже можете составить свой собственный протокол в любом виде, форме и форме, которые вам нравятся.