پروتکل ها Protocol قسمت دوم
در
این لایه استانداردهای سخت
افزاری و نرم افزاری و پرتکل های شبکه تعریف شده.
این
لایه درگیر با مسائل سخت
افزاری مرتبط با شبکه بوده و می تواند عناصر همگن و ناهمگن را به هم پیوند بزند. در این
لایه تمام پروتکل های LAN
,MAN قابل استفاده هستند.
لایه دوم : لایه شبکه
وظیفه
اصلی این لایه هدایت از مبدا تا مقصد بسته های اطلاعاتی خاص به نام
IP است.
به
غير از پروتکل IP پروتکل هایی دیگر نیز هستند
که وطایف مهمی را بر عهده دارند.
مهمترین
آنها : ARP , RARP , RIP , ICMP , BOOTP ,&
more
دراین
لایه مسیر یاب ها از
شرایط توپولوژیکی و ترافیکی شبکه اطلاعات را کسب می کند تا مسیر یاب ها به روش آسان و پویا
انجام دهند.
لایه سوم : لایه انتقال
در
این لایه ماشین ها ی میزبان
در شبکه با هم ارتباط برقرار می کنند و به عبارت دیگر یک سرویس اتصال گرا مطمئن است برای
عملیاتی مانند ارسال صوت و تصویر که سرعت مهمتر از دقت است سرویس های سریع و نا مطمئن طراحی شده است. در این سرویس لایه از
رسیدن داده ها به مقصد اطلاع می
یابد.
لایه چهارم : لایه کاربرد
این
لایه دارای سطع بالایی برای خلق
برنامه های کاربردی ویژه و پیچیده ارائه می شود.
انتقال
فایل یا FTP و شیبه سازی ترمینال و
مدیریت پست و انتقال صفحات ابر متنی و ده ها پروتکل کاربردی دیگر از سطح این لایه است.
مدل TCP/IP:
از اين مدل در اكثر شبكه ها و برخي از كاربردهاي صنعتي و اينترنت بكار برده مي شود . اين مدل داراي چهار لايه زير مي باشد: 1-Network access 2-IP ) Subnet OR Internet ) 3-TCP ) Transport OR Host to Host ) 4-Application layer حال در مورد هر لايه مختصرا توضيحاتي مي دهيم: 1-اولين لايه، لايه دسترسي به شبكه يا Network access مي باشد كه اين لايه شامل رسانه ارتباطي ( تجهيزات فيزيكي و كانالهاي ارتباطي ) و همچنين پروتكلهاي ارتباطي براي انتقال قابها ( Frameها ) بر روي شبكه مي باشد . 2-لايه زير شبكه / لايه اينترنت / لايه شبكه : وظيفه اصلي اين لايه ايجاد ارتباط بين ميزبانها مي باشد. برقراري ارتباط بين ميزبانها توسط اين لايه بدون در نظر گرفتن ساختار لايه پاييني انجام مي شود. اين لايه بايد داراي توانايي برقراري ارتباط در سطح شبكه محلي و گسترده باشد. لايه اينترنت از پروتكل IP براي انتقال اطلاعات استفاده مي كند. در اين لايه همچنين بايد پروتكلهايي براي مسيريابي در شبكه و هدايت بسته ها وجود داشته باشد كه برخي از آنها عبارتند از: Address Resolution Protocol ، Reverse Address Resolution Protocol ، Routing Information Protocol ، Internet Control Massage Protocol ، Internet Group Management Protocol و Internet Protocol 3-لايه ميزبان به ميزبان / لايه انتقال: اين لايه سرويسهاي مورد نياز براي ايجاد ارتباطات غيرقابل اطمينان را بوجود مي آورد. ساختار اين لايه از دو پروتكل TCP و UDP تشكيل شده است. 3-1- TCP: اين پروتكل امكان ايجاد ارتباطات قابل اطمينان و اتصال گرا را فراهم مي نمايد. برخي از وظايف مربوط به اين پروتكل به قرار زير مي باشد: • شكستن و تقسيم بندي داده ها و پشته هاي دريافتي از لايه بالاتر به بسته هاي TCP و ساخت مجدد پشته ها از بسته هاي TCP در مقصد . • حصول اطمينان از رسيدن بسته ها به مقصد . • بازبيني بسته ها و مرتب كردن آنها و كنترل خطا • كنترل جريان داده ها 3-2- UDP: اين پروتكل براي فراهم آوردن مكانيزمي جهت كاهش و كم كردن سرريز داده ها در انتقال اطلاعات بكار مي رود و معمولا براي ارتباطاتي كه نياز به قابليت اطمينان ندارند استفاده مي شود. لايه انتقال در سطح بالاي خود با لايه كاربرد در ارتباط است.داده هاي تحويلي به لايه كاربرد توسط برنامه هاي كاربردي قابل دريافت مي باشد ، همچنين اين برنامه ها مي توانند با استفاده از APIها ( Application Program Interface ) مستقيما با لايه انتقال ارتباط برقرار كنند . 4- لايه كاربرد : اين لايه داراي پروتكلهاي سطح بالايي براي استفاده ازپروتكلهاي سطح پايين تر UDP و TCP مي باشد كه در اين پروتكلها براي ايجاد سرويسهاي اينترنتي بكارمي روند . برخي از اين سرويسها به قرار زير مي باشند : الف ) Telnet شبيه سازي پايانه ارتباطي : با استفاده از اين پروتكل مي توان يك ارتباط راه دور بين دو ميزبان برقرار نمود و ترمينال يا پايانه را براي دو ميزبان شبيه سازي مي كند . اين ترمينال راه دور كليه امكانات يك ترمينال محلي را در اختيار قرارمي دهد . ب ) FTP ( File Transport Protocol ) انتقال فايل : با استفاده از اين پروتكل كاربر قادر خواهد بود از راه دور از راه دور فايلها را از ميزباني به ميزبان ديگر انتقال دهد . ج ) SMTP مديريت پست الكترونيك : اين پروتكل استانداردي براي ارسال و دريافت پست الكترونيك برروي اينترنت مي باشد . د ) HTTP انتقال صفحات وب : ازاين پروتكل براي انتقال ابرمتنها بر روي اينترنت استفاده مي شود . اين متنها بر روي ميزبانها به وسيله مرورگرها ( Explorer ) قابل نمايش هستند . با استفاده از اين پروتكل مي توان متن ، صدا ، تصوير ، تصاوير متحرك ، موسيقي و فيلم را بر روي شبكه انتقال داد . توجه داشته باشيد كه معمولا لفظ TCP/IP براي دو موضوع متفاوت بكار برده مي شود : 1- مدل TCP/IP كه مدل چهار لايه آن بررسي شد . 2- پشته TCP/IP يا پشته پروتكلهاي TCP/IP كه مجموعه اي است شامل بيش از 100 پروتكل كه براي سازماندهي اجزا اينترنت بكارمي رود . http://iritn.com/index.php?action=show&type=news&id=3234
ساختار بسته هاي پروتكل TCP
در اين بخش يك ديد كلي از پروتكل TCP ارائه مي نماييم و ساختار سرآيند بسته ها را در اين پروتكل ، توضيح خواهيم داد .
در زير ساختار يك بستة TCP به تصوير كشيده شده است .
|
Destination Port |
Source port | ||||||||
|
Sequence Number | |||||||||
|
Acknowledgment Number | |||||||||
|
Windows Size |
FIN |
SYN |
RST |
PSH |
ACK |
UR G |
|
TCP Header Length | |
|
Urgent Pointer |
Checksum | ||||||||
|
Options) 0 or more 32-bit words) | |||||||||
|
Data ) optional ) | |||||||||
فيلد Source Port: در اين فيلد يك شمارة 16 بيتي بعنوان آدرس پورت پروسة مبدأ( كه اين بسته را جهت ارسال توليد كرده ) ، قرار خواهد گرفت .
فيلد Destination Port: در اين فيلد ، آدرس پورتِ پروسة مقصد كه آنرا تحويل خواهد گرفت تعيين خواهد شد .
همانگونه كه در بخش قبلي اشاره شد اين دو آدرس مشخص مي كنند كه اين بسته ، از چه برنامه كاربردي در لايه بالاتر توليد شده و بايد به چه برنامه اي در ماشين مقصد تحويل داده شود. برخي از پروسه هاي كاربردي و استاندارد و جهاني هستند ، مثلا سرويس دهنده پست الكترونيكي داراي شماره پورت 25 است . به جدول شماره پورت هاي استاندارد در ديسك جانبي كتاب نگاهي بيندازيد .
فيلدSequence Number: اين فيلد سي ودو بيتي ، شماره ترتيب آخرين بايتي را كه در " فيلد داده " از بسته جاري قرار دارد ، نشان مي دهد .
در پروتكل TCP شماره ترتيب ، بر حسب شماره آخرين بايتي است كه در بستة جاري قرار گرفته و ارسال شده است . به عنوان مثال اگر در اين فيلد عددي معادل 19341 درون فيلد داده قرار دارد . دقت كنيد كه اين عدد به معناي آن نيست كه به تعداد 19341 بايت ، درون قسمت داده قرار دارد ، بلكه هميشه به شماره ترتيب آخرين بايت داده ، اشاره مينمايد . يعني ممكن است كه كلاً درون فيلد داده ققط يك بايت قرار داشته باشد در حالي كه در فيلد شماره ترتيب عدد 19341 قرار داشته باشد . دقّت شود كه شماره ترتيب اولين بايت ، از صفر شروع نمي شود بلكه از يك عدد تصادفي كه در هنگام برقراري ارتباط به اطلاع طرفين ميرسد شروع خواهد شد.
فيلد Acknowledgment Number :اين فيلد 32 بيتي نيز شمارة ترتيب بايتي كه فرستندة بسته منتظر دريافت آن است را تعيين ميكند . بعنوان مثال اگر در اين فيلد عددي معادل 342310 قرارگرفته باشد بدين معناست كه از رشته داده ها ( كه مشخص نيست چند بايت است ) تا شمارة 342310 صحيح و كامل دريافت شده است و منتظر بايتهاي از 342311 به بعد مي باشد .
فيلد TCP Header Length:عددي كه در اين فيلد قرار مي گيرد ، طول سرآيند بستة TCP را بر مبناي كلمات 32 بيتي تعيين مي كند . بعنوان مثال اگر در اين فيلد عدد 7 قرار بگيرد طول سرآيند مقدار 28=7*4 بايت خواهد بود(اين فيلد كلاً چهار بيتي است)دقت كنيد كه قسمت ثابت و اجباري در يك بستة TCP حداقل 20 بايت است ولي در فيلد اختياري ………. ميتواند اطلاعاتي قرار بگيرد و بنابر اين گيرندة يك بستة TCP بايد بتواند مرز بين سرآيند بسته و قسمت داده را تشخيص بدهد . پس عددي كه در اين فيلد قرار مي گيرد مي تواند بعنوان يك “ اشاره گر” ، محل شروع داده ها را در يك بستة TCP تعيين كند( توجه داريد كه مبناي اين عدد كلمات 32 بيتي( 4 بايتي) هستند)
بيتهاي Flag ( Code Bits ) :6 بيت بعدي در بستة TCP هر كدام نقش يك بيت پرچم را كه معنا و كاربرد مختلفي دارند بازي ميكنند .
|
FIN |
SYN |
RST |
PSH |
ACK |
URG |
اين بيتها و معناي آنها را بترتيب بررسي ميكنيم :
بيت URG: در صورتي كه كه اين بيت مقدار 1 داشته باشد ، معين ميكند كه در فيلد Urgent Pointer كه در ادامه معرفي خواهد شد مقداري قابل استناد و معتبر قرار دارد و بايسيتي مورد پردازش قرار گيرد . در صورتي كه اين بيت صفر باشد فيلد Urgent Pointer شامل مقدار معتبر و قابل استنادي نيست و از آن چشم پوشي ميشود .
بيتACK :اگر در اين بيت مقدار 1 قرار گرفته باشد ، نشان مي دهد كه عددي كه در فيلد Acknoledgement Number قرارگرفته است ، داراي مقداري معتبر و قابل استناد است . بيت ACK و بيت SYN نقش ديگري نيز دارد كه در ادامه بدان اشاره خواهد شد .
بيت PSH: اگر در اين بيت مقدار 1 قرار گرفته باشد فرستندة اطلاعات از گيرنده تقاضا ميكند كه داده هاي موجود در اين بسته را بافر نكند و در اسرع وقت آنرا جهت پردازشهاي بعدي تحويل برنامة كاربردي صاحب آن بدهد . اين عمل گاهي براي برنامه هاي مشابه Telnet ضروري است .
بيت RST :اگر در اين بيت مقدار 1 قرار بگيرد ارتباط بصورت يكطرفه و نا تمام قطع خواهد شد ، بدين معنا كه به هر دليلي )اعم از نقص سخت افزاري يا نرمافزاري ( اشكالي بوجود آمده كه يكي از طرفين ارتباط مجبور به خاتمة ارتباط فعلي شده است . همچنين بيت RST ميتواند بعنوان علامت عدم پذيرش برقراري ارتباط بكار برود . اگر يكي از طرفين ارتباط يك بسته دريافت كند كه در آن بيت RST مقدار 1 داشته باشد ، ارتباط بصورت نا هماهنگ و نا متعادل ، قطع خواهد شد .
بيت SYN :اين بيت نقش اساسي در برقراري يك ارتباط بازي ميكند . برقراري يك ارتباط TCP از روند زير طبعيت ميكند :
شروع كننده ارتباط يك بستة TCP بدون هيچگونه داده و با تنظيم بيتهاي (ACK=0,SYN=1 ) ، براي طرف مقابل ارسال ميكند . در حقيقت ارسال چنين بسته اي به معناي “ تقاضاي برقراري ارتبا ط ” تلقي مي شود .
در پاسخ به درخواست ارتباط ، در صورتي كه طرف مقابل به برقراري ارتباط تمايل داشته باشد بسته اي برمي گرداند كه در آن بيت SYN=1 و بيت ACK=1 است . اين بسته نقش “ پذيرش يك ارتباط ” را بازي ميكند .
بيت FIN :اگر يكي از طرفين ارتباط ، داده ديگري براي ارسال نداشته باشد درهنگام ارسال آخرين بسته خود اين بيت را 1مي كند و در حقيقت ارسال اطلاعات خودش را يك طرفه قطع مي كند . در اين حالت اگر چه ارسال اطلاعات قطع شده وليكن طرف مقابل هنوز ممكن است به ارسال اطلاعات مشغول باشد . زماني ارتباط كاملاً خاتمه مي يابد كه طرف مقابل نيز در يك بسته با يك كردن بيت FIN ، ارسال اطلاعات را خاتمه بدهد .
فيلد Windows Size: مقدار قرار گرفته در اين فيلد مشخص ميكند كه فضاي بافر گيرنده چند بايت ديگر ظرفيت خالي دارد . يعني به طرف مقابل اعلام مي كند كه مجاز است از بايت با شمارهء ترتيبي كه در فيلد Acknowledgement مشخص شده است ، حداكثر به اندازهء مقداري كه در اين فيلد درج شده ، ارسال داشته باشد و در غير اينصورت فضاي كافي براي دريافت داده ها وجود نداشته و ناگزير دور ريخته خواهد شد. اگر مقدار اين فيلد صفر باشد بدين معناست كه بافر گيرنده تماماً پر شده است و امكان دريافت داده هاي بعدي وجود ندارد و پروسة فرستنده متوقف خواهد شد در اين مورد نيز بيشتر توضيح خواهيم داد .
فيلد Checksum: در اين فيلد 16 بيتي ، كد كشف خطا قرار مي گيرد .
فيلد TCPsegment Length: كه در آن طول كل بستة TCP مشخص مي شود .
فيلد Urgent Pointer :در اين فيلد يك عدد بعنوان اشاره گر قرار مي گيرد كه موقعيت داده هاي اظطراري را درون بسته TCP معين مي كند . اين داده ها ، زماني اتفاق مي افتد و ارسال مي شود كه عملي شبيه وقوع وقفه ها در هنگام اجراي يك برنامة كاربردي رخ بدهد . بدون آنكه ارتباط قطع شود داده هاي لازم در همين بستة جاري ارسال خواهد شد. دقٌت كنيد كه داده هاي اظطراري توسط برنامة كاربردي در لاية بالاتر پردازش خواهد شد و براي پروتكل TCP كاربردي ندارد .
فيلد Options :در اين فيلد اختياري است و مقداري نظير حداكثر طول بستة TCP در آن قرار ميگيرد. براي آنكه طول بسته ضريبي از 4 باقي بماند از اين فيلد با كدهاي بي ارزش استفاده مي شود .گزينة خاص ديگري در اين فيلد تعريف نشده است .
آشنایی با مدل OSI (هفت لایه شبکه)
هر فعالیتی در شبکه مستلزم ارتباط بین نرم افزار و سخت افزار کامپیوتر و اجزای دیگر شبکه است. انتقال اطلاعات بین کامپیوترهای مختلف در شبکه وابسته به انتقال اطلاعات بین بخش های نرم افزاری و سخت افزاری درون هر یک از کامپیوتر هاست. هر یک از فرایند های انتقال اطلاعات را می توان به بخش های کوچک تری تقسیم کرد. هر یک از این فعالیت های کوچک را سیستم عامل براساس دسته ای از قوانین مشخص انجام می دهد. این قوانین را پروتکل می نامند. پروتکل ها تعیین کننده روش کار در ارتباط بین بخش های نرم افزاری و سخت افزاری شبکه هستند. بخش های نرم افزاری و سخت افزاری تولیدکنندگان مختلف دارای مجموعه پروتکل های متفاوتی می باشند. برای استاندارد سازی پروتکل های ارتباطی، سازمان استاندارد های بین المللی (ISO) در سال 1984 اقدام به تعیین مدل مرجع OSI یا Open Systems Interconnection نمود. مدل مرجع OSI ارائه دهنده چارچوب طراحی محیط های شبکه ای است. در این مدل، جزئیات بخش های نرم افزاری و سخت افزاری برای ایجاد سهولت انتقال اطلاعات مطرح شده است و در آن کلیه فعالیت های شبکه ای در هفت لایه مدل سازی می شود. هنگام بررسی فرآیند انتقال اطلاعات بین دو کامپیوتر، مدل هفت لایه ای OSI روی هر یک از کامپیوتر ها پیاده سازی می گردد. در تحلیل این فرآیند ها می توان عملیات انتقال اطلاعات را بین لایه های متناظر مدل OSI واقع در کامپیوتر های مبدا و مقصد در نظر گرفت. این تجسم از انتقال اطلاعات را انتقال مجازی (Virtual) می نامند. اما انتقال واقعی اطلاعات بین لایه های مجاور مدل OSI واقع در یک کامپیوتر انجام می شود. در کامپیوتر مبدا اطلاعات از لایه فوقانی به طرف لایه تحتانی مدل OSI حرکت کرده و از آنجا به لایه زیرین مدل OSI واقع در کامپیوتر مقصد ارسال می شوند. در کامپیوتر مقصد اطلاعات از لایه های زیرین به طرف بالاترین لایه مدل OSI حرکت می کنند. عمل انتقال اطلاعات از یک لایه به لایه دیگر در مدل OSI از طریق واسطه ها یا Interface ها انجام می شود. این واسطه ها تعیین کننده سرویس هایی هستند که هر لایه مدل OSI می تواند برای لایه مجاور فراهم آورد.
بالاترین لایه مدل OSI یا لایه هفت، لایه کاربرد یا Application است. این
لایه تامیین کننده سرویس های پشتیبانی برنامه های کاربردی نظیر انتقال فایل،
دسترسی به بانک اطلاعاتی و پست الکترونیکی است.
لایه شش، لایه نمایش یا Presentation است. این لایه تعیین کننده فرمت یا قالب انتقال داده ها بین
کامپیوتر های واقع در شبکه است. این لایه در کامپیوتر مبدا داده هایی که باید
انتقال داده شوند را به یک قالب میانی تبدیل می کند. این لایه در کامپیوتر مقصد
اطلاعات را از قالب میانی به قالب اولیه تبدیل می کند.
لایه پنجم در این مدل، لایه جلسه یا Session است. این
لایه بر برقراری اتصال بین دو برنامه کاربردی روی دو کامپیوتر مختلف واقع در شبکه
نظارت دارد. همچنین تامین کننده همزمانی فعالیت های کاربر نیز هست.
لایه چهارم یا لایه انتقال (Transmission) مسئول ارسال و دریافت اطلاعات و کمک به رفع خطاهای ایجاد شده در
طول ارتباط است. هنگامی که حین یک ارتباط خطایی بروز دهد، این لایه مسئول تکرار
عملیات ارسال داده است.
لایه سوم در مدل OSI، مسئول آدرس یا نشانی گذاری پیام ها و تبدیل نشانی های منطقی به
آدرس های فیزیکی است. این لایه همچنین مسئول مدیریت بر مشکلات مربوط به ترافیک
شبکه نظیر کند شدن جریان اطلاعات است. این لایه، لایه شبکه یا Network نام دارد.
لایه دوم مدل OSI، لایه پیوند یا Data Link است. این
لایه وظیفه دارد تا اطلاعات دریافت شده از لایه شبکه را به قالبی منطقی به نام
فریم (Frame) تبدیل کند. در کامپیوتر مقصد این لایه همچنین مسئول دریافت بدون
خطای این فریم ها است.
لایه زیرین در این مدل، لایه فیزیکی یا Physical است. این
لایه اطلاعات را بصورت جریانی از رشته های داده ای و بصورت الکترونیکی روی کابل
هدایت می کند. این لایه تعریف کننده ارتباط کابل و کارت شبکه و همچنین تعیین کننده
تکنیک ارسال و دریافت داده ها نیز هست.
بررسي اجزاي داخل يك پكت TCP :
اجزاي
داخلي يك پكت TCP شامل اطلاعاتي در مورد درگاه مبدا
درگاه مقصد شماره رشته داده ها و... ميباشد كه باعث ميشود اطلاعات در مسير اينترنت
جا به جا شوند.
بررسي
عملكرد پروتكل TCP
سه مرحله
اصلي دست دادن يا برقراري ارتباط بين يك سرويس دهنده و يك مشتري:
در اين شكل
سرويس دهنده(Server) با اسم TCP B و
مشتري(Client) با
اسمTCP A نشان داده شده است.
1 - مشتري
پكت TCP را
با علامت SYN براي سرويس دهنده ارسال
مي نمايد . اين پكت باعث مي شود سرويس دهنده متوجه گردد كه مشتري درخواست ارسال
اطلاعات را دارد. در اين هنگام مشتري منتظر جواب از سوي سرويس دهنده باقي ميماند
تا در صورت برگشت جواب اطلاعات را ارسال كند .
2 - سرويس
دهنده پس از دريافت در خواست مشتري يك پكت
را با علامت SYN/ACK در پاسخ براي مشتري ارسال مينمايد.
اين پكت نشان دهنده اجازه برقراري ارتباط و ارسال اطلاعات ميباشد.
3- مشتري
پس از دريافت پكت از سوي سرويس دهنده يك ACK براي سرويس دهنده ارسال ميكند .
4 - سپس
مشتري اقدام به ارسال اطلاعات ميكند.
شبکه های کامپیوتری امنیت برنامه نویسی سخت افزار نرم افزار طراحی وب