From b8b55cd7abe0e9ea116a17442590172400f53d91 Mon Sep 17 00:00:00 2001 From: Sergey Yakovlev <3gnees@gmail.com> Date: Wed, 23 Sep 2026 00:35:36 +0300 Subject: [PATCH] Add sem2 summary --- .../images/storage-no-request.png | Bin 0 -> 51504 bytes .../images/storage-no-response.png | Bin 0 -> 60358 bytes .../02-communication/images/storage-task.png | Bin 0 -> 24597 bytes .../02-communication/images/tcp-handshake.png | Bin 0 -> 46111 bytes .../02-communication/images/tcp-window.png | Bin 0 -> 70875 bytes materials/02-communication/notes.md | 347 ++++++++++++++++++ materials/02-communication/readme.md | 1 + 7 files changed, 348 insertions(+) create mode 100644 materials/02-communication/images/storage-no-request.png create mode 100644 materials/02-communication/images/storage-no-response.png create mode 100644 materials/02-communication/images/storage-task.png create mode 100644 materials/02-communication/images/tcp-handshake.png create mode 100644 materials/02-communication/images/tcp-window.png create mode 100644 materials/02-communication/notes.md diff --git a/materials/02-communication/images/storage-no-request.png b/materials/02-communication/images/storage-no-request.png new file mode 100644 index 0000000000000000000000000000000000000000..9359693cb2cfada1983e85c5be2babcdc24ea5ed GIT binary patch literal 51504 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 DNmU8d literal 0 HcmV?d00001 diff --git a/materials/02-communication/images/storage-task.png b/materials/02-communication/images/storage-task.png new file mode 100644 index 0000000000000000000000000000000000000000..49a569a858c0347a7dc1c64dd7ec4be62a4807bb GIT binary patch literal 24597 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 F|2I;~!|MP5 literal 0 HcmV?d00001 diff --git a/materials/02-communication/images/tcp-handshake.png b/materials/02-communication/images/tcp-handshake.png new file mode 100644 index 0000000000000000000000000000000000000000..9025d4acf8d571353f7e0a5c7fede65efffef0a0 GIT binary patch literal 46111 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

