Протоколы, интерфейсы и сервисы. Примеры | Курс “Компьютерные сети”

Вновь рассматриваем, что такое сервисы, интерфейсы и протоколы на примере транспортного уровня TCP/IP.
Лекции по курсу “Компьютерные сети” – https://goo.gl/0aIOuf
Страница курса – http://www.asozykin.ru/courses/networks_online

Сервис – описывает какие функции реализует уровень
Интерфейс – набор примитивных операций, которые нижний уровень предоставляет верхнему
Протокол – правила и соглашения, используемые для связи уровня N одного компьютера с уровнем N другого компьютера

Примеры для транспортного уровня:
– Протоколы: TCP и UDP.
– Интерфейс: сокеты.
– Сервисы: надежная передача потока байт и ненадежная передача коротких сообщений.

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

Сервис – это абстрактное описание того, что делает уровень. Оно позволяет сформулировать, что требуется от уровня, не вдаваясь в детали реализации.

Интерфейс – это конкретное описание методов, процедур и функций, которые нужно вызвать, чтобы получить доступ к сервису. На транспортном уровне через один интерфейс сокетов можно получить доступ к двум типам сервиса. Для этого при создании сокета нужно указать разные константы (в Python socket.SOCK_STREAM или socket.SOCK_DGRAM).

В TCP/IP отсутствует сервис надежной доставки коротких сообщений. Многим приложениям, например, службе имен DNS, приходится самим реализовывать эту функциональность.

Лекция “Основы организации компьютерных сетей” – https://youtu.be/EPvxn9KvBvs
Лекция “Протокол TCP” – https://youtu.be/CKUOb4htnB4
Лекция “Протокол UDP” – https://youtu.be/GBrLfZvRrd8
Лекция “Интерфейс сокетов” – https://youtu.be/_vAjHdh92YU

Практические занятия по курсу “Компьютерные сети” – https://goo.gl/YP3l83

Мой канал с краткими и понятными объяснениями сложных тем в ИТ и компьютерных науках:
https://goo.gl/kW93MA

ПРИСОЕДИНЯЙТЕСЬ
Поделиться

Андрей Созыкин

Меня зовут Андрей Созыкин, я работаю в университете, веду курсы по компьютерным наукам. Здесь представлены видеолекции, подготовленные на основе этих курсов. Для видеолекций я отбираю самые важные материалы, необходимые для понимания предмета, и рассказываю их кратко, без лишних деталей, которые затруднят восприятие. Несмотря на краткость, изложение ведется системно; это не набор забавных видео, никак не связанных между собой.



Обсуждение закрыто.