معرفی
درک پایهای از شبکه برای هر کسی که با کامپیوتر کار میکند مهم است. شبکه نه تنها به دریافت خدمات در اینترنت کمک میکند، بلکه به شما بینشی برای تشخیص مشکلات را میدهد.
در اینجا یک مرور کلی از برخی مفاهیم شبکهای رایج ارائه میدهم. ما در مورد اصطلاحات پایه، پروتکلهای مشترک، و مسئولیتها و ویژگیهای لایههای مختلف شبکه صحبت خواهیم کرد.
واژهنامه شبکه
قبل از شروع بحث درباره شبکه، باید برخی از اصطلاحات رایج را که شما در این راهنما و همچنین در راهنماها و مستندات مربوط به شبکهها مشاهده میکنید، تعریف کنیم.
Connection : در شبکه، connection به قطعات اطلاعات اشاره دارد که از طریق یک شبکه منتقل میشود و به طور کلی نشان میدهد که اتصال قبل از انتقال داده ساخته شده است و در پایان انتقال دادهها قطع شده است.
Packet : به طور کلی بسته (Packet)، پایهایترین واحدی است که در یک شبکه منتقل می شود. هنگام برقراری ارتباط با یک شبکه، بستهها هستند که اطلاعات شما را از یک نقطه به نقطهی دیگری حمل می کنند.
بستهها دارای یک بخش Header هستند که حاوی اطلاعاتی مثل مبدأ و مقصد و … میباشد. بخش اصلی بسته که شامل اطلاعات واقعی است body یا payload نامیده میشود.
HOP : قسمتی از یک مسیر (Path) بین مبدأ و مقصد بسته اطلاعاتی است. بستههای اطلاعاتی از طریق روترهای موجود در شبکه بین مبدأ و مقصد بسته پیموده میشود. هر بسته اطلاعاتی زمانی که از یک روتر در شبکه عبور میکند یک عمل Hop انجام میشود.
Network Interface : در واقع همان پورت شبکه است که تجهیزات دیجیتالی را به شبکههای کامپیوتری متصل می کند. رابط شبکه یا Network Interface میتواند سختافزاری یا نرمافزاری و مجازی باشد. به عنوان مثال loopback یک رابط مجازی شبکه است.
LAN: به معنای “شبکه محلی” یا Local Area Network است. به شبکه یا بخشی از یک شبکه اشاره دارد که در اینترنت نیست!!! یک شبکه خانگی یا اداری نمونه ای از یک شبکه LAN است.
WAN: “شبکه گسترده ” نامیده می شود و به معنای شبکه ای است که بسیار گسترده تر از شبکه LAN است. WAN اصطلاح مناسبی برای توصیف شبکه های بزرگ و پراکنده است.
اگر گفته می شود interface به WAN متصل است، عموما فرض می شود که از طریق اینترنت قابل دسترس است اما این فرض لزوماً صحیح نمیباشد.
- با اتصال چندین شبکه LAN به یکدیگر میتوان یک شبکه LAN بزرگتر یا یک شبکه WAN ایجاد کرد. این موضوع کاملا به ساختار شبکهی ایجاد شده بستگی دارد و لزوماً اتصال چندین شبکه LAN باعث ایجاد شبکه WAN نمیشود.
- شبکه WAN مناسب برای توصیف شبکههای بزرگ و پراکنده است و خیلی از مواقع این جمله را خواهید شنید که: “اینترنت یک شبکه WAN است”؛ این جمله کاملا صحیح است اما یک شبکهی WAN اینترنت نیست! یک شبکهی WAN میتواند دسترسی به اینترنت نداشته باشد.
Protocol: یک پروتکل مجموعهای از قوانین و استانداردها است که اساسا یک زبان را تعریف میکند که دستگاهها می توانند برای برقراری ارتباط استفاده کنند. تعداد زیادی از پروتکلها در شبکه وجود دارد که در لایههای مختلف شبکه اجرا میشوند.
از پروتکل های سطح پایین میتوان TCP، UDP، IP و ICMP را نام برد. برخی از نمونه های آشنا از پروتکل های لایه application که بر اساس پروتکل های سطح پایین ساخته شده اند عبارتند از HTTP، SSH، TLS/SSL و FTP.
Port: پورت یک آدرس در یک دستگاه واحد است که میتواند به یک قطعه خاص از نرم افزار متصل شود. این یک رابط فیزیکی نیست، اما اجازه می دهد که کامپیوتر(سرور و …) شما بتواند با استفاده از آن با بیش از یک برنامه ارتباط برقرار کند.
Firewall: یک فایروال برنامهایست که تصمیم می گیرد چه ترافیکی مجاز است به یک دستگاه (کامپیوتر، سرور و …) وارد و یا خارج شود. به طور کلی، فایروالها پورتهایی را که توسط برنامه خاصی بر روی سرور استفاده نمی شوند، مسدود می کنند.
NAT: در شبکه های محلی از Private IP استفاده میشود و برای شبکه تعداد محدودی IP معتبر (Public) گرفته می شود و با استفاده از سرویس NAT ارتباط دستگاهها به اینترنت برقرار می شود.NAT تبدیل یک IP به IP دیگر را انجام میدهد یا عبارتی Private IP را به Public IP تبدیل می کند. به طور مثال یک شبکه را در نظر بگیرد که دارای 20 کامپیوتر است که می خواهند از اینترنت استفاده کنند با استفاده از سرویس NAT به جای اینکه برای هر کامپیوتر یک Public IP تهیه شود کلا یک Public IP تهیه می شود و این دستگاهها با استفاده از یک Public IP به اینترنت متصل می شوند. با اینکار در مصرف IP و هزینه صرفهجویی میشود.
VPN: مخفف virtual private network است. یک شبکه خصوصی مجازی (VPN) برنامهایاست که یک اتصال امن و رمزگذاری شده را در یک شبکه ناامن مانند اینترنت ایجاد میکند. در واقع، پروتکل ها با رمزگذاری داده ها و رمزگشایی آن در مقصد، داده ها را از طریق یک “تونل” ارسال میکنند و دادههایی که به درستی رمزگذاری نشدهاند، نمیتوانند وارد تونل شوند.
اصطلاحات بسیاری وجود دارد که ممکن است با آن روبرو شوید. در این مرحله، شما باید برخی از مفاهیم پایه و سطح بالا را درک کنید.
لایه های شبکه
در حالی که شبکه، از نظر توپولوژی بین میزبانها (hosts) اغلب به صورت افقی مورد بحث قرار می گیرد، اجرای آن به شکل عمودی در یک کامپیوتر یا شبکه لایهبندی میشود.
این به این معنی است که تکنولوژیها و پروتکلهای چندگانهای وجود دارد که در بالای یکدیگر ساخته میشوند تا ارتباطات به راحتی کار کند. هر لایه متوالی، اطلاعات اولیهی لایه بالاتر را کمی بیشتر می کند و باعث میشود که برای برنامهها و کاربران آسان تر باشد.
زبان مورد استفاده ما برای صحبت در مورد هر یک از طرحهای لایهبندی، بسته به مدل مورد صحبت متفاوت است. صرف نظر از مدل مورد استفاده برای بحث در مورد لایهها، مسیر دادهها یکسان است.
ارسال داده از یک دستگاه از بالای پشته شروع میشوند و به سمت پایین حرکت میکنند. در پایین ترین سطح، انتقال واقعی به ماشین دیگری اتفاق می افتد.
هر لایه توانایی اضافه کردن “بسته بندی” خود را در اطراف دادههای دریافت شده از لایه بالاتر دارد، که به لایه های پایینتر برای تصمیم گیری در مورد نحوه انجام کار با این داده ها کمک میکند.
مدل OSI
یک روش صحبت در مورد لایههای مختلف ارتباطات شبکه است. OSI مخفف Open Systems Interconnect است.
این مدل هفت لایه جداگانه را تعریف میکند. لایهها در این مدل عبارتند از:
لایه هفتم یا Application: لایه کاربرد، لایهای است که کاربران و برنامههای کاربردی با آن ارتباط برقرار میکنند. این لایه تنها لایهای است که کاربر میتواند آن را بصورت ملموس حس کند و با آن ارتباط برقرار کند. از نمونه پروتکلهایی که در این لایه فعالیت میکنند میتوان به HTTP ، FTP ، TELNET ، SNMP ، POP3 و مشابه آنها اشاره کرد.
لایه ششم یا Presentation layer: لایه نمایش ، همانطور که از اسم این لایه پیداست نحوه نمایش اطلاعات را به ما نشان میدهد. به عنوان مثال در این لایه تعیین میشود که اطلاعات چگونه رمزنگاری یا فشردهسازی شوند. از این لایه برای انتقال دادههای سطح پایین شبکه به اطلاعاتی که برنامهها انتظار دیدن آن را دارند استفاده میشود.
لایه پنجم یا Session layer: لایه جلسه یک پردازنده اتصال است و ایجاد، نگهداری و از بین بردن ارتباطات بین گرهها را انجام میدهد.
لایه چهارم یا Transport layer: این لایه یک اتصال منطقی نقطه به نقطه بین دو بین دو دستگاه (مثلا کامپیوتر) ایجاد میکند.در این لایه دو روش برای این کار وجود دارد :
اتصالگرا ( connection-oriented ) : اتصالگرا وسیلهای برای انتقال دادههاست که در آن دستگاههای دوسر ارتباط قبل از ارسال هر گونه اطلاعات از یک پروتکل اولیه برای ایجاد یک اتصال (end-to-end) استفاده میکنند. سرویس پروتکل اتصالگرا یک سرویس “قابل اعتماد” شبکه نامیده می شود، زیرا تضمین میدهد که دادهها در توالی مناسب وارد میشوند. Transmission Control Protocol (TCP) یک پروتکل اتصالگرا است.
غیر اتصالگرا ( connectionless ) : ارتباط بین دو نقطه پایانی شبکه را بیان میکند که میتوان بدون توافق قبلی پیام را از یک نقطه به دیگری ارسال کرد. بدون اینکه ابتدا اطمینان حاصل شود که گیرنده در دسترس است. User Datagram Protocol (UDP) یک پروتکل غیراتصالگراست.
لایه سوم یا Network : این لایه همان لایهایست که عمل روتینگ یا مسیریابی در آن انجام میشود و پروتکل معروف IP در این لایه کار میکند. روتینگ را میتوان با 2 سوالی تصور نمود :
- برای مقصد داده شده از روتر محلی چند مسیر معتبر وجود دارد ؟
- “بهترین” مسیر برای رسیدن به آن مقصد کدامیک است ؟
لایه دوم یا Data Link : در اين لايه اطلاعات، كشف خطا و اصلاح و بدون خطا و به صورت مطمئن به سوی مقصد ارسال می شوند. وظيفهی ديگر اين لايه مطمئن شدن از رسيدن اطلاعات به مقصد است كه اين كار توسط بيتهای (Parity check , checksum ,crc ) انجام میپذيرد.كه در صورت بروز خطا مجدداً اطلاعات ارسال خواهند شد.
لایه اول یا Physical Layer : همانطور که از نام این لایه پیداست موارد اولیه برای ارسال بسته در این لایه اتفاق میافتد در واقع هر Data که بین تجهیزات ارسال می شود به صورت مجموعهای از بیتهاست و هیچ مشخصهی دیگری در این مرحله وجود ندارد جز اینکه بیتها ارسال خواهند شد.این لایه در ارتباط مستقیم با سخت افزار بوده و خصوصیت های فیزیکی شبکه مثل اتصالات، کابلها ، کانکتورها و ولتاژها و نرخ انتقال داده را بررسی میکند.
همانطور که مشاهده میکنید ، لایههای مختلفی وجود دارد که می توان براساس سختافزار و کارایی که ارائه می دهند، بحث کرد.
مدل TCP/IP
مدل TCP / IP ، که بیشتر به عنوان پروتکل اینترنت شناخته می شود، یک مدل لایهبندی دیگر است که سادهتر از مدل OSI است و به صورت گسترده مورد استفاده قرار گرفته است. TCP/IP چهار لایهی جداگانه را تعریف میکند ، که برخی از آنها با مدل OSI همپوشانی دارند:
لایه Application: بالاترين لايه در پشته TCP/IP است. پروتکلهای موجود در اين لايه به منظور فرمتدهی و مبادله اطلاعات کاربران استفاده میگردند. HTTP و FTP دو نمونه از پروتکلهای موجود در اين لايه هستند.
لایه Transport: لايه ” حمل ” ، قابليت ايجاد نظم و ترتيب و تضمين ارتباط بين کامپيوترها و ارسال داده به لايه Application (لايه بالای خود) و يا لايه اينترنت ( لايه پايين خود) را بر عهده دارد. لايهی فوق، همچنين مشخصهی منحصر به فرد، از برنامهای که داده را عرضه نموده است، مشخص میکند. اين لايه دارای دو پروتکل اساسی است که نحوه توزيع داده را کنترل مینمايند.
TCP)Transmission Control Protocol) مسئول تضمين صحت توزيع اطلاعات است.
UDP)User Datagram Protocol) امکان عرضه سريع اطلاعات، بدون پذيرفتن مسئوليتی در رابطه با تضمين صحت توزيع اطلاعات را برعهده دارد.
لايه Internet: لايه “اينترنت”، مسئول آدرسدهی، بسته بندی و روتينگ دادهها است. لايهی فوق، شامل چهار پروتکل اساسی است:
IP)Internet Protocol) مسئول آدرسی دادهها به منظور ارسال به مقصد مورد نظر است.
ARP)Address Resoulation Protocol) مسئول مشخص نمودن آدرس MAC)Media Access Control) آداپتور شبکه بر روی کامپيوتر مقصد است.
ICMP)Internet Control Message Protocol) مسئول ارائه توابع عيبيابی و گزارش خطا در صورت عدم توزيع صحیح اطلاعات است.
IGMP)Internet Group Managemant Protocol) مسئولیت مديريت Multicasting در TCP/IP را بر عهده دارد.
لايه Network Access: لايهی ” اينترفيس شبکه ” ، مسئول استقرار داده بر روی محيط انتقال و دريافت داده از محيط انتقال است. لايهی فوق، شامل دستگاههای فيزيکی نظير کابل شبکه و آداپتورهای شبکه است. لايه ” اينترفيس شبکه “، شامل پروتکلهای مبتنی بر نرمافزار مشابه لايه های قبل نیست. پروتکلهای Ethernet و ATM)Asynchronous Transfer Mode)، نمونههایی از پروتکلهای موجود در اين لايه هستند. پروتکلهای فوق، نحوهی ارسال داده در شبکه را مشخص مینمايند.
همانطور که مشاهده میکنید، مدل TCP / IP کمی انتزاعیتر و روانتر است. این امر باعث میشود اجرای آن آسانتر شود.
Protocols
شبکه با پیکربندی تعدادی از پروتکلهای مختلف در بالای یکدیگر کار میکند. به این ترتیب، میتوان یک قطعه از دادهها را با استفاده از پروتکل های متعدد، که محصور شده در یکدیگرند، منتقل کرد.
در اینجا برخی از پروتکلهای متداول که ممکن است با آنها روبرو شوید را سعی میکنم توضیح دهم.
Media Access Control (MAC)
پروتکل ارتباطی است که برای تشخیص دستگاههای خاص استفاده میشود. هر دستگاه در طی فرآیند ساخت، یک آدرس MAC یکتا دریافت میکند که آن را از سایر دستگاههای موجود در اینترنت متمایز میکند. يک عدد دوازده رقمی مبنای شانزده ( نظير : B5-50-04-22-D4-66 ) است. MAC پروتكل لایه Data Link یا Network Access است.
IP
پروتکل IP یکی از پروتکهای اساسی است که باعث میشود اینترنت کار کند. آدرسهای IP در هر شبکه یکتا هستند. IP در مدل TCP/IP در لایه اینترنت پیادهسازی شده است.
شبکهها میتوانند به هم وصل شوند، اما هنگام عبور از مرزهای شبکه، باید ترافیک هدایت شود. IP دارای دو ورژن مختلف است که متداول ترین ورژن IPv4 است؛ اگرچه IPv4 به سرعت توسط IPv6 در حال جایگزینی است.
ICMP
برای ارسال پیام بین دستگاهها به منظور نشان دادن شرایط در دسترس بودن یا خطا استفاده میشود. این بستهها در انواع مختلفی از ابزارهای تشخیص مانند ping و traceroute مورد استفاده قرار میگیرند.
اصولاً از آنها به عنوان مکانیسم بازخورد ارتباطات شبکهای استفاده میشود.
TCP
برای ایجاد اتصالات قابل اعتماد استفاده میشود.
TCP یکی از پروتکلهایی است که دادهها را در بستهها محصور میکند، سپس آنها را با استفاده از روشهای موجود در لایههای پایین، به دستگاه راه دور منتقل میکند. از طرف دیگر می تواند خطاها را بررسی کند و درخواست کند برخی از قسمتها مجدداً ارسال شوند.
این پروتکل قبل از انتقال دادهها با استفاده از سیستمی به نام three-way handshake، اتصال ایجاد میکند. این راهی است که دو طرف ارتباطات میتوانند درخواست را بپذیرند. پس از ارسال دادهها ، اتصال با استفاده از four-way handshake قطع میشود. TCP پروتکل انتخابی بسیاری از برنامههای کاربردی محبوب برای اینترنت از جمله WWW ، SSH و ایمیل است. به راحتی میتوان گفت اینترنتی که ما امروز میشناسیم بدون TCP در اینجا نخواهد بود.
UDP
تفاوت اساسی UDP و TCP در این است که UDP انتقال داده غیرقابل اعتماد را ارائه میدهد و تأیید نمیکند که داده در انتهای دیگر اتصال دریافت شده است. این ممکن است بد به نظر برسد و برای بسیاری از اهداف همینطور است. با این حال، برای برخی از کارها بسیار مهم است.
از آنجا که نیازی به انتظار برای تأیید دریافت دادهها و مجبور به ارسال مجدد داده ها نیست بسیار سریعتر از TCP است.
HTTP
این پروتکل در لایه برنامه تعریف شده است که اساس ارتباطات در وب را تشکیل میدهد.
HTTP تعدادی از توابع را تعریف میکند که به سیستم راه دور میگویند چه درخواستی دارید. به عنوان مثال ، GET ، POST و DELETE همه با دادههای درخواست شده به روشی متفاوت تعامل دارند.
FTP
این پروتکل نیز در لایه برنامه قرار دارد و راهی را برای انتقال پروندههای کامل از یک میزبان به میزبان دیگر فراهم میکند.
این پروتکل ذاتاً ناامن است، بنابراین برای هیچ شبکه خارجی توصیه نمیشود.
DNS
پروتکل لایه برنامه است که برای تهیه یک مکانیسم نامگذاری برای منابع اینترنتی مورد استفاده قرار میگیرد. این همان چیزی است که نام دامنه را با یک آدرس IP پیوند میدهد و به شما امکان را میدهد به سایتهایی با نام در مرورگر خود دسترسی پیدا کنید.
SSH
پروتکل رمزگذاری شدهای است که در لایه برنامه اعمال میشود و می تواند برای برقراری ارتباط با یک سرور از راه دور به روشی مطمئن استفاده شود.
“پروتکل های دیگر که ما آنها را پوشش نداده ایم کاملاً مهم هستند. با این حال ، هدف این مقاله نگاه کلی به برخی از فن آوریهای اساسی است که اینترنت و شبکه را ممکن میسازند”
شما باید با برخی اصطلاحات اساسی شبکه ای آشنا باشید و بتوانید درک کنید چگونه اجزای مختلف قادر به برقراری ارتباط با یکدیگر هستند. این امر به شما در درک سایر مقالات کمک میکند.