T7ZNhCRH`Wk`EY4fq-1>J)~MSNQ{btf>af= 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 literal 0 HcmV?d00001 diff --git a/materials/02-communication/notes.md b/materials/02-communication/notes.md new file mode 100644 index 0000000..0bd6d2b --- /dev/null +++ b/materials/02-communication/notes.md @@ -0,0 +1,347 @@ +# Семинар 2. TCP/UDP, Protobuf и gRPC + +## Задача: положить число в Storage + +Допустим, у нас есть простой сервис **Storage**. Он хранит одно число, умеет обновлять его через `PutValue` и возвращать через `GetValue`. Клиент хочет положить туда `42`. Казалось бы, очень простая задача. Что может пойти не так? + +![Клиент отправляет PutValue(42) сервису Storage и ждёт ответ](images/storage-task.png) + +Первый вариант — сервер вообще недоступен: процесс упал, машина выключена или ещё не начала принимать соединения. Второй — сервер жив, но запрос потерялся по дороге. + +![Два исхода: сервер недоступен или запрос потерялся в сети](images/storage-no-request.png) + +Но есть более неприятные случаи. Сервер получил запрос и начал его выполнять, а потом сломался. Успел он записать число или нет? Клиент этого не знает. Или сервер всё выполнил и отправил ответ, но уже ответ потерялся в сети. Число записано, а клиент об этом не узнает. + +![Сервер упал при выполнении либо выполнил запрос, но ответ не дошёл](images/storage-no-response.png) + +**Клиент не может отличить «сервер ничего не сделал» от «сервер всё сделал, но не ответил».** Таймаут сообщает только, что мы не дождались ответа – он не дает понять состояние сервера. + +Можно попробовать ещё раз положить `42`: с точки зрения самого числа повторное присваивание даст тот же результат, если между попытками его никто не менял. Это идея идемпотентности. А вот с инкрементом такой приём уже не сработает: повтор увеличит число ещё раз. Можно спросить сервер, что в нём сейчас лежит, но и на этот запрос мы можем не получить ответа. + +Как с этим жить? Для начала, хотелось бы вообще не думать о том, что пакеты могут теряться, дублироваться, фрагментироваться и изменяться. Посмотрим, какие абстракции для этого дают UDP и TCP, и какие проблемы всё равно останутся. + +## Что дают UDP и TCP + +### Откуда берутся проблемы с пакетами + +Сеть ненадёжна по вполне конкретным причинам: + +- **Переполнение буферов.** В маршрутизатор приходит 10 Гбит/с, а передать дальше он может только 1 Гбит/с. Очередь маршрутизатора конечна: когда она заполнится, новые пакеты придётся отбрасывать. Очередь может переполниться и на принимающем компьютере, если он не успевает обрабатывать данные. +- **Отказ линии или устройства.** Кабель повредили при ремонте, оборудование выключилось, а маршрутизатор ещё отправляет пакеты по старому маршруту. Отправитель при этом не обязательно сразу узнает, что случилось. +- **Повреждение данных.** Помеха изменила биты. Если проверка контрольной суммы обнаружит повреждение, пакет будет отброшен. +- **Повторы и разные задержки.** Например, при потере подтверждения на одном из нижних уровней возможна повторная передача уже доставленных данных. Очереди и смена маршрута могут привести к тому, что более поздний пакет обгонит ранний. Сам IP не обещает ни порядка, ни защиты от дублей. +- **Фрагментация.** Если IP-пакет больше допустимого размера на пути — MTU, — может потребоваться разбиение на фрагменты. Если потерялся один фрагмент, исходную датаграмму собрать уже нельзя. + +Приложению неудобно разбираться с каждой такой ситуацией. Поэтому поверх IP используются транспортные протоколы. UDP сохраняет целостность отдельных сообщений, а TCP гарантирует порядок и надежность передачи. + +### UDP + +**UDP — User Datagram Protocol.** Мы отправляем датаграмму — отдельный массив байтов. На принимающей стороне сохраняется граница сообщений, даже вопреки фрагментации IP пакетов. + +А вот **доставку, порядок и отсутствие дублей UDP не гарантирует**. Сам протокол не ждёт подтверждений и не повторяет потерянные датаграммы. Поэтому для нашей операции `PutValue` пришлось бы отдельно решать, как понять, дошёл ли запрос и что делать при потере. + +Для других задач такие свойства подходят. Например, в конференции Zoom не обязательно, чтобы дошёл каждый кусочек голоса: небольшой пропуск наш мозг часто может восстановить по смыслу. + +### TCP + +**TCP — Transmission Control Protocol** — даёт абстракцию надёжного упорядоченного потока байтов. Можно представить канал: мы пишем в него байты, а другая сторона читает их в том же порядке, без повторов, дублей и потерь. Ниже этой абстракции все еще остается фрагментация пакетов, потери и повторы – но TCP все это скрывает от пользователя. + +Сначала стороны устанавливают TCP-соединение. Каждая сторона должна сообщить ISN и другие свои параметры и получить подтверждение. Логически это четыре действия, но ответ сервера и его собственное начало обмена объединяются в одно сообщение. Получается три пакета: **SYN → SYN + ACK → ACK**. + +![Установление TCP-соединения: четыре логических действия в трёх сегментах](images/tcp-handshake.png) + +После этого обе стороны хранят состояние: какие байты уже отправлены, какие подтверждены, какие получены и чего ещё не хватает. Соединение двунаправленное: клиент и сервер могут одновременно передавать данные, у каждого направления свой независимый поток байтов. + +- **Sequence number (`seq`)** — номер первого байта в сегменте. +- **Acknowledgment number (`ack`)** — номер следующего ожидаемого байта. Он подтверждает весь непрерывный префикс перед ним. +- **Окно приёма** показывает, сколько данных получатель готов принять. Это позволяет отправлять несколько сегментов, не ожидая подтверждения каждого отдельно, но не переполнять буфер получателя. Дополнительно отправитель ограничивает объём данных в пути с учётом перегрузки сети. + +Возьмём условную нумерацию с единицы. Пришли байты 4–6, а 1–3 потерялись. Получатель может сохранить 4–6 в буфере, но продолжает подтверждать, что ждёт байт 1. Отправитель обнаружит потерю по таймеру или повторным подтверждениям и повторит передачу. Когда появятся 1–3, образуется непрерывная последовательность 1–6: её можно отдать приложению, а в `ack` указать 7. + +Если потерялось само подтверждение, отправитель тоже может повторить данные. Получатель узнает дубликат по номерам байтов и не отдаст его приложению второй раз. На схеме также упомянут **SACK**: он позволяет дополнительно сообщить, какие участки уже получены после пропуска. + +![Буфер получателя: байты 4–6 ждут пропущенные 1–3; после их прихода ACK меняется с 1 на 7](images/tcp-window.png) + +За порядок приходится платить ожиданием: байты 4–6 уже у нас, но приложение не увидит их, пока не придут 1–3. Это **head-of-line blocking**. + +## RPC + +Теперь хочется избавиться от ручной работы: не собирать сообщения `PutValue`, не разбирать ответы и не писать всю сериализацию/десериализацию сообщений самостоятельно. + +Посмотрим на Storage как на обычный объект. У него есть методы `PutValue` и `GetValue`: мы передаём запрос и получаем результат. Можно сделать так, чтобы клиентский код выглядел именно как вызов метода, а отправка сообщения на сервер происходила внутри, практически прозрачно для пользователя. + +Такую астракцию дает **RPC — Remote Procedure Call, удалённый вызов процедуры**. Она находится на уровень выше TCP и UDP. Пока всё работает, нам почти не приходится думать о сети. Но при ошибке нужно вспомнить, что вызов шел через сеть, и сервер мог не ответить по разным причинам. + +Операцию и её параметры можно записать в JSON. Но каждый раз передавать названия полей довольно неэффективно. В нашем примере используются **Protobuf** для описания и сериализации сообщений и **gRPC** — широко используемый фреймворк удалённых вызовов. Показанный gRPC-сервис работает поверх HTTP/2 и TCP. Protobuf определяет, как представить наши данные, а gRPC связывает вызов клиентского метода с обработчиком на сервере. + +## Описываем Storage в `.proto` + +Откроем [storage.proto](grpc-practice/go-server/proto/storage.proto). В начале указаны версия `proto3`, пакет `storage` и настройка `go_package` для генерации Go-кода. Дальше описан сам сервис: + +```protobuf +syntax = "proto3"; + +package storage; + +option go_package = "hsegrpc/;storagepb"; + +import "google/protobuf/timestamp.proto"; + +service Storage { + rpc PutValue(PutRequest) returns (PutResponse); + rpc GetValue(GetRequest) returns (GetResponse); +} + +message Value { + uint64 payload = 1; + optional google.protobuf.Timestamp updated_at = 2; +} + +message PutRequest { + Value value = 1; +} + +message PutResponse { + uint64 value = 1; +} + +message GetRequest { +} + +message GetResponse { + Value value = 1; +} +``` + +Здесь `rpc` объявляет метод. `PutValue` принимает `PutRequest` и возвращает `PutResponse`; с `GetValue` всё аналогично. + +`PutRequest` содержит `Value` — значение, которое хотим положить. У `Value` есть само число `payload` и время обновления `updated_at`. `GetRequest` пустой, а `GetResponse` содержит `Value`. В `PutResponse` возвращается записанное число. + +**Что означают единички и двойки после полей?** Это номера, по которым поля узнаются при сериализации. Вместо строки `payload` можно передавать номер `1`, а получатель по своей схеме знает, что это за поле. Номер относится к конкретному типу сообщения: `value = 1` в `PutRequest` и `payload = 1` в `Value` друг другу не мешают. Это не значение поля и не его позиция в исходном файле. + +Эти номера важны для совместимости. Допустим, мы решили убрать `updated_at` и добавить другое поле. Нельзя просто отдать новому полю номер `2`: у пользователей старой версии под этим номером всё ещё описан `Timestamp`. Новому полю нужно дать новый номер, например `3`. Тогда это будет именно новое поле, а не другое значение на месте старого. + +## Из `.proto` получаем код + +Из одного `.proto` можно сгенерировать код для Go, Python, C++ и других языков. На семинаре мы смотрели Go; инструкции для разных языков есть на [grpc.io](https://grpc.io/docs/languages/). + +В первой строке [main.go](grpc-practice/go-server/main.go) приведена команда `protoc` для генерации. Из каталога `grpc-practice/go-server` она выглядит так: + +```bash +protoc --go_out=. --go_opt=paths=source_relative \ + --go-grpc_out=. --go-grpc_opt=paths=source_relative \ + proto/storage.proto +``` + +Для неё нужны `protoc` и Go-плагины `protoc-gen-go`, `protoc-gen-go-grpc`. Команда создаёт два файла: + +- [`storage.pb.go`](grpc-practice/go-server/proto/storage.pb.go) — структуры `Value`, `PutRequest`, `PutResponse`, `GetRequest`, `GetResponse` и вспомогательные методы; +- [`storage_grpc.pb.go`](grpc-practice/go-server/proto/storage_grpc.pb.go) — клиентский и серверный интерфейсы, а также код для работы с gRPC. + +### Сообщения становятся структурами + +В `storage.pb.go` каждому `message` соответствует Go-структура. Вот все типы из нашего примера; для наглядности здесь опущены служебные поля генератора, теги и вспомогательные методы: + +```go +type Value struct { + Payload uint64 + UpdatedAt *timestamppb.Timestamp +} + +type PutRequest struct { + Value *Value +} + +type PutResponse struct { + Value uint64 +} + +type GetRequest struct{} + +type GetResponse struct { + Value *Value +} +``` + +Можно прямо сопоставить их с `.proto`: `payload` превратился в `Payload`, `updated_at` — в `UpdatedAt`, а вложенное сообщение `Value` — в поле типа `*Value`. Поэтому запрос «положить 42» мы собираем как обычную структуру: + +```go +request := &storagepb.PutRequest{ + Value: &storagepb.Value{ + Payload: 42, + }, +} +``` + +### Клиент + +Наверное, самый сложный момент: **`StorageClient`**. Имея его экземпляр, пользователь может вызвать методы `PutValue` и `GetValue` сервиса `Storage`. Его интерфейс сгенерирован в `storage_grpc.pb.go` (упрощенно): + +```go +type StorageClient interface { + PutValue(in *PutRequest) (*PutResponse, error) + GetValue(in *GetRequest) (*GetResponse, error) +} +``` + +Получить такой клиент позволяет сгенерированный `NewStorageClient`. Если `conn` — уже созданное gRPC-подключение, клиентский код выглядит так: + +```go +client := storagepb.NewStorageClient(conn) + +response, err := client.PutValue(request) +if err != nil { + log.Fatal(err) +} +fmt.Println(response.GetValue()) // 42 +``` + +### Сервер + +**`StorageServer`** задаёт интерфейс, который серверсу предстоит реализовать. Генератор не знает, как именно наш сервис `Storage` хранит число. Есть заготовка `UnimplementedStorageServer`: её методы отвечают, что операция не реализована. Дальше мы пишем собственные `PutValue` и `GetValue`. Здесь проходит важная граница: описание сервиса и сетевой обмен можно сгенерировать, а решение, что делать с пришедшим значением, остаётся за нами. + +Вот интерфейс и один из методов заготовки из `storage_grpc.pb.go` (упрощенно): + +```go +type StorageServer interface { + PutValue(*PutRequest) (*PutResponse, error) + GetValue(*GetRequest) (*GetResponse, error) + mustEmbedUnimplementedStorageServer() +} + +type UnimplementedStorageServer struct{} + +func (UnimplementedStorageServer) PutValue( + _ *PutRequest, +) (*PutResponse, error) { + return nil, status.Errorf( + codes.Unimplemented, "method PutValue not implemented", + ) +} +``` + +Свою реализацию мы пишем в [storage/server.go](grpc-practice/go-server/storage/server.go). Наш `Server` включает `UnimplementedStorageServer`, хранит значение и mutex. Клиенты могут обращаться одновременно, поэтому доступ к значению защищён блокировкой: + +```go +type Value struct { + payload uint64 + updatedAt time.Time +} + +type Server struct { + storagepb.UnimplementedStorageServer + valueLocker sync.RWMutex + value Value +} + +func NewServer() *Server { + return &Server{} +} +``` + +Здесь `Value` — наша внутренняя структура для хранения числа; `storagepb.Value` из предыдущих листингов — сообщение для передачи по сети. Встраивание `UnimplementedStorageServer` даёт заготовки методов и служебный метод из интерфейса, а нужные `PutValue` и `GetValue` мы определяем у своего `Server`. + +В `PutValue` приходит сгенерированный `PutRequest`. Сначала проверяем, передал ли клиент `value`: он может его не указать, и тогда `request.GetValue()` вернёт `nil`. Если поле нужно для операции, эту проверку делаем сами. Иначе записываем число, выставляем время обновления и возвращаем ответ: + +```go +func (s *Server) PutValue( + request *storagepb.PutRequest, +) (*storagepb.PutResponse, error) { + s.valueLocker.Lock() + defer s.valueLocker.Unlock() + + if request.GetValue() == nil { + return nil, errors.New("missed value") + } + + s.value = Value{ + payload: request.GetValue().GetPayload(), + updatedAt: time.Now(), + } + + return &storagepb.PutResponse{ + Value: s.value.payload, + }, nil +} +``` + +`GetValue` берёт блокировку на чтение и возвращает текущее значение. Наш вспомогательный метод `toProto` перекладывает его в сгенерированное Protobuf-сообщение: + +```go +func (s *Server) GetValue( + _ *storagepb.GetRequest, +) (*storagepb.GetResponse, error) { + s.valueLocker.RLock() + defer s.valueLocker.RUnlock() + + return &storagepb.GetResponse{ + Value: s.value.toProto(), + }, nil +} + +func (v *Value) toProto() *storagepb.Value { + return &storagepb.Value{ + Payload: v.payload, + UpdatedAt: timestamppb.New(v.updatedAt), + } +} +``` + +### Соединяем реализацию с gRPC-сервером + +Остаётся запустить сервер, используя `main.go`. Ниже основной фрагмент запуска; `addr` — адрес, который в нашем примере по умолчанию равен `0.0.0.0:51000`: + +```go +lis, err := net.Listen("tcp", addr) +if err != nil { + log.Fatalf("failed to listen: %v", err) +} + +grpcServer := grpc.NewServer() +reflection.Register(grpcServer) + +storageService := storage.NewServer() +storagepb.RegisterStorageServer(grpcServer, storageService) + +err = grpcServer.Serve(lis) +if err != nil { + log.Fatalf("server failed") +} +``` + +`net.Listen("tcp", addr)` открывает TCP-listener. `grpc.NewServer()` создаёт сервер gRPC, а `storage.NewServer()` — нашу реализацию Storage. Вызов `RegisterStorageServer(grpcServer, storageService)` связывает их: теперь gRPC знает, какому объекту передавать вызовы `PutValue` и `GetValue`. `reflection.Register` позволит инструментам вроде `grpcurl` узнать описание сервиса. Наконец, `grpcServer.Serve(lis)` начинает принимать соединения. + +Получается полный путь одного запроса: клиентский метод получает `PutRequest` → сообщение сериализуется и передаётся по сети → сервер gRPC разбирает его → вызывает наш `Server.PutValue` → тот меняет значение и возвращает `PutResponse` → ответ уходит клиенту. Сериализацию и передачу обеспечивает готовый код, а изменение значения написано нами в `server.go`. + +## Проверяем через grpcurl и Postman + +Для этого примера нужны Go и установленный [`grpcurl`](https://github.com/fullstorydev/grpcurl). В каталоге `grpc-practice/go-server` запускаем сервер: + +```bash +go run main.go +``` + +В другом терминале смотрим список сервисов и описание Storage: + +```bash +grpcurl -plaintext localhost:51000 list +grpcurl -plaintext localhost:51000 describe storage.Storage +``` + +`-plaintext` отключает TLS: в этом примере работаем без шифрования. `list` показывает доступные сервисы, а `describe` — методы Storage и типы их запросов и ответов. Узнать это у работающего сервера позволяет включённый в `main.go` сервис reflection: `grpcurl` получает описание интерфейса, хотя мы не передавали ему `.proto` отдельным файлом. + +Теперь положим `100500`, как в демонстрации, и прочитаем значение обратно: + +```bash +grpcurl -plaintext -d '{"value":{"payload":100500}}' \ + localhost:51000 storage.Storage/PutValue +grpcurl -plaintext -d '{}' localhost:51000 storage.Storage/GetValue +``` + +В запросе повторяется структура из `.proto`: внутри `value` находится `payload`. `PutValue` возвращает записанное число, `GetValue` — текущее значение и время обновления. В терминале мы вводим JSON, потому что это удобно человеку; `grpcurl` по описанию сервиса преобразует его в Protobuf-сообщение. + +У `PutValue` ожидается ответ `{"value":"100500"}`, а у `GetValue` — вложенный объект `value` с полями `payload` и `updatedAt`. Время выставляет наш сервер. Если к нему одновременно обращается другой пишущий клиент, чтение может уже показать его значение. + +Если не хочется писать команды в консоли, можно использовать **Postman**, как в конце семинара: импортировать `storage.proto`, указать адрес `localhost:51000`, выбрать `PutValue`, заполнить сообщение и нажать **Invoke**. Затем вызвать `GetValue` и увидеть записанное число. + +Получилось, что мы описали сервис в `.proto`, сгенерировали код и дописали небольшую реализацию — и у нас уже есть работающий сервис. Все файлы и команды находятся в [материалах практики](grpc-practice/go-server/README.md). diff --git a/materials/02-communication/readme.md b/materials/02-communication/readme.md index fba4ea4..117d460 100644 --- a/materials/02-communication/readme.md +++ b/materials/02-communication/readme.md @@ -8,6 +8,7 @@ ### Семинар - [Презентация](02-communication-seminar.pptx) +- [Конспект: TCP/UDP, gRPC и Protobuf](notes.md) - [Практика с gRPC](grpc-practice) - [Пример gRPC Streaming](grpc-streaming) -- 2.54.0