BufWriter<Master<'_>> – Telegram
BufWriter<Master<'_>>
105 subscribers
451 photos
28 videos
34 files
1.7K links
https://www.patreon.com/alxe_master

Видео/статьи. Конспект и мои вольные комментарии по инженерии. тут только то, что считаю полезным для себя или других =)

#os, #cloud, #rust, #golang, #python, #javaScript, #cpp, etc
Download Telegram
https://www.st.com/en/evaluation-tools/nucleo-g071rb.html

ну дравствуй стм32G. взял новую отладочную платку домой
Unterstanding Rust’s Vec and its capacity for fast and efficient programs
https://markusjais.com/unterstanding-rusts-vec-and-its-capacity-for-fast-and-efficient-programs/
про выделение памяти для вектора в #rust
LinuxConJapan2016_makita_160712.pdf
2.5 MB
вот этот доклад хочу найти. потому что это просто ОГОНЬ. как ускорить UDP/TCP на линуксе
Thesis.pdf
748.3 KB
Zero-copy #rust k-v store
https://serverfault.com/questions/432101/why-is-udp-slower-than-tcp-on-ubuntu-server

никогда не думал что

Each frame goes through several buffers as you send it: The application buffer, The Protocol Buffer, The Software interface buffer and the Hardware interface buffer. As you start stressing the stack by sending high speed data you will fill up these buffers and either block or lose data. You also have strategies for timeliness and polling that can impact your performance. For example, by using a larger buffer and poll less often you can get much better performance while sacrificing latency.

TCP is optimized for high speed bulk transfers while UDP is optimized for low latency in the Linux kernel. This has an impact on buffer sizes and how data is polled and handed over. In addition to this, you frequently have offloading to hardware for TCP. I would expect considerably better performance for TCP compared to UDP.

Note that sending high speed data over UDP is usually a bad idea, unless you implement your own congestion control. TCP protects your network from congestion collapses. Use UDP when you have small amounts of data or high timeliness requirements.


Writing to loopback will not be an efficient way to communicate inter-process for profiling. Generally the buffer will be copied multiple times before it's processed, and you run the risk of dropping packets since you're using udp.
протокол LwM2M
(Lightweight Machine to machine protocol)

== Defining the future of the IoT device management with LwM2M
https://www.youtube.com/watch?v=wCyrisJZ_Dc

- device requesting
- device onboarding
- device configuration
- security patches
- firmware over air
- proactive maintenance
- insurance

iot platform
- device management (lwm2m, oma dm, mqtt, tr-069, snmp)
- connectivity management (sim lifecycle managerment, integration with PCRF and HLR)
- application managent (OTA, FOTA, App state monitoring, app configuration)
- monitoring (passive and active data collection, business intelligence)
- service enablement (zero-touch provisionning, common services layer, suplementary services activation)
- user management

MQTT:
- TCP
- no format payload
- no datamodel
- ipv6 +
- security ssl/tls
- standard OASIS, ISO

XMPP
- TCP
- payload is XML
- no datamodel
- ipv6 +
- security XTLS/TLS, SASL
standardization body XSF, IETF

OMA DM
- Open mobile alliance standard for device management
- TCP/SMS
- app layer HTTP/HTTPS, Wap
- payload - syncMl
- datamode defined
- ipv6 +
security HMAC-MD5, SSL/TLS
- body = OMA

COAP
- UDP
- no standard of payload
- ipv6+
- security DTLS
- standardization body IETF

LWM2M
- UDP, SMS
- app layer - CoAP
- TLV, JSON
- Defined data model
- ipv6+
- security DTLS 1.2
- body - OMA, IETF

Interfaces:
- bootstrap (bootstrap request, boostrap finish, write, discover, delete)
- client registration (register, de-tegister, update)
- device management & service enablemnt (read, write, execute, create, delete, write attribute, discover)
- information reporting (observe cancel observation, notify)

LwM2M 1.1
- CoaP over TCP
- lwm2m gateway
- LPWA binding (NIDD)
- CBOR encoding
- hardware secure elements

Anjay - LwM2M SDK
- opensourced!


== Why investigate LwM2M & MQTT?
https://www.youtube.com/watch?v=GaNag3-X5r4

Challenges of managing an IoT system at scale
- security
- interoperability
- constrained devices
- scalability
- availability

