مفاهیم اولیه پروتکل TCP/IP ( بخش پنجم )

آنچه تاکنون گفته شده است :
بخش اول  : معرفی  پروتکل TCP/IP بهمراه لایه های آن
بخش دوم   : بررسی پروتکل های موجود در  TCP/IP
بخش سوم : بررسی برنامه ها و ابزارهای کمکی در رابطه با پروتکل TCP/IP
بخش چهارم : بررسی Name Resoulation  
در این بخش به بررسی نحوه فرآیند انتقال اطلاعات خواهیم پرداخت .

TCP/IP ، بمنظور ارسال داده بر روی شبکه  آنها را به بخش های کوچکتری با نام Packets ( بسته های اطلاعاتی ) ، تقسیم می نماید. از بسته های اطلاعاتی ، بر اساس پروتکل های مرتبط با آنان با واژه های متفاوتی یاد می گردد. تقسیم داده به بسته های اطلاعاتی امری  حیاتی و ضروری است . ارسال حجم بالائی از اطلاعات در شبکه ، مدت زمان زیادی  طول خواهد کشید و همین امر ، باعث کند شدن شبکه  می گردد. در زمانیکه حجم بالائی از اطلاعات در شبکه جابجا می گردد ، سایر کامپیوترهای موجود در شبکه قادر به ارسال اطلاعات نخواهند بود. در چنین حالتی ، اگر در فرآیند انتقال اطلاعات اشکالی بروز نماید ، می بایست تمامی اطلاعات مجددا" ارسال شوند. در مقابل ، اگر بسته های اطلاعاتی کوچک بر روی شبکه ارسال گردند ، انتقال آنها بسرعت انجام و محیط انتقال به مدت زیادی ، اشغال نخواهد شد . در چنین حالتی در صورتیکه هر یک از بسته های اطلاعاتی با مشکل مواجه شوند ، صرفا"  بسته اطلاعاتی  که با مشکل مواجه شده است ، مجددا" ارسال می گردد. ( در مقابل ارسال تمام اطلاعات ) .
زمانیکه یک بسته اطلاعاتی به لایه اینترفیس شبکه ارسال می گردد ( Network interface layer ) ، به آن فریم ( frame )  می گویند .  فریم ، از بخش های  متفاوتی که  هر یک دارای عملکرد خاص خود  در جریان انتقال اطلاعات در لایه اینترفیس شبکه می باشند، تشکیل شده است  .
فرآیند ارسال اطلاعات، شامل مراحل متعددی است ( سازماندهی داده درون بسته های اطلاعاتی در کامپیوتر مبداء و بهم بستن آنان در کامپیوتر مقصد  بگونه ای که شکل اولیه مجددا" ایجاد گردد) . هر لایه از پروتکل TCP/IP  ، دارای نقشی موثر در کامپیوترهای مبداء و مقصد است .

واژگان بسته های اطلاعاتی ( Packets )
در هر یک از لایه های TCP/IP از بسته اطلاعاتی ( packet ) با اسامی متفاوتی نام برده می شود . همزمان با حرکت یک بسته اطلاعاتی از یک لایه به لایه دیگر در پروتکل TCP/IP ، هر یک از پروتکل های مربوطه ، اطلاعات اختصاصی خود را به آن اضافه می نمایند. از بسته اطلاعاتی بهمراه اطلاعات اضافه شده به آن ، با اسامی فنی دیگر ، یاد می گردد. این اسامی : Segment ( سگمنت ) ، message ( پیام ) ، datagram ( دیتاگرام ) و frame ( فریم )  ، می باشند . 

  • سگمنت . سگمنت واحد انتقال اطلاعات در TCP  بوده و شامل یک TCP header است که توسط Application data ، همراهی شده است .
  • پیام .  پیام ، واحد انتقال اطلاعات در پروتکل هائی نظیر ICMP,UDP,IGMP. و ARP است . پیام شامل یک Protocol header بوده که توسط Application و یا  protocol data ، همراهی شده است .
  • دیتاگرام . دیتاگرام ، واحد انتقال اطلاعات در سطح لایه IP است . دیتاگرام شامل یک IP header است که توسط لایه transport ، همراهی  شده است .
  • فریم . فریم ، واحد انتقال اطلاعات در سطح لایه اینترفیس شبکه است . فریم  شامل یک header است که در لایه network به آن اضافه شده است که توسط داده لایه IP ، همراهی  شده است .

اجزاء یک فریم
یک فریم ( اصطلاحی برای یک بسته اطلاعاتی در سطح لایه شبکه ) شامل سه بخش اساسی : header , data و trailer است .

Header . اطلاعات موجود در این بخش شامل موارد زیر می باشد :

  • یک سیگنال هشداردهنده  مبنی بر ارسال یک بسته اطلاعاتی 

  • آدرس مبداء

  • آدرس مقصد

Data . در این بخش ، اطلاعات واقعی ارسال شده توسط برنامه ، قرار می گیرد. این بخش از بسته اطلاعاتی  دارای اندازه های متفاوتی است  ( بستگی به محدودیت اندازه تنظیم شده توسط شبکه دارد) . بخش Data ، در اکثر شبکه ها از نیم کیلو بایت تا چهار کیلو بایت را می تواند شامل شود. در شبکه های اترنت ، اندازه داده تقریبا" معادل یک و نیم کیلو بایت است . با توجه به  اینکه اکثر تنظیمات داده های اولیه ، بیش از چهار کیلو بایت می باشند ،می بایست داده به بخش های کوچکتری با نام " بسته های اطلاعاتی " ( packet ) ، تقسیم گردد. در زمان انتقال یک فایل با ظرفیت بالا ، بسته های اطلاعاتی زیادی در طول شبکه منتقل خواهند شد.

Trailer . محتویات trailer ، ارتباط مستقیم به پروتکل استفاده شده در لایه اینترفیس شبکه دارد . trailer ، معمولا" شامل بخشی بمنظور بررسی خطاء بوده که CRC)Cyclical redundancy check) ، نامیده می شود .CRC ، عددی است که توسط یک محاسبه ریاضی بر روی بسته اطلاعتی در مبداء ( فرستنده)  ، تولید  می گردد . زمانیکه بسته اطلاعاتی به مقصد خود می رسد ، مجددا" محاسبه مربوطه انجام خواهد شد. در صورتیکه نتایج  بدست آمده ، یکسان باشد ، نشاندهنده صحت ارسال یک بسته اطلاعاتی خواهد بود . در صورتیکه ماحصل محاسبه در مقصد با نتیجه محاسبه شده در مبداء ، مغایرت داشته باشد ، بدین مفهوم خواهد بود که داده در زمان انتقال ، تغییر نموده است . در چنین حالتی ، کامپیوتز مبداء ، مجددا" داده را ارسال خواهد کرد .

جریان انتقال اطلاعات ( از کامپیوتر مبداء تا کامپیوتر مقصد )
بسته های اطلاعاتی ارسال شده از یک کامپیوتر برای کامپیوتر دیگر از بین لایه های متعدد پروتکل TCP/IP عبور خواهند کرد . بموازات رسیدن یک بسته اطلاعاتی به یک لایه  ، پروتکل های موجود در آن ، اطلاعات خاصی را به آن اضافه خواهند کرد . اطلاعات اضافه شده ( ضمیمه شده )  توسط هر پروتکل ، شامل اطلاعاتی در رابطه با  بررسی خطاء بوده  که Checksum ، نامیده می شود. از Checksum ،  بمنظور بررسی صحت ارسال اطلاعات اضافه شده در header توسط پروتکل مربوطه ، در پروتکل مقصد استفاده می گردد ( اطلاعات می بایست بی کم و کاست در اختیار پروتکل مقصد قرار بگیرند ) .فراموش نکنیم که  CRC  ، صحت انتقال یک بسته را بطور کامل بررسی می نماید. اطلاعات اضافه شده توسط پروتکل ها در هر لایه ، بعنوان داده توسط پروتکل های لایه زیرین ( پایین ) ، کپسوله خواهند شد. زمانیکه بسته اطلاعاتی به مقصد مورد نظر می رسد ، لایه مربوطه ( منتاظر ) یک بخش از header را برداشته و با باقی  بسته اطلاعاتی بعنوان داده برخورد خواهد کرد . بسته اطلاعاتی در ادامه بسمت پروتکل های موجود در لایه بالاتر ارسال و دراختیار پروتکل مربوطه قرار خواهد گرفت . در ادامه عملکرد هر یک از لایه ها را در فرآیند انتقال اطلاعات بررسی و این موضوع را از زاویه کامپیوتر مبداء و مقصد دنبال خواهیم نمود.

لایه Application
فرآیند انتقال اطلاعات از لایه application آغاز می گردد . یک برنامه نظیر FTP ، پردازش را در کامپیوتر مبداء مقدار دهی اولیه می نماید(آماده نمودن داده به فرمتی که برنامه در کامپیوتر مقصد ، قادر به تشخیص  آن باشد) . برنامه موجود در کامپیوتر مبداء ، کنترل تمامی فرآیند را برعهده خواهد داشت .

لایه Transport
از لایه Application ، داده به لایه transport منتقل می گردد. این لایه شامل پروتکل های TCP و UDP است . برنامه مورد نظر نوع پروتکل "حمل" را مشخص می نماید( TCP یا UDP ) . در هر دو حالت Checksum برای TCP و UDP اضافه خواهد شد.
در صورتیکه پروتکل TCP ، انتخاب گردد :

  •  یک دنباله عددی ( Sequence number ) به هر سگمنت منتقل شده ، اضافه خواهد شد.

  • اطلاعات مربوط  به  Acknowledgment برای یک ارتباط " اتصال- گرا" ، به هر سگمنت اضافه می شود .

  • شماره پورت TCP در رابطه با برنامه های مبداء و مقصد ، اضافه خواهد شد.

در صورتیکه پروتکل UDP ، انتخاب گردد :

  • شماره پورت UDP در رابطه با برنامه های مبداء و مقصد ، اضافه خواهد شد.

لایه اینترنت
پس از اینکه اطلاعات "حمل " اضافه گردید ، بسته اطلاعاتی در اختیار لایه "اینترنت " قرار داده می شود. در این لایه ، اطلاعات زیر به header  اضافه می گردد :

  • آدرس IP مبداء

  • آدرس IP مقصد

  • نوع پروتکل "حمل "

  • مقدار checksum

  • اطلاعات TTL)Time to Live)

