مفاهيم اوليه پروتکل TCP/IP
چهارشنبه 18 خرداد 1390 2:34 AM
مفاهيم اوليه پروتکل TCP/IP
TCP/IP ، يکی از مهمترين پروتکل های استفاده شده در شبکه های کامپيوتری است . اينترنت بعنوان بزرگترين شبکه موجود ، از پروتکل فوق بمنظور ارتباط دستگاه های متفاوت استفاده می نمايد. پروتکل ، مجموعه قوانين لازم بمنظور قانونمند نمودن نحوه ارتباطات در شبکه های کامپيوتری است .در مجموعه مقالاتی که ارائه خواهد شد به بررسی اين پروتکل خواهيم پرداخت . در اين بخش مواردی همچون : فرآيند انتقال اطلاعات ، معرفی و تشريح لايه های پروتکل TCP/IP و نحوه استفاده از سوکت برای ايجاد تمايز در ارتباطات ، تشريح می گردد.
مقدمه
امروزه اکثر شبکه های کامپيوتری بزرگ و اغلب سيستم های عامل موجود از پروتکل TCP/IP ، استفاده و حمايت می نمايند. TCP/IP ، امکانات لازم بمنظور ارتباط سيستم های غيرمشابه را فراهم می آورد. از ويژگی های مهم پروتکل فوق ، می توان به مواردی همچون : قابليت اجراء بر روی محيط های متفاوت ، ضريب اطمينان بالا ،قابليت گسترش و توسعه آن ، اشاره کرد . از پروتکل فوق، بمنظور دستيابی به اينترنت و استفاده از سرويس های متنوع آن نظير وب و يا پست الکترونيکی استفاده می گردد. تنوع پروتکل های موجود در پشته TCP/IP و ارتباط منطقی و سيستماتيک آنها با يکديگر، امکان تحقق ارتباط در شبکه های کامپيوتری را با اهداف متفاوت ، فراهم می نمايد. فرآيند برقراری يک ارتباط ، شامل فعاليت های متعددی نظير : تبديل نام کامپيوتر به آدرس IP معادل ، مشخص نمودن موقعيت کامپيوتر مقصد ، بسته بندی اطلاعات ، آدرس دهی و روتينگ داده ها بمنظور ارسال موفقيت آميز به مقصد مورد نظر ، بوده که توسط مجموعه پروتکل های موجود در پشته TCP/IP انجام می گيرد.
معرفی پروتکل TCP/IP
TCP/IP ، پروتکلی استاندارد برای ارتباط کامپيوترهای موجود در يک شبکه مبتنی بر ويندوز 2000 است. از پروتکل فوق، بمنظور ارتباط در شبکه های بزرگ استفاده می گردد. برقراری ارتباط از طريق پروتکل های متعددی که در چهارلايه مجزا سازماندهی شده اند ، ميسر می گردد. هر يک از پروتکل های موجود در پشته TCP/IP ، دارای وظيفه ای خاص در اين زمينه ( برقراری ارتباط) می باشند . در زمان ايجاد يک ارتباط ، ممکن است در يک لحظه تعداد زيادی از برنامه ها ، با يکديگر ارتباط برقرار نمايند. TCP/IP ، دارای قابليت تفکيک و تمايز يک برنامه موجود بر روی يک کامپيوتر با ساير برنامه ها بوده و پس از دريافت داده ها از يک برنامه ، آنها را برای برنامه متناظر موجود بر روی کامپيوتر ديگر ارسال می نمايد. نحوه ارسال داده توسط پروتکل TCP/IP از محلی به محل ديگر ، با فرآيند ارسال يک نامه از شهری به شهر، قابل مقايسه است .
برقراری ارتباط مبتنی بر TCP/IP ، با فعال شدن يک برنامه بر روی کامپيوتر مبدا آغاز می گردد . برنامه فوق ،داده های مورد نظر جهت ارسال را بگونه ای آماده و فرمت می نمايد که برای کامپيوتر مقصد قابل خواندن و استفاده باشند. ( مشابه نوشتن نامه با زبانی که دريافت کننده ، قادر به مطالعه آن باشد) . در ادامه آدرس کامپيوتر مقصد ، به داده های مربوطه اضافه می گردد ( مشابه آدرس گيرنده که بر روی يک نامه مشخص می گردد) . پس از انجام عمليات فوق ، داده بهمراه اطلاعات اضافی ( درخواستی برای تائيد دريافت در مقصد ) ، در طول شبکه بحرکت درآمده تا به مقصد مورد نظر برسد. عمليات فوق ، ارتباطی به محيط انتقال شبکه بمنظور انتقال اطلاعات نداشته ، و تحقق عمليات فوق با رويکردی مستقل نسبت به محيط انتقال ، انجام خواهد شد .
لايه های پروتکل TCP/IP
TCP/IP ، فرآيندهای لازم بمنظور برقراری ارتباط را سازماندهی و در اين راستا از پروتکل های متعددی در پشته TCP/IP استفاده می گردد. بمنظور افزايش کارآئی در تحقق فرآيند های مورد نظر، پروتکل ها در لايه های متفاوتی، سازماندهی شده اند . اطلاعات مربوط به آدرس دهی در انتها قرار گرفته و بدين ترتيب کامپيوترهای موجود در شبکه قادر به بررسی آن با سرعت مطلوب خواهند بود. در اين راستا، صرفا" کامپيوتری که بعنوان کامپيوتر مقصد معرفی شده است ، امکان باز نمودن بسته اطلاعاتی و انجام پردازش های لازم بر روی آن را دارا خواهد بود. TCP/IP ، از يک مدل ارتباطی چهار لايه بمنظور ارسال اطلاعات از محلی به محل ديگر استفاده می نمايد: Application ,Transport ,Internet و Network Interface ، لايه های موجود در پروتکل TCP/IP می باشند.هر يک از پروتکل های وابسته به پشته TCP/IP ، با توجه به رسالت خود ، در يکی از لايه های فوق، قرار می گيرند.
لايه Application
لايه Application ، بالاترين لايه در پشته TCP/IP است .تمامی برنامه و ابزارهای کاربردی در اين لايه ، با استفاده از لايه فوق، قادر به دستتيابی به شبکه خواهند بود. پروتکل های موجود در اين لايه بمنظور فرمت دهی و مبادله اطلاعات کاربران استفاده می گردند . HTTP و FTP دو نمونه از پروتکل ها ی موجود در اين لايه می باشند .
لايه Transport
لايه " حمل " ، قابليت ايجاد نظم و ترتيب و تضمين ارتباط بين کامپيوترها و ارسال داده به لايه Application ( لايه بالای خود) و يا لايه اينترنت ( لايه پايين خود) را بر عهده دارد. لايه فوق ، همچنين مشخصه منحصربفردی از برنامه ای که داده را عرضه نموده است ، مشخص می نمايد. اين لايه دارای دو پروتکل اساسی است که نحوه توزيع داده را کنترل می نمايند.
لايه اينترنت
لايه "اينترنت"، مسئول آدرس دهی ، بسته بندی و روتينگ داده ها ، است. لايه فوق ، شامل چهار پروتکل اساسی است :
لايه Network Interface
لايه " اينترفيس شبکه " ، مسئول استقرار داده بر روی محيط انتقال شبکه و دريافت داده از محيط انتقال شبکه است . لايه فوق ، شامل دستگاه های فيزيکی نظير کابل شبکه و آداپتورهای شبکه است . کارت شبکه ( آداپتور) دارای يک عدد دوازده رقمی مبنای شانزده ( نظير : B5-50-04-22-D4-66 ) بوده که آدرس MAC ، ناميده می شود. لايه " اينترفيس شبکه " ، شامل پروتکل های مبتنی بر نرم افزار مشابه لايه های قبل ، نمی باشد. پروتکل های Ethernet و ATM)Asynchronous Transfer Mode) ، نمونه هائی از پروتکل های موجود در اين لايه می باشند . پروتکل های فوق ، نحوه ارسال داده در شبکه را مشخص می نمايند.
مشخص نمودن برنامه ها
در شبکه های کامپيوتری ، برنامه ها ی متعددی در يک زمان با يکديگر مرتبط می گردند. زمانيکه چندين برنامه بر روی يک کامپيوتر فعال می گردند ، TCP/IP ، می بايست از روشی بمنظور تمايز يک برنامه از برنامه ديگر، استفاده نمايد. بدين منظور ، از يک سوکت ( Socket) بمنظور مشخص نمودن يک برنامه خاص ، استفاده می گردد.
آدرس IP
برقراری ارتباط در يک شبکه ، مستلزم مشخص شدن آدرس کامپيوترهای مبداء و مقصد است ( شرط اوليه بمنظور برقراری ارتباط بين دو نقطه ، مشخص بودن آدرس نقاط درگير در ارتباط است ) . آدرس هر يک از دستگاه های درگير در فرآيند ارتباط ، توسط يک عدد منحصربفرد که IP ناميده می شود ، مشخص می گردند. آدرس فوق به هريک از کامپيوترهای موجود در شبکه نسبت داده می شود . IP : 10. 10.1.1 ، نمونه ای در اين زمينه است .
پورت TCP/UDP
پورت مشخصه ای برای يک برنامه و در يک کامپيوتر خاص است .پورت با يکی از پروتکل های لايه "حمل" ( TCP و يا UDP ) مرتبط و پورت TCP و يا پورت UDP ، ناميده می شود. پورت می تواند عددی بين صفر تا 65535 را شامل شود. پورت ها برای برنامه های TCP/IP سمت سرويس دهنده ، بعنوان پورت های "شناخته شده " ناميده شده و به اعداد کمتر از 1024 ختم و رزو می شوند تا هيچگونه تعارض و برخوردی با ساير برنامه ها بوجود نيايد. مثلا" برنامه سرويس دهنده FTP از پورت TCP بيست و يا بيست ويک استفاده می نمايد.
سوکت (Socket)
سوکت ، ترکيبی از يک آدرس IP و پورت TCP ويا پورت UDP است . يک برنامه ، سوکتی را با مشخص نمودن آدرس IP مربوط به کامپيوتر و نوع سرويس ( TCP برای تضمين توزيع اطلاعات و يا UDP) و پورتی که نشاندهنده برنامه است، مشخص می نمايد. آدرس IP موجود در سوکت ، امکان آدرس دهی کامپيوتر مقصد را فراهم و پورت مربوطه ، برنامه ای را که داده ها برای آن ارسال می گردد را مشخص می نمايد.
در بخش دوم اين مقاله به تشريح هر يک از پروتکل های موجود در پشته TCP/IP، خواهيم پرداخت .
مفاهيم اوليه پروتکل TCP/IP ( بخش دوم )
در بخش اول اين مقاله ،پروتکل TCP/IP بهمراه لايه های آن معرفی گردييد . در اين بخش ، به بررسی پروتکل های موجود در TCP/IPخواهيم پرداخت .
TCP/IP ،شامل شش پروتکل اساسی( TCP,UDP,IP,ICMP,IGMP ،ARP ) و مجموعه ای از برنامه های کاربردی است. پروتکل های فوق، مجموعه ای از استادنداردها ی لازم بمنظور ارتباط بين کامپيوترها و دستگاهها را در شبکه ، فراهم می نمايد. تمامی برنامه ها و ساير پروتکل ها ی موجود در پروتکل TCP/IP ، به پروتکل های شش گانه فوق مرتبط و از خدمات ارائه شده توسط آنان استفاده می نمايند . در ادامه به تشريح عملکرد و جايگاه هر يک از پروتکل های اشاره شده ، خواهيم پرداخت .
پروتکل TCP : لايه Transport
TCP) Transmission Control Protocol) ، يکی از پروتکل های استاندارد TCP/IP است که امکان توزيع و عرضه اطلاعات ( سرويس ها) بين صرفا" دو کامپيوتر ، با ضريب اعتماد بالا را فراهم می نمايد. چنين ارتباطی ( صرفا" بين دو نقطه ) ، Unicast ناميده می شود . در ارتباطات با رويکرد اتصال گرا ، می بايست قبل از ارسال داده ، ارتباط بين دو کامپيوتر برقرار گردد . پس از برقراری ارتباط ، امکان ارسال اطلاعات برای صرفا" اتصال ايجاد شده ، فراهم می گردد . ارتباطات از اين نوع ، بسيار مطمئن می باشند ، علت اين امر به تضمين توزيع اطلاعات برای مقصد مورد نظر برمی گردد . بر روی کامپيوتر مبداء ، TCP داده هائی که می بايست ارسال گردند را در بسته های اطلاعاتی (Packet) سازماندهی می نمايد. در کامپيوتر مقصد ، TCP ، بسته های اطلاعاتی را تشخيص و داده های اوليه را مجددا" ايجاد خواهد کرد .
ارسال اطلاعات با استفاده از TCP
TCP ، بمنظور افزايش کارائی ، بسته های اطلاعاتی را بصورت گروهی ارسال می نمايد . TCP ، يک عدد سريال ( موقعيت يک بسته اطلاعاتی نسبت به تمام بسته اطلاعاتی ارسالی ) را به هريک از بسته ها نسبت داده و از Acknowledgment بمنظور اطمينان از دريافت گروهی از بسته های اطلاعاتی ارسال شده ، استفاده می نمايد. در صورتيکه کامپيوتر مقصد ، در مدت زمان مشخصی نسبت به اعلام وصول بسته های اطلاعاتی ، اقدام ننمايد ، کامپيوتر مبداء ، مجددا" اقدام به ارسال اطلاعات می نمايد. علاوه برافزودن يک دنباله عددی و Acknowledgment به يک بسته اطلاعاتی ، TCP اطلاعات مربوط به پورت مرتبط با برنامه ها ی مبداء و مقصد را نيز به بسته اطلاعاتی اضافه می نمايد. کامپيوتر مبداء ، از پورت کامپيوتر مقصد بمنظور هدايت صحيح بسته های اطلاعاتی به برنامه مناسب بر روی کامپيوتر مقصد ، استفاده می نمايد. کامپيوتر مقصد از پورت کامپيوتر مبداء بمنظور برگرداندن اطلاعات به برنامه ارسال کننده در کامپيوتر مبداء ، استفاده خواهد کرد .
هر يک از کامپيوترهائی که تمايل به استفاده از پروتکل TCP بمنظور ارسال اطلاعات دارند ، می بايست قبل از مبادله اطلاعات ، يک اتصال بين خود ايجاد نمايند . اتصال فوق ، از نوع مجازی بوده و Session ناميده می شود .دو کامپيوتر درگير در ارتباط ، با استفاده از TCP و بکمک فرآيندی با نام : Three-Way handshake ، با يکديگر مرتبط و هر يک پايبند به رعايت اصول مشخص شده در الگوريتم مربوطه خواهند بود . فرآيند فوق ، در سه مرحله صورت می پذيرد :
پروتکل UDP : لايه Transport
UDP) User Datagram Protocol ) ، پروتکلی در سطح لايه "حمل" بوده که برنامه مقصد در شبکه را مشخص نموده و از نوع بدون اتصال است . پروتکل فوق، امکان توزيع اطلاعات با سرعت مناسب را ارائه ولی در رابطه با تضمين صحت ارسال اطلاعات ، سطح مطلوبی از اطمينان را بوجود نمی آورد . UDP در رابطه با داده های دريافتی توسط مقصد ، به Acknowledgment نيازی نداشته و در صورت بروز اشکال و يا خرابی در داده های ارسال شده ، تلاش مضاعفی بمنظور ارسال مجدد داده ها ، انجام نخواهد شد . اين بدان معنی است که داده هائی کمتر ارسال می گردد ولی هيچيک از داده های دريافتی و صحت تسلسل بسته های اطلاعاتی ، تضمين نمی گردد .از پروتکل فوق ، بمنظور انتقال اطلاعات به چندين کامپيوتر با استفاده از Broadcast و يا Multicast ، استفاده بعمل می آيد . پروتکل UDP ، در موارديکه حجم اندکی از اطلاعات ارسال و يا اطلاعات دارای اهميت بالائی نمی بانشد ، نيز استفاده می گردد. استفاده از پروتکل UDP در مواردی همچون Multicasting Streaming media ، (نظير يک ويدئو کنفرانس زنده) و يا انتشار ليستی از اسامی کامپيوترها که بمنظور ارتباطات محلی استفاده می گردند ، متداول است . بمنظور استفاده از UDP ، برنامه مبداء می بايست پورت UDP خود را مشخص نمايد دقيقا" مشابه عملياتی که می بايست کامپيوتر مقصد انجام دهد . لازم به يادآوری است که پورت های UDP از پورت های TCP مجزا و متمايز می باشند (حتی اگر دارای شماره پورت يکسان باشند ).
پروتکل IP : لايه Internet
IP) Internet Protocol ) ، امکان مشخص نمودن محل کامپيوتر مقصد در يک شبکه ارتباطی را فراهم می نمايد. IP ، يک پروتکل بدون اتصال و غيرمطمئن بوده که اولين مسئوليت آن آدرس دهی بسته های اطلاعاتی و روتينگ بين کامپيوترهای موجود در شبکه است . با اينکه IP همواره سعی در توزيع يک بسته اطلاعاتی می نمايد ، ممکن است يک بسته اطلاعاتی در زمان ارسال گرفتار مسائل متعددی نظير : گم شدن ، خرابی ، عدم توزيع با اولويت مناسب ، تکرار در ارسال و يا تاخير، گردند.در چنين مواردی ، پروتکل IP تلاشی بمنظور حل مشکلات فوق را انجام نخواهد داد ( ارسال مجدد اطلاعات درخواستی ) .آگاهی از وصول بسته اطلاعاتی در مقصد و بازيافت بسته های اطلاعاتی گم شده ، مسئوليتی است که بر عهده يک لايه بالاتر نظير TCP و يا برنامه ارسال کننده اطلاعات ، واگذار می گردد .
عمليات انجام شده توسط IP
می توان IP را بعنوان مکانی در نظر گرفت که عمليات مرتب سازی و توزيع بسته های اطلاعاتی در آن محل ، صورت می پذيرد .بسته ها ی اطلاعاتی توسط يکی از پروتکل های لايه حمل ( TCP و يا UDP) و يا از طريق لايه " ايترفيس شبکه " ، برای IP ارسال می گردند . اولين وظيفه IP ، روتينگ بسته های اطلاعاتی بمنظور ارسال به مقصد نهائی است . هر بسته اطلاعاتی ، شامل آدرس IP مبداء ( فرستنده ) و آدرس IP مقصد ( گيرنده ) می باشد. در صورتيکه IP ، آدرس مقصدی را مشخص نمايد که در همان سگمنت موجود باشد ، بسته اطلاعاتی مستقيما" برای کامپيوتر مورد نظر ارسال می گردد . در صورتيکه آدرس مقصد در همان سگمنت نباشد ، IP ، می بايست از يک روتر استفاده و اطلاعات را برای آن ارسال نمايد.يکی ديگر از وظايف IP ، ايجاد اطمينان از عدم وجود يک بسته اطلاعاتی ( بلاتکليف ! ) در شبکه است . بدين منظور محدوديت زمانی خاصی در رابطه با مدت زمان حرکت بسته اطلاعاتی در طول شبکه ، در نظر گرفته می شود .عمليات فوق، توسط نسبت دادن يک مقدار TTL)Time To Live) به هر يک از بسته های اطلاعاتی صورت می پذيرد. TTL ، حداکثر مدت زمانی را که بسته اطلاعاتی قادر به حرکت در طول شبکه است را مشخص می نمايد( قبل از اينکه بسته اطلاعاتی کنار گذاشته شود) .
پروتکل ICMP : لايه Internet
ICMP) Internet Control Message Protocol) ، امکانات لازم در خصوص اشکال زدائی و گزارش خطاء در رابطه با بسته های اطلاعاتی غيرقابل توزيع را فراهم می نمايد. با استفاده از ICMP ، کامپيوترها و روترها که از IP بمنظور ارتباطات استفاده می نمايند ، قادر به گزارش خطاء و مبادله اطلاعاتی محدود در رابطه وضعيت بوجود آمده می باشند. مثلا" در صورتيکه IP ، قادر به توزيع يک بسته اطلاعاتی به مقصد مورد نظر نباشد ، ICMP يک پيام مبتنی بر غيرقابل دسترس بودن را برای کامپيوتر مبداء ارسال می دارد . با اينکه پروتکل IP بمنظور انتقال داده بين روترهای متعدد استفاده می گردد ، ولی ICMP به نمايندگی از TCP/IP ، مسئول ارائه گزارش خطاء و يا پيام های کنترلی است . تلاش ICMP ، در اين جهت نيست که پروتکل IP را بعنوان يک پروتکل مطمئن مطرح نمايد ، چون پيام های ICMP دارای هيچگونه محتوياتی مبنی بر اعلام وصول پيام (Acknowledgment ) بسته اطلاعاتی نمی باشند . ICMP ، صرفا" سعی در گزارش خطاء و ارائه فيدبک های لازم در رابطه با تحقق يک وضعيت خاص را می نمايد .
پروتکل IGMP : لايه Internet
IGMP) Internet Group Managment Protocol) ، پروتکلی است که مديريت ليست اعضاء برای IP Multicasting ، در يک شبکه TCP/IP را بر عهده دارد . IP Multicasting، فرآيندی است که بر اساس آن يک پيام برای گروهی انتخاب شده از گيرندگان که گروه multicat ناميده می شوند ؛ ارسال می گردد . IGMP ليست اعضاء را نگهداری می نمايد .
مديريت IP Multicasting
تمامی اعضاء يک گروه multicast ، به ترافيک IP هدايت شده به يک آدرس Multicast IP ، گوش داده و بسته های اطلاعاتی ارسال شده به آن آدرس را دريافت می نمايند. زمانيکه چندين کامپيوتر نيازمند دستيابی به اطلاعاتی نظير Streaming media باشند، يک آدرس IP رزوشده برای multicasting استفاده می گردد. روترها که بمنظور پردازش multicast پيکربندی می گردند، اطلاعات را انتخاب و آنها را برای تمامی مشترکين گروه multicast ارسال ( Forward ) می نمايند . بمنظور رسيدن اطلاعات Multicast به گيرندگان مربوطه ، هر يک از روترهای موجود در مسير ارتباطی می بايست ، قادر به حمايت از Multicasting باشند . کامپيوترهای مبتنی بر سيستم عامل وينوز 2000 ، قادر به ارسال و دريافت IP Multicast ، می باشند .
پروتکل ARP : لايه Internet
ARP) Address Resolution Protocol) ، پروتکلی است که مسئوليت مسئله " نام به آدرس" را در رابطه با بسته های اطلاعاتی خروجی (Outgoing) ، برعهده دارد . ماحصل فرآيند فوق ، Mapping آدرس IP به آدرسMAC )Media Access Control) ، مربوطه است . کارت شبکه از آدرس MAC ، بمنظور تشخيص تعلق يک بسته اطلاعاتی به کامپيوتر مربوطه ، استفاده می نمايند . بدون آدرس های MAC ، کارت های شبکه ، دانش لازم در خصوص ارسال بسته های اطلاعاتی به لايه بالاتر بمنظور پردازش های مربوطه را دارا نخواهند بود . همزمان با رسيدن بسته های اطلاعاتی به لايه IP بمنظور ارسال در شبکه ، آدرس های MAC مبداء و مقصد به آن اضافه می گردد .
ARP ، از جدولی خاص بمنظور ذخيره سازی آدرس های IP و MAC مربوطه ، استفاده می نمايد. محلی از حافظه که جدول فوق در آنجا ذخيره می گردد ، ARP Cache ناميده می شود. ARP Cache هر کامپيوتر شامل mapping لازم برای کامپيوترها و روترهائی است که صرفا" بر روی يک سگمنت مشابه قرار دارند.
Physical Address Resolution
پروتکل ARP ، آدرس IP مقصد هر يک از بسته های اطلاعاتی خروجی را با ARP Cache مقايسه تا آدرس MAC مقصد مورد نظر را بدست آورد . در صورتيکه موردی پيدا گردد ، آدرس MAC از Cache بازيابی می گردد . در غير اينصورت ؛ ARP درخواستی را برای کامپيوتری که مالکيت IP را برعهده دارد ، Broadcast نموده و از وی می خواهد که آدرس MAC خود را اعلام نمايد . کامپيوتر مورد نظر ( با IP مربوطه ) ، در ابتدا آدرس MAC کامپيوتر ارسال کننده درخواست را به Cache خود اضافه نموده و در ادامه پاسخ لازم را از طريق ارسال آدرس MAC خود ، به متقاضی خواهد داد . زمانيکه پاسخ ARP توسط درخواست کننده ، دريافت گرديد ، در ابتدا با استناد به اطلاعات جديد دريافتی، Cache مربوطه بهنگام و در ادامه بسته اطلاعاتی به مقصد کامپيوتر مورد نظر ارسال می گردد .
در صورتيکه مقصد يک بسته اطلاعاتی ، سگمنتی ديگر باشد ، ARP ، آدرس MAC را به روتر مسئول در سگمنت مربوطه ، تعميم خواهد داد ( در مقابل آدرس مربوط به کامپيوتر مقصد ) . روتر ، در ادامه مسئول يافتن آدرس MAC مقصد و يا Forwarding بسته اطلاعاتی برای روتر ديگر است .
در بخش سوم اين مقاله به بررسی ، برنامه ها و ابزارهای کمکی در رابطه با پروتکل TCP/IP ، خواهيم پرداخت .
مفاهيم اوليه پروتکل TCP/IP ( بخش سوم )
در بخش اول اين مقاله، پروتکل TCP/IP بهمراه لايه های آن معرفی گرديد . در بخش دوم ، به بررسی برخی از پروتکل های مهم موجود در پشته TCP/IP اشاره گرديد . در اين بخش ، به بررسی برنامه ها و ابزارهای کمکی موجود در رابطه با پروتکل TCP/IP ، خواهيم پرداخت .
نسخه TCP/IP پياد ه سازی شده در ويندوز، بهمراه خود مجموعه ای از برنامه های کاربردی را ارائه نموده است . با استفاده از برنامه های فوق ، امکان اجرای ويندوز 2000 بر روی يک کامپيوتر بمنظور دستيابی به مجموعه ای گسترده از اطلاعات موجود در يک شبکه ، وجود خواهد داشت . ويندوز 2000 ، سه گروه عمده از ابزارهای مبتنی بر TCP/IP را ارائه می نمايد : برنامه های عيب يابی ، برنامه های ارتباطی و نرم افزارهای سمت سرويس دهنده .
در ادامه به تشريح امکانات موجود در هر گروه خواهيم پرداخت .
برنامه های عيب يابی
برنامه های عيب يابی ، امکان تشخيص و برطرف نمودن مسائل مرتبط با شبکه را برای کاربران فراهم می نمايند. برخی از اين ابزارها عبارتند از :
برنامه های ارتباطی
برنامه های فوق ، امکان ارتباط با مجموعه وسيعی از سيستم های مبتنی بر ويندوز و يا غيرويندوز نظير سيستم های يوينيکس ، را در اختيار کاربران قرار می دهند . با اينکه اين نوع از برنامه ها امکان ارسال سريع اطلاعات را فراهم می نمايند ولی با توجه به ماهيت ارسال اطلاعات توسط آنان ( تمامی اطلاعات شامل اطلاعات مربوط به تائيد اعتبار و هويت کاربران بصورت متن شفاف ارسال می گردد ) ، می بايست دقت لازم صورت پذيرد .موارد زير نمونه هائی از برنامه های ارتباطی می باشند :
نرم افزارهای سمت سرويس دهنده
اين نوع نرم افزارها امکان چاپ و انتشار سرويس ها را برای سرويس گيرندگان مبتنی بر TCP/IP در ويندوز 2000 ، فراهم می نمايد.
مثال
مثال 1 - هدف : استفاده از برنامه Ping بمنظور اطمينان از صحت عملکرد پروتکل TCP/IP
نتايج : پس از انجام مراحل فوق ، نتايج زير می بايست نشان داده شود :
|
نتايج حاصل از اجرای برنامه Ping |
|
C:\>ping 127.0.0.1 |
مثال 2 - هدف : استفاده از برنامه های Ping و Hostname بمنظور صحت عملکرد TCP/IP
نتايج : پس از انجام مراحل فوق ، نتايج زير می بايست نشان داده شود :
|
مرحله اول : مشخص نمودن نام کامپيوتر |
|
C:\> hostname |
|
مرحله دوم : استفاده از دستور Ping بهمراه نام کامپيوتر |
|
C:> Ping Srco |
در بخش چهارم اين مقاله به بررسی ، Name Resoulation ، خواهيم پرداخت .
فاهيم اوليه پروتکل TCP/IP ( بخش چهارم )
آنچه تاکنون گفته شده است :
بخش اول : معرفی پروتکل TCP/IP بهمراه لايه های آن
بخش دوم : بررسی پروتکل های موجود در TCP/IP
بخش سوم : بررسی برنامه ها و ابزارهای کمکی در رابطه با پروتکل TCP/IP
در اين بخش به بررسی Name Resoulation ، خواهيم پرداخت . ماحصل فرآيند فوق، يافتن آدرس IP مپ (map) شده به يک نام است ( در صورتيکه عمليات با موفقيت انجام گردد ) . تمامی اسامی User-friendly ، می بايست به آدرس معادل IP مربوطه مپ تا زمينه ارتباط بين دستگاههای متقاضی در يک شبکه مبتنی بر TCP/IP ، فراهم گردد .
پروتکل TCP/IP کامپيوترهای مبداء و مقصد را از طريق آدرس IP آنان ، شناسائی می نمايد . کاربران ، تمايل بيشتری برای بخاطرسپردن و استفاده از اسامی ، نسبت به اعداد ( آدرس های IP ) را دارند . برای آدرس دهی يک کامپيوتر از انواع متفاوتی نام ( user friendly names ) ، استفاده می گردد. ويندوز 2000 ، بمنظور ذخيره سازی اسامی و آدرس IP معادل آنان ، از رويکردهای متفاوتی استفاده می گردد .با توجه به نوع نام استفاده شده ، از يک فايل ايستا و يا پويا بمنظور ذخيره نمودن اسامی و آدرس های IP مپ شده به آنان استفاده می گردد . برخی از برنامه ها نظير IE و FTP ، قادر به استفاده از آدرس IP و يا نام برای برقراری ارتباط با مقصد مورد نظر می باشند .زمانيکه از نام استفاده می گردد ، قبل از آغاز يک ارتباط از طريق پروتکل TCP/IP ، از فرآيندی با نام Name Resolution استفاده تا آدرس IP کامپيوتر مورد نظر ، مشخص گردد . در صورتيکه آدرس IP ، مشخص شده باشد ( در مقابل مشخص شدن نام ) ،ارتباط بلافاصله برقرارخواهد شد .
انواع نام
دو نوع نام user friendly وجود دارد : اسامی ميزبان (Host) و اسامی NetBIOS . نام ميزبان ، نامی است که به يک آدرس IP کامپيوترنسبت داده شده تا آن را بعنوان يک ميزبان TCP/IP مشخص نمايد. نام ميزبان ، می تواند دارای حداکثر 255 کاراکتر ( حروف الفبائی ، کاراکترهای عددی ، نقطه و hyphens ) باشد . اسامی ميزبان دارای اشکال متفاوتی می باشند . نام مستعار (Alias) و Domain names ، دو نمونه متداول در اين زمينه می باشند. نام مستعار، نامی خاص و مرتبط شده به يک آدرس IP است . (نظير : Tehran ) . يک Domain name ، بمنظور استفاده بر روی اينترنت سازماندهی و از نقطه بعنوان يک جداکننده استفاده می نمايد ( مثلا" Tehran.Citys.com ) .
نام NetBIOS ، يک نام شانزده کاراکتری است که از آن بمنظور مشخص نمودن يک منبع NetBIOS بر روی شبکه استفاده می گردد . از يک نام NetBIOS ، بمنظور مشخص نمودن يک و يا مجموعه ای از کامپيوترها ، استفاده ميگردد .در اين راستا ، صرفا" از پانزده حرف اول آن برای نام و از کاراکتر نهائی بمنظور مشخص نمودن منبع و يا سرويسی که به يک کامپيوتر اشاره می نمايد، استفاده می گردد. نمونه ای از يک منبع NetBIOS ، عنصر File and Print Sharing for Microsoft Networks در شبکه های مبتنی بر ويندوز 2000 است . زمانيکه کامپيوتر فعاليت خود را آغاز می نمايد ، عنصر فوق ، يک نام منحصر بفرد NetBIOS را ريجستر(ثبت) می نمايد . نام ثبت شده شامل نام کامپيوتر و کاراکتری است که بيانگر عنصر ثبت کننده است ( برای در نظر گرفتن نام کامپيوتر از حداکثر پانزده حرف و برای مشخص نمودن عنصر ثبت کننده نام ، از يک حرف ديگر استفاده می گردد ) . درويندوز 2000 ، نام NetBIOS ، می تواند حداکثر پانزده کاراکتر باشد . ويندوز 2000 ، خود نيازی به اين نوع اسامی نداشته و نسخه های قبلی ويندوز نيازمند استفاده از اسامی NetBIOS بمنظور حمايت از قابليت های شبکه ای، دارند.
Static IP mapping
زمانيکه کاربران يک نام را بمنظور برقراری ارتباط با يک کامپيوتر مقصد ، مشخص می نمايند ، پروتکل TCP/IP همچنان نيازمند يک آدرس IP برای تحقق انتقال اطلاعات است . در اين راستا لازم است که نام کامپيوتر به يک آدرس IP ، مپ گردد. ماحصل عمليات فوق ( mapping ) ، در يک جدول ايستا و يا پويا ذخيره می گردد . در صورتيکه از يک جدول ايستا استفاده گردد ، نتايج مورد نظر در يکی از فايل های Hosts و يا Lmhosts ذخيره می گردند( فايل ها ی فوق، متنی می باشند ) . مهمترين مزيت استفاده از يک جدول ايستا ، امکان سفارشی نمودن آن با توجه به ماهيت فايل ( متنی ) و محل ذخيره سازی ( ذخيره بر روی هر کامپيوتر) آن است. در اين راستا هر يک از کاربران می توانند برای دستيابی به منابعی با فرکانس بالای دستيابی ، به هر ميزان که ضرورت دارد ، entry در جدول فوق ثبت نمايند . بهنگام سازی جداول ايستا ، يکی از چالش های اصلی در اين زمينه بوده و در موارديکه تعداد آدرس های IP مپ شده ، زياد و آدرس های فوق متناوبا" تغيير يابند ، بهنگام سازی جداول ايستا مسائل خاص خود را خواهد داشت .
فايل Hosts . فايل فوق ، يک فايل متنی و شامل آدرس های IP مپ شده به اسامی ميزبان است . فايل فوق، دارای ويژگی های زير است :
فايل LmHosts . فايل فوق ، يک فايل متنی وشامل آدرس IP مپ شده به نام NetBIOS است . بخشی از فايل Lmhosts در ابتدا وارد حافظه شده و به آن اصطلاحا" NetBIOS name Cache می گويند.
Dynamic IP mapping
مهمترين مزيت جداول پويا ( مسئول ذخيره سازی IP مپ شده ) ، بهنگام سازی اتوماتيک آنان است.در اين راستا ، جداول پويا از دو سرويس استفاده می نمايند : DNS)Domain Name System) و WINS)Windows Internet Neame Service) . سرويس دهنده DNS و WINS عمليات مشابه ای را نظير فايل های Hosts و Lmhosts انجام خواهند داد ( بدون نياز به پيکربندی دستی ) .
DNS)Domain Name System)
DNS ، روشی بمنظور نامگذاری کامپيوترها و منابع شبکه است . شبکه های مبتنی بر TCP/IP ، از بانک اطلاعاتی اسامی DNS ، بمنظور يافتن کامپيوترها و سرويس ها از طريق اسامی User friendly مربوط به Domain names ، استفاده می نمايند. زمانيکه کاربری نام يک Domain را در برنامه ای وارد ( مشخص ) می نمايد، سرويس دهنده DNS ، نام مورد نظر را به IP مربوطه ، map خواهد کرد .ساختار سيستم نامگذاری DNS ، بصورت سلسله مراتبی است ، بدين ترتيب امکان استفاده از سيستم فوق،در شبکه های بزرگی نظير اينترنت وجود خواهد شد . با استفاده از يک سيستم سلسله مراتبی بمنظور ايجاد اسامی Domain ، کامپيوترهائی که اسامی Domain و معادل IP مربوطه را ذخيره می نمايند ، دارای mapping لازم برای صرفا" ناحيه مربوط به خود می باشند . اين نوع از کامپيوترها اصطلاحا" ، سرويس دهنده DNS ، ناميده شده و صرفا" پردازش های لازم برای کامپيوترهائی که در ميدان عملياتی آنان می باشد را انجام خواهند داد . زمانيکه mapping در ناحيه مربوطه تغيير نمايد ، سرويس دهندگان DNS مبتنی بر ويندوز 2000 ، بصورت اتوماتيک عمليات بهنگام سازی را انجام خواهند داد .
WINS)Windows Internet Name Service)
WINS ، يک بانک اطلاعاتی توزيعی را برای ثبت mapping پويای اسامی NetBIOS استفاده شده در شبکه ، ارائه می نمايد . WINS ، اسامی NetBIOS را به آدرس های IP مپ و اين امکان را فراهم خواهد آورد که اسامی NetBIOS در طول روترها ، قابل استفاده باشند .
Name Resoulation در ويندوز 2000
Name Resoulation ، فرآيندی است که بر اساس آن مشکل يک نام برطرف و يا به يک آدرس IP مپ می گردد . زمانيکه کاربری يک نام را در يک برنامه ، وارد می نمايد، برنامه مشخص می نمايد که نام فوق يک ميزبان و يا يک نام NetBIOS است. برنامه های فعلی در ويندوز 2000 ، از فرآيند host name resolution ، استفاده می نمايند ولی برخی از برنامه های قديمی تر نظير برنامه هائی که مختص ويندوز NT و يا ويندوز 95 , 98 طراحی شده اند ، همچنان از اسامی NetBIOS استفاده می نمايند. در صورتيکه فرآيند فوق ، با موفقيت همراه نگردد ، برنامه متقاضی قادر به برقراری ارتباط با مقصد مورد نظر خود نخواهد بود. در صورتيکه از يک آدرس IP استفاده می نمائيد ، name resolution نياز نخواهد بود .
فرآيند Host name Resolution
آدرس IP اسامی ميزبان ( Host Names) ، با استفاده از فايل Host و يا بکمک سرويس دهنده DNS ، مشخص خواهد شد . فرآيند فوق ، بصورت زير انجام خواهد شد .
فرآيند NetBIOS Name Resolution
بصورت پيش فرض ، اسامی NetBIOS بر روی يک شبکه مبتنی بر TCP/IP کار نخواهند کرد . ويندوز 2000 ، امکان برقراری ارتباط در شبکه های مبتنی بر TCP/IP را برای سرويس گيرندگان NetBIOS ، از طريق پروتکل NetBT ، فراهم می نمايد . NetBT ، از کلمات NetBIOS over TCP/IP اقتباس شده است . پروتکل فوق ، امکان برقراری ارتباط را برای برنامه های مبتنی بر NetBIOS ، توسط TCP/IP و از طريق ترجمه نام NetBIOS به يک آدرس IP ، فراهم می نمايد . درصورتيکه سرويس دهنده WINS برای استفاده ، پيکربندی شده باشد ، فرآيند NetBIOS Name Resolution ، بصورت زير خواهد بود :
در بخش پنجم اين مقاله به بررسی نحوه انتقال اطلاعات خواهيم پرداخت .
مفاهيم اوليه پروتکل 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 ( فريم ) ، می باشند .
اجزاء يک فريم
يک فريم ( اصطلاحی برای يک بسته اطلاعاتی در سطح لايه شبکه ) شامل سه بخش اساسی : 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 ، انتخاب گردد :
در صورتيکه پروتکل UDP ، انتخاب گردد :
لايه اينترنت
پس از اينکه اطلاعات "حمل " اضافه گرديد ، بسته اطلاعاتی در اختيار لايه "اينترنت " قرار داده می شود. در اين لايه ، اطلاعات زير به header اضافه می گردد :
علاوه بر اطلاعات فوق ، لايه اينترنت مسئوليت بر طرف نمودن آدرس های IP مقصد به يک آدرس MAC را نيز بر عهده دارد . پروتکل ARP ، مسئول انجام عمليات فوق ، است . آدرس MAC به header بسته اطلاعاتی اضافه و در ادامه بسته اطلاعاتی در اختيار لايه " اينترفيس شبکه " ، قرار داده می شود.
لايه "اينترفيس شبکه "
لايه فوق ، پس از دريافت يک بسته اطلاعاتی از لايه IP ، اطلاعات زير را به آن اضافه خواهد کرد :
پس ازافزودن اطلاعات مورد نظر به فريم ها در لايه اينترفيس شبکه ، در ادامه فريم ها بر روی شبکه ارسال خواهند شد.
عمليات در کامپيوتر مقصد
زمانيکه فريم ها به کامپيوتر مقصد می رسند ، لايه اينترفيس شبکه ، 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 ، پردازش های لازم و ضروری در ارتباط با آنها انجام خواهد شد.
در بخش ششم اين مقاله به بررسی "روتينگ داده " ، خواهيم پرداخت .
مفاهيم اوليه پروتکل TCP/IP ( بخش ششم )
آنچه تاکنون گفته شده است :
بخش اول : معرفی پروتکل TCP/IP بهمراه لايه های آن
بخش دوم : بررسی پروتکل های موجود در TCP/IP
بخش سوم : بررسی برنامه ها و ابزارهای کمکی در رابطه با پروتکل TCP/IP
بخش چهارم : بررسی Name Resoulation
بخش پنجم : بررسی فرآيند انتقال اطلاعات
در اين بخش به بررسی روتينگ داده خواهيم پرداخت .
جريان داده در شبکه ای که صرفا" شامل يک سگمنت است ، عمليات ساده ای خواهد بود . در چنين شبکه هائی ، کامپيوترهای ارسال کننده ، يک درخواست Broadcast را بمنظور مشخص نمودن آدرس MAC کامپيوتر مقصدی که قصد ارسال اطلاعات برای آن وجود دارد ، ارسال می نمايند . فرآيند ارسال اطلاعات در شبکه هائی که شامل چندين سگمنت می باشند ، بدين صورت نخواهد بود . در شبکه هائی شامل چندين سگمنت ، فرآيند انتقال اطلاعات بمراتب پيچيده تر خواهد بود. در چنين محيط هائی ، TCP/IP مسيرهای متعددی را بمنظور ارتباط کامپيوترهای موجود در شبکه ارائه و از ارتباطات غير ضروری در اين خصوص ، پيشگيری می نمايد .
درمحيطی که شامل چندين شبکه مرتبط با يکديگر است ، ممکن است کامپيوترهای مبداء و مقصد در يک سگمنت يکسان نباشند . بدين منظور ، آدرس IP کامپيوتر مقصد بررسی تا اين اطمينان حاصل گردد که موقعيت کامپيوتر مقصد نسبت به کامپيوتر مبداء ، محلی ( بر روی يک سگمنت ) و يا از راه دور( موجود بر روی سگمنت ديگر ) است .در صورتيکه کامپيوتر مقصد در راه دور( سگمنت ديگر) باشد ، داده نمی تواند مستقيم برای وی ارسال گردد . در چنين مواردی لايه IP داده مورد نظر را برای يک روتر ارسال می نمايد . روتر، بسته اطلاعاتی دريافتی را به مقصد مورد نظر ، ارسال ( فوروارد ) می نمايد .
روتينگ IP
شبکه های بزرگ TCP/IP که از آنان با عنوان شبکه های مرتبط بهم ( Internetworks ) ياد می گردد ، خود به بخش های ( سگمنت ) کوچکتری تقسيم تا بتوانند ميزان مبادله اطلاعات و ترافيک موجود در يک سگمنت را کاهش نمايند . Internetwork ، شبکه ای مشتمل بر چندين سگمنت است که توسط روترها بيکديگر مرتبط می گردد . اولين و در عين حال مهمترين وظيفه يک روتر،ارتباط دو و يا چندين سگمنت فيزيکی با يکديگر است . روترها ، بسته های اطلاعاتی لايه IP را از يک سگمنت در شبکه به سگمنت ديگر ارسال می نمايند . فرآيند فوق ( فورواردينگ بسته های IP ) ، روتينگ ناميده می شود. روترها دو و چندين سگمنت را بيديگر متصل و امکان حرکت ( ارسال ) بسته های اطلاعاتی از يک سگمنت به سگمنت ديگر را فراهم می نمايند.
توزيع بسته های اطلاعاتی
بسته های اطلاعاتی فوروارد شده ، با توجه به ماهيت مقصد خود ، حداقل يک و يا دو نوع توزيع را دنبال خواهند کرد. در اين رابطه از دو نوع توزيع و با نام های توزيع مستقيم و يا غير مستقيم ، استفاده می گردد :
جدول روتينگ
بمنظور مشخص نمودن ، مقصدی که می بايست يک بسته اطلاعاتی فوروارد گردد ، روترها از جداول روتينگ برای ارسال داده بين سگمنت های شبکه استفاده می نمايند. جدول روتينگ ، در حافظه ذخيره و مسئول نگهداری اطلاعات ضروری در خصوص ساير شبکه های مبتنی بر IP و ميزبانان است . جداول روتينگ ، همچنين اطلاعات ضروری را برای هر ميزبان محلی بمنظور آگاهی از نحوه ارتباط با با ساير شبکه ها و ميزبانان را دور، ارائه می نمايند .
برای هر کامپيوتر موجود بر روی يک شبکه مبتنی بر IP ، می توان يک جدول روتينگ را نگهداری کرد. سياست فوق در خصوص شبکه های بزرگ عملی نبوده و از يک روتر پيش فرض بمنظور نگهداری جدول روتينگ استفاده می گردد .
جداول روتينگ می توانند بصورت ايستا و يا از نوع پويا باشند . تفاوت عمده به نحوه بهنگام سازی آنان برمی گردد. جدول روتينگ ايستا ، بصورت دستی بهنگام می گردد . بنابراين، جداول فوق شامل آخرين وضعيت موجود در شبکه نخواهد بود . در مقابل ، جداول روتينگ پويا بصورت اتوماتيک بهنگام و همواره شامل آخرين اطلاعات موجود خواهند بود .
ارسال اطلاعات بين روترها
لايه IP ، دارای نقشی بسيار مهم در رابطه با ارسال اطلاعات بين شبکه های متعدد است . بسته ها ی اطلاعاتی مبادله و بر اساس شرايط موجود و با استفاده از IP مربوطه درلايه اينترنت کامپيوتر مبداء ، کامپيوتر مقصد و يا روترهای موجود در مسير مربوطه ، پردازش های لازم بر روی آنان انجام خواهد شد.
بمنظور ارسال داده بين دو کامپيوتر موجود در سگمنت های متفاوت شبکه ، لايه IP از اطلاعات موجود در يک جدول محلی روتينگ در جهت يافتن مسير مناسب دسترسی به کامپيوتر مقصد استفاده می نمايد( مشاوره اطلاعاتی ! ) . در صورت يافتن مسير مناسب ، بسته اطلاعاتی با استفاده ازمسير فوق ، ارسال خواهد شد. در غير اينصورت بسته های اطلاعاتی برای روتر پيش فرض فوروارد می گردند .
عملکرد لايه IP در کامپيوتر مبداء
لايه IP ، علاوه بر افزودن اطلاعاتی نظير TTL ، همواره آدرس IP کامپيوتر مقصد را به بسته اطلاعاتی اضافه می نمايد. در موارديکه توزيع بسته های اطلاعاتی از نوع مستقيم باشد ،از ARP استفاده و آدرس MAC کامپيوتر مقصد به آن اضافه گردد . در موارديکه توزيع اطلاعات از نوع غير مستقيم باشد ، از ARP استفاده و آدرس MAC روتری که می بايست بسته های اطلاعاتی برای آن فوروارد گردد، به آن اضافه خواهد شد.
عملکرد لايه IP در روتر
پس از دريافت يک بسته اطلاعاتی توسط روتر، لايه IP مربوطه مسئول مشخص نمودن محل ارسال بسته اطلاعاتی است . برای نيل به هدف فوق ، مراحل زير دنبال خواهد شد :
نمامی مراحل فوق، در ارتباط با هر يک از روترهای موجود در مسير بين کامپيوتر مبداء و مقصد تکرار خواهد شد. پس از دريافت بسته اطلاعاتی توسط روتری که در همان سگمنت کامپيوتر مقصد موجود می باشد ، فرآيند تکراری اشاره شده ، متوقف خواهد شد .
Fragmentation و Reassembly
زمانيکه يک بسته اطلاعاتی بسيار بزرگ به روتر می رسد ، لايه IP قبل از ارسال آن را به بخش های کوچکتری تقسيم می نمايد . فرآيند فوق ، Fragmentation ناميده می شود.
تمامی بسته های اطلاعاتی کوچک در ادامه بر روی شبکه حرکت خواهند کرد . بسته های اطلاعاتی فوق ، حتی اگر بين چندين روتر حرکت نمايند ، صرفا" در زمانيکه تمامی آنان به کامپيوتر مقصد رسيده باشند ، مجددا" با يکديگر ترکيب و شکل اوليه بسته اطلاعاتی ايجاد می گردد. فرآيند فوق ، Reassembly ناميده می شود .
لايه IP در کامپيوتر مقصد
زمانيکه يک بسته اطلاعاتی به کامپيوتر مقصد می رسد ، لايه IP در کامپيوتر مقصد ، Checksum و آدرس IP مقصد آن را بررسی و در ادامه بسته اطلاعاتی در اختيار TCP و يا UDP قرار خواهد گرفت در نهايت ، بسته اطلاعاتی بمنظور انجام پردازش نهائی و با توجه به شماره پورت موجود ، در اختيار برنامه مقصد قرار خواهد گرفت .
خلاصه
در شش مقاله ارائه شده به بررسی مفاهيم اوليه پروتکل TCP/IP پرداخته گرديد . در ادامه به برخی از نکات مهم، مجددا" اشاره می گردد:
***به بهشت نمی روم اگر مــــــادرم آنجا نباشد***
آنگاه که تنها شدی و در جست جوی یک تکیه گاه مطمئن هستی ، بر من توکل نما . نمل/79