เชนเซเชฒเซ เชนเซเชฌเซเชฐ, เชฎเชพเชฐเซเช เชจเชพเชฎ เชเชฒเซเชฏเชพ เชเซ, เชนเซเช Exness เชชเชฐ เชชเซเชฒเซเชเชซเซเชฐเซเชฎ เชเซเชฎเชฎเชพเช เชเชพเชฎ เชเชฐเซเช เชเซเช. เช เชฎเซ เช เชฎเชพเชฐเซ เชชเซเชฐเซเชกเชเซเช เชกเซเชตเชฒเชชเชฎเซเชจเซเช เชเซเชฎเซ เชเชชเชฏเซเช เชเชฐเซ เชเซ เชคเซเชตเชพ เชเซเชฐ เชเชจเซเชซเซเชฐเชพเชธเซเชเซเชฐเชเซเชเชฐ เชเชเชเซเชจเซ เชตเชฟเชเชพเชธ เช เชจเซ เช เชฎเชฒ เชเชฐเซเช เชเซเช.
เช เชฒเซเชเชฎเชพเช, เชนเซเช เชธเชพเชฐเซเชตเชเชจเชฟเช เชตเซเชฌเชธเชพเชเชเซเชธเชจเชพ เชเชจเซเชซเซเชฐเชพเชธเซเชเซเชฐเชเซเชเชฐเชฎเชพเช เชเชจเซเชเซเชฐเชฟเชชเซเชเซเชก SNI (ESNI) เชเซเชเซเชจเซเชฒเซเชเซเชจเซ เช เชฎเชฒ เชเชฐเชตเชพเชจเซ เชฎเชพเชฐเซ เช เชจเซเชญเชต เชถเซเชฐ เชเชฐเชตเชพ เชฎเชพเชเชเซ เชเซเช.
เช เชเซเชเซเชจเซเชฒเซเชเซเชจเซ เชเชชเชฏเซเช เชธเชพเชฐเซเชตเชเชจเชฟเช เชตเซเชฌเชธเชพเชเช เชธเชพเชฅเซ เชเชพเชฎ เชเชฐเชคเซ เชตเชเชคเซ เชธเซเชฐเชเซเชทเชพเชจเซเช เชธเซเชคเชฐ เชตเชงเชพเชฐเชถเซ เช
เชจเซ เชเชเชชเชจเซ เชฆเซเชตเชพเชฐเชพ เช
เชชเชจเชพเชตเชตเชพเชฎเชพเช เชเชตเซเชฒเชพ เชเชเชคเชฐเชฟเช เชธเซเชฐเชเซเชทเชพ เชงเซเชฐเชฃเซเชจเซเช เชชเชพเชฒเชจ เชเชฐเชถเซ.
เชธเซ เชชเซเชฐเชฅเชฎ, เชนเซเช เช เชจเชฟเชฐเซเชฆเซเชถ เชเชฐเชตเชพ เชฎเชพเชเชเซ เชเซเช เชเซ เชเซเชเซเชจเซเชฒเซเชเซ เชชเซเชฐเชฎเชพเชฃเชฟเชค เชจเชฅเซ เช
เชจเซ เชนเชเซ เชชเชฃ เชกเซเชฐเชพเชซเซเชเชฎเชพเช เชเซ, เชชเชฐเชเชคเซ CloudFlare เช
เชจเซ Mozilla เชชเชนเซเชฒเซเชฅเซ เช เชคเซเชจเซ เชธเชฎเชฐเซเชฅเชจ เชเชชเซ เชเซ (เชฎเชพเช
เชธเชฟเชฆเซเชงเชพเชเชค เชเช เชฌเซเช
ESNI TLS 1.3 เชชเซเชฐเซเชเซเชเซเชฒเชจเซเช เชตเชฟเชธเซเชคเชฐเชฃ เชเซ เชเซ TLS เชนเซเชจเซเชกเชถเซเช "เชเซเชฒเชพเชฏเชจเซเช เชนเซเชฒเซ" เชธเชเชฆเซเชถเชฎเชพเช SNI เชเชจเซเชเซเชฐเชฟเชชเซเชถเชจเชจเซ เชฎเชเชเซเชฐเซ เชเชชเซ เชเซ. ESNI เชธเชชเซเชฐเซเช เชธเชพเชฅเซ เชเซเชฒเชพเชเชจเซเช เชนเซเชฒเซ เชเซเชตเซ เชฆเซเชเชพเชฏ เชเซ เชคเซ เช เชนเซเช เชเซ (เชธเชพเชฎเชพเชจเซเชฏ SNIเชจเซ เชฌเชฆเชฒเซ เชเชชเชฃเซ ESNI เชเซเชเช เชเซเช):
ESNI เชจเซ เชเชชเชฏเซเช เชเชฐเชตเชพ เชฎเชพเชเซ, เชคเชฎเชพเชฐเซ เชคเซเชฐเชฃ เชเชเชเซเชจเซ เชเชฐเซเชฐ เชเซ:
- DNS;
- เชเซเชฒเชพเชฏเชเช เชธเชชเซเชฐเซเช;
- เชธเชฐเซเชตเชฐ เชฌเชพเชเซ เชเชงเชพเชฐ.
DNS
เชคเชฎเชพเชฐเซ เชฌเซ DNS เชฐเซเชเซเชฐเซเชก เชเชฎเซเชฐเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ - Aเช
เชจเซ TXT (TXT เชฐเซเชเซเชฐเซเชกเชฎเชพเช เชธเชพเชฐเซเชตเชเชจเชฟเช เชเซ เชเซ เชเซเชจเซ เชธเชพเชฅเซ เชเซเชฒเชพเชฏเชเช SNI เชเชจเซเชเซเชฐเชฟเชชเซเช เชเชฐเซ เชถเชเซ เชเซ) - เชจเซเชเซ เชเซเช. เชตเชงเซเชฎเชพเช, เชคเซเชฏเชพเช เชเชงเชพเชฐ เชนเซเชตเซ เชเซเชเช DoH (HTTPS เชชเชฐ DNS) เชเชพเชฐเชฃ เชเซ เชเชชเชฒเชฌเซเชง เชเซเชฒเชพเชฏเชจเซเชเซเชธ (เชจเซเชเซ เชเซเช) DoH เชตเชเชฐ ESNI เชธเชชเซเชฐเซเชเชจเซ เชธเชเซเชทเชฎ เชเชฐเชคเชพ เชจเชฅเซ. เช เชคเชพเชฐเซเชเชฟเช เชเซ, เชเชพเชฐเชฃ เชเซ ESNI เช เชธเชเชธเชพเชงเชจเชจเชพ เชจเชพเชฎเชจเซเช เชเชจเซเชเซเชฐเชฟเชชเซเชถเชจ เชธเซเชเชตเซ เชเซ เชเซ เช
เชฎเซ เชเชเซเชธเซเชธ เชเชฐเซ เชฐเชนเซเชฏเชพ เชเซเช, เชเชเชฒเซ เชเซ, UDP เชชเชฐ DNS เชเชเซเชธเซเชธ เชเชฐเชตเชพเชจเซ เชเซเช เช
เชฐเซเชฅ เชจเชฅเซ. เชตเชงเซเชฎเชพเช, เชเชชเชฏเซเช
เชนเชพเชฒเชฎเชพเช เชเชชเชฒเชฌเซเชง เชเซ
เชฎเซเชเชซเซเชฒเซเชฐ
ะ เชชเซเชฐเชตเซเชถ:
curl 'https://dns.google.com/resolve?name=www.cloudflare.com&type=A'
-s -H 'accept: application/dns+json'
{
"Status": 0,
"TC": false,
"RD": true,
"RA": true,
"AD": true,
"CD": false,
"Question": [
{
"name": "www.cloudflare.com.",
"type": 1
}
],
"Answer": [
{
"name": "www.cloudflare.com.",
"type": 1,
"TTL": 257,
"data": "104.17.210.9"
},
{
"name": "www.cloudflare.com.",
"type": 1,
"TTL": 257,
"data": "104.17.209.9"
}
]
}
TXT เชฐเซเชเซเชฐเซเชก, เชตเชฟเชจเชเชคเซ เชจเชฎเซเชจเชพ เช เชจเซเชธเชพเชฐ เชเชจเชฐเซเช เชฅเชพเชฏ เชเซ _esni.FQDN:
curl 'https://dns.google.com/resolve?name=_esni.www.cloudflare.com&type=TXT'
-s -H 'accept: application/dns+json'
{
"Status": 0,
"TC": false,
"RD": true,
"RA": true,
"AD": true,
"CD": false,
"Question": [
{
"name": "_esni.www.cloudflare.com.",
"type": 16
}
],
"Answer": [
{
"name": "_esni.www.cloudflare.com.",
"type": 16,
"TTL": 1799,
"data": ""/wEUgUKlACQAHQAg9SiAYQ9aUseUZr47HYHvF5jkt3aZ5802eAMJPhRz1QgAAhMBAQQAAAAAXtUmAAAAAABe3Q8AAAA=""
}
],
"Comment": "Response from 2400:cb00:2049:1::a29f:209."
}
เชคเซเชฅเซ, DNS เชชเชฐเชฟเชชเซเชฐเซเชเซเชทเซเชฏเชฎเชพเช, เชเชชเชฃเซ DoH (เชชเซเชฐเชพเชงเชพเชจเซเชฏ DNSSEC เชธเชพเชฅเซ) เชจเซ เชเชชเชฏเซเช เชเชฐเชตเซ เชเซเชเช เช เชจเซ เชฌเซ เชเชจเซเชเซเชฐเซ เชเชฎเซเชฐเชตเซ เชเซเชเช.
เชเซเชฐเชพเชนเช เชธเซเชตเชพ
เชเซ เชเชชเชฃเซ เชฌเซเชฐเชพเชเชเชฐเซเชธ เชตเชฟเชถเซ เชตเชพเชค เชเชฐเซ เชฐเชนเซเชฏเชพ เชเซเช, เชคเซ เช เชเซเชทเชฃเซ
เช เชฒเชฌเชคเซเชค, ESNI เชจเซ เชเซเชเซ เชเชชเชตเชพ เชฎเชพเชเซ TLS 1.3 เชจเซ เชเชชเชฏเซเช เชเชฐเชตเซ เชเชตเชถเซเชฏเช เชเซ, เชเชพเชฐเชฃ เชเซ ESNI เช TLS 1.3เชจเซเช เชตเชฟเชธเซเชคเชฐเชฃ เชเซ.
ESNI เชธเชชเซเชฐเซเช เชธเชพเชฅเซ เชฌเซเชเชเชจเซเชกเชจเซ เชเชเชพเชธเชตเชพเชจเชพ เชนเซเชคเซ เชฎเชพเชเซ, เช เชฎเซ เชเซเชฒเชพเชฏเชจเซเชเชจเซ เชเชพเชฒเซ เชเชฐเซเชฏเซเช เชเซ go, เชชเชฐเชเชคเซ เชคเซเชจเชพ เชชเชฐ เชชเชเซเชฅเซ เชตเชงเซ.
เชธเชฐเซเชตเชฐ เชฌเชพเชเซ เชเชงเชพเชฐ
เชนเชพเชฒเชฎเชพเช, ESNI เชจเซ nginx/apache, เชตเชเซเชฐเซ เชเซเชตเชพ เชตเซเชฌ เชธเชฐเซเชตเชฐเซเชธ เชฆเซเชตเชพเชฐเชพ เชธเชฎเชฐเซเชฅเชจ เชเชชเชตเชพเชฎเชพเช เชเชตเชคเซเช เชจเชฅเซ, เชเชพเชฐเชฃ เชเซ เชคเซเช TLS เชธเชพเชฅเซ OpenSSL/BoringSSL เชฆเซเชตเชพเชฐเชพ เชเชพเชฎ เชเชฐเซ เชเซ, เชเซ ESNI เชจเซ เชธเชคเซเชคเชพเชตเชพเชฐ เชฐเซเชคเซ เชธเชฎเชฐเซเชฅเชจ เชเชชเชคเชพ เชจเชฅเซ.
เชคเซเชฅเซ, เช เชฎเซ เช เชฎเชพเชฐเซเช เชชเซเชคเชพเชจเซเช เชซเซเชฐเชจเซเช-เชเชจเซเชก เชเชฎเซเชชเซเชจเชจเซเช (ESNI เชฐเชฟเชตเชฐเซเชธ เชชเซเชฐเซเชเซเชธเซ) เชฌเชจเชพเชตเชตเชพเชจเซเช เชจเชเซเชเซ เชเชฐเซเชฏเซเช เชเซ, เชเซ ESNI เชธเชพเชฅเซ TLS 1.3 เชเชฐเซเชฎเชฟเชจเซเชถเชจ เช เชจเซ เช เชชเชธเซเชเซเชฐเซเชฎเชฎเชพเช เชชเซเชฐเซเชเซเชธเซ HTTP(S) เชเซเชฐเชพเชซเชฟเชเชจเซ เชธเชชเซเชฐเซเช เชเชฐเชถเซ, เชเซ ESNI เชจเซ เชธเชชเซเชฐเซเช เชเชฐเชคเซเช เชจเชฅเซ. เช เชเซเชเซเชจเซเชฒเซเชเซเชจเซ เชชเชนเซเชฒเชพเชฅเซ เช เชธเซเชคเชฟเชคเซเชตเชฎเชพเช เชฐเชนเซเชฒเชพ เชเชจเซเชซเซเชฐเชพเชธเซเชเซเชฐเชเซเชเชฐเชฎเชพเช, เชฎเซเชเซเชฏ เชเชเชเซเชจเซ เชฌเชฆเชฒเซเชฏเชพ เชตเชฟเชจเชพ เชเชชเชฏเซเชเชฎเชพเช เชฒเซเชตเชพเชจเซ เชฎเชเชเซเชฐเซ เชเชชเซ เชเซ - เชเชเชฒเซ เชเซ, เชตเชฐเซเชคเชฎเชพเชจ เชตเซเชฌ เชธเชฐเซเชตเชฐเซเชธเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชเซ ESNI เชจเซ เชธเชชเซเชฐเซเช เชเชฐเชคเชพ เชจเชฅเซ.
เชธเซเชชเชทเซเชเชคเชพ เชฎเชพเชเซ, เช เชนเซเช เชเช เชเชเซเชคเชฟ เชเซ:
เชนเซเช เชจเซเชเชงเซเช เชเซเช เชเซ เชชเซเชฐเซเชเซเชธเซเชจเซ ESNI เชตเชเชฐ TLS เชเชจเซเชเซเชถเชจเชจเซ เชธเชฎเชพเชชเซเชค เชเชฐเชตเชพเชจเซ เชเซเชทเชฎเชคเชพ เชธเชพเชฅเซ เชกเชฟเชเชพเชเชจ เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชนเชคเซ, เชเซเชฅเซ ESNI เชตเชเชฐเชจเชพ เชเซเชฒเชพเชฏเชเชเชจเซ เชธเชชเซเชฐเซเช เชเชฐเซ เชถเชเชพเชฏ. เชเชชเชฐเชพเชเชค, เช
เชชเชธเซเชเซเชฐเซเชฎ เชธเชพเชฅเซเชจเซ เชเซเชฎเซเชฏเซเชจเชฟเชเซเชถเชจ เชชเซเชฐเซเชเซเชเซเชฒ 1.3 เชเชฐเชคเชพ เชเชเชพ TLS เชตเชฐเซเชเชจ เชธเชพเชฅเซ HTTP เช
เชฅเชตเชพ HTTPS เชนเซเช เชถเชเซ เชเซ (เชเซ เช
เชชเชธเซเชเซเชฐเซเชฎ 1.3เชจเซ เชธเชชเซเชฐเซเช เชเชฐเชคเซเช เชจเชฅเซ). เช เชฏเซเชเชจเชพ เชฎเชนเชคเซเชคเชฎ เชธเซเชเชฎเชคเชพ เชเชชเซ เชเซ.
เชชเชฐ ESNI เชธเชชเซเชฐเซเชเชจเซ เช
เชฎเชฒ go เช
เชฎเซ เชชเชพเชธเซเชฅเซ เชเชงเชพเชฐ เชฒเซเชงเซเชฒ เชเซ
ESNI เชเซ เชเชจเชฐเซเช เชเชฐเชตเชพ เชฎเชพเชเซ เช
เชฎเซ เชเชชเชฏเซเช เชเชฐเซเชฏเซ เชนเชคเซ
เช
เชฎเซ Linux (Debian, Alpine) เช
เชจเซ MacOS เชชเชฐ เชเซ 1.13 เชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เชฌเชฟเชฒเซเชกเชจเซเช เชชเชฐเซเชเซเชทเชฃ เชเชฐเซเชฏเซเช.
เชเชชเชฐเซเชถเชจเชฒ เชธเซเชตเชฟเชงเชพเช เชตเชฟเชถเซ เชฅเซเชกเชพเช เชถเชฌเซเชฆเซ
ESNI เชฐเชฟเชตเชฐเซเชธ เชชเซเชฐเซเชเซเชธเซ เชชเซเชฐเซเชฎเชฟเชฅเชฟเชฏเชธ เชซเซเชฐเซเชฎเซเชเชฎเชพเช เชฎเซเชเซเชฐเชฟเชเซเชธ เชชเซเชฐเชฆเชพเชจ เชเชฐเซ เชเซ, เชเซเชฎ เชเซ rps, เช เชชเชธเซเชเซเชฐเซเชฎ เชฒเซเชเชจเซเชธเซ เช เชจเซ เชฐเชฟเชธเซเชชเซเชจเซเชธ เชเซเชกเซเชธ, เชจเชฟเชทเซเชซเชณ/เชธเชซเชณ TLS เชนเซเชจเซเชกเชถเซเช เช เชจเซ TLS เชนเซเชจเซเชกเชถเซเช เช เชตเชงเชฟ. เชชเซเชฐเชฅเชฎ เชจเชเชฐเชฎเชพเช, เชชเซเชฐเซเชเซเชธเซ เชเซเชฐเชพเชซเชฟเชเชจเซ เชเซเชตเซ เชฐเซเชคเซ เชนเซเชจเซเชกเชฒ เชเชฐเซ เชเซ เชคเซเชจเซเช เชฎเซเชฒเซเชฏเชพเชเชเชจ เชเชฐเชตเชพ เชฎเชพเชเซ เช เชชเชฐเซเชฏเชพเชชเซเชค เชฒเชพเชเชคเซเช เชนเชคเซเช.
เช เชฎเซ เชเชชเชฏเซเช เชเชฐเชคเชพ เชชเชนเซเชฒเชพ เชฒเซเชก เชชเชฐเซเชเซเชทเชฃ เชชเชฃ เชเชฐเซเชฏเซเช. เชจเซเชเซเชจเชพ เชชเชฐเชฟเชฃเชพเชฎเซ:
wrk -t50 -c1000 -d360s 'https://esni-rev-proxy.npw:443' --timeout 15s
Running 6m test @ https://esni-rev-proxy.npw:443
50 threads and 1000 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 1.77s 1.21s 7.20s 65.43%
Req/Sec 13.78 8.84 140.00 83.70%
206357 requests in 6.00m, 6.08GB read
Requests/sec: 573.07
Transfer/sec: 17.28MB
เช เชฎเซ ESNI เชฐเชฟเชตเชฐเซเชธ เชชเซเชฐเซเชเซเชธเซเชจเซ เชเชชเชฏเซเช เชเชฐเซเชจเซ เช เชจเซ เชตเชเชฐ เชธเซเชเซเชฎเชจเซ เชธเชฐเชเชพเชฎเชฃเซ เชเชฐเชตเชพ เชฎเชพเชเซ เชธเชเชชเซเชฐเซเชฃ เชเซเชฃเชพเชคเซเชฎเช เชฒเซเชก เชชเชฐเซเชเซเชทเชฃ เชนเชพเชฅ เชงเชฐเซเชฏเซเช เชเซ. เชฎเชงเซเชฏเชตเชฐเซเชคเซ เชเชเชเซเชฎเชพเช "เชฆเชเชฒเชเซเชฐเซ" เชฆเซเชฐ เชเชฐเชตเชพ เชฎเชพเชเซ เช เชฎเซ เชธเซเชฅเชพเชจเชฟเช เชฐเซเชคเซ เชเซเชฐเชพเชซเชฟเช "เชฐเซเชกเซเชฏเซ" เชเซ.
เชคเซเชฅเซ, ESNI เชธเชชเซเชฐเซเช เช เชจเซ HTTP เชฎเชพเชเชฅเซ เช เชชเชธเซเชเซเชฐเซเชฎเชฎเชพเช เชชเซเชฐเซเชเซเชธเซ เชเชฐเชตเชพ เชธเชพเชฅเซ, เช เชฎเชจเซ ESNI เชฐเชฟเชตเชฐเซเชธ เชชเซเชฐเซเชเซเชธเซเชจเชพ เชธเชฐเซเชฐเชพเชถ CPU/RAM เชตเชชเชฐเชพเชถ เชธเชพเชฅเซ, เชเช เชเชฆเชพเชนเชฐเชฃเชฅเซ เชฒเชเชญเช ~550 rps เชฎเชณเซเชฏเชพ เชเซ:
- 80% CPU เชตเชชเชฐเชพเชถ (4 vCPU, 4 GB RAM เชนเซเชธเซเช, Linux)
- 130 เชเชฎเชฌเซ เชฎเซเชฎ เชเชฐเชเชธเชเชธ
เชธเชฐเชเชพเชฎเชฃเซ เชฎเชพเชเซ, TLS (HTTP เชชเซเชฐเซเชเซเชเซเชฒ) เชธเชฎเชพเชชเซเชคเชฟ เชตเชฟเชจเชพ เชธเชฎเชพเชจ nginx เช
เชชเชธเซเชเซเชฐเซเชฎ เชฎเชพเชเซ RPS ~ 1100 เชเซ:
wrk -t50 -c1000 -d360s 'http://lb.npw:80' โ-timeout 15s
Running 6m test @ http://lb.npw:80
50 threads and 1000 connections
Thread Stats Avg Stdev Max +/- Stdev
Latency 1.11s 2.30s 15.00s 90.94%
Req/Sec 23.25 13.55 282.00 79.25%
393093 requests in 6.00m, 11.35GB read
Socket errors: connect 0, read 0, write 0, timeout 9555
Non-2xx or 3xx responses: 8111
Requests/sec: 1091.62
Transfer/sec: 32.27MB
เชธเชฎเชฏเชธเชฎเชพเชชเซเชคเชฟเชจเซ เชนเชพเชเชฐเซ เชธเซเชเชตเซ เชเซ เชเซ เชธเชเชธเชพเชงเชจเซเชจเซ เช เชญเชพเชต เชเซ (เช เชฎเซ 4 vCPUs, 4 GB RAM เชนเซเชธเซเชเซเชธ, Linux เชจเซ เชเชชเชฏเซเช เชเชฐเซเชฏเซ เชเซ), เช เชจเซ เชนเชเซเชเชคเชฎเชพเช เชธเชเชญเชตเชฟเชค RPS เชตเชงเชพเชฐเซ เชเซ (เช เชฎเซ เชตเชงเซ เชถเชเซเชคเชฟเชถเชพเชณเซ เชธเชเชธเชพเชงเชจเซ เชชเชฐ 2700 RPS เชธเซเชงเซเชจเชพ เชเชเชเชกเชพ เชชเซเชฐเชพเชชเซเชค เชเชฐเซเชฏเชพ เชเซ).
เชจเชฟเชทเซเชเชฐเซเชทเชฎเชพเช, เชนเซเช เชจเซเชเชงเซเช เชเซเช เชเซ ESNI เชเซเชเชจเซเชฒเซเชเซ เชคเชฆเซเชฆเชจ เชเชถเชพเชธเซเชชเชฆ เชฒเชพเชเซ เชเซ. เชนเชเซ เชชเชฃ เชเชฃเชพ เชเซเชฒเซเชฒเชพ เชชเซเชฐเชถเซเชจเซ เชเซ, เชเชฆเชพเชนเชฐเชฃ เชคเชฐเซเชเซ, DNS เชฎเชพเช เชธเชพเชฐเซเชตเชเชจเชฟเช ESNI เชเซเชจเซ เชธเชเชเซเชฐเชนเชฟเชค เชเชฐเชตเชพ เช
เชจเซ ESNI เชเซเชจเซ เชซเซเชฐเชตเชตเชพเชจเชพ เชฎเซเชฆเซเชฆเชพเช - เช เชฎเซเชฆเซเชฆเชพเช เชชเชฐ เชธเชเซเชฐเชฟเชฏเชชเชฃเซ เชเชฐเซเชเชพ เชเชฐเชตเชพเชฎเชพเช เชเชตเซ เชฐเชนเซ เชเซ, เช
เชจเซ ESNI เชกเซเชฐเชพเชซเซเชเชจเซเช เชจเชตเซเชจเชคเชฎ เชธเชเชธเซเชเชฐเชฃ (เชฒเซเชเชจ เชธเชฎเชฏเซ) เชชเชนเซเชฒเซเชฅเซ เช เชเซ.
เชธเซเชฐเซเชธ: www.habr.com