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