مبانی شبکه و پروتکل TCP/IP

پروتکل به چه معنی است؟ پروتکل (Protocol) مانند یک زبان برای دو کامپیوتر و یا دو سخت افزار است تا بتوانند با یکدیگر ارتباط برقرار کنند.

TCP/IP به خودی خود یک پروتکل نیست بلکه مجموعه ای از پروتکل ها می باشد. برای مثال خود عبارت TCP/IP به دو پروتکل TCP و IP اشاره می کند. پروتکل های دیگری هم در این مجموعه وجود دارند مانند FTP, HTTP, SMTP, UDP که در ادامه توضیح داده می شوند.

TCP/IP از نظر مفهومی به 4 لایه تقسیم بندی می شود. به این مدل چهار لایه DARPA می گویند. این نام را دولت ایالات متحده آمریکا بعد از توسعه اولیه TCP/IP بر آن نهاد. مدل دیگری برای تقسیم بندی مفاهیم شبکه نیز وجود دارد که به جای 4 لایه از 7 لایه تشکیل شده است. این مدل Open Systems Interconnection – OSI نام دارد. در زیر تصویر مقایسه این دو مدل به همراه برخی از پروتکل های موجود در هر لایه آورده شده است.

مدل TCP/IP و OSI

لایه Application

در بالای مدل TCP/IP لایه Application قرار دارد. اکثر نرم افزارهای کامپیوتری با این لایه در تماس هستند و از پروتکل هایی که در این لایه تعریف شده اند استفاده می کنند. از میان این نرم افزارها برای مثال می توان به Outlook اشاره کرد که از پروتکل SMTP استفاده می کند همینطور مرورگرهای وب مانند Firefox و Internet Explorer که از پروتکل Http و یا Https استفاده می کنند. در زیر پرکاربرد ترین پروتکل های لایه Application به اختصار توضیح داده شده است.

  • Hypertext Transfer Protocol – Http به منظور تبادل فایل هایی که صفحات وب (Wolrd Wide Web) را ایجاد می کنند استفاده می شوند. نرم افزارهای مرورگر وب و خدمات دهندگان وب (Web Servers) از این پروتکل استفاده می کنند.
  • File Transfer Protocol – FTP به منظور تبادل فایل مورد استفاده قرار می گیرد.
  • Simple Mail Transfer Protocol – SMTP برای تبادل ایمیل مورد استفاده قرار می گیرد.

در هر سخت افزار که مدل TCP/IP را پیاده می کند نحوه دسترسی به این لایه متفاوت است. برای مثال در سیستم عامل های عمومی مانند ویندوز و لینوکس توابع استانداردی  (API) تحت عنوان Socket وجود دارند که امکان تبادل اطلاعات توسط پروتکل های این لایه را فراهم می کنند.

لایه Application در مدل TCP/IP در برگیرنده وظایف لایه های Session, Presentation و Application در مدل OSI می باشد.

لایه Transport

بعد از پردازش درخواست نرم افزار، به پروتکل دیگری در لایه Transport انتقال داده می شویم (عموما این پردازش توسط سیستم عامل صورت می گیرد). لایه Transport از دو پروتکل اصلی تشکیل شده است. پروتکل TCP و UDP

  • Transmission Control Protocol – TCP یک ارتباط یک به یک مبتنی بر ارتباط قابل اتکا فراهم می کند. TCP برقراری ارتباط، ارسال مرتب و منظم اطلاعات و همینطور بازیابی بسته های گم شده را بر عهده دارد.
  • User Datagram Protocol – UDP یک ارتباط یک به یک یا یک به چند غیر قابل اتکا و بدون Connection را فراهم می کند. این پروتکل برای ارسال حجم زیادی از اطلاعات کوچک استفاده می شود از این پروتکل بیشتر زمانی استفاده می شود که به دلیل ارتقا سرعت احتیاج ندارید تا از برقراری ارتباط و یا رسیدن اطلاعات مطمئن شوید.

لایه TCP/IP Transport لایه OSI Transport را دربر می گیرد.

لایه Internet

لایه Internet وظیفه آدرس دهی، بسته بندی و مسیریابی را بر عهده دارد. پروتکل های اصلی این لایه عبارتند از IP, ARP, ICMP,IGMP

  • Internet Protocol – IP یک پروتکل مسیریابی است که آدرس دهی به روش آی پی، مسیریابی و قطعه قطعه کردن اطلاعات و سرهم کردن دوباره آنها را بر عهده دارد.
  • Address Resolution Protocol – ARP وظیفه ترجمان یک آدرس لایه اینترنت (آی پی) به آدرس لایه Network مانند آدرس سخت افزاری (برای مثال MAC) را بر عهده دارد.
  • ICMP پروتکلی برای عیب یابی و گزارش خطاهای ناشی از عدم دریافت بسته های IP می باشد. برای مثال ابزار Ping در سیستم عامل ها از این پروتکل استفاده می کند.