== OMA Lightweight M2M Protocol (OMA LWM2M)
https://www.youtube.com/watch?v=QZlvxDRG7wI
шикарный доклад про
- CoaP
- LwM2M
- IPSO
ABI (application binary interface - двоичный интерфейс приложений)
- использование регистров процессора
- состав и формат системных вызовов и вызовов одного модуля другим
- формат передачи аргументов и возвращаемого значения при вызове функции

EABI (embedded application binary interface - Бинарный интерфейс встраиваемых приложений)
- форматы файлов
- типы данных
- способы использования регистров
- организацию стека
- соглашение о вызове функций

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


https://ru.wikipedia.org/wiki/%D0%94%D0%B2%D0%BE%D0%B8%D1%87%D0%BD%D1%8B%D0%B9_%D0%B8%D0%BD%D1%82%D0%B5%D1%80%D1%84%D0%B5%D0%B9%D1%81_%D0%BF%D1%80%D0%B8%D0%BB%D0%BE%D0%B6%D0%B5%D0%BD%D0%B8%D0%B9
HTTP/2
== Протокол HTTP/2: что это, преимущества и как им пользоваться
https://vps.ua/blog/protocol-http-2-benefits/

== Wiki HTTP/2
https://ru.wikipedia.org/wiki/HTTP/2

== Разъяснение http2
https://habr.com/ru/post/221427/

IETF и рабочая группа HTTPbis

Инженерный совет Интернета (IETF) – разрабатывает и продвигает интернет стандарты. на протокольном уровне. документирующих всё: от TCP, DNS, FTP до лучших практик, HTTP и множества вариантов протокола, которые нигде не были применены.

Рабочая группа HTTPbis сформирована в 2007 года и должна была обновить спецификацию HTTP 1.1 — отсюда и суффикс «bis». Обсуждение в группе новой версии HTTP протокола по-настоящему началось в конце 2012 года. Работа над обновлением HTTP 1.1 была завершена в начале 2014 года.

Заключительное совещание для рабочей группа HTTPbis перед ожидаемым финальным выпуском версии спецификации http2, пройдёт в Нью-Йорке в начале июня 2014 года.
Группа названа HTTPbis, где суффикс «bis» происходит от латинского наречия, которое означает «два». Бис часто используют как суффикс или часть имени внутри IETF для обновления или второй попыткой работы над спецификацией. Также, как в случае HTTP 1.1.

концепт новой версии хттп2:
- Она должна поддерживать парадигмы HTTP. Это по-прежнему протокол, где клиенты отправляют запросы на сервер поверх TCP.
- Ссылки http:// и https:// не могут быть изменены. Нельзя добавить новую схему или сделать что-нибудь подобное.
- HTTP1 серверы и клиенты будут существовать ещё десятилетия, мы должны иметь возможность проксировать их к http2-серверам.
- Следовательно, прокси должны быть способны конвертировать один в один возможности http2 в HTTP 1.1 для клиентов.
- Удалить или уменьшить число опциональных частей в протоколе. Это даже не столько требование, сколько мантра, пришедшая от SPDY и команды Google.
- Больше нет минорных версий. Было решено, что клиенты и серверы могут быть либо совместимы с http2, либо нет. Если окажется, что необходимо расширить протокол или изменить его, тогда появится http3. В http2 больше не будет минорных версий.

SPDY работал только поверх TLS и было сильное желание сделать TLS обязательным и для http2, но консенсус не был достигнут и http2 будет выпущен с опциональным TLS. Однако, Firefox и Chrome. заявили, что они будут реализовывать только http2 поверх TLS

http2 – это бинарный протокол.

Сотни одновременных потоков. Цена создания потока очень низкая. Каждый поток имеет приоритет

Вы можете просто отменить отправку и начать новое сообщение, отправляя http2-фрейма RST_STREAM,

Сервер-пуш

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

== Введение в HTTP/2
https://developers.google.com/web/fundamentals/performance/http2?hl=ru
HTTP/3

== Протокол HTTP-over-QUIC официально становится HTTP/3
https://habr.com/ru/company/globalsign/blog/429820/
https://habr.com/ru/company/globalsign/blog/429820/

== HTTP/3: разрушение основ и дивный новый мир https://habr.com/ru/company/dododev/blog/473930/