علاوه بر اطلاعات فوق ، لایه اینترنت مسئولیت  بر طرف نمودن آدرس های IP مقصد به یک آدرس MAC  را نیز بر عهده دارد . پروتکل ARP ، مسئول انجام عملیات فوق ، است . آدرس MAC به header بسته اطلاعاتی اضافه و در ادامه بسته اطلاعاتی  در اختیار لایه " اینترفیس شبکه " ، قرار داده می شود.

لایه "اینترفیس شبکه "
لایه فوق ، پس از دریافت یک بسته اطلاعاتی از لایه IP ، اطلاعات زیر را به آن اضافه خواهد کرد :

  • یک Preamble ( مقدمه ) . دنباله ای از بایت ها است که ابتدای یک "فریم " را مشخص می نماید .

  • یک CRC .  ماحصل یک محاسبه ریاضی است که به انتهای فریم اضافه و از آن بمنظور صحت  ارسال فریم ، استفاده می گردد.

پس ازافزودن اطلاعات مورد نظر به فریم ها در لایه اینترفیس شبکه ، در ادامه فریم ها  بر روی شبکه ارسال خواهند شد.

عملیات در کامپیوتر مقصد
زمانیکه فریم ها به کامپیوتر مقصد می رسند ، لایه اینترفیس شبکه ، Preamble را حذف و مقدار CRC را مجددا" محاسبه می نماید. در صورتیکه مقدار بدست آمده با مقدار محاسبه شده در مبداء ، یکسان باشد در ادامه آدرس MAC مقصد ، موجود بر روی فریم،  بررسی می گردد . در صورتیکه آدرس MAC ، یک آدرس Broadcast   و یا آدرس MAC با کامپیوتر مقصد مطابقت نماید ، فریم به لایه "اینترنت " ، ارسال خواهد شد. در غیر اینصورت فریم نادیده گرفته می شود. در لایه IP ، مجددا" Checksum محاسبه و با مقدار محاسبه شده قبل از انتقال ، مقایسه تا این اطمینان حاصل گردد که بسته اطلاعاتی در طول مسیر تغییر ننموده است . در ادامه ، IP بسته اطلاعاتی را در اختیار پروتکل "حمل" ، قرار می دهد ( TCP  یا UDP ) . بمنظور تصمیم گیری در رابطه با نوع پروتکل "حمل " ، از اطلاعات موجود در IP header استفاده می گردد. در لایه "حمل" ،  در صورتیکه بسته اطلاعاتی از TCP دریافت شده باشد ، دنباله عددی ( sequence number ) بر روی بسته اطلاعاتی بررسی و یک acknowledgement برای TCP کامپیوتر مبداء ارسال می گردد . در ادامه از اطلاعات پورت TCP موجود در بسته اطلاعاتی استفاده تا  بسته اطلاعاتی برای برنامه مربوطه در لایه Application ، ارسال گردد.
 در صورتیکه UDP بسته اطلاعاتی را از لایه "اینترنت" دریافت نماید ، از اطلاعات پورت UDP موجود در بسته اطلاعاتی استفاده تا آن را برای برنامه مربوطه در لایه Application ارسال نماید . ( بدون ارسال یک acknowledgement  برای کامپیوتر مبداء ) .
پس از دریافت اطلاعات توسط Appliaction ، پردازش های لازم و ضروری در ارتباط با آنها انجام خواهد شد.

در بخش ششم این مقاله به بررسی "روتینگ داده " ، خواهیم پرداخت

  
نویسنده : ali gooliof ; ساعت ۱٢:٥٥ ‎ق.ظ روز ۱۳۸٧/٢/٢
تگ ها :