جلسه ششم : لایه transport از مدل TCP/IP
در قسمت قبل در مورد لایه application بحث کردیم در این قسمت به بررسی لایه transport از مدل TCP/IP میپردازیم . درمقایسه با پروتکل های لایه application از مدل TCP/IP لایه transport مدل TCP/IP دارای تعداد پروتکل کمتری است. دو پروتکل پرکاربرد لایه transport عبارتند از:
پروتکل Transmission Control Protocol (TCP) و پروتکل User Datagram Protocol (UDP) .
پروتکل های لایه Transport به پروتکل های لایه application (که در مدل TCP/IP در یک لایه بالاتر قرار دارند) خدمات ارائه می دهند. خب شاید واسه شما سوال پیش بیاد که چگونه یک پروتکل لایه transport خدمات را به یک پروتکل لایه بالاتر ارائه می دهد؟
برای پاسخ به این سوال در این قسمت بر روی یک یک سرویس واحد ارائه شده (error recovery) توسط TCP ، تمرکز میکنیم .
اصول بازیابی خطا TCP (TCP Error Recovery)
برای درک آنچه پروتکل های لایه transport انجام می دهند ، باید به لایه بالای لایه transport ، یعنی لایه application توجه کنید. چون ، هر لایه یک سرویس به لایه بالایی خود ارائه می دهد ، مانند سرویس بازیابی خطا که توسط TCP به پروتکل های لایه application ارائه می شود.
مثلا ، در شکل 1 ، باب و لری از HTTP برای انتقال صفحه اصلی از وب سرور لری به مرورگر وب باب استفاده کردند. اما اگر درخواست HTTP GET Bob در حال انتقال از طریق شبکه TCP/IP بود ، چه اتفاقی می افتاد؟ یا اگر پاسخ لری ، که شامل محتویات صفحه اصلی بود ، از بین می رفت ، چه اتفاقی می افتاد؟ خوب ، همانطور که انتظار دارید ، در هر صورت ، صفحه در مرورگر Bob نمایش داده نمی شد.
TCP/IP به مکانیزمی برای تضمین تحویل داده در سراسر شبکه نیاز دارد. از آنجا که بسیاری از پروتکل های لایه application احتمالاً راهی برای تضمین تحویل داده ها در سراسر شبکه می خواهند ، سازندگان TCP دارای ویژگی بازیابی خطا هستند . برای بازیابی خطاها ، TCP از مفهوم acknowledgments استفاده می کند. شکل 2 ایده اصلی TCP در مقابل داده های از دست رفته را نشان می دهد و از فرستنده می خواهد بسته را مجددا ارسال کند .
شکل 2 نشان می دهد که وب سرور لری با استفاده از سه پیام جداگانه یک صفحه وب را به مرورگر وب باب ارسال می کند. توجه داشته باشید که این شکل در کنار HTTP header ها یک TCP header را نیز نشان می دهد. TCP header با هر پیام یک شماره توالی (SEQ) را نشان می دهد. در این مثال ، شبکه مشکل دارد و نمی تواند پیام TCP (که به آن segment گفته می شود) را با شماره توالی 2 ارسال کند . هنگامی که باب پیام هایی با شماره توالی 1 و 3 دریافت می کند ، اما پیامی با شماره توالی 2 دریافت نمی کند ، متوجه می شود که پیام 2 از بین رفته است. پی بردن به منطق TCP باب باعث می شود که باب یک بخش TCP را به لری ارسال کند و از لری بخواهد دوباره پیام 2 را ارسال کند.