پرش به مطلب اصلی

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​

متادیتای برگرفته از کد منبع:

ویژگیمقدار
version2
node flagskNodeFlagNone
can_have_prevtrue
can_have_nexttrue
layer_groupkNodeLayer3
layer_group_prev_nodekNodeLayer3
layer_group_next_nodekNodeLayer3
required_padding_left28 بایت
وضعیت lineندارد