https://www.youtube.com/watch?v=LOQa9eyxo_M
Network Tweaks Speed Up Internet Lower Ping Boost FPS/Hit-Reg
есть дельные советы
Network Tweaks Speed Up Internet Lower Ping Boost FPS/Hit-Reg
есть дельные советы
YouTube
Network Tweaks Speed Up Internet Lower Ping Boost FPS/Hit-Reg
Hi everyone!
Today we go through everything internet related on our router modem and PC. All of this will help your overall internet/windows performance and FPS/Hit-Reg in games.
Discord
https://discord.gg/44TkbuR
Comment below what you would like…
Today we go through everything internet related on our router modem and PC. All of this will help your overall internet/windows performance and FPS/Hit-Reg in games.
Discord
https://discord.gg/44TkbuR
Comment below what you would like…
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.Writing to
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.
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.Server Fault
Why is UDP slower than TCP on Ubuntu Server?
I transfer data between two Ubuntu Servers (12.04) via iperf on 1Gb LAN.
iperf -s <-> iperf -c <addr> -n2G
TCP speed = 925 Mbits/sec
iperf -su <-> iperf -uc<addr...
iperf -s <-> iperf -c <addr> -n2G
TCP speed = 925 Mbits/sec
iperf -su <-> iperf -uc<addr...
протокол 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
(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
YouTube
Defining the future of the IoT device management with LwM2M
Slawomir Wolf's (AVSystem's CEO) speech held on 29th November 2018, at IoT Tech Expo in Santa Clara - "Defining the future of IoT Device Management with LwM2...
55-67.pdf
1.7 MB
Исследование Протоколов IoT
MQTT
COAP
HTTP/2
MQTT
COAP
HTTP/2
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
- использование регистров процессора
- состав и формат системных вызовов и вызовов одного модуля другим
- формат передачи аргументов и возвращаемого значения при вызове функции
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
протокол HDLC (канальный)
= non-ip protocol
http://ciscotips.ru/hdlc
== High-Level Data Link Control https://en.wikipedia.org/wiki/High-Level_Data_Link_Control
= non-ip protocol
http://ciscotips.ru/hdlc
== High-Level Data Link Control https://en.wikipedia.org/wiki/High-Level_Data_Link_Control
ciscotips.ru
Протокол HDLC — пример настройки и описание | CiscoTips
Протокол HDLC (High-Level Data Link Control) – протокол второго уровня модели OSI, разработанный организацией ISO. Этот протокол обеспечивает передачу данных между устройствами в режиме точка-точка или точка-многоточка. В лабораторных работах курса CCNA часто…
хорошая дока по IP vs MAC адреса. зачем и для чего. и есть хороший понятный алгоритм как строится маршрут в сети!
http://ciscotips.ru/ip-and-mac
http://ciscotips.ru/ip-and-mac
ciscotips.ru
Разница между IP и MAC-адресами | CiscoTips
Неподготовленный человек часто путает ip и mac адреса и не может чётко объяснить, где используются первые, а где вторые. На самом деле, они используются одновременно, но имеют разное назначение и смысл. Чтобы разобраться с этим, требуется вначале представлять…
Node.js in 2021: новости платформы и вызовы на следующее десятилетие
https://www.youtube.com/watch?v=nnB7ADYso8s
давненько в ноду не ходил... с 12й версии попрощался. признаюсь, счастлив, что больше не ковыряюсь в ней
https://www.youtube.com/watch?v=nnB7ADYso8s
давненько в ноду не ходил... с 12й версии попрощался. признаюсь, счастлив, что больше не ковыряюсь в ней
YouTube
🎧 Node.js в 2021: обзор платформы и вызовы на следующее десятилетие
Автор курса по node js: https://github.com/tshemsedinov
Слайды: https://www2.slideshare.net/tshemsedinov/nodejs-in-2021
Семинар с обсуждением и ответами на вопросы: https://youtu.be/zYRDhxj0zhQ
Технологический стек Metarhia: https://github.com/metarhia…
Слайды: https://www2.slideshare.net/tshemsedinov/nodejs-in-2021
Семинар с обсуждением и ответами на вопросы: https://youtu.be/zYRDhxj0zhQ
Технологический стек Metarhia: https://github.com/metarhia…
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/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
Блог хостинговой компании VPS.ua
Протокол HTTP/2: что это, преимущества и как им пользоваться | Блог VPS.ua
HTTP/2 ★ может отправлять множественные запросы данных параллельно по единому соединению TCP
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/
== Протокол 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/
Pluralsight_20Patterns_ebook(1).pdf
9.2 MB
20 patterns to
watch for in your
engineering team
- Domain Champion
- Hoarding the Code
- Unusually High Churn
- Bullseye Commits
- Heroing
- Over Helping
- Clean As You Go
- In the Zone
- Bit Twiddling
- The Busy Body
- Scope Creep
- Flaky Product Ownership
- Expanding Refactor
- Just One More Thing
- Rubber Stamping
- Knowledge Silos
- Self-Merging PRs
- Long-Running PRs
- A High Bus Factor
- Sprint Retrospectives
watch for in your
engineering team
- Domain Champion
- Hoarding the Code
- Unusually High Churn
- Bullseye Commits
- Heroing
- Over Helping
- Clean As You Go
- In the Zone
- Bit Twiddling
- The Busy Body
- Scope Creep
- Flaky Product Ownership
- Expanding Refactor
- Just One More Thing
- Rubber Stamping
- Knowledge Silos
- Self-Merging PRs
- Long-Running PRs
- A High Bus Factor
- Sprint Retrospectives
== R.I.P. – ВСЕГО 1 ОТКАЗ, ПОХОРОНИВШИЙ INTEL...– [Кремниевые Секреты]
https://youtu.be/jK7GRnoJ11A
спойлер
отказались разрабатывать АРМ проц для эппла
https://youtu.be/jK7GRnoJ11A
спойлер
отказались разрабатывать АРМ проц для эппла
12technologies.pptx
13 MB
преза по ИИ
то что будет развиваться:
1) Deep Learning
2) Capsule Neural Networks
3) Deep reinforcement learning (DRL)
4) Generative adversarial network (GAN)
5) Lean and augmented data
6) Probabilistic programming
7) Hybrid learning models
8) Automated machine learning (AutoML) 9) Digital twin
10) Explainable AI
11) AI Chatbots
12) AI Accelerators
Я боюсь не того компьютера, который пройдет тест Тьюринга, а того, который его намеренно завалит...
Обмануть нейросеть
- Adversarial training (состязательное обучение)
- вредоносные примеры
- универсальное искажение
- PIXEL attack for fooling deep neural networks
- The Adversarial Patch
- специальные очки
- Дорожные знаки - обманки
https://www.youtube.com/watch?v=IY69r79iIJU
то что будет развиваться:
1) Deep Learning
2) Capsule Neural Networks
3) Deep reinforcement learning (DRL)
4) Generative adversarial network (GAN)
5) Lean and augmented data
6) Probabilistic programming
7) Hybrid learning models
8) Automated machine learning (AutoML) 9) Digital twin
10) Explainable AI
11) AI Chatbots
12) AI Accelerators
Я боюсь не того компьютера, который пройдет тест Тьюринга, а того, который его намеренно завалит...
Обмануть нейросеть
- Adversarial training (состязательное обучение)
- вредоносные примеры
- универсальное искажение
- PIXEL attack for fooling deep neural networks
- The Adversarial Patch
- специальные очки
- Дорожные знаки - обманки
https://www.youtube.com/watch?v=IY69r79iIJU
Forwarded from Блог*
#prog #rust
Пара слов о трейте Copy.
Во-первых, это один из "магических" трейтов, помечен атрибутом
В-третьих, как сказано в документации к
Продемонстрирую на примере:
Пара слов о трейте Copy.
Во-первых, это один из "магических" трейтов, помечен атрибутом
#[lang = "copy"]. Компилятор проверяет, что если тип тем или иным способом задекларирован как Copy, то и всего его поля должны быть Copy. Следующий код не компилируется:#[derive(Clone, Copy)]Ошибка:
struct StringHolder(String);
error[E0204]: the trait `Copy` may not be implemented for this type
--> src/lib.rs:1:17
|
1 | #[derive(Clone, Copy)]
| ^^^^
2 | struct StringHolder(String);
| ------ this field does not implement `Copy`
Во-вторых, один и тот же тип не может реализовывать Copy и Drop одновременно. Скажем, следующий код не компилируется:#[derive(Clone, Copy)]Ошибка:
struct Primitive;
impl Drop for Primitive {
fn drop(&mut self) {}
}
error[E0184]: the trait `Copy` may not be implemented for this type; the type has a destructorТак как полноценных negative trait bounds в Rust всё ещё нет, ограничение
--> src/lib.rs:1:17
|
1 | #[derive(Clone, Copy)]
| ^^^^ Copy not allowed on types with destructors
Copy можно использовать как более сильную замену ограничению !Drop.В-третьих, как сказано в документации к
Copy, "Copies happen implicitly, for example as part of an assignment y = x. The behavior of Copy is not overloadable; it is always a simple bit-wise copy.". С другой стороны, Clone является супертрейтом Copy, и наличие реализации Copy не мешает вызывать .clone() явно. Однако, в отличие от Copy, Clone::clone в принципе может вызывать любой код. Поэтому, в частности, технически замена в итераторной цепочке .cloned() на .copied() является ломающим изменением, даже если элементы итератора реализуют Copy.Продемонстрирую на примере:
use std::cell::Cell;Если запустить этот код, то он напечатает
struct Counter<'a>(&'a Cell<u32>);
impl Clone for Counter<'_> {
fn clone(&self) -> Self {
self.0.set(self.0.get() + 1);
Self(self.0)
}
}
fn main() {
let n = Cell::new(0);
let arr = [Counter(&n), Counter(&n), Counter(&n)];
arr.iter().cloned().for_each(drop);
println!("`Counter::clone` called {} times", n.get());
}
`Counter::clone` called 3 times. Теперь добавим к определению Counter аннотацию #[derive(Copy)] и допишем в main тот же код, что там есть, но с заменой .cloned() на copied():fn main() {
// ...
let n = Cell::new(0);
let arr = [Counter(&n), Counter(&n), Counter(&n)];
arr.iter().copied().for_each(drop); // изменение в этой строке
println!("`Counter::clone` called {} times", n.get());
}
Код теперь выводит:`Counter::clone` called 3 times
`Counter::clone` called 0 times
Берегите себя и не пишите, пожалуйста, в Clone::clone что-то помимо собственно клонирования.doc.rust-lang.org
Copy in std::marker - Rust
Types whose values can be duplicated simply by copying bits.