لایه Internet مشابه لایه Network در مدل OSI است.

لایه Network Interface

لایه Network Interface وظیفه ارسال اطلاعات به شبکه و یا دریافت اطلاعات از آن را دارد. نحوه ارسال و دریافت بستگی به نوع شبکه ای دارد که از آن استفاده می کنید. امروزه تقریبا تمام کامپیوترها از نوعی شبکه به نام Ethernet استفاده می کنند که در انواع مختلف بی سیم و با سیم و در سرعت های مختلف قابل استفاده می باشد. خود Ethernet دارای مفاهیم دیگری مانند LLC و MAC می باشد.

وابسته نبودن TCP/IP به نوع شبکه باعث می شود تا علاوه بر Ethernet انواع شبکه های دیگری مانند ATM نیر بتوانند از این مجموعه پروتکل TCP/IP استفاده کنند.

لایه Network Interface دربر گیرنده لایه های Data Link و Physical Layer مدل OSI می باشد.

پروتکل های هسته TCP/IP

مولفه های TCP/IP که بر روی هر سیستم عامل نصب می شوند مجموعه ای از پروتکل هایی هستند که برخی از آنها در لایه های مختلف به اختصار توضیح داده شدند. مهم ترین پرتکل ها در TCP/IP عبارتند از IP, ARP, ICMP, IGMP, TCP و UDP که مابقی پرتکل و نرم افزارها بر اساس آنها پایه گذاری شده اند. در ادامه کمی جزئی تر این پرتکل ها را بررسی می کنیم.

پروتکل IP

IP یک پرتکل بدون ارتباط (connectionless) و غیرقابل اطمینان (unreliable) برای آدرس دهی و مسیریابی در شبکه است. بدون ارتباط به معنی آن است که قبل از ارسال اطلاعات نشستی ایجاد نمی شود. غیر قابل اتکا به معنی آن است که رسیدن اطلاعات به مقصد تضمین شده نیست. بسته های آی پی ممکن است از دست بروند، تکراری باشند، تاخیر پیدا کنند و یا خارج از ترتیب به مقصد برسند. مسئولیت شناسایی این نوع خطاها به عهده لایه های بالاتر مانند TCP است.

پروتکل آی پی دارای یک آدرس آی پی است که وابسته به لایه های دیگر نیست (مانند آدرس MAC). هر کامپیوتر و یا وسیله ای که به شبکه متصل باشد و از پرتکل TCP/IP استفاده می کند باید یک آدرس آی پی یکتا داشته باشد.

پروتکل TCP

TCP پروتکلی قابل اتکا و اتصالگرا برای ارسال اطلاعات است. اتصالگرا بدان معنی است که قبل از تبادل اطلاعات باید ارتباط بین مبدا و مقصد برقرار شود. هر بسته (segment) از اطلاعات دارای یک شماره مسلسل است که به ترتیب افزایش پیدا می کند بدین ترتیب اطمینان از به ترتیب رسیدن اطلاعات حاصل می شود. مقصد باید پس از دریافت اطلاعات پیغام تصدیق دریافت (ACK) را برای فرستنده ارسال کند بدین شکل فرستنده از رسیدن اطلاعات مطمئن می شود. در صورتی که فرستنده پیغام ACK را دریافت نکند مجددا بسته را ارسال می کند.

یکی از مهم ترین عناصر در پروتکل TCP شماره پورت فرستنده و گیرنده می باشد. پورت عددی بین 1 تا 65535 می باشد که مکان خاصی برای رساندن بسته های اطلاعات مشخص می کند. پورت های زیر 1024 برای تبادل اطلاعات مشخصی رزرو شده اند. برای مثال پروتکل HTTP از شماره پورت 80 استفاده می کند. همچنین پورت 25 برای پروتکل SMTP رزرو شده است.

پروتکل UDP

پروتکل UDP همانند TCP می باشد با این تفاوت که راهکاری برای اطمینان از به ترتیب رسیدن اطلاعات و همچنین صحیح و کامل رسیدن اطلاعات ارائه نمی کند.
UDP هم مانند TCP دارای پورت مبدا و مقصد می باشد.


کانال تلگرام نامینیک

گروه تلگرام نامینیک ARM STM32


آموزش ARM برای همه


Tags: , , , , , , , , , , , , ,