-1)تعاریف (definitions):
سگمنت ((Segment: به بسته های TCP (Data,Ack) اصطلاحا سگمنت گفته می شود.
(Sender Maximum Segment Size)SMSS: اندازه بزرگترین سگمنتی که فرستنده می تواند ارسال کند. این مقدار براساس حداکثر واحد انتقال در شبکه ، الگوریتمهای تعیین MTU ، RMSS یا فاکتورهای دیگر تعیین می شود. این اندازه شامل هدر بسته و option نمی باشد.
(Receiver Maximum Segment Size)RMSS: سایز بزرگترین سگمنتی که گیرنده می تواند دریافت کند. که در یک ارتباط در فیلد MSS در option توسط گیرنده تعیین می شود و شامل هدر و option نمی باشد.
(Receiver Window)rwnd: طول پنجره سمت گیرنده.
(Congestion Window )cwnd: نشان دهنده وضعیت متغیر TCP است که میزان داده در شبکه را محدود می کند.در هر لحظه , حجم داده در شبکه به اندازه مینیمم cwnd و rwnd می باشد.
1-2)مکانیزمهای کنترل ازدحام در شبکه TCP:
در یک شبکه زمانیکه ترافیک بار از ظرفیت شبکه بیشتر می شود ، ازدحام اتفاق می افتد.که به منظورکنترل ازدحام در شبکه الگوریتمهای متفاوتی وجود دارد. در یک ارتباط ، لایه شبکه تا حدی قادر به کنترل ازدحام در شبکه است اما راه حل واقعی برای اجتناب از ازدحام پایین آوردن نرخ تزریق داده در شبکه است. TCP با تغییر سایز پنجره ارسال تلاش میکند که نرخ تزریق داده را کنترل کند.
شناسایی ازدحام اولین گام در جهت کنترل آن است.
در گذشته ،شناسایی ازدحام به راحتی امکانپذیر نبود. از نشانه های آن وقوع Timeout بدلیل اتلاف بسته یا وجود noise در خط ارتباطی یا اتلاف بسته ها در روترهای پر ازدحام و ... را می توان نام برد. اما امروزه از آنجا که اکثرا تکنولوژی بستر ارتباطی از نوع فیبر می باشد اتلاف بسته ها که منجر به خطای ارتباطی شود بندرت اتفاق می افتد. و از طرفی وقوع Timeout در اینترنت بدلیل ازدحام می باشد.
در همه الگوریتمهای TCP فرض بر این است که وقوع Timeout بدلیل ازدحام شبکه است.
در شروع یک ارتباط در شبکه ،سایز پنجره مناسب تعیین می شود. گیرنده بر اساس سایز بافر خود می تواند سایز پنجره را تعیین کند. اگر میزان داده های ارسالی از فرستنده در حد سایز پنجره باشد ،مشکلی پیش نمی آید. در غیر اینصورت در سمت گیرنده Overflow اتفاق می افتد. پس بطور کلی با دو مسئله مواجه هستیم:
1- ظرفیت شبکه
2- ظرفیت گیرنده
که دریک ارتباط باید این دو مورد را در نظر گرفت.
فرستنده در هنگام ارسال ،سایز دو پنجره را در نظر می گیرد.
1- پنجره سمت گیرنده
2- پنجرا ازدحام
که سایز پنجره ارسال به اندازه مینیمم این دو مقدار تعیین می شود.
کنترل ازدحام در شبکه TCP از بالا رفتن ظرفیت شبکه جلوگیری می کند . در واقع به فرستنده اجازه مس دهد نرخ ارسال داده در شبکه را به منظور جلوگیری از ازدحام تنظیم نماید.
مکانیزمهای کنترل ازدحام که توسط TCP حمایت می شوند عمدتا شامل 4 مرحله اصلی می باشند که عبارتند از:
1- Slow Start
2- Congestion Avoidance
3- Fast Retransmission
4- Fast Recovery
که در ادامه هر یک به تفصیل شرح داده می شوند.
1-2-1)Slow Start: در شروع یک ارتباط ،ارسال داده ها به سمت گیرنده به اندازه حداکثر ظرفیت سمت گیرنده انجام نمی شود. بلکه فرستنده تعدادی بسته در شروع ارسال می کند و منتظر دریافت Ack بسته های ارسالی می شود. و سپس بتدریج نرخ ارسال را افزایش می دهد . این مکانیزم به فرستنده TCP این اجازه را می دهد که وضعیت موجود شبکه اعم از پهنای باند در دسترس را شناسایی کند.
مکانیزم Slow Start درموارد زیر کاربرد دارد:
1- در شروع هر ارتباط مبتی بر TCP.
2- در شروع مجدد یک ارتباط TCP بعد از مدتی بیکاری.
3- در شروع مجدد یک ارتباط TCP بعد از وقوع Timeout.
شکل(1) مکانیزم Slow Start در TCP را به تصویر کشیده است. در مرحله Slow Start فرستنده باید سایز پنجره ازدحام (Cwnd که میزان ترافیک در شبکه را مشخص می کند) داشته باشد. تعداد سگمنتهای ارسالی از سمت فرستنده در هر لحظه به اندازه مینیمم سایز پنجره ازدحام و سایز پنجره سمت گیرنده می باشد.