Skip to content

Latest commit

 

History

History
81 lines (61 loc) · 9.12 KB

PROTOCOL.MD

File metadata and controls

81 lines (61 loc) · 9.12 KB

1. Что такое UDP и TCP пакеты в чем принципиальная разница между ними?

UDP (User Datagram Protocol) - Не требует установки соединения, не использует проверки отправленных пакетов.

TCP (Transmission Control Protocol) - Отвечает надежностью доставки данных в определённой последовательности требует установку соединения что приводит к некоторой задержке и потреблению ресурсов, обеспечивает управление потоком данных и контроль за перегрузками в сети

2. Что такое SOAP?

SOAP (Simple Object Access Protocol) - это протокол обмена структурированными сообщениями между веб-сервисами. Он предоставляет способ для взаимодействия и обмена данными между клиентом и сервером.

SOAP опирается на XML в качестве формата сообщений и использует HTTP или другие транспортные протоколы для передачи этих сообщений. SOAP-сообщения могут быть отправлены через сеть и содержат данные и операции, которые клиент хочет выполнить на сервере.

Основные характеристики SOAP: Простота, Независимость от платформы, Расширяемость (позволяет определить собственные типы данных и операции)

3. Какие форматы данных знаешь, чем отличаются?

  • XML (eXtensible Markup Language — расширяемый язык разметки) – текстовый формат, предназначенный для структурирования, хранения и передачи информации. Поддерживает хранение сложных структур данных, с возможностью валидации схемы. Расширение XML — это конкретная грамматика, представленная словарём тегов и их атрибутов, а также набором правил, определяющих какие атрибуты и элементы могут входить в состав других элементов.
  • JSON (JavaScript Object Notation – Объектная нотация JavaScript) — текстовый формат обмена данными. JSON является синтаксисом для представления сложных структур, массивов данных различных типов в виде строк. По сравнению с XML занимают меньше объема на диске за счет отсутствия тэгов разметки.
  • YAML – человекочитаемый формат сериализации данных, концептуально близкий к языкам разметки, но ориентированный на удобство ввода-вывода типичных структур данных многих языков программирования.
  • CSV (Comma-Separated Values – значения, разделенные запятыми) – текстовый формат, предназначенный для представления табличных данных с фиксированным количеством столбцов. Каждая строка файла — это одна строка таблицы.

4. Что такое rpc?

RPC (Remote Procedure Call) - это протокол удаленного вызова процедур, который позволяет программам взаимодействовать и обмениваться данными через сеть.

В RPC клиент вызывает удаленную процедуру (функцию, метод) на сервере, как если бы она была локальной. Клиент передает параметры вызова удаленной процедуры, а сервер выполняет эту процедуру и возвращает результат обратно клиенту.

Основные характеристики RPC:

  • Прозрачность: RPC скрывает детали взаимодействия по сети и предоставляет простой способ вызова удаленных функций, в котором клиент не обязан знать, что вызов происходит удаленно.
  • Параметры и возвращаемые значения: RPC позволяет передавать параметры вызываемой процедуры от клиента к серверу, а также возвращать результаты выполнения обратно клиенту.
  • Процедурный стиль: RPC основан на процедурном стиле программирования, где клиент вызывает удаленную процедуру, а сервер ее выполняет.
  • Протоколы: Для реализации RPC могут использоваться различные протоколы передачи данных, такие как HTTP, TCP/IP, UDP и другие.

RPC широко используется в распределенных системах и веб-сервисах для взаимодействия между различными компонентами. Он позволяет разделить функциональность на клиентскую и серверную стороны, что облегчает разработку и поддержку приложений.

Примеры популярных RPC-протоколов включают XML-RPC, JSON-RPC, gRPC, Thrift и другие. Эти протоколы определяют формат сообщений и способы сериализации данных для удаленных вызовов процедур.

5. Что такое GRPC

gRPC (Google Remote Procedure Call) - это открытый фреймворк для разработки распределенных систем, который обеспечивает эффективное и надежное взаимодействие между различными сервисами. gRPC основан на протоколе HTTP/2 и использует бинарный формат сериализации данных Protocol Buffers (protobuf) для эффективной передачи данных.

Основные особенности gRPC:

  • Сильная типизация: gRPC использует protobuf для определения структуры данных и сериализации/десериализации. Это обеспечивает сильную типизацию и позволяет легко определять сообщения и сервисы.
  • Мультиплатформенность: gRPC поддерживает множество языков программирования, включая Java, C++, Python, Go, Ruby, C#, Node.js и другие. Это позволяет разрабатывать распределенные системы на разных платформах с использованием единого протокола и кода.
  • Бинарный протокол: gRPC использует протокол HTTP/2 в качестве транспортного слоя, что обеспечивает эффективную передачу данных с использованием бинарного формата и мультиплексирование запросов на одном соединении.
  • Кодогенерация: gRPC позволяет автоматически генерировать клиентский и серверный код на основе определений protobuf. Это упрощает процесс разработки, так как разработчику необходимо только определить сообщения и сервисы, а код для взаимодействия будет сгенерирован автоматически.
  • Поддержка потоковой передачи данных: gRPC поддерживает как одностороннюю, так и двустороннюю потоковую передачу данных. Это позволяет эффективно обмениваться потоками данных между клиентом и сервером.

Назад