PDA

View Full Version : بررسی نحوه فرآیند انتقال اطلاعات(TCP/IPبخش پنجم)



الهام تفریشی
چهارشنبه 28 آبان 1382, 15:16 عصر
آنچه تاکنون گفته شده است :
بخش اول : معرفی پروتکل 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 ، پردازش های لازم و ضروری در ارتباط با آنها انجام خواهد شد.

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