Как реализованы сетевые протоколы? - PullRequest
1 голос
/ 21 декабря 2009

Я знаю, что протокол - это набор правил, которые управляют связью между двумя компьютерами в сети, но как эти правила применяются для компьютера? Является ли протокол по сути частью кода или, другими словами, программным обеспечением?

Ответы [ 6 ]

5 голосов
/ 21 декабря 2009

Протоколы обычно строятся друг на друге. Рискуя педантично, вот пример протокола и где / как он реализован:

  • Протокол приложения - способ взаимодействия определенного приложения с другим экземпляром самого себя или с соответствующим сервером; это реализовано в коде приложения или в общей библиотеке
  • TCP (или UDP, или другой уровень) - способ, которым информация отправляется на двоичном уровне и разделяется на пригодные для использования куски, а затем повторно собирается в месте назначения; это обычно реализуется как часть операционной системы, но это все еще программный код
  • IP - способ, которым информация (уже разделенная или усеченная чем-то вроде TCP или UDP) перемещается из одного места в другое путем маршрутизации через один или несколько «прыжков»; это всегда программный код, но иногда он применяется в ОС, а иногда в сетевом устройстве (например, на вашей сетевой карте)
  • base-T (ethernet), Token Ring и т. Д. - Здесь мы физически знакомимся с тем, как аппарат взаимодействует друг с другом; т. е. какой провод соответствует определенному типу сигнала; это всегда реализовано аппаратно
  • электричество / фотоны - законы, которые регулируют (или, по крайней мере, определяют), как электроны (или фотоны) текут по проводящему материалу или по воздуху; это обычно реализуется аппаратно;)

В некотором смысле, это все «протоколы» (набор правил или ожидаемого поведения, которые позволяют осуществлять связь), и они основаны друг на друге.

Помните, что (кроме электричества) это не исчерпывающий список протоколов, существующих на любом из этих уровней!

Редактировать Спасибо dmckee за то, что он указал, что электричество не единственный физический процесс, используемый в сети;)

3 голосов
/ 21 декабря 2009

Сетевые протоколы не являются частями кода или программного обеспечения, это всего лишь набор правил. Когда программное обеспечение использует определенный сетевой протокол, оно называется реализацией. Может быть много разных программных реализаций одного и того же протокола (т. Е. Windows и UNIX имеют разные реализации TCP / IP). Понять сетевые протоколы можно без знания программирования .


РЕДАКТИРОВАТЬ: Как они реализованы? Вот статья о взятии абстрактной спецификации протокола и ее реализации в C . Вы увидите, что менее строгие протоколы не учитывают некоторые детали, о которых должны догадываться программисты, что делает некоторые реализации несовместимыми с другими.

1 голос
/ 21 декабря 2009

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

Иногда протоколы реализуются непосредственно на аппаратном обеспечении [по соображениям скорости] (например, протокол Ethernet для локальных сетей) - но для работы с протоколом всегда требуется программное обеспечение / код.

Это может быть интересно для вас:

0 голосов
/ 02 декабря 2011

Протоколы в основном набор правил. Способ их реализации состоит в том, чтобы в первую очередь создать диаграмму конечного автомата, поскольку она полностью говорит о том, что будет текущим состоянием и как состояние будет изменяться на основе входных данных и какие выходные действия будут выполняться. .

0 голосов
/ 21 декабря 2009

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

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

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

в компьютерах, в конце концов все воплощено в коде ...

0 голосов
/ 21 декабря 2009

Программное обеспечение реализует правила, определенные в протоколе, некоторые протоколы формально определены, а некоторые неформальны.

...