akofaraji.ir
لایه Transportation
نوشته شده در تاریخ 30 فروردین 1403
نظرات: 0 امتیاز: 6 زمان مطالعه: 16 دقیقه
 

در ادامه بحث مقدماتی آموزش CCNA به توضیح در مورد لایه Transportation میپردازیم و از ویژگی ها و پروتکل های مهم این لایه خواهیم گفت.

 

در لایه Transportation ما دو پروتکل خیلی مهم داریم به نام (TCP (Transmission Control Protocol و (UDP (User Datagram Protocol .

 

فرق بین پروتکل TCP و UDP در این است که TCP به ازای هر بسته ای که میفرستد رسید یا Acknowledgment دریافت میکند. اگر از طریق TCP بسته ای را ارسال کنید و Ack آن بسته نیامد ، بسته بعدی ارسال نمیشود و دوباره همون بسته ارسال میشود تا Ack آن بسته بیاید و بعد برود سراغ بسته بعدی.

 

اما UDP نیاز به دریافت Ack ندارد.

 

اینکه پروتکل TCP بهتر است یا UDP بستگی به خواسته ما دارد. مثلا اگر جایی که سرعت برایمان مهم است از پروتکل UDP استفاده میکنیم و جایی که Reliability یا امنیت و اطمینان برایمان مهم است از پروتکل TCP استفاده خواهیم کرد.

مثلا برای دریافت فابل یا دانلود نرم افزار از TCP استفاده خواهیم کرد زیرا اگر یک packet گم بشود اون نرم افزار نصب نمیشود ولی برای Voice و Video از UDP استفاده میکنیم چون سرعت برایمان مهم است.

 

ویژگی های لایه Transportation :

 

UDP ّTCP ّFeature
yes yes Multiplexing
no yes Error Recovery
(Reliability)
no yes Connection Establishment
no yes Connection Termination
no yes Flow Control
no yes Segmentation
no yes Order Data Transfer

 

Multiplexing :

 

همانطور که قبلا نیز بحث کردیم multiplexing امکان ارائه چند سرویس به صورت همزمان روی یک host در بسته IP را فراهم میکند. (از طریق source port و destination port ) یعنی با استفاده از port number شما میتونی از یک source به یک destination چندین session مختلف بزنی.

مثلا سایت yahoo.com رو باز کنیم و در این سایت ایمیل و اخبار و … را باز کنیم.

 

Error Recovery :

 

Error Recovery با فیلدهای sequence number و acknowledgment number صورت میگیرد.

 

sequence number چیست؟ مثلا من یک بسته دارم ۲۰ هزار بایت است و این ۲۰ هزار بایت رو Fragment میکنم یعنی تو بسته های کوچیک چوچیک ارسال میکنم. این بسته های کوچیک کوچیک به ترتیب ارسال میشوند و مثلا میگوییم این بسته ۱ و این بسته ۲ و این بسته ۱۲۰۰ و… . به این شماره sequence number میگوییم. یک فیلدی تو لایه ۴ داریم که هدرش sequence number است که با این فیلد بسته های fragment شده مرتب میشوند.

 

یک فیلد دیگری داریم به نام acknowledgment number که رسید فیلد sequence number است.

 

به این کار میگوییم Error Recovery و فقط در TCP انجام میشود.

 

یک اصطلاحی داریم به نام Window Size که میگوید این روش که به ازای هر بسته یک Acknowledgment دریافت کنیم خیلی طولانی است و قرار بذاریم مثلا به ازای هر ۱۵۰۰ بایت یک Acknowledgment دریافت کنیم. حالا اینجا دو حالت داریم :

 

مثلا من ۲۰۰۰ بسته ارسال میکنم و طرف یا ۲۰۰۰ بسته را دریافت کرده یا یکی از این ۲۰۰۰ تا مثلا بسته ۱۲۰۰ رو دریافت نکرده. اینجا دو تا رویکرد وجود دارد:

اگه طرف Buffer داشه باشه یعنی بسته ها رو یک جا ذخیره کرده باشه ، فقط یک (Nack (Navigation Acknowledgment ارسال میکند. مثلا Nack 1200 . یعنی ۱۲۰۰ رو نگرفتم و بسته ۱۲۰۰ رو دوباره برام ارسال کن.

اگه طرف Buffer نداشته باشه این مجبوره از ۱۲۰۰ به بعد را دوباره برایش ارسال کند.

 

Flow Control :

 

روش های Flow Control به صورت زیر است:

  1. Using Congestion Window
  2. Using Receiver Window

 

Flow Control یعنی کنترل سرعت فرستنده ( هر کدام از طرفین میتوانند فرستنده باشند )

سرعت فرستنده یعنی فرستنده حق دارد چند بسته را بدون دریافت Ack ارسال کند.

شما به راحتی میتوانی با ارسال و یا عدم ارسال Ack سرعت فرستنده را کنترل کنی.

 

به دو دلیل سرعت فرستنده باید محدود شود.

  1. Bottle Neck بودن پهنای بایند مسیر
  2. Bottle Neck بودن گیرنده

Bottle Neck بودن پهنای بایند مسیر : شما ممکن است سرعت فرستنده و گیرنده بالا باشد اما سرعت اینترفیس و یا مسیر پایین است.

Bottle Neck بودن گیرنده : به دلیل پایین بودن سرعت پردازش و حافظه سیستم گیرنده.

 

Connection Establishment :

 

تمامی application های مبتنی بر TCP ، قبل از برقراری ارتباط و ارسال و دریافت Data ، عمل Hand Shaking انجام میدهند. به این معنی که یاهم یر سر برقراری ارتباط توافق مینمایند.

 

Connection Termination :

 

نه تنها شروع TCP connection با هماهنگی آغاز میگردد بلکه خاتمه آن نیز نیاز به هماهنگی دارد و آن بر عهده Termination است.

معمولا در خواست خاتمه ارتباط یا Connection Termination از سوی Client صورت میگیرد.

 

Segmentation :

 

داده ای که توسط Application آماده میگردد ممکن است دارای سایز بزرگی باشد ( مثلا وقتی که Email ای آماده ارسال میکنید ) اما هم اینترفیس های خروجی server یا client و هم اینترفیس های بین راه محدودیتی در سایز ارسالی packet ها ایجاد مینمایند.

لذا داده باید قبل از ارسال به بسته هایی متناسب با سایز MTU بخش بندی شود. این عمل توسط لایه Transportation انجام میشود یعنی لایه Transportation داده را از لایه Application میگیرد ، بخش بندی میکند و تحوبل لایه ۳ میدهد.

 

اما MTU چیست ؟

 

MTU یا Maximum Transmission Unit میگه حد اکثر سایز بسته بدون این که به بسته های کوچک تر تقسیم کنیم یا به اصطلاح Fragment کنیم تا روی اینترفیس قرار دهیم ، چقدر است.

 

Ordering :

 

TCP قبل از آنکه بسته را تحویل لایه Application بدهد باید بسته ها را پشت سر هم قرار دهد. TCP Reordering از فیلد Sequence Number برای مرتب سازی بسته های دریافتی استفاده میکند.

 

با توجه به مسائل مطرح شده قالب TCP Header و UDP Header به صورت زیر است:

TCP Header :

 

 

UDP Header :

 

 

اندازه هدر های پروتکل های مختلف TCP/IP در لایه ها:

هدر پروتکل های لایه ۲ :

Ethernet : 14 Byte

PPP : 6 Byte

هدر پروتکل لایه ۳ :

IP : 20 Byte

هدر پروتکل لایه ۴ :

TCP : 20 Byte

UDP : 8 Byte

 

سوال : چرا بعضی از Application ها روی پروتکل TCP و بعضی روی UDP سوار میشوند؟ چه کسی و بر اساس چه معیاری انتخاب میکند که یک Application روی چه پروتکلی در لایه Transport سوار شود؟

 

بستگی به این مطلب دارد که Application ویژگی های TCP را نیاز داشته باشد یا خیر. مثلا اگر Application برایش مهم باشد که هیچ بسته ای گم نشود ، باید از ویژگی Raliability بهره ببرد که از ویژگی های TCP است. برخی از Application ها که از پروتکل TCP استفاده میکنند عبارتند از: Http , Ftp , Telnet , Ssh , …

 

جالب است بدانید برای انتقال فابل از دو پروتکل FTP که از TCP استفاده میکند و TFTP که از UDP استفاده میکند ، استفاده میشود.

 

در این جا آموزش مقدماتی دوره CCNA تمام میشود و از مبحث بعدی وارد بحث CCNA Switch میشویم.

 

منبع: سایت سابیو


اگر احساس می کنید این مطلب برای شما مفید بود ، از 1 تا 10 به این مطلب امتیاز دهید

دیدگاه کاربران در مورد این مطلب

ثبت نظر
به نظر خوب میاد!
لطفا نام را وارد کنید
@
لطفا یک ایمیل منحصر به فرد و معتبر انتخاب کنید.
لطفا متن با کلمات و معانی مفهوم دار وارد نمایید