TCP — ساختار و عملکرد
🎯 اهداف یادگیری
در پایان این درس، دانشجو میتواند:
- ساختار TCP Segment را توضیح دهد
- مکانیزمهای قابلیت اطمینان TCP را نام ببرد
- کنترل جریان و کنترل ازدحام را توضیح دهد
پیشنیاز: لایه انتقال — نمای کلی
۱. TCP چیست؟
Transmission Control Protocol پروتکلی قابلاعتماد با اتصال مستقر است. تمام دادهها بهصورت کامل و به ترتیب به مقصد میرسند.
۲. ساختار TCP Header
| فیلد | اندازه | توضیح |
|---|---|---|
| Source Port | ۱۶ بیت | شماره پورت مبدأ |
| Destination Port | ۱۶ بیت | شماره پورت مقصد |
| Sequence Number | ۳۲ بیت | ترتیب بستهها |
| Acknowledgment Number | ۳۲ بیت | آخرین بسته تأیید شده |
| Data Offset | ۴ بیت | طول Header |
| Flags (SYN, ACK, FIN, RST) | ۶ بیت | پرچمهای کنترلی |
| Window Size | ۱۶ بیت | اندازه بافر (Flow Control) |
| Checksum | ۱۶ بیت | بررسی صحت |
| Urgent Pointer | ۱۶ بیت | اولویت فوری |
۳. مکانیزمهای قابلیت اطمینان
Sequence Numbers: هر بسته شماره ترتیب دارد. گیرنده بستهها را به ترتیب صحیح مرتب میکند.
Acknowledgment: گیرنده تأیید دریافت هر بسته را برمیگرداند. اگر تأیید نرسد، فرستنده بسته را دوباره ارسال میکند (Retransmission).
Checksum: بررسی صحت داده. اگر داده خراب باشد، دور ریخته میشود.
۴. کنترل جریان (Flow Control)
گیرنده با Window Size به فرستنده اعلام میکند چقدر بافر آزاد دارد:
گیرنده: "من فقط ۱۰۰۰ بایت جا دارم"
فرستنده: حداکثر ۱۰۰۰ بایت ارسال میکند
گیرنده: "حالا ۲۰۰۰ بایت جا دارم"
این مکانیزم از سرریز بافر گیرنده جلوگیری میکند.
۵. کنترل ازدحام (Congestion Control)
TCP مانع از ازدحام شبکه میشود:
- Slow Start: ابتدا آرام شروع میکند
- Congestion Avoidance: تدریجاً سرعت را بالا میبرد
- Fast Retransmit: با ۳ تأیید تکراری، بسته را فوراً بازارسال میکند
- Fast Recovery: بعد از بازیابی، سرعت را نصف میکند
❓ سوالات مرور
- Sequence Number چه کاری انجام میدهد؟
- Window Size در کنترل جریان چه نقشی دارد؟
- چه زمانی TCP بسته را دوباره ارسال میکند؟
- Slow Start چیست؟
📚 اصطلاحات مهم
| English | فارسی | توضیح |
|---|---|---|
| Sequence Number | شماره ترتیب | مرتبسازی بستهها |
| Acknowledgment | تأیید دریافت | تأیید رسیدن بسته |
| Flow Control | کنترل جریان | جلوگیری از سرریز بافر |
| Congestion Control | کنترل ازدحام | جلوگیری از ازدحام شبکه |
| Window Size | اندازه پنجره | مقدار داده بدون تأیید |
درس بعدی: TCP Three-Way Handshake