PingServer
اطلاعیهٔ نسخهٔ ۲: این صفحه جایگزین مستندات Ping wire v1 است. تنظیمات و راهبردهای قدیمی (
strategy،wrap-*/warp-*،source،dest،check-identifier،ipv4-id-start، XOR و roundup) حذف شدهاند و دیگر نباید در config استفاده شوند.
PingServer همتای PingClient در Ping wire v2 است. درخواست Echo با نوع 8
را از سمت upstream باز میکند و دادهٔ داخلی را یکبار تحویل میدهد. فقط با
تنظیم send-replies: true پیش از تحویل داده یک Echo Reply با نوع 0 و دادهٔ
دقیقاً یکسان میفرستد. پیشفرض این گزینه false است؛ در این حالت clone، کپی و
ارسال Reply انجام نمیشود. این گزینه در دو سمت مستقل تنظیم میشود. رهگیری
درخواست، جلوگیری از replay و مصرف Replyهای منطبق با درخواستهای محلی حتی با
غیرفعالبودن ارسال Reply ادامه دارد. داده منتظر Reply نمیماند. دادهٔ جدید در
جهت مخالف با Echo Request جدید ارسال میشود، نه با تغییر Echo Reply.
درخواستهای در انتظار و replay در یک tracker مشترک و synchronized برای کل node پیگیری میشوند؛ برای تطبیق درخواست و پاسخ از WID مربوط به packet line استفاده نمیشود. هر ring حداکثر ۱۰۲۴ ورودی دارد.
تنظیمات معتبر فقط اینها هستند:
| گزینه | الزامی | پیشفرض |
|---|---|---|
local-ipv4 | بله | — |
peer-ipv4 | بله | — |
send-replies | خیر | false |
identifier | خیر | "random" |
sequence-start | خیر | 1 |
ttl | خیر | 64 |
tos | خیر | 0 |
send-replies باید یک مقدار boolean باشد؛ حذف آن همان رفتار false را دارد.
مقدار identifier میتواند "random" یا عدد صحیح 0..65535 باشد و مقدار تصادفی
پیشفرض صفر نیست. sequence-start عدد صحیح 0..65535 و ttl و tos عدد صحیح
0..255 هستند.
درخواست تکراری داده را دوباره تحویل نمیدهد و فقط در صورت فعالبودن این گزینه
Reply دیگری دریافت میکند.
برای جفت PingClient/PingServer، مقدارهای local-ipv4 و peer-ipv4 را در دو
سمت برعکس کنید. حداکثر IPv4 داخلی ۱۴۷۲ بایت و سربار carrier ۲۸ بایت است. برای
قواعد کامل carrier، مهاجرت و مثال فعلی به
مرجع انگلیسی PingServer
مراجعه کنید.
خطاهای رد packet با سطح ERROR و علت مشخص ثبت میشوند. پیام شامل اندازهٔ packet،
حداکثر اندازهٔ packet داخلی و carrier، سربار و headroom موجود و مورد نیاز است.
محدودکنندهٔ پنجثانیهای بین همهٔ علتهای خطا، جهتها و workerهای هر node مشترک
است؛ همهٔ packetهای ردشده پیام جداگانه تولید نمیکنند.
پس از بازکردن درخواست Echo، packet داخلی روی همان worker دریافتکننده ارسال میشود. پاسخ Echo، بررسی replay و تطبیق درخواست نیز روی همان worker انجام میشوند؛ tracker مشترک به affinity جریان TCP/UDP نیاز ندارد. fragmentهای داخلی با حفظ بایتها و مرزهایشان مستقیم ارسال میشوند و منتظر fragment اول نمیمانند. اگر مصرفکنندهٔ بعدی stateful باشد، خودش مالکیت worker جریان را برقرار میکند.
متادیتای node
متادیتای برگرفته از کد منبع:
| ویژگی | مقدار |
|---|---|
version | 2 |
| node flags | kNodeFlagNone |
can_have_prev | true |
can_have_next | true |
layer_group | kNodeLayer3 |
layer_group_prev_node | kNodeLayer3 |
layer_group_next_node | kNodeLayer3 |
required_padding_left | 28 بایت |
| وضعیت line | ندارد |