مدل OSI، لایه به لایه، بدون اضافات
یک راهنمای عملی برای هفت لایه مدل OSI، با مثالهای پروتکل واقعی و زوایای حلمسئله برای هر لایه.
بیشتر توضیحات شبکهای مدل OSI را مثل نموداری برای حفظ کردن در یک امتحان صدور گواهینامه و سپس فراموشش کردن در نظر میگیرند. این یک اشتباه است. وقتی شروع به حلمسئله مشکلات واقعی کنید، هفت لایه به یک چکلیست ذهنی تبدیل میشوند: آیا این یک مشکل کابل است، یک مشکل مسیریابی است، یا یک باگ اپلیکیشنی؟ دانستن اینکه با کدام لایه سروکار دارید، زمان debugging شما را به طور چشمگیری کاهش میدهد.
لایه 1: physical
این خود محیط است: مس، فیبر، امواج رادیویی. سطح ولتاژ، پینآوتها، انواع کانکتور (RJ45، SFP+)، و مدولاسیون سیگنال اینجا قرار دارند. وقتی یک پورت سوئیچ "link down" را نشان دهد یا packet loss ناپایداری دریافت کنید که با شارژ دهندهای نزدیک یک خط کابل مرتبط است، در قلمروی لایه 1 هستید. ابزارهایی مثل cable tester یا ethtool eth0 در Linux وضعیت link، سرعت، و تنظیمات duplex را نشان میدهند قبل از اینکه وقت تلف کنید برای debugging چیزهایی در سطح بالاتر.
لایه 2: data link
اینجا MAC address، سوئیچها و frameها هستند. Ethernet در این لایه کار میکند، و ARP هم (به لحاظ فنی یک پل بین L2 و L3). VLANها یک ساخت لایه 2 هستند. اگر یک host نمیتواند هیچ چیزی در subnet خودش را reach کند اما ping به دستگاههای دیگری که مستقیماً متصل هستند خوب است، arp -a یا ip neigh را برای entries stale چک کنید، و تنظیمات پورت سوئیچ را برای VLAN mismatch بررسی کنید. یک مسئله کلاسیک: دو host در همان VLAN اما تنظیمات MTU متفاوت باعث علائم عجیبی مرتبط با fragmentation میشود.
لایه 3: network
IP address، مسیریابی و ICMP اینجا قرار دارند. اینجاست که traceroute و ping کار میکنند، و جایی که تشخیص میدهید که آیا یک packet حتی از شبکه محلی خارج میشود یا نه. روترها تصمیمات forwarding را بر اساس destination IP در این لایه میگیرند. وقتی ping 8.8.8.8 کار کند اما ping google.com کار نکند، این اصلاً یک مشکل لایه 3 نیست، DNS است، که لایه 7 است — یک مثال خوب از اینکه چرا انضباط لایه اهمیت دارد وقتی یک خرابی را محدود میکنید.
لایه 4: transport
TCP و UDP. اینجاست که portها، sequencing و reliability (یا عدم آن) وارد بازی میشوند. TCP three-way handshake، retransmission timerها و window scaling همه اینجا قرار دارند. اگر curl در یک تلاش اتصال hang شود، tcpdump -i eth0 port 443 به شما نشان میدهد که آیا SYN packetها حتی SYN-ACK را دریافت میکنند یا نه. بدون پاسخ معمولاً به این معنی است که یک firewall traffic را خاموشی drop میکند نه آنکه آن را به صراحت reject کند — تفاوتی که وقتی incident report را مینویسید اهمیت دارد.
لایه 5: session
این لایه شهرت بدی دارد چون در عمل نازک است — بسیاری از stacks دنیای واقعی management session را یا به transport layer یا application layer فروپاشی میدهند. TLS session resumption و چیزهایی مثل NetBIOS sessionها مثالهای درسیاند. در معماری modern کمتر وقت را در اینجا میگذرانید تا هر لایه دیگری، اما هنوز conceptually مفید است وقتی توضیح میدهید که چرا dropped connection میتواند بدون renegotiation کامل resume شود.
لایه 6: presentation
Encoding، compression و encryption formatting به لحاظ فنی اینجا متعلق هستند — character setها، SSL/TLS encryption formatting (برخلاف session establishment خودش)، و data serialization را فکر کنید. در عمل، اکثر مهندسان این را یا به لایه 5 یا لایه 7 fold میکنند وقتی در مورد آن صحبت میکنند، چون مرز fuzzy است. اگر garbled characterها در payload versus broken handshake را debug میکنید، آن L6/L7 split شما است.
لایه 7: application
HTTP، DNS، SMTP، SSH — پروتکلهایی که واقعاً علیه آنها کد مینویسید. بیشتر debugging روزمرهی developer اینجا رخ میدهد، status codeها، headerها و payloadها را بررسی میکنید. Browser dev toolها، Postman و curl -v همه در این لایه کار میکنند. وقتی یک API call ناموفق است شنیدن شبکه را در اول condemn کردن وسوسهانگیز است، اما یک 500 response به این معنی است که درخواست از هر لایهای پایینتر عبور کرد — مشکل کاملاً در application logic است.
چرا به یک مدل اهمیت دهید که هیچ کس آن را دقیقاً پیادهنمایی نمیکند
شبکهکاری دنیای واقعی، خصوصاً TCP/IP، کاملاً روی هفت لایه OSI نقشه نمیشود — TCP/IP چهار لایه در reference model خودش دارد. این mismatch خوب است. ارزش OSI نه به عنوان spec پیادهنمایی، بلکه به عنوان vocabulary مشترک است. وقتی یک همکار میگوید "این مثل یک مشکل لایه 2 است،" شما دوتایی فوراً میدانید که سوئیچها و VLANها را چک کنید نه اینکه درباره DNS recordها بحث کنید. این کل نقطه یادگیری آن به درستی است نه حفظ کردن برای یک test.
اگر این جور breakdown لایه به لایه برای شما کلیک کرد، networking segmentهای Korra Studio جلوتر میروند به packet captureها، subnetting drillها و firewall rule troubleshooting که مستقیماً بر روی این بنیاد ساخته میشوند.
با کمک هوش مصنوعی نوشتهشده، بازبینی و منتشرشده توسط Michal Pilch (CISSP)، Korra Studio.
این یکی از یادداشتهای پایگاه دانش Korra Studio است — پلتفرم هر موضوع را با مربی یکبهیک جفت میکند.
شروع رایگانarrow_forward