TCP — پروتکل کنترل انتقال
جریان قابل اطمینان و مرتب از بایتها روی شبکهای که بسته گم میکند. TCP با دستدهی، شمارهٔ ترتیب، تصدیق و ارسال مجدد این اطمینان را میسازد.
- لایهٔ OSI: 4 (انتقال)
- انتقال: IP (پروتکل 6)
- پورت: —
- استاندارد: RFC 9293
- سطح: مقدماتی · حدود 9 دقیقه
نکتههای کلیدی
- TCP اتصالگرا و قابل اطمینان است: ترتیب، تصدیق، ارسال مجدد و کنترل جریان.
- دستدهی سهمرحلهای: SYN، سپس SYN-ACK و در پایان ACK.
- کنترل ازدحام (مثل CUBIC و BBR) سرعت ارسال را با ظرفیت مسیر تطبیق میدهد.
مراحل شبیهسازی (9 بسته)
- SYN: کلاینت با پرچم SYN یک شمارهٔ ترتیب اولیهٔ تصادفی (ISN) انتخاب و قابلیتهایش را در گزینهها اعلام میکند.
- SYN-ACK: سرور ISN خودش را انتخاب میکند و شمارهٔ کلاینت بهعلاوهٔ یک را تصدیق میکند.
- ACK: با این بسته دستدهی سهمرحلهای کامل و اتصال برقرار میشود.
- داده (PSH): کلاینت ۳۵ بایت داده میفرستد. شمارهٔ ترتیب به ازای هر بایت جلو میرود.
- ACK: سرور دریافت را تصدیق میکند: شمارهٔ تصدیق = ترتیب قبلی + ۳۵.
- سگمنت گمشده: یک سگمنت پاسخ در مسیر گم میشود. فرستنده چون تصدیقی دریافت نمیکند، پس از مهلت (RTO) یا سه ACK تکراری آن را دوباره میفرستد.
- ارسال مجدد: همان سگمنت با همان شمارهٔ ترتیب دوباره ارسال و این بار دریافت میشود. برنامه اصلاً متوجه گمشدن نمیشود.
- FIN: کلاینت کارش تمام است و با FIN نیمهٔ خودش را میبندد.
- FIN + ACK: سرور هم میبندد. کلاینت پس از ACK آخر مدتی در حالت TIME-WAIT میماند.