.\" -*- coding: UTF-8 -*- .\" Copyright 1999, Andi Kleen .\" Copyright 2008, Michael Kerrisk .\" Copyright, the authors of the Linux man-pages project .\" .\" SPDX-License-Identifier: Linux-man-pages-1-para .\" .\" FIXME The following need to be documented .\" TCP_MD5SIG (2.6.20) .\" commit cfb6eeb4c860592edd123fdea908d23c6ad1c7dc .\" Author was yoshfuji@linux-ipv6.org .\" Needs CONFIG_TCP_MD5SIG .\" From net/inet/Kconfig: .\" bool "TCP: MD5 Signature Option support (RFC2385) (EXPERIMENTAL)" .\" RFC2385 specifies a method of giving MD5 protection to TCP sessions. .\" Its main (only?) use is to protect BGP sessions between core routers .\" on the Internet. .\" .\" There is a TCP_MD5SIG option documented in FreeBSD's tcp(4), .\" but probably many details are different on Linux .\" http://thread.gmane.org/gmane.linux.network/47490 .\" http://www.daemon-systems.org/man/tcp.4.html .\" http://article.gmane.org/gmane.os.netbsd.devel.network/3767/match=tcp_md5sig+freebsd .\" .\" TCP_COOKIE_TRANSACTIONS (2.6.33) .\" commit 519855c508b9a17878c0977a3cdefc09b59b30df .\" Author: William Allen Simpson .\" commit e56fb50f2b7958b931c8a2fc0966061b3f3c8f3a .\" Author: William Allen Simpson .\" .\" REMOVED in Linux 3.10 .\" commit 1a2c6181c4a1922021b4d7df373bba612c3e5f04 .\" Author: Christoph Paasch .\" .\" TCP_THIN_LINEAR_TIMEOUTS (2.6.34) .\" commit 36e31b0af58728071e8023cf8e20c5166b700717 .\" Author: Andreas Petlund .\" .\" TCP_THIN_DUPACK (2.6.34) .\" commit 7e38017557bc0b87434d184f8804cadb102bb903 .\" Author: Andreas Petlund .\" .\" TCP_REPAIR (3.5) .\" commit ee9952831cfd0bbe834f4a26489d7dce74582e37 .\" Author: Pavel Emelyanov .\" See also .\" http://criu.org/TCP_connection .\" https://lwn.net/Articles/495304/ .\" .\" TCP_REPAIR_QUEUE (3.5) .\" commit ee9952831cfd0bbe834f4a26489d7dce74582e37 .\" Author: Pavel Emelyanov .\" .\" TCP_QUEUE_SEQ (3.5) .\" commit ee9952831cfd0bbe834f4a26489d7dce74582e37 .\" Author: Pavel Emelyanov .\" .\" TCP_REPAIR_OPTIONS (3.5) .\" commit b139ba4e90dccbf4cd4efb112af96a5c9e0b098c .\" Author: Pavel Emelyanov .\" .\" TCP_FASTOPEN (3.6) .\" (Fast Open server side implementation completed in Linux 3.7) .\" http://lwn.net/Articles/508865/ .\" .\" TCP_TIMESTAMP (3.9) .\" commit 93be6ce0e91b6a94783e012b1857a347a5e6e9f2 .\" Author: Andrey Vagin .\" .\" TCP_NOTSENT_LOWAT (3.12) .\" commit c9bee3b7fdecb0c1d070c7b54113b3bdfb9a3d36 .\" Author: Eric Dumazet .\" .\" TCP_CC_INFO (4.1) .\" commit 6e9250f59ef9efb932c84850cd221f22c2a03c4a .\" Author: Eric Dumazet .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH tcp 7 "19 أبريل 2026" "صفحات دليل لينكس 6.18" .SH الاسم tcp \- بروتوكول TCP .SH موجز .nf \fB#include \fP \fB#include \fP \fB#include \fP .P \fItcp_socket\fP\fB = socket(AF_INET, SOCK_STREAM, 0);\fP .fi .SH الوصف هذا تنفيذ لبروتوكول TCP المحدد في RFC\ 793 وRFC\ 1122 وRFC\ 2001 مع امتدادات NewReno وSACK. يوفر اتصالًا موثوقًا، موجّهًا بالتدفق، وكامل الازدواج بين مقبسين فوق \fBip\fP(7)، لكلا الإصدارين v4 وv6. يضمن بروتوكول TCP وصول البيانات بالترتيب ويعيد إرسال الحزم المفقودة. كما يولّد ويتحقق من مجموع التحقق (checksum) لكل حزمة لاكتشاف أخطاء الإرسال. لا يحافظ بروتوكول TCP على حدود السجلات. .P لا يملك مقبس TCP المُنشأ حديثًا أي عنوان بعيد أو محلي ولا يكون محددًا بالكامل. لإنشاء اتصال TCP صادر، استخدِم \fBconnect\fP(2) لإنشاء اتصال بمقبس TCP آخر. لاستقبال اتصالات واردة جديدة، اربط المقبس أولاً \fBbind\fP(2) بعنوان ومنفذ محليين ثم استدعِ \fBlisten\fP(2) لوضع المقبس في حالة الإنصات. بعد ذلك، يمكن قبول مقبس جديد لكل اتصال وارد باستخدام \fBaccept\fP(2). يكون المقبس الذي استُدعي عليه \fBaccept\fP(2) أو \fBconnect\fP(2) بنجاح محددًا بالكامل ويمكنه نقل البيانات. لا يمكن نقل البيانات عبر مقابس الإنصات أو المقابس التي لم تُوصَل بعد. .P يدعم لينكس امتدادات الأداء العالي لبروتوكول TCP وفق RFC\ 1323. وتشمل هذه الحماية ضد أرقام التسلسل الملفوفة (PAWS)، وتحجيم النافذة، والطوابع الزمنية. يتيح تحجيم النافذة استخدام نوافذ TCP كبيرة (> 64\ كيلوبايت) لدعم الارتباطات ذات التأخير العالي أو عرض النطاق الترددي الواسع. وللاستفادة منها، يجب زيادة أحجام خبيئة الإرسال والاستقبال. يمكن ضبطها عالميًا من خلال ملفات \fI/proc/sys/net/ipv4/tcp_wmem\fP و\fI/proc/sys/net/ipv4/tcp_rmem\fP، أو على المقابس الفردية باستخدام خيارات المقبس \fBSO_SNDBUF\fP و\fBSO_RCVBUF\fP مع استدعاء \fBsetsockopt\fP(2). .P تُحَدَّد الأحجام القصوى لخبايئ المقابس المصرح عنها عبر آليتي \fBSO_SNDBUF\fP و\fBSO_RCVBUF\fP بالقيم الموجودة في ملفات \fI/proc/sys/net/core/rmem_max\fP و\fI/proc/sys/net/core/wmem_max\fP. لاحظ أن TCP يخصص فعليًا ضعف حجم الخبيئة المطلوب في استدعاء \fBsetsockopt\fP(2)، وبالتالي فإن استدعاء \fBgetsockopt\fP(2) اللاحق لن يعيد نفس حجم الخبيئة المطلوب في استدعاء \fBsetsockopt\fP(2). يستخدم TCP المساحة الإضافية لأغراض إدارية وهياكل النواة الداخلية، وتعكس قيم ملفات \fI/proc\fP الأحجام الأكبر مقارنة بنوافذ TCP الفعلية. في الاتصالات الفردية، يجب ضبط حجم خبيئة المقبس قبل استدعاءات \fBlisten\fP(2) أو \fBconnect\fP(2) ليدخل حيز التنفيذ. انظر \fBsocket\fP(7) لمزيد من المعلومات. .P يدعم بروتوكول TCP البيانات العاجلة. تُستخدَم البيانات العاجلة لتنبيه المستلم بأن رسالة مهمة جزء من تدفق البيانات وأنه ينبغي معالجتها في أسرع وقت ممكن. لإرسال بيانات عاجلة، حدد الخيار \fBMSG_OOB\fP لـ \fBsend\fP(2). عند استقبال بيانات عاجلة، ترسل النواة إشارة \fBSIGURG\fP إلى العملية أو مجموعة العمليات التي ضُبِطت كـ "مالك" للمقبس باستخدام ioctls \fBSIOCSPGRP\fP أو \fBFIOSETOWN\fP (أو عملية \fBfcntl\fP(2) \fBF_SETOWN\fP المحددة في POSIX.1). عندما يكون خيار المقبس \fBSO_OOBINLINE\fP مفعلاً، تُوضَع البيانات العاجلة في تدفق البيانات العادي (يمكن للبرنامج اختبار موقعها باستخدام ioctl \fBSIOCATMARK\fP الموصوف أدناه)، وإلا فلا يمكن استقبالها إلا عند ضبط علم \fBMSG_OOB\fP لـ \fBrecv\fP(2) أو \fBrecvmsg\fP(2). .P عند وجود بيانات خارج النطاق، يشير \fBselect\fP(2) إلى أن واصف الملف لديه حالة استثنائية ويشير \fIpoll (2)\fP إلى حدث \fBPOLLPRI\fP. .P قدّم لينكس 2.4 عددًا من التغييرات لتحسين معدل النقل والتحجيم، بالإضافة إلى وظائف محسنة. تتضمن بعض هذه الميزات دعم النسخ الصفري \fBsendfile\fP(2)، وإشعار الازدحام الصريح، وإدارة جديدة لمقابس TIME_WAIT، وخيارات إبقاء المقبس حيًا ودعم امتدادات SACK المكررة. .SS "تنسيقات العناوين" بُني TCP فوق بروتوكول IP (انظر \fBip\fP(7)). تنطبق تنسيقات العناوين المحددة في \fBip\fP(7) على TCP. يدعم TCP الاتصال من نقطة لنقطة فقط؛ والبث العام (broadcasting) والبث المتعدد (multicasting) غير مدعومين. .SS "واجهات /proc" يمكن الوصول إلى إعدادات معاملات TCP على مستوى النظام عبر الملفات الموجودة في الدليل \fI/proc/sys/net/ipv4/\fP. بالإضافة إلى ذلك، تنطبق معظم واجهات \fI/proc\fP الخاصة بـ IP على TCP أيضًا؛ انظر \fBip\fP(7). تأخذ المتغيرات الموصوفة كـ \fIBoolean\fP قيمة عددية صحيحة، حيث تعني القيمة غير الصفرية ("true") أن الخيار المقابل مفعّل، والقيمة صفر ("false") تعني أن الخيار معطّل. .TP \fItcp_abc\fP (عدد صحيح؛ المبدئي: 0؛ لينكس 2.6.15 إلى لينكس 3.8) .\" Since Linux 2.6.15; removed in Linux 3.9 .\" commit ca2eb5679f8ddffff60156af42595df44a315ef0 التحكم في عدد البايتات المناسب (ABC)، المحدد في RFC 3465. ABC هي طريقة لزيادة نافذة الازدحام (\fIcwnd\fP) بشكل أبطأ استجابةً للإقرارات الجزئية. القيم الممكنة هي: .RS .TP \fB0\fP زيادة \fIcwnd\fP مرة واحدة لكل إقرار (لا يوجد ABC) .TP \fB1\fP زيادة \fIcwnd\fP مرة واحدة لكل إقرار لقطعة كاملة الحجم .TP \fB2\fP السماح بزيادة \fIcwnd\fP بمقدار اثنين إذا كان الإقرار لقطعتين للتعويض عن الإقرارات المتأخرة. .RE .TP \fItcp_abort_on_overflow\fP (Boolean؛ المبدئي: معطل؛ منذ لينكس 2.4) .\" Since Linux 2.3.41 تفعيل إعادة تعيين الاتصالات إذا كانت خدمة الإنصات بطيئة جدًا وغير قادرة على المواكبة وقبولها. وهذا يعني أنه في حالة حدوث تجاوز (overflow) بسبب انفجار في الطلبات، فسيسترد الاتصال عافيته. فعّل هذا الخيار \fIفقط\fP إذا كنت متأكدًا حقًا من أنه لا يمكن ضبط عفريت الإنصات لقبول الاتصالات بشكل أسرع. تفعيل هذا الخيار يمكن أن يضر بعملاء خادومك. .TP \fItcp_adv_win_scale\fP (عدد صحيح؛ المبدئي: 2؛ منذ لينكس 2.4) .\" Since Linux 2.4.0-test7 حساب النفقات العامة للتخزين المؤقت كـ \fIبايتات/2\[ha]tcp_adv_win_scale\fP، إذا كان \fItcp_adv_win_scale\fP أكبر من 0؛ أو \fIبايتات\-بايتات/2\[ha](\-tcp_adv_win_scale)\fP، إذا كان \fItcp_adv_win_scale\fP أقل من أو يساوي صفر. .IP مساحة خبيئة استقبال المقبس مشتركة بين التطبيق والنواة. يحتفظ TCP بجزء من الخبيئة كنافذة TCP، وهذا هو حجم نافذة الاستقبال المُعلن عنها للطرف الآخر. تُستخدم بقية المساحة كخبيئة "التطبيق"، وتُستخدم لعزل الشبكة عن تأخيرات الجدولة والتطبيق. القيمة المبدئية لـ \fItcp_adv_win_scale\fP وهي 2 تعني أن المساحة المستخدمة لخبيئة التطبيق هي ربع المساحة الإجمالية. .TP \fItcp_allowed_congestion_control\fP (سلسلة؛ المبدئي: انظر النص؛ منذ لينكس 2.4.20) عرض/ضبط اختيارات خوارزمية التحكم في الازدحام المتاحة للعمليات غير المتميزة (انظر وصف خيار المقبس \fBTCP_CONGESTION\fP). تُفصل العناصر في القائمة بمسافات بيضاء وتنتهي بحرف سطر جديد. القائمة هي مجموعة فرعية من تلك المدرجة في \fItcp_available_congestion_control\fP. القيمة المبدئية لهذه القائمة هي "reno" بالإضافة إلى الإعداد المبدئي لـ \fItcp_congestion_control\fP. .TP \fItcp_autocorking\fP (Boolean؛ المبدئي: مفعّل؛ منذ لينكس 3.14) .\" commit f54b311142a92ea2e42598e347b84e1655caf8e3 .\" Text heavily based on Documentation/networking/ip-sysctl.rst إذا فُعّل هذا الخيار، تحاول النواة دمج الكتابات الصغيرة (من استدعاءات \fBwrite\fP(2) و\fBsendmsg\fP(2) المتتالية) قدر الإمكان، لتقليل العدد الإجمالي للحزم المرسلة. يتم الدمج إذا كانت هناك حزمة سابقة واحدة على الأقل للتدفق تنتظر في طوابير Qdisc أو طابور إرسال الجهاز. لا يزال بإمكان التطبيقات استخدام خيار المقبس \fBTCP_CORK\fP للحصول على سلوك مثالي عندما تعرف كيف/متى تفتح سدادة مقابسها. .TP \fItcp_available_congestion_control\fP (سلسلة؛ للقراءة فقط؛ منذ لينكس 2.4.20) عرض قائمة بخوارزميات التحكم في الازدحام المسجلة. تُفصل العناصر في القائمة بمسافات بيضاء وتنتهي بحرف سطر جديد. تعد هذه القائمة مجموعة مقيدة للقائمة في \fItcp_allowed_congestion_control\fP. قد تتوفر المزيد من خوارزميات التحكم في الازدحام كوحدات (modules)، ولكنها غير مُحمّلة. .TP \fItcp_app_win\fP (عدد صحيح؛ المبدئي: 31؛ منذ لينكس 2.4) .\" Since Linux 2.4.0-test7 يحدد هذا المتغير عدد البايتات من نافذة TCP المحجوزة للنفقات العامة للتخزين المؤقت. .IP .\" يُحجز بحد أقصى (\fIwindow/2\[ha]tcp_app_win\fP, mss) بايت في النافذة لخبيئة التطبيق. تعني القيمة 0 عدم حجز أي مقدار. .TP \fItcp_base_mss\fP (عدد صحيح؛ المبدئي: 512؛ منذ لينكس 2.6.17) .\" القيمة الأولية لـ \fIsearch_low\fP التي ستستخدمها طبقة تحزيم البيانات لاكتشاف Path MTU (سبر MTU). إذا فُعّل سبر MTU، فهذا هو MSS الأولي الذي يستخدمه الاتصال. .TP \fItcp_bic\fP (Boolean؛ المبدئي: معطل؛ لينكس 2.4.27/2.6.6 إلى لينكس 2.6.13) .\" تفعيل خوارزمية التحكم في ازدحام BIC TCP. يُعد BIC\-TCP تغييرًا في جانب المرسل فقط يضمن عدالة RTT خطية تحت النوافذ الكبيرة مع توفير كل من قابلية التوسع ومودة TCP المحدودة. يجمع البروتوكول بين مخططين يسمى أحدهما الزيادة المضافة والآخر زيادة البحث الثنائي. عندما تكون نافذة الازدحام كبيرة، تضمن الزيادة المضافة بزيادة كبيرة عدالة RTT الخطية بالإضافة إلى قابلية التوسع الجيدة. في ظل نوافذ الازدحام الصغيرة، يوفر البحث الثنائي زيادة في مودة TCP. .TP \fItcp_bic_low_window\fP (عدد صحيح؛ المبدئي: 14؛ لينكس 2.4.27/2.6.6 إلى لينكس 2.6.13) .\" ضبط نافذة العتبة (بالحزم) حيث يبدأ BIC TCP في ضبط نافذة الازدحام. تحت هذه العتبة، يتصرف BIC TCP بنفس طريقة TCP Reno المبدئي. .TP \fItcp_bic_fast_convergence\fP (Boolean؛ المبدئي: مفعّل؛ لينكس 2.4.27/2.6.6 إلى لينكس 2.6.13) إجبار BIC TCP على الاستجابة بسرعة أكبر للتغيرات في نافذة الازدحام. يسمح لتدفقين يشتركان في نفس الاتصال بالتقارب بسرعة أكبر. .TP \fItcp_congestion_control\fP (سلسلة؛ المبدئي: انظر النص؛ منذ لينكس 2.4.13) اضبط خوارزمية التحكم في الازدحام المبدئية التي ستُستخدم للاتصالات الجديدة. خوارزمية "reno" متاحة دائمًا، ولكن قد تتوفر خيارات إضافية اعتمادًا على ضبط النواة. تُعيّن القيمة المبدئية لهذا الملف كجزء من ضبط النواة. .TP \fItcp_dma_copybreak\fP (عدد صحيح؛ مبدئي: 4096؛ منذ لينكس 2.6.24) الحد الأدنى، بالبايت، لحجم قراءات المقبس التي ستُرحّل إلى محرك نسخ DMA، إذا كان موجودًا في النظام وضُبطت النواة مع خيار \fBCONFIG_NET_DMA\fP. .TP \fItcp_dsack\fP (Boolean؛ المبدئي: مفعّل؛ منذ لينكس 2.4) .\" Since Linux 2.4.0-test7 تفعيل دعم TCP Duplicate SACK وفق RFC\ 2883. .TP \fItcp_fastopen\fP (قناع بتات؛ مبدئي: 0x1؛ منذ لينكس 3.7) Enables RFC\ 7413 Fast Open support. The flag is used as a bitmap with the following values: .RS .TP \fB0x1\fP يفعّل دعم Fast Open من جانب العميل .TP \fB0x2\fP يفعّل دعم Fast Open من جانب الخادم .TP \fB0x4\fP يسمح لجانب العميل بإرسال البيانات في SYN بدون خيار Fast Open .TP \fB0x200\fP يسمح لجانب الخادم بقبول بيانات SYN بدون خيار Fast Open .TP \fB0x400\fP يفعّل Fast Open على جميع المستمعين بدون خيار مقبس \fBTCP_FASTOPEN\fP .RE .TP \fItcp_fastopen_key\fP (منذ لينكس 3.7) Set server side RFC\ 7413 Fast Open key to generate Fast Open cookie when server side Fast Open support is enabled. .TP \fItcp_ecn\fP (عدد صحيح؛ المبدئي: انظر أدناه؛ منذ لينكس 2.4) .\" Since Linux 2.4.0-test7 يفعّل RFC\ 3168 للإشعار الصريح بالازدحام (ECN). .IP يمكن أن يحتوي هذا الملف على إحدى القيم التالية: .RS .TP \fB0\fP يعطل ECN. لا يشرع في ECN ولا يقبله. كان هذا هو المبدئي حتى الإصدار 2.6.30 من لينكس. .TP \fB1\fP فعّل ECN عندما تطلبه الاتصالات الواردة واطلب أيضاً ECN في محاولات الاتصال الصادرة. .TP \fB2\fP .\" commit 255cac91c3c9ce7dca7713b93ab03c75b7902e0e يفعّل ECN عند طلبه بواسطة الاتصالات الواردة، ولكنه لا يطلب ECN في الاتصالات الصادرة. هذه القيمة مدعومة، وهي المبدئية، منذ لينكس 2.6.31. .RE .IP عند التفعيل، قد تتأثر الاتصال ببعض الوجهات بسبب أجهزة وسيطة قديمة وسيئة التصرف على طول المسار، مما يسبب قطع الاتصالات. ومع ذلك، لتسهيل وتشجيع النشر مع الخيار 1، وللالتفاف على مثل هذه المعدات المعطوبة، أُضيف خيار \fBtcp_ecn_fallback\fP. .TP \fItcp_ecn_fallback\fP (منطقي؛ مبدئي: مفعّل؛ منذ لينكس 4.1) .\" commit 492135557dc090a1abb2cfbe1a412757e3ed68ab يفعّل تراجع RFC\ 3168، القسم 6.1.1.1. عند تفعيله، فإن رسائل SYN الصادرة لإعداد ECN التي تنتهي مهلتها ضمن مهلة إعادة إرسال SYN العادية سيُعاد إرسالها مع مسح CWR وECE. .TP \fItcp_fack\fP (منطقي؛ مبدئي: مفعّل؛ منذ لينكس 2.2) .\" Since Linux 2.1.92 تفعيل دعم إقرار التمرير لـ TCP. .TP \fItcp_fin_timeout\fP (عدد صحيح؛ المبدئي: 60؛ منذ لينكس 2.2) .\" Since Linux 2.1.53 .\" يحدد هذا عدد الثواني لانتظار حزمة FIN النهائية قبل إغلاق المقبس قسراً. يعد هذا انتهاكاً صارماً لمواصفات TCP، ولكنه مطلوب لمنع هجمات حجب الخدمة. في لينكس 2.2، كانت القيمة المبدئية 180. .TP \fItcp_frto\fP (عدد صحيح؛ مبدئي: انظر أدناه؛ منذ لينكس 2.4.21/2.6) .\" Since Linux 2.4.21/2.5.43 يفعّل F\-RTO، وهو خوارزمية استرداد محسنة لمهلات إعادة إرسال TCP (RTOs). وهي مفيدة بشكل خاص في البيئات اللاسلكية حيث يكون فقدان الحزم عادةً بسبب تداخل راديوي عشوائي بدلاً من ازدحام الموجهات الوسيطة. انظر RFC 4138 لمزيد من التفاصيل. .IP يمكن أن يحتوي هذا الملف على إحدى القيم التالية: .RS .TP \fB0\fP معطل. كان هذا هو المبدئي حتى الإصدار 2.6.23 من لينكس. .TP \fB1\fP نُسخة خوارزمية F\-RTO الأساسية مفعّلة. .TP \fB2\fP .\" commit c96fd3d461fa495400df24be3b3b66f0e0b152f9 يفعّل F\-RTO المحسن بـ SACK إذا كان التدفق يستخدم SACK. يمكن استخدام النسخة الأساسية أيضًا عند استخدام SACK، على الرغم من وجود سيناريوهات في هذه الحالة يتفاعل فيها F\-RTO بشكل سيء مع عد الحزم لتدفق TCP المفعّل بـ SACK. هذه القيمة هي المبدئية منذ لينكس 2.6.24. .RE .IP قبل لينكس 2.6.22، كان هذا المعامل قيمة منطقية، يدعم فقط القيمتين 0 و1 أعلاه. .TP \fItcp_frto_response\fP (عدد صحيح؛ مبدئي: 0؛ منذ لينكس 2.6.22) عندما يكتشف F\-RTO أن مهلة إعادة إرسال TCP كانت زائفة (أي أنه كان يمكن تجنب المهلة لو ضبط TCP مهلة إعادة إرسال أطول)، فإن لدى TCP عدة خيارات بشأن ما يجب فعله بعد ذلك. القيم الممكنة هي: .RS .TP \fB0\fP قائم على تنصيف المعدل؛ استجابة سلسة ومحافظة، تؤدي إلى تنصيف نافذة الازدحام (\fIcwnd\fP) وعتبة البداية البطيئة (\fIssthresh\fP) بعد زمن انتقال ذهاب وإياب (RTT) واحد. .TP \fB1\fP استجابة محافظة للغاية؛ لا يُنصح بها لأنها، رغم كونها صالحة، تتفاعل بشكل سيء مع بقية أجزاء TCP في لينكس؛ تنصّف \fIcwnd\fP و \fIssthresh\fP فورًا. .TP \fB2\fP استجابة هجومية؛ تُلغي تدابير التحكم في الازدحام التي عُرف الآن أنها غير ضرورية (مع تجاهل إمكانية فقدان إعادة إرسال تتطلب أن يكون TCP أكثر حذرًا)؛ تُستعاد \fIcwnd\fP و \fIssthresh\fP إلى القيم التي كانت عليها قبل المهلة. .RE .TP \fItcp_keepalive_intvl\fP (عدد صحيح؛ المبدئي: 75؛ منذ لينكس 2.4) .\" Since Linux 2.3.18 عدد الثواني بين فحوصات keep\-alive لـ TCP. .TP \fItcp_keepalive_probes\fP (عدد صحيح؛ المبدئي: 9؛ منذ لينكس 2.2) .\" Since Linux 2.1.43 العدد الأقصى لفحوصات keep\-alive لـ TCP التي تُرسل قبل الاستسلام وإنهاء الاتصال إذا لم يُستلم رد من الطرف الآخر. .TP \fItcp_keepalive_time\fP (عدد صحيح؛ المبدئي: 7200؛ منذ لينكس 2.2) .\" Since Linux 2.1.43 عدد الثواني التي يحتاجها الاتصال ليكون خاملاً قبل أن يبدأ TCP في إرسال مجسات إبقاء الاتصال حيًا (keep\-alive). تُرسل هذه المجسات فقط عند تفعيل خيار المقبس \fBSO_KEEPALIVE\fP. القيمة المبدئية هي 7200 ثانية (ساعتان). يُنهى الاتصال الخامل بعد حوالي 11 دقيقة إضافية (9 مجسات بفاصل زمني 75 ثانية) عند تفعيل إبقاء الاتصال حيًا. .IP .\" لاحظ أن آليات تتبع الاتصال الأساسية ومهلات التطبيقات قد تكون أقصر بكثير. .TP \fItcp_low_latency\fP (منطقي؛ مبدئي: معطل؛ منذ لينكس 2.4.21/2.6؛ مهمل منذ لينكس 4.14) .\" Since Linux 2.4.21/2.5.60 .\" commit b6690b14386698ce2c19309abad3f17656bdfaea إذا فُعّل، تتخذ حزمة TCP قرارات تفضل زمن انتقال أقل بدلاً من إنتاجية أعلى. وإذا عُطّل هذا الخيار، تُفضّل الإنتاجية الأعلى. أحد الأمثلة على التطبيقات التي يجب فيها تغيير هذا المبدئي هو عنقود حوسبة بيوولف. منذ لينكس 4.14، لا يزال هذا الملف موجودًا، ولكن قيمته تُتجاهل. .TP \fItcp_max_orphans\fP (عدد صحيح؛ المبدئي: انظر أدناه؛ منذ لينكس 2.4) .\" Since Linux 2.3.41 الحد الأقصى لعدد مقابس TCP اليتيمة (غير الملحقة بأي واصف ملف مستخدم) المسموح بها في النظام. عندما يُتجاوز هذا العدد، يُصفّر الاتصال اليتيم ويُطبع تحذير. يوجد هذا الحد فقط لمنع هجمات حجب الخدمة البسيطة. لا يُنصح بخفض هذا الحد. قد تتطلب ظروف الشبكة زيادة عدد الأيتام المسموح بهم، ولكن لاحظ أن كل يتيم يمكن أن يستهلك ما يصل إلى \[ti]64\ كيلوبايت من الذاكرة غير القابلة للتبديل. تُضبط القيمة المبدئية الأولية لتساوي معامل النواة NR_FILE. يُعدّل هذا المبدئي الأولي اعتمادًا على الذاكرة في النظام. .TP \fItcp_max_syn_backlog\fP (عدد صحيح؛ المبدئي: انظر أدناه؛ منذ لينكس 2.2) .\" Since Linux 2.1.53 أقصى عدد لطلبات الاتصال في الطابور التي لم تتلقَ بعد إشعارًا بالاستلام من العميل المتصل. إذا تُجاوز هذا العدد، ستبدأ النواة في إسقاط الطلبات. تُزاد القيمة المبدئية البالغة 256 إلى 1024 عندما تكون الذاكرة الموجودة في النظام كافية أو أكبر (>= 128\ ميجابايت)، وتُخفض إلى 128 للأنظمة ذات الذاكرة المنخفضة جدًا (<= 32\ ميجابايت). .IP .\" commit 72a3effaf633bcae9034b7e176bdbd78d64a71db قبل لينكس 2.6.20، كان يُوصى بأنه إذا لزم زيادة هذا فوق 1024، فيجب تعديل حجم جدول هاش SYNACK المسمى (\fBTCP_SYNQ_HSIZE\fP) في \fIinclude/net/tcp.h\fP للحفاظ على .IP .in +4n .EX TCP_SYNQ_HSIZE * 16 <= tcp_max_syn_backlog .EE .in .IP وإعادة بناء النواة. في لينكس 2.6.20، أُزيل \fBTCP_SYNQ_HSIZE\fP ذو الحجم الثابت لصالح التحجيم الديناميكي. .TP \fItcp_max_tw_buckets\fP (عدد صحيح؛ المبدئي: انظر أدناه؛ منذ لينكس 2.4) .\" Since Linux 2.3.41 الحد الأقصى لعدد المقابس في حالة TIME_WAIT المسموح بها في النظام. يوجد هذا الحد فقط لمنع هجمات حجب الخدمة البسيطة. تُعدّل القيمة المبدئية البالغة NR_FILE*2 اعتمادًا على الذاكرة في النظام. إذا تُجاوز هذا العدد، يُغلق المقبس ويُطبع تحذير. .TP \fItcp_moderate_rcvbuf\fP (Boolean؛ المبدئي: مفعّل؛ منذ لينكس 2.4.17/2.6.7) إذا فُعّل، يقوم TCP بالضبط الآلي لدرء الاستقبال، محاولاً تحديد حجم الدرء آليًا (بما لا يتجاوز \fItcp_rmem[2]\fP) ليتناسب مع الحجم المطلوب بواسطة المسار للحصول على كامل الإنتاجية. .TP \fItcp_mem\fP (منذ لينكس 2.4) .\" Since Linux 2.4.0-test7 هذا متجه من 3 أعداد صحيحة: [low، pressure، high]. تُستخدم هذه الحدود، المقاسة بوحدات حجم صفحة النظام، بواسطة TCP لتتبع استخدامه للذاكرة. تُحسب القيم المبدئية عند وقت الإقلاع من كمية الذاكرة المتاحة. (لا يمكن لـ TCP سوى استخدام \fIlow memory\fP لهذا الغرض، وهو محدود بحوالي 900 ميجابايت في أنظمة 32\-بت. أنظمة 64\-بت لا تعاني من هذا القيد). .RS .TP \fIlow\fP لا ينظم TCP تخصيصه للذاكرة عندما يكون عدد الصفحات التي خصصها عالميًا أقل من هذا الرقم. .TP \fIpressure\fP عندما تتجاوز كمية الذاكرة التي خصصها بروتوكول TCP عدد الصفحات هذا، يلطف البروتوكول استهلاكه للذاكرة. وتُغادر حالة ضغط الذاكرة هذه بمجرد انخفاض عدد الصفحات المخصصة عن علامة \fIlow\fP. .TP \fIhigh\fP الحد الأقصى لعدد الصفحات، عالميًا، التي سيخصصها بروتوكول TCP. تتخطى هذه القيمة أي قيود أخرى تفرضها النواة. .RE .TP \fItcp_mtu_probing\fP (عدد صحيح؛ مبدئي: 0؛ منذ لينكس 2.6.17) يتحكم هذا المعامل في اكتشاف MTU للمسار في طبقة تجزئة الحزم (Packetization\-Layer Path MTU Discovery) لبروتوكول TCP. يمكن إسناد القيم التالية للملف: .RS .TP \fB0\fP معطل .TP \fB1\fP معطل مبدئيًا، ويُفعل عند اكتشاف ثقب أسود لبروتوكول ICMP .TP \fB2\fP مفعل دائمًا، ويستخدم MSS الأولي لـ \fItcp_base_mss\fP. .RE .TP \fItcp_no_metrics_save\fP (منطقي؛ مبدئي: معطل؛ منذ لينكس 2.6.6) مبدئيًا، يحفظ TCP مقاييس اتصال متنوعة في خبيئة المسار عند إغلاق الاتصال، حتى تتمكن الاتصالات التي تُنشأ في المستقبل القريب من استخدامها لضبط الظروف الأولية. عادةً ما يؤدي هذا لزيادة الأداء العام، ولكنه قد يسبب أحيانًا تدهورًا في الأداء. إذا فُعل \fItcp_no_metrics_save\fP، فلن يخبئ TCP المقاييس عند إغلاق الاتصالات. .TP \fItcp_orphan_retries\fP (عدد صحيح؛ مبدئي: 8؛ منذ لينكس 2.4) .\" Since Linux 2.3.41 الحد الأقصى لعدد المحاولات المبذولة لسبر الطرف الآخر من اتصال أُغلق من طرفنا. .TP \fItcp_reordering\fP (عدد صحيح؛ مبدئي: 3؛ منذ لينكس 2.4) .\" Since Linux 2.4.0-test7 الحد الأقصى الذي يمكن فيه إعادة ترتيب حزمة في دفق حزم TCP دون أن يفترض البروتوكول فقدان الحزمة والدخول في البداية البطيئة. لا يُنصح بتغيير هذا الرقم. هذا مقياس لاكتشاف إعادة ترتيب الحزم صُمم لتقليل عمليات التراجع وإعادة الإرسال غير الضرورية الناتجة عن إعادة ترتيب الحزم في الاتصال. .TP \fItcp_retrans_collapse\fP (منطقي؛ مبدئي: مفعل؛ منذ لينكس 2.2) .\" Since Linux 2.1.96 حاول إرسال حزم كاملة الحجم أثناء إعادة الإرسال. .TP \fItcp_retries1\fP (عدد صحيح؛ مبدئي: 3؛ منذ لينكس 2.2) .\" Since Linux 2.1.43 عدد المرات التي سيحاول فيها TCP إعادة إرسال حزمة على اتصال قائم بشكل طبيعي، دون الجهد الإضافي المتمثل في إشراك طبقات الشبكة. بمجرد تجاوز عدد عمليات إعادة الإرسال هذا، نطلب أولاً من طبقة الشبكة تحديث المسار إن أمكن قبل كل عملية إعادة إرسال جديدة. القيمة المبدئية هي الحد الأدنى المحدد في RFC وهو 3. .TP \fItcp_retries2\fP (عدد صحيح؛ مبدئي: 15؛ منذ لينكس 2.2) .\" Since Linux 2.1.43 الحد الأقصى لعدد مرات إعادة إرسال حزمة TCP في الحالة القائمة قبل الاستسلام. القيمة المبدئية هي 15، وهي تقابل مدة تتراوح تقريبًا بين 13 إلى 30 دقيقة، اعتمادًا على مهلة إعادة الإرسال. يُعتبر الحد الأدنى المحدد في RFC\ 1122 وهو 100 ثانية قصيرًا جدًا عادةً. .TP \fItcp_rfc1337\fP (منطقي؛ مبدئي: معطل؛ منذ لينكس 2.2) .\" Since Linux 2.1.90 تفعيل سلوك TCP المتوافق مع RFC\ 1337. عند تعطيله، إذا استُلمت حزمة RST في حالة TIME_WAIT، نغلق المقبس فورًا دون انتظار نهاية فترة TIME_WAIT. .TP \fItcp_rmem\fP (منذ لينكس 2.4) .\" Since Linux 2.4.0-test7 هذا متجه من 3 أعداد صحيحة: [min, default, max]. يستخدم TCP هذه المعاملات لتنظيم أحجام مخازن الاستقبال المؤقتة. يضبط TCP حجم مخزن الاستقبال المؤقت ديناميكيًا من القيم المبدئية المدرجة أدناه، ضمن نطاق هذه القيم، بناءً على الذاكرة المتاحة في النظام. .RS .TP \fImin\fP الحد الأدنى لحجم مخزن الاستقبال المؤقت الذي يستخدمه كل مقبس TCP. القيمة المبدئية هي حجم صفحة النظام. (في لينكس 2.4، القيمة المبدئية هي 4\ ك.بايت، وخُفضت إلى \fBPAGE_SIZE\fP بايت في الأنظمة ذات الذاكرة المنخفضة). تُستخدم هذه القيمة لضمان نجاح عمليات التخصيص التي تقل عن هذا الحجم في وضع ضغط الذاكرة. لا تُستخدم هذه القيمة لتقييد حجم مخزن الاستقبال المؤقت المعلن عنه باستخدام \fBSO_RCVBUF\fP على مقبس. .TP \fIdefault\fP الحجم المبدئي لمخزن الاستقبال المؤقت لمقبس TCP. تتخطى هذه القيمة حجم المخزن المبدئي الأولي من \fInet.core.rmem_default\fP العالمي العام المعرف لكل البروتوكولات. القيمة المبدئية هي 87380 بايت. (في لينكس 2.4، ستُخفض إلى 43689 في الأنظمة ذات الذاكرة المنخفضة). إذا كانت هناك رغبة في أحجام أكبر لمخازن الاستقبال، فيجب زيادة هذه القيمة (ليؤثر ذلك على جميع المقابس). لاستخدام نوافذ TCP كبيرة، يجب تفعيل \fInet.ipv4.tcp_window_scaling\fP (مبدئي). .TP \fImax\fP الحد الأقصى لحجم مخزن الاستقبال المؤقت الذي يستخدمه كل مقبس TCP. لا تتخطى هذه القيمة \fInet.core.rmem_max\fP العالمي. لا تُستخدم لتقييد حجم مخزن الاستقبال المؤقت المعلن عنه باستخدام \fBSO_RCVBUF\fP على مقبس. تُحسب القيمة المبدئية باستخدام الصيغة .IP .in +4n .EX max(87380, min(4\ MB, \fItcp_mem\fP[1]*PAGE_SIZE/128)) .EE .in .IP (في لينكس 2.4، القيمة المبدئية هي 87380*2 بايت، وخُفضت إلى 87380 في أنظمة الذاكرة المنخفضة). .RE .TP \fItcp_sack\fP (منطقي؛ مبدئي: مفعل؛ منذ لينكس 2.2) .\" Since Linux 2.1.36 تفعيل إقرارات الاستلام الاختيارية لـ TCP وفق RFC\ 2018. .TP \fItcp_slow_start_after_idle\fP (Boolean؛ المبدئي: مفعّل؛ منذ لينكس 2.6.18) إذا فُعّل، سيوفر سلوك RFC 2861 وينهي مهلة نافذة الازدحام بعد فترة خمول. تُعرف فترة الخمول بأنها RTO (مهلة إعادة الإرسال) الحالية. إذا عُطّل، فلن تنتهي مهلة نافذة الازدحام بعد فترة خمول. .TP \fItcp_stdurg\fP (Boolean؛ المبدئي: معطل؛ منذ لينكس 2.2) .\" Since Linux 2.1.44 .\" RFC 793 was ambiguous in its specification of the meaning of the .\" urgent pointer. RFC 1122 (and RFC 961) fixed on a particular .\" resolution of this ambiguity (unfortunately the "wrong" one). إذا فُعّل هذا الخيار، سيُستخدم تفسير RFC\ 1122 لحقل مؤشر الاستعجال في TCP. وفقًا لهذا التفسير، يشير مؤشر الاستعجال إلى البايت الأخير من البيانات العاجلة. أما إذا عُطّل هذا الخيار، فسيُستخدم التفسير المتوافق مع BSD لمؤشر الاستعجال: حيث يشير مؤشر الاستعجال إلى البايت الأول بعد البيانات العاجلة. قد يؤدي تفعيل هذا الخيار إلى مشاكل في التوافقية التشغيلية. .TP \fItcp_syn_retries\fP (عدد صحيح؛ المبدئي: 6؛ منذ لينكس 2.2) .\" Since Linux 2.1.38 .\" commit 6c9ff979d1921e9fd05d89e1383121c2503759b9 أقصى عدد لمرات إعادة إرسال رسائل SYN الأولية لمحاولة اتصال TCP نشط. يجب ألا تزيد هذه القيمة عن 255. القيمة المبدئية هي 6، مما يتوافق مع إعادة المحاولة لمدة تصل إلى 127 ثانية تقريبًا. قبل لينكس 3.7، كانت القيمة المبدئية 5، والتي كانت (بالاشتراك مع الحسابات المستندة إلى معاملات النواة الأخرى) تتوافق مع 180 ثانية تقريبًا. .TP \fItcp_synack_retries\fP (عدد صحيح؛ المبدئي: 5؛ منذ لينكس 2.2) .\" Since Linux 2.1.38 العدد الأقصى لمرات إعادة إرسال قطعة SYN/ACK لاتصال TCP سلبي. يجب ألا يزيد هذا الرقم عن 255. .TP \fItcp_syncookies\fP (عدد صحيح؛ المبدئي: 1؛ منذ لينكس 2.2) .\" Since Linux 2.1.43 يفعّل كعكات مزامنة TCP (syncookies). يجب بناء النواة مع خيار \fBCONFIG_SYN_COOKIES\fP. تحاول ميزة كعكات المزامنة حماية المقبس من هجوم الغمر بطلبات المزامنة (SYN flood). يجب استخدام هذا كملجأ أخير، إن استُخدم أصلاً. هذا يمثل انتهاكًا لبروتوكول TCP، ويتعارض مع مجالات أخرى مثل توسيعات TCP. قد يسبب مشاكل للعملاء والمرحّلات. لا يُنصح به كآلية ضبط للخوادم ذات التحميل الثقيل للمساعدة في حالات التحميل الزائد أو سوء الضبط. للبدائل الموصى بها، انظر \fItcp_max_syn_backlog\fP، و \fItcp_synack_retries\fP، و \fItcp_abort_on_overflow\fP. اضبطه على إحدى القيم التالية: .RS .TP \fB0\fP يعطل كعكات مزامنة TCP. .TP \fB1\fP يرسل كعكات مزامنة عندما يفيض طابور المزامنة الخلفي للمقبس. .TP \fB2\fP .\" commit 5ad37d5deee1ff7150a2d0602370101de158ad86 (منذ لينكس 3.12) يرسل كعكات مزامنة دون قيد أو شرط. قد يكون هذا مفيدًا لاختبار الشبكة. .RE .TP \fItcp_timestamps\fP (عدد صحيح؛ المبدئي: 1؛ منذ لينكس 2.2) .\" Since Linux 2.1.36 اضبطه على إحدى القيم التالية لتفعيل أو تعطيل الطوابع الزمنية لـ RFC\ 1323 TCP: .RS .TP \fB0\fP يعطل الطوابع الزمنية. .TP \fB1\fP يفعّل الطوابع الزمنية كما هي محددة في RFC1323 ويستخدم إزاحة عشوائية لكل اتصال بدلاً من استخدام الوقت الحالي فقط. .TP \fB2\fP .\" commit 25429d7b7dca01dc4f17205de023a30ca09390d0 كما هو الحال في القيمة 1، ولكن بدون إزاحات عشوائية. تعيين \fItcp_timestamps\fP لهذه القيمة له معنى منذ لينكس 4.10. .RE .TP \fItcp_tso_win_divisor\fP (عدد صحيح؛ المبدئي: 3؛ منذ لينكس 2.6.9) يتحكم هذا المعامل في النسبة المئوية التي يمكن أن يستهلكها إطار واحد من ترحيل تقطيع TCP‏ (TSO) من نافذة الازدحام. ضبط هذا المعامل هو مفاضلة بين الاندفاعية وبناء إطارات TSO أكبر. .TP \fItcp_tw_recycle\fP (Boolean؛ المبدئي: معطل؛ لينكس 2.4 إلى لينكس 4.11) .\" Since Linux 2.3.15 .\" removed in Linux 4.12; commit 4396e46187ca5070219b81773c4e65088dac50cc .\" يفعّل إعادة التدوير السريع لمقابس TIME_WAIT. لا يُنصح بتفعيل هذا الخيار لأن عنوان IP البعيد قد لا يستخدم طوابع زمنية تتزايد بشكل مطرد (الأجهزة خلف NAT، أو الأجهزة التي تحتوي على إزاحات طوابع زمنية لكل اتصال). انظر RFC 1323 (PAWS) و RFC 6191. .TP \fItcp_tw_reuse\fP (منطقي؛ مبدئي: معطل؛ منذ لينكس 2.4.19/2.6) .\" Since Linux 2.4.19/2.5.43 .\" يسمح بإعادة استخدام مقابس TIME_WAIT للاتصالات الجديدة عندما يكون ذلك آمنًا من منظور البروتوكول. لا ينبغي تغييره دون نصيحة أو طلب من خبراء تقنيين. .TP \fItcp_vegas_cong_avoid\fP (منطقي؛ مبدئي: معطل؛ من لينكس 2.2 إلى لينكس 2.6.13) .\" Since Linux 2.1.8; removed in Linux 2.6.13 .\" يفعّل خوارزمية تجنب الازدحام TCP Vegas. تعد TCP Vegas تغييرًا من جانب المرسل فقط على TCP تتوقع حدوث الازدحام من خلال تقدير عرض النطاق الترددي. تضبط TCP Vegas معدل الإرسال عن طريق تعديل نافذة الازدحام. يجب أن توفر TCP Vegas فقدانًا أقل للحزم، لكنها ليست بنفس هجومية TCP Reno. .TP \fItcp_westwood\fP (منطقي؛ مبدئي: معطل؛ من لينكس 2.4.26/2.6.3 إلى لينكس 2.6.13) يفعّل خوارزمية التحكم في الازدحام TCP Westwood+. تعد TCP Westwood+ تعديلاً من جانب المرسل فقط لحزمة بروتوكول TCP Reno تعمل على تحسين أداء التحكم في ازدحام TCP. وتعتمد على تقدير عرض النطاق الترددي من طرف إلى طرف لتعيين نافذة الازدحام وعتبة البداية البطيئة بعد نوبة ازدحام. باستخدام هذا التقدير، تضبط TCP Westwood+ عتبة البداية البطيئة ونافذة الازدحام بشكل متكيف يأخذ في الاعتبار عرض النطاق الترددي المستخدم وقت حدوث الازدحام. تزيد TCP Westwood+ بشكل ملحوظ من العدالة فيما يتعلق بـ TCP Reno في الشبكات السلكية والإنتاجية عبر الروابط اللاسلكية. .TP \fItcp_window_scaling\fP (منطقي؛ مبدئي: مفعّل؛ منذ لينكس 2.2) .\" Since Linux 2.1.36 يفعّل تحجيم نافذة TCP الخاصة بـ RFC\ 1323. تتيح هذه الميزة استخدام نافذة كبيرة (> 64\ كيلوبايت) في اتصال TCP، إذا كان الطرف الآخر يدعم ذلك. عادةً، يحد حقل طول النافذة المكون من 16 بت في ترويسة TCP من حجم النافذة إلى أقل من 64\ كيلوبايت. وإذا رغبت التطبيقات في نوافذ أكبر، فيمكنها زيادة حجم درء المقابس الخاصة بها وسيُستخدم خيار تحجيم النافذة. إذا عُطّل \fItcp_window_scaling\fP، فلن يتفاوض TCP على استخدام تحجيم النافذة مع الطرف الآخر أثناء إعداد الاتصال. .TP \fItcp_wmem\fP (منذ لينكس 2.4) .\" Since Linux 2.4.0-test7 هذا متجه من 3 أعداد صحيحة: [min, default, max]. تُستخدم هذه المعاملات بواسطة TCP لتنظيم أحجام درء الإرسال. يضبط TCP حجم درء الإرسال ديناميكيًا من القيم المبدئية المدرجة أدناه، ضمن نطاق هذه القيم، اعتمادًا على الذاكرة المتاحة. .RS .TP \fImin\fP الحد الأدنى لحجم درء الإرسال الذي يستخدمه كل مقبس TCP. القيمة المبدئية هي حجم صفحة النظام. (في لينكس 2.4، كانت القيمة المبدئية 4\ كيلوبايت). تُستخدم هذه القيمة للتأكد من أنه في وضع ضغط الذاكرة، ستظل التخصيصات الأقل من هذا الحجم ناجحة. لا يُستخدم هذا لتقييد حجم درء الإرسال المصرح به باستخدام \fBSO_SNDBUF\fP على مقبس. .TP \fIdefault\fP .\" True in Linux 2.4 and 2.6 الحجم المبدئي لدرء الإرسال لمقبس TCP. تتجاوز هذه القيمة حجم الدرء المبدئي الأولي من \fI/proc/sys/net/core/wmem_default\fP العالمي المحدد لجميع البروتوكولات. القيمة المبدئية هي 16\ كيلوبايت. وإذا كانت هناك رغبة في أحجام درء إرسال أكبر، فيجب زيادة هذه القيمة (ليشمل التأثير جميع المقابس). لاستخدام نوافذ TCP كبيرة، يجب ضبط \fI/proc/sys/net/ipv4/tcp_window_scaling\fP على قيمة غير صفرية (مبدئي). .TP \fImax\fP الحجم الأقصى لدرء الإرسال الذي يستخدمه كل مقبس TCP. لا تتجاوز هذه القيمة القيمة الموجودة في \fI/proc/sys/net/core/wmem_max\fP. لا يُستخدم هذا للحد من حجم درء الإرسال المصرح به باستخدام \fBSO_SNDBUF\fP على مقبس. تُحسب القيمة المبدئية باستخدام الصيغة .IP .in +4n .EX max(65536, min(4\ MB, \fItcp_mem\fP[1]*PAGE_SIZE/128)) .EE .in .IP (في لينكس 2.4، القيمة المبدئية هي 128\ كيلوبايت، وتُخفض إلى 64\ كيلوبايت اعتمادًا على الأنظمة ذات الذاكرة المنخفضة). .RE .TP \fItcp_workaround_signed_windows\fP (Boolean؛ المبدئي: معطل؛ منذ لينكس 2.6.26) إذا فُعّل، فافترض أن عدم استلام خيار تحجيم النافذة يعني أن TCP البعيد معطل ويعامل النافذة ككمية موقعة. وإذا عُطّل، فافترض أن TCP البعيد ليس معطلاً حتى لو لم نتلقَ خيار تحجيم النافذة منه. .SS "خيارات المقبس" .\" or SOL_TCP on Linux لضبط خيار مقبس TCP أو الحصول عليه، استدعِ \fBgetsockopt\fP(2) للقراءة أو \fBsetsockopt\fP(2) للكتابة مع ضبط معامل مستوى الخيار على \fBIPPROTO_TCP\fP. ما لم يُذكر خلاف ذلك، فإن \fIoptval\fP هو مؤشر لـ \fIint\fP. بالإضافة إلى ذلك، فإن معظم خيارات مقبس \fBIPPROTO_IP\fP صالحة على مقابس TCP. لمزيد من المعلومات، انظر \fBip\fP(7). .P فيما يلي قائمة بخيارات المقابس الخاصة بـ TCP. للحصول على تفاصيل حول بعض خيارات المقابس الأخرى التي تنطبق أيضًا على مقابس TCP، انظر \fBsocket\fP(7). .TP \fBTCP_CONGESTION\fP (منذ لينكس 2.6.13) .\" commit 5f8ef48d240963093451bcf83df89f1a1364f51d .\" Author: Stephen Hemminger المعامل لهذا الخيار هو سلسلة نصية. يسمح هذا الخيار للمستدعي بضبط خوارزمية التحكم في ازدحام TCP المراد استخدامها، لكل مقبس على حدة. تقتصر العمليات غير المميزة على اختيار إحدى الخوارزميات في \fItcp_allowed_congestion_control\fP (الموضحة أعلاه). يمكن للعمليات المميزة (\fBCAP_NET_ADMIN\fP) الاختيار من أي من خوارزميات التحكم في الازدحام المتاحة (انظر وصف \fItcp_available_congestion_control\fP أعلاه). .TP \fBTCP_CORK\fP (منذ لينكس 2.2) .\" precisely: since Linux 2.1.127 إذا ضُبط، فلا تُرسل الإطارات الجزئية. تُرسل جميع الإطارات الجزئية الموجودة في الطابور عند مسح الخيار مرة أخرى. هذا مفيد لإضافة الترويسات قبل استدعاء \fBsendfile\fP(2)، أو لتحسين الإنتاجية. حسب التنفيذ الحالي، يوجد سقف زمني قدره 200 مللي ثانية للوقت الذي تُسد فيه المخرجات بواسطة \fBTCP_CORK\fP. إذا وصل إلى هذا السقف، تُرسل البيانات الموجودة في الطابور آلياً. يمكن دمج هذا الخيار مع \fBTCP_NODELAY\fP فقط منذ لينكس 2.5.71. ينبغي عدم استخدام هذا الخيار في الكود البرمجي الذي يُراد له أن يكون محمولاً. .TP \fBTCP_DEFER_ACCEPT\fP (منذ لينكس 2.4) .\" Precisely: since Linux 2.3.38 .\" Useful references: .\" http://www.techrepublic.com/article/take-advantage-of-tcp-ip-options-to-optimize-data-transmission/ .\" http://unix.stackexchange.com/questions/94104/real-world-use-of-tcp-defer-accept يسمح بإيقاظ المستمع فقط عند وصول البيانات إلى المقبس. يأخذ قيمة عدد صحيح (بالثواني)، وهذا يمكن أن يحد من أقصى عدد من المحاولات التي سيقوم بها TCP لإكمال الاتصال. ستقوم النواة بتقريب هذه القيمة إلى المدة التالية الأكبر لإعادة إرسال TCP. .IP على مقبس العميل، إذا كانت القيمة غير صفرية، يؤخر إرسال الإشعار النهائي (ACK) للمصافحة الثلاثية حتى تتوفر لدى المقبس بيانات لإرسالها، وفي هذه الحالة يُحمل الإشعار (ACK) على أول قطعة بيانات، أو حتى يتم الوصول إلى مهلة الإشعار المتأخر (delayed\-ACK). .IP لا ينبغي استخدام هذا الخيار في الأكواد البرمجية التي يُقصد أن تكون محمولة. .TP \fBTCP_INFO\fP (منذ لينكس 2.4) يُستخدم لجمع معلومات حول هذا المقبس. تعيد النواة بنية \fIstruct tcp_info\fP كما هي معرفة في الملف \fI/usr/include/linux/tcp.h\fP. لا ينبغي استخدام هذا الخيار في الأكواد البرمجية التي يُقصد أن تكون محمولة. .TP \fBTCP_KEEPCNT\fP (منذ لينكس 2.4) .\" Precisely: since Linux 2.3.18 العدد الأقصى لفحوصات keepalive التي يجب أن يرسلها TCP قبل إسقاط الاتصال. ينبغي عدم استخدام هذا الخيار في الكود البرمجي الذي يُراد له أن يكون محمولاً. .TP \fBTCP_KEEPIDLE\fP (منذ لينكس 2.4) .\" Precisely: since Linux 2.3.18 الوقت (بالثواني) الذي يحتاجه الاتصال ليبقى خاملاً قبل أن يبدأ TCP في إرسال مجسات إبقاء الاتصال حيًا، إذا عُيّن خيار المقبس \fBSO_KEEPALIVE\fP على هذا المقبس. لا ينبغي استخدام هذا الخيار في الأكواد البرمجية التي يُقصد أن تكون محمولة. .TP \fBTCP_KEEPINTVL\fP (منذ لينكس 2.4) .\" Precisely: since Linux 2.3.18 الوقت (بالثواني) بين فحوصات keepalive الفردية. ينبغي عدم استخدام هذا الخيار في الكود البرمجي الذي يُراد له أن يكون محمولاً. .TP \fBTCP_LINGER2\fP (منذ لينكس 2.4) .\" Precisely: since Linux 2.3.41 عمر المقابس اليتيمة في حالة FIN_WAIT2. يمكن استخدام هذا الخيار لتجاوز الإعداد على مستوى النظام في الملف \fI/proc/sys/net/ipv4/tcp_fin_timeout\fP لهذا المقبس. لا ينبغي الخلط بين هذا وبين خيار مستوى \fBsocket\fP(7) المسمى \fBSO_LINGER\fP. لا ينبغي استخدام هذا الخيار في الأكواد البرمجية التي يُقصد أن تكون محمولة. .TP \fBTCP_MAXSEG\fP .\" Present in Linux 1.0 أقصى حجم للقطعة (MSS) لحزم TCP الصادرة. في لينكس 2.2 وما قبله، وفي لينكس 2.6.28 وما بعده، إذا عُيّن هذا الخيار قبل إنشاء الاتصال، فإنه يغير أيضًا قيمة MSS المعلنة للطرف الآخر في الحزمة الأولية. القيم الأكبر من MTU (النهائي) للواجهة ليس لها تأثير. سيفرض TCP أيضًا حدوده الدنيا والقصوى على القيمة المقدمة. .TP \fBTCP_NODELAY\fP .\" Present in Linux 1.0 إذا ضُبط، تُعطل خوارزمية Nagle. وهذا يعني أن القطع تُرسل دائماً في أسرع وقت ممكن، حتى لو كان هناك مقدار ضئيل من البيانات. عندما لا يُضبط، تُخزن البيانات في خبيئة حتى يتوفر مقدار كافٍ لإرساله، وبذلك يتجنب الإرسال المتكرر للحزم الصغيرة، مما يؤدي إلى سوء استغلال الشبكة. يُلغى هذا الخيار بواسطة \fBTCP_CORK\fP؛ ومع ذلك، فإن ضبط هذا الخيار يفرض تفريغاً صريحاً للمخرجات المعلقة، حتى لو كان \fBTCP_CORK\fP مضبوطاً حالياً. .TP \fBTCP_QUICKACK\fP (منذ لينكس 2.4.4) يفعّل وضع الإشعار السريع (quickack) إذا عُيّن، أو يعطله إذا مُسح. في وضع الإشعار السريع، تُرسل الإشعارات (acks) فورًا، بدلاً من تأخيرها إذا لزم الأمر وفقًا لعمل TCP العادي. هذا العلم ليس دائمًا، فهو يفعّل فقط التبديل إلى أو من وضع الإشعار السريع. ستدخل/تخرج العمليات اللاحقة لبروتوكول TCP مرة أخرى من وضع الإشعار السريع اعتمادًا على معالجة البروتوكول الداخلية وعوامل مثل حدوث مهلات الإشعار المتأخر ونقل البيانات. لا ينبغي استخدام هذا الخيار في الأكواد البرمجية التي يُقصد أن تكون محمولة. .TP \fBTCP_SYNCNT\fP (منذ لينكس 2.4) .\" Precisely: since Linux 2.3.18 اضبط عدد عمليات إعادة إرسال SYN التي يجب أن يرسلها TCP قبل إلغاء محاولة الاتصال. لا يمكن أن تتجاوز 255. لا ينبغي استخدام هذا الخيار في الأكواد البرمجية التي يُقصد أن تكون محمولة. .TP \fBTCP_SAVE_SYN\fP (منذ لينكس 4.3) يحفظ محتويات حزمة SYN الواردة لمقبس الاستماع حتى تُقرأ باستخدام \fBTCP_SAVED_SYN\fP مرة واحدة. يمكن ضبطه قبل أو بعد استدعاء \fBlisten\fP(2). .TP \fBTCP_SAVED_SYN\fP (منذ لينكس 4.3) يقرأ محتويات حزمة SYN المحفوظة بواسطة \fBTCP_SAVE_SYN\fP. تُحرر ترويسات SYN المحفوظة بعد الاستدعاء الأول. البيانات المعادة في \fBTCP_SAVED_SYN\fP هي ترويسات الشبكة (IPv4/IPv6) وترويسات TCP. .TP \fBTCP_USER_TIMEOUT\fP (منذ لينكس 2.6.37) .\" commit dca43c75e7e545694a9dd6288553f55c53e2a3a3 .\" Author: Jerry Chu .\" The following text taken nearly verbatim from Jerry Chu's (excellent) .\" commit message. .\" يأخذ هذا الخيار \fIunsigned int\fP كمعامل. عندما تكون القيمة أكبر من 0، فإنها تحدد أقصى قدر من الوقت بالمللي ثانية الذي قد تظل فيه البيانات المرسلة بدون إشعار استلام، أو قد تظل البيانات المدرءة بدون إرسال (بسبب حجم نافذة صفر) قبل أن يقوم TCP بإغلاق الاتصال المقابل قسريًا ويعيد \fBETIMEDOUT\fP إلى التطبيق. إذا حُددت قيمة الخيار على أنها 0، فسيستخدم TCP المبدئي للنظام. .IP تسمح زيادة مهلات المستخدم لاتصال TCP بالبقاء لفترات ممتدة بدون اتصال من طرف إلى طرف. بينما يسمح تقليل مهلات المستخدم للتطبيقات بـ "الفشل السريع"، إذا رغبت في ذلك. خلاف ذلك، قد يستغرق الفشل ما يصل إلى 20 دقيقة مع مبادئ النظام الحالية في بيئة WAN عادية. .IP يمكن ضبط هذا الخيار خلال أي حالة من حالات اتصال TCP، ولكنه يكون فعّالاً فقط خلال الحالات المتزامنة للاتصال (ESTABLISHED، و FIN\-WAIT\-1، و FIN\-WAIT\-2، و CLOSE\-WAIT، و CLOSING، و LAST\-ACK). علاوة على ذلك، عند استخدامه مع خيار إبقاء اتصال TCP حيًا (\fBSO_KEEPALIVE\fP)، فإن \fBTCP_USER_TIMEOUT\fP سيتجاوز إبقاء الاتصال حيًا لتحديد وقت إغلاق الاتصال بسبب فشل إبقاء الاتصال حيًا. .IP ليس للخيار أي تأثير على وقت إعادة إرسال TCP للحزمة، ولا على وقت إرسال مجس إبقاء الاتصال حيًا. .IP هذا الخيار، مثله مثل خيارات كثيرة أخرى، سيرثه المقبس المعاد بواسطة \fBaccept\fP(2)، إذا عُيّن على مقبس الاستماع. .IP يمكن العثور على مزيد من التفاصيل حول ميزة مهلة المستخدم في RFC\ 793 و RFC\ 5482 ("خيار مهلة مستخدم TCP"). .TP \fBTCP_WINDOW_CLAMP\fP (منذ لينكس 2.4) .\" Precisely: since Linux 2.3.41 قيد حجم النافذة المعلنة بهذه القيمة. تفرض النواة حداً أدنى للحجم قدره SOCK_MIN_RCVBUF/2. ينبغي عدم استخدام هذا الخيار في الكود البرمجي الذي يُراد له أن يكون محمولاً. .TP \fBTCP_FASTOPEN\fP (منذ لينكس 3.6) This option enables Fast Open (RFC\ 7413) on the listener socket. The value specifies the maximum length of pending SYNs (similar to the backlog argument in \fBlisten\fP(2)). Once enabled, the listener socket grants the TCP Fast Open cookie on incoming SYN with TCP Fast Open option. .IP والأهم من ذلك أنه يقبل البيانات في رسالة SYN مع كعكة Fast Open صالحة ويستجيب بـ SYN\-ACK مقراً باستلام كل من البيانات وتسلسل SYN. يعيد \fBaccept\fP(2) مقبساً متاحاً للقراءة والكتابة عندما لا تكون المصافحة قد اكتملت بعد. وبالتالي يمكن أن يبدأ تبادل البيانات قبل اكتمال المصافحة. يتطلب هذا الخيار تفعيل دعم جانب الخادم في sysctl \fInet.ipv4.tcp_fastopen\fP (انظر أعلاه). لدعم جانب العميل في TCP Fast Open، انظر \fBsend\fP(2) \fBMSG_FASTOPEN\fP أو \fBTCP_FASTOPEN_CONNECT\fP أدناه. .TP \fBTCP_FASTOPEN_CONNECT\fP (منذ لينكس 4.11) يفعّل هذا الخيار طريقة بديلة لإجراء الفتح السريع على الجانب النشط (العميل). عند تفعيل هذا الخيار، سيتصرف \fBconnect\fP(2) بشكل مختلف اعتمادًا على ما إذا كانت كعكة Fast Open متاحة للوجهة. .IP إذا لم تكن الخبيئة متوفرة (أي أول متراسل مع الوجهة)، فإن \fBconnect\fP(2) يتصرف كالمعتاد عبر إرسال SYN فورًا، إلا أن SYN سيشمل خيار خبيئة Fast Open فارغ لطلب خبيئة. .IP إذا كانت الخبيئة متوفرة، فإن \fBconnect\fP(2) سيُعيد 0 فورًا لكن يُرجأ إرسال SYN. يؤدي استدعاء \fBwrite\fP(2) أو \fBsendmsg\fP(2) لاحق إلى إطلاق SYN مع البيانات بالإضافة إلى الخبيئة في خيار Fast Open. بمعنى آخر، تُرجأ عملية الاتصال الفعلية حتى توفر البيانات. .IP \fBملاحظة:\fP صُمم هذا الخيار للتيسير، إلا أن تفعيله يغير السلوكيات وقد تُعين بعض استدعاءات النظام قيم \fIerrno\fP مختلفة. مع وجود الخبيئة، يجب استدعاء \fBwrite\fP(2) أو \fBsendmsg\fP(2) مباشرة بعد \fBconnect\fP(2) من أجل إرسال SYN+البيانات لإكمال المصافحة الثلاثية (3WHS) وإنشاء الاتصال. سيؤدي استدعاء \fBread\fP(2) مباشرة بعد \fBconnect\fP(2) دون \fBwrite\fP(2) إلى حظر المقبس الحاظر للأبد. .IP ينبغي للتطبيق إما ضبط خيار المقبس \fBTCP_FASTOPEN_CONNECT\fP قبل \fBwrite\fP(2) أو \fBsendmsg\fP(2)، أو استدعاء \fBwrite\fP(2) أو \fBsendmsg\fP(2) مع وسم \fBMSG_FASTOPEN\fP مباشرة، بدلًا من كليهما في نفس الاتصال. .IP هذا هو تسلسل الاستدعاء النمطي مع هذا الخيار الجديد: .IP .in +4n .EX s = socket(); setsockopt(s, IPPROTO_TCP, TCP_FASTOPEN_CONNECT, 1, ...); connect(s); write(s); /* ينبغي دائما استدعاء write() بعد connect() * من أجل إطلاق SYN للخارج. */ read(s)/write(s); /* ...\& */ close(s); .EE .in .SS "واجهة برمجة تطبيقات المقابس (Sockets API)" يوفر TCP دعمًا محدودًا للبيانات الخارجة عن النطاق، في شكل (بايت واحد من) البيانات العاجلة. في لينكس، يعني هذا أنه إذا أرسل الطرف الآخر بيانات خارجة عن النطاق أحدث، فتُدرج البيانات العاجلة القديمة كبيانات عادية في التدفق (حتى عند عدم ضبط \fBSO_OOBINLINE\fP). يختلف هذا عن كدسات البروتوكولات المبنية على BSD. .P يستخدم لينكس التفسير المتوافق مع BSD لحقل المؤشر العاجل مبدئيًا. ينتهك هذا RFC\ 1122، ولكنه مطلوب للتشغيل البيني مع الكدسات الأخرى. يمكن تغييره عبر \fI/proc/sys/net/ipv4/tcp_stdurg\fP. .P من الممكن استراق النظر للبيانات الخارجة عن النطاق باستخدام وسم \fBMSG_PEEK\fP للاستدعاء \fBrecv\fP(2). .P منذ لينكس 2.4، يدعم لينكس استخدام \fBMSG_TRUNC\fP في معامل \fIflags\fP الخاص بالاستدعاء \fBrecv\fP(2) (و \fBrecvmsg\fP(2)). يؤدي هذا الوسم إلى نبذ بايتات البيانات المستلمة، بدلًا من تمريرها مرة أخرى في خبيئة يوفرها \fBالمستدعِي\fP. منذ لينكس 2.4.4، أصبح لـ \fBMSG_TRUNC\fP هذا التأثير أيضًا عند استخدامه بالتزامن مع \fBMSG_OOB\fP لاستلام البيانات الخارجة عن النطاق. .SS Ioctls استدعاءات \fBioctl\fP(2) التالية تعيد معلومات في \fIvalue\fP. الصيغة الصحيحة هي: .P .RS .nf \fBint\fP\fI value\fP\fB;\fP \fIerror\fP\fB = ioctl(\fP\fItcp_socket\fP\fB, \fP\fIioctl_type\fP\fB, &\fP\fIvalue\fP\fB);\fP .fi .RE .P تكون \fIioctl_type\fP واحدة مما يلي: .TP \fBSIOCINQ\fP .\" FIXME https://www.sourceware.org/bugzilla/show_bug.cgi?id=12002, .\" filed 2010-09-10, may cause SIOCINQ to be defined in glibc headers يعيد كمية البيانات غير المقروءة والمصطفة في خبيئة الاستلام. يجب ألا يكون المقبس في حالة LISTEN، وإلا سيُعاد خطأ (\fBEINVAL\fP). عُرف \fBSIOCINQ\fP في \fI\fP. بدلاً من ذلك، يمكنك استخدام المرادف \fBFIONREAD\fP، المعرف في \fI\fP. .TP \fBSIOCATMARK\fP يعيد صحيح (أي أن \fIvalue\fP غير صفرية) إذا كان تدفق البيانات الوارد عند \fIعلامة\fP الاستعجال. .IP إذا ضُبط خيار المقبس \fBSO_OOBINLINE\fP وأعاد \fBSIOCATMARK\fP صحيحًا، فإن القراءة التالية من المقبس ستعيد البيانات العاجلة. إذا لم يُضبط خيار المقبس \fBSO_OOBINLINE\fP وأعاد \fBSIOCATMARK\fP صحيحًا، فإن القراءة التالية من المقبس ستعيد البايتات التي تلي البيانات العاجلة (تتطلب قراءة البيانات العاجلة فعليًا وسم \fBrecv(MSG_OOB)\fP). .IP لاحظ أن القراءة لا تقرأ أبدًا عبر \fIعلامة\fP الاستعجال. إذا أُخطر التطبيق بوجود بيانات عاجلة عبر \fBselect\fP(2) (باستخدام المعامل \fIexceptfds\fP) أو عبر تسليم إشارة \fBSIGURG\fP، فيمكنه التقدم حتى \fIالعلامة\fP باستخدام حلقة تكرارية تختبر \fBSIOCATMARK\fP وتجري قراءة (بطلب أي عدد من البايتات) طالما أعاد \fBSIOCATMARK\fP خطأ. .TP \fBSIOCOUTQ\fP .\" FIXME . https://www.sourceware.org/bugzilla/show_bug.cgi?id=12002, .\" filed 2010-09-10, may cause SIOCOUTQ to be defined in glibc headers يعيد كمية البيانات غير المرسلة في صف إرسال المقبس. يجب ألا يكون المقبس في حالة LISTEN، وإلا سيُعاد خطأ (\fBEINVAL\fP). عُرف \fBSIOCOUTQ\fP في \fI\fP. بدلاً من ذلك، يمكنك استخدام المرادف \fBTIOCOUTQ\fP، المعرف في \fI\fP. .SS "معالجة الأخطاء" عند حدوث خطأ في الشبكة، يحاول TCP إعادة إرسال الحزمة. إذا لم ينجح بعد مرور بعض الوقت، يُبلغ عن \fBETIMEDOUT\fP أو آخر خطأ مُستلم في هذا الاتصال. .P تتطلب بعض التطبيقات إشعارًا أسرع بالخطأ. يمكن تفعيل ذلك باستخدام خيار المقبس \fBIP_RECVERR\fP على مستوى \fBIPPROTO_IP\fP. عند تفعيل هذا الخيار، تُمرر جميع الأخطاء الواردة فورًا إلى برنامج المستخدم. استخدم هذا الخيار بحذر — فهو يجعل TCP أقل تسامحًا مع تغيرات التوجيه وظروف الشبكة العادية الأخرى. .SH الأخطاء .TP \fBEAFNOTSUPPORT\fP نوع عنوان المقبس الممرر في \fIsin_family\fP لم يكن \fBAF_INET\fP. .TP \fBEPIPE\fP أغلق الطرف الآخر المقبس بشكل غير متوقع أو نُفذت قراءة على مقبس مغلق. .TP \fBETIMEDOUT\fP لم يقر الطرف الآخر باستلام البيانات المعاد إرسالها بعد مرور بعض الوقت. .P أي أخطاء عُرفت لـ \fBip\fP(7) أو لطبقة المقابس العامة قد تُعاد أيضًا لـ TCP. .SH الإصدارات أُدخل دعم إشعار الازدحام الصريح (ECN)، و \fBsendfile\fP(2) بدون نسخ، ودعم إعادة الترتيب، وبعض امتدادات SACK مثل (DSACK) في لينكس 2.4. كما أُدخل دعم الإقرار الأمامي (FACK)، وإعادة تدوير TIME_WAIT، وخيارات مقابس keepalive لكل اتصال في لينكس 2.3. .SH العلل ليست كل الأخطاء موثقة. .P .\" Only a single Linux kernel version is described .\" Info for 2.2 was lost. Should be added again, .\" or put into a separate page. .\" .SH AUTHORS .\" This man page was originally written by Andi Kleen. .\" It was updated for 2.4 by Nivedita Singhvi with input from .\" Alexey Kuznetsov's Documentation/networking/ip-sysctl.rst .\" document. لم يوصَف IPv6. .SH "انظر أيضًا" \fBaccept\fP(2), \fBbind\fP(2), \fBconnect\fP(2), \fBgetsockopt\fP(2), \fBlisten\fP(2), \fBrecvmsg\fP(2), \fBsendfile\fP(2), \fBsendmsg\fP(2), \fBsocket\fP(2), \fBip\fP(7), \fBsocket\fP(7) .P ملف مصدر النواة \fIDocumentation/networking/ip\-sysctl.rst\fP. .P RFC\ 793 لمواصفات TCP. .br RFC\ 1122 لمتطلبات TCP ووصف خوارزمية ناغل (Nagle). .br RFC\ 1323 لخيارات الطابع الزمني لـ TCP وحجم النافذة. .br RFC\ 1337 لوصف مخاطر إنهاء (assassination) حالة TIME_WAIT. .br RFC\ 3168 لوصف إشعار الازدحام الصريح. .br RFC\ 2581 لخوارزميات التحكم في ازدحام TCP. .br RFC\ 2018 و RFC\ 2883 لـ SACK وامتداداته. .PP .SH ترجمة تُرجمت هذه الصفحة من الدليل بواسطة زايد السعيدي . .PP هذه الترجمة هي وثيقة مجانية؛ راجع .UR https://www.gnu.org/licenses/gpl-3.0.html رخصة جنو العامة الإصدار 3 .UE أو ما بعده للاطلاع على شروط حقوق النشر. لا توجد أي ضمانات. .PP إذا وجدت أي أخطاء في ترجمة صفحة الدليل هذه، يرجى إرسال بريد إلكتروني إلى قائمة بريد المترجمين: .MT kde-l10n-ar@kde.org .ME .