لایه Transport نسبت به لایه بالایی خود یعنی لایه Application، تعداد پروتکلهای کمتری دارد. دو پروتکل پرطرفدار و رایج این لایه عبارتاند از پروتکل Transmission Control Protocol یا TCP و پروتکل User Diagram Protocol یا UDP.
بر اساس معماری TCP/IP، لایه Transport برای پروتکلهای لایه Application خدماتی را ارائه میکند. شاید برای شما سوال به وجود آید که این سرویسدهی چگونه صورت میگیرد؟ در این درس میخواهیم با مفاهیم پایهای پروتکل TCP و بازیابی خطای آن، به صورت ویژه آشنا شویم.
برای درک بهتر نحوه عملکرد لایه Transport، شما باید به لایه بالایی، یعنی لایه Application فکر کنید. به این دلیل که هر لایه در واقع ایجاد شده تا به لایه بالایی خود سرویس بدهد. مانند بازیابی خطا که ایجاد شده تا به پروتکلهای لایه Application توسط پروتکل TCP سرویسدهی کند.
برای مثال، در شکل ۱-۴ ، Bob و Larry با استفاده از HTTP صفحه home.htm را از وب سرور Larry به مرورگر وب Bob منتقل کردند. اما چه اتفاقی میافتاد اگر درخواست HTTP GET Bob در مسیر انتقال از طریق شبکه TCP/IP، از دست میرفت؟ یا، چه اتفاقی میافتاد اگر پاسخ Larry، که شامل محتوای صفحه وب بود، به دلایلی از بین میرفت و به مقصد نمیرسید؟ همانطور که شما حدس میزنید، در این مورد، صفحه وب در مرورگر Bob نمایش داده نمیشد.
پروتکل TCP به مکانیزمی نیاز دارد تا تحویل اطلاعات به مقصد را تضمین کند. به این دلیل که تعداد زیادی از پروتکلهای لایه Application به این تضمین تحویل اطلاعات در شبکه را نیاز دارند. سازندگان پروتکل TCP، قابلیت بازیابی خطا یا error-recovery را برای این پروتکل در نظر گرفتهاند. به همین منظور، TCP از مفهومی به نام acknowledgment استفاده میکند. شکل ۲-۴ نشان میدهد که TCP چگونه از دست رفتن اطلاعات را متوجه میشود و از ارسال کننده میخواهد که بسته را مجدد ارسال کند.
شکل ۲-۴ نشان میدهد که وب سرور Larry در حال ارسال یک صفحه وب به مرورگر Bob در قالب سه پیام مجزا میباشد. توجه داشته باشید که این شکل در کنار هدر HTTP، یک هدر TCP را هم نمایش میدهد. این هدر TCP دارای یک شماره ترتیب یا sequence number (SEQ) برای هر بسته میباشد. در این مثال، شبکه دارای یک مشکل است، و مانع رسیدن بسته TCP شماره ۲ (به بستههای لایه Transport، سگمنت گفته میشود) به مقصد میشود. زمانی که Bob، بستههایی با Sequence شماره ۱ و ۳ را دریافت میکند، ولی بسته شماره ۲ را دریافت نمیکند، متوجه میشود که این بسته در طول مسیر از بین رفته است. با همین تفسیر، Bob با ارسال یک سگمنت TCP به Larry، از او میخواهد که بسته شماره ۲ را مجدد ارسال کند.
شکل ۲-۴ نشاندهنده پروسهای به نام “تعامل لایه مجاور” یا adjacent-layer interaction میباشد، به این مفهوم اشاره میکند که لایههای مجاور در یک مدل شبکهای، بر روی یک کامپیوتر، چگونه با یکدیگر کار میکنند. در این مثال، پروتکل لایه بالاتر (HTTP)، درخواست بازیابی خطا را میدهد، پس از پروتکل لایه پایین خود (TCP) استفاده میکند تا سرویس بازیابی خطا را اجرا کند. بنابراین، لایه پایین برای لایه بالا دستی خود سرویسی را فراهم میکند.
همچنین شکل ۲-۴ مثالی از عملکردی به نام same-layer interaction را نشان میدهد. زمانی که یک لایه در یک کامپیوتر میخواهد با همان لایه در کامپیوتری دیگر ارتباط برقرار کند، هر دو کامپیوتر از هدر (Header) برای ذخیره اطلاعاتی که نیاز دارند، استفاده میکنند. برای مثال، در شکل ۲-۴، Larry، sequence number را برابر ۱، ۲ و ۳ قرار میدهد تا Bob بتواند بستهای را که نرسیده تشخیص دهد. Larry در طی پروسه TCP، هدر TCP را با sequence number ایجاد میکند، و Bob هم سگمنتهای دریافتی را مورد بررسی قرار میدهد و به ترتیب اولیه در میآورد.